@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,271 @@
|
|
|
1
|
+
import { appendFileSync, existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from 'fs';
|
|
2
|
+
import { dirname, isAbsolute, join, resolve, sep } from 'path';
|
|
3
|
+
import { dump as yamlDump, load as yamlLoad } from 'js-yaml';
|
|
4
|
+
import Papa from 'papaparse';
|
|
5
|
+
/**
|
|
6
|
+
* Maximum bytes a script may read or write in a single file operation.
|
|
7
|
+
*/
|
|
8
|
+
export const SCRIPT_FILE_MAX_BYTES = 50 * 1024 * 1024;
|
|
9
|
+
/**
|
|
10
|
+
* Returns the access level required for a file bridge operation.
|
|
11
|
+
*
|
|
12
|
+
* @param op - Bridged operation name.
|
|
13
|
+
* @returns Access level used by the host gate.
|
|
14
|
+
*/
|
|
15
|
+
export function scriptFileAccessForOp(op) {
|
|
16
|
+
switch (op) {
|
|
17
|
+
case 'parseYaml':
|
|
18
|
+
case 'parseCsv':
|
|
19
|
+
case 'stringifyYaml':
|
|
20
|
+
case 'stringifyCsv':
|
|
21
|
+
return 'none';
|
|
22
|
+
case 'writeText':
|
|
23
|
+
case 'writeBytes':
|
|
24
|
+
case 'append':
|
|
25
|
+
case 'writeJson':
|
|
26
|
+
case 'writeYaml':
|
|
27
|
+
case 'writeCsv':
|
|
28
|
+
return 'write';
|
|
29
|
+
default:
|
|
30
|
+
return 'read';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Resolves the effective root directory that confines script filesystem access.
|
|
35
|
+
*
|
|
36
|
+
* Git-backed collections use their repository directory. Otherwise the
|
|
37
|
+
* configured scriptFileRoot is used, falling back to the user home directory.
|
|
38
|
+
*
|
|
39
|
+
* @param context - Optional collection connection used to detect git roots.
|
|
40
|
+
* @returns Absolute root directory path.
|
|
41
|
+
*/
|
|
42
|
+
export function resolveScriptFileRoot(dependencies, context) {
|
|
43
|
+
return resolve(dependencies.resolveRoot(context));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Resolves a script-supplied path under the effective root and rejects escapes.
|
|
47
|
+
*
|
|
48
|
+
* @param root - Absolute confinement root.
|
|
49
|
+
* @param targetPath - Relative or absolute path from the script.
|
|
50
|
+
* @returns Canonical absolute path under the root.
|
|
51
|
+
* @throws When the path escapes the root or contains parent segments.
|
|
52
|
+
*/
|
|
53
|
+
export function resolveScriptFilePath(root, targetPath) {
|
|
54
|
+
const trimmed = String(targetPath ?? '').trim();
|
|
55
|
+
if (!trimmed) {
|
|
56
|
+
throw new Error('hc.fs requires a path');
|
|
57
|
+
}
|
|
58
|
+
const rootReal = resolve(root);
|
|
59
|
+
const candidate = isAbsolute(trimmed) ? trimmed : join(root, trimmed);
|
|
60
|
+
const resolved = resolve(candidate);
|
|
61
|
+
const prefix = rootReal.endsWith(sep) ? rootReal : `${rootReal}${sep}`;
|
|
62
|
+
if (resolved !== rootReal && !resolved.startsWith(prefix)) {
|
|
63
|
+
throw new Error(`Path is outside the script file root: ${trimmed}`);
|
|
64
|
+
}
|
|
65
|
+
return resolved;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Asserts a byte length does not exceed the script file size limit.
|
|
69
|
+
*
|
|
70
|
+
* @param byteLength - Number of bytes about to be read or written.
|
|
71
|
+
* @throws When the payload exceeds {@link SCRIPT_FILE_MAX_BYTES}.
|
|
72
|
+
*/
|
|
73
|
+
function assertWithinSizeLimit(byteLength) {
|
|
74
|
+
if (byteLength > SCRIPT_FILE_MAX_BYTES) {
|
|
75
|
+
throw new Error(`Script file exceeds the ${SCRIPT_FILE_MAX_BYTES} byte limit (${byteLength} bytes)`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Ensures the parent directory of a write target exists.
|
|
80
|
+
*
|
|
81
|
+
* @param filePath - Absolute file path about to be written.
|
|
82
|
+
*/
|
|
83
|
+
function ensureParentDir(filePath) {
|
|
84
|
+
mkdirSync(dirname(filePath), { recursive: true });
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Parses CSV text with PapaParse using script-facing options.
|
|
88
|
+
*
|
|
89
|
+
* @param text - Raw CSV text.
|
|
90
|
+
* @param options - Optional parse options.
|
|
91
|
+
* @returns Object rows when headers are enabled, otherwise string[][].
|
|
92
|
+
*/
|
|
93
|
+
export function parseCsvText(text, options) {
|
|
94
|
+
const headers = options?.headers !== false && !Array.isArray(options?.headers);
|
|
95
|
+
const delimiter = typeof options?.delimiter === 'string' ? options.delimiter : ',';
|
|
96
|
+
const skipEmpty = options?.skipEmpty !== false;
|
|
97
|
+
const parsed = Papa.parse(text, {
|
|
98
|
+
header: headers,
|
|
99
|
+
delimiter,
|
|
100
|
+
skipEmptyLines: skipEmpty,
|
|
101
|
+
dynamicTyping: false
|
|
102
|
+
});
|
|
103
|
+
if (parsed.errors.length > 0) {
|
|
104
|
+
const first = parsed.errors[0];
|
|
105
|
+
throw new Error(`CSV parse error: ${first.message}`);
|
|
106
|
+
}
|
|
107
|
+
return parsed.data;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Serializes rows to CSV text with PapaParse.
|
|
111
|
+
*
|
|
112
|
+
* @param rows - Object rows or string[][].
|
|
113
|
+
* @param options - Optional stringify options.
|
|
114
|
+
* @returns CSV text.
|
|
115
|
+
*/
|
|
116
|
+
export function stringifyCsvText(rows, options) {
|
|
117
|
+
if (!Array.isArray(rows)) {
|
|
118
|
+
throw new Error('hc.fs.writeCsv / hc.stringify.csv requires an array of rows');
|
|
119
|
+
}
|
|
120
|
+
const delimiter = typeof options?.delimiter === 'string' ? options.delimiter : ',';
|
|
121
|
+
const columns = Array.isArray(options?.headers) ? options.headers : undefined;
|
|
122
|
+
return Papa.unparse(rows, {
|
|
123
|
+
delimiter,
|
|
124
|
+
columns,
|
|
125
|
+
header: columns != null || (rows.length > 0 && !Array.isArray(rows[0]))
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Parses YAML text with js-yaml.
|
|
130
|
+
*
|
|
131
|
+
* @param text - Raw YAML text.
|
|
132
|
+
* @returns Parsed value.
|
|
133
|
+
*/
|
|
134
|
+
export function parseYamlText(text) {
|
|
135
|
+
return yamlLoad(text) ?? null;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Serializes a value to YAML text.
|
|
139
|
+
*
|
|
140
|
+
* @param value - Value to dump.
|
|
141
|
+
* @returns YAML text.
|
|
142
|
+
*/
|
|
143
|
+
export function stringifyYamlText(value) {
|
|
144
|
+
return yamlDump(value, { lineWidth: -1, noRefs: true });
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Serializes a value to JSON text with optional pretty-printing.
|
|
148
|
+
*
|
|
149
|
+
* @param value - Value to stringify.
|
|
150
|
+
* @param options - Pretty / indent options.
|
|
151
|
+
* @returns JSON text.
|
|
152
|
+
*/
|
|
153
|
+
export function stringifyJsonText(value, options) {
|
|
154
|
+
const pretty = options?.pretty !== false;
|
|
155
|
+
const indent = Number.isInteger(options?.indent) ? Number(options?.indent) : 2;
|
|
156
|
+
return pretty ? `${JSON.stringify(value, null, indent)}\n` : JSON.stringify(value);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Executes a bridged script file / codec operation under the resolved root.
|
|
160
|
+
*
|
|
161
|
+
* @param request - Operation and payload from the sandbox.
|
|
162
|
+
* @param rootContext - Collection connection used for git root resolution.
|
|
163
|
+
* @returns Operation result (string, Uint8Array, object, boolean, null, or undefined).
|
|
164
|
+
*/
|
|
165
|
+
export function executeScriptFileRequest(request, dependencies, rootContext) {
|
|
166
|
+
const op = request.op;
|
|
167
|
+
const access = scriptFileAccessForOp(op);
|
|
168
|
+
if (access === 'none') {
|
|
169
|
+
switch (op) {
|
|
170
|
+
case 'parseYaml':
|
|
171
|
+
return parseYamlText(String(request.contents ?? ''));
|
|
172
|
+
case 'parseCsv':
|
|
173
|
+
return parseCsvText(String(request.contents ?? ''), request.options);
|
|
174
|
+
case 'stringifyYaml':
|
|
175
|
+
return stringifyYamlText(request.value);
|
|
176
|
+
case 'stringifyCsv':
|
|
177
|
+
return stringifyCsvText(request.value, request.options);
|
|
178
|
+
default:
|
|
179
|
+
throw new Error(`Unsupported script file operation: ${op}`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
const root = resolveScriptFileRoot(dependencies, rootContext);
|
|
183
|
+
const filePath = resolveScriptFilePath(root, String(request.path ?? ''));
|
|
184
|
+
switch (op) {
|
|
185
|
+
case 'exists':
|
|
186
|
+
return existsSync(filePath);
|
|
187
|
+
case 'stat': {
|
|
188
|
+
if (!existsSync(filePath)) {
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
const stats = statSync(filePath);
|
|
192
|
+
const result = {
|
|
193
|
+
size: stats.size,
|
|
194
|
+
mtimeMs: stats.mtimeMs,
|
|
195
|
+
isFile: stats.isFile(),
|
|
196
|
+
isDirectory: stats.isDirectory()
|
|
197
|
+
};
|
|
198
|
+
return result;
|
|
199
|
+
}
|
|
200
|
+
case 'readText':
|
|
201
|
+
case 'readJson':
|
|
202
|
+
case 'readYaml':
|
|
203
|
+
case 'readCsv': {
|
|
204
|
+
const stats = statSync(filePath);
|
|
205
|
+
assertWithinSizeLimit(stats.size);
|
|
206
|
+
const text = readFileSync(filePath, 'utf8');
|
|
207
|
+
if (op === 'readText') {
|
|
208
|
+
return text;
|
|
209
|
+
}
|
|
210
|
+
if (op === 'readJson') {
|
|
211
|
+
return JSON.parse(text);
|
|
212
|
+
}
|
|
213
|
+
if (op === 'readYaml') {
|
|
214
|
+
return parseYamlText(text);
|
|
215
|
+
}
|
|
216
|
+
return parseCsvText(text, request.options);
|
|
217
|
+
}
|
|
218
|
+
case 'readBytes': {
|
|
219
|
+
const stats = statSync(filePath);
|
|
220
|
+
assertWithinSizeLimit(stats.size);
|
|
221
|
+
return new Uint8Array(readFileSync(filePath));
|
|
222
|
+
}
|
|
223
|
+
case 'writeText':
|
|
224
|
+
case 'append': {
|
|
225
|
+
const contents = String(request.contents ?? '');
|
|
226
|
+
assertWithinSizeLimit(Buffer.byteLength(contents, 'utf8'));
|
|
227
|
+
ensureParentDir(filePath);
|
|
228
|
+
if (op === 'append') {
|
|
229
|
+
appendFileSync(filePath, contents, 'utf8');
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
writeFileSync(filePath, contents, 'utf8');
|
|
233
|
+
}
|
|
234
|
+
return undefined;
|
|
235
|
+
}
|
|
236
|
+
case 'writeBytes': {
|
|
237
|
+
if (!(request.bytes instanceof Uint8Array)) {
|
|
238
|
+
throw new Error('hc.fs.writeBytes requires a Uint8Array');
|
|
239
|
+
}
|
|
240
|
+
const bytes = request.bytes;
|
|
241
|
+
assertWithinSizeLimit(bytes.byteLength);
|
|
242
|
+
ensureParentDir(filePath);
|
|
243
|
+
writeFileSync(filePath, bytes);
|
|
244
|
+
return undefined;
|
|
245
|
+
}
|
|
246
|
+
case 'writeJson': {
|
|
247
|
+
const text = stringifyJsonText(request.value, request.options);
|
|
248
|
+
assertWithinSizeLimit(Buffer.byteLength(text, 'utf8'));
|
|
249
|
+
ensureParentDir(filePath);
|
|
250
|
+
writeFileSync(filePath, text, 'utf8');
|
|
251
|
+
return undefined;
|
|
252
|
+
}
|
|
253
|
+
case 'writeYaml': {
|
|
254
|
+
const text = stringifyYamlText(request.value);
|
|
255
|
+
assertWithinSizeLimit(Buffer.byteLength(text, 'utf8'));
|
|
256
|
+
ensureParentDir(filePath);
|
|
257
|
+
writeFileSync(filePath, text, 'utf8');
|
|
258
|
+
return undefined;
|
|
259
|
+
}
|
|
260
|
+
case 'writeCsv': {
|
|
261
|
+
const text = stringifyCsvText(request.value, request.options);
|
|
262
|
+
assertWithinSizeLimit(Buffer.byteLength(text, 'utf8'));
|
|
263
|
+
ensureParentDir(filePath);
|
|
264
|
+
writeFileSync(filePath, text, 'utf8');
|
|
265
|
+
return undefined;
|
|
266
|
+
}
|
|
267
|
+
default:
|
|
268
|
+
throw new Error(`Unsupported script file operation: ${op}`);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=scriptFileOperations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scriptFileOperations.js","sourceRoot":"","sources":["../../src/scripting/scriptFileOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAC/D,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AA0HtD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAgB;IACpD,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,eAAe,CAAC;QACrB,KAAK,cAAc;YACjB,OAAO,MAAM,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY,CAAC;QAClB,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,OAAO,CAAC;QACjB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,YAA6C,EAC7C,OAA+B;IAE/B,OAAO,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,UAAkB;IACpE,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,GAAG,EAAE,CAAC;IACvE,IAAI,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,UAAkB;IAC/C,IAAI,UAAU,GAAG,qBAAqB,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,2BAA2B,qBAAqB,gBAAgB,UAAU,SAAS,CACpF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,QAAgB;IACvC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAA0B;IACnE,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,OAAO,OAAO,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IACnF,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,KAAK,KAAK,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAoC,IAAI,EAAE;QACjE,MAAM,EAAE,OAAO;QACf,SAAS;QACT,cAAc,EAAE,SAAS;QACzB,aAAa,EAAE,KAAK;KACrB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAa,EAAE,OAA0B;IACxE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,OAAO,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IACnF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,OAAO,IAAI,CAAC,OAAO,CAAC,IAA0C,EAAE;QAC9D,SAAS;QACT,OAAO;QACP,MAAM,EAAE,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KACxE,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,QAAQ,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,OAAgC;IAChF,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACrF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAA0B,EAC1B,YAA6C,EAC7C,WAAmC;IAEnC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAEzC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,QAAQ,EAAE,EAAE,CAAC;YACX,KAAK,WAAW;gBACd,OAAO,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;YACvD,KAAK,UAAU;gBACb,OAAO,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,OAA2B,CAAC,CAAC;YAC3F,KAAK,eAAe;gBAClB,OAAO,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1C,KAAK,cAAc;gBACjB,OAAO,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAA2B,CAAC,CAAC;YAC9E;gBACE,MAAM,IAAI,KAAK,CAAC,sCAAsC,EAAE,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,qBAAqB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IAEzE,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC9B,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjC,MAAM,MAAM,GAAmB;gBAC7B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE;gBACtB,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;aACjC,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC5C,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;YACrC,CAAC;YACD,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;gBACtB,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,OAA2B,CAAC,CAAC;QACjE,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,WAAW,CAAC;QACjB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;YAChD,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;YAC3D,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC1B,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACpB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACxC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC1B,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC/B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAiC,CAAC,CAAC;YACzF,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACvD,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC1B,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACtC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9C,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACvD,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC1B,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACtC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAA2B,CAAC,CAAC;YAClF,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACvD,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC1B,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACtC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,sCAAsC,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { SendResult } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Brand symbol marking objects that are valid subjects for response assertion matchers.
|
|
4
|
+
*/
|
|
5
|
+
export declare const RESPONSE_ASSERTION_BRAND: unique symbol;
|
|
6
|
+
/**
|
|
7
|
+
* Branded response snapshot used as the Chai assertion subject for `hc.response.to`.
|
|
8
|
+
*/
|
|
9
|
+
export interface ResponseAssertionSubject {
|
|
10
|
+
code: number;
|
|
11
|
+
statusText: string;
|
|
12
|
+
headers: Record<string, string>;
|
|
13
|
+
body: string;
|
|
14
|
+
responseTime: number;
|
|
15
|
+
sizeBytes: number;
|
|
16
|
+
[RESPONSE_ASSERTION_BRAND]: true;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Returns whether a value is a branded response assertion subject.
|
|
20
|
+
*
|
|
21
|
+
* @param value - Assertion subject from Chai.
|
|
22
|
+
* @returns True when the value was created by {@link createResponseAssertionSubject}.
|
|
23
|
+
*/
|
|
24
|
+
export declare function isResponseAssertionSubject(value: unknown): value is ResponseAssertionSubject;
|
|
25
|
+
/**
|
|
26
|
+
* Builds a branded response facade from a send result for Chai assertion subjects.
|
|
27
|
+
*
|
|
28
|
+
* @param resp - HTTP response from the completed send.
|
|
29
|
+
* @returns Branded subject passed to `scriptExpect` for `hc.response.to`.
|
|
30
|
+
*/
|
|
31
|
+
export declare function createResponseAssertionSubject(resp: SendResult): ResponseAssertionSubject;
|
|
32
|
+
/**
|
|
33
|
+
* Registers Postman-style response matchers on the Chai Assertion prototype.
|
|
34
|
+
*
|
|
35
|
+
* Must run before SES `lockdown()` in the script runner import chain.
|
|
36
|
+
*
|
|
37
|
+
* @param chai - Chai module instance from the script sandbox host.
|
|
38
|
+
*/
|
|
39
|
+
export declare function installResponseAssertions(chai: Chai.ChaiStatic): void;
|
|
40
|
+
//# sourceMappingURL=scriptResponseAssertions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scriptResponseAssertions.d.ts","sourceRoot":"","sources":["../../src/scripting/scriptResponseAssertions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,wBAAwB,eAAkC,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,wBAAwB,CAAC,EAAE,IAAI,CAAC;CAClC;AAQD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,wBAAwB,CAO5F;AAmDD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,UAAU,GAAG,wBAAwB,CAWzF;AA4DD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAqQrE"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/// <reference types="chai" />
|
|
2
|
+
import { wrapCallablePropertyGetter } from './scriptAssertionCompat';
|
|
3
|
+
/**
|
|
4
|
+
* Brand symbol marking objects that are valid subjects for response assertion matchers.
|
|
5
|
+
*/
|
|
6
|
+
export const RESPONSE_ASSERTION_BRAND = Symbol('hc.response.assertion');
|
|
7
|
+
/**
|
|
8
|
+
* Error message when response matchers are invoked on a non-response subject.
|
|
9
|
+
*/
|
|
10
|
+
const RESPONSE_SCOPE_ERROR = 'response assertions require hc.response; use hc.response.to.have.status(...)';
|
|
11
|
+
/**
|
|
12
|
+
* Returns whether a value is a branded response assertion subject.
|
|
13
|
+
*
|
|
14
|
+
* @param value - Assertion subject from Chai.
|
|
15
|
+
* @returns True when the value was created by {@link createResponseAssertionSubject}.
|
|
16
|
+
*/
|
|
17
|
+
export function isResponseAssertionSubject(value) {
|
|
18
|
+
return (typeof value === 'object' &&
|
|
19
|
+
value !== null &&
|
|
20
|
+
RESPONSE_ASSERTION_BRAND in value &&
|
|
21
|
+
value[RESPONSE_ASSERTION_BRAND] === true);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns a header value by case-insensitive name.
|
|
25
|
+
*
|
|
26
|
+
* @param headers - Flat response header map.
|
|
27
|
+
* @param name - Header name to look up.
|
|
28
|
+
* @returns Header value or undefined when absent.
|
|
29
|
+
*/
|
|
30
|
+
function getHeader(headers, name) {
|
|
31
|
+
const lower = name.toLowerCase();
|
|
32
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
33
|
+
if (key.toLowerCase() === lower) {
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Parses the response body as JSON, throwing when invalid.
|
|
41
|
+
*
|
|
42
|
+
* @param body - Raw response body text.
|
|
43
|
+
* @returns Parsed JSON value.
|
|
44
|
+
*/
|
|
45
|
+
function parseJsonBody(body) {
|
|
46
|
+
return JSON.parse(body);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Returns whether the Content-Type header indicates JSON.
|
|
50
|
+
*
|
|
51
|
+
* @param headers - Flat response header map.
|
|
52
|
+
* @returns True when content-type includes "json".
|
|
53
|
+
*/
|
|
54
|
+
function isJsonContentType(headers) {
|
|
55
|
+
const contentType = getHeader(headers, 'content-type');
|
|
56
|
+
return contentType !== undefined && contentType.toLowerCase().includes('json');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Deep-compares two values using JSON serialization (matches Chai eql semantics for plain objects).
|
|
60
|
+
*
|
|
61
|
+
* @param actual - Parsed response JSON.
|
|
62
|
+
* @param expected - Expected object shape.
|
|
63
|
+
* @returns True when deeply equal.
|
|
64
|
+
*/
|
|
65
|
+
function deepEqualJson(actual, expected) {
|
|
66
|
+
return JSON.stringify(actual) === JSON.stringify(expected);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Builds a branded response facade from a send result for Chai assertion subjects.
|
|
70
|
+
*
|
|
71
|
+
* @param resp - HTTP response from the completed send.
|
|
72
|
+
* @returns Branded subject passed to `scriptExpect` for `hc.response.to`.
|
|
73
|
+
*/
|
|
74
|
+
export function createResponseAssertionSubject(resp) {
|
|
75
|
+
const subject = {
|
|
76
|
+
code: resp.status,
|
|
77
|
+
statusText: resp.statusText,
|
|
78
|
+
headers: resp.headers,
|
|
79
|
+
body: resp.body,
|
|
80
|
+
responseTime: resp.timeMs,
|
|
81
|
+
sizeBytes: resp.sizeBytes,
|
|
82
|
+
[RESPONSE_ASSERTION_BRAND]: true
|
|
83
|
+
};
|
|
84
|
+
return subject;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Runs a Chai assertion with optional expected/actual placeholders for strict typing.
|
|
88
|
+
*
|
|
89
|
+
* @param assertion - Chai assertion instance.
|
|
90
|
+
* @param expr - Expression that must be truthy for the assertion to pass.
|
|
91
|
+
* @param message - Failure message when expr is false.
|
|
92
|
+
* @param negateMessage - Failure message when expr is true under negation.
|
|
93
|
+
* @param expected - Optional expected value for message interpolation.
|
|
94
|
+
* @param actual - Optional actual value for message interpolation.
|
|
95
|
+
*/
|
|
96
|
+
function assertMatch(assertion, expr, message, negateMessage, expected, actual) {
|
|
97
|
+
assertion.assert(expr, message, negateMessage, expected, actual);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Reads the branded response subject from a Chai assertion or throws a scope error.
|
|
101
|
+
*
|
|
102
|
+
* @param assertion - Chai assertion instance (`this` inside a matcher).
|
|
103
|
+
* @param utils - Chai plugin utilities.
|
|
104
|
+
* @returns Branded response subject.
|
|
105
|
+
*/
|
|
106
|
+
function requireResponseSubject(assertion, utils) {
|
|
107
|
+
const subject = utils.flag(assertion, 'object');
|
|
108
|
+
if (!isResponseAssertionSubject(subject)) {
|
|
109
|
+
throw new Error(RESPONSE_SCOPE_ERROR);
|
|
110
|
+
}
|
|
111
|
+
return subject;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Registers Postman-style response matchers on the Chai Assertion prototype.
|
|
115
|
+
*
|
|
116
|
+
* Must run before SES `lockdown()` in the script runner import chain.
|
|
117
|
+
*
|
|
118
|
+
* @param chai - Chai module instance from the script sandbox host.
|
|
119
|
+
*/
|
|
120
|
+
export function installResponseAssertions(chai) {
|
|
121
|
+
const { Assertion } = chai;
|
|
122
|
+
const utils = chai.util;
|
|
123
|
+
/**
|
|
124
|
+
* Asserts HTTP status code or status text.
|
|
125
|
+
*
|
|
126
|
+
* @param codeOrText - Numeric status code or status text string.
|
|
127
|
+
*/
|
|
128
|
+
utils.addMethod(Assertion.prototype, 'status', function statusMatcher(codeOrText) {
|
|
129
|
+
const res = requireResponseSubject(this, utils);
|
|
130
|
+
if (typeof codeOrText === 'number') {
|
|
131
|
+
assertMatch(this, res.code === codeOrText, `expected response to have status code #{exp} but got #{act}`, `expected response to not have status code #{exp}`, codeOrText, res.code);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
const expected = String(codeOrText).toLowerCase();
|
|
135
|
+
const actual = res.statusText.toLowerCase();
|
|
136
|
+
assertMatch(this, actual === expected, `expected response to have status text #{exp} but got #{act}`, `expected response to not have status text #{exp}`, codeOrText, res.statusText);
|
|
137
|
+
}
|
|
138
|
+
}, 'have');
|
|
139
|
+
/**
|
|
140
|
+
* Asserts response header presence or header value.
|
|
141
|
+
*
|
|
142
|
+
* @param name - Header name (case-insensitive).
|
|
143
|
+
* @param value - Optional expected header value.
|
|
144
|
+
*/
|
|
145
|
+
utils.addMethod(Assertion.prototype, 'header', function headerMatcher(name, value) {
|
|
146
|
+
const res = requireResponseSubject(this, utils);
|
|
147
|
+
const headerName = String(name);
|
|
148
|
+
const actual = getHeader(res.headers, headerName);
|
|
149
|
+
if (value === undefined) {
|
|
150
|
+
assertMatch(this, actual !== undefined, `expected response to have header #{exp}`, `expected response to not have header #{exp}`, headerName);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
const expected = String(value);
|
|
154
|
+
assertMatch(this, actual === expected, `expected response header #{exp} to equal #{act}`, `expected response header #{exp} to not equal #{act}`, `${headerName}=${expected}`, actual === undefined ? undefined : `${headerName}=${actual}`);
|
|
155
|
+
}
|
|
156
|
+
}, 'have');
|
|
157
|
+
/**
|
|
158
|
+
* Asserts response body content.
|
|
159
|
+
*
|
|
160
|
+
* @param expected - When omitted, body must be non-empty; string for exact match; RegExp for pattern.
|
|
161
|
+
*/
|
|
162
|
+
utils.addMethod(Assertion.prototype, 'body', function bodyMatcher(expected) {
|
|
163
|
+
const res = requireResponseSubject(this, utils);
|
|
164
|
+
if (expected === undefined) {
|
|
165
|
+
assertMatch(this, res.body.length > 0, 'expected response to have a body', 'expected response to not have a body');
|
|
166
|
+
}
|
|
167
|
+
else if (expected instanceof RegExp) {
|
|
168
|
+
assertMatch(this, expected.test(res.body), `expected response body to match #{exp}`, `expected response body to not match #{exp}`, expected, res.body);
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
const expectedText = String(expected);
|
|
172
|
+
assertMatch(this, res.body === expectedText, `expected response body to equal #{exp}`, `expected response body to not equal #{exp}`, expectedText, res.body);
|
|
173
|
+
}
|
|
174
|
+
}, 'have');
|
|
175
|
+
/**
|
|
176
|
+
* Asserts the response body is valid JSON, optionally deep-equal to an expected object.
|
|
177
|
+
*
|
|
178
|
+
* @param expected - When provided, parsed body must deeply equal this value.
|
|
179
|
+
*/
|
|
180
|
+
utils.addMethod(Assertion.prototype, 'jsonBody', function jsonBodyMatcher(expected) {
|
|
181
|
+
const res = requireResponseSubject(this, utils);
|
|
182
|
+
let parsed;
|
|
183
|
+
try {
|
|
184
|
+
parsed = parseJsonBody(res.body);
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
assertMatch(this, false, 'expected response body to be valid JSON', 'expected response body to not be valid JSON');
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
if (expected !== undefined) {
|
|
191
|
+
assertMatch(this, deepEqualJson(parsed, expected), `expected response JSON body to deeply equal #{exp}`, `expected response JSON body to not deeply equal #{exp}`, expected, parsed);
|
|
192
|
+
}
|
|
193
|
+
}, 'have');
|
|
194
|
+
/**
|
|
195
|
+
* Registers a boolean status-class property on the assertion chain after `be`.
|
|
196
|
+
*
|
|
197
|
+
* @param name - Property name exposed as `.to.be.<name>`.
|
|
198
|
+
* @param predicate - Returns true when the response matches the status class.
|
|
199
|
+
* @param label - Human-readable label for assertion messages.
|
|
200
|
+
*/
|
|
201
|
+
function addStatusClassProperty(name, predicate, label) {
|
|
202
|
+
utils.addProperty(Assertion.prototype, name, wrapCallablePropertyGetter(function statusClassProperty() {
|
|
203
|
+
const res = requireResponseSubject(this, utils);
|
|
204
|
+
assertMatch(this, predicate(res.code), `expected response to be ${label} but got status #{act}`, `expected response to not be ${label}`, undefined, res.code);
|
|
205
|
+
}), 'be');
|
|
206
|
+
}
|
|
207
|
+
addStatusClassProperty('success', (code) => code >= 200 && code < 300, 'successful (2xx)');
|
|
208
|
+
addStatusClassProperty('redirection', (code) => code >= 300 && code < 400, 'a redirection (3xx)');
|
|
209
|
+
addStatusClassProperty('clientError', (code) => code >= 400 && code < 500, 'a client error (4xx)');
|
|
210
|
+
addStatusClassProperty('serverError', (code) => code >= 500 && code < 600, 'a server error (5xx)');
|
|
211
|
+
addStatusClassProperty('error', (code) => code >= 400, 'an error (4xx or 5xx)');
|
|
212
|
+
/**
|
|
213
|
+
* Extends Chai's truthy `.to.be.ok` with a 2xx check when the subject is hc.response.
|
|
214
|
+
*/
|
|
215
|
+
Assertion.overwriteProperty('ok', function okProperty(superFn) {
|
|
216
|
+
return function okPropertyGetter() {
|
|
217
|
+
const subject = utils.flag(this, 'object');
|
|
218
|
+
if (!isResponseAssertionSubject(subject)) {
|
|
219
|
+
superFn.call(this);
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
assertMatch(this, subject.code >= 200 && subject.code < 300, 'expected response to be ok (2xx) but got status #{act}', 'expected response to not be ok (2xx)', undefined, subject.code);
|
|
223
|
+
};
|
|
224
|
+
});
|
|
225
|
+
addStatusClassProperty('accepted', (code) => code === 202, 'Accepted (202)');
|
|
226
|
+
addStatusClassProperty('badRequest', (code) => code === 400, 'Bad Request (400)');
|
|
227
|
+
addStatusClassProperty('unauthorized', (code) => code === 401, 'Unauthorized (401)');
|
|
228
|
+
addStatusClassProperty('forbidden', (code) => code === 403, 'Forbidden (403)');
|
|
229
|
+
addStatusClassProperty('notFound', (code) => code === 404, 'Not Found (404)');
|
|
230
|
+
addStatusClassProperty('rateLimited', (code) => code === 429, 'Too Many Requests (429)');
|
|
231
|
+
utils.addProperty(Assertion.prototype, 'json', wrapCallablePropertyGetter(function jsonProperty() {
|
|
232
|
+
const res = requireResponseSubject(this, utils);
|
|
233
|
+
let parses = false;
|
|
234
|
+
try {
|
|
235
|
+
parseJsonBody(res.body);
|
|
236
|
+
parses = true;
|
|
237
|
+
}
|
|
238
|
+
catch {
|
|
239
|
+
parses = false;
|
|
240
|
+
}
|
|
241
|
+
const hasJsonType = isJsonContentType(res.headers);
|
|
242
|
+
assertMatch(this, hasJsonType && parses, 'expected response to be JSON (content-type and valid JSON body)', 'expected response to not be JSON');
|
|
243
|
+
}), 'be');
|
|
244
|
+
utils.addProperty(Assertion.prototype, 'withBody', wrapCallablePropertyGetter(function withBodyProperty() {
|
|
245
|
+
const res = requireResponseSubject(this, utils);
|
|
246
|
+
assertMatch(this, res.body.length > 0, 'expected response to have a body', 'expected response to not have a body');
|
|
247
|
+
}), 'be');
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=scriptResponseAssertions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scriptResponseAssertions.js","sourceRoot":"","sources":["../../src/scripting/scriptResponseAssertions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Element surface exposed to post-request scripts for HTML response querying.
|
|
3
|
+
*/
|
|
4
|
+
export interface ScriptElementFacade {
|
|
5
|
+
/**
|
|
6
|
+
* Concatenated text content of the element and its descendants.
|
|
7
|
+
*/
|
|
8
|
+
textContent: string;
|
|
9
|
+
/**
|
|
10
|
+
* Returns the named attribute value, or null when absent.
|
|
11
|
+
*
|
|
12
|
+
* @param name - Attribute name (case-sensitive per HTML rules).
|
|
13
|
+
*/
|
|
14
|
+
getAttribute(name: string): string | null;
|
|
15
|
+
/**
|
|
16
|
+
* Serialized inner HTML of the element's children.
|
|
17
|
+
*/
|
|
18
|
+
innerHTML: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Document surface backed by Cheerio for querying HTML response bodies.
|
|
22
|
+
*/
|
|
23
|
+
export interface ScriptDocumentFacade {
|
|
24
|
+
/**
|
|
25
|
+
* Returns the first element matching a CSS selector, or null when none match.
|
|
26
|
+
*
|
|
27
|
+
* @param selector - CSS selector understood by Cheerio.
|
|
28
|
+
*/
|
|
29
|
+
querySelector(selector: string): ScriptElementFacade | null;
|
|
30
|
+
/**
|
|
31
|
+
* Returns every element matching a CSS selector.
|
|
32
|
+
*
|
|
33
|
+
* @param selector - CSS selector understood by Cheerio.
|
|
34
|
+
*/
|
|
35
|
+
querySelectorAll(selector: string): ScriptElementFacade[];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Parses an HTML response body into a DOM-like document facade for script sandboxes.
|
|
39
|
+
*
|
|
40
|
+
* Uses Cheerio under the hood; returned objects are plain facades without exposing
|
|
41
|
+
* the Cheerio instance to user scripts.
|
|
42
|
+
*
|
|
43
|
+
* @param html - Raw response body string.
|
|
44
|
+
* @returns Document with querySelector helpers.
|
|
45
|
+
*/
|
|
46
|
+
export declare function parseResponseDocument(html: string): ScriptDocumentFacade;
|
|
47
|
+
//# sourceMappingURL=scriptResponseDocument.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scriptResponseDocument.d.ts","sourceRoot":"","sources":["../../src/scripting/scriptResponseDocument.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAE1C;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAAC;IAE5D;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAAC;CAC3D;AA2BD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAgBxE"}
|