@bigbinary/neeto-playwright-commons 1.26.22 → 1.26.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.cjs.js +275 -5
- package/index.cjs.js.map +1 -1
- package/index.d.ts +345 -7
- package/index.js +274 -6
- package/index.js.map +1 -1
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { spawn, execSync } from 'child_process';
|
|
1
2
|
import { keysToSnakeCase, hyphenate, isPresent, isNotPresent, humanize, dynamicArray, findBy, truncate, isNotEmpty, isNotEqualDeep, randomPick } from '@bigbinary/neeto-cist';
|
|
2
3
|
import { faker } from '@faker-js/faker';
|
|
3
4
|
import * as require$$0$3 from 'fs';
|
|
@@ -9,7 +10,6 @@ import test, { expect, test as test$1, chromium as chromium$1, defineConfig, dev
|
|
|
9
10
|
import { getI18nInstance, initI18n } from 'playwright-i18next-fixture';
|
|
10
11
|
import require$$0$4 from 'util';
|
|
11
12
|
import { curry, isNotNil, not, isEmpty, pluck, mergeDeepLeft, isNil, mergeAll } from 'ramda';
|
|
12
|
-
import { execSync, spawn } from 'child_process';
|
|
13
13
|
import dayjs from 'dayjs';
|
|
14
14
|
import require$$0$7 from 'stream';
|
|
15
15
|
import { createRequire } from 'node:module';
|
|
@@ -200,6 +200,91 @@ class MemberApis {
|
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
202
|
|
|
203
|
+
class RailsEmailRakeClient {
|
|
204
|
+
constructor() {
|
|
205
|
+
this.convertRawEmail = (rawEmail) => {
|
|
206
|
+
var _a;
|
|
207
|
+
return ({
|
|
208
|
+
from: rawEmail.from,
|
|
209
|
+
to: rawEmail.to,
|
|
210
|
+
cc: rawEmail.cc,
|
|
211
|
+
bcc: rawEmail.bcc,
|
|
212
|
+
replyTo: rawEmail.reply_to,
|
|
213
|
+
subject: rawEmail.subject,
|
|
214
|
+
htmlBody: rawEmail.html_body,
|
|
215
|
+
textBody: rawEmail.text_body,
|
|
216
|
+
receivedAt: rawEmail.received_at,
|
|
217
|
+
attachments: (_a = rawEmail.attachments) === null || _a === void 0 ? void 0 : _a.map(att => ({
|
|
218
|
+
name: att.filename,
|
|
219
|
+
type: att.mime_type,
|
|
220
|
+
content: att.data,
|
|
221
|
+
})),
|
|
222
|
+
});
|
|
223
|
+
};
|
|
224
|
+
this.executeRakeTask = async (taskName, args = []) => {
|
|
225
|
+
var _a, _b;
|
|
226
|
+
const childProcess = spawn("bundle", ["exec", "rake", taskName, "--", ...args], {
|
|
227
|
+
cwd: this.workingDirectory,
|
|
228
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
229
|
+
});
|
|
230
|
+
let stdout = "";
|
|
231
|
+
let stderr = "";
|
|
232
|
+
(_a = childProcess.stdout) === null || _a === void 0 ? void 0 : _a.on("data", data => {
|
|
233
|
+
stdout += data.toString();
|
|
234
|
+
});
|
|
235
|
+
(_b = childProcess.stderr) === null || _b === void 0 ? void 0 : _b.on("data", data => {
|
|
236
|
+
stderr += data.toString();
|
|
237
|
+
});
|
|
238
|
+
const exitCode = await new Promise((resolve, reject) => {
|
|
239
|
+
childProcess.on("error", reject);
|
|
240
|
+
childProcess.on("close", resolve);
|
|
241
|
+
});
|
|
242
|
+
if (exitCode !== 0) {
|
|
243
|
+
throw new Error(`Rake task ${taskName} failed: ${stderr || stdout || `Exit code ${exitCode}`}`);
|
|
244
|
+
}
|
|
245
|
+
return this.extractJsonFromOutput(stdout);
|
|
246
|
+
};
|
|
247
|
+
this.extractJsonFromOutput = (output) => {
|
|
248
|
+
const delimiterMatch = output.match(/<-- Captured Emails Start-->([\s\S]*?)<-- Captured Emails End-->/);
|
|
249
|
+
return delimiterMatch ? delimiterMatch[1].trim() : output.trim();
|
|
250
|
+
};
|
|
251
|
+
this.listEmails = async (searchParams) => {
|
|
252
|
+
try {
|
|
253
|
+
const args = this.buildSearchArgs(searchParams);
|
|
254
|
+
const output = await this.executeRakeTask("playwright:fetch_captured_emails", args);
|
|
255
|
+
if (!output)
|
|
256
|
+
return [];
|
|
257
|
+
const rawEmails = JSON.parse(output);
|
|
258
|
+
return rawEmails.map(this.convertRawEmail);
|
|
259
|
+
}
|
|
260
|
+
catch (error) {
|
|
261
|
+
console.error("Failed to fetch emails:", error);
|
|
262
|
+
return [];
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
this.buildSearchArgs = (searchParams) => Object.entries(keysToSnakeCase(searchParams !== null && searchParams !== void 0 ? searchParams : {}))
|
|
266
|
+
.filter(([, value]) => value != null && value !== "")
|
|
267
|
+
.map(([key, value]) => `--${key}=${value}`);
|
|
268
|
+
this.getLatestEmail = async (searchParams) => {
|
|
269
|
+
const emails = await this.listEmails(searchParams);
|
|
270
|
+
if (emails.length === 0)
|
|
271
|
+
return null;
|
|
272
|
+
return emails.reduce((latest, current) => new Date(current.receivedAt) > new Date(latest.receivedAt)
|
|
273
|
+
? current
|
|
274
|
+
: latest);
|
|
275
|
+
};
|
|
276
|
+
this.clearEmails = async () => {
|
|
277
|
+
try {
|
|
278
|
+
await this.executeRakeTask("playwright:clear_captured_emails");
|
|
279
|
+
}
|
|
280
|
+
catch (error) {
|
|
281
|
+
console.error("Failed to clear emails:", error);
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
this.workingDirectory = process.env.RAILS_ROOT || "..";
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
|
|
203
288
|
class RoleApis {
|
|
204
289
|
constructor(neetoPlaywrightUtilities) {
|
|
205
290
|
this.neetoPlaywrightUtilities = neetoPlaywrightUtilities;
|
|
@@ -57340,6 +57425,168 @@ const hexToRGB = (hex) => {
|
|
|
57340
57425
|
return `rgb(${Number(r)}, ${Number(g)}, ${Number(b)})`;
|
|
57341
57426
|
};
|
|
57342
57427
|
|
|
57428
|
+
class RailsEmailUtils {
|
|
57429
|
+
constructor(neetoPlaywrightUtilities) {
|
|
57430
|
+
this.neetoPlaywrightUtilities = neetoPlaywrightUtilities;
|
|
57431
|
+
this.convertRailsEmailToFormattedList = (railsEmail) => {
|
|
57432
|
+
var _a;
|
|
57433
|
+
if (!railsEmail)
|
|
57434
|
+
return null;
|
|
57435
|
+
const LINK_REGEX = /(http|ftp|https):\/\/([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])/g;
|
|
57436
|
+
const CODE_REGEX = /(?<![#/])\b\d{4,}\b/g;
|
|
57437
|
+
const htmlBody = railsEmail.htmlBody || "";
|
|
57438
|
+
const textBody = railsEmail.textBody || "";
|
|
57439
|
+
const htmlBodyWithStrippedHead = htmlBody.split("</head>").at(-1) || htmlBody;
|
|
57440
|
+
const extractMatches = (text, regex) => text.match(regex) || null;
|
|
57441
|
+
const parseEmailAddress = (address) => {
|
|
57442
|
+
if (!address)
|
|
57443
|
+
return [];
|
|
57444
|
+
const addresses = Array.isArray(address) ? address : [address];
|
|
57445
|
+
return addresses.map(addr => {
|
|
57446
|
+
const match = addr.match(/^(.+?)\s*<(.+?)>$|^(.+)$/);
|
|
57447
|
+
return match
|
|
57448
|
+
? {
|
|
57449
|
+
name: match[1] || match[3] || "",
|
|
57450
|
+
email: match[2] || match[3] || addr,
|
|
57451
|
+
}
|
|
57452
|
+
: { name: "", email: addr };
|
|
57453
|
+
});
|
|
57454
|
+
};
|
|
57455
|
+
return {
|
|
57456
|
+
html: {
|
|
57457
|
+
body: htmlBody,
|
|
57458
|
+
links: extractMatches(htmlBodyWithStrippedHead, LINK_REGEX),
|
|
57459
|
+
codes: extractMatches(htmlBodyWithStrippedHead, CODE_REGEX),
|
|
57460
|
+
},
|
|
57461
|
+
text: {
|
|
57462
|
+
body: textBody,
|
|
57463
|
+
links: extractMatches(textBody, LINK_REGEX),
|
|
57464
|
+
codes: extractMatches(textBody, CODE_REGEX),
|
|
57465
|
+
},
|
|
57466
|
+
id: `${railsEmail.receivedAt}-${Math.random().toString(36).substring(2, 9)}`,
|
|
57467
|
+
from: parseEmailAddress(railsEmail.from),
|
|
57468
|
+
to: parseEmailAddress(railsEmail.to),
|
|
57469
|
+
cc: parseEmailAddress(railsEmail.cc),
|
|
57470
|
+
bcc: parseEmailAddress(railsEmail.bcc),
|
|
57471
|
+
replyTo: parseEmailAddress(railsEmail.replyTo),
|
|
57472
|
+
received: new Date(railsEmail.receivedAt).toISOString(),
|
|
57473
|
+
subject: railsEmail.subject,
|
|
57474
|
+
attachments: ((_a = railsEmail.attachments) === null || _a === void 0 ? void 0 : _a.map(att => ({
|
|
57475
|
+
name: att.name,
|
|
57476
|
+
type: att.type,
|
|
57477
|
+
}))) || [],
|
|
57478
|
+
blobId: "",
|
|
57479
|
+
};
|
|
57480
|
+
};
|
|
57481
|
+
this.clearEmails = () => this.railsEmailRakeClient.clearEmails();
|
|
57482
|
+
this.getLatestEmail = (searchParams) => this.railsEmailRakeClient.getLatestEmail(searchParams);
|
|
57483
|
+
this.listEmails = (searchParams) => this.railsEmailRakeClient.listEmails(searchParams);
|
|
57484
|
+
this.listMessages = async (messageSearchCriteria = {}, { receivedAfter = new Date(new Date().valueOf() - 60 * 60 * 1000), } = {}) => {
|
|
57485
|
+
const emails = await this.railsEmailRakeClient.listEmails({
|
|
57486
|
+
...messageSearchCriteria,
|
|
57487
|
+
receivedAfter: receivedAfter.toISOString(),
|
|
57488
|
+
});
|
|
57489
|
+
return emails
|
|
57490
|
+
.map(email => this.convertRailsEmailToFormattedList(email))
|
|
57491
|
+
.filter((email) => email !== null);
|
|
57492
|
+
};
|
|
57493
|
+
this.findMessage = async (messageSearchCriteria = {}, { timeout = 2 * 60 * 1000, receivedAfter = new Date(new Date().valueOf() - 60 * 60 * 1000), expectedEmailCount = 1, } = {}, shouldThrowErrorOnTimeout = true) => {
|
|
57494
|
+
const email = (await this.neetoPlaywrightUtilities.executeRecursively({
|
|
57495
|
+
callback: async () => {
|
|
57496
|
+
const railsEmail = await this.railsEmailRakeClient.getLatestEmail({
|
|
57497
|
+
...messageSearchCriteria,
|
|
57498
|
+
receivedAfter: receivedAfter.toISOString(),
|
|
57499
|
+
});
|
|
57500
|
+
if (!railsEmail)
|
|
57501
|
+
return null;
|
|
57502
|
+
return this.convertRailsEmailToFormattedList(railsEmail);
|
|
57503
|
+
},
|
|
57504
|
+
condition: async () => {
|
|
57505
|
+
const emails = await this.railsEmailRakeClient.listEmails({
|
|
57506
|
+
...messageSearchCriteria,
|
|
57507
|
+
receivedAfter: receivedAfter.toISOString(),
|
|
57508
|
+
});
|
|
57509
|
+
return emails.length >= expectedEmailCount;
|
|
57510
|
+
},
|
|
57511
|
+
timeout,
|
|
57512
|
+
}));
|
|
57513
|
+
if (!email) {
|
|
57514
|
+
if (shouldThrowErrorOnTimeout) {
|
|
57515
|
+
throw new Error("Timed out waiting for matching message");
|
|
57516
|
+
}
|
|
57517
|
+
return {};
|
|
57518
|
+
}
|
|
57519
|
+
return email;
|
|
57520
|
+
};
|
|
57521
|
+
this.findOtpFromEmail = async ({ email, subjectSubstring = OTP_EMAIL_PATTERN, timeout = 2 * 60 * 1000, receivedAfter = new Date(), expectedEmailCount = 1, }) => {
|
|
57522
|
+
const otp = await this.neetoPlaywrightUtilities.executeRecursively({
|
|
57523
|
+
callback: async () => {
|
|
57524
|
+
var _a, _b;
|
|
57525
|
+
const railsEmail = await this.railsEmailRakeClient.getLatestEmail({
|
|
57526
|
+
to: email,
|
|
57527
|
+
subject: subjectSubstring,
|
|
57528
|
+
receivedAfter: receivedAfter.toISOString(),
|
|
57529
|
+
});
|
|
57530
|
+
if (!railsEmail)
|
|
57531
|
+
return null;
|
|
57532
|
+
const formattedEmail = this.convertRailsEmailToFormattedList(railsEmail);
|
|
57533
|
+
if (!formattedEmail)
|
|
57534
|
+
return null;
|
|
57535
|
+
return ((_a = formattedEmail.html.codes) === null || _a === void 0 ? void 0 : _a[0]) || ((_b = formattedEmail.text.codes) === null || _b === void 0 ? void 0 : _b[0]);
|
|
57536
|
+
},
|
|
57537
|
+
condition: async () => {
|
|
57538
|
+
const emails = await this.railsEmailRakeClient.listEmails({
|
|
57539
|
+
to: email,
|
|
57540
|
+
subject: subjectSubstring,
|
|
57541
|
+
receivedAfter: receivedAfter.toISOString(),
|
|
57542
|
+
});
|
|
57543
|
+
return emails.length >= expectedEmailCount;
|
|
57544
|
+
},
|
|
57545
|
+
timeout,
|
|
57546
|
+
});
|
|
57547
|
+
return otp || undefined;
|
|
57548
|
+
};
|
|
57549
|
+
this.getEmailAttachment = async (attachmentName, messageSearchCriteria = {}, { receivedAfter = new Date(new Date().valueOf() - 60 * 60 * 1000), expectedEmailCount = 1, } = {}, shouldThrowErrorOnTimeout = true) => {
|
|
57550
|
+
const attachmentDetails = (await this.neetoPlaywrightUtilities.executeRecursively({
|
|
57551
|
+
callback: async () => {
|
|
57552
|
+
var _a;
|
|
57553
|
+
const railsEmail = await this.railsEmailRakeClient.getLatestEmail({
|
|
57554
|
+
...messageSearchCriteria,
|
|
57555
|
+
receivedAfter: receivedAfter.toISOString(),
|
|
57556
|
+
});
|
|
57557
|
+
if (!railsEmail)
|
|
57558
|
+
return null;
|
|
57559
|
+
const attachment = (_a = railsEmail.attachments) === null || _a === void 0 ? void 0 : _a.find(att => att.name.includes(attachmentName));
|
|
57560
|
+
if (!attachment)
|
|
57561
|
+
return null;
|
|
57562
|
+
return {
|
|
57563
|
+
filename: attachment.name,
|
|
57564
|
+
type: attachment.type,
|
|
57565
|
+
content: Buffer.from(attachment.content, "base64"),
|
|
57566
|
+
contentType: attachment.type,
|
|
57567
|
+
};
|
|
57568
|
+
},
|
|
57569
|
+
condition: async () => {
|
|
57570
|
+
const emails = await this.railsEmailRakeClient.listEmails({
|
|
57571
|
+
...messageSearchCriteria,
|
|
57572
|
+
receivedAfter: receivedAfter.toISOString(),
|
|
57573
|
+
});
|
|
57574
|
+
return emails.length >= expectedEmailCount;
|
|
57575
|
+
},
|
|
57576
|
+
timeout: 2 * 60 * 1000,
|
|
57577
|
+
}));
|
|
57578
|
+
if (!attachmentDetails) {
|
|
57579
|
+
if (shouldThrowErrorOnTimeout) {
|
|
57580
|
+
throw new Error("Timed out waiting for matching message or attachment not found");
|
|
57581
|
+
}
|
|
57582
|
+
return undefined;
|
|
57583
|
+
}
|
|
57584
|
+
return attachmentDetails;
|
|
57585
|
+
};
|
|
57586
|
+
this.railsEmailRakeClient = new RailsEmailRakeClient();
|
|
57587
|
+
}
|
|
57588
|
+
}
|
|
57589
|
+
|
|
57343
57590
|
const dateTimeOneHourAgo = () => new Date(new Date().valueOf() - 60 * 60 * 1000);
|
|
57344
57591
|
class MailerUtils {
|
|
57345
57592
|
constructor(neetoPlaywrightUtilities) {
|
|
@@ -57383,8 +57630,10 @@ class MailerUtils {
|
|
|
57383
57630
|
const emailBodyWithStrippedHead = emailBody.split("</head>").at(-1);
|
|
57384
57631
|
const links = emailBodyWithStrippedHead.match(LINK_REGEX);
|
|
57385
57632
|
const codes = emailBodyWithStrippedHead.match(CODE_REGEX);
|
|
57633
|
+
// Remove first and last links as Fastmail adds dot image links
|
|
57634
|
+
const filteredLinks = links && links.length > 2 ? links.slice(1, -1) : links;
|
|
57386
57635
|
const contentRecognitions = {
|
|
57387
|
-
links:
|
|
57636
|
+
links: filteredLinks,
|
|
57388
57637
|
codes: codes && [...codes],
|
|
57389
57638
|
};
|
|
57390
57639
|
const html = { body: emailBody, ...contentRecognitions };
|
|
@@ -57412,6 +57661,9 @@ class MailerUtils {
|
|
|
57412
57661
|
return formattedList;
|
|
57413
57662
|
};
|
|
57414
57663
|
this.listMessages = async (messageSearchCriteria = {}, listMessagesFilterCriteria = {}) => {
|
|
57664
|
+
if (IS_DEV_ENV) {
|
|
57665
|
+
return this.railsEmailUtils.listMessages(messageSearchCriteria, listMessagesFilterCriteria);
|
|
57666
|
+
}
|
|
57415
57667
|
const { ids } = await this.queryEmail(messageSearchCriteria, listMessagesFilterCriteria);
|
|
57416
57668
|
return this.getEmails(ids);
|
|
57417
57669
|
};
|
|
@@ -57439,12 +57691,24 @@ class MailerUtils {
|
|
|
57439
57691
|
return ids;
|
|
57440
57692
|
};
|
|
57441
57693
|
this.findMessage = async (messageSearchCriteria = {}, { timeout = 10000, receivedAfter = dateTimeOneHourAgo(), expectedEmailCount = 1, } = {}, shouldThrowErrorOnTimeout = true) => {
|
|
57694
|
+
if (IS_DEV_ENV) {
|
|
57695
|
+
return this.railsEmailUtils.findMessage(messageSearchCriteria, { receivedAfter, timeout, expectedEmailCount }, shouldThrowErrorOnTimeout);
|
|
57696
|
+
}
|
|
57442
57697
|
const ids = await this.getEmailIds(messageSearchCriteria, { expectedEmailCount, receivedAfter, timeout }, shouldThrowErrorOnTimeout);
|
|
57443
57698
|
const emails = await this.getEmails(ids);
|
|
57444
57699
|
const filteredEmails = emails.filter(email => this.matchesCriteria(email, messageSearchCriteria));
|
|
57445
57700
|
return filteredEmails[0] || {};
|
|
57446
57701
|
};
|
|
57447
57702
|
this.findOtpFromEmail = async ({ email, subjectSubstring = OTP_EMAIL_PATTERN, timeout = 2 * 60 * 1000, receivedAfter = new Date(), expectedEmailCount = 1, }) => {
|
|
57703
|
+
if (IS_DEV_ENV) {
|
|
57704
|
+
return this.railsEmailUtils.findOtpFromEmail({
|
|
57705
|
+
email,
|
|
57706
|
+
subjectSubstring,
|
|
57707
|
+
timeout,
|
|
57708
|
+
receivedAfter,
|
|
57709
|
+
expectedEmailCount,
|
|
57710
|
+
});
|
|
57711
|
+
}
|
|
57448
57712
|
if (!this.accountId) {
|
|
57449
57713
|
await this.fastmailApi.authorizeAndSetAccountId();
|
|
57450
57714
|
}
|
|
@@ -57453,6 +57717,9 @@ class MailerUtils {
|
|
|
57453
57717
|
};
|
|
57454
57718
|
this.generateRandomEmail = () => faker.internet.email({ provider: process.env.FASTMAIL_DOMAIN_NAME });
|
|
57455
57719
|
this.getEmailAttachment = async (attachmentName, messageSearchCriteria = {}, { timeout = 10000, receivedAfter = dateTimeOneHourAgo(), expectedEmailCount = 1, } = {}, shouldThrowErrorOnTimeout = true) => {
|
|
57720
|
+
if (IS_DEV_ENV) {
|
|
57721
|
+
return this.railsEmailUtils.getEmailAttachment(attachmentName, messageSearchCriteria, { receivedAfter, expectedEmailCount }, shouldThrowErrorOnTimeout);
|
|
57722
|
+
}
|
|
57456
57723
|
const { blobId, attachments: attachmentNameAndTypes } = await this.findMessage(messageSearchCriteria, { expectedEmailCount, receivedAfter, timeout }, shouldThrowErrorOnTimeout);
|
|
57457
57724
|
const attachment = attachmentNameAndTypes.find(attachment => attachment.name.includes(attachmentName));
|
|
57458
57725
|
if (!attachment)
|
|
@@ -57464,6 +57731,7 @@ class MailerUtils {
|
|
|
57464
57731
|
return attachments.find(attachment => attachment.filename.includes(attachmentName));
|
|
57465
57732
|
};
|
|
57466
57733
|
this.fastmailApi = new FastmailApi(neetoPlaywrightUtilities);
|
|
57734
|
+
this.railsEmailUtils = new RailsEmailUtils(neetoPlaywrightUtilities);
|
|
57467
57735
|
}
|
|
57468
57736
|
matchesCriteria(email, criteria) {
|
|
57469
57737
|
const { to, from, subject, body } = criteria;
|
|
@@ -124815,9 +125083,6 @@ const definePlaywrightConfig = (overrides) => {
|
|
|
124815
125083
|
timezoneId: "Asia/Calcutta",
|
|
124816
125084
|
geolocation: { latitude: 18.553187, longitude: 73.948313 }, // BB Pune office
|
|
124817
125085
|
permissions: ["geolocation"],
|
|
124818
|
-
launchOptions: {
|
|
124819
|
-
args: ["--js-flags=--max-old-space-size=6144"],
|
|
124820
|
-
},
|
|
124821
125086
|
...useOverrides,
|
|
124822
125087
|
},
|
|
124823
125088
|
projects: useCustomProjects
|
|
@@ -124833,6 +125098,9 @@ const definePlaywrightConfig = (overrides) => {
|
|
|
124833
125098
|
use: {
|
|
124834
125099
|
...devices["Desktop Chrome"],
|
|
124835
125100
|
storageState: STORAGE_STATE,
|
|
125101
|
+
launchOptions: {
|
|
125102
|
+
args: ["--js-flags=--max-old-space-size=6144"],
|
|
125103
|
+
},
|
|
124836
125104
|
},
|
|
124837
125105
|
dependencies: ["setup"],
|
|
124838
125106
|
},
|
|
@@ -124857,5 +125125,5 @@ const definePlaywrightConfig = (overrides) => {
|
|
|
124857
125125
|
});
|
|
124858
125126
|
};
|
|
124859
125127
|
|
|
124860
|
-
export { ACTIONS, ADMIN_PANEL_SELECTORS, API_KEYS_SELECTORS, API_ROUTES, AUDIT_LOGS_SELECTORS, AdminPanelPage, ApiKeysApi, ApiKeysPage, AuditLogsPage, BASE_URL, CERTIFICATE_LIMIT_EXCEEDED_MESSAGE, CERTIFICATE_LIMIT_EXCEEDED_REGEXP, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COLOR, COMMON_SELECTORS, COMMON_TEXTS, COMMUNITY_TEXTS, CREDENTIALS, CURRENT_TIME_RANGES, CUSTOM_DOMAIN_SELECTORS, CUSTOM_DOMAIN_SUFFIX, CustomCommands, CustomDomainApi, CustomDomainPage, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DEFAULT_WEBHOOKS_RESPONSE_TEXT, DESCRIPTION_EDITOR_TEXTS, EMBED_SELECTORS, EMOJI_LABEL, EMPTY_STORAGE_STATE, ENGAGE_TEXTS, ENVIRONMENT, EXAMPLE_URL, EXPANDED_FONT_SIZE, EXPORT_FILE_TYPES, EditorPage, EmbedBase, FILE_FORMATS, FONT_SIZE_SELECTORS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_SELECTORS, HelpAndProfilePage, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_DEV_ENV, IS_STAGING_ENV, ImageUploader, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, Member, MemberApis, MicrosoftPage, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, NEETO_IMAGE_UPLOADER_SELECTORS, NEETO_ROUTES, NEETO_SEO_SELECTORS, NEETO_TEXT_MODIFIER_SELECTORS, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RoleApis, RolesPage, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SecurityApi, SidebarSection, SlackApi, SlackPage, TABLE_SELECTORS, TAB_SELECTORS, TAGS_SELECTORS, TEAM_MEMBER_TEXTS, TEXT_MODIFIER_ROLES, TEXT_MODIFIER_SELECTORS, TEXT_MODIFIER_TAGS, THANK_YOU_SELECTORS, THEMES_SELECTORS, THEMES_TEXTS, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_WEB_TEXTS, ZapierPage, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, fillCredentialsAndSubmit, filterUtils, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, headerUtils, hexToRGB, hexToRGBA, hyphenize, i18nFixture, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, joinHyphenCase, joinString, login, loginWithoutSSO, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, writeDataToFile };
|
|
125128
|
+
export { ACTIONS, ADMIN_PANEL_SELECTORS, API_KEYS_SELECTORS, API_ROUTES, AUDIT_LOGS_SELECTORS, AdminPanelPage, ApiKeysApi, ApiKeysPage, AuditLogsPage, BASE_URL, CERTIFICATE_LIMIT_EXCEEDED_MESSAGE, CERTIFICATE_LIMIT_EXCEEDED_REGEXP, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COLOR, COMMON_SELECTORS, COMMON_TEXTS, COMMUNITY_TEXTS, CREDENTIALS, CURRENT_TIME_RANGES, CUSTOM_DOMAIN_SELECTORS, CUSTOM_DOMAIN_SUFFIX, CustomCommands, CustomDomainApi, CustomDomainPage, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DEFAULT_WEBHOOKS_RESPONSE_TEXT, DESCRIPTION_EDITOR_TEXTS, EMBED_SELECTORS, EMOJI_LABEL, EMPTY_STORAGE_STATE, ENGAGE_TEXTS, ENVIRONMENT, EXAMPLE_URL, EXPANDED_FONT_SIZE, EXPORT_FILE_TYPES, EditorPage, EmbedBase, FILE_FORMATS, FONT_SIZE_SELECTORS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_SELECTORS, HelpAndProfilePage, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_DEV_ENV, IS_STAGING_ENV, ImageUploader, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, Member, MemberApis, MicrosoftPage, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, NEETO_IMAGE_UPLOADER_SELECTORS, NEETO_ROUTES, NEETO_SEO_SELECTORS, NEETO_TEXT_MODIFIER_SELECTORS, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RailsEmailRakeClient, RailsEmailUtils, RoleApis, RolesPage, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SecurityApi, SidebarSection, SlackApi, SlackPage, TABLE_SELECTORS, TAB_SELECTORS, TAGS_SELECTORS, TEAM_MEMBER_TEXTS, TEXT_MODIFIER_ROLES, TEXT_MODIFIER_SELECTORS, TEXT_MODIFIER_TAGS, THANK_YOU_SELECTORS, THEMES_SELECTORS, THEMES_TEXTS, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_WEB_TEXTS, ZapierPage, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, fillCredentialsAndSubmit, filterUtils, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, headerUtils, hexToRGB, hexToRGBA, hyphenize, i18nFixture, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, joinHyphenCase, joinString, login, loginWithoutSSO, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, writeDataToFile };
|
|
124861
125129
|
//# sourceMappingURL=index.js.map
|