@umbraco/playwright-testhelpers 2.0.0-beta.6 → 2.0.0-beta.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.
@@ -2,18 +2,21 @@ import { ApiHelpers } from "./ApiHelpers";
2
2
  export declare class PartialViewApiHelper {
3
3
  api: ApiHelpers;
4
4
  constructor(api: ApiHelpers);
5
- ensureNameNotExistsAtRoot(name: string): Promise<void | import("playwright-core").APIResponse | null>;
6
- nameExistsAtRoot(name: string): Promise<boolean>;
7
- exists(path: string): Promise<boolean>;
8
5
  get(path: string): Promise<any>;
9
- getByNameAtRoot(name: string): Promise<any>;
6
+ doesExist(path: string): Promise<boolean>;
10
7
  create(name: string, content: string, parentPath?: string): Promise<string | undefined>;
11
8
  update(partialView: any): Promise<import("playwright-core").APIResponse>;
12
9
  delete(path: string): Promise<import("playwright-core").APIResponse>;
10
+ doesNameExist(name: string): Promise<any>;
11
+ getChildren(path: string): Promise<any>;
12
+ getAllAtRoot(): Promise<import("playwright-core").APIResponse>;
13
+ getByName(name: string): Promise<any>;
14
+ ensureNameNotExists(name: string): Promise<import("playwright-core").APIResponse | null>;
15
+ private recurseChildren;
16
+ private recurseDeleteChildren;
13
17
  getFolder(path: string): Promise<any>;
14
- folderExists(path: string): Promise<boolean>;
15
- getFolderChildren(path: string): Promise<any>;
18
+ doesFolderExist(path: string): Promise<boolean>;
16
19
  createFolder(name: string, parentPath?: string): Promise<any>;
17
20
  deleteFolder(path: string): Promise<import("playwright-core").APIResponse>;
18
- recurseFolderChildren(path: string): Promise<void>;
21
+ getFolderChildren(path: string): Promise<any>;
19
22
  }
@@ -6,60 +6,13 @@ class PartialViewApiHelper {
6
6
  constructor(api) {
7
7
  this.api = api;
8
8
  }
9
- async ensureNameNotExistsAtRoot(name) {
10
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/root?skip=0&take=10000');
11
- const json = await response.json();
12
- for (const sb of json.items) {
13
- if (sb.name === name) {
14
- if (sb.isFolder == false) {
15
- return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + sb.path);
16
- }
17
- else {
18
- if (sb.hasChildren == true) {
19
- return await this.recurseFolderChildren(sb.path);
20
- }
21
- else {
22
- return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + sb.path);
23
- }
24
- }
25
- }
26
- }
27
- return null;
28
- }
29
- async nameExistsAtRoot(name) {
30
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/root?skip=0&take=10000');
31
- const json = await response.json();
32
- for (const sb of json.items) {
33
- if (sb.name === name) {
34
- return true;
35
- }
36
- }
37
- return false;
38
- }
39
- async exists(path) {
40
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);
41
- return response.status() === 200;
42
- }
43
9
  async get(path) {
44
10
  const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);
45
11
  return await response.json();
46
12
  }
47
- async getByNameAtRoot(name) {
48
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/root?skip=0&take=10000');
49
- const json = await response.json();
50
- for (const sb of json.items) {
51
- if (sb.name === name) {
52
- if (sb.isFolder === false) {
53
- const partialView = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + sb.path);
54
- return await partialView.json();
55
- }
56
- else {
57
- const partialViewFolder = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + sb.path);
58
- return await partialViewFolder.json();
59
- }
60
- }
61
- }
62
- return null;
13
+ async doesExist(path) {
14
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);
15
+ return response.status() === 200;
63
16
  }
64
17
  async create(name, content, parentPath = "") {
65
18
  const partialViewData = {
@@ -82,23 +35,102 @@ class PartialViewApiHelper {
82
35
  async delete(path) {
83
36
  return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);
84
37
  }
38
+ async doesNameExist(name) {
39
+ return await this.getByName(name);
40
+ }
41
+ async getChildren(path) {
42
+ const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/partial-view/children?path=${path}&skip=0&take=10000`);
43
+ const items = await response.json();
44
+ return items.items;
45
+ }
46
+ async getAllAtRoot() {
47
+ return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/root?skip=0&take=10000');
48
+ }
49
+ async getByName(name) {
50
+ const rootPartialView = await this.getAllAtRoot();
51
+ const jsonPartialView = await rootPartialView.json();
52
+ for (const partialView of jsonPartialView.items) {
53
+ if (partialView.name === name) {
54
+ if (partialView.isFolder) {
55
+ return this.getFolder(partialView.path);
56
+ }
57
+ else {
58
+ return this.get(partialView.path);
59
+ }
60
+ }
61
+ else if (partialView.isFolder && partialView.hasChildren) {
62
+ const result = await this.recurseChildren(name, partialView.path, false);
63
+ if (result) {
64
+ return result;
65
+ }
66
+ }
67
+ }
68
+ return false;
69
+ }
70
+ async ensureNameNotExists(name) {
71
+ const rootPartialView = await this.getAllAtRoot();
72
+ const jsonPartialView = await rootPartialView.json();
73
+ for (const partialView of jsonPartialView.items) {
74
+ if (partialView.name === name) {
75
+ if (partialView.isFolder) {
76
+ return await this.recurseDeleteChildren(partialView);
77
+ }
78
+ return await this.delete(partialView.path);
79
+ }
80
+ else if (partialView.hasChildren) {
81
+ await this.recurseChildren(name, partialView.path, true);
82
+ }
83
+ }
84
+ return null;
85
+ }
86
+ async recurseChildren(name, path, toDelete) {
87
+ const items = await this.getChildren(path);
88
+ for (const child of items) {
89
+ if (child.name === name) {
90
+ if (!toDelete) {
91
+ if (child.isFolder) {
92
+ return await this.getFolder(child.path);
93
+ }
94
+ return await this.get(child.path);
95
+ }
96
+ if (child.isFolder) {
97
+ return await this.recurseDeleteChildren(child);
98
+ }
99
+ return await this.delete(child.path);
100
+ }
101
+ else if (child.hasChildren) {
102
+ return await this.recurseChildren(name, child.path, toDelete);
103
+ }
104
+ }
105
+ return false;
106
+ }
107
+ async recurseDeleteChildren(partialViewFolder) {
108
+ if (!partialViewFolder.hasChildren) {
109
+ return await this.deleteFolder(partialViewFolder.path);
110
+ }
111
+ const items = await this.getChildren(partialViewFolder.path);
112
+ for (const child of items) {
113
+ if (child.hasChildren) {
114
+ await this.recurseDeleteChildren(child);
115
+ }
116
+ else if (child.isFolder) {
117
+ await this.deleteFolder(child.path);
118
+ }
119
+ else {
120
+ await this.delete(child.path);
121
+ }
122
+ }
123
+ return await this.deleteFolder(partialViewFolder.path);
124
+ }
85
125
  // Folder
86
126
  async getFolder(path) {
87
127
  const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);
88
128
  return await response.json();
89
129
  }
90
- async folderExists(path) {
130
+ async doesFolderExist(path) {
91
131
  const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);
92
132
  return response.status() === 200;
93
133
  }
94
- async getFolderChildren(path) {
95
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/children?path=' + path + '&skip=0&take=10000');
96
- const json = await response.json();
97
- if (json !== null) {
98
- return json;
99
- }
100
- return null;
101
- }
102
134
  async createFolder(name, parentPath = "") {
103
135
  const partialViewFolderData = {
104
136
  "name": name,
@@ -112,25 +144,13 @@ class PartialViewApiHelper {
112
144
  async deleteFolder(path) {
113
145
  return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);
114
146
  }
115
- async recurseFolderChildren(path) {
116
- const parentPartialView = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/children?path=' + path + '&skip=0&take=10000');
117
- const itemsJson = await parentPartialView.json();
118
- for (const child of itemsJson.items) {
119
- if (child.path !== null) {
120
- if (child.isFolder == true) {
121
- if (child.hasChildren == true) {
122
- await this.recurseFolderChildren(child.path);
123
- }
124
- else {
125
- await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + child.path);
126
- }
127
- }
128
- else {
129
- await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/?path=' + child.path);
130
- }
131
- }
147
+ async getFolderChildren(path) {
148
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/children?path=' + path + '&skip=0&take=10000');
149
+ const json = await response.json();
150
+ if (json !== null) {
151
+ return json;
132
152
  }
133
- await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);
153
+ return null;
134
154
  }
135
155
  }
136
156
  exports.PartialViewApiHelper = PartialViewApiHelper;
@@ -1 +1 @@
1
- {"version":3,"file":"PartialViewApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PartialViewApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class PartialViewApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExistsAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/root?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.isFolder == false) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + sb.path);\n } else {\n if (sb.hasChildren == true) {\n return await this.recurseFolderChildren(sb.path);\n } else {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + sb.path);\n }\n }\n }\n }\n return null;\n }\n\n async nameExistsAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/root?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n return false;\n }\n\n async exists(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);\n return response.status() === 200;\n }\n\n async get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);\n return await response.json();\n }\n\n async getByNameAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/root?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.isFolder === false) {\n const partialView = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + sb.path);\n return await partialView.json();\n } else {\n const partialViewFolder = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + sb.path);\n return await partialViewFolder.json();\n }\n }\n }\n return null;\n }\n\n async create(name: string, content: string, parentPath: string = \"\") {\n const partialViewData = {\n \"name\": name,\n \"content\": content,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/partial-view', partialViewData);\n // Returns the path of the created partialView\n return response.headers().location.split(\"=\").pop();\n }\n\n async update(partialView) {\n const partialViewData = {\n \"name\": partialView.name,\n \"content\": partialView.content,\n \"existingPath\": partialView.path\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/partial-view', partialViewData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);\n return await response.json();\n }\n\n async folderExists(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);\n return response.status() === 200;\n }\n\n async getFolderChildren(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/children?path=' + path + '&skip=0&take=10000');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async createFolder(name: string, parentPath = \"\") {\n const partialViewFolderData =\n {\n \"name\": name,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder', partialViewFolderData);\n // Returns the id of the created partialViewFolder\n const json = await response.json();\n return json.path;\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);\n }\n\n async recurseFolderChildren(path: string) {\n const parentPartialView = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/children?path=' + path + '&skip=0&take=10000');\n const itemsJson = await parentPartialView.json();\n\n for (const child of itemsJson.items) {\n if (child.path !== null) {\n if (child.isFolder == true) {\n if (child.hasChildren == true) {\n await this.recurseFolderChildren(child.path);\n } else {\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + child.path);\n }\n } else {\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/?path=' + child.path);\n }\n }\n }\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);\n }\n}"]}
1
+ {"version":3,"file":"PartialViewApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PartialViewApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class PartialViewApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);\n return await response.json();\n }\n\n async doesExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath: string = \"\") {\n const partialViewData = {\n \"name\": name,\n \"content\": content,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/partial-view', partialViewData);\n // Returns the path of the created partialView\n return response.headers().location.split(\"=\").pop();\n }\n\n async update(partialView) {\n const partialViewData = {\n \"name\": partialView.name,\n \"content\": partialView.content,\n \"existingPath\": partialView.path\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/partial-view', partialViewData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view?path=' + path);\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getChildren(path: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/partial-view/children?path=${path}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/root?skip=0&take=10000');\n }\n\n async getByName(name: string) {\n const rootPartialView = await this.getAllAtRoot();\n const jsonPartialView = await rootPartialView.json();\n\n for (const partialView of jsonPartialView.items) {\n if (partialView.name === name) {\n if (partialView.isFolder) {\n return this.getFolder(partialView.path);\n } else {\n return this.get(partialView.path);\n }\n } else if (partialView.isFolder && partialView.hasChildren) {\n const result = await this.recurseChildren(name, partialView.path, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootPartialView = await this.getAllAtRoot();\n const jsonPartialView = await rootPartialView.json();\n\n for (const partialView of jsonPartialView.items) {\n if (partialView.name === name) {\n if (partialView.isFolder) {\n return await this.recurseDeleteChildren(partialView);\n }\n return await this.delete(partialView.path);\n } else if (partialView.hasChildren) {\n await this.recurseChildren(name, partialView.path, true);\n }\n }\n return null;\n }\n\n private async recurseChildren(name: string, path: string, toDelete: boolean) {\n const items = await this.getChildren(path);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n if (child.isFolder) {\n return await this.getFolder(child.path);\n }\n return await this.get(child.path);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.path);\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.path, toDelete);\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(partialViewFolder) {\n if (!partialViewFolder.hasChildren) {\n return await this.deleteFolder(partialViewFolder.path);\n }\n const items = await this.getChildren(partialViewFolder.path);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child);\n } else if (child.isFolder) {\n await this.deleteFolder(child.path);\n } else {\n await this.delete(child.path);\n }\n }\n return await this.deleteFolder(partialViewFolder.path);\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);\n return await response.json();\n }\n\n async doesFolderExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath = \"\") {\n const partialViewFolderData =\n {\n \"name\": name,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder', partialViewFolderData);\n // Returns the id of the created partialViewFolder\n const json = await response.json();\n return json.path;\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/partial-view/folder?path=' + path);\n }\n\n async getFolderChildren(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/partial-view/children?path=' + path + '&skip=0&take=10000');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n}"]}
@@ -0,0 +1,41 @@
1
+ import { Page } from "@playwright/test";
2
+ export declare class PartialViewUiHelper {
3
+ private readonly page;
4
+ private readonly newEmptyPartialViewBtn;
5
+ private readonly newPartialViewFromSnippetBtn;
6
+ private readonly createFolderBtn;
7
+ private readonly saveBtn;
8
+ private readonly partialViewContentTxt;
9
+ private readonly partialViewNameTxt;
10
+ private readonly breadcrumbButton;
11
+ private readonly folderNameTxt;
12
+ private readonly caretBtn;
13
+ private readonly deleteBtn;
14
+ private readonly confirmToDeleteBtn;
15
+ private readonly removeFolderBtn;
16
+ private readonly confirmCreateFolderBtn;
17
+ private readonly queryBuilderButton;
18
+ private readonly whereDropdown;
19
+ private readonly createDateOption;
20
+ private readonly submitBtn;
21
+ private readonly insertBtn;
22
+ private readonly dictionaryItemBtn;
23
+ private readonly caretDictionaryBtn;
24
+ constructor(page: Page);
25
+ openActionsMenuForName(name: string): Promise<void>;
26
+ openActionsMenuAtRoot(): Promise<void>;
27
+ clickRootFolderCaretButton(): Promise<void>;
28
+ clickCaretButtonForName(name: string): Promise<void>;
29
+ clickNewEmptyPartialViewButton(): Promise<void>;
30
+ clickNewPartialViewFromSnippetButton(): Promise<void>;
31
+ clickSaveButton(): Promise<void>;
32
+ clickBreadcrumbButton(): Promise<void>;
33
+ createNewFolder(folderName: string): Promise<void>;
34
+ enterPartialViewName(partialViewName: string): Promise<void>;
35
+ enterPartialViewContent(partialViewContent: string): Promise<void>;
36
+ openPartialViewFileAtRoot(partialViewFileName: string): Promise<void>;
37
+ deletePartialViewFile(): Promise<void>;
38
+ removeFolder(): Promise<void>;
39
+ addQueryBuilderIntoPartialView(): Promise<void>;
40
+ insertDictionaryItem(dictionaryName: string): Promise<void>;
41
+ }
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PartialViewUiHelper = void 0;
4
+ class PartialViewUiHelper {
5
+ page;
6
+ newEmptyPartialViewBtn;
7
+ newPartialViewFromSnippetBtn;
8
+ createFolderBtn;
9
+ saveBtn;
10
+ partialViewContentTxt;
11
+ partialViewNameTxt;
12
+ breadcrumbButton;
13
+ folderNameTxt;
14
+ caretBtn;
15
+ deleteBtn;
16
+ confirmToDeleteBtn;
17
+ removeFolderBtn;
18
+ confirmCreateFolderBtn;
19
+ queryBuilderButton;
20
+ whereDropdown;
21
+ createDateOption;
22
+ submitBtn;
23
+ insertBtn;
24
+ dictionaryItemBtn;
25
+ caretDictionaryBtn;
26
+ constructor(page) {
27
+ this.page = page;
28
+ this.newEmptyPartialViewBtn = page.getByLabel('New empty partial view');
29
+ this.newPartialViewFromSnippetBtn = page.getByLabel('New partial view from snippet...');
30
+ this.createFolderBtn = page.getByLabel('Create folder');
31
+ this.saveBtn = page.getByLabel('Save');
32
+ this.partialViewNameTxt = page.getByLabel('template name');
33
+ this.folderNameTxt = page.getByRole('textbox', { name: 'Enter folder name...' });
34
+ this.caretBtn = page.locator('umb-tree-item').filter({ hasText: 'Partial Views' }).locator('#caret-button');
35
+ this.deleteBtn = page.getByRole('button', { name: 'Delete' });
36
+ this.confirmToDeleteBtn = page.locator('#confirm').getByLabel('Delete');
37
+ this.removeFolderBtn = page.getByLabel('Remove folder');
38
+ this.confirmCreateFolderBtn = page.locator('#confirm').getByLabel('Create folder');
39
+ this.breadcrumbButton = page.getByLabel('Breadcrumb');
40
+ this.partialViewContentTxt = page.locator('textarea.inputarea');
41
+ this.queryBuilderButton = page.locator('#query-builder-button').getByLabel('Query builder');
42
+ this.whereDropdown = page.locator('#property-alias-dropdown').getByLabel('Property alias');
43
+ this.createDateOption = page.locator('#property-alias-dropdown').getByText('CreateDate');
44
+ this.submitBtn = page.getByLabel('Submit');
45
+ this.insertBtn = page.getByLabel('Choose value to insert');
46
+ this.dictionaryItemBtn = page.getByLabel('Insert Dictionary item');
47
+ this.caretDictionaryBtn = page.locator('umb-tree-picker-modal').locator('#caret-button');
48
+ }
49
+ async openActionsMenuForName(name) {
50
+ await this.page.locator('umb-tree-item').locator('[label="' + name + '"] >> [label="Open actions menu"]').click();
51
+ }
52
+ async openActionsMenuAtRoot() {
53
+ await this.openActionsMenuForName("Partial Views");
54
+ }
55
+ async clickRootFolderCaretButton() {
56
+ await this.caretBtn.click();
57
+ }
58
+ async clickCaretButtonForName(name) {
59
+ await this.page.locator('umb-tree-item >> [label="' + name + '"]').locator('#caret-button').click();
60
+ }
61
+ async clickNewEmptyPartialViewButton() {
62
+ await this.newEmptyPartialViewBtn.click();
63
+ }
64
+ async clickNewPartialViewFromSnippetButton() {
65
+ await this.newPartialViewFromSnippetBtn.click();
66
+ }
67
+ async clickSaveButton() {
68
+ await this.saveBtn.click();
69
+ }
70
+ async clickBreadcrumbButton() {
71
+ await this.breadcrumbButton.click();
72
+ }
73
+ async createNewFolder(folderName) {
74
+ await this.createFolderBtn.click();
75
+ await this.folderNameTxt.fill(folderName);
76
+ await this.confirmCreateFolderBtn.click();
77
+ }
78
+ async enterPartialViewName(partialViewName) {
79
+ await this.partialViewNameTxt.clear();
80
+ await this.partialViewNameTxt.fill(partialViewName);
81
+ }
82
+ async enterPartialViewContent(partialViewContent) {
83
+ await this.partialViewContentTxt.clear();
84
+ await this.partialViewContentTxt.fill(partialViewContent);
85
+ }
86
+ async openPartialViewFileAtRoot(partialViewFileName) {
87
+ await this.caretBtn.click();
88
+ await this.page.getByLabel(partialViewFileName).click();
89
+ }
90
+ async deletePartialViewFile() {
91
+ await this.deleteBtn.click();
92
+ await this.confirmToDeleteBtn.click();
93
+ }
94
+ async removeFolder() {
95
+ await this.removeFolderBtn.click();
96
+ await this.confirmToDeleteBtn.click();
97
+ }
98
+ async addQueryBuilderIntoPartialView() {
99
+ await this.queryBuilderButton.click({ force: true });
100
+ // TODO: Remove this timeout when frontend validation is implemented
101
+ await this.page.waitForTimeout(1000);
102
+ await this.whereDropdown.click({ force: true });
103
+ await this.createDateOption.click();
104
+ await this.submitBtn.click();
105
+ }
106
+ async insertDictionaryItem(dictionaryName) {
107
+ await this.insertBtn.click();
108
+ await this.dictionaryItemBtn.click();
109
+ await this.caretDictionaryBtn.click();
110
+ await this.page.getByLabel(dictionaryName).click();
111
+ await this.submitBtn.click();
112
+ }
113
+ }
114
+ exports.PartialViewUiHelper = PartialViewUiHelper;
115
+ //# sourceMappingURL=PartialViewUiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PartialViewUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PartialViewUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator} from \"@playwright/test\"\n\nexport class PartialViewUiHelper {\n\n private readonly page: Page;\n private readonly newEmptyPartialViewBtn: Locator;\n private readonly newPartialViewFromSnippetBtn: Locator;\n private readonly createFolderBtn: Locator;\n private readonly saveBtn: Locator;\n private readonly partialViewContentTxt: Locator;\n private readonly partialViewNameTxt: Locator;\n private readonly breadcrumbButton: Locator;\n private readonly folderNameTxt: Locator;\n private readonly caretBtn: Locator;\n private readonly deleteBtn: Locator;\n private readonly confirmToDeleteBtn: Locator;\n private readonly removeFolderBtn: Locator;\n private readonly confirmCreateFolderBtn: Locator;\n private readonly queryBuilderButton: Locator;\n private readonly whereDropdown: Locator;\n private readonly createDateOption: Locator;\n private readonly submitBtn: Locator;\n private readonly insertBtn: Locator;\n private readonly dictionaryItemBtn: Locator;\n private readonly caretDictionaryBtn: Locator; \n\n constructor(page: Page) {\n this.page = page;\n this.newEmptyPartialViewBtn = page.getByLabel('New empty partial view');\n this.newPartialViewFromSnippetBtn = page.getByLabel('New partial view from snippet...');\n this.createFolderBtn = page.getByLabel('Create folder');\n this.saveBtn = page.getByLabel('Save');\n this.partialViewNameTxt = page.getByLabel('template name');\n this.folderNameTxt = page.getByRole('textbox', { name: 'Enter folder name...' });\n this.caretBtn = page.locator('umb-tree-item').filter({ hasText: 'Partial Views' }).locator('#caret-button');\n this.deleteBtn = page.getByRole('button', { name: 'Delete' });\n this.confirmToDeleteBtn = page.locator('#confirm').getByLabel('Delete');\n this.removeFolderBtn = page.getByLabel('Remove folder');\n this.confirmCreateFolderBtn = page.locator('#confirm').getByLabel('Create folder');\n this.breadcrumbButton = page.getByLabel('Breadcrumb');\n this.partialViewContentTxt = page.locator('textarea.inputarea');\n this.queryBuilderButton = page.locator('#query-builder-button').getByLabel('Query builder');\n this.whereDropdown = page.locator('#property-alias-dropdown').getByLabel('Property alias');\n this.createDateOption = page.locator('#property-alias-dropdown').getByText('CreateDate');\n this.submitBtn = page.getByLabel('Submit');\n this.insertBtn = page.getByLabel('Choose value to insert');\n this.dictionaryItemBtn = page.getByLabel('Insert Dictionary item');\n this.caretDictionaryBtn = page.locator('umb-tree-picker-modal').locator('#caret-button');\n }\n\n async openActionsMenuForName(name : string) {\n await this.page.locator('umb-tree-item').locator('[label=\"' + name + '\"] >> [label=\"Open actions menu\"]').click();\n }\n\n async openActionsMenuAtRoot() {\n await this.openActionsMenuForName(\"Partial Views\");\n }\n\n async clickRootFolderCaretButton() {\n await this.caretBtn.click();\n }\n\n async clickCaretButtonForName(name : string) {\n await this.page.locator('umb-tree-item >> [label=\"' + name + '\"]').locator('#caret-button').click();\n }\n\n async clickNewEmptyPartialViewButton() {\n await this.newEmptyPartialViewBtn.click();\n }\n\n async clickNewPartialViewFromSnippetButton() {\n await this.newPartialViewFromSnippetBtn.click();\n }\n\n async clickSaveButton() {\n await this.saveBtn.click();\n }\n\n async clickBreadcrumbButton() {\n await this.breadcrumbButton.click();\n }\n\n async createNewFolder(folderName : string) {\n await this.createFolderBtn.click();\n await this.folderNameTxt.fill(folderName);\n await this.confirmCreateFolderBtn.click();\n }\n\n async enterPartialViewName(partialViewName : string) {\n await this.partialViewNameTxt.clear();\n await this.partialViewNameTxt.fill(partialViewName);\n }\n\n async enterPartialViewContent(partialViewContent : string) {\n await this.partialViewContentTxt.clear();\n await this.partialViewContentTxt.fill(partialViewContent);\n }\n\n async openPartialViewFileAtRoot(partialViewFileName : string) {\n await this.caretBtn.click();\n await this.page.getByLabel(partialViewFileName).click();\n }\n\n async deletePartialViewFile() {\n await this.deleteBtn.click();\n await this.confirmToDeleteBtn.click();\n }\n\n async removeFolder() {\n await this.removeFolderBtn.click();\n await this.confirmToDeleteBtn.click();\n }\n\n async addQueryBuilderIntoPartialView() {\n await this.queryBuilderButton.click({force:true});\n // TODO: Remove this timeout when frontend validation is implemented\n await this.page.waitForTimeout(1000);\n await this.whereDropdown.click({force:true});\n await this.createDateOption.click();\n await this.submitBtn.click();\n }\n\n async insertDictionaryItem(dictionaryName : string) {\n await this.insertBtn.click();\n await this.dictionaryItemBtn.click();\n await this.caretDictionaryBtn.click();\n await this.page.getByLabel(dictionaryName).click();\n await this.submitBtn.click();\n }\n}"]}
@@ -2,18 +2,21 @@ import { ApiHelpers } from "./ApiHelpers";
2
2
  export declare class StylesheetApiHelper {
3
3
  api: ApiHelpers;
4
4
  constructor(api: ApiHelpers);
5
- ensureNameNotExistsAtRoot(name: string): Promise<void | import("playwright-core").APIResponse | null>;
6
- nameExistsAtRoot(name: string): Promise<boolean>;
7
- exists(path: string): Promise<boolean>;
8
5
  get(path: string): Promise<any>;
9
- getByNameAtRoot(name: string): Promise<any>;
6
+ doesExist(path: string): Promise<boolean>;
10
7
  create(name: string, content: string, parentPath?: string): Promise<string | undefined>;
11
8
  update(stylesheet: any): Promise<import("playwright-core").APIResponse>;
12
9
  delete(path: string): Promise<import("playwright-core").APIResponse>;
10
+ getChildren(path: string): Promise<any>;
11
+ doesNameExist(name: string): Promise<any>;
12
+ getAllAtRoot(): Promise<import("playwright-core").APIResponse>;
13
+ getByName(name: string): Promise<any>;
14
+ ensureNameNotExists(name: string): Promise<import("playwright-core").APIResponse | null>;
15
+ private recurseChildren;
16
+ private recurseDeleteChildren;
13
17
  getFolder(path: string): Promise<any>;
14
- folderExists(path: string): Promise<boolean>;
15
- getFolderChildren(path: string): Promise<any>;
18
+ doesFolderExist(path: string): Promise<boolean>;
16
19
  createFolder(name: string, parentPath?: string): Promise<any>;
17
20
  deleteFolder(path: string): Promise<import("playwright-core").APIResponse>;
18
- recurseFolderChildren(path: string): Promise<void>;
21
+ doesRuleNameExist(path: string, name: string): Promise<boolean>;
19
22
  }
@@ -6,40 +6,6 @@ class StylesheetApiHelper {
6
6
  constructor(api) {
7
7
  this.api = api;
8
8
  }
9
- async ensureNameNotExistsAtRoot(name) {
10
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');
11
- const json = await response.json();
12
- for (const sb of json.items) {
13
- if (sb.name === name) {
14
- if (sb.isFolder == false) {
15
- return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + sb.path);
16
- }
17
- else {
18
- if (sb.hasChildren == true) {
19
- return await this.recurseFolderChildren(sb.path);
20
- }
21
- else {
22
- return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + sb.path);
23
- }
24
- }
25
- }
26
- }
27
- return null;
28
- }
29
- async nameExistsAtRoot(name) {
30
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');
31
- const json = await response.json();
32
- for (const sb of json.items) {
33
- if (sb.name === name) {
34
- return true;
35
- }
36
- }
37
- return false;
38
- }
39
- async exists(path) {
40
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + path);
41
- return response.status() === 200;
42
- }
43
9
  async get(path) {
44
10
  const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + path);
45
11
  const json = await response.json();
@@ -48,22 +14,9 @@ class StylesheetApiHelper {
48
14
  }
49
15
  return null;
50
16
  }
51
- async getByNameAtRoot(name) {
52
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');
53
- const json = await response.json();
54
- for (const sb of json.items) {
55
- if (sb.name === name) {
56
- if (sb.isFolder === false) {
57
- const stylesheet = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + sb.path);
58
- return await stylesheet.json();
59
- }
60
- else {
61
- const stylesheetFolder = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + sb.path);
62
- return await stylesheetFolder.json();
63
- }
64
- }
65
- }
66
- return null;
17
+ async doesExist(path) {
18
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + path);
19
+ return response.status() === 200;
67
20
  }
68
21
  async create(name, content, parentPath = "") {
69
22
  const stylesheetData = {
@@ -86,6 +39,93 @@ class StylesheetApiHelper {
86
39
  async delete(path) {
87
40
  return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + path);
88
41
  }
42
+ async getChildren(path) {
43
+ const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/stylesheet/children?path=${path}&skip=0&take=10000`);
44
+ const items = await response.json();
45
+ return items.items;
46
+ }
47
+ async doesNameExist(name) {
48
+ return await this.getByName(name);
49
+ }
50
+ async getAllAtRoot() {
51
+ return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');
52
+ }
53
+ async getByName(name) {
54
+ const rootStylesheet = await this.getAllAtRoot();
55
+ const jsonStylesheet = await rootStylesheet.json();
56
+ for (const stylesheet of jsonStylesheet.items) {
57
+ if (stylesheet.name === name) {
58
+ if (stylesheet.isFolder) {
59
+ return this.getFolder(stylesheet.path);
60
+ }
61
+ else {
62
+ return this.get(stylesheet.path);
63
+ }
64
+ }
65
+ else if (stylesheet.isFolder && stylesheet.hasChildren) {
66
+ const result = await this.recurseChildren(name, stylesheet.path, false);
67
+ if (result) {
68
+ return result;
69
+ }
70
+ }
71
+ }
72
+ return false;
73
+ }
74
+ async ensureNameNotExists(name) {
75
+ const rootStylesheet = await this.getAllAtRoot();
76
+ const jsonStylesheet = await rootStylesheet.json();
77
+ for (const stylesheet of jsonStylesheet.items) {
78
+ if (stylesheet.name === name) {
79
+ if (stylesheet.isFolder) {
80
+ return await this.recurseDeleteChildren(stylesheet);
81
+ }
82
+ return await this.delete(stylesheet.path);
83
+ }
84
+ else if (stylesheet.hasChildren) {
85
+ await this.recurseChildren(name, stylesheet.path, true);
86
+ }
87
+ }
88
+ return null;
89
+ }
90
+ async recurseChildren(name, path, toDelete) {
91
+ const items = await this.getChildren(path);
92
+ for (const child of items) {
93
+ if (child.name === name) {
94
+ if (!toDelete) {
95
+ if (child.isFolder) {
96
+ return await this.getFolder(child.path);
97
+ }
98
+ return await this.get(child.path);
99
+ }
100
+ if (child.isFolder) {
101
+ return await this.recurseDeleteChildren(child);
102
+ }
103
+ return await this.delete(child.path);
104
+ }
105
+ else if (child.hasChildren) {
106
+ return await this.recurseChildren(name, child.path, toDelete);
107
+ }
108
+ }
109
+ return false;
110
+ }
111
+ async recurseDeleteChildren(stylesheetFolder) {
112
+ if (!stylesheetFolder.hasChildren) {
113
+ return await this.deleteFolder(stylesheetFolder.path);
114
+ }
115
+ const items = await this.getChildren(stylesheetFolder.path);
116
+ for (const child of items) {
117
+ if (child.hasChildren) {
118
+ await this.recurseDeleteChildren(child);
119
+ }
120
+ else if (child.isFolder) {
121
+ await this.deleteFolder(child.path);
122
+ }
123
+ else {
124
+ await this.delete(child.path);
125
+ }
126
+ }
127
+ return await this.deleteFolder(stylesheetFolder.path);
128
+ }
89
129
  // Folder
90
130
  async getFolder(path) {
91
131
  const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);
@@ -95,18 +135,10 @@ class StylesheetApiHelper {
95
135
  }
96
136
  return null;
97
137
  }
98
- async folderExists(path) {
138
+ async doesFolderExist(path) {
99
139
  const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);
100
140
  return response.status() === 200;
101
141
  }
102
- async getFolderChildren(path) {
103
- const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/children?path=' + path + '&skip=0&take=10000');
104
- const json = await response.json();
105
- if (json !== null) {
106
- return json;
107
- }
108
- return null;
109
- }
110
142
  async createFolder(name, parentPath = "") {
111
143
  const stylesheetFolderData = {
112
144
  "name": name,
@@ -120,25 +152,15 @@ class StylesheetApiHelper {
120
152
  async deleteFolder(path) {
121
153
  return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);
122
154
  }
123
- async recurseFolderChildren(path) {
124
- const parentStylesheet = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/children?path=' + path + '&skip=0&take=10000');
125
- const itemsJson = await parentStylesheet.json();
126
- for (const child of itemsJson.items) {
127
- if (child.path !== null) {
128
- if (child.isFolder == true) {
129
- if (child.hasChildren == true) {
130
- await this.recurseFolderChildren(child.path);
131
- }
132
- else {
133
- await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + child.path);
134
- }
135
- }
136
- else {
137
- await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/?path=' + child.path);
138
- }
155
+ async doesRuleNameExist(path, name) {
156
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/rich-text/rules?path=' + path);
157
+ const rulesJson = await response.json();
158
+ for (const rule of rulesJson.rules) {
159
+ if (rule.name === name) {
160
+ return true;
139
161
  }
140
162
  }
141
- await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);
163
+ return false;
142
164
  }
143
165
  }
144
166
  exports.StylesheetApiHelper = StylesheetApiHelper;
@@ -1 +1 @@
1
- {"version":3,"file":"StylesheetApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/StylesheetApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class StylesheetApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExistsAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.isFolder == false) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + sb.path);\n } else {\n if (sb.hasChildren == true) {\n return await this.recurseFolderChildren(sb.path);\n } else {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + sb.path);\n }\n }\n }\n }\n return null;\n }\n\n async nameExistsAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n return false;\n }\n\n async exists(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + path);\n return response.status() === 200;\n }\n\n async get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + path);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getByNameAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.isFolder === false) {\n const stylesheet = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + sb.path);\n return await stylesheet.json();\n } else {\n const stylesheetFolder = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + sb.path);\n return await stylesheetFolder.json();\n }\n }\n }\n return null;\n }\n\n async create(name: string, content: string, parentPath: string = \"\") {\n const stylesheetData = {\n \"name\": name,\n \"content\": content,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet', stylesheetData);\n // Returns the path of the created stylesheet\n return response.headers().location.split(\"=\").pop();\n }\n\n async update(stylesheet) {\n const stylesheetData = {\n \"name\": stylesheet.name,\n \"content\": stylesheet.content,\n \"existingPath\": stylesheet.path\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet', stylesheetData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + path);\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async folderExists(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);\n return response.status() === 200;\n }\n\n\n async getFolderChildren(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/children?path=' + path + '&skip=0&take=10000');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async createFolder(name: string, parentPath = \"\") {\n const stylesheetFolderData =\n {\n \"name\": name,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder', stylesheetFolderData);\n // Returns the id of the created stylesheetFolder\n const json = await response.json();\n return json.path;\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);\n }\n\n async recurseFolderChildren(path: string) {\n const parentStylesheet = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/children?path=' + path + '&skip=0&take=10000');\n const itemsJson = await parentStylesheet.json();\n\n for (const child of itemsJson.items) {\n if (child.path !== null) {\n if (child.isFolder == true) {\n if (child.hasChildren == true) {\n await this.recurseFolderChildren(child.path);\n } else {\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + child.path);\n }\n } else {\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/?path=' + child.path);\n }\n }\n }\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);\n }\n}"]}
1
+ {"version":3,"file":"StylesheetApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/StylesheetApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class StylesheetApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + path);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async doesExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + path);\n return response.status() === 200;\n }\n\n async create(name: string, content: string, parentPath: string = \"\") {\n const stylesheetData = {\n \"name\": name,\n \"content\": content,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet', stylesheetData);\n // Returns the path of the created stylesheet\n return response.headers().location.split(\"=\").pop();\n }\n\n async update(stylesheet) {\n const stylesheetData = {\n \"name\": stylesheet.name,\n \"content\": stylesheet.content,\n \"existingPath\": stylesheet.path\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet', stylesheetData);\n }\n\n async delete(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet?path=' + path);\n }\n\n async getChildren(path: string) {\n const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/tree/stylesheet/children?path=${path}&skip=0&take=10000`);\n const items = await response.json();\n return items.items;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/stylesheet/root?skip=0&take=10000');\n }\n\n async getByName(name: string) {\n const rootStylesheet = await this.getAllAtRoot();\n const jsonStylesheet = await rootStylesheet.json();\n\n for (const stylesheet of jsonStylesheet.items) {\n if (stylesheet.name === name) {\n if (stylesheet.isFolder) {\n return this.getFolder(stylesheet.path);\n } else {\n return this.get(stylesheet.path);\n }\n } else if (stylesheet.isFolder && stylesheet.hasChildren) {\n const result = await this.recurseChildren(name, stylesheet.path, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootStylesheet = await this.getAllAtRoot();\n const jsonStylesheet = await rootStylesheet.json();\n\n for (const stylesheet of jsonStylesheet.items) {\n if (stylesheet.name === name) {\n if (stylesheet.isFolder) {\n return await this.recurseDeleteChildren(stylesheet);\n }\n return await this.delete(stylesheet.path);\n } else if (stylesheet.hasChildren) {\n await this.recurseChildren(name, stylesheet.path, true);\n\n }\n }\n return null;\n }\n\n private async recurseChildren(name: string, path: string, toDelete: boolean) {\n const items = await this.getChildren(path);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n if (child.isFolder) {\n return await this.getFolder(child.path);\n }\n return await this.get(child.path);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.path);\n\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.path, toDelete);\n }\n }\n return false;\n }\n\n private async recurseDeleteChildren(stylesheetFolder) {\n if (!stylesheetFolder.hasChildren) {\n return await this.deleteFolder(stylesheetFolder.path);\n }\n const items = await this.getChildren(stylesheetFolder.path);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child);\n } else if (child.isFolder) {\n await this.deleteFolder(child.path);\n } else {\n await this.delete(child.path);\n }\n }\n return await this.deleteFolder(stylesheetFolder.path);\n }\n\n // Folder\n async getFolder(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async doesFolderExist(path: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);\n return response.status() === 200;\n }\n\n async createFolder(name: string, parentPath = \"\") {\n const stylesheetFolderData =\n {\n \"name\": name,\n \"parentPath\": parentPath\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder', stylesheetFolderData);\n // Returns the id of the created stylesheetFolder\n const json = await response.json();\n return json.path;\n }\n\n async deleteFolder(path: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/folder?path=' + path);\n }\n\n async doesRuleNameExist(path: string, name : string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/stylesheet/rich-text/rules?path=' + path);\n const rulesJson = await response.json();\n\n for (const rule of rulesJson.rules) {\n if (rule.name === name) {\n return true;\n }\n }\n return false; \n }\n}"]}
@@ -0,0 +1,34 @@
1
+ import { Page } from "@playwright/test";
2
+ export declare class StylesheetUiHelper {
3
+ private readonly page;
4
+ private readonly newStylesheetFileBtn;
5
+ private readonly newRTEStylesheetFileBtn;
6
+ private readonly createFolderBtn;
7
+ private readonly saveBtn;
8
+ private readonly submitBtn;
9
+ private readonly stylesheetNameTxt;
10
+ private readonly addRuleBtn;
11
+ private readonly ruleNameTxt;
12
+ private readonly ruleSelectorTxt;
13
+ private readonly ruleStylesTxt;
14
+ private readonly folderNameTxt;
15
+ private readonly caretBtn;
16
+ private readonly deleteBtn;
17
+ private readonly confirmToDeleteBtn;
18
+ private readonly removeFolderBtn;
19
+ private readonly confirmCreateFolderBtn;
20
+ constructor(page: Page);
21
+ openActionsMenuForName(name: string): Promise<void>;
22
+ openActionsMenuAtRoot(): Promise<void>;
23
+ clickRootFolderCaretButton(): Promise<void>;
24
+ clickCaretButtonForName(name: string): Promise<void>;
25
+ clickNewStylesheetFileButton(): Promise<void>;
26
+ clickNewRTEStylesheetFileButton(): Promise<void>;
27
+ clickSaveButton(): Promise<void>;
28
+ createNewFolder(folderName: string): Promise<void>;
29
+ enterStylesheetName(stylesheetName: string): Promise<void>;
30
+ addNewRule(ruleName: string, ruleSelector: string, ruleStyles: string): Promise<void>;
31
+ openStylesheetFileByNameAtRoot(stylesheetFileName: string): Promise<void>;
32
+ deleteStylesheetFile(): Promise<void>;
33
+ removeFolder(): Promise<void>;
34
+ }
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StylesheetUiHelper = void 0;
4
+ class StylesheetUiHelper {
5
+ page;
6
+ newStylesheetFileBtn;
7
+ newRTEStylesheetFileBtn;
8
+ createFolderBtn;
9
+ saveBtn;
10
+ submitBtn;
11
+ stylesheetNameTxt;
12
+ addRuleBtn;
13
+ ruleNameTxt;
14
+ ruleSelectorTxt;
15
+ ruleStylesTxt;
16
+ folderNameTxt;
17
+ caretBtn;
18
+ deleteBtn;
19
+ confirmToDeleteBtn;
20
+ removeFolderBtn;
21
+ confirmCreateFolderBtn;
22
+ constructor(page) {
23
+ this.page = page;
24
+ this.newStylesheetFileBtn = page.getByLabel('New stylesheet file');
25
+ this.newRTEStylesheetFileBtn = page.getByLabel('New Rich Text Editor style sheet file');
26
+ this.createFolderBtn = page.getByLabel('Create folder');
27
+ this.saveBtn = page.getByLabel('Save');
28
+ this.submitBtn = page.getByLabel('Submit');
29
+ this.stylesheetNameTxt = page.getByLabel('stylesheet name');
30
+ this.addRuleBtn = page.getByLabel('Add rule');
31
+ this.ruleNameTxt = page.getByLabel('Rule name');
32
+ this.ruleSelectorTxt = page.getByLabel('Rule selector');
33
+ this.ruleStylesTxt = page.getByLabel('Rule styles');
34
+ this.folderNameTxt = page.getByRole('textbox', { name: 'Enter folder name...' });
35
+ this.caretBtn = page.locator('umb-tree-item').filter({ hasText: 'Stylesheets' }).locator('#caret-button');
36
+ this.deleteBtn = page.getByRole('button', { name: 'Delete' });
37
+ this.confirmToDeleteBtn = page.locator('#confirm').getByLabel('Delete');
38
+ this.removeFolderBtn = page.getByLabel('Remove folder');
39
+ this.confirmCreateFolderBtn = page.locator('#confirm').getByLabel('Create folder');
40
+ }
41
+ async openActionsMenuForName(name) {
42
+ await this.page.locator('umb-tree-item').locator('[label="' + name + '"] >> [label="Open actions menu"]').click();
43
+ }
44
+ async openActionsMenuAtRoot() {
45
+ await this.openActionsMenuForName("Stylesheets");
46
+ }
47
+ async clickRootFolderCaretButton() {
48
+ await this.caretBtn.click();
49
+ }
50
+ async clickCaretButtonForName(name) {
51
+ await this.page.locator('umb-tree-item >> [label="' + name + '"]').locator('#caret-button').click();
52
+ }
53
+ async clickNewStylesheetFileButton() {
54
+ await this.newStylesheetFileBtn.click();
55
+ }
56
+ async clickNewRTEStylesheetFileButton() {
57
+ await this.newRTEStylesheetFileBtn.click();
58
+ }
59
+ async clickSaveButton() {
60
+ await this.saveBtn.click();
61
+ }
62
+ async createNewFolder(folderName) {
63
+ await this.createFolderBtn.click();
64
+ await this.folderNameTxt.fill(folderName);
65
+ await this.confirmCreateFolderBtn.click();
66
+ }
67
+ async enterStylesheetName(stylesheetName) {
68
+ await this.stylesheetNameTxt.clear();
69
+ await this.stylesheetNameTxt.fill(stylesheetName);
70
+ }
71
+ async addNewRule(ruleName, ruleSelector, ruleStyles) {
72
+ await this.addRuleBtn.click();
73
+ await this.ruleNameTxt.clear();
74
+ await this.ruleNameTxt.fill(ruleName);
75
+ await this.ruleSelectorTxt.clear();
76
+ await this.ruleSelectorTxt.fill(ruleSelector);
77
+ await this.ruleStylesTxt.clear();
78
+ await this.ruleStylesTxt.fill(ruleStyles);
79
+ await this.submitBtn.click();
80
+ }
81
+ async openStylesheetFileByNameAtRoot(stylesheetFileName) {
82
+ await this.caretBtn.click();
83
+ await this.page.getByLabel(stylesheetFileName).click();
84
+ }
85
+ async deleteStylesheetFile() {
86
+ await this.deleteBtn.click();
87
+ await this.confirmToDeleteBtn.click();
88
+ }
89
+ async removeFolder() {
90
+ await this.removeFolderBtn.click();
91
+ await this.confirmToDeleteBtn.click();
92
+ }
93
+ }
94
+ exports.StylesheetUiHelper = StylesheetUiHelper;
95
+ //# sourceMappingURL=StylesheetUiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StylesheetUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/StylesheetUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator} from \"@playwright/test\"\n\nexport class StylesheetUiHelper {\n\n private readonly page: Page;\n private readonly newStylesheetFileBtn: Locator;\n private readonly newRTEStylesheetFileBtn: Locator;\n private readonly createFolderBtn: Locator;\n private readonly saveBtn: Locator;\n private readonly submitBtn: Locator;\n private readonly stylesheetNameTxt: Locator;\n private readonly addRuleBtn: Locator;\n private readonly ruleNameTxt: Locator;\n private readonly ruleSelectorTxt: Locator;\n private readonly ruleStylesTxt: Locator;\n private readonly folderNameTxt: Locator;\n private readonly caretBtn: Locator;\n private readonly deleteBtn: Locator;\n private readonly confirmToDeleteBtn: Locator;\n private readonly removeFolderBtn: Locator;\n private readonly confirmCreateFolderBtn: Locator;\n\n\n constructor(page: Page) {\n this.page = page;\n this.newStylesheetFileBtn = page.getByLabel('New stylesheet file');\n this.newRTEStylesheetFileBtn = page.getByLabel('New Rich Text Editor style sheet file');\n this.createFolderBtn = page.getByLabel('Create folder');\n this.saveBtn = page.getByLabel('Save');\n this.submitBtn = page.getByLabel('Submit');\n this.stylesheetNameTxt = page.getByLabel('stylesheet name');\n this.addRuleBtn = page.getByLabel('Add rule');\n this.ruleNameTxt = page.getByLabel('Rule name');\n this.ruleSelectorTxt = page.getByLabel('Rule selector');\n this.ruleStylesTxt = page.getByLabel('Rule styles');\n this.folderNameTxt = page.getByRole('textbox', { name: 'Enter folder name...' });\n this.caretBtn = page.locator('umb-tree-item').filter({ hasText: 'Stylesheets' }).locator('#caret-button');\n this.deleteBtn = page.getByRole('button', { name: 'Delete' });\n this.confirmToDeleteBtn = page.locator('#confirm').getByLabel('Delete');\n this.removeFolderBtn = page.getByLabel('Remove folder');\n this.confirmCreateFolderBtn = page.locator('#confirm').getByLabel('Create folder');\n }\n\n async openActionsMenuForName(name : string) {\n await this.page.locator('umb-tree-item').locator('[label=\"' + name + '\"] >> [label=\"Open actions menu\"]').click();\n }\n\n async openActionsMenuAtRoot() {\n await this.openActionsMenuForName(\"Stylesheets\");\n }\n\n async clickRootFolderCaretButton() {\n await this.caretBtn.click();\n }\n\n async clickCaretButtonForName(name: string) {\n await this.page.locator('umb-tree-item >> [label=\"' + name + '\"]').locator('#caret-button').click();\n }\n\n async clickNewStylesheetFileButton() {\n await this.newStylesheetFileBtn.click();\n }\n\n async clickNewRTEStylesheetFileButton() {\n await this.newRTEStylesheetFileBtn.click();\n }\n\n async clickSaveButton() {\n await this.saveBtn.click();\n }\n\n async createNewFolder(folderName : string) {\n await this.createFolderBtn.click();\n await this.folderNameTxt.fill(folderName);\n await this.confirmCreateFolderBtn.click();\n }\n\n async enterStylesheetName(stylesheetName : string) {\n await this.stylesheetNameTxt.clear();\n await this.stylesheetNameTxt.fill(stylesheetName);\n }\n\n async addNewRule(ruleName : string, ruleSelector: string, ruleStyles: string) {\n await this.addRuleBtn.click();\n await this.ruleNameTxt.clear();\n await this.ruleNameTxt.fill(ruleName);\n await this.ruleSelectorTxt.clear();\n await this.ruleSelectorTxt.fill(ruleSelector);\n await this.ruleStylesTxt.clear();\n await this.ruleStylesTxt.fill(ruleStyles);\n await this.submitBtn.click();\n }\n\n async openStylesheetFileByNameAtRoot(stylesheetFileName : string) {\n await this.caretBtn.click();\n await this.page.getByLabel(stylesheetFileName).click();\n }\n\n async deleteStylesheetFile() {\n await this.deleteBtn.click();\n await this.confirmToDeleteBtn.click();\n }\n\n async removeFolder() {\n await this.removeFolderBtn.click();\n await this.confirmToDeleteBtn.click();\n }\n}"]}
@@ -1,6 +1,10 @@
1
1
  import { Page } from "@playwright/test";
2
+ import { StylesheetUiHelper } from "./StylesheetUiHelper";
3
+ import { PartialViewUiHelper } from "./PartialViewUiHelper";
2
4
  export declare class UiHelpers {
3
5
  page: Page;
6
+ stylesheet: StylesheetUiHelper;
7
+ partialView: PartialViewUiHelper;
4
8
  constructor(page: Page);
5
9
  clickButton(buttonName: string): Promise<void>;
6
10
  goToSection(sectionName: string): Promise<void>;
@@ -11,4 +15,6 @@ export declare class UiHelpers {
11
15
  isErrorNotificationVisible(): Promise<void>;
12
16
  goToTemplate(templateName: string): Promise<void>;
13
17
  goToScript(scriptName: string): Promise<void>;
18
+ goToBackOffice(): Promise<void>;
19
+ waitForTimeout(timeout: number): Promise<void>;
14
20
  }
@@ -3,10 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UiHelpers = void 0;
4
4
  const test_1 = require("@playwright/test");
5
5
  const ConstantHelper_1 = require("./ConstantHelper");
6
+ const StylesheetUiHelper_1 = require("./StylesheetUiHelper");
7
+ const umbraco_config_1 = require("../../umbraco.config");
8
+ const PartialViewUiHelper_1 = require("./PartialViewUiHelper");
6
9
  class UiHelpers {
7
10
  page;
11
+ stylesheet;
12
+ partialView;
8
13
  constructor(page) {
9
14
  this.page = page;
15
+ this.stylesheet = new StylesheetUiHelper_1.StylesheetUiHelper(this.page);
16
+ this.partialView = new PartialViewUiHelper_1.PartialViewUiHelper(this.page);
10
17
  }
11
18
  async clickButton(buttonName) {
12
19
  await this.page.getByRole('button', { name: buttonName }).click();
@@ -45,6 +52,12 @@ class UiHelpers {
45
52
  await this.page.locator('umb-tree-item', { hasText: 'Scripts' }).locator('#caret-button').click();
46
53
  await this.page.locator('umb-tree-item').getByLabel(scriptName).click();
47
54
  }
55
+ async goToBackOffice() {
56
+ await this.page.goto(umbraco_config_1.umbracoConfig.environment.baseUrl + '/umbraco');
57
+ }
58
+ async waitForTimeout(timeout) {
59
+ await this.page.waitForTimeout(timeout);
60
+ }
48
61
  }
49
62
  exports.UiHelpers = UiHelpers;
50
63
  //# sourceMappingURL=UiHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UiHelpers.js","sourceRoot":"","sources":["../../../lib/helpers/UiHelpers.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAC7C,qDAAgD;AAEhD,MAAa,SAAS;IAElB,IAAI,CAAO;IAEX,YAAY,IAAU;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAkB;QAChC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAmB;QACjC,KAAK,IAAI,OAAO,IAAI,+BAAc,CAAC,QAAQ,EAAE;YACzC,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SAC3E;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,oBAA4B;QACnD,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,WAAmB,EAAE,UAAe,IAAI;QAC3D,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,WAAW,IAAI,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAmB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,WAAW,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,4BAA4B;QAC9B,OAAO,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACzG,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC5B,OAAO,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACvG,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,YAAY,CAAC,YAAoB;QACnC,MAAM,IAAI,CAAC,WAAW,CAAC,+BAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAC,OAAO,EAAE,WAAW,EAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;QAClG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;IAC9E,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,UAAU,CAAC,UAAkB;QAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,+BAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAC,OAAO,EAAE,SAAS,EAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;QAChG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5E,CAAC;CACJ;AArDD,8BAqDC","sourcesContent":["import {expect, Page} from \"@playwright/test\"\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class UiHelpers {\n\n page: Page;\n\n constructor(page: Page) {\n this.page = page;\n }\n\n async clickButton(buttonName: string) {\n await this.page.getByRole('button', {name: buttonName}).click();\n }\n\n async goToSection(sectionName: string) {\n for (let section in ConstantHelper.sections) {\n await expect(this.page.getByRole('tab', {name: section})).toBeVisible();\n }\n await this.page.getByRole('tab', {name: sectionName}).click();\n }\n\n async goToSettingsTreeItem(settingsTreeItemName: string) {\n await this.goToSection('Settings');\n await this.page.getByLabel(settingsTreeItemName).click();\n }\n\n async clickDataElement(elementName: string, options: any = null) {\n await this.page.click(`[data-element=\"${elementName}\"]`, options);\n }\n\n async getDataElement(elementName: string) {\n return this.page.locator(`[data-element=\"${elementName}\"]`);\n }\n\n async isSuccessNotificationVisible() {\n return await expect(this.page.locator('uui-toast-notification >> [color=\"positive\"]')).toBeVisible();\n }\n\n async isErrorNotificationVisible() {\n return await expect(this.page.locator('uui-toast-notification >> [color=\"danger\"]')).toBeVisible();\n }\n\n // Will only work for root templates\n async goToTemplate(templateName: string) {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.page.locator('umb-tree-item', {hasText: 'Templates'}).locator('#caret-button').click();\n await this.page.locator('umb-tree-item').getByLabel(templateName).click();\n }\n \n // Will only work for root scripts\n async goToScript(scriptName: string){\n await this.goToSection(ConstantHelper.sections.settings);\n await this.page.locator('umb-tree-item', {hasText: 'Scripts'}).locator('#caret-button').click();\n await this.page.locator('umb-tree-item').getByLabel(scriptName).click();\n }\n}"]}
1
+ {"version":3,"file":"UiHelpers.js","sourceRoot":"","sources":["../../../lib/helpers/UiHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["import {expect, Page} from \"@playwright/test\"\nimport {ConstantHelper} from \"./ConstantHelper\";\nimport { StylesheetUiHelper } from \"./StylesheetUiHelper\";\nimport {umbracoConfig} from \"../../umbraco.config\";\nimport { PartialViewUiHelper } from \"./PartialViewUiHelper\";\n\n\nexport class UiHelpers {\n\n page: Page;\n stylesheet: StylesheetUiHelper;\n partialView: PartialViewUiHelper;\n\n constructor(page: Page) {\n this.page = page;\n this.stylesheet = new StylesheetUiHelper(this.page);\n this.partialView = new PartialViewUiHelper(this.page); \n }\n\n async clickButton(buttonName: string) {\n await this.page.getByRole('button', {name: buttonName}).click();\n }\n\n async goToSection(sectionName: string) {\n for (let section in ConstantHelper.sections) {\n await expect(this.page.getByRole('tab', {name: section})).toBeVisible();\n }\n await this.page.getByRole('tab', {name: sectionName}).click();\n }\n\n async goToSettingsTreeItem(settingsTreeItemName: string) {\n await this.goToSection('Settings');\n await this.page.getByLabel(settingsTreeItemName).click();\n }\n\n async clickDataElement(elementName: string, options: any = null) {\n await this.page.click(`[data-element=\"${elementName}\"]`, options);\n }\n\n async getDataElement(elementName: string) {\n return this.page.locator(`[data-element=\"${elementName}\"]`);\n }\n\n async isSuccessNotificationVisible() {\n return await expect(this.page.locator('uui-toast-notification >> [color=\"positive\"]')).toBeVisible();\n }\n\n async isErrorNotificationVisible() {\n return await expect(this.page.locator('uui-toast-notification >> [color=\"danger\"]')).toBeVisible();\n }\n\n // Will only work for root templates\n async goToTemplate(templateName: string) {\n await this.goToSection(ConstantHelper.sections.settings);\n await this.page.locator('umb-tree-item', {hasText: 'Templates'}).locator('#caret-button').click();\n await this.page.locator('umb-tree-item').getByLabel(templateName).click();\n }\n \n // Will only work for root scripts\n async goToScript(scriptName: string){\n await this.goToSection(ConstantHelper.sections.settings);\n await this.page.locator('umb-tree-item', {hasText: 'Scripts'}).locator('#caret-button').click();\n await this.page.locator('umb-tree-item').getByLabel(scriptName).click();\n }\n\n async goToBackOffice() {\n await this.page.goto(umbracoConfig.environment.baseUrl + '/umbraco');\n }\n\n async waitForTimeout(timeout : number) {\n await this.page.waitForTimeout(timeout);\n }\n}"]}
@@ -1 +1 @@
1
- {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/tslib/tslib.d.ts","../node_modules/playwright-core/types/protocol.d.ts","../node_modules/playwright-core/types/structs.d.ts","../node_modules/playwright-core/types/types.d.ts","../node_modules/playwright/types/test.d.ts","../node_modules/playwright/test.d.ts","../node_modules/@playwright/test/index.d.ts","../umbraco.config.ts","../lib/helpers/ReportHelper.ts","../lib/helpers/TelemetryDataApiHelper.ts","../lib/helpers/LanguageApiHelper.ts","../lib/helpers/DictionaryApiHelper.ts","../lib/helpers/RelationType.ts","../lib/helpers/UserGroupApiHelper.ts","../lib/helpers/TemplateApiHelper.ts","../lib/helpers/AliasHelper.ts","../lib/helpers/DataTypeApiHelper.ts","../lib/helpers/UserApiHelper.ts","../lib/helpers/TemporaryFileApiHelper.ts","../lib/helpers/DocumentApiHelper.ts","../lib/helpers/PackageApiHelper.ts","../lib/helpers/ScriptApiHelper.ts","../lib/helpers/PartialViewApiHelper.ts","../lib/helpers/StylesheetApiHelper.ts","../lib/helpers/LogViewerApiHelper.ts","../lib/helpers/ApiHelpers.ts","../lib/helpers/ConstantHelper.ts","../lib/helpers/UiHelpers.ts","../lib/helpers/testExtension.ts","../lib/helpers/index.ts","../lib/index.ts","../node_modules/@types/node/ts4.8/assert.d.ts","../node_modules/@types/node/ts4.8/assert/strict.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/ts4.8/globals.d.ts","../node_modules/@types/node/ts4.8/async_hooks.d.ts","../node_modules/@types/node/ts4.8/buffer.d.ts","../node_modules/@types/node/ts4.8/child_process.d.ts","../node_modules/@types/node/ts4.8/cluster.d.ts","../node_modules/@types/node/ts4.8/console.d.ts","../node_modules/@types/node/ts4.8/constants.d.ts","../node_modules/@types/node/ts4.8/crypto.d.ts","../node_modules/@types/node/ts4.8/dgram.d.ts","../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../node_modules/@types/node/ts4.8/dns.d.ts","../node_modules/@types/node/ts4.8/dns/promises.d.ts","../node_modules/@types/node/ts4.8/domain.d.ts","../node_modules/@types/node/ts4.8/dom-events.d.ts","../node_modules/@types/node/ts4.8/events.d.ts","../node_modules/@types/node/ts4.8/fs.d.ts","../node_modules/@types/node/ts4.8/fs/promises.d.ts","../node_modules/@types/node/ts4.8/http.d.ts","../node_modules/@types/node/ts4.8/http2.d.ts","../node_modules/@types/node/ts4.8/https.d.ts","../node_modules/@types/node/ts4.8/inspector.d.ts","../node_modules/@types/node/ts4.8/module.d.ts","../node_modules/@types/node/ts4.8/net.d.ts","../node_modules/@types/node/ts4.8/os.d.ts","../node_modules/@types/node/ts4.8/path.d.ts","../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../node_modules/@types/node/ts4.8/process.d.ts","../node_modules/@types/node/ts4.8/punycode.d.ts","../node_modules/@types/node/ts4.8/querystring.d.ts","../node_modules/@types/node/ts4.8/readline.d.ts","../node_modules/@types/node/ts4.8/readline/promises.d.ts","../node_modules/@types/node/ts4.8/repl.d.ts","../node_modules/@types/node/ts4.8/stream.d.ts","../node_modules/@types/node/ts4.8/stream/promises.d.ts","../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../node_modules/@types/node/ts4.8/stream/web.d.ts","../node_modules/@types/node/ts4.8/string_decoder.d.ts","../node_modules/@types/node/ts4.8/test.d.ts","../node_modules/@types/node/ts4.8/timers.d.ts","../node_modules/@types/node/ts4.8/timers/promises.d.ts","../node_modules/@types/node/ts4.8/tls.d.ts","../node_modules/@types/node/ts4.8/trace_events.d.ts","../node_modules/@types/node/ts4.8/tty.d.ts","../node_modules/@types/node/ts4.8/url.d.ts","../node_modules/@types/node/ts4.8/util.d.ts","../node_modules/@types/node/ts4.8/v8.d.ts","../node_modules/@types/node/ts4.8/vm.d.ts","../node_modules/@types/node/ts4.8/wasi.d.ts","../node_modules/@types/node/ts4.8/worker_threads.d.ts","../node_modules/@types/node/ts4.8/zlib.d.ts","../node_modules/@types/node/ts4.8/globals.global.d.ts","../node_modules/@types/node/ts4.8/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"3260e3386d9535b804205bdddb5618a9a27735bd22927f48ad54363abcd23d45","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"14a84fbe4ec531dcbaf5d2594fd95df107258e60ae6c6a076404f13c3f66f28e","08f466e76048fdad5b11cfea3e71f14dd81392831483f098c92715d62f2855db","8d13c86e53ac8a5ed2c205497dbf9446fa854c7b8a23288de62cb797fb4ca486","eacf1ea6f35270dcfba0a5931e753616734d11ccddc6b2c2a9767b38058a3279",{"version":"de6d2e55195064e4460f0dcc4d560f4aaf84c202290dd4b5306affaf4eb4cb1d","affectsGlobalScope":true},"3f00324f263189b385c3a9383b1f4dae6237697bcf0801f96aa35c340512d79c","ec8997c2e5cea26befc76e7bf990750e96babb16977673a9ff3b5c0575d01e48",{"version":"c93350324664aeec0217741e56c4950435f58ebba7c4589b99deec894b33d67b","signature":"22fea8c28752d1a841afd4b34f886b6ddd7701982943de4a92694a371824b818"},{"version":"e598311445ebe4378af1cb00abfb7222659a7851aaa3d9549c64628857ab4838","signature":"d9e590839d9b5259ea85c4b7b8abedd8459bfadad3aa2ab707df5f06d838a879"},{"version":"16bc0fd4adf6f83440a9f0401fc64bd45c73ca0e5e3efa7a3df152e884420ccd","signature":"f4c914bf76148b4feba712d9e6b2b33b52ee537448d9002e48faaadd12d8f1e9"},{"version":"7a4a8fa9be7dd4a0eacf6fcc79982805195f24c62c8419af326ec22b1a534345","signature":"9631597fd2063026932c3a99645b68682cef2081aead168c0416026468c64388"},{"version":"64ea91ed2aae8aeb8e45e53934fe756af0d7fa3a05172300a3b9404a6192c390","signature":"cd091e88f3461938d185a251e0146b32d0be6b29ad3deab8baa1f5d4fc1597d8"},{"version":"08a26c1d6bbbfb44ef2484675d96f5bf36d427b0e6edad61b38d68858a884098","signature":"e7bfac5c6a6ab4c11b72866e86bbf758f38a8c7c983ea10787a54f10460ae013"},{"version":"7426201624290b4bbe597a6e4bdaa8a5b84ec70333e28b324ee95f51af08c296","signature":"7407519d4b5aefa9a1d72b84833ebc8bf55ae8f45cc37ee2448eb1ee1e61deb3"},{"version":"4c712a0845e307a40ee6f5513712e15acfcaaac0abdd6f7dddbdfb0590329aee","signature":"b383d07b6cfbbf9750f1dd5e56d6d68f2ca0355305d47a05a30185c24786f62a"},{"version":"e17f07b028b14f80d6c625470844ec2f52f37efcd58f80dffc607fb8653cd4d0","signature":"7c9803e8b478726fc90dac32492eb1904cf2ddf6cacc9393a823a1f56c8de2b6"},{"version":"324203f35fe8c0bb25b887cd8325314e672f884200fe9b6b93c8dc9eba09fcee","signature":"0eafac28ea0186d351cdda9458653d1dbd6f283bd0f8c571d7169b1dbcf7e978"},{"version":"39fbeac72c4027903be763529c6caa5dc5c1c4ee359b6f6adfdc912484e57116","signature":"e024dceb8caff34db9cfba3b2ac19170b0afc1b817a0b66e22e0141b34e2fc6e"},{"version":"95b1d0701ff22a984ce1b67910110194ed14ffa433b44a3be5111174d5695559","signature":"b3e9372b4dbae48465582902ca7446cd9ef9dae6092670eaa18af04d5c089c00"},{"version":"fadb42657de31f353a17a9cce4ca0bdb0424b58179197ce97f1f49313b35df93","signature":"4af44936bc7df88f3d8bbf0b250cf4fd76ad9d38bd2884db6ca9b0c97c42ce99"},{"version":"d609d8b0a013e2645316b975ab68855dfbd72cbd5311e0093c4f14d87defd34f","signature":"2698823199b9e32187daacb96108ed9a06e913d2e5347bf99ea2c1d1d33df20a"},{"version":"7a36aa9524ddda8bf096aefc2add840b999c739a6f9c162308bf4df67b1ea38e","signature":"deccd4cbb6aff120ec5e2ddc0b7ea148c882c6c90ac4fdd5b782fb22c69fd4b5"},{"version":"88a8deea4903f2b6219f77a2f8c30b1277852441f4f36d447f58acc9f565298f","signature":"f6bcea6d0ed15c89143a3362fc8d4f8f523da6c4da16bc4eef2859cb1b0be90d"},{"version":"961e703fe7be2fa3a307ccaf8e381de7444d22a6417bb3b811fbb59341ee3c6f","signature":"52ed0834eed3548ac5adff54c0ffb7cc33496d90f8aef9ba30dca85bc005d6c9"},{"version":"f1bd24334e503e833a2cecf306de16ba4c5cf2fefd6fda9d57c19d838f6cb8ec","signature":"35d0dad48d46ff699954fd32afe947a9191acfd3a0dbf1d9d75f4f8785d41cc3"},{"version":"8c2ac162973c67413b8a99dbcd493f0c35b341426a522e7422bdb510b0632ca7","signature":"e60e1e97c3bbcfcd8b1c9a1beff849fc749146da4fe2d17479c1e20a5cbacc6b"},{"version":"2cd71417c382c2f417294dfa0e34c1ed314b6976480087f7dd7980b793484a47","signature":"bb8f4231e89b77b07df78175e69051078407d14ad055fad1cf54aae3e2317567"},{"version":"f78f01d9d91f235cc7115fca9b3ba166128b6ff90efbfc31547aeb7960969330","signature":"0d9f56d99a1a600934a6a5e117dbcec7d88be7314d0b915ae34a3f3e852d0527"},{"version":"94ed2d1240b347c3f620642cde781b2048a7d17d5cf957e2379088a39d35418f","signature":"302280c749ac14a35a70667829db1fb7118cc298f4a9c98dbde1a69899158aeb"},{"version":"0ae539fcb9305ceed033478dad6057ca783cd05639a5ffec46236b181329b73d","signature":"fb2248233522d52bc64ce2a6cbbb7a48063c27fe937586687f86ec9e59f356be"},{"version":"b9181bea4a29329594d5c5a53bec78507fcc67ad0c5afa2a580dc51d6f19a4f7","signature":"4f7d54c603949113f45505330caae6f41e8dbb59841d4ae20b42307dc4579835"},"09df3b4f1c937f02e7fee2836d4c4d7a63e66db70fd4d4e97126f4542cc21d9d","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"4d719cfab49ae4045d15cb6bed0f38ad3d7d6eb7f277d2603502a0f862ca3182","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"5a856afb15f9dc9983faa391dde989826995a33983c1cccb173e9606688e9709","affectsGlobalScope":true},"546ab07e19116d935ad982e76a223275b53bff7771dab94f433b7ab04652936e","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"aefb5a4a209f756b580eb53ea771cca8aad411603926f307a5e5b8ec6b16dcf6","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","daece0d85f8783595463f509f7d82b03b2c210cc064cc793096b5f9c73a6db43","b86e1a45b29437f3a99bad4147cb9fe2357617e8008c0484568e5bb5138d6e13","b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","42c431e7965b641106b5e25ab3283aa4865ca7bb9909610a2abfa6226e4348be","0b7e732af0a9599be28c091d6bd1cb22c856ec0d415d4749c087c3881ca07a56","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"bd27e23daf177808fc4b00c86f7d67d64dc42bbc3c855ea41bfed7a529150a1d","affectsGlobalScope":true},"3b4c85eea12187de9929a76792b98406e8778ce575caca8c574f06da82622c54","f788131a39c81e0c9b9e463645dd7132b5bc1beb609b0e31e5c1ceaea378b4df","0c236069ce7bded4f6774946e928e4b3601894d294054af47a553f7abcafe2c1","21894466693f64957b9bd4c80fa3ec7fdfd4efa9d1861e070aca23f10220c9b2","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"6ec93c745c5e3e25e278fa35451bf18ef857f733de7e57c15e7920ac463baa2a","affectsGlobalScope":true},"a5fe4cc622c3bf8e09ababde5f4096ceac53163eefcd95e9cd53f062ff9bb67a","30c2ec6abf6aaa60eb4f32fb1235531506b7961c6d1bdc7430711aec8fd85295","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"603df4e91a0c2fd815c6619927468373fb00b6c13066334982ee684f5c7d40b2","affectsGlobalScope":true},{"version":"d48009cbe8a30a504031cc82e1286f78fed33b7a42abf7602c23b5547b382563","affectsGlobalScope":true},"7aaeb5e62f90e1b2be0fc4844df78cdb1be15c22b427bc6c39d57308785b8f10","3ba30205a029ebc0c91d7b1ab4da73f6277d730ca1fc6692d5a9144c6772c76b","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","458b216959c231df388a5de9dcbcafd4b4ca563bc3784d706d0455467d7d4942","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","f8c87b19eae111f8720b0345ab301af8d81add39621b63614dfc2d15fd6f140a","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"24ba151e213906027e2b1f5223d33575a3612b0234a0e2b56119520bbe0e594b","affectsGlobalScope":true},{"version":"cbf046714f3a3ba2544957e1973ac94aa819fa8aa668846fa8de47eb1c41b0b2","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eae74e3d50820f37c72c0679fed959cd1e63c98f6a146a55b8c4361582fa6a52","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"aed89e3c18f4c659ee8153a76560dffda23e2d801e1e60d7a67abd84bc555f8d","affectsGlobalScope":true},{"version":"527e6e7c1e60184879fe97517f0d51dbfab72c4625cef50179f27f46d7fd69a1","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","2f940651c2f30e6b29f8743fae3f40b7b1c03615184f837132b56ea75edad08b","5749c327c3f789f658072f8340786966c8b05ea124a56c1d8d60e04649495a4d",{"version":"c9d62b2a51b2ff166314d8be84f6881a7fcbccd37612442cf1c70d27d5352f50","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"652ee9c5103e89102d87bc20d167a02a0e3e5e53665674466c8cfea8a9e418c7"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"emitDeclarationOnly":false,"esModuleInterop":false,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":1,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitAny":false,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"strictPropertyInitialization":false,"target":99},"fileIdsList":[[43,152],[43,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,123,152],[43,68,152],[43,49,68,152],[43,49,69,152],[43,58,68,69,70,71,152],[43,49,72,152],[43,72,152],[48,152],[74,152],[109,152],[110,115,143,152],[111,122,123,130,140,151,152],[111,112,122,130,152],[113,152],[114,115,123,131,152],[115,140,148,152],[116,118,122,130,152],[117,152],[118,119,152],[122,152],[120,122,152],[122,123,124,140,151,152],[122,123,124,137,140,143,152],[107,152,156],[152],[118,122,125,130,140,151,152],[122,123,125,126,130,140,148,151,152],[125,127,140,148,151,152],[74,75,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158],[122,128,152],[129,151,152,156],[118,122,130,140,152],[131,152],[132,152],[109,133,152],[134,150,152,156],[135,152],[136,152],[122,137,138,152],[137,139,152,154],[110,122,140,141,142,143,152],[110,140,142,152],[140,141,152],[143,152],[144,152],[109,140,152],[122,146,147,152],[146,147,152],[115,130,140,148,152],[149,152],[130,150,152],[110,125,136,151,152],[115,152],[140,152,153],[129,152,154],[152,155],[110,115,122,124,133,140,151,152,154,156],[140,152,157],[46,152],[44,45,111,122,123,140,152],[47,152],[84,88,151,152],[84,140,151,152],[79,152],[81,84,148,151,152],[130,148,152],[152,159],[79,152,159],[81,84,130,151,152],[76,77,80,83,110,122,140,151,152],[76,82,152],[80,84,110,143,151,152,159],[110,152,159],[100,110,152,159],[78,79,152,159],[84,152],[78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,101,102,103,104,105,106,152],[84,91,92,152],[82,84,92,93,152],[83,152],[76,79,84,152],[84,88,92,93,152],[88,152],[82,84,87,151,152],[76,81,82,84,88,91,152],[110,140,152],[79,84,100,110,152,156,159],[46,49,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],[46,68],[68],[49,68],[46,49],[58,68,69,70,71],[49,72],[72]],"referencedMap":[[58,1],[68,2],[69,1],[59,3],[54,3],[62,3],[53,3],[67,3],[63,3],[65,3],[55,3],[51,4],[64,3],[66,3],[52,3],[57,3],[61,3],[70,5],[60,3],[56,3],[72,6],[71,7],[73,8],[49,9],[74,10],[75,10],[109,11],[110,12],[111,13],[112,14],[113,15],[114,16],[115,17],[116,18],[117,19],[118,20],[119,20],[121,21],[120,22],[122,21],[123,23],[124,24],[108,25],[158,26],[125,27],[126,28],[127,29],[159,30],[128,31],[129,32],[130,33],[131,34],[132,35],[133,36],[134,37],[135,38],[136,39],[137,40],[138,40],[139,41],[140,42],[142,43],[141,44],[143,45],[144,46],[145,47],[146,48],[147,49],[148,50],[149,51],[150,52],[151,53],[152,54],[153,55],[154,56],[155,57],[156,58],[157,59],[44,26],[45,60],[46,61],[48,62],[47,60],[43,26],[8,26],[9,26],[11,26],[10,26],[2,26],[12,26],[13,26],[14,26],[15,26],[16,26],[17,26],[18,26],[19,26],[3,26],[4,26],[23,26],[20,26],[21,26],[22,26],[24,26],[25,26],[26,26],[5,26],[27,26],[28,26],[29,26],[30,26],[6,26],[31,26],[32,26],[33,26],[34,26],[7,26],[35,26],[40,26],[41,26],[36,26],[37,26],[38,26],[39,26],[1,26],[42,26],[91,63],[98,64],[90,63],[105,65],[82,66],[81,67],[104,68],[99,69],[102,70],[84,71],[83,72],[79,73],[78,74],[101,75],[80,76],[85,77],[86,26],[89,77],[76,26],[107,78],[106,77],[93,79],[94,80],[96,81],[92,82],[95,83],[100,68],[87,84],[88,85],[97,86],[77,87],[103,88],[50,1]],"exportedModulesMap":[[68,89],[59,90],[54,90],[62,91],[53,90],[67,91],[63,90],[65,90],[55,90],[51,92],[64,90],[66,90],[52,90],[57,90],[61,90],[70,93],[60,90],[56,90],[72,94],[71,95],[73,96],[49,9],[74,10],[75,10],[109,11],[110,12],[111,13],[112,14],[113,15],[114,16],[115,17],[116,18],[117,19],[118,20],[119,20],[121,21],[120,22],[122,21],[123,23],[124,24],[108,25],[158,26],[125,27],[126,28],[127,29],[159,30],[128,31],[129,32],[130,33],[131,34],[132,35],[133,36],[134,37],[135,38],[136,39],[137,40],[138,40],[139,41],[140,42],[142,43],[141,44],[143,45],[144,46],[145,47],[146,48],[147,49],[148,50],[149,51],[150,52],[151,53],[152,54],[153,55],[154,56],[155,57],[156,58],[157,59],[44,26],[45,60],[46,61],[48,62],[47,60],[43,26],[8,26],[9,26],[11,26],[10,26],[2,26],[12,26],[13,26],[14,26],[15,26],[16,26],[17,26],[18,26],[19,26],[3,26],[4,26],[23,26],[20,26],[21,26],[22,26],[24,26],[25,26],[26,26],[5,26],[27,26],[28,26],[29,26],[30,26],[6,26],[31,26],[32,26],[33,26],[34,26],[7,26],[35,26],[40,26],[41,26],[36,26],[37,26],[38,26],[39,26],[1,26],[42,26],[91,63],[98,64],[90,63],[105,65],[82,66],[81,67],[104,68],[99,69],[102,70],[84,71],[83,72],[79,73],[78,74],[101,75],[80,76],[85,77],[86,26],[89,77],[76,26],[107,78],[106,77],[93,79],[94,80],[96,81],[92,82],[95,83],[100,68],[87,84],[88,85],[97,86],[77,87],[103,88]],"semanticDiagnosticsPerFile":[58,68,69,59,54,62,53,67,63,65,55,51,64,66,52,57,61,70,60,56,72,71,73,49,74,75,109,110,111,112,113,114,115,116,117,118,119,121,120,122,123,124,108,158,125,126,127,159,128,129,130,131,132,133,134,135,136,137,138,139,140,142,141,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,44,45,46,48,47,43,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,23,20,21,22,24,25,26,5,27,28,29,30,6,31,32,33,34,7,35,40,41,36,37,38,39,1,42,91,98,90,105,82,81,104,99,102,84,83,79,78,101,80,85,86,89,76,107,106,93,94,96,92,95,100,87,88,97,77,103,50],"latestChangedDtsFile":"./lib/index.d.ts"},"version":"4.8.3"}
1
+ {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/tslib/tslib.d.ts","../node_modules/playwright-core/types/protocol.d.ts","../node_modules/playwright-core/types/structs.d.ts","../node_modules/playwright-core/types/types.d.ts","../node_modules/playwright/types/test.d.ts","../node_modules/playwright/test.d.ts","../node_modules/@playwright/test/index.d.ts","../umbraco.config.ts","../lib/helpers/ReportHelper.ts","../lib/helpers/TelemetryDataApiHelper.ts","../lib/helpers/LanguageApiHelper.ts","../lib/helpers/DictionaryApiHelper.ts","../lib/helpers/RelationType.ts","../lib/helpers/UserGroupApiHelper.ts","../lib/helpers/TemplateApiHelper.ts","../lib/helpers/AliasHelper.ts","../lib/helpers/DataTypeApiHelper.ts","../lib/helpers/UserApiHelper.ts","../lib/helpers/TemporaryFileApiHelper.ts","../lib/helpers/DocumentApiHelper.ts","../lib/helpers/PackageApiHelper.ts","../lib/helpers/ScriptApiHelper.ts","../lib/helpers/PartialViewApiHelper.ts","../lib/helpers/StylesheetApiHelper.ts","../lib/helpers/LogViewerApiHelper.ts","../lib/helpers/ApiHelpers.ts","../lib/helpers/ConstantHelper.ts","../lib/helpers/StylesheetUiHelper.ts","../lib/helpers/PartialViewUiHelper.ts","../lib/helpers/UiHelpers.ts","../lib/helpers/testExtension.ts","../lib/helpers/index.ts","../lib/index.ts","../node_modules/@types/node/ts4.8/assert.d.ts","../node_modules/@types/node/ts4.8/assert/strict.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/ts4.8/globals.d.ts","../node_modules/@types/node/ts4.8/async_hooks.d.ts","../node_modules/@types/node/ts4.8/buffer.d.ts","../node_modules/@types/node/ts4.8/child_process.d.ts","../node_modules/@types/node/ts4.8/cluster.d.ts","../node_modules/@types/node/ts4.8/console.d.ts","../node_modules/@types/node/ts4.8/constants.d.ts","../node_modules/@types/node/ts4.8/crypto.d.ts","../node_modules/@types/node/ts4.8/dgram.d.ts","../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../node_modules/@types/node/ts4.8/dns.d.ts","../node_modules/@types/node/ts4.8/dns/promises.d.ts","../node_modules/@types/node/ts4.8/domain.d.ts","../node_modules/@types/node/ts4.8/dom-events.d.ts","../node_modules/@types/node/ts4.8/events.d.ts","../node_modules/@types/node/ts4.8/fs.d.ts","../node_modules/@types/node/ts4.8/fs/promises.d.ts","../node_modules/@types/node/ts4.8/http.d.ts","../node_modules/@types/node/ts4.8/http2.d.ts","../node_modules/@types/node/ts4.8/https.d.ts","../node_modules/@types/node/ts4.8/inspector.d.ts","../node_modules/@types/node/ts4.8/module.d.ts","../node_modules/@types/node/ts4.8/net.d.ts","../node_modules/@types/node/ts4.8/os.d.ts","../node_modules/@types/node/ts4.8/path.d.ts","../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../node_modules/@types/node/ts4.8/process.d.ts","../node_modules/@types/node/ts4.8/punycode.d.ts","../node_modules/@types/node/ts4.8/querystring.d.ts","../node_modules/@types/node/ts4.8/readline.d.ts","../node_modules/@types/node/ts4.8/readline/promises.d.ts","../node_modules/@types/node/ts4.8/repl.d.ts","../node_modules/@types/node/ts4.8/stream.d.ts","../node_modules/@types/node/ts4.8/stream/promises.d.ts","../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../node_modules/@types/node/ts4.8/stream/web.d.ts","../node_modules/@types/node/ts4.8/string_decoder.d.ts","../node_modules/@types/node/ts4.8/test.d.ts","../node_modules/@types/node/ts4.8/timers.d.ts","../node_modules/@types/node/ts4.8/timers/promises.d.ts","../node_modules/@types/node/ts4.8/tls.d.ts","../node_modules/@types/node/ts4.8/trace_events.d.ts","../node_modules/@types/node/ts4.8/tty.d.ts","../node_modules/@types/node/ts4.8/url.d.ts","../node_modules/@types/node/ts4.8/util.d.ts","../node_modules/@types/node/ts4.8/v8.d.ts","../node_modules/@types/node/ts4.8/vm.d.ts","../node_modules/@types/node/ts4.8/wasi.d.ts","../node_modules/@types/node/ts4.8/worker_threads.d.ts","../node_modules/@types/node/ts4.8/zlib.d.ts","../node_modules/@types/node/ts4.8/globals.global.d.ts","../node_modules/@types/node/ts4.8/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"3260e3386d9535b804205bdddb5618a9a27735bd22927f48ad54363abcd23d45","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"14a84fbe4ec531dcbaf5d2594fd95df107258e60ae6c6a076404f13c3f66f28e","08f466e76048fdad5b11cfea3e71f14dd81392831483f098c92715d62f2855db","8d13c86e53ac8a5ed2c205497dbf9446fa854c7b8a23288de62cb797fb4ca486","eacf1ea6f35270dcfba0a5931e753616734d11ccddc6b2c2a9767b38058a3279",{"version":"de6d2e55195064e4460f0dcc4d560f4aaf84c202290dd4b5306affaf4eb4cb1d","affectsGlobalScope":true},"3f00324f263189b385c3a9383b1f4dae6237697bcf0801f96aa35c340512d79c","ec8997c2e5cea26befc76e7bf990750e96babb16977673a9ff3b5c0575d01e48",{"version":"c93350324664aeec0217741e56c4950435f58ebba7c4589b99deec894b33d67b","signature":"22fea8c28752d1a841afd4b34f886b6ddd7701982943de4a92694a371824b818"},{"version":"e598311445ebe4378af1cb00abfb7222659a7851aaa3d9549c64628857ab4838","signature":"d9e590839d9b5259ea85c4b7b8abedd8459bfadad3aa2ab707df5f06d838a879"},{"version":"16bc0fd4adf6f83440a9f0401fc64bd45c73ca0e5e3efa7a3df152e884420ccd","signature":"f4c914bf76148b4feba712d9e6b2b33b52ee537448d9002e48faaadd12d8f1e9"},{"version":"7a4a8fa9be7dd4a0eacf6fcc79982805195f24c62c8419af326ec22b1a534345","signature":"9631597fd2063026932c3a99645b68682cef2081aead168c0416026468c64388"},{"version":"64ea91ed2aae8aeb8e45e53934fe756af0d7fa3a05172300a3b9404a6192c390","signature":"cd091e88f3461938d185a251e0146b32d0be6b29ad3deab8baa1f5d4fc1597d8"},{"version":"08a26c1d6bbbfb44ef2484675d96f5bf36d427b0e6edad61b38d68858a884098","signature":"e7bfac5c6a6ab4c11b72866e86bbf758f38a8c7c983ea10787a54f10460ae013"},{"version":"7426201624290b4bbe597a6e4bdaa8a5b84ec70333e28b324ee95f51af08c296","signature":"7407519d4b5aefa9a1d72b84833ebc8bf55ae8f45cc37ee2448eb1ee1e61deb3"},{"version":"4c712a0845e307a40ee6f5513712e15acfcaaac0abdd6f7dddbdfb0590329aee","signature":"b383d07b6cfbbf9750f1dd5e56d6d68f2ca0355305d47a05a30185c24786f62a"},{"version":"e17f07b028b14f80d6c625470844ec2f52f37efcd58f80dffc607fb8653cd4d0","signature":"7c9803e8b478726fc90dac32492eb1904cf2ddf6cacc9393a823a1f56c8de2b6"},{"version":"324203f35fe8c0bb25b887cd8325314e672f884200fe9b6b93c8dc9eba09fcee","signature":"0eafac28ea0186d351cdda9458653d1dbd6f283bd0f8c571d7169b1dbcf7e978"},{"version":"39fbeac72c4027903be763529c6caa5dc5c1c4ee359b6f6adfdc912484e57116","signature":"e024dceb8caff34db9cfba3b2ac19170b0afc1b817a0b66e22e0141b34e2fc6e"},{"version":"95b1d0701ff22a984ce1b67910110194ed14ffa433b44a3be5111174d5695559","signature":"b3e9372b4dbae48465582902ca7446cd9ef9dae6092670eaa18af04d5c089c00"},{"version":"fadb42657de31f353a17a9cce4ca0bdb0424b58179197ce97f1f49313b35df93","signature":"4af44936bc7df88f3d8bbf0b250cf4fd76ad9d38bd2884db6ca9b0c97c42ce99"},{"version":"d609d8b0a013e2645316b975ab68855dfbd72cbd5311e0093c4f14d87defd34f","signature":"2698823199b9e32187daacb96108ed9a06e913d2e5347bf99ea2c1d1d33df20a"},{"version":"7a36aa9524ddda8bf096aefc2add840b999c739a6f9c162308bf4df67b1ea38e","signature":"deccd4cbb6aff120ec5e2ddc0b7ea148c882c6c90ac4fdd5b782fb22c69fd4b5"},{"version":"d6917bd112fe04f6219a97fb220870f35d0436b0c4faa283e66825d9286d5749","signature":"c9036817775dc8b9f4827c995ae5e30fe24368c99f18a1062b563b64bafcf92c"},{"version":"10b79acf9bb550d279a61a1f68c4482eb4136bf2c27c7cf992263b26e107be97","signature":"c6eda38ec935f15888bdb8866ee57086c7a61953173adfcdf72c272f9ce6f17a"},{"version":"f1bd24334e503e833a2cecf306de16ba4c5cf2fefd6fda9d57c19d838f6cb8ec","signature":"35d0dad48d46ff699954fd32afe947a9191acfd3a0dbf1d9d75f4f8785d41cc3"},{"version":"8c2ac162973c67413b8a99dbcd493f0c35b341426a522e7422bdb510b0632ca7","signature":"e60e1e97c3bbcfcd8b1c9a1beff849fc749146da4fe2d17479c1e20a5cbacc6b"},{"version":"2cd71417c382c2f417294dfa0e34c1ed314b6976480087f7dd7980b793484a47","signature":"bb8f4231e89b77b07df78175e69051078407d14ad055fad1cf54aae3e2317567"},{"version":"e482800001a65e89b18b3bc758e6b6c863816c2cc564f81d843f63aec226d04a","signature":"5a4bd3985275ebff0ac8836fc8dec8a4540bfbd6e693bc693fd55e288795e74e"},{"version":"cb0483aa477b994203af5462864939ca492aea4e3511d1310b2a2f3b8462cc50","signature":"76450050e80c5f886fcae3cd92e87e80f052d6c3974fe0724b4c8d266236b38e"},{"version":"cbf64c18d71f24cad552d42b5580d0c4d6f563e61095dbaa4d965e0c7fd57581","signature":"7bf05f199fa62d2ff14978fc1f2d9731b30773112cc8c3714d0abbc28e7065ac"},{"version":"94ed2d1240b347c3f620642cde781b2048a7d17d5cf957e2379088a39d35418f","signature":"302280c749ac14a35a70667829db1fb7118cc298f4a9c98dbde1a69899158aeb"},{"version":"0ae539fcb9305ceed033478dad6057ca783cd05639a5ffec46236b181329b73d","signature":"fb2248233522d52bc64ce2a6cbbb7a48063c27fe937586687f86ec9e59f356be"},{"version":"b9181bea4a29329594d5c5a53bec78507fcc67ad0c5afa2a580dc51d6f19a4f7","signature":"4f7d54c603949113f45505330caae6f41e8dbb59841d4ae20b42307dc4579835"},"09df3b4f1c937f02e7fee2836d4c4d7a63e66db70fd4d4e97126f4542cc21d9d","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"4d719cfab49ae4045d15cb6bed0f38ad3d7d6eb7f277d2603502a0f862ca3182","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"5a856afb15f9dc9983faa391dde989826995a33983c1cccb173e9606688e9709","affectsGlobalScope":true},"546ab07e19116d935ad982e76a223275b53bff7771dab94f433b7ab04652936e","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"aefb5a4a209f756b580eb53ea771cca8aad411603926f307a5e5b8ec6b16dcf6","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","daece0d85f8783595463f509f7d82b03b2c210cc064cc793096b5f9c73a6db43","b86e1a45b29437f3a99bad4147cb9fe2357617e8008c0484568e5bb5138d6e13","b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","42c431e7965b641106b5e25ab3283aa4865ca7bb9909610a2abfa6226e4348be","0b7e732af0a9599be28c091d6bd1cb22c856ec0d415d4749c087c3881ca07a56","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"bd27e23daf177808fc4b00c86f7d67d64dc42bbc3c855ea41bfed7a529150a1d","affectsGlobalScope":true},"3b4c85eea12187de9929a76792b98406e8778ce575caca8c574f06da82622c54","f788131a39c81e0c9b9e463645dd7132b5bc1beb609b0e31e5c1ceaea378b4df","0c236069ce7bded4f6774946e928e4b3601894d294054af47a553f7abcafe2c1","21894466693f64957b9bd4c80fa3ec7fdfd4efa9d1861e070aca23f10220c9b2","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"6ec93c745c5e3e25e278fa35451bf18ef857f733de7e57c15e7920ac463baa2a","affectsGlobalScope":true},"a5fe4cc622c3bf8e09ababde5f4096ceac53163eefcd95e9cd53f062ff9bb67a","30c2ec6abf6aaa60eb4f32fb1235531506b7961c6d1bdc7430711aec8fd85295","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"603df4e91a0c2fd815c6619927468373fb00b6c13066334982ee684f5c7d40b2","affectsGlobalScope":true},{"version":"d48009cbe8a30a504031cc82e1286f78fed33b7a42abf7602c23b5547b382563","affectsGlobalScope":true},"7aaeb5e62f90e1b2be0fc4844df78cdb1be15c22b427bc6c39d57308785b8f10","3ba30205a029ebc0c91d7b1ab4da73f6277d730ca1fc6692d5a9144c6772c76b","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","458b216959c231df388a5de9dcbcafd4b4ca563bc3784d706d0455467d7d4942","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","f8c87b19eae111f8720b0345ab301af8d81add39621b63614dfc2d15fd6f140a","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"24ba151e213906027e2b1f5223d33575a3612b0234a0e2b56119520bbe0e594b","affectsGlobalScope":true},{"version":"cbf046714f3a3ba2544957e1973ac94aa819fa8aa668846fa8de47eb1c41b0b2","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eae74e3d50820f37c72c0679fed959cd1e63c98f6a146a55b8c4361582fa6a52","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"aed89e3c18f4c659ee8153a76560dffda23e2d801e1e60d7a67abd84bc555f8d","affectsGlobalScope":true},{"version":"527e6e7c1e60184879fe97517f0d51dbfab72c4625cef50179f27f46d7fd69a1","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","2f940651c2f30e6b29f8743fae3f40b7b1c03615184f837132b56ea75edad08b","5749c327c3f789f658072f8340786966c8b05ea124a56c1d8d60e04649495a4d",{"version":"c9d62b2a51b2ff166314d8be84f6881a7fcbccd37612442cf1c70d27d5352f50","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"652ee9c5103e89102d87bc20d167a02a0e3e5e53665674466c8cfea8a9e418c7"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"emitDeclarationOnly":false,"esModuleInterop":false,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":1,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitAny":false,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"strictPropertyInitialization":false,"target":99},"fileIdsList":[[43,154],[43,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,125,154],[43,68,154],[43,49,154],[43,49,68,154],[43,49,50,69,70,71,154],[43,58,68,69,72,73,154],[43,49,74,154],[43,74,154],[48,154],[76,154],[111,154],[112,117,145,154],[113,124,125,132,142,153,154],[113,114,124,132,154],[115,154],[116,117,125,133,154],[117,142,150,154],[118,120,124,132,154],[119,154],[120,121,154],[124,154],[122,124,154],[124,125,126,142,153,154],[124,125,126,139,142,145,154],[109,154,158],[154],[120,124,127,132,142,153,154],[124,125,127,128,132,142,150,153,154],[127,129,142,150,153,154],[76,77,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160],[124,130,154],[131,153,154,158],[120,124,132,142,154],[133,154],[134,154],[111,135,154],[136,152,154,158],[137,154],[138,154],[124,139,140,154],[139,141,154,156],[112,124,142,143,144,145,154],[112,142,144,154],[142,143,154],[145,154],[146,154],[111,142,154],[124,148,149,154],[148,149,154],[117,132,142,150,154],[151,154],[132,152,154],[112,127,138,153,154],[117,154],[142,154,155],[131,154,156],[154,157],[112,117,124,126,135,142,153,154,156,158],[142,154,159],[46,154],[44,45,113,124,125,142,154],[47,154],[86,90,153,154],[86,142,153,154],[81,154],[83,86,150,153,154],[132,150,154],[154,161],[81,154,161],[83,86,132,153,154],[78,79,82,85,112,124,142,153,154],[78,84,154],[82,86,112,145,153,154,161],[112,154,161],[102,112,154,161],[80,81,154,161],[86,154],[80,81,82,83,84,85,86,87,88,90,91,92,93,94,95,96,97,98,99,100,101,103,104,105,106,107,108,154],[86,93,94,154],[84,86,94,95,154],[85,154],[78,81,86,154],[86,90,94,95,154],[90,154],[84,86,89,153,154],[78,83,84,86,90,93,154],[112,142,154],[81,86,102,112,154,158,161],[46,49,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],[46,68],[68],[49],[49,68],[46,49,70,71],[58,68,69,72,73],[49,74],[74]],"referencedMap":[[58,1],[68,2],[69,1],[59,3],[54,3],[62,3],[53,3],[67,3],[63,3],[65,3],[71,4],[55,3],[51,5],[64,3],[66,3],[70,4],[52,3],[57,3],[61,3],[72,6],[60,3],[56,3],[74,7],[73,8],[75,9],[49,10],[76,11],[77,11],[111,12],[112,13],[113,14],[114,15],[115,16],[116,17],[117,18],[118,19],[119,20],[120,21],[121,21],[123,22],[122,23],[124,22],[125,24],[126,25],[110,26],[160,27],[127,28],[128,29],[129,30],[161,31],[130,32],[131,33],[132,34],[133,35],[134,36],[135,37],[136,38],[137,39],[138,40],[139,41],[140,41],[141,42],[142,43],[144,44],[143,45],[145,46],[146,47],[147,48],[148,49],[149,50],[150,51],[151,52],[152,53],[153,54],[154,55],[155,56],[156,57],[157,58],[158,59],[159,60],[44,27],[45,61],[46,62],[48,63],[47,61],[43,27],[8,27],[9,27],[11,27],[10,27],[2,27],[12,27],[13,27],[14,27],[15,27],[16,27],[17,27],[18,27],[19,27],[3,27],[4,27],[23,27],[20,27],[21,27],[22,27],[24,27],[25,27],[26,27],[5,27],[27,27],[28,27],[29,27],[30,27],[6,27],[31,27],[32,27],[33,27],[34,27],[7,27],[35,27],[40,27],[41,27],[36,27],[37,27],[38,27],[39,27],[1,27],[42,27],[93,64],[100,65],[92,64],[107,66],[84,67],[83,68],[106,69],[101,70],[104,71],[86,72],[85,73],[81,74],[80,75],[103,76],[82,77],[87,78],[88,27],[91,78],[78,27],[109,79],[108,78],[95,80],[96,81],[98,82],[94,83],[97,84],[102,69],[89,85],[90,86],[99,87],[79,88],[105,89],[50,1]],"exportedModulesMap":[[68,90],[59,91],[54,91],[62,92],[53,91],[67,92],[63,91],[65,91],[71,93],[55,91],[51,94],[64,91],[66,91],[70,93],[52,91],[57,91],[61,91],[72,95],[60,91],[56,91],[74,96],[73,97],[75,98],[49,10],[76,11],[77,11],[111,12],[112,13],[113,14],[114,15],[115,16],[116,17],[117,18],[118,19],[119,20],[120,21],[121,21],[123,22],[122,23],[124,22],[125,24],[126,25],[110,26],[160,27],[127,28],[128,29],[129,30],[161,31],[130,32],[131,33],[132,34],[133,35],[134,36],[135,37],[136,38],[137,39],[138,40],[139,41],[140,41],[141,42],[142,43],[144,44],[143,45],[145,46],[146,47],[147,48],[148,49],[149,50],[150,51],[151,52],[152,53],[153,54],[154,55],[155,56],[156,57],[157,58],[158,59],[159,60],[44,27],[45,61],[46,62],[48,63],[47,61],[43,27],[8,27],[9,27],[11,27],[10,27],[2,27],[12,27],[13,27],[14,27],[15,27],[16,27],[17,27],[18,27],[19,27],[3,27],[4,27],[23,27],[20,27],[21,27],[22,27],[24,27],[25,27],[26,27],[5,27],[27,27],[28,27],[29,27],[30,27],[6,27],[31,27],[32,27],[33,27],[34,27],[7,27],[35,27],[40,27],[41,27],[36,27],[37,27],[38,27],[39,27],[1,27],[42,27],[93,64],[100,65],[92,64],[107,66],[84,67],[83,68],[106,69],[101,70],[104,71],[86,72],[85,73],[81,74],[80,75],[103,76],[82,77],[87,78],[88,27],[91,78],[78,27],[109,79],[108,78],[95,80],[96,81],[98,82],[94,83],[97,84],[102,69],[89,85],[90,86],[99,87],[79,88],[105,89]],"semanticDiagnosticsPerFile":[58,68,69,59,54,62,53,67,63,65,71,55,51,64,66,70,52,57,61,72,60,56,74,73,75,49,76,77,111,112,113,114,115,116,117,118,119,120,121,123,122,124,125,126,110,160,127,128,129,161,130,131,132,133,134,135,136,137,138,139,140,141,142,144,143,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,44,45,46,48,47,43,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,23,20,21,22,24,25,26,5,27,28,29,30,6,31,32,33,34,7,35,40,41,36,37,38,39,1,42,93,100,92,107,84,83,106,101,104,86,85,81,80,103,82,87,88,91,78,109,108,95,96,98,94,97,102,89,90,99,79,105,50],"latestChangedDtsFile":"./lib/index.d.ts"},"version":"4.8.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umbraco/playwright-testhelpers",
3
- "version": "2.0.0-beta.6",
3
+ "version": "2.0.0-beta.8",
4
4
  "description": "Test helpers for making playwright tests for Umbraco solutions",
5
5
  "main": "dist/lib/index.js",
6
6
  "files": ["dist/**/*"],