@bigbinary/neeto-playwright-commons 3.3.13 → 4.0.0
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/README.md +3 -0
- package/index.d.ts +63 -80
- package/index.js +42 -203
- package/package.json +9 -5
- package/index.cjs.js +0 -127377
- package/index.cjs.js.map +0 -1
- package/index.js.map +0 -1
package/index.js
CHANGED
|
@@ -4,16 +4,16 @@ import * as fs from 'fs';
|
|
|
4
4
|
import fs__default, { readFileSync, promises, existsSync, writeFileSync, unlinkSync, mkdirSync, rmSync, createWriteStream } from 'fs';
|
|
5
5
|
import os from 'os';
|
|
6
6
|
import * as path from 'path';
|
|
7
|
-
import path__default from 'path';
|
|
7
|
+
import path__default, { dirname } from 'path';
|
|
8
8
|
import test, { expect, test as test$1, chromium as chromium$1, defineConfig, devices } from '@playwright/test';
|
|
9
9
|
import { getI18nInstance, initI18n } from 'playwright-i18next-fixture';
|
|
10
10
|
import { curry, isNotNil, not, isEmpty, pluck, mergeAll, isNil, mergeDeepLeft } from 'ramda';
|
|
11
11
|
import { execSync, spawn } from 'child_process';
|
|
12
|
+
import require$$2$2, { fileURLToPath } from 'url';
|
|
12
13
|
import dayjs from 'dayjs';
|
|
13
14
|
import require$$1$3 from 'events';
|
|
14
15
|
import require$$0$5 from 'assert';
|
|
15
16
|
import require$$0$4 from 'util';
|
|
16
|
-
import require$$2$2 from 'url';
|
|
17
17
|
import require$$1$2 from 'tty';
|
|
18
18
|
import require$$0$6 from 'stream';
|
|
19
19
|
import require$$0$7 from 'crypto';
|
|
@@ -27,9 +27,9 @@ import require$$1$6 from 'node:stream';
|
|
|
27
27
|
import require$$1$7 from 'zlib';
|
|
28
28
|
import stealth$1 from 'puppeteer-extra-plugin-stealth';
|
|
29
29
|
import { globSync } from 'node:fs';
|
|
30
|
-
import customParseFormat from 'dayjs/plugin/customParseFormat';
|
|
31
|
-
import timezone from 'dayjs/plugin/timezone';
|
|
32
|
-
import utc from 'dayjs/plugin/utc';
|
|
30
|
+
import customParseFormat from 'dayjs/plugin/customParseFormat.js';
|
|
31
|
+
import timezone from 'dayjs/plugin/timezone.js';
|
|
32
|
+
import utc from 'dayjs/plugin/utc.js';
|
|
33
33
|
import https from 'https';
|
|
34
34
|
import * as http from 'http';
|
|
35
35
|
|
|
@@ -1150,6 +1150,7 @@ const readFileSyncIfExists = (path = STORAGE_STATE) => {
|
|
|
1150
1150
|
return {};
|
|
1151
1151
|
}
|
|
1152
1152
|
};
|
|
1153
|
+
const getDirname = (metaUrl) => dirname(fileURLToPath(metaUrl));
|
|
1153
1154
|
const getGlobalUserState = () => readFileSyncIfExists()?.user;
|
|
1154
1155
|
const writeDataToFile = data => {
|
|
1155
1156
|
try {
|
|
@@ -1979,12 +1980,14 @@ const generateRandomFile = ({ sizeInKB, fileType, fileName = `sample.${fileType}
|
|
|
1979
1980
|
return { file, fileName };
|
|
1980
1981
|
};
|
|
1981
1982
|
|
|
1983
|
+
const __dirname$6 = getDirname(import.meta.url);
|
|
1982
1984
|
const getImagePathAndName = (localImagePath) => {
|
|
1983
|
-
const imagePath = path__default.join(__dirname, localImagePath);
|
|
1985
|
+
const imagePath = path__default.join(__dirname$6, localImagePath);
|
|
1984
1986
|
const imageName = path__default.basename(localImagePath, path__default.extname(localImagePath));
|
|
1985
1987
|
return { imagePath, imageName };
|
|
1986
1988
|
};
|
|
1987
1989
|
|
|
1990
|
+
const __dirname$5 = getDirname(import.meta.url);
|
|
1988
1991
|
class CustomCommands {
|
|
1989
1992
|
page;
|
|
1990
1993
|
t;
|
|
@@ -2157,7 +2160,7 @@ class CustomCommands {
|
|
|
2157
2160
|
await expect(this.page.getByTestId(NEETO_IMAGE_UPLOADER_SELECTORS.uploadedImage)).toHaveAttribute("src", new RegExp(imageName), { timeout: 20_000 });
|
|
2158
2161
|
};
|
|
2159
2162
|
uploadFileViaDispatch = async ({ fileNameWithType, assetsPath = "../../../e2e/assets/", dispatchEvent = "drop", droppableZone = this.page.getByTestId(COMMON_SELECTORS.fileUploadBody), }) => {
|
|
2160
|
-
const filePath = path__default.join(__dirname, `${assetsPath}/${fileNameWithType}`);
|
|
2163
|
+
const filePath = path__default.join(__dirname$5, `${assetsPath}/${fileNameWithType}`);
|
|
2161
2164
|
const buffer = readFileSync(filePath).toString("base64");
|
|
2162
2165
|
const dataTransfer = await droppableZone.evaluateHandle((_, { buffer, fileNameWithType }) => {
|
|
2163
2166
|
const dataTransfer = new DataTransfer();
|
|
@@ -119675,31 +119678,6 @@ class HelpAndProfilePage {
|
|
|
119675
119678
|
})).toHaveScreenshot(expectedScreenshot, { maxDiffPixelRatio: 0.1 });
|
|
119676
119679
|
});
|
|
119677
119680
|
};
|
|
119678
|
-
/**
|
|
119679
|
-
* @deprecated This method is deprecated. Use updateBasicInfo instead.
|
|
119680
|
-
*/
|
|
119681
|
-
updateProfile = async ({ firstName, lastName }) => {
|
|
119682
|
-
await this.openHelpCenter();
|
|
119683
|
-
await this.page
|
|
119684
|
-
.getByTestId(PROFILE_SECTION_SELECTORS.myProfileButton)
|
|
119685
|
-
.click();
|
|
119686
|
-
await this.page
|
|
119687
|
-
.getByTestId(COMMON_SELECTORS.pane)
|
|
119688
|
-
.getByTestId(COMMON_SELECTORS.dropdownIcon)
|
|
119689
|
-
.click();
|
|
119690
|
-
await this.page.getByTestId(PROFILE_SECTION_SELECTORS.editBtn).click();
|
|
119691
|
-
firstName &&
|
|
119692
|
-
(await this.page
|
|
119693
|
-
.getByTestId(PROFILE_SECTION_SELECTORS.firstNameTextField)
|
|
119694
|
-
.fill(firstName));
|
|
119695
|
-
lastName &&
|
|
119696
|
-
(await this.page
|
|
119697
|
-
.getByTestId(PROFILE_SECTION_SELECTORS.lastNameTextField)
|
|
119698
|
-
.fill(lastName));
|
|
119699
|
-
await this.page.getByTestId(PROFILE_SECTION_SELECTORS.submitButton).click();
|
|
119700
|
-
await this.neetoPlaywrightUtilities.waitForPageLoad();
|
|
119701
|
-
await expect(this.page.getByTestId(COMMON_SELECTORS.paneModalCrossIcon)).toBeHidden();
|
|
119702
|
-
};
|
|
119703
119681
|
}
|
|
119704
119682
|
|
|
119705
119683
|
class MicrosoftPage extends IntegrationBase {
|
|
@@ -120030,32 +120008,6 @@ class SlackPage extends IntegrationBase {
|
|
|
120030
120008
|
await nextButton.click();
|
|
120031
120009
|
await this.slackWebappPageDataQa(SLACK_DATA_QA_SELECTORS.inviteToWorkspaceSkipButton).click();
|
|
120032
120010
|
};
|
|
120033
|
-
/**
|
|
120034
|
-
* @deprecated Use {@link SlackPage.archiveChannelViaAPI} instead. This flow
|
|
120035
|
-
* drives the Slack web UI to permanently delete a channel and is brittle;
|
|
120036
|
-
* `archiveChannelViaAPI` archives via the Slack Web API (requires
|
|
120037
|
-
* `SLACK_BOT_TOKEN`).
|
|
120038
|
-
*/
|
|
120039
|
-
deleteSlackChannel = async (channel) => {
|
|
120040
|
-
const channelItem = this.slackWebappPage.locator(SLACK_SELECTORS.channelItems, { hasText: channel });
|
|
120041
|
-
await channelItem.click({ button: "right" });
|
|
120042
|
-
await this.slackWebappPageDataQa([
|
|
120043
|
-
SLACK_DATA_QA_SELECTORS.menuItems,
|
|
120044
|
-
SLACK_DATA_QA_SELECTORS.channelDetailsModal,
|
|
120045
|
-
]).click();
|
|
120046
|
-
await expect(this.slackWebappPageDataQa(SLACK_DATA_QA_SELECTORS.channelDetailsModal)).toBeVisible();
|
|
120047
|
-
await this.slackWebappPageDataQa(SLACK_DATA_QA_SELECTORS.channelDetailsSettingsTab).click();
|
|
120048
|
-
await this.slackWebappPageDataQa(SLACK_DATA_QA_SELECTORS.skModalContent)
|
|
120049
|
-
.getByRole("button", { name: SLACK_WEB_TEXTS.deleteThisChannel })
|
|
120050
|
-
.click();
|
|
120051
|
-
await this.slackWebappPage
|
|
120052
|
-
.getByLabel(SLACK_WEB_TEXTS.permanentlyDeleteTheChannel)
|
|
120053
|
-
.check();
|
|
120054
|
-
await this.slackWebappPage
|
|
120055
|
-
.getByRole("button", { name: SLACK_WEB_TEXTS.deleteChannel })
|
|
120056
|
-
.click();
|
|
120057
|
-
await expect(channelItem).toBeHidden();
|
|
120058
|
-
};
|
|
120059
120011
|
archiveChannelViaAPI = async (name) => {
|
|
120060
120012
|
const response = await this.slackApi.listChannels();
|
|
120061
120013
|
const { channels } = (await response?.json());
|
|
@@ -120367,7 +120319,7 @@ class ZapierPage extends IntegrationBase {
|
|
|
120367
120319
|
message: TOASTR_MESSAGES.zapierApiKeyGenerated,
|
|
120368
120320
|
});
|
|
120369
120321
|
await this.page.getByTestId(COMMON_SELECTORS.copyToClipboardButton).click();
|
|
120370
|
-
const apiKey = await this.page
|
|
120322
|
+
const apiKey = await getClipboardContent(this.page);
|
|
120371
120323
|
await this.verifyIntegrationStatus();
|
|
120372
120324
|
return apiKey;
|
|
120373
120325
|
};
|
|
@@ -120504,6 +120456,7 @@ const LIST_MODIFIER_TAGS = {
|
|
|
120504
120456
|
orderedList: "ol",
|
|
120505
120457
|
};
|
|
120506
120458
|
|
|
120459
|
+
const __dirname$4 = getDirname(import.meta.url);
|
|
120507
120460
|
class SlashCommandEditorPage {
|
|
120508
120461
|
page;
|
|
120509
120462
|
neetoPlaywrightUtilities;
|
|
@@ -120623,7 +120576,7 @@ class SlashCommandEditorPage {
|
|
|
120623
120576
|
.getByTestId(NEETO_IMAGE_UPLOADER_SELECTORS.browseText)
|
|
120624
120577
|
.click();
|
|
120625
120578
|
const fileUploader = await fileUploaderPromise;
|
|
120626
|
-
const imagePath = path.join(__dirname, filePath);
|
|
120579
|
+
const imagePath = path.join(__dirname$4, filePath);
|
|
120627
120580
|
await fileUploader.setFiles(imagePath);
|
|
120628
120581
|
await expect(this.imageWrapper).toBeVisible({ timeout: 15_000 });
|
|
120629
120582
|
if (shouldRemoveImage) {
|
|
@@ -120698,6 +120651,7 @@ class SlashCommandEditorPage {
|
|
|
120698
120651
|
};
|
|
120699
120652
|
}
|
|
120700
120653
|
|
|
120654
|
+
const __dirname$3 = getDirname(import.meta.url);
|
|
120701
120655
|
class EditorPage {
|
|
120702
120656
|
page;
|
|
120703
120657
|
neetoPlaywrightUtilities;
|
|
@@ -120928,7 +120882,7 @@ class EditorPage {
|
|
|
120928
120882
|
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
120929
120883
|
await this.editorAttachmentsButton.click();
|
|
120930
120884
|
const fileUploader = await fileUploaderPromise;
|
|
120931
|
-
const imagePath = path.join(__dirname, filePath);
|
|
120885
|
+
const imagePath = path.join(__dirname$3, filePath);
|
|
120932
120886
|
await fileUploader.setFiles(imagePath);
|
|
120933
120887
|
await expect(this.attachmentPreview).toBeVisible();
|
|
120934
120888
|
if (shouldRemoveAttachment) {
|
|
@@ -120954,7 +120908,7 @@ class EditorPage {
|
|
|
120954
120908
|
.getByTestId(NEETO_IMAGE_UPLOADER_SELECTORS.browseText)
|
|
120955
120909
|
.click();
|
|
120956
120910
|
const fileUploader = await fileUploaderPromise;
|
|
120957
|
-
const imagePath = path.join(__dirname, filePath);
|
|
120911
|
+
const imagePath = path.join(__dirname$3, filePath);
|
|
120958
120912
|
await fileUploader.setFiles(imagePath);
|
|
120959
120913
|
await expect(this.imageWrapper).toBeVisible({ timeout: 15_000 });
|
|
120960
120914
|
if (shouldRemoveImage) {
|
|
@@ -121061,7 +121015,7 @@ class EditorPage {
|
|
|
121061
121015
|
.getByTestId(NEETO_EDITOR_SELECTORS.imageUploadButton)
|
|
121062
121016
|
.click();
|
|
121063
121017
|
const fileUploader = await fileUploaderPromise;
|
|
121064
|
-
const imagePath = path.join(__dirname, filePath);
|
|
121018
|
+
const imagePath = path.join(__dirname$3, filePath);
|
|
121065
121019
|
await fileUploader.setFiles(imagePath);
|
|
121066
121020
|
await expect(this.page.getByRole("figure")).toBeVisible({
|
|
121067
121021
|
timeout: 20_000,
|
|
@@ -122645,12 +122599,8 @@ const PHONE_NUMBER_FORMATS = [
|
|
|
122645
122599
|
const initializeCredentials = (product) => {
|
|
122646
122600
|
if (process.env.SKIP_SETUP === "true" && getGlobalUserState()) {
|
|
122647
122601
|
const { email } = getGlobalUserState();
|
|
122648
|
-
|
|
122649
|
-
|
|
122650
|
-
}
|
|
122651
|
-
else {
|
|
122652
|
-
email.endsWith("bigbinary.com") && removeCredentialFile();
|
|
122653
|
-
}
|
|
122602
|
+
const domain = IS_STAGING_ENV ? "example.com" : "bigbinary.com";
|
|
122603
|
+
email.endsWith(domain) && removeCredentialFile();
|
|
122654
122604
|
readFileSyncIfExists();
|
|
122655
122605
|
}
|
|
122656
122606
|
isStagingOrganizationExpired(getGlobalUserState()?.subdomainName) &&
|
|
@@ -125815,10 +125765,8 @@ async function warmup({ urls = DEFAULT_WARMUP_URLS, timeout = 60_000, } = {}) {
|
|
|
125815
125765
|
try {
|
|
125816
125766
|
for (const url of urls) {
|
|
125817
125767
|
const fullUrl = url.startsWith("http") ? url : `${baseURL}${url}`;
|
|
125818
|
-
|
|
125819
|
-
|
|
125820
|
-
timeout,
|
|
125821
|
-
});
|
|
125768
|
+
// eslint-disable-next-line playwright/no-networkidle
|
|
125769
|
+
await page.goto(fullUrl, { waitUntil: "networkidle", timeout });
|
|
125822
125770
|
}
|
|
125823
125771
|
}
|
|
125824
125772
|
finally {
|
|
@@ -125833,7 +125781,8 @@ const CONFIG$1 = {
|
|
|
125833
125781
|
MAX_WAIT_MS: 120_000,
|
|
125834
125782
|
EMAIL_INIT: "/tmp/neeto-auth-web/config/initializers/playwright_email_capture.rb",
|
|
125835
125783
|
};
|
|
125836
|
-
const
|
|
125784
|
+
const __dirname$2 = getDirname(import.meta.url);
|
|
125785
|
+
const SCRIPTS_DIR$1 = path.join(__dirname$2, "scripts", "neeto-auth");
|
|
125837
125786
|
const escapeRubyString = (value) => value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
125838
125787
|
const buildEmailCaptureInitializer = (targetApp) => {
|
|
125839
125788
|
const template = fs.readFileSync(path.join(SCRIPTS_DIR$1, "playwright_email_capture.rb.template"), "utf-8");
|
|
@@ -125993,7 +125942,8 @@ const CONFIG = {
|
|
|
125993
125942
|
};
|
|
125994
125943
|
const DEFAULT_STATE = { pid: null, refCount: 0 };
|
|
125995
125944
|
const WIDGET_BASE_URL = `http://localhost:${CONFIG.PORT}`;
|
|
125996
|
-
const
|
|
125945
|
+
const __dirname$1 = getDirname(import.meta.url);
|
|
125946
|
+
const SCRIPTS_DIR = path.join(__dirname$1, "scripts", "neeto-chat-widget");
|
|
125997
125947
|
const log = (msg) => console.log(`[NeetoChatWidget] ${msg}`);
|
|
125998
125948
|
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
125999
125949
|
const httpCheck = (timeout = 3000) => new Promise(resolve => {
|
|
@@ -126310,17 +126260,17 @@ class EmailDeliveryUtils {
|
|
|
126310
126260
|
};
|
|
126311
126261
|
}
|
|
126312
126262
|
|
|
126313
|
-
var main
|
|
126263
|
+
var main = {exports: {}};
|
|
126314
126264
|
|
|
126315
126265
|
var version = "17.3.1";
|
|
126316
126266
|
var require$$4 = {
|
|
126317
126267
|
version: version};
|
|
126318
126268
|
|
|
126319
|
-
var hasRequiredMain
|
|
126269
|
+
var hasRequiredMain;
|
|
126320
126270
|
|
|
126321
|
-
function requireMain
|
|
126322
|
-
if (hasRequiredMain
|
|
126323
|
-
hasRequiredMain
|
|
126271
|
+
function requireMain () {
|
|
126272
|
+
if (hasRequiredMain) return main.exports;
|
|
126273
|
+
hasRequiredMain = 1;
|
|
126324
126274
|
const fs = fs__default;
|
|
126325
126275
|
const path = path__default;
|
|
126326
126276
|
const os$1 = os;
|
|
@@ -126743,130 +126693,20 @@ function requireMain$1 () {
|
|
|
126743
126693
|
populate
|
|
126744
126694
|
};
|
|
126745
126695
|
|
|
126746
|
-
main
|
|
126747
|
-
main
|
|
126748
|
-
main
|
|
126749
|
-
main
|
|
126750
|
-
main
|
|
126751
|
-
main
|
|
126752
|
-
main
|
|
126753
|
-
|
|
126754
|
-
main$1.exports = DotenvModule;
|
|
126755
|
-
return main$1.exports;
|
|
126756
|
-
}
|
|
126757
|
-
|
|
126758
|
-
var mainExports$1 = requireMain$1();
|
|
126759
|
-
var dotenv = /*@__PURE__*/getDefaultExportFromCjs(mainExports$1);
|
|
126760
|
-
|
|
126761
|
-
var main = {};
|
|
126762
|
-
|
|
126763
|
-
var hasRequiredMain;
|
|
126764
|
-
|
|
126765
|
-
function requireMain () {
|
|
126766
|
-
if (hasRequiredMain) return main;
|
|
126767
|
-
hasRequiredMain = 1;
|
|
126768
|
-
|
|
126769
|
-
function _resolveEscapeSequences (value) {
|
|
126770
|
-
return value.replace(/\\\$/g, '$')
|
|
126771
|
-
}
|
|
126772
|
-
|
|
126773
|
-
function expandValue (value, processEnv, runningParsed) {
|
|
126774
|
-
const env = { ...runningParsed, ...processEnv }; // process.env wins
|
|
126775
|
-
|
|
126776
|
-
const regex = /(?<!\\)\${([^{}]+)}|(?<!\\)\$([A-Za-z_][A-Za-z0-9_]*)/g;
|
|
126777
|
-
|
|
126778
|
-
let result = value;
|
|
126779
|
-
let match;
|
|
126780
|
-
const seen = new Set(); // self-referential checker
|
|
126781
|
-
|
|
126782
|
-
while ((match = regex.exec(result)) !== null) {
|
|
126783
|
-
seen.add(result);
|
|
126784
|
-
|
|
126785
|
-
const [template, bracedExpression, unbracedExpression] = match;
|
|
126786
|
-
const expression = bracedExpression || unbracedExpression;
|
|
126787
|
-
|
|
126788
|
-
// match the operators `:+`, `+`, `:-`, and `-`
|
|
126789
|
-
const opRegex = /(:\+|\+|:-|-)/;
|
|
126790
|
-
// find first match
|
|
126791
|
-
const opMatch = expression.match(opRegex);
|
|
126792
|
-
const splitter = opMatch ? opMatch[0] : null;
|
|
126793
|
-
|
|
126794
|
-
const r = expression.split(splitter);
|
|
126795
|
-
|
|
126796
|
-
let defaultValue;
|
|
126797
|
-
let value;
|
|
126798
|
-
|
|
126799
|
-
const key = r.shift();
|
|
126800
|
-
|
|
126801
|
-
if ([':+', '+'].includes(splitter)) {
|
|
126802
|
-
defaultValue = env[key] ? r.join(splitter) : '';
|
|
126803
|
-
value = null;
|
|
126804
|
-
} else {
|
|
126805
|
-
defaultValue = r.join(splitter);
|
|
126806
|
-
value = env[key];
|
|
126807
|
-
}
|
|
126808
|
-
|
|
126809
|
-
if (value) {
|
|
126810
|
-
// self-referential check
|
|
126811
|
-
if (seen.has(value)) {
|
|
126812
|
-
result = result.replace(template, defaultValue);
|
|
126813
|
-
} else {
|
|
126814
|
-
result = result.replace(template, value);
|
|
126815
|
-
}
|
|
126816
|
-
} else {
|
|
126817
|
-
result = result.replace(template, defaultValue);
|
|
126818
|
-
}
|
|
126819
|
-
|
|
126820
|
-
// if the result equaled what was in process.env and runningParsed then stop expanding
|
|
126821
|
-
if (result === runningParsed[key]) {
|
|
126822
|
-
break
|
|
126823
|
-
}
|
|
126824
|
-
|
|
126825
|
-
regex.lastIndex = 0; // reset regex search position to re-evaluate after each replacement
|
|
126826
|
-
}
|
|
126827
|
-
|
|
126828
|
-
return result
|
|
126829
|
-
}
|
|
126830
|
-
|
|
126831
|
-
function expand (options) {
|
|
126832
|
-
// for use with progressive expansion
|
|
126833
|
-
const runningParsed = {};
|
|
126834
|
-
|
|
126835
|
-
let processEnv = process.env;
|
|
126836
|
-
if (options && options.processEnv != null) {
|
|
126837
|
-
processEnv = options.processEnv;
|
|
126838
|
-
}
|
|
126839
|
-
|
|
126840
|
-
// dotenv.config() ran before this so the assumption is process.env has already been set
|
|
126841
|
-
for (const key in options.parsed) {
|
|
126842
|
-
let value = options.parsed[key];
|
|
126843
|
-
|
|
126844
|
-
// short-circuit scenario: process.env was already set prior to the file value
|
|
126845
|
-
if (processEnv[key] && processEnv[key] !== value) {
|
|
126846
|
-
value = processEnv[key];
|
|
126847
|
-
} else {
|
|
126848
|
-
value = expandValue(value, processEnv, runningParsed);
|
|
126849
|
-
}
|
|
126850
|
-
|
|
126851
|
-
options.parsed[key] = _resolveEscapeSequences(value);
|
|
126852
|
-
|
|
126853
|
-
// for use with progressive expansion
|
|
126854
|
-
runningParsed[key] = _resolveEscapeSequences(value);
|
|
126855
|
-
}
|
|
126856
|
-
|
|
126857
|
-
for (const processKey in options.parsed) {
|
|
126858
|
-
processEnv[processKey] = options.parsed[processKey];
|
|
126859
|
-
}
|
|
126860
|
-
|
|
126861
|
-
return options
|
|
126862
|
-
}
|
|
126696
|
+
main.exports.configDotenv = DotenvModule.configDotenv;
|
|
126697
|
+
main.exports._configVault = DotenvModule._configVault;
|
|
126698
|
+
main.exports._parseVault = DotenvModule._parseVault;
|
|
126699
|
+
main.exports.config = DotenvModule.config;
|
|
126700
|
+
main.exports.decrypt = DotenvModule.decrypt;
|
|
126701
|
+
main.exports.parse = DotenvModule.parse;
|
|
126702
|
+
main.exports.populate = DotenvModule.populate;
|
|
126863
126703
|
|
|
126864
|
-
main.
|
|
126865
|
-
return main;
|
|
126704
|
+
main.exports = DotenvModule;
|
|
126705
|
+
return main.exports;
|
|
126866
126706
|
}
|
|
126867
126707
|
|
|
126868
126708
|
var mainExports = requireMain();
|
|
126869
|
-
var
|
|
126709
|
+
var dotenv = /*@__PURE__*/getDefaultExportFromCjs(mainExports);
|
|
126870
126710
|
|
|
126871
126711
|
const E2E_TEST_DIR = "e2e/tests";
|
|
126872
126712
|
const LOG_PREFIX = "[playwright.config]";
|
|
@@ -126927,11 +126767,11 @@ const parseSpecPatterns = () => {
|
|
|
126927
126767
|
};
|
|
126928
126768
|
|
|
126929
126769
|
// @ts-check
|
|
126930
|
-
const loadEnv = (path) => dotenvExpand.expand(dotenv.config({ path, quiet: true }));
|
|
126931
126770
|
const envBasePath = "./e2e/config/.env";
|
|
126932
126771
|
const envLocalPath = `${envBasePath}.local`;
|
|
126933
126772
|
const reporterPackageName = "@bigbinary/neeto-playwright-reporter";
|
|
126934
126773
|
process.env.TEST_ENV = process.env.TEST_ENV ?? ENVIRONMENT.development;
|
|
126774
|
+
const loadEnv = (path) => dotenv.config({ path, quiet: true });
|
|
126935
126775
|
loadEnv(`${envBasePath}.${process.env.TEST_ENV}`);
|
|
126936
126776
|
fs.existsSync(envLocalPath) && loadEnv(envLocalPath);
|
|
126937
126777
|
const playdashStagingConfig = {
|
|
@@ -127135,5 +126975,4 @@ const definePlaywrightConfig = (overrides) => {
|
|
|
127135
126975
|
});
|
|
127136
126976
|
};
|
|
127137
126977
|
|
|
127138
|
-
export { ACTIONS, ADMIN_PANEL_SELECTORS, ALL_RESOURCES, ANALYTICS_RESOURCES, API_KEYS_SELECTORS, API_ROUTES, APP_RESOURCES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, AuditLogsPage, BASE_URL, CALENDAR_LABELS, 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, ColorPickerUtils, CustomCommands, CustomDomainApi, CustomDomainPage, DATE_FORMATS, 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, EmailDeliveryUtils, EmbedBase, FILE_FORMATS, FONTS_RESOURCES, FONT_SIZE_SELECTORS, FROM_EMAIL_ENV_KEYS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_ROUTES, HELP_CENTER_SELECTORS, HelpAndProfilePage, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_CI, IS_DEV_ENV, IS_STAGING_ENV, ImageUploader, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, 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, NeetoAuthServer, NeetoChatWidget, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PRODUCT_ROLES_ROUTE_MAP, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_NAMES, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RailsEmailApiClient, 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_RESOURCES, 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, hexToRGB, hexToRGBA, i18nFixture, imageRegex, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, isStagingOrganizationExpired, joinHyphenCase, joinString, login, loginWithoutSSO, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, withCookieCache, writeDataToFile };
|
|
127139
|
-
//# sourceMappingURL=index.js.map
|
|
126978
|
+
export { ACTIONS, ADMIN_PANEL_SELECTORS, ALL_RESOURCES, ANALYTICS_RESOURCES, API_KEYS_SELECTORS, API_ROUTES, APP_RESOURCES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, AuditLogsPage, BASE_URL, CALENDAR_LABELS, 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, ColorPickerUtils, CustomCommands, CustomDomainApi, CustomDomainPage, DATE_FORMATS, 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, EmailDeliveryUtils, EmbedBase, FILE_FORMATS, FONTS_RESOURCES, FONT_SIZE_SELECTORS, FROM_EMAIL_ENV_KEYS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_ROUTES, HELP_CENTER_SELECTORS, HelpAndProfilePage, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_CI, IS_DEV_ENV, IS_STAGING_ENV, ImageUploader, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, 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, NeetoAuthServer, NeetoChatWidget, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PRODUCT_ROLES_ROUTE_MAP, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_NAMES, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RailsEmailApiClient, 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_RESOURCES, 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, getDirname, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, hexToRGB, hexToRGBA, i18nFixture, imageRegex, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, isStagingOrganizationExpired, joinHyphenCase, joinString, login, loginWithoutSSO, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, withCookieCache, writeDataToFile };
|
package/package.json
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-playwright-commons",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "A package encapsulating common playwright code across neeto projects.",
|
|
5
5
|
"repository": "git@github.com:bigbinary/neeto-playwright-commons.git",
|
|
6
6
|
"license": "apache-2.0",
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
|
|
7
|
+
"type": "module",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./index.d.ts",
|
|
11
|
+
"import": "./index.js"
|
|
12
|
+
},
|
|
13
|
+
"./configs/*": "./configs/*"
|
|
14
|
+
},
|
|
10
15
|
"scripts": {
|
|
11
16
|
"prepare": "husky install",
|
|
12
17
|
"build": "NODE_ENV=production tsc && rollup -c rollup.config.mjs && yarn build:jsdoc",
|
|
@@ -85,7 +90,6 @@
|
|
|
85
90
|
"@bigbinary/neeto-commons-frontend": "^4.13.120",
|
|
86
91
|
"countries-list": "^3.3.0",
|
|
87
92
|
"dotenv": "17.3.1",
|
|
88
|
-
"dotenv-expand": "12.0.3",
|
|
89
93
|
"ioredis": "^5.4.1",
|
|
90
94
|
"jimp": "1.6.0",
|
|
91
95
|
"jsqr": "1.4.0",
|