@api-client/ui 0.0.4 → 0.0.7
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/demo/elements/http/http-assertions.html +3 -0
- package/demo/elements/http/http-assertions.ts +1 -1
- package/demo/elements/http/http-flows.html +23 -0
- package/demo/elements/http/http-flows.ts +92 -0
- package/demo/elements/http/index.html +3 -0
- package/demo/pages/http-project/main.ts +5 -6
- package/dist/amf/lib/AmfParameters.js +0 -4
- package/dist/amf/lib/AmfParameters.js.map +1 -1
- package/dist/amf/lib/navigation-layout/EndpointsTree.js +0 -2
- package/dist/amf/lib/navigation-layout/EndpointsTree.js.map +1 -1
- package/dist/amf/lib/navigation-layout/NaturalTree.js +0 -2
- package/dist/amf/lib/navigation-layout/NaturalTree.js.map +1 -1
- package/dist/amf/store/AmfGraphStore.js +0 -2
- package/dist/amf/store/AmfGraphStore.js.map +1 -1
- package/dist/amf/store/AmfStore.js +0 -7
- package/dist/amf/store/AmfStore.js.map +1 -1
- package/dist/bindings/base/HttpClientStoreBindings.js +4 -1
- package/dist/bindings/base/HttpClientStoreBindings.js.map +1 -1
- package/dist/bindings/base/PlatformBindings.js +6 -10
- package/dist/bindings/base/PlatformBindings.js.map +1 -1
- package/dist/bindings/base/ProxyBindings.js +9 -6
- package/dist/bindings/base/ProxyBindings.js.map +1 -1
- package/dist/bindings/base/SharedWorkerThread.js +4 -1
- package/dist/bindings/base/SharedWorkerThread.js.map +1 -1
- package/dist/bindings/base/StoreBindings.js +162 -170
- package/dist/bindings/base/StoreBindings.js.map +1 -1
- package/dist/bindings/web/WebConfigurationBindings.js +22 -24
- package/dist/bindings/web/WebConfigurationBindings.js.map +1 -1
- package/dist/bindings/web/WebFileBindings.js +7 -4
- package/dist/bindings/web/WebFileBindings.js.map +1 -1
- package/dist/bindings/web/WebHttpClientStoreBindings.js +19 -21
- package/dist/bindings/web/WebHttpClientStoreBindings.js.map +1 -1
- package/dist/bindings/web/WebNavigationBindings.js +4 -1
- package/dist/bindings/web/WebNavigationBindings.js.map +1 -1
- package/dist/bindings/web/WebProxyBindings.js +5 -6
- package/dist/bindings/web/WebProxyBindings.js.map +1 -1
- package/dist/bindings/web/WebStoreBindings.js +39 -44
- package/dist/bindings/web/WebStoreBindings.js.map +1 -1
- package/dist/contextual-menu/ContextualMenu.js +10 -19
- package/dist/contextual-menu/ContextualMenu.js.map +1 -1
- package/dist/contextual-menu/ContextualMenuElement.js +4 -32
- package/dist/contextual-menu/ContextualMenuElement.js.map +1 -1
- package/dist/contextual-menu/MenuItem.js +0 -12
- package/dist/contextual-menu/MenuItem.js.map +1 -1
- package/dist/define/amf/api-annotation-document.js +1 -1
- package/dist/define/amf/api-annotation-document.js.map +1 -1
- package/dist/define/amf/api-authorization-editor.js +1 -1
- package/dist/define/amf/api-authorization-editor.js.map +1 -1
- package/dist/define/amf/api-channel-document.js +1 -1
- package/dist/define/amf/api-channel-document.js.map +1 -1
- package/dist/define/amf/api-documentation-document.js +1 -1
- package/dist/define/amf/api-documentation-document.js.map +1 -1
- package/dist/define/amf/api-documentation.js +1 -1
- package/dist/define/amf/api-documentation.js.map +1 -1
- package/dist/define/amf/api-navigation.js +1 -1
- package/dist/define/amf/api-navigation.js.map +1 -1
- package/dist/define/amf/api-operation-document.js +1 -1
- package/dist/define/amf/api-operation-document.js.map +1 -1
- package/dist/define/amf/api-parameter-document.js +1 -1
- package/dist/define/amf/api-parameter-document.js.map +1 -1
- package/dist/define/amf/api-parametrized-security-scheme.js +1 -1
- package/dist/define/amf/api-parametrized-security-scheme.js.map +1 -1
- package/dist/define/amf/api-payload-document.js +1 -1
- package/dist/define/amf/api-payload-document.js.map +1 -1
- package/dist/define/amf/api-request-document.js +1 -1
- package/dist/define/amf/api-request-document.js.map +1 -1
- package/dist/define/amf/api-request-editor.js +1 -1
- package/dist/define/amf/api-request-editor.js.map +1 -1
- package/dist/define/amf/api-request.js +1 -1
- package/dist/define/amf/api-request.js.map +1 -1
- package/dist/define/amf/api-resource-document.js +1 -1
- package/dist/define/amf/api-resource-document.js.map +1 -1
- package/dist/define/amf/api-response-document.js +1 -1
- package/dist/define/amf/api-response-document.js.map +1 -1
- package/dist/define/amf/api-schema-document.js +1 -1
- package/dist/define/amf/api-schema-document.js.map +1 -1
- package/dist/define/amf/api-security-document.js +1 -1
- package/dist/define/amf/api-security-document.js.map +1 -1
- package/dist/define/amf/api-security-requirement-document.js +1 -1
- package/dist/define/amf/api-security-requirement-document.js.map +1 -1
- package/dist/define/amf/api-server-picker.js +1 -1
- package/dist/define/amf/api-server-picker.js.map +1 -1
- package/dist/define/amf/api-summary.js +1 -1
- package/dist/define/amf/api-summary.js.map +1 -1
- package/dist/define/amf/authorization/amf-apikey-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-apikey-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-basic-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-basic-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-bearer-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-bearer-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-oauth2-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-oauth2-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-oidc-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-oidc-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-passthrough-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-passthrough-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-ramlcustom-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-ramlcustom-authorization.js.map +1 -1
- package/dist/define/authorization/apikey-authorization.js +1 -1
- package/dist/define/authorization/apikey-authorization.js.map +1 -1
- package/dist/define/authorization/basic-authorization.js +1 -1
- package/dist/define/authorization/basic-authorization.js.map +1 -1
- package/dist/define/authorization/bearer-authorization.js +1 -1
- package/dist/define/authorization/bearer-authorization.js.map +1 -1
- package/dist/define/authorization/cc-authorization.js +1 -1
- package/dist/define/authorization/cc-authorization.js.map +1 -1
- package/dist/define/authorization/ntlm-authorization.js +1 -1
- package/dist/define/authorization/ntlm-authorization.js.map +1 -1
- package/dist/define/authorization/oauth2-authorization.js +1 -1
- package/dist/define/authorization/oauth2-authorization.js.map +1 -1
- package/dist/define/authorization/oidc-authorization.js +1 -1
- package/dist/define/authorization/oidc-authorization.js.map +1 -1
- package/dist/define/contextual-menu/contextual-menu.js +1 -1
- package/dist/define/contextual-menu/contextual-menu.js.map +1 -1
- package/dist/define/dialog/confirm-delete-dialog.js +1 -1
- package/dist/define/dialog/confirm-delete-dialog.js.map +1 -1
- package/dist/define/dialog/delete-cookie-action-dialog.d.ts +10 -0
- package/dist/define/dialog/delete-cookie-action-dialog.d.ts.map +1 -0
- package/dist/define/dialog/delete-cookie-action-dialog.js +14 -0
- package/dist/define/dialog/delete-cookie-action-dialog.js.map +1 -0
- package/dist/define/dialog/rename-dialog.js +1 -1
- package/dist/define/dialog/rename-dialog.js.map +1 -1
- package/dist/define/dialog/set-cookie-action-dialog.d.ts +10 -0
- package/dist/define/dialog/set-cookie-action-dialog.d.ts.map +1 -0
- package/dist/define/dialog/set-cookie-action-dialog.js +14 -0
- package/dist/define/dialog/set-cookie-action-dialog.js.map +1 -0
- package/dist/define/files/share-file.js +1 -1
- package/dist/define/files/share-file.js.map +1 -1
- package/dist/define/har/har-viewer.js +1 -1
- package/dist/define/har/har-viewer.js.map +1 -1
- package/dist/define/highlight/marked-highlight.js +1 -1
- package/dist/define/highlight/marked-highlight.js.map +1 -1
- package/dist/define/highlight/prism-highlight.js +1 -1
- package/dist/define/highlight/prism-highlight.js.map +1 -1
- package/dist/define/http/http-assertions.d.ts +1 -1
- package/dist/define/http/http-assertions.d.ts.map +1 -1
- package/dist/define/http/http-assertions.js +3 -3
- package/dist/define/http/http-assertions.js.map +1 -1
- package/dist/define/http/http-body-editor.js +1 -1
- package/dist/define/http/http-body-editor.js.map +1 -1
- package/dist/define/http/http-body-multipart-editor.js +1 -1
- package/dist/define/http/http-body-multipart-editor.js.map +1 -1
- package/dist/define/http/http-body-text-editor.js +1 -1
- package/dist/define/http/http-body-text-editor.js.map +1 -1
- package/dist/define/http/http-body-urlencoded-editor.js +1 -1
- package/dist/define/http/http-body-urlencoded-editor.js.map +1 -1
- package/dist/define/http/http-flows.d.ts +10 -0
- package/dist/define/http/http-flows.d.ts.map +1 -0
- package/dist/define/http/http-flows.js +13 -0
- package/dist/define/http/http-flows.js.map +1 -0
- package/dist/define/http/http-headers-form.js +1 -1
- package/dist/define/http/http-headers-form.js.map +1 -1
- package/dist/define/http/http-log-body.js +1 -1
- package/dist/define/http/http-log-body.js.map +1 -1
- package/dist/define/http/http-log-headers.js +1 -1
- package/dist/define/http/http-log-headers.js.map +1 -1
- package/dist/define/http/http-log-timings.js +1 -1
- package/dist/define/http/http-log-timings.js.map +1 -1
- package/dist/define/http/http-request-config.js +1 -1
- package/dist/define/http/http-request-config.js.map +1 -1
- package/dist/define/http/http-request-editor.js +1 -1
- package/dist/define/http/http-request-editor.js.map +1 -1
- package/dist/define/http/http-request-log.js +1 -1
- package/dist/define/http/http-request-log.js.map +1 -1
- package/dist/define/http/http-snippets.js +1 -1
- package/dist/define/http/http-snippets.js.map +1 -1
- package/dist/define/http/http-url-input.js +1 -1
- package/dist/define/http/http-url-input.js.map +1 -1
- package/dist/define/http/http-url-params-form.js +1 -1
- package/dist/define/http/http-url-params-form.js.map +1 -1
- package/dist/define/http-project/http-project-request-history.js +1 -1
- package/dist/define/http-project/http-project-request-history.js.map +1 -1
- package/dist/define/http-project/http-project-request.js +2 -2
- package/dist/define/http-project/http-project-request.js.map +1 -1
- package/dist/define/http-project/project-navigation.js +1 -1
- package/dist/define/http-project/project-navigation.js.map +1 -1
- package/dist/define/http-project/project-run-report.js +1 -1
- package/dist/define/http-project/project-run-report.js.map +1 -1
- package/dist/define/http-project/project-runner.js +2 -2
- package/dist/define/http-project/project-runner.js.map +1 -1
- package/dist/define/layout/split-view.js +1 -1
- package/dist/define/layout/split-view.js.map +1 -1
- package/dist/define/schema-design/schema-design-navigation.js +1 -1
- package/dist/define/schema-design/schema-design-navigation.js.map +1 -1
- package/dist/define/schema-design/schema-namespace-selector.js +1 -1
- package/dist/define/schema-design/schema-namespace-selector.js.map +1 -1
- package/dist/define/ui/ui-button.js +1 -1
- package/dist/define/ui/ui-button.js.map +1 -1
- package/dist/define/ui/ui-chip.js +1 -1
- package/dist/define/ui/ui-chip.js.map +1 -1
- package/dist/define/ui/ui-collapse.js +1 -1
- package/dist/define/ui/ui-collapse.js.map +1 -1
- package/dist/define/ui/ui-dialog.js +1 -1
- package/dist/define/ui/ui-dialog.js.map +1 -1
- package/dist/define/ui/ui-divider.d.ts +4 -1
- package/dist/define/ui/ui-divider.d.ts.map +1 -1
- package/dist/define/ui/ui-divider.js +11 -2
- package/dist/define/ui/ui-divider.js.map +1 -1
- package/dist/define/ui/ui-dropdown-list.js +1 -1
- package/dist/define/ui/ui-dropdown-list.js.map +1 -1
- package/dist/define/ui/ui-icon-button.js +1 -1
- package/dist/define/ui/ui-icon-button.js.map +1 -1
- package/dist/define/ui/ui-icon.js +1 -1
- package/dist/define/ui/ui-icon.js.map +1 -1
- package/dist/define/ui/ui-list-item.js +1 -1
- package/dist/define/ui/ui-list-item.js.map +1 -1
- package/dist/define/ui/ui-list.js +1 -1
- package/dist/define/ui/ui-list.js.map +1 -1
- package/dist/define/ui/ui-listbox.js +1 -1
- package/dist/define/ui/ui-listbox.js.map +1 -1
- package/dist/define/ui/ui-progress.js +1 -1
- package/dist/define/ui/ui-progress.js.map +1 -1
- package/dist/define/ui/ui-segmented-button-set.js +1 -1
- package/dist/define/ui/ui-segmented-button-set.js.map +1 -1
- package/dist/define/ui/ui-segmented-button.js +1 -1
- package/dist/define/ui/ui-segmented-button.js.map +1 -1
- package/dist/define/ui/ui-snackbar.js +1 -1
- package/dist/define/ui/ui-snackbar.js.map +1 -1
- package/dist/define/ui/ui-tab.js +1 -1
- package/dist/define/ui/ui-tab.js.map +1 -1
- package/dist/define/ui/ui-tabs.js +1 -1
- package/dist/define/ui/ui-tabs.js.map +1 -1
- package/dist/directives/data-attr.js +0 -1
- package/dist/directives/data-attr.js.map +1 -1
- package/dist/elements/ApiElement.d.ts +4 -0
- package/dist/elements/ApiElement.d.ts.map +1 -1
- package/dist/elements/ApiElement.js +6 -7
- package/dist/elements/ApiElement.js.map +1 -1
- package/dist/elements/amf/ApiAnnotationDocument.element.js +0 -2
- package/dist/elements/amf/ApiAnnotationDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiAuthorizationEditor.element.js +1 -33
- package/dist/elements/amf/ApiAuthorizationEditor.element.js.map +1 -1
- package/dist/elements/amf/ApiDocumentation.element.js +0 -91
- package/dist/elements/amf/ApiDocumentation.element.js.map +1 -1
- package/dist/elements/amf/ApiDocumentationBase.js +0 -9
- package/dist/elements/amf/ApiDocumentationBase.js.map +1 -1
- package/dist/elements/amf/ApiDocumentationDocument.element.js +0 -1
- package/dist/elements/amf/ApiDocumentationDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiNavigation.element.js +0 -97
- package/dist/elements/amf/ApiNavigation.element.js.map +1 -1
- package/dist/elements/amf/ApiOperationDocument.element.d.ts.map +1 -1
- package/dist/elements/amf/ApiOperationDocument.element.js +2 -77
- package/dist/elements/amf/ApiOperationDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiParameterDocument.element.js +0 -3
- package/dist/elements/amf/ApiParameterDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js +0 -1
- package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js.map +1 -1
- package/dist/elements/amf/ApiPayloadDocument.element.js +0 -1
- package/dist/elements/amf/ApiPayloadDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiRequest.element.js +1 -79
- package/dist/elements/amf/ApiRequest.element.js.map +1 -1
- package/dist/elements/amf/ApiRequestDocument.element.js +0 -38
- package/dist/elements/amf/ApiRequestDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiRequestEditor.element.d.ts +0 -1
- package/dist/elements/amf/ApiRequestEditor.element.d.ts.map +1 -1
- package/dist/elements/amf/ApiRequestEditor.element.js +0 -121
- package/dist/elements/amf/ApiRequestEditor.element.js.map +1 -1
- package/dist/elements/amf/ApiResourceDocument.element.js +0 -75
- package/dist/elements/amf/ApiResourceDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiResponseDocument.element.js +0 -17
- package/dist/elements/amf/ApiResponseDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiSchemaDocument.element.js +0 -28
- package/dist/elements/amf/ApiSchemaDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiSecurityDocument.element.js +0 -28
- package/dist/elements/amf/ApiSecurityDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiSecurityRequirementDocument.element.js +0 -1
- package/dist/elements/amf/ApiSecurityRequirementDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiServerPicker.element.js +2 -65
- package/dist/elements/amf/ApiServerPicker.element.js.map +1 -1
- package/dist/elements/amf/ApiSummary.element.js +0 -26
- package/dist/elements/amf/ApiSummary.element.js.map +1 -1
- package/dist/elements/amf/authorization/AmfApiKey.js +0 -5
- package/dist/elements/amf/authorization/AmfApiKey.js.map +1 -1
- package/dist/elements/amf/authorization/AmfBasic.js +0 -4
- package/dist/elements/amf/authorization/AmfBasic.js.map +1 -1
- package/dist/elements/amf/authorization/AmfBearer.js +0 -4
- package/dist/elements/amf/authorization/AmfBearer.js.map +1 -1
- package/dist/elements/amf/authorization/AmfOauth2.js +0 -13
- package/dist/elements/amf/authorization/AmfOauth2.js.map +1 -1
- package/dist/elements/amf/authorization/AmfOidc.js +0 -4
- package/dist/elements/amf/authorization/AmfOidc.js.map +1 -1
- package/dist/elements/amf/authorization/AmfPassThrough.js +0 -6
- package/dist/elements/amf/authorization/AmfPassThrough.js.map +1 -1
- package/dist/elements/amf/authorization/AmfRamlCustom.js +0 -6
- package/dist/elements/amf/authorization/AmfRamlCustom.js.map +1 -1
- package/dist/elements/authorization/OAuth2Authorize.js +0 -14
- package/dist/elements/authorization/OAuth2Authorize.js.map +1 -1
- package/dist/elements/authorization/OidcAuthorize.js +0 -14
- package/dist/elements/authorization/OidcAuthorize.js.map +1 -1
- package/dist/elements/authorization/ui/ApiKeyAuthorization.js +0 -2
- package/dist/elements/authorization/ui/ApiKeyAuthorization.js.map +1 -1
- package/dist/elements/authorization/ui/Authorization.d.ts +2 -1
- package/dist/elements/authorization/ui/Authorization.d.ts.map +1 -1
- package/dist/elements/authorization/ui/Authorization.js +18 -35
- package/dist/elements/authorization/ui/Authorization.js.map +1 -1
- package/dist/elements/authorization/ui/CcAuthorization.js +1 -3
- package/dist/elements/authorization/ui/CcAuthorization.js.map +1 -1
- package/dist/elements/authorization/ui/OAuth2Authorization.js +21 -50
- package/dist/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
- package/dist/elements/authorization/ui/OidcAuthorization.js +4 -6
- package/dist/elements/authorization/ui/OidcAuthorization.js.map +1 -1
- package/dist/elements/code/HttpSnippets.js +9 -8
- package/dist/elements/code/HttpSnippets.js.map +1 -1
- package/dist/elements/dialog/ConfirmDelete.js +0 -12
- package/dist/elements/dialog/ConfirmDelete.js.map +1 -1
- package/dist/elements/dialog/DeleteCookieAction.element.d.ts +20 -0
- package/dist/elements/dialog/DeleteCookieAction.element.d.ts.map +1 -0
- package/dist/elements/dialog/DeleteCookieAction.element.js +93 -0
- package/dist/elements/dialog/DeleteCookieAction.element.js.map +1 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.d.ts +3 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.d.ts.map +1 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.js +13 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.js.map +1 -0
- package/dist/elements/dialog/Rename.d.ts +7 -6
- package/dist/elements/dialog/Rename.d.ts.map +1 -1
- package/dist/elements/dialog/Rename.js +7 -12
- package/dist/elements/dialog/Rename.js.map +1 -1
- package/dist/elements/dialog/SetCookieAction.element.d.ts +22 -0
- package/dist/elements/dialog/SetCookieAction.element.d.ts.map +1 -0
- package/dist/elements/dialog/SetCookieAction.element.js +173 -0
- package/dist/elements/dialog/SetCookieAction.element.js.map +1 -0
- package/dist/elements/environment/EnvironmentEditor.d.ts +24 -3
- package/dist/elements/environment/EnvironmentEditor.d.ts.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.js +73 -30
- package/dist/elements/environment/EnvironmentEditor.js.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.styles.d.ts.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.styles.js +5 -0
- package/dist/elements/environment/EnvironmentEditor.styles.js.map +1 -1
- package/dist/elements/environment/ServerEditor.d.ts +3 -3
- package/dist/elements/environment/ServerEditor.d.ts.map +1 -1
- package/dist/elements/environment/ServerEditor.js +10 -51
- package/dist/elements/environment/ServerEditor.js.map +1 -1
- package/dist/elements/environment/VariablesEditor.d.ts +0 -1
- package/dist/elements/environment/VariablesEditor.d.ts.map +1 -1
- package/dist/elements/environment/VariablesEditor.js +10 -18
- package/dist/elements/environment/VariablesEditor.js.map +1 -1
- package/dist/elements/files/ShareFile.js +19 -57
- package/dist/elements/files/ShareFile.js.map +1 -1
- package/dist/elements/har/HarViewer.js +6 -7
- package/dist/elements/har/HarViewer.js.map +1 -1
- package/dist/elements/highlight/MarkedHighlight.js +4 -56
- package/dist/elements/highlight/MarkedHighlight.js.map +1 -1
- package/dist/elements/highlight/Prism.styles.d.ts.map +1 -1
- package/dist/elements/highlight/Prism.styles.js +12 -5
- package/dist/elements/highlight/Prism.styles.js.map +1 -1
- package/dist/elements/highlight/PrismHighlight.js +9 -18
- package/dist/elements/highlight/PrismHighlight.js.map +1 -1
- package/dist/elements/highlight/PrismHighlighter.js +4 -6
- package/dist/elements/highlight/PrismHighlighter.js.map +1 -1
- package/dist/elements/http/BodyEditor.d.ts +0 -4
- package/dist/elements/http/BodyEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyEditor.js +31 -49
- package/dist/elements/http/BodyEditor.js.map +1 -1
- package/dist/elements/http/BodyMultipartEditor.d.ts +3 -16
- package/dist/elements/http/BodyMultipartEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyMultipartEditor.js +20 -37
- package/dist/elements/http/BodyMultipartEditor.js.map +1 -1
- package/dist/elements/http/BodyTextEditor.d.ts +0 -1
- package/dist/elements/http/BodyTextEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyTextEditor.js +2 -18
- package/dist/elements/http/BodyTextEditor.js.map +1 -1
- package/dist/elements/http/BodyUrlEncodedEditor.d.ts +3 -3
- package/dist/elements/http/BodyUrlEncodedEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyUrlEncodedEditor.js +23 -26
- package/dist/elements/http/BodyUrlEncodedEditor.js.map +1 -1
- package/dist/elements/http/HeadersForm.d.ts +0 -4
- package/dist/elements/http/HeadersForm.d.ts.map +1 -1
- package/dist/elements/http/HeadersForm.js +16 -23
- package/dist/elements/http/HeadersForm.js.map +1 -1
- package/dist/elements/http/HttpAssertions.element.d.ts +55 -0
- package/dist/elements/http/HttpAssertions.element.d.ts.map +1 -0
- package/dist/elements/http/HttpAssertions.element.js +264 -0
- package/dist/elements/http/HttpAssertions.element.js.map +1 -0
- package/dist/elements/http/HttpAssertions.styles.d.ts.map +1 -1
- package/dist/elements/http/HttpAssertions.styles.js +7 -156
- package/dist/elements/http/HttpAssertions.styles.js.map +1 -1
- package/dist/elements/http/HttpFlows.common.d.ts +3 -0
- package/dist/elements/http/HttpFlows.common.d.ts.map +1 -0
- package/dist/elements/http/HttpFlows.common.js +181 -0
- package/dist/elements/http/HttpFlows.common.js.map +1 -0
- package/dist/elements/http/HttpFlows.element.d.ts +97 -0
- package/dist/elements/http/HttpFlows.element.d.ts.map +1 -0
- package/dist/elements/http/HttpFlows.element.js +684 -0
- package/dist/elements/http/HttpFlows.element.js.map +1 -0
- package/dist/elements/http/HttpFlows.styles.d.ts +3 -0
- package/dist/elements/http/HttpFlows.styles.d.ts.map +1 -0
- package/dist/elements/http/HttpFlows.styles.js +28 -0
- package/dist/elements/http/HttpFlows.styles.js.map +1 -0
- package/dist/elements/http/HttpFlowsUi.d.ts +172 -0
- package/dist/elements/http/HttpFlowsUi.d.ts.map +1 -0
- package/dist/elements/http/HttpFlowsUi.js +1256 -0
- package/dist/elements/http/HttpFlowsUi.js.map +1 -0
- package/dist/elements/http/LogBody.js +10 -21
- package/dist/elements/http/LogBody.js.map +1 -1
- package/dist/elements/http/LogHeaders.js +4 -23
- package/dist/elements/http/LogHeaders.js.map +1 -1
- package/dist/elements/http/LogTimings.js +11 -13
- package/dist/elements/http/LogTimings.js.map +1 -1
- package/dist/elements/http/RequestConfigElement.d.ts +0 -1
- package/dist/elements/http/RequestConfigElement.d.ts.map +1 -1
- package/dist/elements/http/RequestConfigElement.js +15 -15
- package/dist/elements/http/RequestConfigElement.js.map +1 -1
- package/dist/elements/http/RequestEditor.d.ts +10 -10
- package/dist/elements/http/RequestEditor.d.ts.map +1 -1
- package/dist/elements/http/RequestEditor.js +116 -111
- package/dist/elements/http/RequestEditor.js.map +1 -1
- package/dist/elements/http/RequestLog.js +9 -14
- package/dist/elements/http/RequestLog.js.map +1 -1
- package/dist/elements/http/UrlInput.d.ts +3 -3
- package/dist/elements/http/UrlInput.d.ts.map +1 -1
- package/dist/elements/http/UrlInput.js +17 -27
- package/dist/elements/http/UrlInput.js.map +1 -1
- package/dist/elements/http/UrlParamsForm.d.ts +0 -1
- package/dist/elements/http/UrlParamsForm.d.ts.map +1 -1
- package/dist/elements/http/UrlParamsForm.js +16 -16
- package/dist/elements/http/UrlParamsForm.js.map +1 -1
- package/dist/elements/layout/LayoutManager.js +16 -24
- package/dist/elements/layout/LayoutManager.js.map +1 -1
- package/dist/elements/layout/LayoutPanelElement.js +17 -23
- package/dist/elements/layout/LayoutPanelElement.js.map +1 -1
- package/dist/elements/layout/SplitItem.js +4 -12
- package/dist/elements/layout/SplitItem.js.map +1 -1
- package/dist/elements/layout/SplitLayout.js +18 -24
- package/dist/elements/layout/SplitLayout.js.map +1 -1
- package/dist/elements/layout/SplitPanel.js +10 -16
- package/dist/elements/layout/SplitPanel.js.map +1 -1
- package/dist/elements/layout/SplitView.js +17 -26
- package/dist/elements/layout/SplitView.js.map +1 -1
- package/dist/elements/layout/SplitView.styles.d.ts.map +1 -1
- package/dist/elements/layout/SplitView.styles.js +1 -0
- package/dist/elements/layout/SplitView.styles.js.map +1 -1
- package/dist/elements/navigation/AppNavigationElement.js +8 -47
- package/dist/elements/navigation/AppNavigationElement.js.map +1 -1
- package/dist/elements/navigation/AppNavigationItem.styles.d.ts.map +1 -1
- package/dist/elements/navigation/AppNavigationItem.styles.js +2 -0
- package/dist/elements/navigation/AppNavigationItem.styles.js.map +1 -1
- package/dist/elements/navigation/AppNavigationItemElement.js +19 -24
- package/dist/elements/navigation/AppNavigationItemElement.js.map +1 -1
- package/dist/elements/project/HttpProjectRequest.d.ts +2 -1
- package/dist/elements/project/HttpProjectRequest.d.ts.map +1 -1
- package/dist/elements/project/HttpProjectRequest.js +14 -43
- package/dist/elements/project/HttpProjectRequest.js.map +1 -1
- package/dist/elements/project/HttpProjectRequestHistory.js +9 -35
- package/dist/elements/project/HttpProjectRequestHistory.js.map +1 -1
- package/dist/elements/project/ProjectNavigation.js +0 -4
- package/dist/elements/project/ProjectNavigation.js.map +1 -1
- package/dist/elements/project/ProjectRunReport.js +4 -15
- package/dist/elements/project/ProjectRunReport.js.map +1 -1
- package/dist/elements/project/ProjectRunner.d.ts +0 -1
- package/dist/elements/project/ProjectRunner.d.ts.map +1 -1
- package/dist/elements/project/ProjectRunner.js +3 -51
- package/dist/elements/project/ProjectRunner.js.map +1 -1
- package/dist/elements/schema-design/AssociationFormElement.d.ts +0 -1
- package/dist/elements/schema-design/AssociationFormElement.d.ts.map +1 -1
- package/dist/elements/schema-design/AssociationFormElement.js +2 -18
- package/dist/elements/schema-design/AssociationFormElement.js.map +1 -1
- package/dist/elements/schema-design/DataEntityEditorElement.d.ts +2 -2
- package/dist/elements/schema-design/DataEntityEditorElement.d.ts.map +1 -1
- package/dist/elements/schema-design/DataEntityEditorElement.js +5 -27
- package/dist/elements/schema-design/DataEntityEditorElement.js.map +1 -1
- package/dist/elements/schema-design/DataModelVisualizationElement.js +0 -16
- package/dist/elements/schema-design/DataModelVisualizationElement.js.map +1 -1
- package/dist/elements/schema-design/DataSchemaDocument.d.ts +0 -1
- package/dist/elements/schema-design/DataSchemaDocument.d.ts.map +1 -1
- package/dist/elements/schema-design/DataSchemaDocument.js +4 -43
- package/dist/elements/schema-design/DataSchemaDocument.js.map +1 -1
- package/dist/elements/schema-design/EntityFormElement.d.ts +0 -1
- package/dist/elements/schema-design/EntityFormElement.d.ts.map +1 -1
- package/dist/elements/schema-design/EntityFormElement.js +4 -25
- package/dist/elements/schema-design/EntityFormElement.js.map +1 -1
- package/dist/elements/schema-design/PropertyFormElement.d.ts +1 -2
- package/dist/elements/schema-design/PropertyFormElement.d.ts.map +1 -1
- package/dist/elements/schema-design/PropertyFormElement.js +8 -23
- package/dist/elements/schema-design/PropertyFormElement.js.map +1 -1
- package/dist/elements/schema-design/SchemaDesignNavigation.js +0 -9
- package/dist/elements/schema-design/SchemaDesignNavigation.js.map +1 -1
- package/dist/elements/schema-design/SchemaNamespaceSelector.js +0 -9
- package/dist/elements/schema-design/SchemaNamespaceSelector.js.map +1 -1
- package/dist/elements/user/UserAvatarElement.js +0 -9
- package/dist/elements/user/UserAvatarElement.js.map +1 -1
- package/dist/events/http-client/models/CertificatesEvents.js +2 -2
- package/dist/events/http-client/models/CertificatesEvents.js.map +1 -1
- package/dist/http-client/idb/Base.js +5 -10
- package/dist/http-client/idb/Base.js.map +1 -1
- package/dist/http-client/idb/LegacyMockedStore.js +0 -1
- package/dist/http-client/idb/LegacyMockedStore.js.map +1 -1
- package/dist/http-client/idb/MockedStore.js +3 -1
- package/dist/http-client/idb/MockedStore.js.map +1 -1
- package/dist/http-client/store/DataImportProcessor.js +0 -3
- package/dist/http-client/store/DataImportProcessor.js.map +1 -1
- package/dist/http-client/store/HttpClientIdbDatabase.js +8 -7
- package/dist/http-client/store/HttpClientIdbDatabase.js.map +1 -1
- package/dist/http-client/store/IdbThread.js +23 -20
- package/dist/http-client/store/IdbThread.js.map +1 -1
- package/dist/http-client/store/idb/IdbProjectUi.js +4 -1
- package/dist/http-client/store/idb/IdbProjectUi.js.map +1 -1
- package/dist/http-client/store/idb/IdbStore.js +0 -2
- package/dist/http-client/store/idb/IdbStore.js.map +1 -1
- package/dist/http-client/store/idb/IdbUrlHistory.js +4 -1
- package/dist/http-client/store/idb/IdbUrlHistory.js.map +1 -1
- package/dist/http-client/store/idb/IdbWsHistory.js +4 -1
- package/dist/http-client/store/idb/IdbWsHistory.js.map +1 -1
- package/dist/lib/chart/HttpHistoryChart.js +7 -8
- package/dist/lib/chart/HttpHistoryChart.js.map +1 -1
- package/dist/mixins/FileDropMixin.js +0 -1
- package/dist/mixins/FileDropMixin.js.map +1 -1
- package/dist/mixins/RenderableMixin.js +11 -15
- package/dist/mixins/RenderableMixin.js.map +1 -1
- package/dist/pages/ApplicationScreen.d.ts +1 -1
- package/dist/pages/ApplicationScreen.d.ts.map +1 -1
- package/dist/pages/ApplicationScreen.js +35 -56
- package/dist/pages/ApplicationScreen.js.map +1 -1
- package/dist/pages/api-client/ApiClient.screen.js +11 -20
- package/dist/pages/api-client/ApiClient.screen.js.map +1 -1
- package/dist/pages/api-client/ApiClient.styles.d.ts.map +1 -1
- package/dist/pages/api-client/ApiClient.styles.js +22 -3
- package/dist/pages/api-client/ApiClient.styles.js.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.d.ts +2 -0
- package/dist/pages/api-client/Authenticate.screen.d.ts.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.js +23 -9
- package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
- package/dist/pages/api-client/StoreConfig.screen.d.ts.map +1 -1
- package/dist/pages/api-client/StoreConfig.screen.js +25 -39
- package/dist/pages/api-client/StoreConfig.screen.js.map +1 -1
- package/dist/pages/api-client/StoreConfig.styles.d.ts.map +1 -1
- package/dist/pages/api-client/StoreConfig.styles.js +5 -0
- package/dist/pages/api-client/StoreConfig.styles.js.map +1 -1
- package/dist/pages/api-client/Telemetry.screen.js +1 -2
- package/dist/pages/api-client/Telemetry.screen.js.map +1 -1
- package/dist/pages/api-client/pages/Files.page.d.ts +1 -0
- package/dist/pages/api-client/pages/Files.page.d.ts.map +1 -1
- package/dist/pages/api-client/pages/Files.page.js +8 -28
- package/dist/pages/api-client/pages/Files.page.js.map +1 -1
- package/dist/pages/api-client/pages/Settings.page.js +2 -4
- package/dist/pages/api-client/pages/Settings.page.js.map +1 -1
- package/dist/pages/api-client/pages/Trash.page.js +2 -13
- package/dist/pages/api-client/pages/Trash.page.js.map +1 -1
- package/dist/pages/demo/DemoPage.js +13 -13
- package/dist/pages/demo/DemoPage.js.map +1 -1
- package/dist/pages/http-project/HttpProject.screen.d.ts +0 -8
- package/dist/pages/http-project/HttpProject.screen.d.ts.map +1 -1
- package/dist/pages/http-project/HttpProject.screen.js +39 -50
- package/dist/pages/http-project/HttpProject.screen.js.map +1 -1
- package/dist/pages/http-project/types.d.ts +8 -6
- package/dist/pages/http-project/types.d.ts.map +1 -1
- package/dist/pages/http-project/types.js.map +1 -1
- package/dist/pages/schema-design/SchemaDesigner.screen.js +14 -27
- package/dist/pages/schema-design/SchemaDesigner.screen.js.map +1 -1
- package/dist/store/HttpStore.js +0 -3
- package/dist/store/HttpStore.js.map +1 -1
- package/dist/store/UserCache.js +5 -5
- package/dist/store/UserCache.js.map +1 -1
- package/dist/styles/m3/surface.module.d.ts.map +1 -1
- package/dist/styles/m3/surface.module.js +11 -27
- package/dist/styles/m3/surface.module.js.map +1 -1
- package/dist/ui/UiElement.d.ts +4 -0
- package/dist/ui/UiElement.d.ts.map +1 -1
- package/dist/ui/UiElement.js +10 -5
- package/dist/ui/UiElement.js.map +1 -1
- package/dist/ui/button/SegmentedButton.js +9 -11
- package/dist/ui/button/SegmentedButton.js.map +1 -1
- package/dist/ui/button/SegmentedButton.styles.d.ts.map +1 -1
- package/dist/ui/button/SegmentedButton.styles.js +3 -1
- package/dist/ui/button/SegmentedButton.styles.js.map +1 -1
- package/dist/ui/button/SegmentedButtonsSet.js +6 -7
- package/dist/ui/button/SegmentedButtonsSet.js.map +1 -1
- package/dist/ui/button/UiButton.js +17 -39
- package/dist/ui/button/UiButton.js.map +1 -1
- package/dist/ui/button/UiIconButton.js +9 -35
- package/dist/ui/button/UiIconButton.js.map +1 -1
- package/dist/ui/chip/UiChip.js +9 -49
- package/dist/ui/chip/UiChip.js.map +1 -1
- package/dist/ui/collapse/UiCollapse.js +15 -20
- package/dist/ui/collapse/UiCollapse.js.map +1 -1
- package/dist/ui/controllers/ActionController.js +143 -144
- package/dist/ui/controllers/ActionController.js.map +1 -1
- package/dist/ui/controllers/RadioSelectionController.js +0 -1
- package/dist/ui/controllers/RadioSelectionController.js.map +1 -1
- package/dist/ui/date/DateTime.js +3 -3
- package/dist/ui/date/DateTime.js.map +1 -1
- package/dist/ui/dialog/UiDialog.d.ts +3 -0
- package/dist/ui/dialog/UiDialog.d.ts.map +1 -1
- package/dist/ui/dialog/UiDialog.js +17 -38
- package/dist/ui/dialog/UiDialog.js.map +1 -1
- package/dist/ui/effects/ripple.d.ts.map +1 -1
- package/dist/ui/effects/ripple.js +25 -19
- package/dist/ui/effects/ripple.js.map +1 -1
- package/dist/ui/effects/rippleDirective.js +6 -7
- package/dist/ui/effects/rippleDirective.js.map +1 -1
- package/dist/ui/icons/Icons.d.ts +3 -2
- package/dist/ui/icons/Icons.d.ts.map +1 -1
- package/dist/ui/icons/Icons.js +2 -1
- package/dist/ui/icons/Icons.js.map +1 -1
- package/dist/ui/icons/UiIcon.js +4 -3
- package/dist/ui/icons/UiIcon.js.map +1 -1
- package/dist/ui/input/CheckboxElement.js +12 -10
- package/dist/ui/input/CheckboxElement.js.map +1 -1
- package/dist/ui/input/CheckedElement.d.ts +1 -1
- package/dist/ui/input/CheckedElement.d.ts.map +1 -1
- package/dist/ui/input/CheckedElement.js +5 -16
- package/dist/ui/input/CheckedElement.js.map +1 -1
- package/dist/ui/input/Input.js +170 -235
- package/dist/ui/input/Input.js.map +1 -1
- package/dist/ui/input/RadioElement.js +13 -11
- package/dist/ui/input/RadioElement.js.map +1 -1
- package/dist/ui/input/SwitchElement.js +0 -18
- package/dist/ui/input/SwitchElement.js.map +1 -1
- package/dist/ui/input/TextAreaElement.js +0 -15
- package/dist/ui/input/TextAreaElement.js.map +1 -1
- package/dist/ui/list/{DividerElement.d.ts → UiDivider.element.d.ts} +6 -6
- package/dist/ui/list/UiDivider.element.d.ts.map +1 -0
- package/dist/ui/list/UiDivider.element.js +39 -0
- package/dist/ui/list/UiDivider.element.js.map +1 -0
- package/dist/ui/list/UiDivider.styles.d.ts +3 -0
- package/dist/ui/list/UiDivider.styles.d.ts.map +1 -0
- package/dist/ui/list/UiDivider.styles.js +49 -0
- package/dist/ui/list/UiDivider.styles.js.map +1 -0
- package/dist/ui/list/UiDropdownList.js +7 -48
- package/dist/ui/list/UiDropdownList.js.map +1 -1
- package/dist/ui/list/UiList.js +3 -15
- package/dist/ui/list/UiList.js.map +1 -1
- package/dist/ui/list/UiListItem.js +4 -17
- package/dist/ui/list/UiListItem.js.map +1 -1
- package/dist/ui/list/UiListbox.js +0 -1
- package/dist/ui/list/UiListbox.js.map +1 -1
- package/dist/ui/notification/SnackNotifications.js +1 -2
- package/dist/ui/notification/SnackNotifications.js.map +1 -1
- package/dist/ui/notification/Snackbar.js +27 -51
- package/dist/ui/notification/Snackbar.js.map +1 -1
- package/dist/ui/progress/Range.js +24 -23
- package/dist/ui/progress/Range.js.map +1 -1
- package/dist/ui/progress/UiProgress.js +0 -11
- package/dist/ui/progress/UiProgress.js.map +1 -1
- package/dist/ui/table/DataTable.js +7 -12
- package/dist/ui/table/DataTable.js.map +1 -1
- package/dist/ui/tabs/UiTab.js +24 -25
- package/dist/ui/tabs/UiTab.js.map +1 -1
- package/dist/ui/tabs/UiTabs.d.ts +13 -1
- package/dist/ui/tabs/UiTabs.d.ts.map +1 -1
- package/dist/ui/tabs/UiTabs.js +62 -47
- package/dist/ui/tabs/UiTabs.js.map +1 -1
- package/dist/visualization/elements/VizWorkspaceElement.js +12 -21
- package/dist/visualization/elements/VizWorkspaceElement.js.map +1 -1
- package/dist/visualization/lib/AssociationAnchors.js +16 -28
- package/dist/visualization/lib/AssociationAnchors.js.map +1 -1
- package/dist/visualization/lib/Point.js +0 -2
- package/dist/visualization/lib/Point.js.map +1 -1
- package/dist/visualization/lib/SelectionManager.js +10 -11
- package/dist/visualization/lib/SelectionManager.js.map +1 -1
- package/dist/visualization/lib/WorkspaceAlignment.js +0 -1
- package/dist/visualization/lib/WorkspaceAlignment.js.map +1 -1
- package/dist/visualization/lib/WorkspaceDebugging.js +5 -8
- package/dist/visualization/lib/WorkspaceDebugging.js.map +1 -1
- package/dist/visualization/lib/WorkspaceEdges.js +17 -19
- package/dist/visualization/lib/WorkspaceEdges.js.map +1 -1
- package/dist/visualization/lib/WorkspaceGestures.js +0 -3
- package/dist/visualization/lib/WorkspaceGestures.js.map +1 -1
- package/dist/visualization/lib/WorkspaceSizing.js +4 -6
- package/dist/visualization/lib/WorkspaceSizing.js.map +1 -1
- package/dist/visualization/lib/lines/RectilinearLine.js +8 -34
- package/dist/visualization/lib/lines/RectilinearLine.js.map +1 -1
- package/dist/visualization/lib/tips/RectilinearTip.js +0 -1
- package/dist/visualization/lib/tips/RectilinearTip.js.map +1 -1
- package/dist/visualization/lib/tips/TipArtist.js +0 -3
- package/dist/visualization/lib/tips/TipArtist.js.map +1 -1
- package/dist/visualization/plugin/dnd/DragAndDropPlugin.js +3 -5
- package/dist/visualization/plugin/dnd/DragAndDropPlugin.js.map +1 -1
- package/dist/visualization/plugin/group-selection/GroupSelection.js +19 -19
- package/dist/visualization/plugin/group-selection/GroupSelection.js.map +1 -1
- package/dist/visualization/plugin/positioning/WorkspaceLayout.js +21 -38
- package/dist/visualization/plugin/positioning/WorkspaceLayout.js.map +1 -1
- package/package.json +3 -2
- package/src/define/dialog/delete-cookie-action-dialog.ts +16 -0
- package/src/define/dialog/set-cookie-action-dialog.ts +16 -0
- package/src/define/http/http-assertions.ts +3 -3
- package/src/define/http/http-flows.ts +15 -0
- package/src/define/ui/ui-divider.ts +7 -2
- package/src/elements/ApiElement.ts +7 -0
- package/src/elements/amf/ApiAuthorizationEditor.element.ts +1 -1
- package/src/elements/amf/ApiOperationDocument.element.ts +2 -1
- package/src/elements/amf/ApiRequest.element.ts +1 -1
- package/src/elements/amf/ApiRequestEditor.element.ts +0 -4
- package/src/elements/authorization/ui/Authorization.ts +3 -5
- package/src/elements/dialog/DeleteCookieAction.element.ts +100 -0
- package/src/elements/dialog/DeleteCookieAction.styles.ts +14 -0
- package/src/elements/dialog/Rename.ts +8 -7
- package/src/elements/dialog/SetCookieAction.element.ts +183 -0
- package/src/elements/environment/EnvironmentEditor.styles.ts +5 -0
- package/src/elements/environment/EnvironmentEditor.ts +81 -22
- package/src/elements/environment/ServerEditor.ts +4 -8
- package/src/elements/environment/VariablesEditor.ts +3 -7
- package/src/elements/highlight/Prism.styles.ts +12 -5
- package/src/elements/http/BodyEditor.ts +10 -17
- package/src/elements/http/BodyMultipartEditor.ts +3 -20
- package/src/elements/http/BodyTextEditor.ts +0 -4
- package/src/elements/http/BodyUrlEncodedEditor.ts +5 -8
- package/src/elements/http/HeadersForm.ts +2 -9
- package/src/elements/http/HttpAssertions.element.ts +286 -0
- package/src/elements/http/HttpAssertions.styles.ts +7 -156
- package/src/elements/http/HttpFlows.common.ts +181 -0
- package/src/elements/http/HttpFlows.element.ts +722 -0
- package/src/elements/http/HttpFlows.styles.ts +29 -0
- package/src/elements/http/HttpFlowsUi.ts +1327 -0
- package/src/elements/http/RequestConfigElement.ts +10 -14
- package/src/elements/http/RequestEditor.ts +77 -35
- package/src/elements/http/UrlInput.ts +6 -6
- package/src/elements/http/UrlParamsForm.ts +2 -6
- package/src/elements/layout/SplitView.styles.ts +1 -0
- package/src/elements/navigation/AppNavigationItem.styles.ts +2 -0
- package/src/elements/project/HttpProjectRequest.ts +16 -5
- package/src/elements/project/ProjectRunner.ts +3 -7
- package/src/elements/schema-design/AssociationFormElement.ts +4 -8
- package/src/elements/schema-design/DataEntityEditorElement.ts +8 -8
- package/src/elements/schema-design/DataSchemaDocument.ts +5 -9
- package/src/elements/schema-design/EntityFormElement.ts +6 -10
- package/src/elements/schema-design/PropertyFormElement.ts +11 -15
- package/src/pages/ApplicationScreen.ts +1 -1
- package/src/pages/api-client/ApiClient.styles.ts +22 -3
- package/src/pages/api-client/Authenticate.screen.ts +19 -3
- package/src/pages/api-client/StoreConfig.screen.ts +4 -2
- package/src/pages/api-client/StoreConfig.styles.ts +5 -0
- package/src/pages/api-client/pages/Files.page.ts +2 -1
- package/src/pages/http-project/HttpProject.screen.ts +14 -26
- package/src/pages/http-project/types.ts +8 -6
- package/src/styles/m3/surface.module.ts +11 -27
- package/src/styles/m3/theme.css +36 -0
- package/src/styles/m3/tokens.css +11 -0
- package/src/ui/UiElement.ts +7 -0
- package/src/ui/button/SegmentedButton.styles.ts +3 -1
- package/src/ui/dialog/UiDialog.ts +3 -0
- package/src/ui/effects/ripple.ts +6 -1
- package/src/ui/icons/Icons.ts +3 -2
- package/src/ui/input/CheckedElement.ts +3 -3
- package/src/ui/input/Input.ts +1 -1
- package/src/ui/list/UiDivider.element.ts +41 -0
- package/src/ui/list/UiDivider.styles.ts +49 -0
- package/src/ui/tabs/UiTabs.ts +55 -13
- package/test/amf/authorization/OAuth2Method.test.ts +1 -1
- package/test/elements/http/HttpAssertions.test.ts +5 -6
- package/test/elements/http/HttpFlows.test.ts +485 -0
- package/tsconfig.json +2 -2
- package/dist/elements/http/HttpAssertions.d.ts +0 -114
- package/dist/elements/http/HttpAssertions.d.ts.map +0 -1
- package/dist/elements/http/HttpAssertions.js +0 -1144
- package/dist/elements/http/HttpAssertions.js.map +0 -1
- package/dist/elements/http/internals.d.ts +0 -150
- package/dist/elements/http/internals.d.ts.map +0 -1
- package/dist/elements/http/internals.js +0 -150
- package/dist/elements/http/internals.js.map +0 -1
- package/dist/ui/list/DividerElement.d.ts.map +0 -1
- package/dist/ui/list/DividerElement.js +0 -87
- package/dist/ui/list/DividerElement.js.map +0 -1
- package/src/elements/http/HttpAssertions.ts +0 -1187
- package/src/elements/http/internals.ts +0 -151
- package/src/http-client/docs/Files.md +0 -28
- package/src/ui/list/DividerElement.ts +0 -84
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Base.js","sourceRoot":"","sources":["../../../src/http-client/idb/Base.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n@license\nCopyright 2018 The Advanced REST client authors <arc@mulesoft.com>\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not\nuse this file except in compliance with the License. You may obtain a copy of\nthe License at\nhttp://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\nWARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\nLicense for the specific language governing permissions and limitations under\nthe License.\n*/\n\nimport { \n ContextChangeRecord, ContextDeleteBulkEvent, ContextDeleteEvent, ContextDeleteRecord, ContextListEvent, ContextListOptions, \n ContextListResult, ContextReadBulkEvent, ContextReadEvent, ContextUpdateBulkEvent, ContextUpdateEvent, Events as CoreEvents, \n IAuthorizationData, IBulkOperationResult, ICertificate, IHostRule, IUrl } from '@api-client/core/build/browser.js';\nimport { openDB, DBSchema, IDBPDatabase } from 'idb/with-async-ittr';\n\n/* eslint-disable class-methods-use-this */\n\n// export const deleteModelHandler = Symbol('deleteModelHandler');\n// export const notifyDestroyed = Symbol('notifyDestroyed');\n\nexport type StoreName = 'UrlHistory' | 'WsHistory' | 'AuthCache' | 'Certificates' | 'Hosts' | 'Environments';\n\nexport interface IBaseQueryOptions {\n /**\n * The number of records in the response.\n */\n limit?: number;\n /**\n * Whether to use the `descending` order.\n */\n descending?: boolean;\n /**\n * The key to start paginating from.\n */\n startKey?: string;\n /**\n * The number of records to skip before start capturing records.\n */\n skip?: number;\n}\n\nexport interface IEntityMeta {\n deleted?: boolean;\n}\n\nexport interface IStoredEntity<T = unknown> {\n meta: IEntityMeta;\n data: T;\n}\n\nexport interface IGetOptions {\n /**\n * Whether to return a deleted document.\n */\n deleted?: boolean;\n}\n\ninterface HttpClientDB extends DBSchema {\n UrlHistory: {\n key: string;\n value: IStoredEntity<IUrl>;\n },\n WsHistory: {\n key: string;\n value: IStoredEntity<IUrl>;\n },\n AuthCache: {\n key: string;\n value: IStoredEntity<IAuthorizationData>,\n },\n Certificates: {\n key: string;\n value: IStoredEntity<ICertificate>,\n },\n Hosts: {\n key: string;\n value: IStoredEntity<IHostRule>,\n },\n Environments: {\n key: string;\n value: IStoredEntity<unknown>,\n },\n}\n\n/**\n * A base class for all models.\n * \n * All models have to:\n * \n * - have the `key` property that is a unique identifier of the entity. if the entity has duplicated entity it will replace the previous entity.\n */\nexport class Base {\n /**\n * Set with `listen()` method or separately. When set the model dispatch events on this node.\n * When not set the model does not dispatch events.\n */\n eventsTarget: EventTarget = window;\n\n /**\n * The name of the store.\n */\n name: StoreName;\n\n constructor(name: StoreName) {\n this.name = name;\n\n this._listHandler = this._listHandler.bind(this);\n this._readHandler = this._readHandler.bind(this);\n this._readBulkHandler = this._readBulkHandler.bind(this);\n this._createHandler = this._createHandler.bind(this);\n this._updateHandler = this._updateHandler.bind(this);\n this._updateBulkHandler = this._updateBulkHandler.bind(this);\n this._deleteHandler = this._deleteHandler.bind(this);\n this._deleteBulkHandler = this._deleteBulkHandler.bind(this);\n\n // this[deleteModelHandler] = this[deleteModelHandler].bind(this);\n }\n\n protected _db?: IDBPDatabase<HttpClientDB>;\n\n /**\n * Opens the ARC store.\n * @returns The reference to the database\n */\n async open(): Promise<IDBPDatabase<HttpClientDB>> {\n if (this._db) {\n return this._db;\n }\n const dbResult = await openDB<HttpClientDB>('AdvancedRestClient', 1, {\n upgrade(db) {\n const stores: StoreName[] = [\n 'UrlHistory', 'WsHistory', 'AuthCache', 'Certificates', 'Hosts', 'Environments',\n ];\n const names = db.objectStoreNames;\n for (const name of stores) {\n if (!names.contains(name)) {\n db.createObjectStore(name, { keyPath: 'data.key' });\n }\n }\n },\n });\n this._db = dbResult;\n return dbResult;\n }\n\n /**\n * Database query options for pagination.\n */\n get defaultQueryOptions(): IBaseQueryOptions {\n return {\n limit: 25,\n descending: true,\n };\n }\n\n // /**\n // * Listens for the DOM events.\n // */\n // listen(node: EventTarget = window): void {\n // this.eventsTarget = node;\n // node.addEventListener(EventTypes.HttpClient.Model.destroy, this[deleteModelHandler] as EventListener);\n // }\n\n // /**\n // * Removes the DOM event listeners.\n // */\n // unlisten(node: EventTarget = window): void {\n // node.removeEventListener(EventTypes.HttpClient.Model.destroy, this[deleteModelHandler] as EventListener);\n // }\n\n /**\n * Handles any exception in the model in a unified way.\n * @param e An error object\n * @param noThrow If set the function will not throw error.\n * This allow to do the logic without stopping program.\n */\n protected _handleException(e: Error | unknown, noThrow?: boolean): void {\n let message;\n if (e instanceof Error) {\n message = e.message;\n } else {\n message = JSON.stringify(e);\n }\n if (this.eventsTarget) {\n CoreEvents.Telemetry.exception(message, true, this.eventsTarget);\n }\n if (!noThrow) {\n throw e;\n }\n }\n\n /**\n * Deletes current datastore.\n * Note that `name` property must be set before calling this function.\n */\n async deleteModel(): Promise<void> {\n const db = await this.open();\n const tx = db.transaction(this.name, 'readwrite');\n const { store } = tx;\n await store.clear();\n await tx.done;\n // this[notifyDestroyed](this.name);\n }\n\n // /**\n // * Notifies the application that the model has been removed and data destroyed.\n // *\n // * @param store The name of the deleted store\n // */\n // [notifyDestroyed](store: StoreName): void {\n // if (this.eventsTarget) {\n // Events.HttpClient.Model.destroyed(store, this.eventsTarget);\n // }\n // }\n\n // /**\n // * Handler for `destroy-model` custom event.\n // * Deletes current data when scheduled for deletion.\n // */\n // [deleteModelHandler](e: ModelDeleteEvent): void {\n // if (e.defaultPrevented) {\n // return;\n // }\n // const { stores, detail } = e;\n // if (!stores || !stores.length || !this.name) {\n // return;\n // }\n // /* istanbul ignore else */\n // if (!Array.isArray(detail.result)) {\n // detail.result = [] as Promise<void>[];\n // }\n // if (stores.indexOf(this.name) !== -1) {\n // const { result=[] } = detail;\n // result.push(this.deleteModel());\n // }\n // }\n\n /**\n * Checks if event can be processed giving it's cancellation status or if\n * it was dispatched by current element.\n * @param e Event to test\n * @returns True if event is already cancelled or dispatched by self.\n */\n protected _eventCancelled(e: Event): boolean {\n if (e.defaultPrevented) {\n return true;\n }\n if (!e.cancelable) {\n return true;\n }\n return false;\n }\n\n /**\n * Decodes passed page token back to the passed parameters object.\n * @param token The page token value.\n * @return Restored page query parameters or null if error\n */\n decodePageToken(token: string): IBaseQueryOptions | null {\n if (!token) {\n return null;\n }\n try {\n const decoded = atob(token);\n return JSON.parse(decoded);\n } catch (e) {\n return null;\n }\n }\n\n /**\n * Encodes page parameters into a page token.\n * @param params Parameters to encode\n * @returns Page token\n */\n encodePageToken(params: IBaseQueryOptions): string {\n const str = JSON.stringify(params);\n return btoa(str);\n }\n\n /**\n * Lists all objects in the store.\n *\n * @param opts Query options.\n * @returns A promise resolved to a list of entities.\n */\n async list(opts: ContextListOptions = {}): Promise<ContextListResult<unknown>> {\n const { limit, cursor } = opts;\n let queryOptions: IBaseQueryOptions | undefined;\n if (cursor) {\n const pageOptions = this.decodePageToken(cursor);\n if (pageOptions) {\n queryOptions = pageOptions;\n }\n }\n if (!queryOptions) {\n queryOptions = this.defaultQueryOptions;\n if (limit) {\n queryOptions.limit = limit;\n }\n }\n \n const db = await this.open();\n const items = await this._listEntities(db, this.name, queryOptions);\n let token;\n if (items.length) {\n const copy: IBaseQueryOptions = { ...queryOptions };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const { key } = (items[items.length - 1] as any);\n copy.skip = 1;\n copy.startKey = key as string;\n token = this.encodePageToken(copy);\n }\n return {\n items,\n cursor: token,\n }\n }\n\n protected async _listEntities(db: IDBPDatabase<HttpClientDB>, storeName: StoreName, opts: IBaseQueryOptions): Promise<unknown[]> {\n let adv = opts.skip || 0;\n const { descending, limit = 25, startKey } = opts;\n const tx = db.transaction(storeName, 'readonly');\n const dir = descending === true ? 'prev' : 'next';\n let keyFound = false;\n const items: unknown[] = [];\n for await (const cursor of tx.store.iterate(null, dir)) {\n const info = cursor.value;\n const { meta, data } = info;\n const { key } = data as { key: string };\n if (!key) {\n continue;\n }\n if (startKey && !keyFound) {\n if (key !== startKey) {\n continue;\n }\n keyFound = true;\n }\n if (adv) {\n cursor.advance(adv);\n adv = 0;\n continue;\n }\n if (meta && meta.deleted) {\n continue;\n }\n items.push(data);\n if (items.length >= limit) {\n break;\n }\n }\n return items;\n }\n\n /**\n * A specialized method to perform an update operation.\n * By default it calls `put()` which replaces the whole object.\n * Implement own logic that can perform a PATCH operation instead, if needed.\n * \n * @param value The object to update.\n */\n async update(value: unknown): Promise<ContextChangeRecord<unknown>> {\n return this.put(value);\n }\n\n async put(value: unknown): Promise<ContextChangeRecord<unknown>> {\n const typed = value as { key: string, kind?: string };\n if (!typed.key) {\n throw new Error(`Unable to process the value when inserting to ${this.name}: the key is missing.`);\n }\n const db = await this.open();\n const entity: IStoredEntity = {\n meta: {},\n data: value,\n };\n await db.put(this.name, entity);\n const result: ContextChangeRecord<unknown> = {\n key: typed.key,\n item: { ...typed },\n };\n if (typed.kind) {\n result.kind = typed.kind;\n }\n return result;\n }\n\n async putBulk(values: unknown[]): Promise<IBulkOperationResult<ContextChangeRecord<any>>> {\n if (!Array.isArray(values)) {\n throw new Error(`Unexpected argument. An array must be passed to \"putBulk()\" method.`)\n }\n if (!values.length) {\n return { items: [] };\n }\n const typed = values as { key: string, kind?: string }[];\n const invalid = typed.some(i => !i.key);\n if (invalid) {\n throw new Error(`Unable to process bulk values when inserting to ${this.name}: a key is missing.`);\n }\n const entities: IStoredEntity[] = [];\n const result: ContextChangeRecord<unknown>[] = [];\n\n typed.forEach((data) => {\n entities.push({\n meta: {},\n data,\n });\n const record: ContextChangeRecord<unknown> = {\n key: data.key,\n item: { ...data },\n }\n if (data.kind) {\n record.kind = data.kind;\n }\n result.push(record);\n });\n\n const db = await this.open();\n const tx = db.transaction(this.name, 'readwrite');\n const { store } = tx;\n await Promise.all(entities.map(e => store.put(e)));\n await tx.done;\n return { items: result };\n }\n\n async get(key: string, opts: IGetOptions = {}): Promise<unknown | undefined> {\n if (!key) {\n throw new Error(`The \"key\" argument is missing.`);\n }\n const db = await this.open();\n const value = await db.get(this.name, key);\n if (!value) {\n return undefined;\n }\n if (value.meta.deleted && !opts.deleted) {\n return undefined;\n }\n return value.data;\n }\n\n async getBulk(keys: string[], opts: IGetOptions = {}): Promise<IBulkOperationResult<unknown>> {\n if (!keys) {\n throw new Error(`The \"keys\" argument is missing.`);\n }\n if (!Array.isArray(keys)) {\n throw new Error(`The \"keys\" argument expected to be an array.`);\n }\n const { name } = this;\n const db = await this.open();\n const { store } = db.transaction(name);\n const items = await Promise.all(keys.map(key => store.get(key)));\n const result: (unknown | undefined)[] = items.map((item) => {\n if (!item) {\n return undefined;\n }\n if (item.meta.deleted && !opts.deleted) {\n return undefined;\n }\n return item.data;\n });\n return {\n items: result,\n };\n }\n\n async delete(key: string): Promise<ContextDeleteRecord | undefined> {\n if (!key) {\n throw new Error(`The \"key\" argument is missing.`);\n }\n const db = await this.open();\n const tx = db.transaction(this.name, 'readwrite');\n const { store } = tx;\n let result: ContextDeleteRecord | undefined;\n const item = await store.get(key);\n if (item) {\n item.meta.deleted = true;\n result = {\n key,\n }\n const typed = item.data as any;\n if (typed.kind) {\n result.kind = typed.kind;\n }\n await store.put(item);\n }\n await tx.done;\n return result;\n }\n\n async deleteBulk(keys: string[]): Promise<IBulkOperationResult<ContextDeleteRecord>> {\n if (!keys) {\n throw new Error(`The \"keys\" argument is missing.`);\n }\n if (!Array.isArray(keys)) {\n throw new Error(`The \"keys\" argument expected to be an array.`);\n }\n\n const db = await this.open();\n const tx = db.transaction(this.name, 'readwrite');\n const { store } = tx;\n const result: (ContextDeleteRecord | undefined)[] = [];\n const ps = keys.map(async (key) => {\n if (!key) {\n result.push(undefined);\n return;\n }\n const item = await store.get(key);\n if (!item) {\n result.push(undefined);\n return;\n }\n item.meta.deleted = true;\n const record: ContextDeleteRecord = {\n key,\n }\n const typed = item.data as any;\n if (typed.kind) {\n record.kind = typed.kind;\n }\n result.push(record);\n await store.put(item);\n });\n await Promise.all(ps);\n await tx.done;\n return {\n items: result,\n };\n }\n\n async restore(key: string): Promise<ContextChangeRecord<unknown> | undefined> {\n if (!key) {\n throw new Error(`The \"key\" argument is missing.`);\n }\n const db = await this.open();\n const tx = db.transaction(this.name, 'readwrite');\n const { store } = tx;\n let result: ContextChangeRecord<unknown> | undefined;\n const item = await store.get(key);\n if (item && item.meta.deleted) {\n item.meta.deleted = false;\n result = {\n key,\n item: item.data,\n }\n const typed = item.data as any;\n if (typed.kind) {\n result.kind = typed.kind;\n }\n await store.put(item);\n }\n await tx.done;\n return result;\n }\n\n async restoreBulk(keys: string[]): Promise<(ContextChangeRecord<unknown> | undefined)[] > {\n if (!keys) {\n throw new Error(`The \"keys\" argument is missing.`);\n }\n if (!Array.isArray(keys)) {\n throw new Error(`The \"keys\" argument expected to be an array.`);\n }\n \n const db = await this.open();\n const tx = db.transaction(this.name, 'readwrite');\n const { store } = tx;\n const result: (ContextChangeRecord<unknown> | undefined)[] = [];\n const ps = keys.map(async (key) => {\n if (!key) {\n result.push(undefined);\n return;\n }\n const item = await store.get(key);\n if (!item || !item.meta.deleted) {\n result.push(undefined);\n return;\n }\n item.meta.deleted = false;\n const record: ContextChangeRecord<unknown> = {\n key,\n item: item.data,\n }\n const typed = item.data as any;\n if (typed.kind) {\n record.kind = typed.kind;\n }\n result.push(record);\n await store.put(item);\n });\n await Promise.all(ps);\n await tx.done;\n return result;\n }\n\n /**\n * A handler for the model list event. To be setup in the child class.\n */\n protected _listHandler(e: ContextListEvent<unknown>): void {\n if (this._eventCancelled(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n const { limit, cursor } = e.detail;\n\n e.detail.result = this.list({\n limit,\n cursor,\n });\n }\n\n protected _readHandler(e: ContextReadEvent<unknown>): void {\n if (this._eventCancelled(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.detail.result = this.get(e.detail.key) as Promise<unknown>;\n }\n\n protected _readBulkHandler(e: ContextReadBulkEvent<unknown>): void {\n if (this._eventCancelled(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.detail.result = this.getBulk(e.detail.keys);\n }\n\n protected _updateHandler(e: ContextUpdateEvent<any>): void {\n if (this._eventCancelled(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.detail.result = this.update(e.detail.item);\n }\n\n protected _createHandler(e: ContextUpdateEvent<any>): void {\n if (this._eventCancelled(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.detail.result = this.put(e.detail.item);\n }\n\n protected _updateBulkHandler(e: ContextUpdateBulkEvent<any>): void {\n if (this._eventCancelled(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.detail.result = this.putBulk(e.detail.items);\n }\n\n protected _deleteHandler(e: ContextDeleteEvent): void {\n if (this._eventCancelled(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.detail.result = this.delete(e.detail.key) as Promise<ContextDeleteRecord>;\n }\n\n protected _deleteBulkHandler(e: ContextDeleteBulkEvent): void {\n if (this._eventCancelled(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.detail.result = this.deleteBulk(e.detail.keys);\n }\n\n protected _readDeletedRecordKeys(records: ContextDeleteRecord[]): string[] {\n const ids: string[] = [];\n records.forEach((item) => {\n if (!item || !item.key) {\n throw new Error(`Invalid or missing \"ContextDeleteRecord\" definition.`);\n }\n ids.push(item.key);\n });\n return ids;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Base.js","sourceRoot":"","sources":["../../../src/http-client/idb/Base.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n@license\nCopyright 2018 The Advanced REST client authors <arc@mulesoft.com>\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not\nuse this file except in compliance with the License. You may obtain a copy of\nthe License at\nhttp://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\nWARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\nLicense for the specific language governing permissions and limitations under\nthe License.\n*/\n\nimport { \n ContextChangeRecord, ContextDeleteBulkEvent, ContextDeleteEvent, ContextDeleteRecord, ContextListEvent, ContextListOptions, \n ContextListResult, ContextReadBulkEvent, ContextReadEvent, ContextUpdateBulkEvent, ContextUpdateEvent, Events as CoreEvents, \n IAuthorizationData, IBulkOperationResult, ICertificate, IHostRule, IUrl } from '@api-client/core/build/browser.js';\nimport { openDB, DBSchema, IDBPDatabase } from 'idb/with-async-ittr';\n\n/* eslint-disable class-methods-use-this */\n\n// export const deleteModelHandler = Symbol('deleteModelHandler');\n// export const notifyDestroyed = Symbol('notifyDestroyed');\n\nexport type StoreName = 'UrlHistory' | 'WsHistory' | 'AuthCache' | 'Certificates' | 'Hosts' | 'Environments';\n\nexport interface IBaseQueryOptions {\n /**\n * The number of records in the response.\n */\n limit?: number;\n /**\n * Whether to use the `descending` order.\n */\n descending?: boolean;\n /**\n * The key to start paginating from.\n */\n startKey?: string;\n /**\n * The number of records to skip before start capturing records.\n */\n skip?: number;\n}\n\nexport interface IEntityMeta {\n deleted?: boolean;\n}\n\nexport interface IStoredEntity<T = unknown> {\n meta: IEntityMeta;\n data: T;\n}\n\nexport interface IGetOptions {\n /**\n * Whether to return a deleted document.\n */\n deleted?: boolean;\n}\n\ninterface HttpClientDB extends DBSchema {\n UrlHistory: {\n key: string;\n value: IStoredEntity<IUrl>;\n },\n WsHistory: {\n key: string;\n value: IStoredEntity<IUrl>;\n },\n AuthCache: {\n key: string;\n value: IStoredEntity<IAuthorizationData>,\n },\n Certificates: {\n key: string;\n value: IStoredEntity<ICertificate>,\n },\n Hosts: {\n key: string;\n value: IStoredEntity<IHostRule>,\n },\n Environments: {\n key: string;\n value: IStoredEntity<unknown>,\n },\n}\n\n/**\n * A base class for all models.\n * \n * All models have to:\n * \n * - have the `key` property that is a unique identifier of the entity. if the entity has duplicated entity it will replace the previous entity.\n */\nexport class Base {\n /**\n * Set with `listen()` method or separately. When set the model dispatch events on this node.\n * When not set the model does not dispatch events.\n */\n eventsTarget: EventTarget = window;\n\n /**\n * The name of the store.\n */\n name: StoreName;\n\n constructor(name: StoreName) {\n this.name = name;\n\n this._listHandler = this._listHandler.bind(this);\n this._readHandler = this._readHandler.bind(this);\n this._readBulkHandler = this._readBulkHandler.bind(this);\n this._createHandler = this._createHandler.bind(this);\n this._updateHandler = this._updateHandler.bind(this);\n this._updateBulkHandler = this._updateBulkHandler.bind(this);\n this._deleteHandler = this._deleteHandler.bind(this);\n this._deleteBulkHandler = this._deleteBulkHandler.bind(this);\n\n // this[deleteModelHandler] = this[deleteModelHandler].bind(this);\n }\n\n protected _db?: IDBPDatabase<HttpClientDB>;\n\n /**\n * Opens the ARC store.\n * @returns The reference to the database\n */\n async open(): Promise<IDBPDatabase<HttpClientDB>> {\n if (this._db) {\n return this._db;\n }\n const dbResult = await openDB<HttpClientDB>('AdvancedRestClient', 1, {\n upgrade(db) {\n const stores: StoreName[] = [\n 'UrlHistory', 'WsHistory', 'AuthCache', 'Certificates', 'Hosts', 'Environments',\n ];\n const names = db.objectStoreNames;\n for (const name of stores) {\n if (!names.contains(name)) {\n db.createObjectStore(name, { keyPath: 'data.key' });\n }\n }\n },\n });\n this._db = dbResult;\n return dbResult;\n }\n\n /**\n * Database query options for pagination.\n */\n get defaultQueryOptions(): IBaseQueryOptions {\n return {\n limit: 25,\n descending: true,\n };\n }\n\n // /**\n // * Listens for the DOM events.\n // */\n // listen(node: EventTarget = window): void {\n // this.eventsTarget = node;\n // node.addEventListener(EventTypes.HttpClient.Model.destroy, this[deleteModelHandler] as EventListener);\n // }\n\n // /**\n // * Removes the DOM event listeners.\n // */\n // unlisten(node: EventTarget = window): void {\n // node.removeEventListener(EventTypes.HttpClient.Model.destroy, this[deleteModelHandler] as EventListener);\n // }\n\n /**\n * Handles any exception in the model in a unified way.\n * @param e An error object\n * @param noThrow If set the function will not throw error.\n * This allow to do the logic without stopping program.\n */\n protected _handleException(e: Error | unknown, noThrow?: boolean): void {\n let message;\n if (e instanceof Error) {\n message = e.message;\n } else {\n message = JSON.stringify(e);\n }\n if (this.eventsTarget) {\n CoreEvents.Telemetry.exception(message, true, this.eventsTarget);\n }\n if (!noThrow) {\n throw e;\n }\n }\n\n /**\n * Deletes current datastore.\n * Note that `name` property must be set before calling this function.\n */\n async deleteModel(): Promise<void> {\n const db = await this.open();\n const tx = db.transaction(this.name, 'readwrite');\n const { store } = tx;\n await store.clear();\n await tx.done;\n // this[notifyDestroyed](this.name);\n }\n\n // /**\n // * Notifies the application that the model has been removed and data destroyed.\n // *\n // * @param store The name of the deleted store\n // */\n // [notifyDestroyed](store: StoreName): void {\n // if (this.eventsTarget) {\n // Events.HttpClient.Model.destroyed(store, this.eventsTarget);\n // }\n // }\n\n // /**\n // * Handler for `destroy-model` custom event.\n // * Deletes current data when scheduled for deletion.\n // */\n // [deleteModelHandler](e: ModelDeleteEvent): void {\n // if (e.defaultPrevented) {\n // return;\n // }\n // const { stores, detail } = e;\n // if (!stores || !stores.length || !this.name) {\n // return;\n // }\n // /* istanbul ignore else */\n // if (!Array.isArray(detail.result)) {\n // detail.result = [] as Promise<void>[];\n // }\n // if (stores.indexOf(this.name) !== -1) {\n // const { result=[] } = detail;\n // result.push(this.deleteModel());\n // }\n // }\n\n /**\n * Checks if event can be processed giving it's cancellation status or if\n * it was dispatched by current element.\n * @param e Event to test\n * @returns True if event is already cancelled or dispatched by self.\n */\n protected _eventCancelled(e: Event): boolean {\n if (e.defaultPrevented) {\n return true;\n }\n if (!e.cancelable) {\n return true;\n }\n return false;\n }\n\n /**\n * Decodes passed page token back to the passed parameters object.\n * @param token The page token value.\n * @return Restored page query parameters or null if error\n */\n decodePageToken(token: string): IBaseQueryOptions | null {\n if (!token) {\n return null;\n }\n try {\n const decoded = atob(token);\n return JSON.parse(decoded);\n } catch (e) {\n return null;\n }\n }\n\n /**\n * Encodes page parameters into a page token.\n * @param params Parameters to encode\n * @returns Page token\n */\n encodePageToken(params: IBaseQueryOptions): string {\n const str = JSON.stringify(params);\n return btoa(str);\n }\n\n /**\n * Lists all objects in the store.\n *\n * @param opts Query options.\n * @returns A promise resolved to a list of entities.\n */\n async list(opts: ContextListOptions = {}): Promise<ContextListResult<unknown>> {\n const { limit, cursor } = opts;\n let queryOptions: IBaseQueryOptions | undefined;\n if (cursor) {\n const pageOptions = this.decodePageToken(cursor);\n if (pageOptions) {\n queryOptions = pageOptions;\n }\n }\n if (!queryOptions) {\n queryOptions = this.defaultQueryOptions;\n if (limit) {\n queryOptions.limit = limit;\n }\n }\n \n const db = await this.open();\n const items = await this._listEntities(db, this.name, queryOptions);\n let token;\n if (items.length) {\n const copy: IBaseQueryOptions = { ...queryOptions };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const { key } = (items[items.length - 1] as any);\n copy.skip = 1;\n copy.startKey = key as string;\n token = this.encodePageToken(copy);\n }\n return {\n items,\n cursor: token,\n }\n }\n\n protected async _listEntities(db: IDBPDatabase<HttpClientDB>, storeName: StoreName, opts: IBaseQueryOptions): Promise<unknown[]> {\n let adv = opts.skip || 0;\n const { descending, limit = 25, startKey } = opts;\n const tx = db.transaction(storeName, 'readonly');\n const dir = descending === true ? 'prev' : 'next';\n let keyFound = false;\n const items: unknown[] = [];\n for await (const cursor of tx.store.iterate(null, dir)) {\n const info = cursor.value;\n const { meta, data } = info;\n const { key } = data as { key: string };\n if (!key) {\n continue;\n }\n if (startKey && !keyFound) {\n if (key !== startKey) {\n continue;\n }\n keyFound = true;\n }\n if (adv) {\n cursor.advance(adv);\n adv = 0;\n continue;\n }\n if (meta && meta.deleted) {\n continue;\n }\n items.push(data);\n if (items.length >= limit) {\n break;\n }\n }\n return items;\n }\n\n /**\n * A specialized method to perform an update operation.\n * By default it calls `put()` which replaces the whole object.\n * Implement own logic that can perform a PATCH operation instead, if needed.\n * \n * @param value The object to update.\n */\n async update(value: unknown): Promise<ContextChangeRecord<unknown>> {\n return this.put(value);\n }\n\n async put(value: unknown): Promise<ContextChangeRecord<unknown>> {\n const typed = value as { key: string, kind?: string };\n if (!typed.key) {\n throw new Error(`Unable to process the value when inserting to ${this.name}: the key is missing.`);\n }\n const db = await this.open();\n const entity: IStoredEntity = {\n meta: {},\n data: value,\n };\n await db.put(this.name, entity);\n const result: ContextChangeRecord<unknown> = {\n key: typed.key,\n item: { ...typed },\n };\n if (typed.kind) {\n result.kind = typed.kind;\n }\n return result;\n }\n\n async putBulk(values: unknown[]): Promise<IBulkOperationResult<ContextChangeRecord<any>>> {\n if (!Array.isArray(values)) {\n throw new Error(`Unexpected argument. An array must be passed to \"putBulk()\" method.`)\n }\n if (!values.length) {\n return { items: [] };\n }\n const typed = values as { key: string, kind?: string }[];\n const invalid = typed.some(i => !i.key);\n if (invalid) {\n throw new Error(`Unable to process bulk values when inserting to ${this.name}: a key is missing.`);\n }\n const entities: IStoredEntity[] = [];\n const result: ContextChangeRecord<unknown>[] = [];\n\n typed.forEach((data) => {\n entities.push({\n meta: {},\n data,\n });\n const record: ContextChangeRecord<unknown> = {\n key: data.key,\n item: { ...data },\n }\n if (data.kind) {\n record.kind = data.kind;\n }\n result.push(record);\n });\n\n const db = await this.open();\n const tx = db.transaction(this.name, 'readwrite');\n const { store } = tx;\n await Promise.all(entities.map(e => store.put(e)));\n await tx.done;\n return { items: result };\n }\n\n async get(key: string, opts: IGetOptions = {}): Promise<unknown | undefined> {\n if (!key) {\n throw new Error(`The \"key\" argument is missing.`);\n }\n const db = await this.open();\n const value = await db.get(this.name, key);\n if (!value) {\n return undefined;\n }\n if (value.meta.deleted && !opts.deleted) {\n return undefined;\n }\n return value.data;\n }\n\n async getBulk(keys: string[], opts: IGetOptions = {}): Promise<IBulkOperationResult<unknown>> {\n if (!keys) {\n throw new Error(`The \"keys\" argument is missing.`);\n }\n if (!Array.isArray(keys)) {\n throw new Error(`The \"keys\" argument expected to be an array.`);\n }\n const { name } = this;\n const db = await this.open();\n const { store } = db.transaction(name);\n const items = await Promise.all(keys.map(key => store.get(key)));\n const result: (unknown | undefined)[] = items.map((item) => {\n if (!item) {\n return undefined;\n }\n if (item.meta.deleted && !opts.deleted) {\n return undefined;\n }\n return item.data;\n });\n return {\n items: result,\n };\n }\n\n async delete(key: string): Promise<ContextDeleteRecord | undefined> {\n if (!key) {\n throw new Error(`The \"key\" argument is missing.`);\n }\n const db = await this.open();\n const tx = db.transaction(this.name, 'readwrite');\n const { store } = tx;\n let result: ContextDeleteRecord | undefined;\n const item = await store.get(key);\n if (item) {\n item.meta.deleted = true;\n result = {\n key,\n }\n const typed = item.data as any;\n if (typed.kind) {\n result.kind = typed.kind;\n }\n await store.put(item);\n }\n await tx.done;\n return result;\n }\n\n async deleteBulk(keys: string[]): Promise<IBulkOperationResult<ContextDeleteRecord>> {\n if (!keys) {\n throw new Error(`The \"keys\" argument is missing.`);\n }\n if (!Array.isArray(keys)) {\n throw new Error(`The \"keys\" argument expected to be an array.`);\n }\n\n const db = await this.open();\n const tx = db.transaction(this.name, 'readwrite');\n const { store } = tx;\n const result: (ContextDeleteRecord | undefined)[] = [];\n const ps = keys.map(async (key) => {\n if (!key) {\n result.push(undefined);\n return;\n }\n const item = await store.get(key);\n if (!item) {\n result.push(undefined);\n return;\n }\n item.meta.deleted = true;\n const record: ContextDeleteRecord = {\n key,\n }\n const typed = item.data as any;\n if (typed.kind) {\n record.kind = typed.kind;\n }\n result.push(record);\n await store.put(item);\n });\n await Promise.all(ps);\n await tx.done;\n return {\n items: result,\n };\n }\n\n async restore(key: string): Promise<ContextChangeRecord<unknown> | undefined> {\n if (!key) {\n throw new Error(`The \"key\" argument is missing.`);\n }\n const db = await this.open();\n const tx = db.transaction(this.name, 'readwrite');\n const { store } = tx;\n let result: ContextChangeRecord<unknown> | undefined;\n const item = await store.get(key);\n if (item && item.meta.deleted) {\n item.meta.deleted = false;\n result = {\n key,\n item: item.data,\n }\n const typed = item.data as any;\n if (typed.kind) {\n result.kind = typed.kind;\n }\n await store.put(item);\n }\n await tx.done;\n return result;\n }\n\n async restoreBulk(keys: string[]): Promise<(ContextChangeRecord<unknown> | undefined)[] > {\n if (!keys) {\n throw new Error(`The \"keys\" argument is missing.`);\n }\n if (!Array.isArray(keys)) {\n throw new Error(`The \"keys\" argument expected to be an array.`);\n }\n \n const db = await this.open();\n const tx = db.transaction(this.name, 'readwrite');\n const { store } = tx;\n const result: (ContextChangeRecord<unknown> | undefined)[] = [];\n const ps = keys.map(async (key) => {\n if (!key) {\n result.push(undefined);\n return;\n }\n const item = await store.get(key);\n if (!item || !item.meta.deleted) {\n result.push(undefined);\n return;\n }\n item.meta.deleted = false;\n const record: ContextChangeRecord<unknown> = {\n key,\n item: item.data,\n }\n const typed = item.data as any;\n if (typed.kind) {\n record.kind = typed.kind;\n }\n result.push(record);\n await store.put(item);\n });\n await Promise.all(ps);\n await tx.done;\n return result;\n }\n\n /**\n * A handler for the model list event. To be setup in the child class.\n */\n protected _listHandler(e: ContextListEvent<unknown>): void {\n if (this._eventCancelled(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n const { limit, cursor } = e.detail;\n\n e.detail.result = this.list({\n limit,\n cursor,\n });\n }\n\n protected _readHandler(e: ContextReadEvent<unknown>): void {\n if (this._eventCancelled(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.detail.result = this.get(e.detail.key) as Promise<unknown>;\n }\n\n protected _readBulkHandler(e: ContextReadBulkEvent<unknown>): void {\n if (this._eventCancelled(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.detail.result = this.getBulk(e.detail.keys);\n }\n\n protected _updateHandler(e: ContextUpdateEvent<any>): void {\n if (this._eventCancelled(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.detail.result = this.update(e.detail.item);\n }\n\n protected _createHandler(e: ContextUpdateEvent<any>): void {\n if (this._eventCancelled(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.detail.result = this.put(e.detail.item);\n }\n\n protected _updateBulkHandler(e: ContextUpdateBulkEvent<any>): void {\n if (this._eventCancelled(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.detail.result = this.putBulk(e.detail.items);\n }\n\n protected _deleteHandler(e: ContextDeleteEvent): void {\n if (this._eventCancelled(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.detail.result = this.delete(e.detail.key) as Promise<ContextDeleteRecord>;\n }\n\n protected _deleteBulkHandler(e: ContextDeleteBulkEvent): void {\n if (this._eventCancelled(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.detail.result = this.deleteBulk(e.detail.keys);\n }\n\n protected _readDeletedRecordKeys(records: ContextDeleteRecord[]): string[] {\n const ids: string[] = [];\n records.forEach((item) => {\n if (!item || !item.key) {\n throw new Error(`Invalid or missing \"ContextDeleteRecord\" definition.`);\n }\n ids.push(item.key);\n });\n return ids;\n }\n}\n"]}
|
|
@@ -7,7 +7,6 @@ import 'pouchdb/dist/pouchdb.js';
|
|
|
7
7
|
* @deprecated This relates to the data structure for ARC that is being deprecated. The full migration should finish in 2024.
|
|
8
8
|
*/
|
|
9
9
|
export class LegacyMockedStore {
|
|
10
|
-
mock;
|
|
11
10
|
constructor(init = {}) {
|
|
12
11
|
this.mock = new LegacyMock(init);
|
|
13
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegacyMockedStore.js","sourceRoot":"","sources":["../../../src/http-client/idb/LegacyMockedStore.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable default-param-last */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable class-methods-use-this */\nimport { \n LegacyMock, ArcDataMockInit, RestApiIndexInit, VariableInit, ARCProject, ARCAuthData, \n ARCCookie, ARCHostRule, ARCUrlHistory, ARCEnvironment, ARCVariable, ARCHistoryRequest, \n ARCSavedRequest, ARCRestApiIndex, ARCRestApi, ARCCertificateIndex, ARCRequestCertificate,\n ProjectCreateInit, RequestHistoryInit, RequestSavedInit, CertificateCreateInit, Entity\n} from '@api-client/core/build/legacy.js';\nimport 'pouchdb/dist/pouchdb.js';\n\nexport interface InsertSavedResult {\n projects: ARCProject[];\n requests: ARCSavedRequest[];\n}\n\n/**\n * @deprecated This relates to the data structure for ARC that is being deprecated. The full migration should finish in 2024.\n */\nexport class LegacyMockedStore {\n mock: LegacyMock;\n\n constructor(init: ArcDataMockInit = {}) {\n this.mock = new LegacyMock(init);\n }\n\n /**\n * @param name The data store name to create.\n */\n db(name: string): PouchDB.Database {\n return new PouchDB(name);\n }\n\n /**\n * Creates `_id` on the original insert object if it wasn't created before and\n * updates `_rev` property.\n * \n * @param insertResponse PouchDB build insert response\n * @param insertedData The original array of inserted objects.\n * @returns This changes contents of te array items which is passed by reference.\n */\n updateRevsAndIds(insertResponse: (PouchDB.Core.Response | PouchDB.Core.Error)[], insertedData: Entity[]): unknown[] {\n const result: Entity[] = [];\n insertResponse.forEach((item, i) => {\n const error = item as PouchDB.Core.Error;\n if (error.error) {\n return;\n }\n const copy = { ...insertedData[i] };\n if (!copy._id) {\n copy._id = item.id;\n }\n copy._rev = item.rev;\n result.push(copy as Entity);\n });\n return result;\n }\n\n /**\n * Generates saved requests data and inserts them into the data store if they\n * are missing.\n * \n * @returns Resolved promise when data are inserted into the datastore. The promise resolves to the generated data object\n */\n async insertSaved(requestsSize = 25, projectsSize = 5, requestsInit?: RequestSavedInit, projectInit?: ProjectCreateInit): Promise<InsertSavedResult> {\n const data = this.mock.http.savedData(requestsSize, projectsSize, requestsInit, projectInit);\n const result: InsertSavedResult = ({\n projects: [],\n requests: [],\n });\n const projectsDb = this.db('legacy-projects');\n const response = await projectsDb.bulkDocs(data.projects);\n result.projects = this.updateRevsAndIds(response, data.projects) as ARCProject[];\n const savedDb = this.db('saved-requests');\n const response2 = await savedDb.bulkDocs(data.requests);\n result.requests = this.updateRevsAndIds(response2, data.requests) as ARCSavedRequest[];\n return result;\n }\n\n /**\n * Generates and saves history data to the data store.\n *\n * @param size The number of requests to generate. Default to 25.\n * @param init History init options.\n * @returns A promise resolved to the generated history list.\n */\n async insertHistory(size?: number, init?: RequestHistoryInit): Promise<ARCHistoryRequest[]> {\n const data = this.mock.http.listHistory(size, init);\n const db = this.db('history-requests');\n const response = await db.bulkDocs(data);\n return this.updateRevsAndIds(response, data) as ARCHistoryRequest[];\n }\n\n /**\n * Generates and saves a list of project objects.\n *\n * @param size Number of projects to insert. Default to 5.\n */\n async insertProjects(size?: number, init?: ProjectCreateInit): Promise<ARCProject[]> {\n const data = this.mock.http.listProjects(size, init);\n const db = this.db('legacy-projects');\n const response = await db.bulkDocs(data);\n return this.updateRevsAndIds(response, data) as ARCProject[];\n }\n\n /**\n * Inserts saved data only if the store is empty.\n * @param requestsSize Default 25\n * @param projectsSize Default 5\n * @returns A resolved promise when data are inserted into the datastore.\n */\n async insertSavedIfNotExists(requestsSize?: number, projectsSize?: number, requestsInit?: RequestSavedInit, projectInit?: ProjectCreateInit): Promise<InsertSavedResult> {\n const savedDb = this.db('saved-requests');\n const response = await savedDb.allDocs<ARCSavedRequest>({\n include_docs: true,\n });\n if (!response.rows.length) {\n return this.insertSaved(requestsSize, projectsSize, requestsInit, projectInit);\n }\n const result: InsertSavedResult = {\n requests: response.rows.map(item => item.doc) as ARCSavedRequest[],\n projects: [],\n };\n const projectsDb = this.db('legacy-projects');\n const projectsResponse = await projectsDb.allDocs<ARCProject>({\n include_docs: true,\n });\n result.projects = projectsResponse.rows.map(item => item.doc) as ARCProject[];\n return result;\n }\n\n /**\n * Inserts history data if the store is empty.\n * \n * @param size The number of requests to generate. Default to 25.\n * @param init History init options.\n * @returns Resolved promise when data are inserted into the datastore.\n */\n async insertHistoryIfNotExists(size?: number, init?: RequestHistoryInit): Promise<ARCHistoryRequest[]> {\n const db = this.db('history-requests');\n const response = await db.allDocs<ARCHistoryRequest>({\n include_docs: true,\n });\n if (!response.rows.length) {\n return this.insertHistory(size, init);\n }\n return response.rows.map(item => item.doc) as ARCHistoryRequest[];\n }\n\n /**\n * Destroys saved and projects database.\n * @returns Resolved promise when the data are cleared.\n */\n async destroySaved(): Promise<void> {\n const savedDb = this.db('saved-requests');\n const projectsDb = this.db('legacy-projects');\n await savedDb.destroy();\n await projectsDb.destroy();\n }\n\n /**\n * Destroys history database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyHistory(): Promise<void> {\n const db = this.db('history-requests');\n await db.destroy();\n }\n\n /**\n * Destroys legacy projects database.\n * @returns Resolved promise when the data are cleared.\n */\n async clearLegacyProjects(): Promise<void> {\n const db = this.db('legacy-projects');\n await db.destroy();\n }\n\n /**\n * Generates and saves websocket data to the data store.\n *\n * @param size The number of websocket data to insert.\n */\n async insertWebsockets(size?: number): Promise<ARCUrlHistory[]> {\n const data = this.mock.urls.urls(size);\n const db = this.db('websocket-url-history');\n const response = await db.bulkDocs(data);\n return this.updateRevsAndIds(response, data) as ARCUrlHistory[];\n }\n\n /**\n * Generates and saves url history data to the data store.\n *\n * @param size The number of URL history data to insert.\n */\n async insertUrlHistory(size?: number): Promise<ARCUrlHistory[]> {\n const data = this.mock.urls.urls(size);\n const db = this.db('url-history');\n const response = await db.bulkDocs(data);\n return this.updateRevsAndIds(response, data) as ARCUrlHistory[];\n }\n\n /**\n * Destroys websockets URL history database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyWebsockets(): Promise<void> {\n const db = this.db('websocket-url-history');\n await db.destroy();\n }\n\n /**\n * Destroys URL history database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyUrlHistory(): Promise<void> {\n const db = this.db('url-history');\n await db.destroy();\n }\n\n /**\n * Generates and saves variables data to the data store.\n *\n * @param size The number of variables to generate.\n * @returns Promise resolves to inserted variables.\n */\n async insertVariables(size?: number, init?: VariableInit): Promise<ARCVariable[]> {\n const data = this.mock.variables.listVariables(size, init);\n const db = this.db('variables');\n const response = await db.bulkDocs(data);\n return this.updateRevsAndIds(response, data) as ARCVariable[];\n }\n\n /**\n * Generates and saves variables data to the data store and then environments generated from the variables.\n *\n * @param size The number of variables to generate.\n * @returns Promise resolves to inserted variables.\n */\n async insertVariablesAndEnvironments(size?: number, init?: VariableInit): Promise<ARCVariable[]> {\n const result = await this.insertVariables(size, init);\n const items: ARCVariable[] = [];\n const names: string[] = [];\n result.forEach((variable) => {\n if (variable.environment !== 'default' && !names.includes(variable.environment)) {\n names.push(variable.environment)\n items.push({\n name: variable.environment,\n environment: '',\n value: '',\n });\n }\n });\n if (items.length) {\n const db = this.db('variables-environments');\n await db.bulkDocs(items);\n }\n return result;\n }\n\n /**\n * Destroys variables and environments database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyVariables(): Promise<void> {\n const db = this.db('variables');\n const db2 = this.db('variables-environments');\n await db.destroy();\n await db2.destroy();\n }\n\n /**\n * Generates and saves cookies data to the data store.\n *\n * @param size Number of cookies to insert. Default to 25.\n */\n async insertCookies(size?: number): Promise<ARCCookie[]> {\n const data = this.mock.cookies.cookies(size);\n const db = this.db('cookies');\n const response = await db.bulkDocs(data);\n return this.updateRevsAndIds(response, data as any[]) as ARCCookie[];\n }\n\n /**\n * Destroys cookies database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyCookies(): Promise<void> {\n const db = this.db('cookies');\n await db.destroy();\n }\n\n /**\n * Generates and saves basic auth data to the data store.\n *\n * @param size Number of auth data to insert. Default to 25.\n * @returns Promise resolved to created auth data.\n */\n async insertBasicAuth(size?: number): Promise<ARCAuthData[]> {\n const data = this.mock.authorization.basicList(size);\n const db = this.db('auth-data');\n const response = await db.bulkDocs(data);\n return this.updateRevsAndIds(response, data) as ARCAuthData[];\n }\n\n /**\n * Destroys auth data database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyBasicAuth(): Promise<void> {\n const db = this.db('auth-data');\n await db.destroy();\n }\n\n /**\n * Generates and saves host rules data to the data store.\n *\n * @param size Number of rules to insert. Default to 25.\n * @return {Promise<PouchDB.Core.ExistingDocument<ARCHostRule>[]>} \n */\n async insertHostRules(size?: number): Promise<ARCHostRule[]> {\n const data = this.mock.hostRules.rules(size);\n const db = this.db('host-rules');\n const response = await db.bulkDocs(data);\n return this.updateRevsAndIds(response, data) as ARCHostRule[];\n }\n\n /**\n * Destroys hosts data database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyHostRules(): Promise<void> {\n const db = this.db('host-rules');\n await db.destroy();\n }\n\n async insertApis(size?: number, init?: RestApiIndexInit): Promise<(ARCRestApi[] | ARCRestApiIndex[])[]> {\n let index = this.mock.restApi.apiIndexList(size, init);\n let data = this.mock.restApi.apiDataList(index);\n const indexDb = this.db('api-index');\n const indexResponse = await indexDb.bulkDocs(index);\n index = this.updateRevsAndIds(indexResponse, index) as ARCRestApiIndex[];\n const dataDb = this.db('api-data');\n const dataResponse = await dataDb.bulkDocs(data);\n data = this.updateRevsAndIds(dataResponse, data) as ARCRestApi[];\n return [index, data];\n }\n\n /**\n * Destroys api-index data database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyApiIndexes(): Promise<void> {\n const db = this.db('api-index');\n await db.destroy();\n }\n\n /**\n * Destroys api-data database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyApiData(): Promise<void> {\n const db = this.db('api-data');\n await db.destroy();\n }\n\n async destroyApisAll(): Promise<void> {\n await this.destroyApiIndexes();\n await this.destroyApiData();\n }\n\n /**\n * @param size The number of certificates to generate.\n * @param opts Create options\n */\n async insertCertificates(size?: number, opts?: CertificateCreateInit): Promise<ARCCertificateIndex[]> {\n const data = this.mock.certificates.clientCertificates(size, opts);\n const responses = [];\n const indexDb = this.db('client-certificates');\n const dataDb = this.db('client-certificates-data');\n for (let i = 0; i < data.length; i++) {\n const cert = data[i];\n const dataEntity: ARCRequestCertificate = ({\n cert: this.mock.certificates.toStore(cert.cert),\n type: cert.type,\n });\n if (cert.key) {\n dataEntity.key = this.mock.certificates.toStore(cert.key);\n }\n const indexEntity: ARCCertificateIndex = ({\n name: cert.name,\n type: cert.type,\n });\n if (cert.created) {\n indexEntity.created = cert.created;\n } else {\n indexEntity.created = Date.now();\n }\n\n /* eslint-disable-next-line no-await-in-loop */\n const dataRes = await dataDb.post(dataEntity);\n indexEntity._id = dataRes.id;\n /* eslint-disable-next-line no-await-in-loop */\n responses[responses.length] = await indexDb.post(indexEntity);\n }\n return this.updateRevsAndIds(responses, data as any[]) as ARCCertificateIndex[];\n }\n\n async destroyClientCertificates(): Promise<void> {\n await this.db('client-certificates').destroy();\n await this.db('client-certificates-data').destroy();\n }\n\n /**\n * Destroys all databases.\n * @return Resolved promise when the data are cleared.\n */\n async destroyAll(): Promise<void> {\n await this.destroySaved();\n await this.destroyHistory();\n await this.destroyWebsockets();\n await this.destroyUrlHistory();\n await this.destroyVariables();\n await this.destroyCookies();\n await this.destroyBasicAuth();\n await this.destroyHostRules();\n await this.destroyApiIndexes();\n await this.destroyApiData();\n await this.destroyClientCertificates();\n }\n\n /**\n * Deeply clones an object.\n * @param {any[]|Date|object} obj Object to be cloned\n * @return {any[]|Date|object} Copied object\n */\n clone<T>(obj: T): T {\n let copy: any;\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n if (obj instanceof Date) {\n copy = new Date();\n copy.setTime(obj.getTime());\n return copy;\n }\n if (Array.isArray(obj)) {\n copy = [];\n for (let i = 0, len = obj.length; i < len; i++) {\n copy[i] = this.clone(obj[i]);\n }\n return copy;\n }\n if (obj instanceof Object) {\n copy = {};\n Object.keys(obj).forEach((key) => {\n copy[key] = this.clone((obj as any)[key]);\n });\n return copy;\n }\n throw new Error(\"Unable to copy obj! Its type isn't supported.\");\n }\n\n /**\n * Reads all data from a data store.\n * @param name Name of the data store to read from. Without `_pouch_` prefix\n * @returns Promise resolved to all read docs.\n */\n async getDatastoreData(name: string): Promise<unknown[]> {\n const db = this.db(name);\n const response = await db.allDocs({\n include_docs: true,\n });\n return response.rows.map(item => item.doc);\n }\n\n async getDatastoreRequestData(): Promise<ARCSavedRequest[]> {\n return this.getDatastoreData('saved-requests') as Promise<ARCSavedRequest[]>;\n }\n\n async getDatastoreProjectsData(): Promise<ARCProject[]> {\n return this.getDatastoreData('legacy-projects') as Promise<ARCProject[]>;\n }\n\n async getDatastoreHistoryData(): Promise<ARCHistoryRequest[]> {\n return this.getDatastoreData('history-requests') as Promise<ARCHistoryRequest[]>;\n }\n\n async getDatastoreVariablesData(): Promise<ARCVariable[]> {\n return this.getDatastoreData('variables') as Promise<ARCVariable[]>;\n }\n\n async getDatastoreEnvironmentsData(): Promise<ARCEnvironment[]> {\n return this.getDatastoreData('variables-environments') as Promise<ARCEnvironment[]>;\n }\n\n async getDatastoreCookiesData(): Promise<ARCCookie[]> {\n return this.getDatastoreData('cookies') as Promise<ARCCookie[]>;\n }\n\n async getDatastoreWebsocketsData(): Promise<ARCUrlHistory[]> {\n return this.getDatastoreData('websocket-url-history') as Promise<ARCUrlHistory[]>;\n }\n\n async getDatastoreUrlsData(): Promise<ARCUrlHistory[]> {\n return this.getDatastoreData('url-history') as Promise<ARCUrlHistory[]>;\n }\n\n async getDatastoreAuthData(): Promise<ARCAuthData[]> {\n return this.getDatastoreData('auth-data') as Promise<ARCAuthData[]>;\n }\n\n async getDatastoreHostRulesData(): Promise<ARCHostRule[]> {\n return this.getDatastoreData('host-rules') as Promise<ARCHostRule[]>;\n }\n\n async getDatastoreApiIndexData(): Promise<ARCRestApiIndex[]> {\n return this.getDatastoreData('api-index') as Promise<ARCRestApiIndex[]>;\n }\n\n async getDatastoreHostApiData(): Promise<ARCRestApi[]> {\n return this.getDatastoreData('api-data') as Promise<ARCRestApi[]>;\n }\n\n async getDatastoreClientCertificates(): Promise<(ARCCertificateIndex[] | ARCRequestCertificate[])[]> {\n const certs = await this.getDatastoreData('client-certificates') as ARCCertificateIndex[];\n const data = await this.getDatastoreData('client-certificates-data') as ARCRequestCertificate[];\n return [certs, data];\n }\n\n /**\n * Updates an object in an data store.\n *\n * @param dbName Name of the data store.\n * @param obj The object to be stored.\n * @returns A promise resolved to insert result.\n */\n async updateObject(dbName: string, obj: any): Promise<PouchDB.Core.Response> {\n const db = this.db(dbName);\n return db.put(obj, {\n force: true,\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"LegacyMockedStore.js","sourceRoot":"","sources":["../../../src/http-client/idb/LegacyMockedStore.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable default-param-last */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable class-methods-use-this */\nimport { \n LegacyMock, ArcDataMockInit, RestApiIndexInit, VariableInit, ARCProject, ARCAuthData, \n ARCCookie, ARCHostRule, ARCUrlHistory, ARCEnvironment, ARCVariable, ARCHistoryRequest, \n ARCSavedRequest, ARCRestApiIndex, ARCRestApi, ARCCertificateIndex, ARCRequestCertificate,\n ProjectCreateInit, RequestHistoryInit, RequestSavedInit, CertificateCreateInit, Entity\n} from '@api-client/core/build/legacy.js';\nimport 'pouchdb/dist/pouchdb.js';\n\nexport interface InsertSavedResult {\n projects: ARCProject[];\n requests: ARCSavedRequest[];\n}\n\n/**\n * @deprecated This relates to the data structure for ARC that is being deprecated. The full migration should finish in 2024.\n */\nexport class LegacyMockedStore {\n mock: LegacyMock;\n\n constructor(init: ArcDataMockInit = {}) {\n this.mock = new LegacyMock(init);\n }\n\n /**\n * @param name The data store name to create.\n */\n db(name: string): PouchDB.Database {\n return new PouchDB(name);\n }\n\n /**\n * Creates `_id` on the original insert object if it wasn't created before and\n * updates `_rev` property.\n * \n * @param insertResponse PouchDB build insert response\n * @param insertedData The original array of inserted objects.\n * @returns This changes contents of te array items which is passed by reference.\n */\n updateRevsAndIds(insertResponse: (PouchDB.Core.Response | PouchDB.Core.Error)[], insertedData: Entity[]): unknown[] {\n const result: Entity[] = [];\n insertResponse.forEach((item, i) => {\n const error = item as PouchDB.Core.Error;\n if (error.error) {\n return;\n }\n const copy = { ...insertedData[i] };\n if (!copy._id) {\n copy._id = item.id;\n }\n copy._rev = item.rev;\n result.push(copy as Entity);\n });\n return result;\n }\n\n /**\n * Generates saved requests data and inserts them into the data store if they\n * are missing.\n * \n * @returns Resolved promise when data are inserted into the datastore. The promise resolves to the generated data object\n */\n async insertSaved(requestsSize = 25, projectsSize = 5, requestsInit?: RequestSavedInit, projectInit?: ProjectCreateInit): Promise<InsertSavedResult> {\n const data = this.mock.http.savedData(requestsSize, projectsSize, requestsInit, projectInit);\n const result: InsertSavedResult = ({\n projects: [],\n requests: [],\n });\n const projectsDb = this.db('legacy-projects');\n const response = await projectsDb.bulkDocs(data.projects);\n result.projects = this.updateRevsAndIds(response, data.projects) as ARCProject[];\n const savedDb = this.db('saved-requests');\n const response2 = await savedDb.bulkDocs(data.requests);\n result.requests = this.updateRevsAndIds(response2, data.requests) as ARCSavedRequest[];\n return result;\n }\n\n /**\n * Generates and saves history data to the data store.\n *\n * @param size The number of requests to generate. Default to 25.\n * @param init History init options.\n * @returns A promise resolved to the generated history list.\n */\n async insertHistory(size?: number, init?: RequestHistoryInit): Promise<ARCHistoryRequest[]> {\n const data = this.mock.http.listHistory(size, init);\n const db = this.db('history-requests');\n const response = await db.bulkDocs(data);\n return this.updateRevsAndIds(response, data) as ARCHistoryRequest[];\n }\n\n /**\n * Generates and saves a list of project objects.\n *\n * @param size Number of projects to insert. Default to 5.\n */\n async insertProjects(size?: number, init?: ProjectCreateInit): Promise<ARCProject[]> {\n const data = this.mock.http.listProjects(size, init);\n const db = this.db('legacy-projects');\n const response = await db.bulkDocs(data);\n return this.updateRevsAndIds(response, data) as ARCProject[];\n }\n\n /**\n * Inserts saved data only if the store is empty.\n * @param requestsSize Default 25\n * @param projectsSize Default 5\n * @returns A resolved promise when data are inserted into the datastore.\n */\n async insertSavedIfNotExists(requestsSize?: number, projectsSize?: number, requestsInit?: RequestSavedInit, projectInit?: ProjectCreateInit): Promise<InsertSavedResult> {\n const savedDb = this.db('saved-requests');\n const response = await savedDb.allDocs<ARCSavedRequest>({\n include_docs: true,\n });\n if (!response.rows.length) {\n return this.insertSaved(requestsSize, projectsSize, requestsInit, projectInit);\n }\n const result: InsertSavedResult = {\n requests: response.rows.map(item => item.doc) as ARCSavedRequest[],\n projects: [],\n };\n const projectsDb = this.db('legacy-projects');\n const projectsResponse = await projectsDb.allDocs<ARCProject>({\n include_docs: true,\n });\n result.projects = projectsResponse.rows.map(item => item.doc) as ARCProject[];\n return result;\n }\n\n /**\n * Inserts history data if the store is empty.\n * \n * @param size The number of requests to generate. Default to 25.\n * @param init History init options.\n * @returns Resolved promise when data are inserted into the datastore.\n */\n async insertHistoryIfNotExists(size?: number, init?: RequestHistoryInit): Promise<ARCHistoryRequest[]> {\n const db = this.db('history-requests');\n const response = await db.allDocs<ARCHistoryRequest>({\n include_docs: true,\n });\n if (!response.rows.length) {\n return this.insertHistory(size, init);\n }\n return response.rows.map(item => item.doc) as ARCHistoryRequest[];\n }\n\n /**\n * Destroys saved and projects database.\n * @returns Resolved promise when the data are cleared.\n */\n async destroySaved(): Promise<void> {\n const savedDb = this.db('saved-requests');\n const projectsDb = this.db('legacy-projects');\n await savedDb.destroy();\n await projectsDb.destroy();\n }\n\n /**\n * Destroys history database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyHistory(): Promise<void> {\n const db = this.db('history-requests');\n await db.destroy();\n }\n\n /**\n * Destroys legacy projects database.\n * @returns Resolved promise when the data are cleared.\n */\n async clearLegacyProjects(): Promise<void> {\n const db = this.db('legacy-projects');\n await db.destroy();\n }\n\n /**\n * Generates and saves websocket data to the data store.\n *\n * @param size The number of websocket data to insert.\n */\n async insertWebsockets(size?: number): Promise<ARCUrlHistory[]> {\n const data = this.mock.urls.urls(size);\n const db = this.db('websocket-url-history');\n const response = await db.bulkDocs(data);\n return this.updateRevsAndIds(response, data) as ARCUrlHistory[];\n }\n\n /**\n * Generates and saves url history data to the data store.\n *\n * @param size The number of URL history data to insert.\n */\n async insertUrlHistory(size?: number): Promise<ARCUrlHistory[]> {\n const data = this.mock.urls.urls(size);\n const db = this.db('url-history');\n const response = await db.bulkDocs(data);\n return this.updateRevsAndIds(response, data) as ARCUrlHistory[];\n }\n\n /**\n * Destroys websockets URL history database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyWebsockets(): Promise<void> {\n const db = this.db('websocket-url-history');\n await db.destroy();\n }\n\n /**\n * Destroys URL history database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyUrlHistory(): Promise<void> {\n const db = this.db('url-history');\n await db.destroy();\n }\n\n /**\n * Generates and saves variables data to the data store.\n *\n * @param size The number of variables to generate.\n * @returns Promise resolves to inserted variables.\n */\n async insertVariables(size?: number, init?: VariableInit): Promise<ARCVariable[]> {\n const data = this.mock.variables.listVariables(size, init);\n const db = this.db('variables');\n const response = await db.bulkDocs(data);\n return this.updateRevsAndIds(response, data) as ARCVariable[];\n }\n\n /**\n * Generates and saves variables data to the data store and then environments generated from the variables.\n *\n * @param size The number of variables to generate.\n * @returns Promise resolves to inserted variables.\n */\n async insertVariablesAndEnvironments(size?: number, init?: VariableInit): Promise<ARCVariable[]> {\n const result = await this.insertVariables(size, init);\n const items: ARCVariable[] = [];\n const names: string[] = [];\n result.forEach((variable) => {\n if (variable.environment !== 'default' && !names.includes(variable.environment)) {\n names.push(variable.environment)\n items.push({\n name: variable.environment,\n environment: '',\n value: '',\n });\n }\n });\n if (items.length) {\n const db = this.db('variables-environments');\n await db.bulkDocs(items);\n }\n return result;\n }\n\n /**\n * Destroys variables and environments database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyVariables(): Promise<void> {\n const db = this.db('variables');\n const db2 = this.db('variables-environments');\n await db.destroy();\n await db2.destroy();\n }\n\n /**\n * Generates and saves cookies data to the data store.\n *\n * @param size Number of cookies to insert. Default to 25.\n */\n async insertCookies(size?: number): Promise<ARCCookie[]> {\n const data = this.mock.cookies.cookies(size);\n const db = this.db('cookies');\n const response = await db.bulkDocs(data);\n return this.updateRevsAndIds(response, data as any[]) as ARCCookie[];\n }\n\n /**\n * Destroys cookies database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyCookies(): Promise<void> {\n const db = this.db('cookies');\n await db.destroy();\n }\n\n /**\n * Generates and saves basic auth data to the data store.\n *\n * @param size Number of auth data to insert. Default to 25.\n * @returns Promise resolved to created auth data.\n */\n async insertBasicAuth(size?: number): Promise<ARCAuthData[]> {\n const data = this.mock.authorization.basicList(size);\n const db = this.db('auth-data');\n const response = await db.bulkDocs(data);\n return this.updateRevsAndIds(response, data) as ARCAuthData[];\n }\n\n /**\n * Destroys auth data database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyBasicAuth(): Promise<void> {\n const db = this.db('auth-data');\n await db.destroy();\n }\n\n /**\n * Generates and saves host rules data to the data store.\n *\n * @param size Number of rules to insert. Default to 25.\n * @return {Promise<PouchDB.Core.ExistingDocument<ARCHostRule>[]>} \n */\n async insertHostRules(size?: number): Promise<ARCHostRule[]> {\n const data = this.mock.hostRules.rules(size);\n const db = this.db('host-rules');\n const response = await db.bulkDocs(data);\n return this.updateRevsAndIds(response, data) as ARCHostRule[];\n }\n\n /**\n * Destroys hosts data database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyHostRules(): Promise<void> {\n const db = this.db('host-rules');\n await db.destroy();\n }\n\n async insertApis(size?: number, init?: RestApiIndexInit): Promise<(ARCRestApi[] | ARCRestApiIndex[])[]> {\n let index = this.mock.restApi.apiIndexList(size, init);\n let data = this.mock.restApi.apiDataList(index);\n const indexDb = this.db('api-index');\n const indexResponse = await indexDb.bulkDocs(index);\n index = this.updateRevsAndIds(indexResponse, index) as ARCRestApiIndex[];\n const dataDb = this.db('api-data');\n const dataResponse = await dataDb.bulkDocs(data);\n data = this.updateRevsAndIds(dataResponse, data) as ARCRestApi[];\n return [index, data];\n }\n\n /**\n * Destroys api-index data database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyApiIndexes(): Promise<void> {\n const db = this.db('api-index');\n await db.destroy();\n }\n\n /**\n * Destroys api-data database.\n * @return Resolved promise when the data are cleared.\n */\n async destroyApiData(): Promise<void> {\n const db = this.db('api-data');\n await db.destroy();\n }\n\n async destroyApisAll(): Promise<void> {\n await this.destroyApiIndexes();\n await this.destroyApiData();\n }\n\n /**\n * @param size The number of certificates to generate.\n * @param opts Create options\n */\n async insertCertificates(size?: number, opts?: CertificateCreateInit): Promise<ARCCertificateIndex[]> {\n const data = this.mock.certificates.clientCertificates(size, opts);\n const responses = [];\n const indexDb = this.db('client-certificates');\n const dataDb = this.db('client-certificates-data');\n for (let i = 0; i < data.length; i++) {\n const cert = data[i];\n const dataEntity: ARCRequestCertificate = ({\n cert: this.mock.certificates.toStore(cert.cert),\n type: cert.type,\n });\n if (cert.key) {\n dataEntity.key = this.mock.certificates.toStore(cert.key);\n }\n const indexEntity: ARCCertificateIndex = ({\n name: cert.name,\n type: cert.type,\n });\n if (cert.created) {\n indexEntity.created = cert.created;\n } else {\n indexEntity.created = Date.now();\n }\n\n /* eslint-disable-next-line no-await-in-loop */\n const dataRes = await dataDb.post(dataEntity);\n indexEntity._id = dataRes.id;\n /* eslint-disable-next-line no-await-in-loop */\n responses[responses.length] = await indexDb.post(indexEntity);\n }\n return this.updateRevsAndIds(responses, data as any[]) as ARCCertificateIndex[];\n }\n\n async destroyClientCertificates(): Promise<void> {\n await this.db('client-certificates').destroy();\n await this.db('client-certificates-data').destroy();\n }\n\n /**\n * Destroys all databases.\n * @return Resolved promise when the data are cleared.\n */\n async destroyAll(): Promise<void> {\n await this.destroySaved();\n await this.destroyHistory();\n await this.destroyWebsockets();\n await this.destroyUrlHistory();\n await this.destroyVariables();\n await this.destroyCookies();\n await this.destroyBasicAuth();\n await this.destroyHostRules();\n await this.destroyApiIndexes();\n await this.destroyApiData();\n await this.destroyClientCertificates();\n }\n\n /**\n * Deeply clones an object.\n * @param {any[]|Date|object} obj Object to be cloned\n * @return {any[]|Date|object} Copied object\n */\n clone<T>(obj: T): T {\n let copy: any;\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n if (obj instanceof Date) {\n copy = new Date();\n copy.setTime(obj.getTime());\n return copy;\n }\n if (Array.isArray(obj)) {\n copy = [];\n for (let i = 0, len = obj.length; i < len; i++) {\n copy[i] = this.clone(obj[i]);\n }\n return copy;\n }\n if (obj instanceof Object) {\n copy = {};\n Object.keys(obj).forEach((key) => {\n copy[key] = this.clone((obj as any)[key]);\n });\n return copy;\n }\n throw new Error(\"Unable to copy obj! Its type isn't supported.\");\n }\n\n /**\n * Reads all data from a data store.\n * @param name Name of the data store to read from. Without `_pouch_` prefix\n * @returns Promise resolved to all read docs.\n */\n async getDatastoreData(name: string): Promise<unknown[]> {\n const db = this.db(name);\n const response = await db.allDocs({\n include_docs: true,\n });\n return response.rows.map(item => item.doc);\n }\n\n async getDatastoreRequestData(): Promise<ARCSavedRequest[]> {\n return this.getDatastoreData('saved-requests') as Promise<ARCSavedRequest[]>;\n }\n\n async getDatastoreProjectsData(): Promise<ARCProject[]> {\n return this.getDatastoreData('legacy-projects') as Promise<ARCProject[]>;\n }\n\n async getDatastoreHistoryData(): Promise<ARCHistoryRequest[]> {\n return this.getDatastoreData('history-requests') as Promise<ARCHistoryRequest[]>;\n }\n\n async getDatastoreVariablesData(): Promise<ARCVariable[]> {\n return this.getDatastoreData('variables') as Promise<ARCVariable[]>;\n }\n\n async getDatastoreEnvironmentsData(): Promise<ARCEnvironment[]> {\n return this.getDatastoreData('variables-environments') as Promise<ARCEnvironment[]>;\n }\n\n async getDatastoreCookiesData(): Promise<ARCCookie[]> {\n return this.getDatastoreData('cookies') as Promise<ARCCookie[]>;\n }\n\n async getDatastoreWebsocketsData(): Promise<ARCUrlHistory[]> {\n return this.getDatastoreData('websocket-url-history') as Promise<ARCUrlHistory[]>;\n }\n\n async getDatastoreUrlsData(): Promise<ARCUrlHistory[]> {\n return this.getDatastoreData('url-history') as Promise<ARCUrlHistory[]>;\n }\n\n async getDatastoreAuthData(): Promise<ARCAuthData[]> {\n return this.getDatastoreData('auth-data') as Promise<ARCAuthData[]>;\n }\n\n async getDatastoreHostRulesData(): Promise<ARCHostRule[]> {\n return this.getDatastoreData('host-rules') as Promise<ARCHostRule[]>;\n }\n\n async getDatastoreApiIndexData(): Promise<ARCRestApiIndex[]> {\n return this.getDatastoreData('api-index') as Promise<ARCRestApiIndex[]>;\n }\n\n async getDatastoreHostApiData(): Promise<ARCRestApi[]> {\n return this.getDatastoreData('api-data') as Promise<ARCRestApi[]>;\n }\n\n async getDatastoreClientCertificates(): Promise<(ARCCertificateIndex[] | ARCRequestCertificate[])[]> {\n const certs = await this.getDatastoreData('client-certificates') as ARCCertificateIndex[];\n const data = await this.getDatastoreData('client-certificates-data') as ARCRequestCertificate[];\n return [certs, data];\n }\n\n /**\n * Updates an object in an data store.\n *\n * @param dbName Name of the data store.\n * @param obj The object to be stored.\n * @returns A promise resolved to insert result.\n */\n async updateObject(dbName: string, obj: any): Promise<PouchDB.Core.Response> {\n const db = this.db(dbName);\n return db.put(obj, {\n force: true,\n });\n }\n}\n"]}
|
|
@@ -3,6 +3,8 @@ import { ProjectMock } from '@api-client/core/build/browser.js';
|
|
|
3
3
|
* A class that generates HTTP Client data for tests.
|
|
4
4
|
*/
|
|
5
5
|
export class MockedStore {
|
|
6
|
-
|
|
6
|
+
constructor() {
|
|
7
|
+
this.mock = new ProjectMock;
|
|
8
|
+
}
|
|
7
9
|
}
|
|
8
10
|
//# sourceMappingURL=MockedStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockedStore.js","sourceRoot":"","sources":["../../../src/http-client/idb/MockedStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE;;GAEG;AACH,MAAM,OAAO,WAAW;
|
|
1
|
+
{"version":3,"file":"MockedStore.js","sourceRoot":"","sources":["../../../src/http-client/idb/MockedStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE;;GAEG;AACH,MAAM,OAAO,WAAW;IAAxB;QACE,SAAI,GAAG,IAAI,WAAW,CAAC;IACzB,CAAC;CAAA","sourcesContent":["import { ProjectMock } from '@api-client/core/build/browser.js';\n\n/**\n * A class that generates HTTP Client data for tests.\n */\nexport class MockedStore {\n mock = new ProjectMock;\n}\n"]}
|
|
@@ -6,10 +6,7 @@ const PostmanV21Schema = 'https://schema.getpostman.com/json/collection/v2.1.0/c
|
|
|
6
6
|
* A helper class that controls data import logic.
|
|
7
7
|
*/
|
|
8
8
|
export class DataImportProcessor {
|
|
9
|
-
importData;
|
|
10
|
-
analysis;
|
|
11
9
|
#abortCtrl;
|
|
12
|
-
signal;
|
|
13
10
|
constructor() {
|
|
14
11
|
this.#abortCtrl = new AbortController();
|
|
15
12
|
this.signal = this.#abortCtrl.signal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataImportProcessor.js","sourceRoot":"","sources":["../../../src/http-client/store/DataImportProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["import { HttpProject, HttpProjectKind, IHttpProject, LegacyDataExportToApiProject, Project, PostmanDataTransformer, FileAddOptions } from \"@api-client/core/build/browser.js\";\nimport { ArcExportObject, ArcPouchTransformer, ExportArcProjects } from \"@api-client/core/build/legacy.js\";\nimport { StoreBindings } from \"../../bindings/base/StoreBindings.js\";\n\nexport interface IAnalyzeResult {\n /**\n * Indicates that there was an error during import analysis.\n */\n error?: boolean;\n /**\n * Error message.\n */\n message?: string;\n\n /**\n * The source application for the file.\n */\n source?: 'arc' | 'postman' | 'api-client';\n /**\n * The name of the project to import\n */\n name?: string;\n /**\n * Schema version, if any.\n */\n version?: string;\n}\n\nconst PostmanV20Schema = 'https://schema.getpostman.com/json/collection/v2.0.0/collection.json';\nconst PostmanV21Schema = 'https://schema.getpostman.com/json/collection/v2.1.0/collection.json';\n\n/**\n * A helper class that controls data import logic.\n */\nexport class DataImportProcessor {\n importData: unknown | undefined;\n\n analysis?: IAnalyzeResult;\n\n #abortCtrl: AbortController;\n\n signal: AbortSignal;\n\n constructor() {\n this.#abortCtrl = new AbortController();\n this.signal = this.#abortCtrl.signal;\n }\n\n abort(): void {\n this.#abortCtrl.abort();\n }\n\n async fromFile(file: File): Promise<IAnalyzeResult> {\n this.importData = undefined;\n this.analysis = undefined;\n\n const contents = await file.text();\n let data: unknown | undefined;\n try {\n data = JSON.parse(contents);\n } catch (e) {\n // ...\n }\n return this.analyzeData(data);\n }\n\n async importProject(db: StoreBindings, space: string, parent?: string): Promise<void> {\n const { importData, analysis } = this;\n if (!importData || !analysis) {\n throw new Error(`You need to initialize import first.`);\n }\n if (analysis.error) {\n throw new Error(`The import data are invalid.`);\n }\n switch (analysis.source) {\n case 'arc': this.importArcProject(importData as ArcExportObject, db, space, parent); break;\n case 'api-client': this.importHttpProject(importData as IHttpProject, db, space, parent); break;\n case 'postman': this.importPostmanProject(importData, analysis, db, space, parent); break;\n default: throw new Error(`Unknown import source: ${analysis.source}.`);\n }\n }\n\n protected analyzeData(data: unknown): IAnalyzeResult {\n this.importData = data;\n let analysis: IAnalyzeResult;\n\n if (!data) {\n analysis = {\n error: true,\n message: 'Unable to parse the input file. Not a JSON file.'\n };\n } else if (this.isHttpProject(data)) {\n analysis = this.analyzeHttpProject(data);\n } else if (this.isArcProject(data)) {\n analysis = this.analyzeArcProject(data);\n } else if (this.isPostmanCollection(data)) {\n analysis = this.analyzePostman(data);\n } else {\n analysis = {\n error: true,\n message: 'Unrecognized file. Expected ARC, Postman, or HTTP Client export.'\n };\n }\n this.analysis = analysis;\n return analysis;\n }\n\n /**\n * Checks whether the passed data contain Postman collection (v2 or v2.1).\n */\n protected isPostmanCollection(data: unknown): boolean {\n const typed = data as { info: { _postman_id: string, name: string, schema: string } }\n if (!typed.info || !typed.info.schema) {\n return false;\n }\n const { schema } = typed.info;\n return [PostmanV20Schema, PostmanV21Schema].includes(schema);\n }\n\n protected analyzePostman(data: unknown): IAnalyzeResult {\n const typed = data as { info: { _postman_id: string, name: string, schema: string } }\n const { schema, name } = typed.info;\n return {\n name: name || 'Unnamed collection',\n source: 'postman',\n version: schema === PostmanV20Schema ? 'v2' : 'v2.1'\n }\n }\n\n /**\n * Checks whether the passed data contain ARC's project\n */\n protected isArcProject(data: unknown): boolean {\n const typed = data as ArcExportObject;\n if (typed.kind !== 'ARC#Project') {\n return false;\n }\n return !!typed.projects && typed.projects.length === 1;\n }\n\n protected analyzeArcProject(data: unknown): IAnalyzeResult {\n const typed = data as ArcExportObject;\n const [project] = typed.projects as ExportArcProjects[];\n return {\n source: 'arc',\n name: project.name,\n }\n }\n\n /**\n * Checks whether the data is an HttpProject.\n */\n protected isHttpProject(data: unknown): boolean {\n const typed = data as IHttpProject;\n return typed.kind === HttpProjectKind;\n }\n\n protected analyzeHttpProject(data: unknown): IAnalyzeResult {\n const typed = data as IHttpProject;\n return {\n source: 'api-client',\n name: typed.info.name || 'Unnamed project',\n }\n }\n\n protected async importArcProject(importData: ArcExportObject, db: StoreBindings, space: string, parent?: string): Promise<void> {\n const transformer = new ArcPouchTransformer(importData);\n const normalized = await transformer.transform();\n const processor = new LegacyDataExportToApiProject();\n const projects = await processor.readProjects(normalized);\n const [data] = projects;\n this.upsert(data, db, space, parent);\n }\n\n protected async importHttpProject(importData: IHttpProject, db: StoreBindings, space: string, parent?: string): Promise<void> {\n const data = new HttpProject(importData);\n this.upsert(data, db, space, parent);\n }\n\n protected async importPostmanProject(importData: unknown, analysis: IAnalyzeResult, db: StoreBindings, space: string, parent?: string): Promise<void> {\n const data = await PostmanDataTransformer.transform(importData);\n const project = Array.isArray(data) ? data[0] : data;\n this.upsert(project, db, space, parent);\n }\n\n protected async upsert(data: HttpProject, db: StoreBindings, space: string, parent?: string): Promise<void> {\n const meta = Project.fromProject(data, space);\n const opts: FileAddOptions = {};\n if (parent) {\n opts.parent = parent;\n }\n // meta file\n const file = await db.files.add(meta.toJSON(), opts);\n // file contents\n await db.media.add(file.key, data.toJSON(), 'application/json');\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DataImportProcessor.js","sourceRoot":"","sources":["../../../src/http-client/store/DataImportProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["import { HttpProject, HttpProjectKind, IHttpProject, LegacyDataExportToApiProject, Project, PostmanDataTransformer, FileAddOptions } from \"@api-client/core/build/browser.js\";\nimport { ArcExportObject, ArcPouchTransformer, ExportArcProjects } from \"@api-client/core/build/legacy.js\";\nimport { StoreBindings } from \"../../bindings/base/StoreBindings.js\";\n\nexport interface IAnalyzeResult {\n /**\n * Indicates that there was an error during import analysis.\n */\n error?: boolean;\n /**\n * Error message.\n */\n message?: string;\n\n /**\n * The source application for the file.\n */\n source?: 'arc' | 'postman' | 'api-client';\n /**\n * The name of the project to import\n */\n name?: string;\n /**\n * Schema version, if any.\n */\n version?: string;\n}\n\nconst PostmanV20Schema = 'https://schema.getpostman.com/json/collection/v2.0.0/collection.json';\nconst PostmanV21Schema = 'https://schema.getpostman.com/json/collection/v2.1.0/collection.json';\n\n/**\n * A helper class that controls data import logic.\n */\nexport class DataImportProcessor {\n importData: unknown | undefined;\n\n analysis?: IAnalyzeResult;\n\n #abortCtrl: AbortController;\n\n signal: AbortSignal;\n\n constructor() {\n this.#abortCtrl = new AbortController();\n this.signal = this.#abortCtrl.signal;\n }\n\n abort(): void {\n this.#abortCtrl.abort();\n }\n\n async fromFile(file: File): Promise<IAnalyzeResult> {\n this.importData = undefined;\n this.analysis = undefined;\n\n const contents = await file.text();\n let data: unknown | undefined;\n try {\n data = JSON.parse(contents);\n } catch (e) {\n // ...\n }\n return this.analyzeData(data);\n }\n\n async importProject(db: StoreBindings, space: string, parent?: string): Promise<void> {\n const { importData, analysis } = this;\n if (!importData || !analysis) {\n throw new Error(`You need to initialize import first.`);\n }\n if (analysis.error) {\n throw new Error(`The import data are invalid.`);\n }\n switch (analysis.source) {\n case 'arc': this.importArcProject(importData as ArcExportObject, db, space, parent); break;\n case 'api-client': this.importHttpProject(importData as IHttpProject, db, space, parent); break;\n case 'postman': this.importPostmanProject(importData, analysis, db, space, parent); break;\n default: throw new Error(`Unknown import source: ${analysis.source}.`);\n }\n }\n\n protected analyzeData(data: unknown): IAnalyzeResult {\n this.importData = data;\n let analysis: IAnalyzeResult;\n\n if (!data) {\n analysis = {\n error: true,\n message: 'Unable to parse the input file. Not a JSON file.'\n };\n } else if (this.isHttpProject(data)) {\n analysis = this.analyzeHttpProject(data);\n } else if (this.isArcProject(data)) {\n analysis = this.analyzeArcProject(data);\n } else if (this.isPostmanCollection(data)) {\n analysis = this.analyzePostman(data);\n } else {\n analysis = {\n error: true,\n message: 'Unrecognized file. Expected ARC, Postman, or HTTP Client export.'\n };\n }\n this.analysis = analysis;\n return analysis;\n }\n\n /**\n * Checks whether the passed data contain Postman collection (v2 or v2.1).\n */\n protected isPostmanCollection(data: unknown): boolean {\n const typed = data as { info: { _postman_id: string, name: string, schema: string } }\n if (!typed.info || !typed.info.schema) {\n return false;\n }\n const { schema } = typed.info;\n return [PostmanV20Schema, PostmanV21Schema].includes(schema);\n }\n\n protected analyzePostman(data: unknown): IAnalyzeResult {\n const typed = data as { info: { _postman_id: string, name: string, schema: string } }\n const { schema, name } = typed.info;\n return {\n name: name || 'Unnamed collection',\n source: 'postman',\n version: schema === PostmanV20Schema ? 'v2' : 'v2.1'\n }\n }\n\n /**\n * Checks whether the passed data contain ARC's project\n */\n protected isArcProject(data: unknown): boolean {\n const typed = data as ArcExportObject;\n if (typed.kind !== 'ARC#Project') {\n return false;\n }\n return !!typed.projects && typed.projects.length === 1;\n }\n\n protected analyzeArcProject(data: unknown): IAnalyzeResult {\n const typed = data as ArcExportObject;\n const [project] = typed.projects as ExportArcProjects[];\n return {\n source: 'arc',\n name: project.name,\n }\n }\n\n /**\n * Checks whether the data is an HttpProject.\n */\n protected isHttpProject(data: unknown): boolean {\n const typed = data as IHttpProject;\n return typed.kind === HttpProjectKind;\n }\n\n protected analyzeHttpProject(data: unknown): IAnalyzeResult {\n const typed = data as IHttpProject;\n return {\n source: 'api-client',\n name: typed.info.name || 'Unnamed project',\n }\n }\n\n protected async importArcProject(importData: ArcExportObject, db: StoreBindings, space: string, parent?: string): Promise<void> {\n const transformer = new ArcPouchTransformer(importData);\n const normalized = await transformer.transform();\n const processor = new LegacyDataExportToApiProject();\n const projects = await processor.readProjects(normalized);\n const [data] = projects;\n this.upsert(data, db, space, parent);\n }\n\n protected async importHttpProject(importData: IHttpProject, db: StoreBindings, space: string, parent?: string): Promise<void> {\n const data = new HttpProject(importData);\n this.upsert(data, db, space, parent);\n }\n\n protected async importPostmanProject(importData: unknown, analysis: IAnalyzeResult, db: StoreBindings, space: string, parent?: string): Promise<void> {\n const data = await PostmanDataTransformer.transform(importData);\n const project = Array.isArray(data) ? data[0] : data;\n this.upsert(project, db, space, parent);\n }\n\n protected async upsert(data: HttpProject, db: StoreBindings, space: string, parent?: string): Promise<void> {\n const meta = Project.fromProject(data, space);\n const opts: FileAddOptions = {};\n if (parent) {\n opts.parent = parent;\n }\n // meta file\n const file = await db.files.add(meta.toJSON(), opts);\n // file contents\n await db.media.add(file.key, data.toJSON(), 'application/json');\n }\n}\n"]}
|
|
@@ -7,12 +7,14 @@ import { IdbProjectUi } from './idb/IdbProjectUi.js';
|
|
|
7
7
|
* The implementation of the API Client app database in IDB.
|
|
8
8
|
*/
|
|
9
9
|
export class HttpClientIdbDatabase {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
constructor() {
|
|
11
|
+
/**
|
|
12
|
+
* The default limit of items returned by the list operation.
|
|
13
|
+
* @default 35
|
|
14
|
+
*/
|
|
15
|
+
this.defaultLimit = 35;
|
|
16
|
+
this.cursor = new Cursor();
|
|
17
|
+
}
|
|
16
18
|
/**
|
|
17
19
|
* The reference to the currently opened database.
|
|
18
20
|
* This throws when the `initialize()` method wasn't called.
|
|
@@ -73,7 +75,6 @@ export class HttpClientIdbDatabase {
|
|
|
73
75
|
this.db.close();
|
|
74
76
|
this._db = undefined;
|
|
75
77
|
}
|
|
76
|
-
cursor = new Cursor();
|
|
77
78
|
async readListState(source = {}) {
|
|
78
79
|
if (source.cursor) {
|
|
79
80
|
return this.cursor.decodeCursor(source.cursor);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpClientIdbDatabase.js","sourceRoot":"","sources":["../../../src/http-client/store/HttpClientIdbDatabase.ts"],"names":[],"mappings":"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","sourcesContent":["import { openDB, IDBPDatabase, IDBPObjectStore } from 'idb/with-async-ittr';\nimport { ContextListOptions } from '@api-client/core/build/browser.js';\nimport { HttpClientPersistance } from \"./HttpClientPersistance.js\";\nimport { Cursor } from './Cursor.js';\nimport { IListState } from './State.js';\nimport { HttpClientDB, SpaceStoreNames, StoreName } from './types.js';\nimport { IdbUrlHistory } from './idb/IdbUrlHistory.js';\nimport { IdbWsHistory } from './idb/IdbWsHistory.js';\nimport { IdbProjectUi } from './idb/IdbProjectUi.js';\n\n/**\n * The implementation of the API Client app database in IDB.\n */\nexport class HttpClientIdbDatabase implements HttpClientPersistance {\n /**\n * The default limit of items returned by the list operation.\n * @default 35\n */\n defaultLimit = 35;\n\n protected _db?: IDBPDatabase<HttpClientDB>;\n\n /**\n * The reference to the currently opened database.\n * This throws when the `initialize()` method wasn't called.\n */\n get db(): IDBPDatabase<HttpClientDB> {\n const db = this._db;\n if (!db) {\n throw new Error(`Attempted to access the database before opening a connection.`);\n }\n return db;\n }\n \n #urlHistory?: IdbUrlHistory;\n\n /**\n * File metadata store.\n */\n get urlHistory(): IdbUrlHistory {\n const ref = this.#urlHistory;\n if (!ref) {\n throw new Error(`Store not initialized.`);\n }\n return ref;\n }\n\n #wsHistory?: IdbWsHistory;\n\n /**\n * File metadata store.\n */\n get wsHistory(): IdbWsHistory {\n const ref = this.#wsHistory;\n if (!ref) {\n throw new Error(`Store not initialized.`);\n }\n return ref;\n }\n\n #projectUi?: IdbProjectUi;\n\n /**\n * File metadata store.\n */\n get projectUi(): IdbProjectUi {\n const ref = this.#projectUi;\n if (!ref) {\n throw new Error(`Store not initialized.`);\n }\n return ref;\n }\n\n async initialize(): Promise<void> {\n const db = await this.open();\n\n this.#urlHistory = new IdbUrlHistory(this, db);\n this.#wsHistory = new IdbWsHistory(this, db);\n this.#projectUi = new IdbProjectUi(this, db);\n \n await this.#urlHistory.warmup();\n await this.#wsHistory.warmup();\n await this.#projectUi.warmup();\n }\n\n async cleanup(): Promise<void> {\n await this.urlHistory.cleanup();\n await this.wsHistory.cleanup();\n await this.projectUi.cleanup();\n\n this.db.close();\n this._db = undefined;\n }\n\n cursor = new Cursor();\n\n async readListState(source: ContextListOptions = {}): Promise<IListState> {\n if (source.cursor) {\n return this.cursor.decodeCursor(source.cursor);\n }\n return { ...source } as IListState;\n }\n\n /**\n * Creates a database cursor when there are results.\n * This sets `skip` and `lastKey` parameters.\n * \n * @param state The last list state object\n * @param results The read results.\n * @returns A cursor to be used with pagination.\n */\n async createCursorIfNeeded(state: IListState, results: unknown[]): Promise<string | undefined> {\n if (!results.length) {\n return undefined;\n }\n\n const copy = { ...state } as IListState;\n const { key } = (results[results.length - 1] as { key: string });\n copy.skip = 1;\n copy.lastKey = key;\n return this.cursor.encodeCursor(copy);\n }\n\n /**\n * Opens the ARC store.\n * @returns The reference to the database\n */\n async open(): Promise<IDBPDatabase<HttpClientDB>> {\n if (this._db) {\n return this._db;\n }\n const dbResult = await openDB<HttpClientDB>('HttpClient', 1, {\n upgrade: (db) => {\n const stores: StoreName[] = [\n 'UrlHistory', 'WsHistory',\n 'AuthCache', 'Hosts', 'Environments', \n 'ProjectUi', \n ];\n const names = db.objectStoreNames;\n for (const name of stores) {\n const exists = names.contains(name);\n const fnName = `_${name}UpgradeHandler` as unknown as '_UrlHistoryUpgradeHandler' | '_WsHistoryUpgradeHandler' | '_ProjectUiUpgradeHandler';\n if (typeof this[fnName] === 'function') {\n this[fnName](db, exists);\n } else if (!exists) {\n this._defaultUpgradeHandler(name as SpaceStoreNames, db, exists);\n }\n }\n },\n });\n this._db = dbResult;\n return dbResult;\n }\n\n /**\n * Creates a default store where the stored object is identified by the `data.key` path.\n * @param name The store name to create\n * @param db The handler to the database\n */\n private _defaultUpgradeHandler(name: SpaceStoreNames, db: IDBPDatabase<HttpClientDB>, storeExists: boolean): void {\n if (storeExists) {\n return;\n }\n const store = db.createObjectStore(name, { keyPath: 'data.key' });\n const typed = store as IDBPObjectStore<HttpClientDB, SpaceStoreNames[], SpaceStoreNames, 'versionchange'>;\n typed.createIndex('space', 'meta.space', { unique: false });\n }\n\n private _UrlHistoryUpgradeHandler(db: IDBPDatabase<HttpClientDB>, storeExists: boolean): void {\n if (storeExists) {\n return;\n }\n db.createObjectStore('UrlHistory', { keyPath: 'key' });\n }\n\n private _WsHistoryUpgradeHandler(db: IDBPDatabase<HttpClientDB>, storeExists: boolean): void {\n if (storeExists) {\n return;\n }\n db.createObjectStore('WsHistory', { keyPath: 'key' });\n }\n\n private _ProjectUiUpgradeHandler(db: IDBPDatabase<HttpClientDB>, storeExists: boolean): void {\n if (storeExists) {\n return;\n }\n const store = db.createObjectStore('ProjectUi', { keyPath: ['meta.project', 'meta.key'] });\n const typed = store as IDBPObjectStore<HttpClientDB, ['ProjectUi'], 'ProjectUi', 'versionchange'>;\n typed.createIndex('project', 'meta.project', { unique: false });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HttpClientIdbDatabase.js","sourceRoot":"","sources":["../../../src/http-client/store/HttpClientIdbDatabase.ts"],"names":[],"mappings":"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","sourcesContent":["import { openDB, IDBPDatabase, IDBPObjectStore } from 'idb/with-async-ittr';\nimport { ContextListOptions } from '@api-client/core/build/browser.js';\nimport { HttpClientPersistance } from \"./HttpClientPersistance.js\";\nimport { Cursor } from './Cursor.js';\nimport { IListState } from './State.js';\nimport { HttpClientDB, SpaceStoreNames, StoreName } from './types.js';\nimport { IdbUrlHistory } from './idb/IdbUrlHistory.js';\nimport { IdbWsHistory } from './idb/IdbWsHistory.js';\nimport { IdbProjectUi } from './idb/IdbProjectUi.js';\n\n/**\n * The implementation of the API Client app database in IDB.\n */\nexport class HttpClientIdbDatabase implements HttpClientPersistance {\n /**\n * The default limit of items returned by the list operation.\n * @default 35\n */\n defaultLimit = 35;\n\n protected _db?: IDBPDatabase<HttpClientDB>;\n\n /**\n * The reference to the currently opened database.\n * This throws when the `initialize()` method wasn't called.\n */\n get db(): IDBPDatabase<HttpClientDB> {\n const db = this._db;\n if (!db) {\n throw new Error(`Attempted to access the database before opening a connection.`);\n }\n return db;\n }\n \n #urlHistory?: IdbUrlHistory;\n\n /**\n * File metadata store.\n */\n get urlHistory(): IdbUrlHistory {\n const ref = this.#urlHistory;\n if (!ref) {\n throw new Error(`Store not initialized.`);\n }\n return ref;\n }\n\n #wsHistory?: IdbWsHistory;\n\n /**\n * File metadata store.\n */\n get wsHistory(): IdbWsHistory {\n const ref = this.#wsHistory;\n if (!ref) {\n throw new Error(`Store not initialized.`);\n }\n return ref;\n }\n\n #projectUi?: IdbProjectUi;\n\n /**\n * File metadata store.\n */\n get projectUi(): IdbProjectUi {\n const ref = this.#projectUi;\n if (!ref) {\n throw new Error(`Store not initialized.`);\n }\n return ref;\n }\n\n async initialize(): Promise<void> {\n const db = await this.open();\n\n this.#urlHistory = new IdbUrlHistory(this, db);\n this.#wsHistory = new IdbWsHistory(this, db);\n this.#projectUi = new IdbProjectUi(this, db);\n \n await this.#urlHistory.warmup();\n await this.#wsHistory.warmup();\n await this.#projectUi.warmup();\n }\n\n async cleanup(): Promise<void> {\n await this.urlHistory.cleanup();\n await this.wsHistory.cleanup();\n await this.projectUi.cleanup();\n\n this.db.close();\n this._db = undefined;\n }\n\n cursor = new Cursor();\n\n async readListState(source: ContextListOptions = {}): Promise<IListState> {\n if (source.cursor) {\n return this.cursor.decodeCursor(source.cursor);\n }\n return { ...source } as IListState;\n }\n\n /**\n * Creates a database cursor when there are results.\n * This sets `skip` and `lastKey` parameters.\n * \n * @param state The last list state object\n * @param results The read results.\n * @returns A cursor to be used with pagination.\n */\n async createCursorIfNeeded(state: IListState, results: unknown[]): Promise<string | undefined> {\n if (!results.length) {\n return undefined;\n }\n\n const copy = { ...state } as IListState;\n const { key } = (results[results.length - 1] as { key: string });\n copy.skip = 1;\n copy.lastKey = key;\n return this.cursor.encodeCursor(copy);\n }\n\n /**\n * Opens the ARC store.\n * @returns The reference to the database\n */\n async open(): Promise<IDBPDatabase<HttpClientDB>> {\n if (this._db) {\n return this._db;\n }\n const dbResult = await openDB<HttpClientDB>('HttpClient', 1, {\n upgrade: (db) => {\n const stores: StoreName[] = [\n 'UrlHistory', 'WsHistory',\n 'AuthCache', 'Hosts', 'Environments', \n 'ProjectUi', \n ];\n const names = db.objectStoreNames;\n for (const name of stores) {\n const exists = names.contains(name);\n const fnName = `_${name}UpgradeHandler` as unknown as '_UrlHistoryUpgradeHandler' | '_WsHistoryUpgradeHandler' | '_ProjectUiUpgradeHandler';\n if (typeof this[fnName] === 'function') {\n this[fnName](db, exists);\n } else if (!exists) {\n this._defaultUpgradeHandler(name as SpaceStoreNames, db, exists);\n }\n }\n },\n });\n this._db = dbResult;\n return dbResult;\n }\n\n /**\n * Creates a default store where the stored object is identified by the `data.key` path.\n * @param name The store name to create\n * @param db The handler to the database\n */\n private _defaultUpgradeHandler(name: SpaceStoreNames, db: IDBPDatabase<HttpClientDB>, storeExists: boolean): void {\n if (storeExists) {\n return;\n }\n const store = db.createObjectStore(name, { keyPath: 'data.key' });\n const typed = store as IDBPObjectStore<HttpClientDB, SpaceStoreNames[], SpaceStoreNames, 'versionchange'>;\n typed.createIndex('space', 'meta.space', { unique: false });\n }\n\n private _UrlHistoryUpgradeHandler(db: IDBPDatabase<HttpClientDB>, storeExists: boolean): void {\n if (storeExists) {\n return;\n }\n db.createObjectStore('UrlHistory', { keyPath: 'key' });\n }\n\n private _WsHistoryUpgradeHandler(db: IDBPDatabase<HttpClientDB>, storeExists: boolean): void {\n if (storeExists) {\n return;\n }\n db.createObjectStore('WsHistory', { keyPath: 'key' });\n }\n\n private _ProjectUiUpgradeHandler(db: IDBPDatabase<HttpClientDB>, storeExists: boolean): void {\n if (storeExists) {\n return;\n }\n const store = db.createObjectStore('ProjectUi', { keyPath: ['meta.project', 'meta.key'] });\n const typed = store as IDBPObjectStore<HttpClientDB, ['ProjectUi'], 'ProjectUi', 'versionchange'>;\n typed.createIndex('project', 'meta.project', { unique: false });\n }\n}\n"]}
|
|
@@ -4,29 +4,32 @@ import { HttpClientIdbDatabase } from "./HttpClientIdbDatabase.js";
|
|
|
4
4
|
* A logic running in the shared worker that accesses datastore for API Client.
|
|
5
5
|
*/
|
|
6
6
|
export class IdbThread extends SharedWorkerThread {
|
|
7
|
-
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.store = new HttpClientIdbDatabase();
|
|
10
|
+
this.wsHistory = {
|
|
11
|
+
add: (url) => this.store.wsHistory.add(url),
|
|
12
|
+
query: (query) => this.store.wsHistory.query(query),
|
|
13
|
+
delete: (url) => this.store.wsHistory.delete(url),
|
|
14
|
+
clear: () => this.store.wsHistory.clear(),
|
|
15
|
+
};
|
|
16
|
+
this.urlHistory = {
|
|
17
|
+
add: (url) => this.store.urlHistory.add(url),
|
|
18
|
+
query: (query) => this.store.urlHistory.query(query),
|
|
19
|
+
delete: (url) => this.store.urlHistory.delete(url),
|
|
20
|
+
clear: () => this.store.urlHistory.clear(),
|
|
21
|
+
};
|
|
22
|
+
this.projectUi = {
|
|
23
|
+
clear: (key) => this.store.projectUi.clear(key),
|
|
24
|
+
set: (pid, key, meta) => this.store.projectUi.set(pid, key, meta),
|
|
25
|
+
get: (pid, key) => this.store.projectUi.get(pid, key),
|
|
26
|
+
getBulk: (pid, keys) => this.store.projectUi.getBulk(pid, keys),
|
|
27
|
+
delete: (pid, key) => this.store.projectUi.delete(pid, key),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
8
30
|
async initializeStore() {
|
|
9
31
|
await this.store.initialize();
|
|
10
32
|
}
|
|
11
|
-
wsHistory = {
|
|
12
|
-
add: (url) => this.store.wsHistory.add(url),
|
|
13
|
-
query: (query) => this.store.wsHistory.query(query),
|
|
14
|
-
delete: (url) => this.store.wsHistory.delete(url),
|
|
15
|
-
clear: () => this.store.wsHistory.clear(),
|
|
16
|
-
};
|
|
17
|
-
urlHistory = {
|
|
18
|
-
add: (url) => this.store.urlHistory.add(url),
|
|
19
|
-
query: (query) => this.store.urlHistory.query(query),
|
|
20
|
-
delete: (url) => this.store.urlHistory.delete(url),
|
|
21
|
-
clear: () => this.store.urlHistory.clear(),
|
|
22
|
-
};
|
|
23
|
-
projectUi = {
|
|
24
|
-
clear: (key) => this.store.projectUi.clear(key),
|
|
25
|
-
set: (pid, key, meta) => this.store.projectUi.set(pid, key, meta),
|
|
26
|
-
get: (pid, key) => this.store.projectUi.get(pid, key),
|
|
27
|
-
getBulk: (pid, keys) => this.store.projectUi.getBulk(pid, keys),
|
|
28
|
-
delete: (pid, key) => this.store.projectUi.delete(pid, key),
|
|
29
|
-
};
|
|
30
33
|
}
|
|
31
34
|
// Probably this should go to a separate file...
|
|
32
35
|
const instance = new IdbThread();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdbThread.js","sourceRoot":"","sources":["../../../src/http-client/store/IdbThread.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,kBAAkB;
|
|
1
|
+
{"version":3,"file":"IdbThread.js","sourceRoot":"","sources":["../../../src/http-client/store/IdbThread.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,kBAAkB;IAAjD;;QACE,UAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAMpC,cAAS,GAAG;YACV,GAAG,EAAE,CAAC,GAAW,EAAiB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAClE,KAAK,EAAE,CAAC,KAAa,EAAiC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;YAC1F,MAAM,EAAE,CAAC,GAAW,EAAgC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;YACvF,KAAK,EAAE,GAAkB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE;SACzD,CAAA;QAED,eAAU,GAAG;YACX,GAAG,EAAE,CAAC,GAAW,EAAiB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;YACnE,KAAK,EAAE,CAAC,KAAa,EAAiC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;YAC3F,MAAM,EAAE,CAAC,GAAW,EAAgC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;YACxF,KAAK,EAAE,GAAkB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE;SAC1D,CAAA;QAED,cAAS,GAAG;YACV,KAAK,EAAE,CAAC,GAAW,EAAgC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;YACrF,GAAG,EAAE,CAAC,GAAW,EAAE,GAAW,EAAE,IAAoB,EAAgD,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;YAC/I,GAAG,EAAE,CAAC,GAAW,EAAE,GAAW,EAAuC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;YAC1G,OAAO,EAAE,CAAC,GAAW,EAAE,IAAc,EAAiD,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC;YAChI,MAAM,EAAE,CAAC,GAAW,EAAE,GAAW,EAAgC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;SAC1G,CAAA;IACH,CAAC;IAzBC,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;CAuBF;AAED,gDAAgD;AAChD,MAAM,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;AACjC,QAAQ,CAAC,UAAU,EAAE,CAAC","sourcesContent":["import { \n ContextChangeRecord, ContextDeleteRecord, \n IBulkOperationResult, \n IQueryResponse, IRequestUiMeta, IUrl\n} from \"@api-client/core/build/browser.js\";\nimport { HttpClientStore } from \"./HttpClientStore.js\";\nimport { SharedWorkerThread } from \"../../bindings/base/SharedWorkerThread.js\";\nimport { HttpClientIdbDatabase } from \"./HttpClientIdbDatabase.js\";\n\n/**\n * A logic running in the shared worker that accesses datastore for API Client.\n */\nexport class IdbThread extends SharedWorkerThread implements HttpClientStore {\n store = new HttpClientIdbDatabase();\n\n async initializeStore(): Promise<void> {\n await this.store.initialize();\n }\n\n wsHistory = {\n add: (url: string): Promise<IUrl> => this.store.wsHistory.add(url),\n query: (query: string): Promise<IQueryResponse<IUrl>> => this.store.wsHistory.query(query),\n delete: (url: string): Promise<ContextDeleteRecord> => this.store.wsHistory.delete(url),\n clear: (): Promise<void> => this.store.wsHistory.clear(),\n }\n\n urlHistory = {\n add: (url: string): Promise<IUrl> => this.store.urlHistory.add(url),\n query: (query: string): Promise<IQueryResponse<IUrl>> => this.store.urlHistory.query(query),\n delete: (url: string): Promise<ContextDeleteRecord> => this.store.urlHistory.delete(url),\n clear: (): Promise<void> => this.store.urlHistory.clear(),\n }\n\n projectUi = {\n clear: (key: string): Promise<ContextDeleteRecord> => this.store.projectUi.clear(key),\n set: (pid: string, key: string, meta: IRequestUiMeta): Promise<ContextChangeRecord<IRequestUiMeta>> => this.store.projectUi.set(pid, key, meta),\n get: (pid: string, key: string): Promise<IRequestUiMeta | undefined> => this.store.projectUi.get(pid, key),\n getBulk: (pid: string, keys: string[]): Promise<IBulkOperationResult<IRequestUiMeta>> => this.store.projectUi.getBulk(pid, keys),\n delete: (pid: string, key: string): Promise<ContextDeleteRecord> => this.store.projectUi.delete(pid, key),\n }\n}\n\n// Probably this should go to a separate file...\nconst instance = new IdbThread();\ninstance.initialize();\n"]}
|
|
@@ -2,7 +2,10 @@ import { RequestUiMetaKind } from "@api-client/core/build/browser.js";
|
|
|
2
2
|
import { StoreBroadcast } from "../StoreBroadcast.js";
|
|
3
3
|
import { IdbStore } from "./IdbStore.js";
|
|
4
4
|
export class IdbProjectUi extends IdbStore {
|
|
5
|
-
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
this.channel = new BroadcastChannel(StoreBroadcast.projectUi);
|
|
8
|
+
}
|
|
6
9
|
async clear(key) {
|
|
7
10
|
const tx = this.db.transaction('ProjectUi', 'readwrite');
|
|
8
11
|
const index = tx.store.index('project');
|