@api-client/ui 0.0.5 → 0.0.8
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/bindings/base/StoreBindings.js +4 -4
- package/dist/bindings/base/StoreBindings.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/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/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-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/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/elements/ApiElement.d.ts +4 -0
- package/dist/elements/ApiElement.d.ts.map +1 -1
- package/dist/elements/ApiElement.js +6 -0
- package/dist/elements/ApiElement.js.map +1 -1
- package/dist/elements/amf/ApiAuthorizationEditor.element.js +1 -1
- package/dist/elements/amf/ApiAuthorizationEditor.element.js.map +1 -1
- package/dist/elements/amf/ApiOperationDocument.element.d.ts.map +1 -1
- package/dist/elements/amf/ApiOperationDocument.element.js +2 -1
- package/dist/elements/amf/ApiOperationDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiRequest.element.js +1 -1
- package/dist/elements/amf/ApiRequest.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 -3
- package/dist/elements/amf/ApiRequestEditor.element.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 +0 -3
- package/dist/elements/authorization/ui/Authorization.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 -6
- 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 +69 -23
- 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 +3 -6
- 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 +3 -6
- package/dist/elements/environment/VariablesEditor.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/http/BodyEditor.d.ts +0 -4
- package/dist/elements/http/BodyEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyEditor.js +10 -16
- 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 +3 -19
- 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 +0 -3
- 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 +3 -5
- 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 +0 -6
- 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/RequestConfigElement.d.ts +0 -1
- package/dist/elements/http/RequestConfigElement.d.ts.map +1 -1
- package/dist/elements/http/RequestConfigElement.js +8 -11
- 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 +62 -23
- package/dist/elements/http/RequestEditor.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 +2 -2
- 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 +0 -3
- package/dist/elements/http/UrlParamsForm.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/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/project/HttpProjectRequest.d.ts +2 -1
- package/dist/elements/project/HttpProjectRequest.d.ts.map +1 -1
- package/dist/elements/project/HttpProjectRequest.js +14 -5
- package/dist/elements/project/HttpProjectRequest.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 +1 -4
- 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 -5
- 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 -5
- package/dist/elements/schema-design/DataEntityEditorElement.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 -7
- 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 -7
- 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 -11
- package/dist/elements/schema-design/PropertyFormElement.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 +1 -1
- package/dist/pages/ApplicationScreen.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 +19 -3
- 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 +4 -2
- 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/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 +2 -1
- package/dist/pages/api-client/pages/Files.page.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 +14 -15
- 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/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 +6 -0
- package/dist/ui/UiElement.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/dialog/UiDialog.d.ts +3 -0
- package/dist/ui/dialog/UiDialog.d.ts.map +1 -1
- package/dist/ui/dialog/UiDialog.js +3 -0
- 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 +5 -1
- package/dist/ui/effects/ripple.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/input/CheckedElement.d.ts +1 -1
- package/dist/ui/input/CheckedElement.d.ts.map +1 -1
- package/dist/ui/input/CheckedElement.js +3 -3
- package/dist/ui/input/CheckedElement.js.map +1 -1
- package/dist/ui/input/Input.js +1 -1
- package/dist/ui/input/Input.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/tabs/UiTabs.d.ts +13 -1
- package/dist/ui/tabs/UiTabs.d.ts.map +1 -1
- package/dist/ui/tabs/UiTabs.js +42 -13
- package/dist/ui/tabs/UiTabs.js.map +1 -1
- package/package.json +1 -1
- package/src/bindings/base/StoreBindings.ts +4 -4
- 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/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 -1146
- 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 -82
- 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,10 +1,10 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { customElement } from 'lit/decorators.js';
|
|
3
|
-
import Element from '../../elements/http/HttpAssertions.js';
|
|
3
|
+
import Element from '../../elements/http/HttpAssertions.element.js';
|
|
4
4
|
import styles from '../../elements/http/HttpAssertions.styles.js';
|
|
5
|
-
import
|
|
5
|
+
import common from '../../elements/http/HttpFlows.common.js';
|
|
6
6
|
let HttpAssertionsElement = class HttpAssertionsElement extends Element {
|
|
7
|
-
static { this.styles = [styles,
|
|
7
|
+
static { this.styles = [styles, ...common]; }
|
|
8
8
|
};
|
|
9
9
|
HttpAssertionsElement = __decorate([
|
|
10
10
|
customElement('http-assertions')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-assertions.js","sourceRoot":"","sources":["../../../src/define/http/http-assertions.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,OAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"http-assertions.js","sourceRoot":"","sources":["../../../src/define/http/http-assertions.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,OAAO,MAAM,+CAA+C,CAAC;AACpE,OAAO,MAAM,MAAM,8CAA8C,CAAC;AAClE,OAAO,MAAM,MAAM,yCAAyC,CAAC;AAGtD,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,OAAO;aAChC,WAAM,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;;AADlC,qBAAqB;IADjC,aAAa,CAAC,iBAAiB,CAAC;GACpB,qBAAqB,CAEjC;SAFY,qBAAqB","sourcesContent":["import { customElement } from 'lit/decorators.js';\nimport Element from '../../elements/http/HttpAssertions.element.js';\nimport styles from '../../elements/http/HttpAssertions.styles.js';\nimport common from '../../elements/http/HttpFlows.common.js';\n\n@customElement('http-assertions')\nexport class HttpAssertionsElement extends Element {\n static override styles = [styles, ...common];\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'http-assertions': Element;\n }\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import Element from '../../elements/http/HttpFlows.element.js';
|
|
2
|
+
export declare class HttpFlowsElement extends Element {
|
|
3
|
+
static styles: import("lit").CSSResult[];
|
|
4
|
+
}
|
|
5
|
+
declare global {
|
|
6
|
+
interface HTMLElementTagNameMap {
|
|
7
|
+
'http-flows': Element;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=http-flows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-flows.d.ts","sourceRoot":"","sources":["../../../src/define/http/http-flows.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,0CAA0C,CAAC;AAI/D,qBACa,gBAAiB,SAAQ,OAAO;IAC3C,OAAgB,MAAM,4BAAuB;CAC9C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,OAAO,CAAC;KACvB;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { customElement } from 'lit/decorators.js';
|
|
3
|
+
import Element from '../../elements/http/HttpFlows.element.js';
|
|
4
|
+
import styles from '../../elements/http/HttpFlows.styles.js';
|
|
5
|
+
import common from '../../elements/http/HttpFlows.common.js';
|
|
6
|
+
let HttpFlowsElement = class HttpFlowsElement extends Element {
|
|
7
|
+
static { this.styles = [styles, ...common]; }
|
|
8
|
+
};
|
|
9
|
+
HttpFlowsElement = __decorate([
|
|
10
|
+
customElement('http-flows')
|
|
11
|
+
], HttpFlowsElement);
|
|
12
|
+
export { HttpFlowsElement };
|
|
13
|
+
//# sourceMappingURL=http-flows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-flows.js","sourceRoot":"","sources":["../../../src/define/http/http-flows.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,OAAO,MAAM,0CAA0C,CAAC;AAC/D,OAAO,MAAM,MAAM,yCAAyC,CAAC;AAC7D,OAAO,MAAM,MAAM,yCAAyC,CAAC;AAGtD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,OAAO;aAC3B,WAAM,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;;AADlC,gBAAgB;IAD5B,aAAa,CAAC,YAAY,CAAC;GACf,gBAAgB,CAE5B;SAFY,gBAAgB","sourcesContent":["import { customElement } from 'lit/decorators.js';\nimport Element from '../../elements/http/HttpFlows.element.js';\nimport styles from '../../elements/http/HttpFlows.styles.js';\nimport common from '../../elements/http/HttpFlows.common.js';\n\n@customElement('http-flows')\nexport class HttpFlowsElement extends Element {\n static override styles = [styles, ...common];\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'http-flows': Element;\n }\n}\n"]}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import Element from "../../ui/list/
|
|
1
|
+
import Element from "../../ui/list/UiDivider.element.js";
|
|
2
|
+
export declare class UiDividerElement extends Element {
|
|
3
|
+
static styles: import("lit").CSSResult[];
|
|
4
|
+
}
|
|
2
5
|
declare global {
|
|
3
6
|
interface HTMLElementTagNameMap {
|
|
4
7
|
'ui-divider': Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-divider.d.ts","sourceRoot":"","sources":["../../../src/define/ui/ui-divider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ui-divider.d.ts","sourceRoot":"","sources":["../../../src/define/ui/ui-divider.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,oCAAoC,CAAC;AAGzD,qBACa,gBAAiB,SAAQ,OAAO;IAC3C,OAAgB,MAAM,4BAAY;CACnC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,OAAO,CAAC;KACvB;CACF"}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { customElement } from "lit/decorators.js";
|
|
3
|
+
import Element from "../../ui/list/UiDivider.element.js";
|
|
4
|
+
import styles from "../../ui/list/UiDivider.styles.js";
|
|
5
|
+
let UiDividerElement = class UiDividerElement extends Element {
|
|
6
|
+
static { this.styles = [styles]; }
|
|
7
|
+
};
|
|
8
|
+
UiDividerElement = __decorate([
|
|
9
|
+
customElement('ui-divider')
|
|
10
|
+
], UiDividerElement);
|
|
11
|
+
export { UiDividerElement };
|
|
3
12
|
//# sourceMappingURL=ui-divider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-divider.js","sourceRoot":"","sources":["../../../src/define/ui/ui-divider.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"ui-divider.js","sourceRoot":"","sources":["../../../src/define/ui/ui-divider.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,OAAO,MAAM,oCAAoC,CAAC;AACzD,OAAO,MAAM,MAAM,mCAAmC,CAAC;AAGhD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,OAAO;aAC3B,WAAM,GAAG,CAAC,MAAM,CAAC,CAAC;;AADvB,gBAAgB;IAD5B,aAAa,CAAC,YAAY,CAAC;GACf,gBAAgB,CAE5B;SAFY,gBAAgB","sourcesContent":["import { customElement } from \"lit/decorators.js\";\nimport Element from \"../../ui/list/UiDivider.element.js\";\nimport styles from \"../../ui/list/UiDivider.styles.js\";\n\n@customElement('ui-divider')\nexport class UiDividerElement extends Element {\n static override styles = [styles];\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ui-divider': Element;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiElement.d.ts","sourceRoot":"","sources":["../../src/elements/ApiElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAGjC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,UAAU;IAChD;;;;;OAKG;IACyB,YAAY,EAAE,WAAW,CAAC;;
|
|
1
|
+
{"version":3,"file":"ApiElement.d.ts","sourceRoot":"","sources":["../../src/elements/ApiElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAGjC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,UAAU;IAChD;;;;;OAKG;IACyB,YAAY,EAAE,WAAW,CAAC;;IAOtD;;OAEG;IACH,YAAY,IAAI,IAAI;CAGrB"}
|
|
@@ -10,6 +10,12 @@ export default class ApiElement extends LitElement {
|
|
|
10
10
|
super();
|
|
11
11
|
this.eventsTarget = window;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* A common way for an element to notify a change.
|
|
15
|
+
*/
|
|
16
|
+
notifyChange() {
|
|
17
|
+
this.dispatchEvent(new Event('change'));
|
|
18
|
+
}
|
|
13
19
|
}
|
|
14
20
|
__decorate([
|
|
15
21
|
property({ type: Object })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiElement.js","sourceRoot":"","sources":["../../src/elements/ApiElement.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,UAAU;IAShD;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC7B,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"ApiElement.js","sourceRoot":"","sources":["../../src/elements/ApiElement.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,UAAU;IAShD;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF;AAb6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDAA2B","sourcesContent":["import { LitElement } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n\n/**\n * A base element for all elements in the UI library.\n * This allows to introduce global logic or properties for all elements.\n */\nexport default class ApiElement extends LitElement {\n /**\n * Whenever the element wants to listen on global object\n * it uses this as a reference to it.\n * \n * @default window\n */\n @property({ type: Object }) eventsTarget: EventTarget;\n\n constructor() {\n super();\n this.eventsTarget = window;\n }\n\n /**\n * A common way for an element to notify a change.\n */\n notifyChange(): void {\n this.dispatchEvent(new Event('change'));\n }\n}\n"]}
|
|
@@ -93,7 +93,7 @@ export default class ApiAuthorizationEditor extends ApiElement {
|
|
|
93
93
|
*/
|
|
94
94
|
changeHandler() {
|
|
95
95
|
this.validate();
|
|
96
|
-
this.
|
|
96
|
+
this.notifyChange();
|
|
97
97
|
}
|
|
98
98
|
/**
|
|
99
99
|
* Validates state of the editor. It sets `invalid` property when called.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiAuthorizationEditor.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiAuthorizationEditor.element.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit';\nimport { property, queryAll } from 'lit/decorators.js';\nimport { ApiDefinitions, IRequestAuthorization } from '@api-client/core/build/browser.js';\nimport { Oauth2Credentials } from '../authorization/types.js';\nimport ApiElement from '../ApiElement.js';\nimport { Authorization } from '../authorization/ui/Authorization.js';\nimport '../../define/amf/authorization/amf-basic-authorization.js';\nimport '../../define/amf/authorization/amf-passthrough-authorization.js';\nimport '../../define/amf/authorization/amf-bearer-authorization.js';\nimport '../../define/amf/authorization/amf-apikey-authorization.js';\nimport '../../define/amf/authorization/amf-ramlcustom-authorization.js';\nimport '../../define/amf/authorization/amf-oauth2-authorization.js';\nimport '../../define/amf/authorization/amf-oidc-authorization.js';\n\nexport interface SecurityMethods {\n types: string[];\n schemes: ApiDefinitions.IApiParametrizedSecurityScheme[];\n}\n\nexport default class ApiAuthorizationEditor extends ApiElement {\n protected securityInternal: ApiDefinitions.IApiSecurityRequirement | undefined;\n\n protected methodsInternal?: SecurityMethods;\n\n get security(): ApiDefinitions.IApiSecurityRequirement | undefined {\n return this.securityInternal;\n }\n\n set security(value: ApiDefinitions.IApiSecurityRequirement | undefined) {\n const old = this.securityInternal;\n if (old === value) {\n return;\n }\n this.securityInternal = value;\n this.processModel();\n this.requestUpdate();\n }\n\n get methods(): SecurityMethods | undefined {\n return this.methodsInternal;\n }\n\n /**\n * Whether or not the element is invalid. The validation state changes\n * when settings change or when the `validate()` function is called.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) invalid?: boolean;\n\n /**\n * List of credentials source\n */\n @property({ type: Array }) credentialsSource?: Oauth2Credentials[];\n\n /**\n * Redirect URL for the OAuth2 authorization.\n * @attribute\n */\n @property({ type: String }) oauth2RedirectUri?: string;\n\n /** \n * When set it overrides the `authorizationUri` in the authorization editor,\n * regardless to the authorization scheme applied to the request.\n * This is to be used with the mocking service.\n * @attribute\n */\n @property({ type: String }) oauth2AuthorizationUri?: string;\n\n /** \n * When set it overrides the `authorizationUri` in the authorization editor,\n * regardless to the authorization scheme applied to the request.\n * This is to be used with the mocking service.\n * @attribute\n */\n @property({ type: String }) oauth2AccessTokenUri?: string;\n\n @queryAll('.auth-editor') readonly editors!: NodeListOf<Authorization>;\n\n /**\n * Reads list of authorization methods from the model.\n */\n protected processModel(): void {\n const security = this.securityInternal;\n if (!security) {\n return;\n }\n this.methodsInternal = this.computeMethods(security.schemes);\n }\n\n /**\n * Computes list of security schemes that can be applied to the element.\n *\n * @param schemes A list of security schemes to process.\n * @returns A list of authorization methods that can be applied to\n * the current endpoint. Each object describes the list of security types\n * that can be applied to the editor. In OAS an auth method may be an union\n * of methods.\n */\n protected computeMethods(schemes: ApiDefinitions.IApiParametrizedSecurityScheme[]): SecurityMethods {\n const result: SecurityMethods = {\n types: [],\n schemes: [],\n };\n schemes.forEach((security) => {\n const type = this.listSchemeLabels(security);\n if (!type) {\n return;\n }\n result.types.push(type);\n result.schemes.push(security);\n });\n return result;\n }\n\n /**\n * Reads authorization scheme's name and type from the AMF model.\n */\n protected listSchemeLabels(security: ApiDefinitions.IApiParametrizedSecurityScheme): string | undefined {\n const { name, scheme } = security;\n if (name === 'null') {\n // RAML allows to define a \"null\" scheme. This means that the authorization\n // for this endpoint is optional.\n return 'No authorization';\n }\n if (!scheme) {\n return undefined;\n }\n let { type } = scheme;\n if (type === 'http') {\n // HTTP type can be `basic` or `bearer`.\n const config = scheme.settings as ApiDefinitions.IApiSecurityHttpSettings;\n if (!config) {\n // this happens when AMF doesn't properly read graph model back to the store.\n // AMF team promised to fix this...\n type = undefined;\n } else {\n type = config.scheme;\n }\n }\n return type;\n }\n\n /**\n * A function called each time anything change in the editor.\n * Revalidates the component and dispatches the `change` event.\n */\n protected changeHandler(): void {\n this.validate();\n this.dispatchEvent(new Event('change'));\n }\n\n /**\n * Validates state of the editor. It sets `invalid` property when called.\n *\n * Exception: OAuth 2 form reports valid even when the `accessToken` is not\n * set. This adjust for this and reports invalid when `accessToken` for OAuth 2\n * is missing.\n *\n * @returns True when the form has valid data.\n */\n validate(): boolean {\n const { editors } = this;\n let valid = true;\n for (let i = 0, len = editors.length; i < len; i++) {\n const node = editors[i];\n const methodValid = node.checkValidity();\n if (!methodValid) {\n valid = methodValid;\n break;\n }\n // if (['amf-oauth2-authorization', 'amf-oidc-authorization'].includes(node.localName)) {\n // const oauth = node as OAuth2Authorization;\n // const { config } = oauth;\n // if (!config.accessToken) {\n // valid = false;\n // break;\n // }\n // }\n }\n this.invalid = !valid;\n return valid;\n }\n\n /**\n * Creates a list of configuration by calling the `serialize()` function on each\n * currently rendered authorization form.\n *\n * @returns List of authorization settings.\n */\n serialize(): IRequestAuthorization[] {\n const { editors } = this;\n return Array.from(editors).map((editor) => {\n const auth = editor.authorization as IRequestAuthorization;\n auth.valid = editor.checkValidity();\n return auth;\n });\n }\n\n /**\n * Calls the `authorize()` function on each rendered authorization methods.\n * Currently only `OAuth 1.0` and `OAuth 2.0` actually perform the authorization. \n * \n * Each method is called in order to make sure the user is not overwhelmed with \n * dialogs or other UI elements.\n * \n * The function rejects when at least one authorization method rejects.\n */\n async authorize(): Promise<void> {\n const { editors } = this;\n const list = Array.from(editors);\n while (list.length) {\n const auth = list.shift();\n if (!auth) {\n break;\n }\n // eslint-disable-next-line no-await-in-loop\n await auth.authorize();\n }\n }\n\n override render(): TemplateResult {\n const methods = this.methodsInternal;\n if (!methods || !methods.schemes.length) {\n return html``;\n }\n return html`\n <section class=\"authorization-union\">\n ${methods.schemes.map((scheme, index) => this.methodTemplate(scheme, methods.types[index]))}\n </section>\n `;\n }\n\n protected methodTemplate(scheme: ApiDefinitions.IApiParametrizedSecurityScheme, type: string): TemplateResult | string {\n switch (type) {\n case 'Basic Authentication':\n case 'basic':\n return this.basicAuthTemplate(scheme);\n case 'Digest Authentication':\n return this.digestAuthTemplate();\n case 'Pass Through':\n return this.passThroughAuthTemplate(scheme);\n case 'OAuth 2.0':\n return this.oa2AuthTemplate(scheme);\n case 'OAuth 1.0':\n return this.oa1AuthTemplate();\n case 'bearer':\n return this.bearerAuthTemplate(scheme);\n case 'Api Key':\n return this.apiKeyTemplate(scheme);\n case 'openIdConnect':\n return this.openIdConnectTemplate(scheme);\n default:\n if (String(type).indexOf('x-') === 0) {\n return this.ramlCustomAuthTemplate(scheme);\n }\n }\n return '';\n }\n\n /**\n * Renders a template for Basic authorization.\n */\n protected basicAuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`\n <amf-basic-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-basic-authorization>`;\n }\n\n /**\n * Renders a template for Digest authorization.\n */\n protected digestAuthTemplate(): TemplateResult {\n return html`\n <p class=\"no-support digest\">The Digest authorization is not longer supported.</p>\n `;\n }\n\n /**\n * Renders a template for Pass through authorization.\n */\n protected passThroughAuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`\n <amf-passthrough-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-passthrough-authorization>`;\n }\n\n /**\n * Renders a template for RAML custom authorization.\n */\n protected ramlCustomAuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`<amf-ramlcustom-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-ramlcustom-authorization>`;\n }\n\n /**\n * Renders a template for Bearer authorization (OAS).\n */\n protected bearerAuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`\n <amf-bearer-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-bearer-authorization>`;\n }\n\n /**\n * Renders a template for OAuth 1 authorization.\n */\n protected oa1AuthTemplate(): TemplateResult {\n return html`\n <p class=\"no-support oauth1\">The OAuth1 authorization is not longer supported.</p>\n `;\n }\n\n /**\n * Renders a template for OAuth 2 authorization.\n */\n protected oa2AuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n const {\n oauth2RedirectUri,\n credentialsSource,\n oauth2AuthorizationUri,\n oauth2AccessTokenUri,\n } = this;\n return html`\n <amf-oauth2-authorization\n .defaultRedirectUri=\"${oauth2RedirectUri}\"\n .overrideAuthorizationUri=\"${oauth2AuthorizationUri}\"\n .overrideAccessTokenUri=\"${oauth2AccessTokenUri}\"\n .security=\"${security}\"\n .credentialsSource=\"${credentialsSource}\"\n @change=\"${this.changeHandler}\"\n class=\"auth-editor\"\n ></amf-oauth2-authorization>`;\n }\n\n /**\n * Renders a template for OAuth 2 authorization.\n */\n protected openIdConnectTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n const {\n oauth2RedirectUri,\n credentialsSource,\n } = this;\n return html`\n <amf-oidc-authorization\n .defaultRedirectUri=\"${oauth2RedirectUri}\"\n .security=\"${security}\"\n .credentialsSource=\"${credentialsSource}\"\n @change=\"${this.changeHandler}\"\n class=\"auth-editor\"\n ></amf-oidc-authorization>`;\n }\n\n /**\n * Renders a template for Api Keys authorization.\n */\n protected apiKeyTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`\n <amf-apikey-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-apikey-authorization>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ApiAuthorizationEditor.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiAuthorizationEditor.element.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit';\nimport { property, queryAll } from 'lit/decorators.js';\nimport { ApiDefinitions, IRequestAuthorization } from '@api-client/core/build/browser.js';\nimport { Oauth2Credentials } from '../authorization/types.js';\nimport ApiElement from '../ApiElement.js';\nimport { Authorization } from '../authorization/ui/Authorization.js';\nimport '../../define/amf/authorization/amf-basic-authorization.js';\nimport '../../define/amf/authorization/amf-passthrough-authorization.js';\nimport '../../define/amf/authorization/amf-bearer-authorization.js';\nimport '../../define/amf/authorization/amf-apikey-authorization.js';\nimport '../../define/amf/authorization/amf-ramlcustom-authorization.js';\nimport '../../define/amf/authorization/amf-oauth2-authorization.js';\nimport '../../define/amf/authorization/amf-oidc-authorization.js';\n\nexport interface SecurityMethods {\n types: string[];\n schemes: ApiDefinitions.IApiParametrizedSecurityScheme[];\n}\n\nexport default class ApiAuthorizationEditor extends ApiElement {\n protected securityInternal: ApiDefinitions.IApiSecurityRequirement | undefined;\n\n protected methodsInternal?: SecurityMethods;\n\n get security(): ApiDefinitions.IApiSecurityRequirement | undefined {\n return this.securityInternal;\n }\n\n set security(value: ApiDefinitions.IApiSecurityRequirement | undefined) {\n const old = this.securityInternal;\n if (old === value) {\n return;\n }\n this.securityInternal = value;\n this.processModel();\n this.requestUpdate();\n }\n\n get methods(): SecurityMethods | undefined {\n return this.methodsInternal;\n }\n\n /**\n * Whether or not the element is invalid. The validation state changes\n * when settings change or when the `validate()` function is called.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) invalid?: boolean;\n\n /**\n * List of credentials source\n */\n @property({ type: Array }) credentialsSource?: Oauth2Credentials[];\n\n /**\n * Redirect URL for the OAuth2 authorization.\n * @attribute\n */\n @property({ type: String }) oauth2RedirectUri?: string;\n\n /** \n * When set it overrides the `authorizationUri` in the authorization editor,\n * regardless to the authorization scheme applied to the request.\n * This is to be used with the mocking service.\n * @attribute\n */\n @property({ type: String }) oauth2AuthorizationUri?: string;\n\n /** \n * When set it overrides the `authorizationUri` in the authorization editor,\n * regardless to the authorization scheme applied to the request.\n * This is to be used with the mocking service.\n * @attribute\n */\n @property({ type: String }) oauth2AccessTokenUri?: string;\n\n @queryAll('.auth-editor') readonly editors!: NodeListOf<Authorization>;\n\n /**\n * Reads list of authorization methods from the model.\n */\n protected processModel(): void {\n const security = this.securityInternal;\n if (!security) {\n return;\n }\n this.methodsInternal = this.computeMethods(security.schemes);\n }\n\n /**\n * Computes list of security schemes that can be applied to the element.\n *\n * @param schemes A list of security schemes to process.\n * @returns A list of authorization methods that can be applied to\n * the current endpoint. Each object describes the list of security types\n * that can be applied to the editor. In OAS an auth method may be an union\n * of methods.\n */\n protected computeMethods(schemes: ApiDefinitions.IApiParametrizedSecurityScheme[]): SecurityMethods {\n const result: SecurityMethods = {\n types: [],\n schemes: [],\n };\n schemes.forEach((security) => {\n const type = this.listSchemeLabels(security);\n if (!type) {\n return;\n }\n result.types.push(type);\n result.schemes.push(security);\n });\n return result;\n }\n\n /**\n * Reads authorization scheme's name and type from the AMF model.\n */\n protected listSchemeLabels(security: ApiDefinitions.IApiParametrizedSecurityScheme): string | undefined {\n const { name, scheme } = security;\n if (name === 'null') {\n // RAML allows to define a \"null\" scheme. This means that the authorization\n // for this endpoint is optional.\n return 'No authorization';\n }\n if (!scheme) {\n return undefined;\n }\n let { type } = scheme;\n if (type === 'http') {\n // HTTP type can be `basic` or `bearer`.\n const config = scheme.settings as ApiDefinitions.IApiSecurityHttpSettings;\n if (!config) {\n // this happens when AMF doesn't properly read graph model back to the store.\n // AMF team promised to fix this...\n type = undefined;\n } else {\n type = config.scheme;\n }\n }\n return type;\n }\n\n /**\n * A function called each time anything change in the editor.\n * Revalidates the component and dispatches the `change` event.\n */\n protected changeHandler(): void {\n this.validate();\n this.notifyChange();\n }\n\n /**\n * Validates state of the editor. It sets `invalid` property when called.\n *\n * Exception: OAuth 2 form reports valid even when the `accessToken` is not\n * set. This adjust for this and reports invalid when `accessToken` for OAuth 2\n * is missing.\n *\n * @returns True when the form has valid data.\n */\n validate(): boolean {\n const { editors } = this;\n let valid = true;\n for (let i = 0, len = editors.length; i < len; i++) {\n const node = editors[i];\n const methodValid = node.checkValidity();\n if (!methodValid) {\n valid = methodValid;\n break;\n }\n // if (['amf-oauth2-authorization', 'amf-oidc-authorization'].includes(node.localName)) {\n // const oauth = node as OAuth2Authorization;\n // const { config } = oauth;\n // if (!config.accessToken) {\n // valid = false;\n // break;\n // }\n // }\n }\n this.invalid = !valid;\n return valid;\n }\n\n /**\n * Creates a list of configuration by calling the `serialize()` function on each\n * currently rendered authorization form.\n *\n * @returns List of authorization settings.\n */\n serialize(): IRequestAuthorization[] {\n const { editors } = this;\n return Array.from(editors).map((editor) => {\n const auth = editor.authorization as IRequestAuthorization;\n auth.valid = editor.checkValidity();\n return auth;\n });\n }\n\n /**\n * Calls the `authorize()` function on each rendered authorization methods.\n * Currently only `OAuth 1.0` and `OAuth 2.0` actually perform the authorization. \n * \n * Each method is called in order to make sure the user is not overwhelmed with \n * dialogs or other UI elements.\n * \n * The function rejects when at least one authorization method rejects.\n */\n async authorize(): Promise<void> {\n const { editors } = this;\n const list = Array.from(editors);\n while (list.length) {\n const auth = list.shift();\n if (!auth) {\n break;\n }\n // eslint-disable-next-line no-await-in-loop\n await auth.authorize();\n }\n }\n\n override render(): TemplateResult {\n const methods = this.methodsInternal;\n if (!methods || !methods.schemes.length) {\n return html``;\n }\n return html`\n <section class=\"authorization-union\">\n ${methods.schemes.map((scheme, index) => this.methodTemplate(scheme, methods.types[index]))}\n </section>\n `;\n }\n\n protected methodTemplate(scheme: ApiDefinitions.IApiParametrizedSecurityScheme, type: string): TemplateResult | string {\n switch (type) {\n case 'Basic Authentication':\n case 'basic':\n return this.basicAuthTemplate(scheme);\n case 'Digest Authentication':\n return this.digestAuthTemplate();\n case 'Pass Through':\n return this.passThroughAuthTemplate(scheme);\n case 'OAuth 2.0':\n return this.oa2AuthTemplate(scheme);\n case 'OAuth 1.0':\n return this.oa1AuthTemplate();\n case 'bearer':\n return this.bearerAuthTemplate(scheme);\n case 'Api Key':\n return this.apiKeyTemplate(scheme);\n case 'openIdConnect':\n return this.openIdConnectTemplate(scheme);\n default:\n if (String(type).indexOf('x-') === 0) {\n return this.ramlCustomAuthTemplate(scheme);\n }\n }\n return '';\n }\n\n /**\n * Renders a template for Basic authorization.\n */\n protected basicAuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`\n <amf-basic-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-basic-authorization>`;\n }\n\n /**\n * Renders a template for Digest authorization.\n */\n protected digestAuthTemplate(): TemplateResult {\n return html`\n <p class=\"no-support digest\">The Digest authorization is not longer supported.</p>\n `;\n }\n\n /**\n * Renders a template for Pass through authorization.\n */\n protected passThroughAuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`\n <amf-passthrough-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-passthrough-authorization>`;\n }\n\n /**\n * Renders a template for RAML custom authorization.\n */\n protected ramlCustomAuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`<amf-ramlcustom-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-ramlcustom-authorization>`;\n }\n\n /**\n * Renders a template for Bearer authorization (OAS).\n */\n protected bearerAuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`\n <amf-bearer-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-bearer-authorization>`;\n }\n\n /**\n * Renders a template for OAuth 1 authorization.\n */\n protected oa1AuthTemplate(): TemplateResult {\n return html`\n <p class=\"no-support oauth1\">The OAuth1 authorization is not longer supported.</p>\n `;\n }\n\n /**\n * Renders a template for OAuth 2 authorization.\n */\n protected oa2AuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n const {\n oauth2RedirectUri,\n credentialsSource,\n oauth2AuthorizationUri,\n oauth2AccessTokenUri,\n } = this;\n return html`\n <amf-oauth2-authorization\n .defaultRedirectUri=\"${oauth2RedirectUri}\"\n .overrideAuthorizationUri=\"${oauth2AuthorizationUri}\"\n .overrideAccessTokenUri=\"${oauth2AccessTokenUri}\"\n .security=\"${security}\"\n .credentialsSource=\"${credentialsSource}\"\n @change=\"${this.changeHandler}\"\n class=\"auth-editor\"\n ></amf-oauth2-authorization>`;\n }\n\n /**\n * Renders a template for OAuth 2 authorization.\n */\n protected openIdConnectTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n const {\n oauth2RedirectUri,\n credentialsSource,\n } = this;\n return html`\n <amf-oidc-authorization\n .defaultRedirectUri=\"${oauth2RedirectUri}\"\n .security=\"${security}\"\n .credentialsSource=\"${credentialsSource}\"\n @change=\"${this.changeHandler}\"\n class=\"auth-editor\"\n ></amf-oidc-authorization>`;\n }\n\n /**\n * Renders a template for Api Keys authorization.\n */\n protected apiKeyTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`\n <amf-apikey-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-apikey-authorization>\n `;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiOperationDocument.element.d.ts","sourceRoot":"","sources":["../../../src/elements/amf/ApiOperationDocument.element.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ApiOperationDocument.element.d.ts","sourceRoot":"","sources":["../../../src/elements/amf/ApiOperationDocument.element.ts"],"names":[],"mappings":"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"}
|
|
@@ -732,10 +732,11 @@ export default class ApiOperationDocument extends ApiDocumentationBase {
|
|
|
732
732
|
const { selectedStatus } = this;
|
|
733
733
|
const response = responses.find((item) => item.statusCode === selectedStatus);
|
|
734
734
|
if (!response) {
|
|
735
|
-
return html `<div class="empty-info">Select a response to render the documentation.</div>`;
|
|
735
|
+
return html `<div class="empty-info" id="status${selectedStatus}">Select a response to render the documentation.</div>`;
|
|
736
736
|
}
|
|
737
737
|
return html `
|
|
738
738
|
<api-response-document
|
|
739
|
+
id="status${selectedStatus}"
|
|
739
740
|
.domainId="${response.id}"
|
|
740
741
|
.response="${response}"
|
|
741
742
|
class="method-response"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiOperationDocument.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiOperationDocument.element.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { AmfShapes, ApiDefinitions, ApiSchemaGenerator, ApiSchemaValues, AmfNamespace, IHttpRequest } from '@api-client/core/build/browser.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { QueryParameterProcessor } from '../../amf/lib/QueryParameterProcessor.js';\nimport { ApiDocumentationBase } from './ApiDocumentationBase.js';\nimport { Events } from '../../events/amf/Events.js';\nimport { joinTraitNames } from '../../amf/lib/Utils.js';\nimport * as UrlLib from '../../amf/lib/UrlUtils.js';\nimport { tablePropertyTemplate } from './SchemaCommonTemplates.js';\nimport ApiRequestDocumentElement from './ApiRequestDocument.element.js';\nimport { TabSelectionDetail } from '../../ui/tabs/UiTabs.js';\nimport '../../define/amf/api-request-document.js';\nimport '../../define/amf/api-response-document.js';\nimport '../../define/amf/api-security-requirement-document.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-tabs.js';\nimport '../../define/ui/ui-tab.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/http/http-snippets.js';\n\n/**\n * A web component that renders the documentation page for an API operation built from \n * the AMF graph model.\n * \n * @fires tryit\n */\nexport default class ApiOperationDocument extends ApiDocumentationBase {\n protected endpointValue?: ApiDefinitions.IApiEndPoint;\n\n protected operationValue?: ApiDefinitions.IApiOperation;\n\n protected serversValue?: ApiDefinitions.IApiServer[];\n\n protected responsesValue?: ApiDefinitions.IApiResponse[];\n\n protected serverIdValue?: string;\n\n protected baseUriValue?: string;\n\n protected urlValue?: string;\n\n protected versionValue?: string;\n\n protected protocolsValue?: string[];\n\n protected snippetsPayloadValue?: string;\n\n protected snippetsHeadersValue?: string;\n\n protected snippetsParametersValue?: string;\n\n /** \n * The id of the currently selected server to use to construct the URL.\n * If not set a first server in the API servers array is used.\n * @attribute\n */\n @property({ type: String, reflect: true })\n get serverId(): string | undefined {\n return this.serverIdValue;\n }\n\n set serverId(value: string | undefined) {\n const old = this.serverIdValue;\n if (old === value) {\n return;\n }\n this.serverIdValue = value;\n this.computeUrlValue();\n this.computeParametersValue();\n this.requestUpdate();\n }\n\n /**\n * The computed list of servers.\n */\n get servers(): ApiDefinitions.IApiServer[] | undefined {\n return this.serversValue;\n }\n\n /**\n * The current server in use.\n */\n get server(): ApiDefinitions.IApiServer | undefined {\n const servers = this.serversValue;\n const serverId = this.serverIdValue;\n let server;\n if (Array.isArray(servers) && servers.length) {\n if (serverId) {\n server = servers.find((item) => item.id === serverId);\n } else {\n [server] = servers;\n }\n }\n return server;\n }\n\n get operation(): ApiDefinitions.IApiOperation | undefined {\n return this.operationValue;\n }\n\n set operation(value) {\n const old = this.operationValue;\n if (old === value) {\n return;\n }\n this.operationValue = value;\n this.processGraph();\n }\n\n get endpoint(): ApiDefinitions.IApiEndPoint | undefined {\n return this.endpointValue;\n }\n\n set endpoint(value) {\n const old = this.endpointValue;\n if (old === value) {\n return;\n }\n this.endpointValue = value;\n this.computeUrlValue();\n this.computeParametersValue();\n this.requestUpdate();\n }\n\n /**\n * A property to set to override AMF's model base URI information.\n * When this property is set, the `endpointUri` property is recalculated.\n * @attribute\n */\n @property({ type: String })\n get baseUri(): string | undefined {\n return this.baseUriValue;\n }\n\n set baseUri(value) {\n const old = this.baseUriValue;\n if (old === value) {\n return;\n }\n this.baseUriValue = value;\n this.computeUrlValue();\n this.computeParametersValue();\n this.requestUpdate();\n }\n\n /**\n * The computed URI for the endpoint.\n */\n get endpointUri(): string | undefined {\n return this.urlValue;\n }\n\n get snippetsUri(): string {\n const base = this.urlValue || '';\n const query = this.snippetsParametersValue || '';\n return `${base}${query}`\n }\n\n /**\n * The computed list of responses for this operation.\n */\n get responses(): ApiDefinitions.IApiResponse[] | undefined {\n return this.responsesValue;\n }\n\n /**\n * The API's protocols.\n */\n get protocols(): string[] | undefined {\n return this.protocolsValue;\n }\n\n\n get version(): string | undefined {\n return this.versionValue;\n }\n\n /** \n * The domain id of the currently selected security to render.\n * This is only used when a multiple security schemes are applied to the operation.\n * @attribute\n */\n @property({ type: String, reflect: true }) securityId?: string;\n\n /** \n * When set it opens the response section\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) responsesOpened?: boolean;\n\n /** \n * When set it opens the security section\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) securityOpened?: boolean;\n\n /** \n * When set it opens the code snippets section\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) snippetsOpened?: boolean;\n\n /** \n * The selected status code in the responses section.\n * @attribute\n */\n @property({ type: String }) selectedStatus?: string;\n\n /** \n * Whether the callbacks section is opened.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) callbacksOpened?: boolean;\n\n /** \n * When set it renders the \"try it\" button that dispatches the `tryit` event.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) tryItButton?: boolean;\n\n /** \n * When set it renders the view optimised for asynchronous API operation.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) asyncApi?: boolean;\n\n /**\n * When set it renders code examples section is the documentation\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) renderCodeSnippets?: boolean;\n\n /**\n * When set it renders security documentation when applicable\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) showSecurity?: boolean;\n\n /** \n * The currently rendered request panel mime type.\n * @attribute\n */\n @property({ type: String }) requestMimeType?: string;\n\n /** \n * Optional. The parent endpoint id. When set it uses this value to query for the endpoint\n * instead of querying for a parent through the operation id.\n * Also, when `endpoint` is set and the `endpointId` match then it ignores querying for \n * the endpoint.\n * @attribute\n */\n @property({ type: String }) endpointId?: string;\n\n override async processGraph(): Promise<void> {\n await this.queryEndpoint();\n await this.queryOperation();\n await this.queryServers();\n await this.queryProtocols();\n await this.queryResponses();\n this.preselectResponse();\n this.preselectSecurity();\n this.computeUrlValue();\n this.computeParametersValue();\n this.computeSnippetsPayload();\n this.computeSnippetsHeaders();\n this.requestUpdate();\n await this.updateComplete;\n this.dispatchEvent(new Event('graphload'));\n }\n\n /**\n * Queries the store for the operation data, when needed.\n */\n async queryOperation(): Promise<void> {\n const { domainId } = this;\n if (!domainId) {\n // this.operationValue = undefined;\n return;\n }\n if (this.operationValue && this.operationValue.id === domainId) {\n // in case the operation model was provided via the property setter.\n return;\n }\n try {\n const endpointId = this.endpointValue && this.endpointValue.id;\n const info = await Events.Operation.get(this, domainId, endpointId);\n this.operationValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API operation data: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries the store for the endpoint data.\n */\n async queryEndpoint(): Promise<void> {\n const { domainId, endpointId } = this;\n if (!domainId) {\n // this.endpointValue = undefined;\n return;\n }\n if (this.endpointValue && this.endpointValue.id === endpointId) {\n // in case the endpoint model was provided via the property setter.\n return;\n }\n this.endpointValue = undefined;\n try {\n const info = await (endpointId ? Events.Endpoint.get(this, endpointId) : Events.Operation.getParent(this, domainId));\n this.endpointValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API endpoint data: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries for the current servers value.\n */\n async queryServers(): Promise<void> {\n const { domainId } = this;\n const endpointId = this.endpointValue && this.endpointValue.id;\n try {\n const info = await Events.Server.query(this, {\n endpointId,\n methodId: domainId,\n });\n this.serversValue = info;\n } catch (e) {\n const ex = e as Error;\n this.serversValue = undefined;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API servers: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries the API store for the API protocols list.\n */\n async queryProtocols(): Promise<void> {\n this.protocolsValue = undefined;\n try {\n const info = await Events.Api.protocols(this);\n this.protocolsValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API protocols list: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries the API store for the API version value.\n */\n async queryVersion(): Promise<void> {\n this.versionValue = undefined;\n try {\n const info = await Events.Api.version(this);\n this.versionValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API version value: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries for the responses data of the current operation.\n */\n async queryResponses(): Promise<void> {\n this.responsesValue = undefined;\n const { operation } = this;\n if (!operation) {\n return;\n }\n const { responses = [] } = operation;\n if (!responses.length) {\n return;\n }\n this.responsesValue = responses;\n }\n\n /**\n * Updates the `selectedStatus` if not selected or the current selection doesn't \n * exists in the current list of responses.\n */\n protected preselectResponse(): void {\n const responses = this.responsesValue;\n if (!Array.isArray(responses) || !responses.length) {\n return;\n }\n responses.sort((a, b) => {\n if (a.statusCode === b.statusCode) {\n return 0;\n }\n return Number(a.statusCode) > Number(b.statusCode) ? 1 : -1;\n });\n const { selectedStatus } = this;\n if (!selectedStatus) {\n this.selectedStatus = responses[0].statusCode;\n return;\n }\n const selected = responses.find((item) => item.statusCode === selectedStatus);\n if (selected) {\n return;\n }\n this.selectedStatus = responses[0].statusCode;\n }\n\n /**\n * Updates the `securityId` if not selected or the current selection doesn't \n * exists in the current list of security.\n */\n protected preselectSecurity(): void {\n const { operation, showSecurity: renderSecurity, securityId } = this;\n if (!renderSecurity || !operation || !Array.isArray(operation.security) || !operation.security.length) {\n return;\n }\n if (!securityId) {\n this.securityId = operation.security[0].id;\n return;\n }\n const selected = operation.security.find((item) => item.id === securityId);\n if (selected) {\n return;\n }\n this.securityId = operation.security[0].id;\n }\n\n /**\n * Computes the URL value for the current serves, selected server, and endpoint's path.\n */\n protected computeUrlValue(): void {\n if (this.asyncApi) {\n return;\n }\n const { protocols, version, server, baseUri } = this;\n const endpoint = this.endpointValue;\n const url = UrlLib.computeEndpointUri({ baseUri, server, endpoint, protocols, version, });\n this.urlValue = url;\n }\n\n /**\n * Computes query parameters for the code snippets.\n */\n protected computeParametersValue(): void {\n this.snippetsParametersValue = undefined;\n const { operation } = this;\n if (!operation) {\n return;\n }\n const { request } = operation;\n if (!request) {\n return;\n }\n const { queryParameters, queryString } = request;\n let params: ApiDefinitions.IApiParameter[] | undefined;\n if (Array.isArray(queryParameters) && queryParameters.length) {\n params = queryParameters;\n } else if (queryString) {\n const factory = new QueryParameterProcessor();\n const items = factory.collectOperationParameters(request.queryString as AmfShapes.IShapeUnion, 'query');\n if (Array.isArray(items) && items.length) {\n params = items.map(i => i.parameter);\n }\n }\n if (!params || !params.length) {\n return;\n }\n const qp: Record<string, string> = {}\n params.forEach((param) => {\n const { required, schema, paramName, name } = param;\n if (!required) {\n return;\n }\n const parameterName = paramName || name;\n if (!parameterName) {\n return;\n }\n const anySchema = schema as AmfShapes.IApiAnyShape;\n const { defaultValueStr, examples = [] } = anySchema;\n if (defaultValueStr) {\n qp[parameterName] = defaultValueStr;\n } else if (examples.length) {\n const exp = examples.find(e => e.value);\n if (exp && exp.value) {\n qp[parameterName] = exp.value;\n }\n } else {\n const value = ApiSchemaValues.generateDefaultValue(schema as AmfShapes.IApiScalarShape);\n if (value || value === false || value === 0 || value === null) {\n qp[parameterName] = value;\n }\n // if (typeof value === 'undefined') {\n // qp[parameterName] = '';\n // } else {\n // qp[parameterName] = value;\n // }\n }\n });\n const value = UrlLib.applyUrlParameters('', qp, true);\n this.snippetsParametersValue = value;\n }\n\n /**\n * Computes payload value for the code snippets.\n */\n protected computeSnippetsPayload(): void {\n this.snippetsPayloadValue = undefined\n if (this.asyncApi) {\n return;\n }\n const { operation, requestMimeType } = this;\n if (!operation || !requestMimeType) {\n return;\n }\n const { request } = operation;\n if (!request) {\n return;\n }\n const { payloads = [] } = request;\n if (!payloads.length) {\n return;\n }\n const payload = payloads.find(p => p.mediaType === requestMimeType);\n if (!payload) {\n return;\n }\n const { examples = [], schema } = payload;\n let examplesCopy = [...examples];\n const anySchema = schema as AmfShapes.IApiAnyShape;\n if (Array.isArray(anySchema.examples) && anySchema.examples.length) {\n examplesCopy = examplesCopy.concat(anySchema.examples);\n }\n examplesCopy = examplesCopy.filter((i) => !!i.value || !!i.structuredValue);\n let payloadValue;\n if (examplesCopy.length) {\n const example = examplesCopy.find(e => !!e.value);\n if (example) {\n payloadValue = this.evaluateExample(example, requestMimeType);\n }\n }\n if (!payloadValue) {\n payloadValue = ApiSchemaGenerator.asExample(schema as AmfShapes.IShapeUnion, requestMimeType, {\n renderExamples: true,\n renderOptional: true,\n });\n }\n if (payloadValue && payloadValue.renderValue) {\n this.snippetsPayloadValue = payloadValue.renderValue as string;\n }\n }\n\n /**\n * Computes headers value for the code snippets.\n */\n protected computeSnippetsHeaders(): void {\n this.snippetsHeadersValue = undefined;\n if (this.asyncApi) {\n return;\n }\n const { operation, requestMimeType } = this;\n if (!operation) {\n return;\n }\n const { request, method } = operation;\n if (!request) {\n return;\n }\n const { headers = [] } = request;\n const parts = [];\n let hasMime = false;\n headers.forEach((param) => {\n const { paramName, name, schema } = param;\n if (!schema || !schema.types.includes(AmfNamespace.aml.vocabularies.shapes.ScalarShape)) {\n return;\n }\n const typedScalar = schema as AmfShapes.IApiScalarShape;\n let value = ApiSchemaValues.readInputValue(param, typedScalar, { fromExamples: true });\n if (Array.isArray(value)) {\n value = value.join(',');\n }\n if (typeof value !== 'undefined') {\n const headerName = paramName || name || '';\n if (headerName.toLowerCase() === 'content-type') {\n hasMime = true;\n }\n const header = `${paramName || name}: ${value}`;\n parts.push(header);\n }\n });\n if (!hasMime && requestMimeType && method !== 'get') {\n parts.push(`content-type: ${requestMimeType}`);\n }\n this.snippetsHeadersValue = parts.join('\\n');\n }\n\n /**\n * A handler for the status code tab selection.\n */\n protected handleStatusCode(e: CustomEvent<TabSelectionDetail>): void {\n const { item } = e.detail;\n const { status } = item.dataset;\n if (!status) {\n return;\n }\n this.selectedStatus = status;\n }\n\n /**\n * A handler for the status code tab selection.\n */\n protected handleSecuritySelection(e: CustomEvent<TabSelectionDetail>): void {\n const { item } = e.detail;\n const { id } = item.dataset;\n if (!id) {\n return;\n }\n this.securityId = id;\n }\n\n /**\n * A handler for the try it button click.\n * It dispatches the `tryit` custom event.\n */\n protected handleTryIt(): void {\n const { operation, asyncApi } = this;\n if (!operation || asyncApi) {\n return;\n }\n const { id } = operation;\n const detail = { id };\n const config = {\n bubbles: true,\n composed: true,\n detail,\n };\n this.dispatchEvent(new CustomEvent('tryit', config));\n }\n\n /**\n * A handler for the request panel mime type change.\n */\n protected handleRequestMimeChange(e: Event): void {\n const panel = e.target as ApiRequestDocumentElement;\n this.requestMimeType = panel.mimeType;\n this.computeSnippetsPayload();\n this.computeSnippetsHeaders();\n this.requestUpdate();\n }\n\n override render(): TemplateResult {\n const op = this.operationValue;\n if (!op) {\n return html``;\n }\n return html`\n ${this.renderTitle(op)}\n ${this.renderSummary(op)}\n ${this.renderUrl(op)}\n ${this.renderTraits(op)}\n ${this.renderDeprecated(op)}\n ${this.descriptionTemplate(op.description)}\n ${this.renderMetaData(op)}\n ${this.customDomainPropertiesTemplate(op.customDomainProperties)}\n ${this.renderRequestTemplate()}\n ${this.renderCallbacks(op)}\n ${this.renderSnippets(op)}\n ${this.renderResponse()}\n ${this.renderSecuritySection(op)}\n `;\n }\n\n /**\n * @returns The template for the Operation title.\n */\n protected renderTitle(operation: ApiDefinitions.IApiOperation): TemplateResult {\n const { name, method, deprecated } = operation;\n const label = name || method;\n const labelClasses = {\n label: true,\n 'text-selectable': true,\n deprecated,\n };\n const subTitle = this.asyncApi ? 'Async operation' : 'API operation';\n return html`\n <div class=\"operation-header\">\n <div class=\"operation-title\">\n <span class=\"${classMap(labelClasses)}\">${label}</span>\n ${this.renderTryIt()}\n </div>\n <p class=\"sub-header\">${subTitle}</p>\n </div>\n `;\n }\n\n /**\n * @returns The template for the Operation traits.\n */\n protected renderTraits(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { extends: traits } = operation;\n if (!traits || !traits.length) {\n return '';\n }\n const value = joinTraitNames(traits);\n return html`\n <section class=\"extensions\">\n <p>Mixes in <span class=\"trait-name text-selectable\">${value}</span>.</p>\n </section>`;\n }\n\n /**\n * @returns The template for the operation summary filed.\n */\n protected renderSummary(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { summary } = operation;\n if (!summary) {\n return '';\n }\n return html`\n <p class=\"summary text-selectable\">${summary}</p>\n `;\n }\n\n /**\n * @returns The template for the Operation meta information.\n */\n protected renderMetaData(operation: ApiDefinitions.IApiOperation): TemplateResult[] | string {\n const { operationId } = operation;\n const result = [];\n if (operationId) {\n result.push(tablePropertyTemplate('Operation ID', operationId, 'operation-id'));\n }\n if (result.length) {\n return result;\n }\n return '';\n }\n\n /**\n * @returns The template for the deprecated message.\n */\n protected renderDeprecated(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { deprecated } = operation;\n if (!deprecated) {\n return '';\n }\n return html`\n <div class=\"deprecated-message\">\n <ui-icon icon=\"warning\"></ui-icon>\n <span class=\"message text-selectable\">\n This operation is marked as deprecated.\n </span>\n </div>\n `;\n }\n\n /**\n * @returns The template for the operation's URL.\n */\n protected renderUrl(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n if (this.asyncApi) {\n return '';\n }\n const url = this.urlValue;\n const { method } = operation;\n return html`\n <div class=\"endpoint-url\">\n <div class=\"http-label\" data-method=\"${method}\">${method}</div>\n <div class=\"url-value text-selectable\">${url}</div>\n </div>\n `;\n }\n\n /**\n * @returns The template for the operation's request documentation element.\n */\n protected renderRequestTemplate(): TemplateResult | string {\n const { operation } = this;\n if (!operation) {\n return '';\n }\n const { server, endpoint } = this;\n return html`\n <api-request-document \n .domainId=\"${operation.request && operation.request.id}\" \n .request=\"${operation.request}\" \n .server=${server} \n .endpoint=${endpoint}\n @mimechange=\"${this.handleRequestMimeChange}\"\n ></api-request-document>\n `;\n }\n\n protected renderCallbacks(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { callbacks } = operation;\n if (!Array.isArray(callbacks) || !callbacks.length) {\n return '';\n }\n const content = callbacks.map(callback => this.renderCallback(callback));\n return this.paramsSectionTemplate('Callbacks', 'callbacksOpened', content);\n }\n\n /**\n * @returns The template for the operation's request documentation element.\n */\n protected renderCallback(callback: ApiDefinitions.IApiCallback): TemplateResult {\n const { name, endpoint } = callback;\n if (!endpoint) {\n return html``;\n }\n const { operations = [] } = endpoint;\n const [operation] = operations;\n if (!operation) {\n return html``;\n }\n return html`\n <div class=\"callback-section\">\n <div class=\"heading4 table-title\">${name}</div>\n <api-operation-document \n .domainId=\"${operation.id}\"\n .operation=\"${operation}\"\n .serverId=\"${this.serverId as string}\" \n .endpoint=\"${endpoint}\"\n data-domain-id=\"${operation.id}\"\n class=\"operation\"\n ></api-operation-document>\n </div>\n `;\n }\n\n protected renderResponse(): TemplateResult | string {\n const responses = this.responsesValue;\n if (!Array.isArray(responses) || !responses.length) {\n return '';\n }\n const content = html`\n ${this.renderResponseTabs(responses)}\n ${this.renderResponseContent(responses)}\n `;\n return this.paramsSectionTemplate('Responses', 'responsesOpened', content);\n }\n\n /**\n * @param responses The responses to render.\n * @returns The template for the responses selector.\n */\n protected renderResponseTabs(responses: ApiDefinitions.IApiResponse[]): TemplateResult | string {\n const { selectedStatus } = this;\n const filtered = responses.filter((item) => !!item.statusCode);\n if (!filtered.length) {\n return '';\n }\n return html`\n <div class=\"status-codes-selector\">\n <ui-tabs .selected=\"${selectedStatus}\" @select=\"${this.handleStatusCode}\" priority=\"secondary\" scrollable>\n ${filtered.map((item) => html`<ui-tab aria-controls=\"status${item.statusCode || 0}\" data-status=\"${item.statusCode || 0}\">${item.statusCode}</ui-tab>`)}\n </ui-tabs>\n </div>\n `;\n }\n\n /**\n * @param responses The responses to render.\n * @returns The template for the currently selected response.\n */\n protected renderResponseContent(responses: ApiDefinitions.IApiResponse[]): TemplateResult {\n const { selectedStatus } = this;\n const response = responses.find((item) => item.statusCode === selectedStatus);\n if (!response) {\n return html`<div class=\"empty-info\">Select a response to render the documentation.</div>`;\n }\n return html`\n <api-response-document \n .domainId=\"${response.id}\" \n .response=\"${response}\" \n class=\"method-response\"\n ></api-response-document>\n `;\n }\n\n /**\n * @returns The template for the security list section.\n */\n protected renderSecuritySection(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { showSecurity: renderSecurity, securityId } = this;\n if (!renderSecurity || !operation || !Array.isArray(operation.security) || !operation.security.length) {\n return '';\n }\n const { security } = operation;\n const content = [];\n if (security.length === 1) {\n content.push(this.renderSecurity(security[0]));\n } else if (securityId) {\n content.push(this.renderSecuritySelector(operation));\n const item = security.find(i => i.id === securityId);\n if (item) {\n content.push(this.renderSecurity(item));\n }\n }\n return this.paramsSectionTemplate('Security', 'securityOpened', content);\n }\n\n protected renderSecurity(security: ApiDefinitions.IApiSecurityRequirement): TemplateResult {\n return html`<api-security-requirement-document\n .domainId=\"${security.id}\" \n .securityRequirement=\"${security}\"\n id=\"security${security.id}\"\n\n ></api-security-requirement-document>`\n }\n\n\n protected renderSecuritySelector(operation: ApiDefinitions.IApiOperation): TemplateResult {\n const { securityId } = this;\n const { security } = operation;\n return html`\n <div class=\"security-selector\">\n <ui-tabs .selected=\"${securityId}\" @select=\"${this.handleSecuritySelection}\" scrollable selectedAttribute=\"data-id\">\n ${security.map((item) => this.renderSecurityTab(item))}\n </ui-tabs>\n </div>\n `;\n }\n\n\n protected renderSecurityTab(security: ApiDefinitions.IApiSecurityRequirement): TemplateResult {\n const { name, schemes = [], id } = security;\n let label = 'unknown';\n if (name) {\n label = name;\n } else if (schemes.length) {\n const parts = schemes.map(i => i.name).filter(i => !!i);\n if (parts.length) {\n label = parts.join('/');\n }\n }\n return html`<ui-tab data-id=\"${id}\" aria-controls=\"security${id}\" >${label}</ui-tab>`;\n }\n\n /**\n * @returns The template for the \"try it\" button.\n */\n protected renderTryIt(): TemplateResult | typeof nothing {\n if (!this.tryItButton) {\n return nothing;\n }\n return html`\n <ui-button class=\"action-button\"\n @click=\"${this.handleTryIt}\"\n type=\"filled\"\n >Try it</ui-button>\n `;\n }\n\n /**\n * @returns The template for the code snippets.\n */\n protected renderSnippets(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n if (!this.renderCodeSnippets || this.asyncApi) {\n return '';\n }\n const request: IHttpRequest = {\n url: this.snippetsUri || '',\n headers: this.snippetsHeadersValue,\n method: (operation.method || '').toUpperCase(),\n payload: this.snippetsPayloadValue,\n };\n const content = html`<http-snippets .request=\"${request}\"></http-snippets>`;\n return this.paramsSectionTemplate('Code snippets', 'snippetsOpened', content);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ApiOperationDocument.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiOperationDocument.element.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { AmfShapes, ApiDefinitions, ApiSchemaGenerator, ApiSchemaValues, AmfNamespace, IHttpRequest } from '@api-client/core/build/browser.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { QueryParameterProcessor } from '../../amf/lib/QueryParameterProcessor.js';\nimport { ApiDocumentationBase } from './ApiDocumentationBase.js';\nimport { Events } from '../../events/amf/Events.js';\nimport { joinTraitNames } from '../../amf/lib/Utils.js';\nimport * as UrlLib from '../../amf/lib/UrlUtils.js';\nimport { tablePropertyTemplate } from './SchemaCommonTemplates.js';\nimport ApiRequestDocumentElement from './ApiRequestDocument.element.js';\nimport { TabSelectionDetail } from '../../ui/tabs/UiTabs.js';\nimport '../../define/amf/api-request-document.js';\nimport '../../define/amf/api-response-document.js';\nimport '../../define/amf/api-security-requirement-document.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-tabs.js';\nimport '../../define/ui/ui-tab.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/http/http-snippets.js';\n\n/**\n * A web component that renders the documentation page for an API operation built from \n * the AMF graph model.\n * \n * @fires tryit\n */\nexport default class ApiOperationDocument extends ApiDocumentationBase {\n protected endpointValue?: ApiDefinitions.IApiEndPoint;\n\n protected operationValue?: ApiDefinitions.IApiOperation;\n\n protected serversValue?: ApiDefinitions.IApiServer[];\n\n protected responsesValue?: ApiDefinitions.IApiResponse[];\n\n protected serverIdValue?: string;\n\n protected baseUriValue?: string;\n\n protected urlValue?: string;\n\n protected versionValue?: string;\n\n protected protocolsValue?: string[];\n\n protected snippetsPayloadValue?: string;\n\n protected snippetsHeadersValue?: string;\n\n protected snippetsParametersValue?: string;\n\n /** \n * The id of the currently selected server to use to construct the URL.\n * If not set a first server in the API servers array is used.\n * @attribute\n */\n @property({ type: String, reflect: true })\n get serverId(): string | undefined {\n return this.serverIdValue;\n }\n\n set serverId(value: string | undefined) {\n const old = this.serverIdValue;\n if (old === value) {\n return;\n }\n this.serverIdValue = value;\n this.computeUrlValue();\n this.computeParametersValue();\n this.requestUpdate();\n }\n\n /**\n * The computed list of servers.\n */\n get servers(): ApiDefinitions.IApiServer[] | undefined {\n return this.serversValue;\n }\n\n /**\n * The current server in use.\n */\n get server(): ApiDefinitions.IApiServer | undefined {\n const servers = this.serversValue;\n const serverId = this.serverIdValue;\n let server;\n if (Array.isArray(servers) && servers.length) {\n if (serverId) {\n server = servers.find((item) => item.id === serverId);\n } else {\n [server] = servers;\n }\n }\n return server;\n }\n\n get operation(): ApiDefinitions.IApiOperation | undefined {\n return this.operationValue;\n }\n\n set operation(value) {\n const old = this.operationValue;\n if (old === value) {\n return;\n }\n this.operationValue = value;\n this.processGraph();\n }\n\n get endpoint(): ApiDefinitions.IApiEndPoint | undefined {\n return this.endpointValue;\n }\n\n set endpoint(value) {\n const old = this.endpointValue;\n if (old === value) {\n return;\n }\n this.endpointValue = value;\n this.computeUrlValue();\n this.computeParametersValue();\n this.requestUpdate();\n }\n\n /**\n * A property to set to override AMF's model base URI information.\n * When this property is set, the `endpointUri` property is recalculated.\n * @attribute\n */\n @property({ type: String })\n get baseUri(): string | undefined {\n return this.baseUriValue;\n }\n\n set baseUri(value) {\n const old = this.baseUriValue;\n if (old === value) {\n return;\n }\n this.baseUriValue = value;\n this.computeUrlValue();\n this.computeParametersValue();\n this.requestUpdate();\n }\n\n /**\n * The computed URI for the endpoint.\n */\n get endpointUri(): string | undefined {\n return this.urlValue;\n }\n\n get snippetsUri(): string {\n const base = this.urlValue || '';\n const query = this.snippetsParametersValue || '';\n return `${base}${query}`\n }\n\n /**\n * The computed list of responses for this operation.\n */\n get responses(): ApiDefinitions.IApiResponse[] | undefined {\n return this.responsesValue;\n }\n\n /**\n * The API's protocols.\n */\n get protocols(): string[] | undefined {\n return this.protocolsValue;\n }\n\n\n get version(): string | undefined {\n return this.versionValue;\n }\n\n /** \n * The domain id of the currently selected security to render.\n * This is only used when a multiple security schemes are applied to the operation.\n * @attribute\n */\n @property({ type: String, reflect: true }) securityId?: string;\n\n /** \n * When set it opens the response section\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) responsesOpened?: boolean;\n\n /** \n * When set it opens the security section\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) securityOpened?: boolean;\n\n /** \n * When set it opens the code snippets section\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) snippetsOpened?: boolean;\n\n /** \n * The selected status code in the responses section.\n * @attribute\n */\n @property({ type: String }) selectedStatus?: string;\n\n /** \n * Whether the callbacks section is opened.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) callbacksOpened?: boolean;\n\n /** \n * When set it renders the \"try it\" button that dispatches the `tryit` event.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) tryItButton?: boolean;\n\n /** \n * When set it renders the view optimised for asynchronous API operation.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) asyncApi?: boolean;\n\n /**\n * When set it renders code examples section is the documentation\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) renderCodeSnippets?: boolean;\n\n /**\n * When set it renders security documentation when applicable\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) showSecurity?: boolean;\n\n /** \n * The currently rendered request panel mime type.\n * @attribute\n */\n @property({ type: String }) requestMimeType?: string;\n\n /** \n * Optional. The parent endpoint id. When set it uses this value to query for the endpoint\n * instead of querying for a parent through the operation id.\n * Also, when `endpoint` is set and the `endpointId` match then it ignores querying for \n * the endpoint.\n * @attribute\n */\n @property({ type: String }) endpointId?: string;\n\n override async processGraph(): Promise<void> {\n await this.queryEndpoint();\n await this.queryOperation();\n await this.queryServers();\n await this.queryProtocols();\n await this.queryResponses();\n this.preselectResponse();\n this.preselectSecurity();\n this.computeUrlValue();\n this.computeParametersValue();\n this.computeSnippetsPayload();\n this.computeSnippetsHeaders();\n this.requestUpdate();\n await this.updateComplete;\n this.dispatchEvent(new Event('graphload'));\n }\n\n /**\n * Queries the store for the operation data, when needed.\n */\n async queryOperation(): Promise<void> {\n const { domainId } = this;\n if (!domainId) {\n // this.operationValue = undefined;\n return;\n }\n if (this.operationValue && this.operationValue.id === domainId) {\n // in case the operation model was provided via the property setter.\n return;\n }\n try {\n const endpointId = this.endpointValue && this.endpointValue.id;\n const info = await Events.Operation.get(this, domainId, endpointId);\n this.operationValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API operation data: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries the store for the endpoint data.\n */\n async queryEndpoint(): Promise<void> {\n const { domainId, endpointId } = this;\n if (!domainId) {\n // this.endpointValue = undefined;\n return;\n }\n if (this.endpointValue && this.endpointValue.id === endpointId) {\n // in case the endpoint model was provided via the property setter.\n return;\n }\n this.endpointValue = undefined;\n try {\n const info = await (endpointId ? Events.Endpoint.get(this, endpointId) : Events.Operation.getParent(this, domainId));\n this.endpointValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API endpoint data: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries for the current servers value.\n */\n async queryServers(): Promise<void> {\n const { domainId } = this;\n const endpointId = this.endpointValue && this.endpointValue.id;\n try {\n const info = await Events.Server.query(this, {\n endpointId,\n methodId: domainId,\n });\n this.serversValue = info;\n } catch (e) {\n const ex = e as Error;\n this.serversValue = undefined;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API servers: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries the API store for the API protocols list.\n */\n async queryProtocols(): Promise<void> {\n this.protocolsValue = undefined;\n try {\n const info = await Events.Api.protocols(this);\n this.protocolsValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API protocols list: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries the API store for the API version value.\n */\n async queryVersion(): Promise<void> {\n this.versionValue = undefined;\n try {\n const info = await Events.Api.version(this);\n this.versionValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API version value: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries for the responses data of the current operation.\n */\n async queryResponses(): Promise<void> {\n this.responsesValue = undefined;\n const { operation } = this;\n if (!operation) {\n return;\n }\n const { responses = [] } = operation;\n if (!responses.length) {\n return;\n }\n this.responsesValue = responses;\n }\n\n /**\n * Updates the `selectedStatus` if not selected or the current selection doesn't \n * exists in the current list of responses.\n */\n protected preselectResponse(): void {\n const responses = this.responsesValue;\n if (!Array.isArray(responses) || !responses.length) {\n return;\n }\n responses.sort((a, b) => {\n if (a.statusCode === b.statusCode) {\n return 0;\n }\n return Number(a.statusCode) > Number(b.statusCode) ? 1 : -1;\n });\n const { selectedStatus } = this;\n if (!selectedStatus) {\n this.selectedStatus = responses[0].statusCode;\n return;\n }\n const selected = responses.find((item) => item.statusCode === selectedStatus);\n if (selected) {\n return;\n }\n this.selectedStatus = responses[0].statusCode;\n }\n\n /**\n * Updates the `securityId` if not selected or the current selection doesn't \n * exists in the current list of security.\n */\n protected preselectSecurity(): void {\n const { operation, showSecurity: renderSecurity, securityId } = this;\n if (!renderSecurity || !operation || !Array.isArray(operation.security) || !operation.security.length) {\n return;\n }\n if (!securityId) {\n this.securityId = operation.security[0].id;\n return;\n }\n const selected = operation.security.find((item) => item.id === securityId);\n if (selected) {\n return;\n }\n this.securityId = operation.security[0].id;\n }\n\n /**\n * Computes the URL value for the current serves, selected server, and endpoint's path.\n */\n protected computeUrlValue(): void {\n if (this.asyncApi) {\n return;\n }\n const { protocols, version, server, baseUri } = this;\n const endpoint = this.endpointValue;\n const url = UrlLib.computeEndpointUri({ baseUri, server, endpoint, protocols, version, });\n this.urlValue = url;\n }\n\n /**\n * Computes query parameters for the code snippets.\n */\n protected computeParametersValue(): void {\n this.snippetsParametersValue = undefined;\n const { operation } = this;\n if (!operation) {\n return;\n }\n const { request } = operation;\n if (!request) {\n return;\n }\n const { queryParameters, queryString } = request;\n let params: ApiDefinitions.IApiParameter[] | undefined;\n if (Array.isArray(queryParameters) && queryParameters.length) {\n params = queryParameters;\n } else if (queryString) {\n const factory = new QueryParameterProcessor();\n const items = factory.collectOperationParameters(request.queryString as AmfShapes.IShapeUnion, 'query');\n if (Array.isArray(items) && items.length) {\n params = items.map(i => i.parameter);\n }\n }\n if (!params || !params.length) {\n return;\n }\n const qp: Record<string, string> = {}\n params.forEach((param) => {\n const { required, schema, paramName, name } = param;\n if (!required) {\n return;\n }\n const parameterName = paramName || name;\n if (!parameterName) {\n return;\n }\n const anySchema = schema as AmfShapes.IApiAnyShape;\n const { defaultValueStr, examples = [] } = anySchema;\n if (defaultValueStr) {\n qp[parameterName] = defaultValueStr;\n } else if (examples.length) {\n const exp = examples.find(e => e.value);\n if (exp && exp.value) {\n qp[parameterName] = exp.value;\n }\n } else {\n const value = ApiSchemaValues.generateDefaultValue(schema as AmfShapes.IApiScalarShape);\n if (value || value === false || value === 0 || value === null) {\n qp[parameterName] = value;\n }\n // if (typeof value === 'undefined') {\n // qp[parameterName] = '';\n // } else {\n // qp[parameterName] = value;\n // }\n }\n });\n const value = UrlLib.applyUrlParameters('', qp, true);\n this.snippetsParametersValue = value;\n }\n\n /**\n * Computes payload value for the code snippets.\n */\n protected computeSnippetsPayload(): void {\n this.snippetsPayloadValue = undefined\n if (this.asyncApi) {\n return;\n }\n const { operation, requestMimeType } = this;\n if (!operation || !requestMimeType) {\n return;\n }\n const { request } = operation;\n if (!request) {\n return;\n }\n const { payloads = [] } = request;\n if (!payloads.length) {\n return;\n }\n const payload = payloads.find(p => p.mediaType === requestMimeType);\n if (!payload) {\n return;\n }\n const { examples = [], schema } = payload;\n let examplesCopy = [...examples];\n const anySchema = schema as AmfShapes.IApiAnyShape;\n if (Array.isArray(anySchema.examples) && anySchema.examples.length) {\n examplesCopy = examplesCopy.concat(anySchema.examples);\n }\n examplesCopy = examplesCopy.filter((i) => !!i.value || !!i.structuredValue);\n let payloadValue;\n if (examplesCopy.length) {\n const example = examplesCopy.find(e => !!e.value);\n if (example) {\n payloadValue = this.evaluateExample(example, requestMimeType);\n }\n }\n if (!payloadValue) {\n payloadValue = ApiSchemaGenerator.asExample(schema as AmfShapes.IShapeUnion, requestMimeType, {\n renderExamples: true,\n renderOptional: true,\n });\n }\n if (payloadValue && payloadValue.renderValue) {\n this.snippetsPayloadValue = payloadValue.renderValue as string;\n }\n }\n\n /**\n * Computes headers value for the code snippets.\n */\n protected computeSnippetsHeaders(): void {\n this.snippetsHeadersValue = undefined;\n if (this.asyncApi) {\n return;\n }\n const { operation, requestMimeType } = this;\n if (!operation) {\n return;\n }\n const { request, method } = operation;\n if (!request) {\n return;\n }\n const { headers = [] } = request;\n const parts = [];\n let hasMime = false;\n headers.forEach((param) => {\n const { paramName, name, schema } = param;\n if (!schema || !schema.types.includes(AmfNamespace.aml.vocabularies.shapes.ScalarShape)) {\n return;\n }\n const typedScalar = schema as AmfShapes.IApiScalarShape;\n let value = ApiSchemaValues.readInputValue(param, typedScalar, { fromExamples: true });\n if (Array.isArray(value)) {\n value = value.join(',');\n }\n if (typeof value !== 'undefined') {\n const headerName = paramName || name || '';\n if (headerName.toLowerCase() === 'content-type') {\n hasMime = true;\n }\n const header = `${paramName || name}: ${value}`;\n parts.push(header);\n }\n });\n if (!hasMime && requestMimeType && method !== 'get') {\n parts.push(`content-type: ${requestMimeType}`);\n }\n this.snippetsHeadersValue = parts.join('\\n');\n }\n\n /**\n * A handler for the status code tab selection.\n */\n protected handleStatusCode(e: CustomEvent<TabSelectionDetail>): void {\n const { item } = e.detail;\n const { status } = item.dataset;\n if (!status) {\n return;\n }\n this.selectedStatus = status;\n }\n\n /**\n * A handler for the status code tab selection.\n */\n protected handleSecuritySelection(e: CustomEvent<TabSelectionDetail>): void {\n const { item } = e.detail;\n const { id } = item.dataset;\n if (!id) {\n return;\n }\n this.securityId = id;\n }\n\n /**\n * A handler for the try it button click.\n * It dispatches the `tryit` custom event.\n */\n protected handleTryIt(): void {\n const { operation, asyncApi } = this;\n if (!operation || asyncApi) {\n return;\n }\n const { id } = operation;\n const detail = { id };\n const config = {\n bubbles: true,\n composed: true,\n detail,\n };\n this.dispatchEvent(new CustomEvent('tryit', config));\n }\n\n /**\n * A handler for the request panel mime type change.\n */\n protected handleRequestMimeChange(e: Event): void {\n const panel = e.target as ApiRequestDocumentElement;\n this.requestMimeType = panel.mimeType;\n this.computeSnippetsPayload();\n this.computeSnippetsHeaders();\n this.requestUpdate();\n }\n\n override render(): TemplateResult {\n const op = this.operationValue;\n if (!op) {\n return html``;\n }\n return html`\n ${this.renderTitle(op)}\n ${this.renderSummary(op)}\n ${this.renderUrl(op)}\n ${this.renderTraits(op)}\n ${this.renderDeprecated(op)}\n ${this.descriptionTemplate(op.description)}\n ${this.renderMetaData(op)}\n ${this.customDomainPropertiesTemplate(op.customDomainProperties)}\n ${this.renderRequestTemplate()}\n ${this.renderCallbacks(op)}\n ${this.renderSnippets(op)}\n ${this.renderResponse()}\n ${this.renderSecuritySection(op)}\n `;\n }\n\n /**\n * @returns The template for the Operation title.\n */\n protected renderTitle(operation: ApiDefinitions.IApiOperation): TemplateResult {\n const { name, method, deprecated } = operation;\n const label = name || method;\n const labelClasses = {\n label: true,\n 'text-selectable': true,\n deprecated,\n };\n const subTitle = this.asyncApi ? 'Async operation' : 'API operation';\n return html`\n <div class=\"operation-header\">\n <div class=\"operation-title\">\n <span class=\"${classMap(labelClasses)}\">${label}</span>\n ${this.renderTryIt()}\n </div>\n <p class=\"sub-header\">${subTitle}</p>\n </div>\n `;\n }\n\n /**\n * @returns The template for the Operation traits.\n */\n protected renderTraits(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { extends: traits } = operation;\n if (!traits || !traits.length) {\n return '';\n }\n const value = joinTraitNames(traits);\n return html`\n <section class=\"extensions\">\n <p>Mixes in <span class=\"trait-name text-selectable\">${value}</span>.</p>\n </section>`;\n }\n\n /**\n * @returns The template for the operation summary filed.\n */\n protected renderSummary(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { summary } = operation;\n if (!summary) {\n return '';\n }\n return html`\n <p class=\"summary text-selectable\">${summary}</p>\n `;\n }\n\n /**\n * @returns The template for the Operation meta information.\n */\n protected renderMetaData(operation: ApiDefinitions.IApiOperation): TemplateResult[] | string {\n const { operationId } = operation;\n const result = [];\n if (operationId) {\n result.push(tablePropertyTemplate('Operation ID', operationId, 'operation-id'));\n }\n if (result.length) {\n return result;\n }\n return '';\n }\n\n /**\n * @returns The template for the deprecated message.\n */\n protected renderDeprecated(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { deprecated } = operation;\n if (!deprecated) {\n return '';\n }\n return html`\n <div class=\"deprecated-message\">\n <ui-icon icon=\"warning\"></ui-icon>\n <span class=\"message text-selectable\">\n This operation is marked as deprecated.\n </span>\n </div>\n `;\n }\n\n /**\n * @returns The template for the operation's URL.\n */\n protected renderUrl(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n if (this.asyncApi) {\n return '';\n }\n const url = this.urlValue;\n const { method } = operation;\n return html`\n <div class=\"endpoint-url\">\n <div class=\"http-label\" data-method=\"${method}\">${method}</div>\n <div class=\"url-value text-selectable\">${url}</div>\n </div>\n `;\n }\n\n /**\n * @returns The template for the operation's request documentation element.\n */\n protected renderRequestTemplate(): TemplateResult | string {\n const { operation } = this;\n if (!operation) {\n return '';\n }\n const { server, endpoint } = this;\n return html`\n <api-request-document \n .domainId=\"${operation.request && operation.request.id}\" \n .request=\"${operation.request}\" \n .server=${server} \n .endpoint=${endpoint}\n @mimechange=\"${this.handleRequestMimeChange}\"\n ></api-request-document>\n `;\n }\n\n protected renderCallbacks(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { callbacks } = operation;\n if (!Array.isArray(callbacks) || !callbacks.length) {\n return '';\n }\n const content = callbacks.map(callback => this.renderCallback(callback));\n return this.paramsSectionTemplate('Callbacks', 'callbacksOpened', content);\n }\n\n /**\n * @returns The template for the operation's request documentation element.\n */\n protected renderCallback(callback: ApiDefinitions.IApiCallback): TemplateResult {\n const { name, endpoint } = callback;\n if (!endpoint) {\n return html``;\n }\n const { operations = [] } = endpoint;\n const [operation] = operations;\n if (!operation) {\n return html``;\n }\n return html`\n <div class=\"callback-section\">\n <div class=\"heading4 table-title\">${name}</div>\n <api-operation-document \n .domainId=\"${operation.id}\"\n .operation=\"${operation}\"\n .serverId=\"${this.serverId as string}\" \n .endpoint=\"${endpoint}\"\n data-domain-id=\"${operation.id}\"\n class=\"operation\"\n ></api-operation-document>\n </div>\n `;\n }\n\n protected renderResponse(): TemplateResult | string {\n const responses = this.responsesValue;\n if (!Array.isArray(responses) || !responses.length) {\n return '';\n }\n const content = html`\n ${this.renderResponseTabs(responses)}\n ${this.renderResponseContent(responses)}\n `;\n return this.paramsSectionTemplate('Responses', 'responsesOpened', content);\n }\n\n /**\n * @param responses The responses to render.\n * @returns The template for the responses selector.\n */\n protected renderResponseTabs(responses: ApiDefinitions.IApiResponse[]): TemplateResult | string {\n const { selectedStatus } = this;\n const filtered = responses.filter((item) => !!item.statusCode);\n if (!filtered.length) {\n return '';\n }\n return html`\n <div class=\"status-codes-selector\">\n <ui-tabs .selected=\"${selectedStatus}\" @select=\"${this.handleStatusCode}\" priority=\"secondary\" scrollable>\n ${filtered.map((item) => html`<ui-tab aria-controls=\"status${item.statusCode || 0}\" data-status=\"${item.statusCode || 0}\">${item.statusCode}</ui-tab>`)}\n </ui-tabs>\n </div>\n `;\n }\n\n /**\n * @param responses The responses to render.\n * @returns The template for the currently selected response.\n */\n protected renderResponseContent(responses: ApiDefinitions.IApiResponse[]): TemplateResult {\n const { selectedStatus } = this;\n const response = responses.find((item) => item.statusCode === selectedStatus);\n if (!response) {\n return html`<div class=\"empty-info\" id=\"status${selectedStatus}\">Select a response to render the documentation.</div>`;\n }\n return html`\n <api-response-document \n id=\"status${selectedStatus}\"\n .domainId=\"${response.id}\" \n .response=\"${response}\" \n class=\"method-response\"\n ></api-response-document>\n `;\n }\n\n /**\n * @returns The template for the security list section.\n */\n protected renderSecuritySection(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { showSecurity: renderSecurity, securityId } = this;\n if (!renderSecurity || !operation || !Array.isArray(operation.security) || !operation.security.length) {\n return '';\n }\n const { security } = operation;\n const content = [];\n if (security.length === 1) {\n content.push(this.renderSecurity(security[0]));\n } else if (securityId) {\n content.push(this.renderSecuritySelector(operation));\n const item = security.find(i => i.id === securityId);\n if (item) {\n content.push(this.renderSecurity(item));\n }\n }\n return this.paramsSectionTemplate('Security', 'securityOpened', content);\n }\n\n protected renderSecurity(security: ApiDefinitions.IApiSecurityRequirement): TemplateResult {\n return html`<api-security-requirement-document\n .domainId=\"${security.id}\" \n .securityRequirement=\"${security}\"\n id=\"security${security.id}\"\n\n ></api-security-requirement-document>`\n }\n\n\n protected renderSecuritySelector(operation: ApiDefinitions.IApiOperation): TemplateResult {\n const { securityId } = this;\n const { security } = operation;\n return html`\n <div class=\"security-selector\">\n <ui-tabs .selected=\"${securityId}\" @select=\"${this.handleSecuritySelection}\" scrollable selectedAttribute=\"data-id\">\n ${security.map((item) => this.renderSecurityTab(item))}\n </ui-tabs>\n </div>\n `;\n }\n\n\n protected renderSecurityTab(security: ApiDefinitions.IApiSecurityRequirement): TemplateResult {\n const { name, schemes = [], id } = security;\n let label = 'unknown';\n if (name) {\n label = name;\n } else if (schemes.length) {\n const parts = schemes.map(i => i.name).filter(i => !!i);\n if (parts.length) {\n label = parts.join('/');\n }\n }\n return html`<ui-tab data-id=\"${id}\" aria-controls=\"security${id}\" >${label}</ui-tab>`;\n }\n\n /**\n * @returns The template for the \"try it\" button.\n */\n protected renderTryIt(): TemplateResult | typeof nothing {\n if (!this.tryItButton) {\n return nothing;\n }\n return html`\n <ui-button class=\"action-button\"\n @click=\"${this.handleTryIt}\"\n type=\"filled\"\n >Try it</ui-button>\n `;\n }\n\n /**\n * @returns The template for the code snippets.\n */\n protected renderSnippets(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n if (!this.renderCodeSnippets || this.asyncApi) {\n return '';\n }\n const request: IHttpRequest = {\n url: this.snippetsUri || '',\n headers: this.snippetsHeadersValue,\n method: (operation.method || '').toUpperCase(),\n payload: this.snippetsPayloadValue,\n };\n const content = html`<http-snippets .request=\"${request}\"></http-snippets>`;\n return this.paramsSectionTemplate('Code snippets', 'snippetsOpened', content);\n }\n}\n"]}
|