@api-client/ui 0.0.11 → 0.0.13
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/.eslintrc +8 -0
- package/demo/elements/authorization/cc.ts +56 -27
- package/demo/elements/index.html +3 -0
- package/demo/elements/store/file-picker.html +15 -0
- package/demo/elements/store/file-picker.ts +134 -0
- package/demo/elements/store/index.html +19 -0
- package/demo/store/StorePlugin.js +1 -0
- package/dist/bindings/base/FileBindings.d.ts +4 -0
- package/dist/bindings/base/FileBindings.d.ts.map +1 -1
- package/dist/bindings/base/FileBindings.js +21 -1
- package/dist/bindings/base/FileBindings.js.map +1 -1
- package/dist/bindings/base/StoreBindings.d.ts +6 -17
- package/dist/bindings/base/StoreBindings.d.ts.map +1 -1
- package/dist/bindings/base/StoreBindings.js +15 -60
- package/dist/bindings/base/StoreBindings.js.map +1 -1
- package/dist/bindings/web/WebFileBindings.js +1 -1
- package/dist/bindings/web/WebFileBindings.js.map +1 -1
- package/dist/define/http/certificate-add.d.ts +9 -0
- package/dist/define/http/certificate-add.d.ts.map +1 -0
- package/dist/define/http/certificate-add.js +10 -0
- package/dist/define/http/certificate-add.js.map +1 -0
- package/dist/define/store/file-picker.d.ts +9 -0
- package/dist/define/store/file-picker.d.ts.map +1 -0
- package/dist/define/store/file-picker.js +10 -0
- package/dist/define/store/file-picker.js.map +1 -0
- package/dist/define/{files → store}/share-file.d.ts +1 -1
- package/dist/define/store/share-file.d.ts.map +1 -0
- package/dist/define/{files → store}/share-file.js +2 -2
- package/dist/define/store/share-file.js.map +1 -0
- package/dist/define/ui/ui-segmented-button-set.d.ts +1 -1
- package/dist/define/ui/ui-segmented-button-set.d.ts.map +1 -1
- package/dist/define/ui/ui-segmented-button-set.js.map +1 -1
- package/dist/elements/authorization/ui/CC.styles.d.ts.map +1 -1
- package/dist/elements/authorization/ui/CC.styles.js +4 -9
- package/dist/elements/authorization/ui/CC.styles.js.map +1 -1
- package/dist/elements/authorization/ui/CcAuthorization.d.ts +14 -29
- package/dist/elements/authorization/ui/CcAuthorization.d.ts.map +1 -1
- package/dist/elements/authorization/ui/CcAuthorization.js +67 -158
- package/dist/elements/authorization/ui/CcAuthorization.js.map +1 -1
- package/dist/elements/http/CertificateAdd.element.d.ts +91 -0
- package/dist/elements/http/CertificateAdd.element.d.ts.map +1 -0
- package/dist/elements/http/CertificateAdd.element.js +389 -0
- package/dist/elements/http/CertificateAdd.element.js.map +1 -0
- package/dist/elements/http/CertificateAdd.styles.d.ts +3 -0
- package/dist/elements/http/CertificateAdd.styles.d.ts.map +1 -0
- package/dist/elements/http/CertificateAdd.styles.js +61 -0
- package/dist/elements/http/CertificateAdd.styles.js.map +1 -0
- package/dist/elements/project/ProjectRunReport.d.ts +2 -1
- package/dist/elements/project/ProjectRunReport.d.ts.map +1 -1
- package/dist/elements/project/ProjectRunReport.js.map +1 -1
- package/dist/elements/store/FilePicker.element.d.ts +87 -0
- package/dist/elements/store/FilePicker.element.d.ts.map +1 -0
- package/dist/elements/store/FilePicker.element.js +263 -0
- package/dist/elements/store/FilePicker.element.js.map +1 -0
- package/dist/elements/store/FilePicker.styles.d.ts +3 -0
- package/dist/elements/store/FilePicker.styles.d.ts.map +1 -0
- package/dist/elements/store/FilePicker.styles.js +73 -0
- package/dist/elements/store/FilePicker.styles.js.map +1 -0
- package/dist/elements/store/FilesLib.d.ts +10 -0
- package/dist/elements/store/FilesLib.d.ts.map +1 -0
- package/dist/elements/store/FilesLib.js +38 -0
- package/dist/elements/store/FilesLib.js.map +1 -0
- package/dist/elements/{files/ShareFile.d.ts → store/ShareFile.element.d.ts} +1 -1
- package/dist/elements/store/ShareFile.element.d.ts.map +1 -0
- package/dist/elements/{files/ShareFile.js → store/ShareFile.element.js} +1 -1
- package/dist/elements/store/ShareFile.element.js.map +1 -0
- package/dist/elements/store/ShareFile.styles.d.ts.map +1 -0
- package/dist/elements/{files → store}/ShareFile.styles.js.map +1 -1
- package/dist/events/EventTypes.d.ts +7 -7
- package/dist/events/EventTypes.d.ts.map +1 -1
- package/dist/events/EventTypes.js +8 -7
- package/dist/events/EventTypes.js.map +1 -1
- package/dist/events/Events.d.ts +7 -1
- package/dist/events/Events.d.ts.map +1 -1
- package/dist/events/Events.js +2 -0
- package/dist/events/Events.js.map +1 -1
- package/dist/events/FilesystemEvents.d.ts +8 -0
- package/dist/events/FilesystemEvents.d.ts.map +1 -0
- package/dist/events/FilesystemEvents.js +59 -0
- package/dist/events/FilesystemEvents.js.map +1 -0
- package/dist/events/HttpClientEvents.d.ts +0 -2
- package/dist/events/HttpClientEvents.d.ts.map +1 -1
- package/dist/events/HttpClientEvents.js +0 -2
- package/dist/events/HttpClientEvents.js.map +1 -1
- package/dist/events/StoreEvents.d.ts +8 -1
- package/dist/events/StoreEvents.d.ts.map +1 -1
- package/dist/events/StoreEvents.js +19 -0
- package/dist/events/StoreEvents.js.map +1 -1
- package/dist/http-client/idb/Arc18DataUpgrade.d.ts +0 -8
- package/dist/http-client/idb/Arc18DataUpgrade.d.ts.map +1 -1
- package/dist/http-client/idb/Arc18DataUpgrade.js +11 -206
- package/dist/http-client/idb/Arc18DataUpgrade.js.map +1 -1
- package/dist/http-client/store/StoreBroadcast.d.ts +0 -5
- package/dist/http-client/store/StoreBroadcast.d.ts.map +1 -1
- package/dist/http-client/store/StoreBroadcast.js +0 -7
- package/dist/http-client/store/StoreBroadcast.js.map +1 -1
- package/dist/lib/files/FileUtils.d.ts +9 -0
- package/dist/lib/files/FileUtils.d.ts.map +1 -0
- package/dist/lib/files/FileUtils.js +13 -0
- package/dist/lib/files/FileUtils.js.map +1 -0
- package/dist/mixins/RouteMixin.d.ts +4 -0
- package/dist/mixins/RouteMixin.d.ts.map +1 -1
- package/dist/mixins/RouteMixin.js +1 -0
- package/dist/mixins/RouteMixin.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 +4 -2
- package/dist/pages/ApplicationScreen.js.map +1 -1
- package/dist/pages/api-client/ApiClient.screen.d.ts +4 -6
- package/dist/pages/api-client/ApiClient.screen.d.ts.map +1 -1
- package/dist/pages/api-client/ApiClient.screen.js +39 -31
- package/dist/pages/api-client/ApiClient.screen.js.map +1 -1
- package/dist/pages/api-client/ApiClient.styles.d.ts.map +1 -1
- package/dist/pages/api-client/ApiClient.styles.js +0 -12
- package/dist/pages/api-client/ApiClient.styles.js.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.d.ts +1 -1
- package/dist/pages/api-client/Authenticate.screen.d.ts.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.js +2 -2
- package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
- package/dist/pages/api-client/pages/Files.page.d.ts +6 -35
- package/dist/pages/api-client/pages/Files.page.d.ts.map +1 -1
- package/dist/pages/api-client/pages/Files.page.js +45 -141
- package/dist/pages/api-client/pages/Files.page.js.map +1 -1
- package/dist/pages/api-client/pages/Shared.page.d.ts +1 -5
- package/dist/pages/api-client/pages/Shared.page.d.ts.map +1 -1
- package/dist/pages/api-client/pages/Shared.page.js +1 -40
- package/dist/pages/api-client/pages/Shared.page.js.map +1 -1
- package/dist/pages/demo/DemoPage.d.ts +7 -0
- package/dist/pages/demo/DemoPage.d.ts.map +1 -1
- package/dist/pages/demo/DemoPage.js +14 -0
- package/dist/pages/demo/DemoPage.js.map +1 -1
- package/dist/store/FileSystem.d.ts +90 -0
- package/dist/store/FileSystem.d.ts.map +1 -0
- package/dist/store/FileSystem.js +260 -0
- package/dist/store/FileSystem.js.map +1 -0
- package/dist/styles/global-styles.d.ts.map +1 -1
- package/dist/styles/global-styles.js +7 -0
- package/dist/styles/global-styles.js.map +1 -1
- package/dist/ui/button/SegmentedButtonsSet.d.ts +14 -0
- package/dist/ui/button/SegmentedButtonsSet.d.ts.map +1 -1
- package/dist/ui/button/SegmentedButtonsSet.js.map +1 -1
- package/dist/ui/icons/Icons.d.ts +2 -1
- package/dist/ui/icons/Icons.d.ts.map +1 -1
- package/dist/ui/icons/Icons.js +1 -0
- package/dist/ui/icons/Icons.js.map +1 -1
- package/dist/ui/list/UiDropdownList.d.ts +9 -1
- package/dist/ui/list/UiDropdownList.d.ts.map +1 -1
- package/dist/ui/list/UiDropdownList.js +39 -17
- package/dist/ui/list/UiDropdownList.js.map +1 -1
- package/dist/ui/list/UiList.d.ts +6 -1
- package/dist/ui/list/UiList.d.ts.map +1 -1
- package/dist/ui/list/UiList.js +24 -9
- package/dist/ui/list/UiList.js.map +1 -1
- package/dist/ui/notification/SnackNotifications.d.ts +1 -0
- package/dist/ui/notification/SnackNotifications.d.ts.map +1 -1
- package/dist/ui/notification/SnackNotifications.js +7 -0
- package/dist/ui/notification/SnackNotifications.js.map +1 -1
- package/dist/ui/table/DataTable.d.ts +4 -0
- package/dist/ui/table/DataTable.d.ts.map +1 -1
- package/dist/ui/table/DataTable.js +23 -1
- package/dist/ui/table/DataTable.js.map +1 -1
- package/package.json +1 -1
- package/src/bindings/base/FileBindings.ts +25 -1
- package/src/bindings/base/StoreBindings.ts +16 -73
- package/src/bindings/web/WebFileBindings.ts +1 -1
- package/src/define/http/certificate-add.ts +12 -0
- package/src/define/store/file-picker.ts +12 -0
- package/src/define/{files → store}/share-file.ts +2 -2
- package/src/define/ui/ui-segmented-button-set.ts +1 -1
- package/src/elements/authorization/ui/CC.styles.ts +4 -9
- package/src/elements/authorization/ui/CcAuthorization.ts +67 -167
- package/src/elements/http/CertificateAdd.element.ts +443 -0
- package/src/elements/http/CertificateAdd.styles.ts +61 -0
- package/src/elements/project/ProjectRunReport.ts +2 -1
- package/src/elements/store/FilePicker.element.ts +297 -0
- package/src/elements/store/FilePicker.styles.ts +73 -0
- package/src/elements/store/FilesLib.ts +32 -0
- package/src/events/EventTypes.ts +8 -7
- package/src/events/Events.ts +2 -0
- package/src/events/FilesystemEvents.ts +63 -0
- package/src/events/HttpClientEvents.ts +0 -2
- package/src/events/StoreEvents.ts +21 -1
- package/src/http-client/idb/Arc18DataUpgrade.ts +84 -84
- package/src/http-client/store/StoreBroadcast.ts +0 -8
- package/src/lib/files/FileUtils.ts +12 -0
- package/src/mixins/RouteMixin.ts +8 -1
- package/src/pages/ApplicationScreen.ts +5 -3
- package/src/pages/api-client/ApiClient.screen.ts +42 -33
- package/src/pages/api-client/ApiClient.styles.ts +0 -12
- package/src/pages/api-client/Authenticate.screen.ts +2 -2
- package/src/pages/api-client/pages/Files.page.ts +48 -164
- package/src/pages/api-client/pages/Shared.page.ts +2 -40
- package/src/pages/demo/DemoPage.ts +17 -0
- package/src/store/FileSystem.ts +325 -0
- package/src/styles/global-styles.ts +7 -0
- package/src/ui/button/SegmentedButtonsSet.ts +16 -1
- package/src/ui/icons/Icons.ts +2 -1
- package/src/ui/list/UiDropdownList.ts +44 -17
- package/src/ui/list/UiList.ts +26 -10
- package/src/ui/notification/SnackNotifications.ts +8 -0
- package/src/ui/table/DataTable.ts +29 -3
- package/test/elements/http/BodyFormdataEditorElement.test.ts +458 -454
- package/test/elements/http/BodyMultipartEditorElement.test.ts +609 -605
- package/test/elements/http/BodyRawEditorElement.test.ts +60 -56
- package/test/elements/http/CertificateAdd.test.ts +430 -0
- package/test/elements/store/FilePicker.test.ts +241 -0
- package/test/env.js +3 -0
- package/test/events/EventTypes.test.ts +0 -22
- package/test/helpers/StoreHelper.ts +390 -0
- package/test/helpers/UiMock.ts +19 -2
- package/tsconfig.eslint.json +3 -1
- package/web-test-runner.config.mjs +50 -3
- package/dist/define/files/share-file.d.ts.map +0 -1
- package/dist/define/files/share-file.js.map +0 -1
- package/dist/elements/files/ShareFile.d.ts.map +0 -1
- package/dist/elements/files/ShareFile.js.map +0 -1
- package/dist/elements/files/ShareFile.styles.d.ts.map +0 -1
- package/dist/events/http-client/models/CertificatesEvents.d.ts +0 -12
- package/dist/events/http-client/models/CertificatesEvents.d.ts.map +0 -1
- package/dist/events/http-client/models/CertificatesEvents.js +0 -18
- package/dist/events/http-client/models/CertificatesEvents.js.map +0 -1
- package/dist/http-client/idb/AuthDataModel.d.ts +0 -60
- package/dist/http-client/idb/AuthDataModel.d.ts.map +0 -1
- package/dist/http-client/idb/AuthDataModel.js +0 -150
- package/dist/http-client/idb/AuthDataModel.js.map +0 -1
- package/dist/http-client/idb/HostsModel.d.ts +0 -25
- package/dist/http-client/idb/HostsModel.d.ts.map +0 -1
- package/dist/http-client/idb/HostsModel.js +0 -82
- package/dist/http-client/idb/HostsModel.js.map +0 -1
- package/dist/http-client/idb/LegacyMockedStore.d.ts +0 -214
- package/dist/http-client/idb/LegacyMockedStore.d.ts.map +0 -1
- package/dist/http-client/idb/LegacyMockedStore.js +0 -486
- package/dist/http-client/idb/LegacyMockedStore.js.map +0 -1
- package/src/events/http-client/models/CertificatesEvents.ts +0 -23
- package/src/http-client/idb/AuthDataModel.ts +0 -175
- package/src/http-client/idb/HostsModel.ts +0 -125
- package/src/http-client/idb/LegacyMockedStore.ts +0 -544
- package/test/apic-ui.test.ts +0 -31
- /package/dist/elements/{files → store}/ShareFile.styles.d.ts +0 -0
- /package/dist/elements/{files → store}/ShareFile.styles.js +0 -0
- /package/src/elements/{files/ShareFile.ts → store/ShareFile.element.ts} +0 -0
- /package/src/elements/{files → store}/ShareFile.styles.ts +0 -0
|
@@ -1,544 +0,0 @@
|
|
|
1
|
-
/* eslint-disable default-param-last */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
-
/* eslint-disable class-methods-use-this */
|
|
4
|
-
import {
|
|
5
|
-
LegacyMock, ArcDataMockInit, RestApiIndexInit, VariableInit, ARCProject, ARCAuthData,
|
|
6
|
-
ARCCookie, ARCHostRule, ARCUrlHistory, ARCEnvironment, ARCVariable, ARCHistoryRequest,
|
|
7
|
-
ARCSavedRequest, ARCRestApiIndex, ARCRestApi, ARCCertificateIndex, ARCRequestCertificate,
|
|
8
|
-
ProjectCreateInit, RequestHistoryInit, RequestSavedInit, CertificateCreateInit, Entity
|
|
9
|
-
} from '@api-client/core/build/legacy.js';
|
|
10
|
-
import 'pouchdb/dist/pouchdb.js';
|
|
11
|
-
|
|
12
|
-
export interface InsertSavedResult {
|
|
13
|
-
projects: ARCProject[];
|
|
14
|
-
requests: ARCSavedRequest[];
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* @deprecated This relates to the data structure for ARC that is being deprecated. The full migration should finish in 2024.
|
|
19
|
-
*/
|
|
20
|
-
export class LegacyMockedStore {
|
|
21
|
-
mock: LegacyMock;
|
|
22
|
-
|
|
23
|
-
constructor(init: ArcDataMockInit = {}) {
|
|
24
|
-
this.mock = new LegacyMock(init);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* @param name The data store name to create.
|
|
29
|
-
*/
|
|
30
|
-
db(name: string): PouchDB.Database {
|
|
31
|
-
return new PouchDB(name);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Creates `_id` on the original insert object if it wasn't created before and
|
|
36
|
-
* updates `_rev` property.
|
|
37
|
-
*
|
|
38
|
-
* @param insertResponse PouchDB build insert response
|
|
39
|
-
* @param insertedData The original array of inserted objects.
|
|
40
|
-
* @returns This changes contents of te array items which is passed by reference.
|
|
41
|
-
*/
|
|
42
|
-
updateRevsAndIds(insertResponse: (PouchDB.Core.Response | PouchDB.Core.Error)[], insertedData: Entity[]): unknown[] {
|
|
43
|
-
const result: Entity[] = [];
|
|
44
|
-
insertResponse.forEach((item, i) => {
|
|
45
|
-
const error = item as PouchDB.Core.Error;
|
|
46
|
-
if (error.error) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const copy = { ...insertedData[i] };
|
|
50
|
-
if (!copy._id) {
|
|
51
|
-
copy._id = item.id;
|
|
52
|
-
}
|
|
53
|
-
copy._rev = item.rev;
|
|
54
|
-
result.push(copy as Entity);
|
|
55
|
-
});
|
|
56
|
-
return result;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Generates saved requests data and inserts them into the data store if they
|
|
61
|
-
* are missing.
|
|
62
|
-
*
|
|
63
|
-
* @returns Resolved promise when data are inserted into the datastore. The promise resolves to the generated data object
|
|
64
|
-
*/
|
|
65
|
-
async insertSaved(requestsSize = 25, projectsSize = 5, requestsInit?: RequestSavedInit, projectInit?: ProjectCreateInit): Promise<InsertSavedResult> {
|
|
66
|
-
const data = this.mock.http.savedData(requestsSize, projectsSize, requestsInit, projectInit);
|
|
67
|
-
const result: InsertSavedResult = ({
|
|
68
|
-
projects: [],
|
|
69
|
-
requests: [],
|
|
70
|
-
});
|
|
71
|
-
const projectsDb = this.db('legacy-projects');
|
|
72
|
-
const response = await projectsDb.bulkDocs(data.projects);
|
|
73
|
-
result.projects = this.updateRevsAndIds(response, data.projects) as ARCProject[];
|
|
74
|
-
const savedDb = this.db('saved-requests');
|
|
75
|
-
const response2 = await savedDb.bulkDocs(data.requests);
|
|
76
|
-
result.requests = this.updateRevsAndIds(response2, data.requests) as ARCSavedRequest[];
|
|
77
|
-
return result;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Generates and saves history data to the data store.
|
|
82
|
-
*
|
|
83
|
-
* @param size The number of requests to generate. Default to 25.
|
|
84
|
-
* @param init History init options.
|
|
85
|
-
* @returns A promise resolved to the generated history list.
|
|
86
|
-
*/
|
|
87
|
-
async insertHistory(size?: number, init?: RequestHistoryInit): Promise<ARCHistoryRequest[]> {
|
|
88
|
-
const data = this.mock.http.listHistory(size, init);
|
|
89
|
-
const db = this.db('history-requests');
|
|
90
|
-
const response = await db.bulkDocs(data);
|
|
91
|
-
return this.updateRevsAndIds(response, data) as ARCHistoryRequest[];
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Generates and saves a list of project objects.
|
|
96
|
-
*
|
|
97
|
-
* @param size Number of projects to insert. Default to 5.
|
|
98
|
-
*/
|
|
99
|
-
async insertProjects(size?: number, init?: ProjectCreateInit): Promise<ARCProject[]> {
|
|
100
|
-
const data = this.mock.http.listProjects(size, init);
|
|
101
|
-
const db = this.db('legacy-projects');
|
|
102
|
-
const response = await db.bulkDocs(data);
|
|
103
|
-
return this.updateRevsAndIds(response, data) as ARCProject[];
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Inserts saved data only if the store is empty.
|
|
108
|
-
* @param requestsSize Default 25
|
|
109
|
-
* @param projectsSize Default 5
|
|
110
|
-
* @returns A resolved promise when data are inserted into the datastore.
|
|
111
|
-
*/
|
|
112
|
-
async insertSavedIfNotExists(requestsSize?: number, projectsSize?: number, requestsInit?: RequestSavedInit, projectInit?: ProjectCreateInit): Promise<InsertSavedResult> {
|
|
113
|
-
const savedDb = this.db('saved-requests');
|
|
114
|
-
const response = await savedDb.allDocs<ARCSavedRequest>({
|
|
115
|
-
include_docs: true,
|
|
116
|
-
});
|
|
117
|
-
if (!response.rows.length) {
|
|
118
|
-
return this.insertSaved(requestsSize, projectsSize, requestsInit, projectInit);
|
|
119
|
-
}
|
|
120
|
-
const result: InsertSavedResult = {
|
|
121
|
-
requests: response.rows.map(item => item.doc) as ARCSavedRequest[],
|
|
122
|
-
projects: [],
|
|
123
|
-
};
|
|
124
|
-
const projectsDb = this.db('legacy-projects');
|
|
125
|
-
const projectsResponse = await projectsDb.allDocs<ARCProject>({
|
|
126
|
-
include_docs: true,
|
|
127
|
-
});
|
|
128
|
-
result.projects = projectsResponse.rows.map(item => item.doc) as ARCProject[];
|
|
129
|
-
return result;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Inserts history data if the store is empty.
|
|
134
|
-
*
|
|
135
|
-
* @param size The number of requests to generate. Default to 25.
|
|
136
|
-
* @param init History init options.
|
|
137
|
-
* @returns Resolved promise when data are inserted into the datastore.
|
|
138
|
-
*/
|
|
139
|
-
async insertHistoryIfNotExists(size?: number, init?: RequestHistoryInit): Promise<ARCHistoryRequest[]> {
|
|
140
|
-
const db = this.db('history-requests');
|
|
141
|
-
const response = await db.allDocs<ARCHistoryRequest>({
|
|
142
|
-
include_docs: true,
|
|
143
|
-
});
|
|
144
|
-
if (!response.rows.length) {
|
|
145
|
-
return this.insertHistory(size, init);
|
|
146
|
-
}
|
|
147
|
-
return response.rows.map(item => item.doc) as ARCHistoryRequest[];
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Destroys saved and projects database.
|
|
152
|
-
* @returns Resolved promise when the data are cleared.
|
|
153
|
-
*/
|
|
154
|
-
async destroySaved(): Promise<void> {
|
|
155
|
-
const savedDb = this.db('saved-requests');
|
|
156
|
-
const projectsDb = this.db('legacy-projects');
|
|
157
|
-
await savedDb.destroy();
|
|
158
|
-
await projectsDb.destroy();
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* Destroys history database.
|
|
163
|
-
* @return Resolved promise when the data are cleared.
|
|
164
|
-
*/
|
|
165
|
-
async destroyHistory(): Promise<void> {
|
|
166
|
-
const db = this.db('history-requests');
|
|
167
|
-
await db.destroy();
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Destroys legacy projects database.
|
|
172
|
-
* @returns Resolved promise when the data are cleared.
|
|
173
|
-
*/
|
|
174
|
-
async clearLegacyProjects(): Promise<void> {
|
|
175
|
-
const db = this.db('legacy-projects');
|
|
176
|
-
await db.destroy();
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Generates and saves websocket data to the data store.
|
|
181
|
-
*
|
|
182
|
-
* @param size The number of websocket data to insert.
|
|
183
|
-
*/
|
|
184
|
-
async insertWebsockets(size?: number): Promise<ARCUrlHistory[]> {
|
|
185
|
-
const data = this.mock.urls.urls(size);
|
|
186
|
-
const db = this.db('websocket-url-history');
|
|
187
|
-
const response = await db.bulkDocs(data);
|
|
188
|
-
return this.updateRevsAndIds(response, data) as ARCUrlHistory[];
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* Generates and saves url history data to the data store.
|
|
193
|
-
*
|
|
194
|
-
* @param size The number of URL history data to insert.
|
|
195
|
-
*/
|
|
196
|
-
async insertUrlHistory(size?: number): Promise<ARCUrlHistory[]> {
|
|
197
|
-
const data = this.mock.urls.urls(size);
|
|
198
|
-
const db = this.db('url-history');
|
|
199
|
-
const response = await db.bulkDocs(data);
|
|
200
|
-
return this.updateRevsAndIds(response, data) as ARCUrlHistory[];
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
/**
|
|
204
|
-
* Destroys websockets URL history database.
|
|
205
|
-
* @return Resolved promise when the data are cleared.
|
|
206
|
-
*/
|
|
207
|
-
async destroyWebsockets(): Promise<void> {
|
|
208
|
-
const db = this.db('websocket-url-history');
|
|
209
|
-
await db.destroy();
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Destroys URL history database.
|
|
214
|
-
* @return Resolved promise when the data are cleared.
|
|
215
|
-
*/
|
|
216
|
-
async destroyUrlHistory(): Promise<void> {
|
|
217
|
-
const db = this.db('url-history');
|
|
218
|
-
await db.destroy();
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
/**
|
|
222
|
-
* Generates and saves variables data to the data store.
|
|
223
|
-
*
|
|
224
|
-
* @param size The number of variables to generate.
|
|
225
|
-
* @returns Promise resolves to inserted variables.
|
|
226
|
-
*/
|
|
227
|
-
async insertVariables(size?: number, init?: VariableInit): Promise<ARCVariable[]> {
|
|
228
|
-
const data = this.mock.variables.listVariables(size, init);
|
|
229
|
-
const db = this.db('variables');
|
|
230
|
-
const response = await db.bulkDocs(data);
|
|
231
|
-
return this.updateRevsAndIds(response, data) as ARCVariable[];
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
/**
|
|
235
|
-
* Generates and saves variables data to the data store and then environments generated from the variables.
|
|
236
|
-
*
|
|
237
|
-
* @param size The number of variables to generate.
|
|
238
|
-
* @returns Promise resolves to inserted variables.
|
|
239
|
-
*/
|
|
240
|
-
async insertVariablesAndEnvironments(size?: number, init?: VariableInit): Promise<ARCVariable[]> {
|
|
241
|
-
const result = await this.insertVariables(size, init);
|
|
242
|
-
const items: ARCVariable[] = [];
|
|
243
|
-
const names: string[] = [];
|
|
244
|
-
result.forEach((variable) => {
|
|
245
|
-
if (variable.environment !== 'default' && !names.includes(variable.environment)) {
|
|
246
|
-
names.push(variable.environment)
|
|
247
|
-
items.push({
|
|
248
|
-
name: variable.environment,
|
|
249
|
-
environment: '',
|
|
250
|
-
value: '',
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
});
|
|
254
|
-
if (items.length) {
|
|
255
|
-
const db = this.db('variables-environments');
|
|
256
|
-
await db.bulkDocs(items);
|
|
257
|
-
}
|
|
258
|
-
return result;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
/**
|
|
262
|
-
* Destroys variables and environments database.
|
|
263
|
-
* @return Resolved promise when the data are cleared.
|
|
264
|
-
*/
|
|
265
|
-
async destroyVariables(): Promise<void> {
|
|
266
|
-
const db = this.db('variables');
|
|
267
|
-
const db2 = this.db('variables-environments');
|
|
268
|
-
await db.destroy();
|
|
269
|
-
await db2.destroy();
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
/**
|
|
273
|
-
* Generates and saves cookies data to the data store.
|
|
274
|
-
*
|
|
275
|
-
* @param size Number of cookies to insert. Default to 25.
|
|
276
|
-
*/
|
|
277
|
-
async insertCookies(size?: number): Promise<ARCCookie[]> {
|
|
278
|
-
const data = this.mock.cookies.cookies(size);
|
|
279
|
-
const db = this.db('cookies');
|
|
280
|
-
const response = await db.bulkDocs(data);
|
|
281
|
-
return this.updateRevsAndIds(response, data as any[]) as ARCCookie[];
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
/**
|
|
285
|
-
* Destroys cookies database.
|
|
286
|
-
* @return Resolved promise when the data are cleared.
|
|
287
|
-
*/
|
|
288
|
-
async destroyCookies(): Promise<void> {
|
|
289
|
-
const db = this.db('cookies');
|
|
290
|
-
await db.destroy();
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
/**
|
|
294
|
-
* Generates and saves basic auth data to the data store.
|
|
295
|
-
*
|
|
296
|
-
* @param size Number of auth data to insert. Default to 25.
|
|
297
|
-
* @returns Promise resolved to created auth data.
|
|
298
|
-
*/
|
|
299
|
-
async insertBasicAuth(size?: number): Promise<ARCAuthData[]> {
|
|
300
|
-
const data = this.mock.authorization.basicList(size);
|
|
301
|
-
const db = this.db('auth-data');
|
|
302
|
-
const response = await db.bulkDocs(data);
|
|
303
|
-
return this.updateRevsAndIds(response, data) as ARCAuthData[];
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
/**
|
|
307
|
-
* Destroys auth data database.
|
|
308
|
-
* @return Resolved promise when the data are cleared.
|
|
309
|
-
*/
|
|
310
|
-
async destroyBasicAuth(): Promise<void> {
|
|
311
|
-
const db = this.db('auth-data');
|
|
312
|
-
await db.destroy();
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
/**
|
|
316
|
-
* Generates and saves host rules data to the data store.
|
|
317
|
-
*
|
|
318
|
-
* @param size Number of rules to insert. Default to 25.
|
|
319
|
-
* @return {Promise<PouchDB.Core.ExistingDocument<ARCHostRule>[]>}
|
|
320
|
-
*/
|
|
321
|
-
async insertHostRules(size?: number): Promise<ARCHostRule[]> {
|
|
322
|
-
const data = this.mock.hostRules.rules(size);
|
|
323
|
-
const db = this.db('host-rules');
|
|
324
|
-
const response = await db.bulkDocs(data);
|
|
325
|
-
return this.updateRevsAndIds(response, data) as ARCHostRule[];
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
/**
|
|
329
|
-
* Destroys hosts data database.
|
|
330
|
-
* @return Resolved promise when the data are cleared.
|
|
331
|
-
*/
|
|
332
|
-
async destroyHostRules(): Promise<void> {
|
|
333
|
-
const db = this.db('host-rules');
|
|
334
|
-
await db.destroy();
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
async insertApis(size?: number, init?: RestApiIndexInit): Promise<(ARCRestApi[] | ARCRestApiIndex[])[]> {
|
|
338
|
-
let index = this.mock.restApi.apiIndexList(size, init);
|
|
339
|
-
let data = this.mock.restApi.apiDataList(index);
|
|
340
|
-
const indexDb = this.db('api-index');
|
|
341
|
-
const indexResponse = await indexDb.bulkDocs(index);
|
|
342
|
-
index = this.updateRevsAndIds(indexResponse, index) as ARCRestApiIndex[];
|
|
343
|
-
const dataDb = this.db('api-data');
|
|
344
|
-
const dataResponse = await dataDb.bulkDocs(data);
|
|
345
|
-
data = this.updateRevsAndIds(dataResponse, data) as ARCRestApi[];
|
|
346
|
-
return [index, data];
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
/**
|
|
350
|
-
* Destroys api-index data database.
|
|
351
|
-
* @return Resolved promise when the data are cleared.
|
|
352
|
-
*/
|
|
353
|
-
async destroyApiIndexes(): Promise<void> {
|
|
354
|
-
const db = this.db('api-index');
|
|
355
|
-
await db.destroy();
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
/**
|
|
359
|
-
* Destroys api-data database.
|
|
360
|
-
* @return Resolved promise when the data are cleared.
|
|
361
|
-
*/
|
|
362
|
-
async destroyApiData(): Promise<void> {
|
|
363
|
-
const db = this.db('api-data');
|
|
364
|
-
await db.destroy();
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
async destroyApisAll(): Promise<void> {
|
|
368
|
-
await this.destroyApiIndexes();
|
|
369
|
-
await this.destroyApiData();
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
/**
|
|
373
|
-
* @param size The number of certificates to generate.
|
|
374
|
-
* @param opts Create options
|
|
375
|
-
*/
|
|
376
|
-
async insertCertificates(size?: number, opts?: CertificateCreateInit): Promise<ARCCertificateIndex[]> {
|
|
377
|
-
const data = this.mock.certificates.clientCertificates(size, opts);
|
|
378
|
-
const responses = [];
|
|
379
|
-
const indexDb = this.db('client-certificates');
|
|
380
|
-
const dataDb = this.db('client-certificates-data');
|
|
381
|
-
for (let i = 0; i < data.length; i++) {
|
|
382
|
-
const cert = data[i];
|
|
383
|
-
const dataEntity: ARCRequestCertificate = ({
|
|
384
|
-
cert: this.mock.certificates.toStore(cert.cert),
|
|
385
|
-
type: cert.type,
|
|
386
|
-
});
|
|
387
|
-
if (cert.key) {
|
|
388
|
-
dataEntity.key = this.mock.certificates.toStore(cert.key);
|
|
389
|
-
}
|
|
390
|
-
const indexEntity: ARCCertificateIndex = ({
|
|
391
|
-
name: cert.name,
|
|
392
|
-
type: cert.type,
|
|
393
|
-
});
|
|
394
|
-
if (cert.created) {
|
|
395
|
-
indexEntity.created = cert.created;
|
|
396
|
-
} else {
|
|
397
|
-
indexEntity.created = Date.now();
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
/* eslint-disable-next-line no-await-in-loop */
|
|
401
|
-
const dataRes = await dataDb.post(dataEntity);
|
|
402
|
-
indexEntity._id = dataRes.id;
|
|
403
|
-
/* eslint-disable-next-line no-await-in-loop */
|
|
404
|
-
responses[responses.length] = await indexDb.post(indexEntity);
|
|
405
|
-
}
|
|
406
|
-
return this.updateRevsAndIds(responses, data as any[]) as ARCCertificateIndex[];
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
async destroyClientCertificates(): Promise<void> {
|
|
410
|
-
await this.db('client-certificates').destroy();
|
|
411
|
-
await this.db('client-certificates-data').destroy();
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
/**
|
|
415
|
-
* Destroys all databases.
|
|
416
|
-
* @return Resolved promise when the data are cleared.
|
|
417
|
-
*/
|
|
418
|
-
async destroyAll(): Promise<void> {
|
|
419
|
-
await this.destroySaved();
|
|
420
|
-
await this.destroyHistory();
|
|
421
|
-
await this.destroyWebsockets();
|
|
422
|
-
await this.destroyUrlHistory();
|
|
423
|
-
await this.destroyVariables();
|
|
424
|
-
await this.destroyCookies();
|
|
425
|
-
await this.destroyBasicAuth();
|
|
426
|
-
await this.destroyHostRules();
|
|
427
|
-
await this.destroyApiIndexes();
|
|
428
|
-
await this.destroyApiData();
|
|
429
|
-
await this.destroyClientCertificates();
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
/**
|
|
433
|
-
* Deeply clones an object.
|
|
434
|
-
* @param {any[]|Date|object} obj Object to be cloned
|
|
435
|
-
* @return {any[]|Date|object} Copied object
|
|
436
|
-
*/
|
|
437
|
-
clone<T>(obj: T): T {
|
|
438
|
-
let copy: any;
|
|
439
|
-
if (obj === null || typeof obj !== 'object') {
|
|
440
|
-
return obj;
|
|
441
|
-
}
|
|
442
|
-
if (obj instanceof Date) {
|
|
443
|
-
copy = new Date();
|
|
444
|
-
copy.setTime(obj.getTime());
|
|
445
|
-
return copy;
|
|
446
|
-
}
|
|
447
|
-
if (Array.isArray(obj)) {
|
|
448
|
-
copy = [];
|
|
449
|
-
for (let i = 0, len = obj.length; i < len; i++) {
|
|
450
|
-
copy[i] = this.clone(obj[i]);
|
|
451
|
-
}
|
|
452
|
-
return copy;
|
|
453
|
-
}
|
|
454
|
-
if (obj instanceof Object) {
|
|
455
|
-
copy = {};
|
|
456
|
-
Object.keys(obj).forEach((key) => {
|
|
457
|
-
copy[key] = this.clone((obj as any)[key]);
|
|
458
|
-
});
|
|
459
|
-
return copy;
|
|
460
|
-
}
|
|
461
|
-
throw new Error("Unable to copy obj! Its type isn't supported.");
|
|
462
|
-
}
|
|
463
|
-
|
|
464
|
-
/**
|
|
465
|
-
* Reads all data from a data store.
|
|
466
|
-
* @param name Name of the data store to read from. Without `_pouch_` prefix
|
|
467
|
-
* @returns Promise resolved to all read docs.
|
|
468
|
-
*/
|
|
469
|
-
async getDatastoreData(name: string): Promise<unknown[]> {
|
|
470
|
-
const db = this.db(name);
|
|
471
|
-
const response = await db.allDocs({
|
|
472
|
-
include_docs: true,
|
|
473
|
-
});
|
|
474
|
-
return response.rows.map(item => item.doc);
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
async getDatastoreRequestData(): Promise<ARCSavedRequest[]> {
|
|
478
|
-
return this.getDatastoreData('saved-requests') as Promise<ARCSavedRequest[]>;
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
async getDatastoreProjectsData(): Promise<ARCProject[]> {
|
|
482
|
-
return this.getDatastoreData('legacy-projects') as Promise<ARCProject[]>;
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
async getDatastoreHistoryData(): Promise<ARCHistoryRequest[]> {
|
|
486
|
-
return this.getDatastoreData('history-requests') as Promise<ARCHistoryRequest[]>;
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
async getDatastoreVariablesData(): Promise<ARCVariable[]> {
|
|
490
|
-
return this.getDatastoreData('variables') as Promise<ARCVariable[]>;
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
async getDatastoreEnvironmentsData(): Promise<ARCEnvironment[]> {
|
|
494
|
-
return this.getDatastoreData('variables-environments') as Promise<ARCEnvironment[]>;
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
async getDatastoreCookiesData(): Promise<ARCCookie[]> {
|
|
498
|
-
return this.getDatastoreData('cookies') as Promise<ARCCookie[]>;
|
|
499
|
-
}
|
|
500
|
-
|
|
501
|
-
async getDatastoreWebsocketsData(): Promise<ARCUrlHistory[]> {
|
|
502
|
-
return this.getDatastoreData('websocket-url-history') as Promise<ARCUrlHistory[]>;
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
async getDatastoreUrlsData(): Promise<ARCUrlHistory[]> {
|
|
506
|
-
return this.getDatastoreData('url-history') as Promise<ARCUrlHistory[]>;
|
|
507
|
-
}
|
|
508
|
-
|
|
509
|
-
async getDatastoreAuthData(): Promise<ARCAuthData[]> {
|
|
510
|
-
return this.getDatastoreData('auth-data') as Promise<ARCAuthData[]>;
|
|
511
|
-
}
|
|
512
|
-
|
|
513
|
-
async getDatastoreHostRulesData(): Promise<ARCHostRule[]> {
|
|
514
|
-
return this.getDatastoreData('host-rules') as Promise<ARCHostRule[]>;
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
async getDatastoreApiIndexData(): Promise<ARCRestApiIndex[]> {
|
|
518
|
-
return this.getDatastoreData('api-index') as Promise<ARCRestApiIndex[]>;
|
|
519
|
-
}
|
|
520
|
-
|
|
521
|
-
async getDatastoreHostApiData(): Promise<ARCRestApi[]> {
|
|
522
|
-
return this.getDatastoreData('api-data') as Promise<ARCRestApi[]>;
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
async getDatastoreClientCertificates(): Promise<(ARCCertificateIndex[] | ARCRequestCertificate[])[]> {
|
|
526
|
-
const certs = await this.getDatastoreData('client-certificates') as ARCCertificateIndex[];
|
|
527
|
-
const data = await this.getDatastoreData('client-certificates-data') as ARCRequestCertificate[];
|
|
528
|
-
return [certs, data];
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
/**
|
|
532
|
-
* Updates an object in an data store.
|
|
533
|
-
*
|
|
534
|
-
* @param dbName Name of the data store.
|
|
535
|
-
* @param obj The object to be stored.
|
|
536
|
-
* @returns A promise resolved to insert result.
|
|
537
|
-
*/
|
|
538
|
-
async updateObject(dbName: string, obj: any): Promise<PouchDB.Core.Response> {
|
|
539
|
-
const db = this.db(dbName);
|
|
540
|
-
return db.put(obj, {
|
|
541
|
-
force: true,
|
|
542
|
-
});
|
|
543
|
-
}
|
|
544
|
-
}
|
package/test/apic-ui.test.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// import { html } from 'lit';
|
|
2
|
-
// import { fixture, expect } from '@open-wc/testing';
|
|
3
|
-
// import '../src/apic-ui.js';
|
|
4
|
-
|
|
5
|
-
// describe('ApicUi', () => {
|
|
6
|
-
// it('has a default title "Hey there" and counter 5', async () => {
|
|
7
|
-
// // const el = await fixture<ApicUi>(html`<apic-ui></apic-ui>`);
|
|
8
|
-
|
|
9
|
-
// // expect(el.title).to.equal('Hey there');
|
|
10
|
-
// // expect(el.counter).to.equal(5);
|
|
11
|
-
// });
|
|
12
|
-
|
|
13
|
-
// it('increases the counter on button click', async () => {
|
|
14
|
-
// // const el = await fixture<ApicUi>(html`<apic-ui></apic-ui>`);
|
|
15
|
-
// // el.shadowRoot!.querySelector('button')!.click();
|
|
16
|
-
|
|
17
|
-
// // expect(el.counter).to.equal(6);
|
|
18
|
-
// });
|
|
19
|
-
|
|
20
|
-
// it('can override the title via attribute', async () => {
|
|
21
|
-
// // const el = await fixture<ApicUi>(html`<apic-ui title="attribute title"></apic-ui>`);
|
|
22
|
-
|
|
23
|
-
// // expect(el.title).to.equal('attribute title');
|
|
24
|
-
// });
|
|
25
|
-
|
|
26
|
-
// it('passes the a11y audit', async () => {
|
|
27
|
-
// // const el = await fixture<ApicUi>(html`<apic-ui></apic-ui>`);
|
|
28
|
-
|
|
29
|
-
// // await expect(el).shadowDom.to.be.accessible();
|
|
30
|
-
// });
|
|
31
|
-
// });
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|