vita-playwright 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/.prettierrc +9 -0
  2. package/README.md +617 -0
  3. package/dist/index.d.ts +12 -0
  4. package/dist/index.js +26 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/src/helpers/api-helpers.d.ts +5 -0
  7. package/dist/src/helpers/api-helpers.js +52 -0
  8. package/dist/src/helpers/api-helpers.js.map +1 -0
  9. package/dist/src/helpers/ui-helpers.d.ts +24 -0
  10. package/dist/src/helpers/ui-helpers.js +172 -0
  11. package/dist/src/helpers/ui-helpers.js.map +1 -0
  12. package/dist/src/utils/api_axios.d.ts +5 -0
  13. package/dist/src/utils/api_axios.js +35 -0
  14. package/dist/src/utils/api_axios.js.map +1 -0
  15. package/dist/src/utils/azure_storage_methods.d.ts +4 -0
  16. package/dist/src/utils/azure_storage_methods.js +130 -0
  17. package/dist/src/utils/azure_storage_methods.js.map +1 -0
  18. package/dist/src/utils/comparisions.d.ts +12 -0
  19. package/dist/src/utils/comparisions.js +98 -0
  20. package/dist/src/utils/comparisions.js.map +1 -0
  21. package/dist/src/utils/date_utilitites.d.ts +9 -0
  22. package/dist/src/utils/date_utilitites.js +30 -0
  23. package/dist/src/utils/date_utilitites.js.map +1 -0
  24. package/dist/src/utils/document_utility.d.ts +8 -0
  25. package/dist/src/utils/document_utility.js +77 -0
  26. package/dist/src/utils/document_utility.js.map +1 -0
  27. package/dist/src/utils/email_sender.d.ts +14 -0
  28. package/dist/src/utils/email_sender.js +58 -0
  29. package/dist/src/utils/email_sender.js.map +1 -0
  30. package/dist/src/utils/keyvault_methods.d.ts +3 -0
  31. package/dist/src/utils/keyvault_methods.js +30 -0
  32. package/dist/src/utils/keyvault_methods.js.map +1 -0
  33. package/dist/src/utils/lighhouse_utility.d.ts +12 -0
  34. package/dist/src/utils/lighhouse_utility.js +132 -0
  35. package/dist/src/utils/lighhouse_utility.js.map +1 -0
  36. package/dist/src/utils/test_data.d.ts +9 -0
  37. package/dist/src/utils/test_data.js +142 -0
  38. package/dist/src/utils/test_data.js.map +1 -0
  39. package/dist/src/utils/xmlToJson.d.ts +3 -0
  40. package/dist/src/utils/xmlToJson.js +57 -0
  41. package/dist/src/utils/xmlToJson.js.map +1 -0
  42. package/index.ts +25 -0
  43. package/package.json +58 -0
  44. package/src/helpers/api-helpers.ts +38 -0
  45. package/src/helpers/ui-helpers.ts +148 -0
  46. package/src/utils/api_axios.ts +16 -0
  47. package/src/utils/azure_storage_methods.ts +171 -0
  48. package/src/utils/comparisions.ts +99 -0
  49. package/src/utils/date_utilitites.ts +39 -0
  50. package/src/utils/document_utility.ts +81 -0
  51. package/src/utils/email_sender.ts +36 -0
  52. package/src/utils/keyvault_methods.ts +15 -0
  53. package/src/utils/lighhouse_utility.ts +123 -0
  54. package/src/utils/test_data.ts +121 -0
  55. package/src/utils/xmlToJson.ts +41 -0
  56. package/tsconfig.json +106 -0
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ApiHelper = void 0;
13
+ const api_axios_1 = require("../utils/api_axios");
14
+ class ApiHelper {
15
+ static post(url, header, payload) {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ const config = {
18
+ method: 'post',
19
+ url: url,
20
+ headers: header,
21
+ data: payload,
22
+ };
23
+ const response = yield api_axios_1.TokenGenerators.request(config);
24
+ return response;
25
+ });
26
+ }
27
+ static get(url, header) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ const config = {
30
+ method: 'GET',
31
+ url: url,
32
+ headers: header,
33
+ };
34
+ const response = yield api_axios_1.TokenGenerators.request(config);
35
+ return response;
36
+ });
37
+ }
38
+ static put(url, header, payload) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ const config = {
41
+ method: 'put',
42
+ url: url,
43
+ headers: header,
44
+ data: payload,
45
+ };
46
+ const response = yield api_axios_1.TokenGenerators.request(config);
47
+ return response;
48
+ });
49
+ }
50
+ }
51
+ exports.ApiHelper = ApiHelper;
52
+ //# sourceMappingURL=api-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-helpers.js","sourceRoot":"","sources":["../../../src/helpers/api-helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAAqD;AAErD,MAAa,SAAS;IAClB,MAAM,CAAO,IAAI,CAAC,GAAQ,EAAE,MAAW,EAAE,OAAY;;YACjD,MAAM,MAAM,GAAG;gBACX,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,GAAG;gBACR,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,OAAO;aAChB,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,2BAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvD,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;IAED,MAAM,CAAO,GAAG,CAAC,GAAQ,EAAE,MAAW;;YAClC,MAAM,MAAM,GAAG;gBACX,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,GAAG;gBACR,OAAO,EAAE,MAAM;aAClB,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,2BAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvD,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;IAED,MAAM,CAAO,GAAG,CAAC,GAAQ,EAAE,MAAW,EAAE,OAAY;;YAChD,MAAM,MAAM,GAAG;gBACX,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,GAAG;gBACR,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,OAAO;aAChB,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,2BAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvD,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;CACJ;AAnCD,8BAmCC"}
@@ -0,0 +1,24 @@
1
+ import { BrowserContext } from 'playwright';
2
+ export declare class UIHelper {
3
+ page: any;
4
+ browser: BrowserContext;
5
+ constructor(page: any);
6
+ launchNonIncognito(chromePath: string): Promise<void>;
7
+ closeNonIncognito(): Promise<void>;
8
+ combineAllCookies(cookieJson: any): string;
9
+ filltheData(locator: any, data: any): Promise<void>;
10
+ clickonWebElement(locator: any): Promise<void>;
11
+ getInnerHTML(locator: any): Promise<any>;
12
+ getInnerText(locator: any): Promise<any>;
13
+ getText(locator: any): Promise<any>;
14
+ getAttribute(locator: any, attribute: any): Promise<any>;
15
+ evaluateJS(jsDOM: any): Promise<any>;
16
+ isElementPresent(locator: any): Promise<any>;
17
+ isElementEnabled(locator: any): Promise<any>;
18
+ waitTillElementIsVisible(elementSelector: any, waitTime?: number): Promise<void>;
19
+ getInputBoxValue(locator: any): Promise<any>;
20
+ downloadAFile(downloadButton: String, filePath: string): Promise<void>;
21
+ uploadAFile(uploadButton: String, uploadFilePath: String): Promise<void>;
22
+ getElementRefByRole(roleType: string, roleName: string): Promise<any>;
23
+ getElementLocatorByText(text: string): Promise<any>;
24
+ }
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UIHelper = void 0;
13
+ //import robot from "robotjs";
14
+ const playwright_1 = require("playwright");
15
+ class UIHelper {
16
+ constructor(page) {
17
+ this.page = page;
18
+ }
19
+ /* chromePath should be something like below
20
+ <UserDirectory>/AppData/Local/Google/Chrome/User Data
21
+ */
22
+ launchNonIncognito(chromePath) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ // Launch non-incognito session using provided chromePath
25
+ this.browser = yield playwright_1.chromium.launchPersistentContext(chromePath, {
26
+ headless: false,
27
+ });
28
+ this.page = yield this.browser.newPage();
29
+ this.browser.clearCookies();
30
+ });
31
+ }
32
+ // Close All the windows opened for non-incognito session
33
+ closeNonIncognito() {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ this.browser.clearCookies();
36
+ const allPages = this.browser.pages();
37
+ allPages.forEach((element) => {
38
+ element.close();
39
+ });
40
+ });
41
+ }
42
+ //Combines given list of cookies and generates a single cookie for passing in API as header
43
+ combineAllCookies(cookieJson) {
44
+ let Finalcookie = '';
45
+ for (let val of cookieJson) {
46
+ Finalcookie += val.name + '=' + val.value + ';';
47
+ }
48
+ console.log('\n----------------> Final Cookie Generated ---------------->\n');
49
+ Finalcookie = Finalcookie.toString().slice(0, -1);
50
+ return Finalcookie.toString();
51
+ }
52
+ filltheData(locator, data) {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ if (data) {
55
+ yield this.waitTillElementIsVisible(locator);
56
+ yield this.page.locator(locator).scrollIntoViewIfNeeded();
57
+ yield this.page.locator(locator).fill(data);
58
+ }
59
+ });
60
+ }
61
+ clickonWebElement(locator) {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ yield this.page.locator(locator).scrollIntoViewIfNeeded();
64
+ yield this.waitTillElementIsVisible(locator);
65
+ yield this.page.locator(locator).click();
66
+ });
67
+ }
68
+ getInnerHTML(locator) {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ yield this.waitTillElementIsVisible(locator);
71
+ yield this.page.locator(locator).scrollIntoViewIfNeeded();
72
+ return yield this.page.innerHTML(locator);
73
+ });
74
+ }
75
+ getInnerText(locator) {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ yield this.waitTillElementIsVisible(locator);
78
+ yield this.page.locator(locator).scrollIntoViewIfNeeded();
79
+ return yield this.page.locator(locator).innerText().trim();
80
+ });
81
+ }
82
+ getText(locator) {
83
+ return __awaiter(this, void 0, void 0, function* () {
84
+ yield this.waitTillElementIsVisible(locator);
85
+ yield this.page.locator(locator).scrollIntoViewIfNeeded();
86
+ return yield this.page.locator(locator).textContent();
87
+ });
88
+ }
89
+ getAttribute(locator, attribute) {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ yield this.waitTillElementIsVisible(locator);
92
+ yield this.page.locator(locator).scrollIntoViewIfNeeded();
93
+ return yield this.page.locator(locator).getAttribute(attribute);
94
+ });
95
+ }
96
+ evaluateJS(jsDOM) {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ return yield this.page.evaluate(jsDOM);
99
+ });
100
+ }
101
+ isElementPresent(locator) {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ // console.log(typeof locator.toString());
104
+ let type = typeof locator;
105
+ if (type === 'string') {
106
+ yield this.page.locator(locator).scrollIntoViewIfNeeded();
107
+ return yield this.page.locator(locator).isVisible();
108
+ }
109
+ else if (type === 'object') {
110
+ return yield locator.isVisible();
111
+ }
112
+ console.log(type);
113
+ console.log(type.toString());
114
+ });
115
+ }
116
+ isElementEnabled(locator) {
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ yield this.page.locator(locator).scrollIntoViewIfNeeded();
119
+ return yield this.page.locator(locator).isEnabled();
120
+ });
121
+ }
122
+ waitTillElementIsVisible(elementSelector, waitTime = 60000) {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ yield this.page.waitForSelector(elementSelector, {
125
+ waitFor: 'visible',
126
+ timeout: waitTime,
127
+ });
128
+ });
129
+ }
130
+ getInputBoxValue(locator) {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ yield this.waitTillElementIsVisible(locator);
133
+ yield this.page.locator(locator).scrollIntoViewIfNeeded();
134
+ return yield this.page.inputValue();
135
+ });
136
+ }
137
+ // async closeCertificationPopup() {
138
+ // await this.page.waitForTimeout(5000);
139
+ // robot.moveMouse(400, 20);
140
+ // robot.keyTap("enter");
141
+ // }
142
+ downloadAFile(downloadButton, filePath) {
143
+ return __awaiter(this, void 0, void 0, function* () {
144
+ const downloadPromise = this.page.waitForEvent('download');
145
+ yield this.clickonWebElement(downloadButton);
146
+ const download = yield downloadPromise;
147
+ // Wait for the download process to complete
148
+ console.log('download', yield download.path());
149
+ yield download.saveAs(filePath);
150
+ });
151
+ }
152
+ uploadAFile(uploadButton, uploadFilePath) {
153
+ return __awaiter(this, void 0, void 0, function* () {
154
+ const fileChooserPromise = this.page.waitForEvent('filechooser');
155
+ yield this.clickonWebElement(uploadButton);
156
+ const fileChooser = yield fileChooserPromise;
157
+ yield fileChooser.setFiles(uploadFilePath);
158
+ });
159
+ }
160
+ getElementRefByRole(roleType, roleName) {
161
+ return __awaiter(this, void 0, void 0, function* () {
162
+ return this.page.getByRole(roleType, { name: roleName });
163
+ });
164
+ }
165
+ getElementLocatorByText(text) {
166
+ return __awaiter(this, void 0, void 0, function* () {
167
+ return this.page.getByText(text, { exact: true });
168
+ });
169
+ }
170
+ }
171
+ exports.UIHelper = UIHelper;
172
+ //# sourceMappingURL=ui-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-helpers.js","sourceRoot":"","sources":["../../../src/helpers/ui-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { AxiosRequestConfig } from 'axios';
2
+ export declare class TokenGenerators {
3
+ static generateKeyVaultAccessToken(): void;
4
+ static request(config: AxiosRequestConfig<any>): Promise<any>;
5
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.TokenGenerators = void 0;
16
+ const axios_1 = __importDefault(require("axios"));
17
+ class TokenGenerators {
18
+ static generateKeyVaultAccessToken() {
19
+ throw new Error('Method not implemented.');
20
+ }
21
+ static request(config) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ try {
24
+ process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
25
+ const response = yield (0, axios_1.default)(config);
26
+ return response;
27
+ }
28
+ catch (error) {
29
+ return error.response;
30
+ }
31
+ });
32
+ }
33
+ }
34
+ exports.TokenGenerators = TokenGenerators;
35
+ //# sourceMappingURL=api_axios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api_axios.js","sourceRoot":"","sources":["../../../src/utils/api_axios.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAAkD;AAElD,MAAa,eAAe;IACxB,MAAM,CAAC,2BAA2B;QAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,CAAO,OAAO,CAAC,MAA+B;;YAChD,IAAI;gBACA,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAC;gBAC/C,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC,MAAM,CAAC,CAAC;gBACrC,OAAO,QAAQ,CAAC;aACnB;YAAC,OAAO,KAAK,EAAE;gBACZ,OAAO,KAAK,CAAC,QAAQ,CAAC;aACzB;QACL,CAAC;KAAA;CACJ;AAbD,0CAaC"}
@@ -0,0 +1,4 @@
1
+ export declare class AzureStorageMethods {
2
+ static getblobs(storageAccount: any, containerName: any, storageAccountKey: any, apiMethodName: string, blobFilterName?: string): Promise<any[]>;
3
+ static createBlobByUploadingData(storageAccount: string, sasToken: string, containerName: string, filepath: string, fileNameWithExtension: string): Promise<void>;
4
+ }
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AzureStorageMethods = void 0;
16
+ const xmldom_1 = require("xmldom");
17
+ const xmlToJson_1 = require("./xmlToJson");
18
+ const hmac_sha256_1 = __importDefault(require("crypto-js/hmac-sha256"));
19
+ const enc_base64_1 = __importDefault(require("crypto-js/enc-base64"));
20
+ const api_axios_1 = require("./api_axios");
21
+ const storage_blob_1 = require("@azure/storage-blob");
22
+ class AzureStorageMethods {
23
+ static getblobs(storageAccount, containerName, storageAccountKey, apiMethodName, blobFilterName = '') {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ const header_date = new Date().toUTCString();
26
+ const apiMethod = apiMethodName.toUpperCase();
27
+ const url = new URL(`https://${storageAccount}.blob.core.windows.net/${containerName}?restype=container&comp=list&prefix=${blobFilterName}`);
28
+ const signatureParts = [
29
+ apiMethod,
30
+ '',
31
+ '',
32
+ '',
33
+ '',
34
+ '',
35
+ '',
36
+ '',
37
+ '',
38
+ '',
39
+ '',
40
+ '',
41
+ ];
42
+ const canonicalHeaderParts = [];
43
+ canonicalHeaderParts.push(`x-ms-date:${header_date}`);
44
+ canonicalHeaderParts.push(`x-ms-version:2018-03-28`);
45
+ // Add headers to signature
46
+ signatureParts.push.apply(signatureParts, canonicalHeaderParts);
47
+ // Construct CanonicalizedResource
48
+ const canonicalResourceParts = [`/${storageAccount}${url.pathname}`];
49
+ const canonicalQueryNames = [];
50
+ url.searchParams.forEach((value, key) => {
51
+ canonicalQueryNames.push(key.toLowerCase());
52
+ });
53
+ canonicalQueryNames.sort();
54
+ canonicalQueryNames.forEach((queryName) => {
55
+ const value = url.searchParams.get(queryName);
56
+ canonicalResourceParts.push(`${queryName}:${value}`);
57
+ });
58
+ // Add resource to signature
59
+ signatureParts.push.apply(signatureParts, canonicalResourceParts);
60
+ // Now, construct signature raw string
61
+ const signatureRaw = signatureParts.join('\n');
62
+ // Hash it using HMAC-SHA256 and then encode using base64
63
+ const signatureBytes = (0, hmac_sha256_1.default)(signatureRaw, enc_base64_1.default.parse(storageAccountKey));
64
+ const signatureEncoded = signatureBytes.toString(enc_base64_1.default);
65
+ const config = {
66
+ method: apiMethod,
67
+ url: `https://${storageAccount}.blob.core.windows.net/${containerName}?restype=container&comp=list&prefix=${blobFilterName}`,
68
+ headers: {
69
+ Authorization: `SharedKey ${storageAccount}:${signatureEncoded}`,
70
+ 'x-ms-date': header_date,
71
+ 'x-ms-version': '2018-03-28',
72
+ },
73
+ };
74
+ const response = yield api_axios_1.TokenGenerators.request(config);
75
+ const apiData = response.data;
76
+ const XmlNode = new xmldom_1.DOMParser().parseFromString(apiData, 'text/xml');
77
+ const jsonObj = yield xmlToJson_1.XmlToJson.xmlToJson(XmlNode);
78
+ const blobs = jsonObj.EnumerationResults.Blobs.Blob;
79
+ const newBlobs = [];
80
+ if (blobs.length) {
81
+ for (let i = 0; i < blobs.length; i++) {
82
+ const blob = {
83
+ fileName: blobs[i].Name['#text'].replace(blobFilterName, ''),
84
+ modifiedTime: Date.parse(blobs[i].Properties['Last-Modified']['#text']),
85
+ status: Math.floor(Date.now() -
86
+ Date.parse(blobs[i].Properties['Last-Modified']['#text']) /
87
+ 1000) > 30
88
+ ? 1
89
+ : 0,
90
+ };
91
+ newBlobs.push(blob);
92
+ }
93
+ }
94
+ else if (blobs.fileName) {
95
+ const blob = {
96
+ fileName: blobs.Name['#text'].replace(blobFilterName, ''),
97
+ modifiedTime: Date.parse(blobs.Properties['Last-Modified']['#text']),
98
+ status: Math.floor(Date.now() -
99
+ Date.parse(blobs.Properties['Last-Modified']['#text']) /
100
+ 1000) > 30
101
+ ? 1
102
+ : 0,
103
+ };
104
+ newBlobs.push(blob);
105
+ }
106
+ newBlobs.sort((a, b) => a.fileName > b.fileName ? 1 : b.fileName > a.fileName ? -1 : 0);
107
+ newBlobs.sort((a, b) => a.modifiedTime < b.modifiedTime
108
+ ? 1
109
+ : b.modifiedTime < a.modifiedTime
110
+ ? -1
111
+ : 0);
112
+ return newBlobs;
113
+ });
114
+ }
115
+ static createBlobByUploadingData(storageAccount, sasToken, containerName, filepath, fileNameWithExtension) {
116
+ return __awaiter(this, void 0, void 0, function* () {
117
+ const blobServiceClient = new storage_blob_1.BlobServiceClient('https://' +
118
+ storageAccount +
119
+ '.blob.core.windows.net/' +
120
+ '?' +
121
+ sasToken);
122
+ const containerClient = blobServiceClient.getContainerClient(containerName);
123
+ const blockBlobClient = containerClient.getBlockBlobClient(fileNameWithExtension);
124
+ const uploadBlobResponse = yield blockBlobClient.uploadFile(filepath);
125
+ console.log(`Block blob ${fileNameWithExtension} uploaded successfully`);
126
+ });
127
+ }
128
+ }
129
+ exports.AzureStorageMethods = AzureStorageMethods;
130
+ //# sourceMappingURL=azure_storage_methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure_storage_methods.js","sourceRoot":"","sources":["../../../src/utils/azure_storage_methods.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mCAAmC;AACnC,2CAAwC;AACxC,wEAA+C;AAC/C,sEAA0C;AAC1C,2CAA8C;AAC9C,sDAAwD;AACxD,MAAa,mBAAmB;IAC5B,MAAM,CAAO,QAAQ,CACjB,cAAmB,EACnB,aAAkB,EAClB,iBAAsB,EACtB,aAAqB,EACrB,cAAc,GAAG,EAAE;;YAEnB,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC7C,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;YAE9C,MAAM,GAAG,GAAG,IAAI,GAAG,CACf,WAAW,cAAc,0BAA0B,aAAa,uCAAuC,cAAc,EAAE,CAC1H,CAAC;YACF,MAAM,cAAc,GAAG;gBACnB,SAAS;gBACT,EAAE;gBACF,EAAE;gBACF,EAAE;gBACF,EAAE;gBACF,EAAE;gBACF,EAAE;gBACF,EAAE;gBACF,EAAE;gBACF,EAAE;gBACF,EAAE;gBACF,EAAE;aACL,CAAC;YAEF,MAAM,oBAAoB,GAAG,EAAE,CAAC;YAChC,oBAAoB,CAAC,IAAI,CAAC,aAAa,WAAW,EAAE,CAAC,CAAC;YACtD,oBAAoB,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAErD,2BAA2B;YAC3B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;YAEhE,kCAAkC;YAClC,MAAM,sBAAsB,GAAG,CAAC,IAAI,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrE,MAAM,mBAAmB,GAAa,EAAE,CAAC;YACzC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACpC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;YACH,mBAAmB,CAAC,IAAI,EAAE,CAAC;YAC3B,mBAAmB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAE9C,sBAAsB,CAAC,IAAI,CAAC,GAAG,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YACH,4BAA4B;YAC5B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC;YAElE,sCAAsC;YACtC,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE/C,yDAAyD;YAEzD,MAAM,cAAc,GAAG,IAAA,qBAAU,EAC7B,YAAY,EACZ,oBAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAClC,CAAC;YACF,MAAM,gBAAgB,GAAG,cAAc,CAAC,QAAQ,CAAC,oBAAM,CAAC,CAAC;YAEzD,MAAM,MAAM,GAAG;gBACX,MAAM,EAAE,SAAS;gBACjB,GAAG,EAAE,WAAW,cAAc,0BAA0B,aAAa,uCAAuC,cAAc,EAAE;gBAC5H,OAAO,EAAE;oBACL,aAAa,EAAE,aAAa,cAAc,IAAI,gBAAgB,EAAE;oBAChE,WAAW,EAAE,WAAW;oBACxB,cAAc,EAAE,YAAY;iBAC/B;aACJ,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,2BAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,kBAAS,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACrE,MAAM,OAAO,GAAG,MAAM,qBAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC;YACpD,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,MAAM,EAAE;gBACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACnC,MAAM,IAAI,GAAG;wBACT,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CACpC,cAAc,EACd,EAAE,CACL;wBACD,YAAY,EAAE,IAAI,CAAC,KAAK,CACpB,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAChD;wBACD,MAAM,EACF,IAAI,CAAC,KAAK,CACN,IAAI,CAAC,GAAG,EAAE;4BACN,IAAI,CAAC,KAAK,CACN,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAChC,OAAO,CACV,CACJ;gCACG,IAAI,CACf,GAAG,EAAE;4BACF,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,CAAC;qBACd,CAAC;oBACF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACvB;aACJ;iBAAM,IAAI,KAAK,CAAC,QAAQ,EAAE;gBACvB,MAAM,IAAI,GAAG;oBACT,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;oBACzD,YAAY,EAAE,IAAI,CAAC,KAAK,CACpB,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAC7C;oBACD,MAAM,EACF,IAAI,CAAC,KAAK,CACN,IAAI,CAAC,GAAG,EAAE;wBACN,IAAI,CAAC,KAAK,CACN,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAC7C;4BACG,IAAI,CACf,GAAG,EAAE;wBACF,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,CAAC;iBACd,CAAC;gBACF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvB;YAED,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACnB,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACjE,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACnB,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY;gBAC3B,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY;oBACjC,CAAC,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC,CACV,CAAC;YAEF,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;IAED,MAAM,CAAO,yBAAyB,CAClC,cAAsB,EACtB,QAAgB,EAChB,aAAqB,EACrB,QAAgB,EAChB,qBAA6B;;YAE7B,MAAM,iBAAiB,GAAG,IAAI,gCAAiB,CAC3C,UAAU;gBACN,cAAc;gBACd,yBAAyB;gBACzB,GAAG;gBACH,QAAQ,CACf,CAAC;YACF,MAAM,eAAe,GACjB,iBAAiB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;YAExD,MAAM,eAAe,GAAG,eAAe,CAAC,kBAAkB,CACtD,qBAAqB,CACxB,CAAC;YAEF,MAAM,kBAAkB,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAEtE,OAAO,CAAC,GAAG,CACP,cAAc,qBAAqB,wBAAwB,CAC9D,CAAC;QACN,CAAC;KAAA;CACJ;AApKD,kDAoKC"}
@@ -0,0 +1,12 @@
1
+ export declare class Comparisions {
2
+ static compareObjects(actualObj: string, expectedObj: string): Promise<any>;
3
+ static compareUnorderedJSONObjects(actualObj: {
4
+ [x: string]: any;
5
+ }, expectedObj: {
6
+ [x: string]: any;
7
+ }): Promise<any>;
8
+ static areJsonFilesEqual(receivedJson: any, expectedJson: any): Boolean;
9
+ static getJsonKeys(jsonFile: any): string[];
10
+ static getJsonValues(jsonFile: any): unknown[];
11
+ static getJsonCount(jsonFile: any): number;
12
+ }
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.Comparisions = void 0;
16
+ const test_1 = require("@playwright/test");
17
+ const util_1 = require("util");
18
+ const lodash_1 = __importDefault(require("lodash"));
19
+ class Comparisions {
20
+ static compareObjects(actualObj, expectedObj) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ let same;
23
+ console.log('Actual Obj: ' + actualObj + ' and Expected Obj: ' + expectedObj);
24
+ same = lodash_1.default.isEqual(actualObj, expectedObj);
25
+ console.log(same);
26
+ return same;
27
+ });
28
+ }
29
+ static compareUnorderedJSONObjects(actualObj, expectedObj) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ const Keydata = Object.keys(expectedObj);
32
+ const result = new Array();
33
+ let boolean;
34
+ for (let i = 0; i < Keydata.length; i++) {
35
+ if (actualObj[Keydata[i]] == expectedObj[Keydata[i]]) {
36
+ result.push(true);
37
+ }
38
+ else {
39
+ result.push(false);
40
+ }
41
+ }
42
+ boolean = result.includes(false) ? false : true;
43
+ return boolean;
44
+ });
45
+ }
46
+ static areJsonFilesEqual(receivedJson, expectedJson) {
47
+ let isJsonEqual = true;
48
+ let receivedKeys = this.getJsonKeys(receivedJson);
49
+ let expectedKeys = this.getJsonKeys(expectedJson);
50
+ let receivedValues = this.getJsonValues(receivedJson);
51
+ let expectedValues = this.getJsonValues(expectedJson);
52
+ let count = this.getJsonCount(receivedJson);
53
+ for (let i = 0; i < count; i++) {
54
+ let receivedKey = receivedKeys[i];
55
+ let expectedKey = expectedKeys[i];
56
+ let receivedValue = receivedValues[i];
57
+ let expectedValue = expectedValues[i];
58
+ let isKeyEmpty = receivedKey == (null || '');
59
+ let isKeyEqual = receivedKey == expectedKey;
60
+ let isValueEqual = (0, util_1.isDeepStrictEqual)(receivedValue, expectedValue);
61
+ test_1.expect.soft(!isKeyEmpty, 'Actual Key received is not null.');
62
+ test_1.expect
63
+ .soft(isKeyEqual, "Actual key received is: '" +
64
+ receivedKey +
65
+ "' and expected key is: '" +
66
+ expectedKey +
67
+ "'.")
68
+ .toBeTruthy();
69
+ test_1.expect
70
+ .soft(isValueEqual, "Actual value received for '" +
71
+ expectedKey +
72
+ "' is " +
73
+ JSON.stringify(receivedValue) +
74
+ ' and \nExpected value is: ' +
75
+ JSON.stringify(expectedValue) +
76
+ '.')
77
+ .toBeTruthy();
78
+ if (isKeyEmpty || !isKeyEqual || !isValueEqual) {
79
+ isJsonEqual = false;
80
+ }
81
+ }
82
+ return isJsonEqual;
83
+ }
84
+ //Get Keys from Json Files
85
+ static getJsonKeys(jsonFile) {
86
+ return Object.keys(jsonFile);
87
+ }
88
+ //Get Values From Json Files
89
+ static getJsonValues(jsonFile) {
90
+ return Object.values(jsonFile);
91
+ }
92
+ //Get Count of Json items
93
+ static getJsonCount(jsonFile) {
94
+ return Object.keys(jsonFile).length;
95
+ }
96
+ }
97
+ exports.Comparisions = Comparisions;
98
+ //# sourceMappingURL=comparisions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparisions.js","sourceRoot":"","sources":["../../../src/utils/comparisions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import moment, { DurationInputArg1, DurationInputArg2 } from 'moment';
2
+ export declare class Dateutility {
3
+ static getDateInCustomFormat(date: any, format: string): string;
4
+ static getFutureDateInCustomFormat(date: any, format: string, durationType: DurationInputArg2, duration: DurationInputArg1): string;
5
+ static getPastDateInCustomFormat(date: any, format: string, durationType: DurationInputArg2, duration: DurationInputArg1): string;
6
+ static getMinDateFromMultipleDates(datesArrayObject: any): moment.Moment;
7
+ static getMaxDateFromMultipleDates(date1: any, date2: any): moment.Moment;
8
+ static calculateRelativeDate(fromDate: any, format: string): string;
9
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Dateutility = void 0;
7
+ const lodash_1 = require("lodash");
8
+ const moment_1 = __importDefault(require("moment"));
9
+ class Dateutility {
10
+ static getDateInCustomFormat(date, format) {
11
+ return (0, moment_1.default)(date).format(format);
12
+ }
13
+ static getFutureDateInCustomFormat(date, format, durationType, duration) {
14
+ return (0, moment_1.default)(date).add(duration, durationType).format(format);
15
+ }
16
+ static getPastDateInCustomFormat(date, format, durationType, duration) {
17
+ return (0, moment_1.default)(date).subtract(duration, durationType).format(format);
18
+ }
19
+ static getMinDateFromMultipleDates(datesArrayObject) {
20
+ return moment_1.default.min((0, lodash_1.map)(datesArrayObject, (obj) => (0, moment_1.default)(obj.date, obj.format)));
21
+ }
22
+ static getMaxDateFromMultipleDates(date1, date2) {
23
+ return moment_1.default.max(date1, date2);
24
+ }
25
+ static calculateRelativeDate(fromDate, format) {
26
+ return (0, moment_1.default)(fromDate, format).fromNow();
27
+ }
28
+ }
29
+ exports.Dateutility = Dateutility;
30
+ //# sourceMappingURL=date_utilitites.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date_utilitites.js","sourceRoot":"","sources":["../../../src/utils/date_utilitites.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA6B;AAC7B,oDAAsE;AACtE,MAAa,WAAW;IACpB,MAAM,CAAC,qBAAqB,CAAC,IAAS,EAAE,MAAc;QAClD,OAAO,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,2BAA2B,CAC9B,IAAS,EACT,MAAc,EACd,YAA+B,EAC/B,QAA2B;QAE3B,OAAO,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,yBAAyB,CAC5B,IAAS,EACT,MAAc,EACd,YAA+B,EAC/B,QAA2B;QAE3B,OAAO,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,CAAC,2BAA2B,CAAC,gBAAqB;QACpD,OAAO,gBAAM,CAAC,GAAG,CACb,IAAA,YAAG,EAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,gBAAM,EAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAC/D,CAAC;IACN,CAAC;IAED,MAAM,CAAC,2BAA2B,CAAC,KAAU,EAAE,KAAU;QACrD,OAAO,gBAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,QAAa,EAAE,MAAc;QACtD,OAAO,IAAA,gBAAM,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9C,CAAC;CACJ;AApCD,kCAoCC"}
@@ -0,0 +1,8 @@
1
+ import XLSX from 'xlsx';
2
+ export declare class DocumentUtility {
3
+ static readData(filePath: string): Promise<XLSX.WorkBook>;
4
+ static readDataFromExcelorCSV(filePath: string, sheetname: string): Promise<unknown[]>;
5
+ static filterData(filePath: string, sheetName: string, filterObject: object): Promise<unknown[]>;
6
+ static updateExcelData(filePath: string, sheetName: string, exportData: Array<object>): Promise<void>;
7
+ static deleteAllFilesUnderDir(dirPath: string): Promise<void>;
8
+ }