@bigbinary/neeto-playwright-commons 3.0.5 → 3.0.7

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.d.ts CHANGED
@@ -146,7 +146,7 @@ declare class CustomCommands {
146
146
  blockExternalResources: (page?: Page) => Promise<void[]>;
147
147
  blockInternalResources: (page?: Page) => Promise<void[]>;
148
148
  blockNonEssentialResourceTypes: (page?: Page) => Promise<void>;
149
- blockAllResources: (page?: Page) => Promise<[void[], void[], void]>;
149
+ blockAllResources: (page?: Page) => Promise<[void, ...void[]]>;
150
150
  /**
151
151
  *
152
152
  * Command to wait for the floating action menu button to be visible. This method waits for the floating action menu button with a timeout of 25 seconds.
@@ -689,6 +689,38 @@ declare class CustomCommands {
689
689
  * console.error("Failed to fetch user data:", userResult.error);
690
690
  * }
691
691
  * @endexample
692
+ * Aborts requests whose URL matches any glob in THIRD_PARTY_RESOURCES (analytics, ads, chat widgets, consent banners, third-party CDNs, etc.).
693
+ *
694
+ * page (optional): The Playwright Page whose browser context should receive the route handlers. Defaults to this.page.
695
+ *
696
+ * @example
697
+ *
698
+ * await neetoPlaywrightUtilities.blockExternalResources(otherPage);
699
+ * @endexample
700
+ * Aborts requests matching APP_RESOURCES (e.g. Neeto widgets, selected font hosts, Cloudflare RUM, and other in-app URLs defined in routes.ts).
701
+ *
702
+ * page (optional): The Playwright Page whose browser context should receive the route handlers. Defaults to this.page.
703
+ *
704
+ * @example
705
+ *
706
+ * await neetoPlaywrightUtilities.blockInternalResources();
707
+ * @endexample
708
+ * Registers a single catch-all route on **/* and aborts requests whose resourceType is image, stylesheet, or font; everything else is continued. This reduces bandwidth and layout work while still allowing documents, scripts, XHR/fetch, etc. (unless also matched by other routes).
709
+ *
710
+ * page (optional): The Playwright Page whose browser context should receive the route handlers. Defaults to this.page.
711
+ *
712
+ * @example
713
+ *
714
+ * await neetoPlaywrightUtilities.blockNonEssentialResourceTypes();
715
+ * @endexample
716
+ * Applies the same URL abort rules as blockExternalResources and blockInternalResources together, but merges and deduplicates glob patterns first. Then applies blockNonEssentialResourceTypes.
717
+ *
718
+ * page (optional): The Playwright Page whose browser context should receive the combined route handlers. Defaults to this.page.
719
+ *
720
+ * @example
721
+ *
722
+ * await neetoPlaywrightUtilities.blockAllResources();
723
+ * @endexample
692
724
  */
693
725
  executeWithErrorHandling: <T>(asyncFn: () => Promise<T>) => Promise<ErrorHandlingResponse<T>>;
694
726
  /**
@@ -783,53 +815,6 @@ declare class MemberApis {
783
815
  update: (memberId: string, body: Record<string, unknown>) => Promise<playwright_core.APIResponse | undefined>;
784
816
  bulkUpdate: (body: Record<string, unknown>) => Promise<playwright_core.APIResponse | undefined>;
785
817
  }
786
- type EmailDeliveryProvider = "gmail" | "outlook";
787
- interface EmailDeliveryConnectParams {
788
- emailProvider: EmailDeliveryProvider;
789
- refreshToken: string;
790
- ownerId?: string;
791
- }
792
- interface EmailDeliveryVerifyEmailParams {
793
- emailProvider: EmailDeliveryProvider;
794
- subject: string;
795
- to: string;
796
- from: string;
797
- body?: string;
798
- ownerId?: string;
799
- }
800
- interface EmailDeliveryVerifiedEmail {
801
- subject: string;
802
- from: string;
803
- to: string;
804
- date: string;
805
- body: string;
806
- }
807
- interface EmailDeliveryVerifyEmailResponse {
808
- exists: boolean;
809
- email?: EmailDeliveryVerifiedEmail;
810
- }
811
- declare class NeetoEmailDeliveryApi {
812
- private neetoPlaywrightUtilities;
813
- constructor(neetoPlaywrightUtilities: CustomCommands);
814
- /**
815
- *
816
- * Connects an integration. It takes the following parameters:
817
- *
818
- * skipGoTo: Boolean indicating whether to skip navigating to integration index (default: false).
819
- *
820
- * @example
821
- *
822
- * await integrationBase.connect();
823
- * // OR
824
- * await integrationBase.connect(true);
825
- * @endexample
826
- */
827
- connect: ({
828
- ownerId,
829
- ...payload
830
- }: EmailDeliveryConnectParams) => Promise<playwright_core.APIResponse | undefined>;
831
- verifyEmail: (params: EmailDeliveryVerifyEmailParams) => Promise<playwright_core.APIResponse | undefined>;
832
- }
833
818
  type EmailAddress = string | string[];
834
819
  interface RailsEmailAttachment {
835
820
  name: string;
@@ -5706,10 +5691,11 @@ declare const HELP_CENTER_ROUTES: {
5706
5691
  kbDocs: (product: NeetoProducts) => string;
5707
5692
  changelog: (product: NeetoProducts) => string;
5708
5693
  };
5709
- declare const ANALYTICS_RESOURCES: string[];
5710
- declare const FONTS_RESOURCES: string[];
5711
- declare const THIRD_PARTY_RESOURCES: string[];
5712
- declare const APP_RESOURCES: string[];
5694
+ declare const ANALYTICS_RESOURCES: readonly ["**/analytics/**", "**/mixpanel/**", "**/static.cloudflareinsights.com/**"];
5695
+ declare const FONTS_RESOURCES: readonly ["**/fonts.googleapis.com/**", "**/fonts.gstatic.com/**", "**/api.fontshare.com/**"];
5696
+ declare const THIRD_PARTY_RESOURCES: readonly ["**/analytics/**", "**/mixpanel/**", "**/static.cloudflareinsights.com/**", "**amazon-adsystem.com/**", "**paa-reporting-advertising.amazon/**", "**adsrvr.org/**", "**adnxs.com/**", "**doubleclick.net/**", "**googlesyndication.com/**", "**googletagmanager.com/**", "**bat.bing.com/**", "**connect.facebook.net/**", "**facebook.com/**", "**ads.linkedin.com/**", "**snap.licdn.com/**", "**linkedin.com/**", "**analytics.tiktok.com/**", "**tiktokw.us/**", "**alb.reddit.com/**", "**redditstatic.com/**", "**pixel-config.reddit.com/**", "**bidswitch.net/**", "**casalemedia.com/**", "**pubmatic.com/**", "**rubiconproject.com/**", "**podscribe.com/**", "**trkn.us/**", "**usbrowserspeed.com/**", "**amplitude.com/**", "**segment.com/**", "**clearbitjs.com/**", "**clearbitscripts.com/**", "**clearbit.com/**", "**builder.io/**", "**influ2.com/**", "**axiom-vitals.com/**", "**qualtrics.com/**", "**hubspot.com/**", "**hs-scripts.com/**", "**hs-analytics.net/**", "**hsadspixel.net/**", "**hs-banner.com/**", "**hsforms.com/**", "**hubapi.com/**", "**sentry.io/**", "**bugsnag.com/**", "**datadoghq.com/**", "**datadoghq-browser-agent.com/**", "**fullstory.com/**", "**intercom.io/**", "**intercomcdn.com/**", "**ada.support/**", "**sprig.com/**", "**split.io/**", "**cookielaw.org/**", "**onetrust.com/**", "**cdn.zapier.com/**", "**design-system-bff.zapier.com/**", "**ably.net/**", "**browser.events.data.microsoft.com/**"];
5697
+ declare const APP_RESOURCES: readonly ["**/analytics/**", "**/mixpanel/**", "**/static.cloudflareinsights.com/**", "**/fonts.googleapis.com/**", "**/fonts.gstatic.com/**", "**/api.fontshare.com/**", "**/neeto-widget**", "**/neeto-engage-widget**", "**.neetoreplay.net", "**neeto-replay**.amazonaws.com/**", "**/cdn-cgi/rum?", "**.neetochat.net/**", "**.neetoengage.net/**", "**/sticky_ribbons", "**/neeto_widget_tokens"];
5698
+ declare const ALL_RESOURCES: ("**/analytics/**" | "**/mixpanel/**" | "**/static.cloudflareinsights.com/**" | "**amazon-adsystem.com/**" | "**paa-reporting-advertising.amazon/**" | "**adsrvr.org/**" | "**adnxs.com/**" | "**doubleclick.net/**" | "**googlesyndication.com/**" | "**googletagmanager.com/**" | "**bat.bing.com/**" | "**connect.facebook.net/**" | "**facebook.com/**" | "**ads.linkedin.com/**" | "**snap.licdn.com/**" | "**linkedin.com/**" | "**analytics.tiktok.com/**" | "**tiktokw.us/**" | "**alb.reddit.com/**" | "**redditstatic.com/**" | "**pixel-config.reddit.com/**" | "**bidswitch.net/**" | "**casalemedia.com/**" | "**pubmatic.com/**" | "**rubiconproject.com/**" | "**podscribe.com/**" | "**trkn.us/**" | "**usbrowserspeed.com/**" | "**amplitude.com/**" | "**segment.com/**" | "**clearbitjs.com/**" | "**clearbitscripts.com/**" | "**clearbit.com/**" | "**builder.io/**" | "**influ2.com/**" | "**axiom-vitals.com/**" | "**qualtrics.com/**" | "**hubspot.com/**" | "**hs-scripts.com/**" | "**hs-analytics.net/**" | "**hsadspixel.net/**" | "**hs-banner.com/**" | "**hsforms.com/**" | "**hubapi.com/**" | "**sentry.io/**" | "**bugsnag.com/**" | "**datadoghq.com/**" | "**datadoghq-browser-agent.com/**" | "**fullstory.com/**" | "**intercom.io/**" | "**intercomcdn.com/**" | "**ada.support/**" | "**sprig.com/**" | "**split.io/**" | "**cookielaw.org/**" | "**onetrust.com/**" | "**cdn.zapier.com/**" | "**design-system-bff.zapier.com/**" | "**ably.net/**" | "**browser.events.data.microsoft.com/**" | "**/fonts.googleapis.com/**" | "**/fonts.gstatic.com/**" | "**/api.fontshare.com/**" | "**/neeto-widget**" | "**/neeto-engage-widget**" | "**.neetoreplay.net" | "**neeto-replay**.amazonaws.com/**" | "**/cdn-cgi/rum?" | "**.neetochat.net/**" | "**.neetoengage.net/**" | "**/sticky_ribbons" | "**/neeto_widget_tokens")[];
5713
5699
  interface NetworkConditionsParams {
5714
5700
  offline: boolean;
5715
5701
  downloadThroughput: number;
@@ -8974,6 +8960,58 @@ declare class NeetoAuthServer {
8974
8960
  start: () => Promise<void>;
8975
8961
  stop: () => Promise<void>;
8976
8962
  }
8963
+ type EmailDeliveryProvider = "gmail" | "outlook" | "sparkpost";
8964
+ type OAuthEmailDeliveryProvider = Exclude<EmailDeliveryProvider, "sparkpost">;
8965
+ type EmailDeliveryConnectParams = {
8966
+ emailProvider: OAuthEmailDeliveryProvider;
8967
+ refreshToken: string;
8968
+ ownerId?: string;
8969
+ } | {
8970
+ emailProvider: "sparkpost";
8971
+ email: string;
8972
+ ownerId?: string;
8973
+ };
8974
+ interface EmailDeliveryVerifyEmailParams {
8975
+ emailProvider: EmailDeliveryProvider;
8976
+ subject: string;
8977
+ to: string;
8978
+ from: string;
8979
+ body?: string;
8980
+ ownerId?: string;
8981
+ }
8982
+ interface EmailDeliveryVerifiedEmail {
8983
+ subject: string;
8984
+ from: string;
8985
+ to: string;
8986
+ date: string;
8987
+ body: string | null;
8988
+ }
8989
+ interface EmailDeliveryVerifyEmailResponse {
8990
+ exists: boolean;
8991
+ email?: EmailDeliveryVerifiedEmail;
8992
+ }
8993
+ declare class NeetoEmailDeliveryApi {
8994
+ private neetoPlaywrightUtilities;
8995
+ constructor(neetoPlaywrightUtilities: CustomCommands);
8996
+ /**
8997
+ *
8998
+ * Connects an integration. It takes the following parameters:
8999
+ *
9000
+ * skipGoTo: Boolean indicating whether to skip navigating to integration index (default: false).
9001
+ *
9002
+ * @example
9003
+ *
9004
+ * await integrationBase.connect();
9005
+ * // OR
9006
+ * await integrationBase.connect(true);
9007
+ * @endexample
9008
+ */
9009
+ connect: ({
9010
+ ownerId,
9011
+ ...payload
9012
+ }: EmailDeliveryConnectParams) => Promise<playwright_core.APIResponse | undefined>;
9013
+ verifyEmail: (params: EmailDeliveryVerifyEmailParams) => Promise<playwright_core.APIResponse | undefined>;
9014
+ }
8977
9015
  interface ConnectRequestParams {
8978
9016
  provider: EmailDeliveryProvider;
8979
9017
  ownerId?: string;
@@ -9056,5 +9094,5 @@ interface Overrides {
9056
9094
  * @endexample
9057
9095
  */
9058
9096
  declare const definePlaywrightConfig: (overrides: Overrides) => PlaywrightTestConfig<{}, {}>;
9059
- export { ACTIONS, ADMIN_PANEL_SELECTORS, 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, 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, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, 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, joinHyphenCase, joinString, login, loginWithoutSSO, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, writeDataToFile };
9060
- export type { BaseThemeStyle, BaseThemeStyleType, ColumnMenuAction, CountryProps, CustomFixture, EmailDeliveryConnectParams, EmailDeliveryProvider, EmailDeliveryVerifiedEmail, EmailDeliveryVerifyEmailParams, EmailDeliveryVerifyEmailResponse, EmailMatchCriteria, IntroPageThemeStyle, IntroPageThemeStyleType, ProjectName, ThemeCategory, ValueOf };
9097
+ 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, 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, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, 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, joinHyphenCase, joinString, login, loginWithoutSSO, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, writeDataToFile };
9098
+ export type { BaseThemeStyle, BaseThemeStyleType, ColumnMenuAction, CountryProps, CustomFixture, EmailDeliveryConnectParams, EmailDeliveryProvider, EmailDeliveryVerifiedEmail, EmailDeliveryVerifyEmailParams, EmailDeliveryVerifyEmailResponse, EmailMatchCriteria, IntroPageThemeStyle, IntroPageThemeStyleType, OAuthEmailDeliveryProvider, ProjectName, ThemeCategory, ValueOf };
package/index.js CHANGED
@@ -217,6 +217,7 @@ const APP_RESOURCES = [
217
217
  "**/sticky_ribbons",
218
218
  "**/neeto_widget_tokens",
219
219
  ];
220
+ const ALL_RESOURCES = Array.from(new Set([...THIRD_PARTY_RESOURCES, ...APP_RESOURCES]));
220
221
 
221
222
  class ApiKeysApi {
222
223
  neetoPlaywrightUtilities;
@@ -319,23 +320,6 @@ class MemberApis {
319
320
  });
320
321
  }
321
322
 
322
- const NEETO_EMAIL_DELIVERY_TESTING_BASE_URL = "/neeto_email_delivery/api/v1/testing";
323
- class NeetoEmailDeliveryApi {
324
- neetoPlaywrightUtilities;
325
- constructor(neetoPlaywrightUtilities) {
326
- this.neetoPlaywrightUtilities = neetoPlaywrightUtilities;
327
- }
328
- connect = ({ ownerId, ...payload }) => this.neetoPlaywrightUtilities.apiRequest({
329
- method: "post",
330
- url: `${NEETO_EMAIL_DELIVERY_TESTING_BASE_URL}/connect`,
331
- body: keysToSnakeCase({ ownerId, connect: payload }),
332
- });
333
- verifyEmail = (params) => this.neetoPlaywrightUtilities.apiRequest({
334
- url: `${NEETO_EMAIL_DELIVERY_TESTING_BASE_URL}/verify_email`,
335
- params: keysToSnakeCase(params),
336
- });
337
- }
338
-
339
323
  class RailsEmailApiClient {
340
324
  port = process.env.RAILS_SERVER_PORT;
341
325
  subdomain = process.env.SUBDOMAIN ?? "spinkart";
@@ -6020,13 +6004,12 @@ class CustomCommands {
6020
6004
  blockInternalResources = (page = this.page) => Promise.all(APP_RESOURCES.map(pattern => page.context().route(pattern, route => route.abort())));
6021
6005
  blockNonEssentialResourceTypes = (page = this.page) => page
6022
6006
  .context()
6023
- .route("**/*", route => ["image", "stylesheet", "font", "media"].includes(route.request().resourceType())
6007
+ .route("**/*", route => ["image", "stylesheet", "font"].includes(route.request().resourceType())
6024
6008
  ? route.abort()
6025
- : route.continue());
6009
+ : route.fallback());
6026
6010
  blockAllResources = (page = this.page) => Promise.all([
6027
- this.blockExternalResources(page),
6028
- this.blockInternalResources(page),
6029
6011
  this.blockNonEssentialResourceTypes(page),
6012
+ ...ALL_RESOURCES.map(pattern => page.context().route(pattern, route => route.abort())),
6030
6013
  ]);
6031
6014
  waitForFloatingMenu = () => expect(this.page.getByTestId(COMMON_SELECTORS.floatingActionMenuButton)).toBeVisible({ timeout: 25_000 });
6032
6015
  interceptMultipleResponses = ({ responseUrl = "", responseStatus = 200, times = 1, baseUrl, customPageContext = this.page, timeout = 35_000, } = {}) => Promise.all([...new Array(times)].map(() => customPageContext.waitForResponse((response) => {
@@ -8811,7 +8794,6 @@ class OrganizationPage {
8811
8794
  await fillCredentialsAndSubmit({ page: this.page, email });
8812
8795
  return;
8813
8796
  }
8814
- await this.neetoPlaywrightUtilities.blockInternalResources();
8815
8797
  await this.fillEmailAndSubmit(email, loginTimeout);
8816
8798
  await this.fillOTP();
8817
8799
  await this.dismissAuthenticatorSetupPromptIfPresent();
@@ -8877,7 +8859,6 @@ class OrganizationPage {
8877
8859
  }
8878
8860
  else {
8879
8861
  let otp = "123456";
8880
- await this.neetoPlaywrightUtilities.blockInternalResources();
8881
8862
  await this.page.goto(`${ROUTES.neetoAuthSignup}?redirect_uri=${credentials.domain}`, { timeout: 20_000 });
8882
8863
  await this.submitEmail(credentials.email);
8883
8864
  if (fetchOtpFromEmail !== undefined) {
@@ -125276,6 +125257,23 @@ class NeetoAuthServer {
125276
125257
  };
125277
125258
  }
125278
125259
 
125260
+ const NEETO_EMAIL_DELIVERY_TESTING_BASE_URL = "/neeto_email_delivery/api/v1/testing";
125261
+ class NeetoEmailDeliveryApi {
125262
+ neetoPlaywrightUtilities;
125263
+ constructor(neetoPlaywrightUtilities) {
125264
+ this.neetoPlaywrightUtilities = neetoPlaywrightUtilities;
125265
+ }
125266
+ connect = ({ ownerId, ...payload }) => this.neetoPlaywrightUtilities.apiRequest({
125267
+ method: "post",
125268
+ url: `${NEETO_EMAIL_DELIVERY_TESTING_BASE_URL}/connect`,
125269
+ body: keysToSnakeCase({ ownerId, connect: payload }),
125270
+ });
125271
+ verifyEmail = (params) => this.neetoPlaywrightUtilities.apiRequest({
125272
+ url: `${NEETO_EMAIL_DELIVERY_TESTING_BASE_URL}/verify_email`,
125273
+ params: keysToSnakeCase(params),
125274
+ });
125275
+ }
125276
+
125279
125277
  const REFRESH_TOKEN_ENV_KEYS = {
125280
125278
  gmail: "EMAIL_DELIVERY_GMAIL_REFRESH_TOKEN",
125281
125279
  outlook: "EMAIL_DELIVERY_OUTLOOK_REFRESH_TOKEN",
@@ -125283,6 +125281,7 @@ const REFRESH_TOKEN_ENV_KEYS = {
125283
125281
  const FROM_EMAIL_ENV_KEYS = {
125284
125282
  gmail: "EMAIL_DELIVERY_CONNECTED_GMAIL",
125285
125283
  outlook: "EMAIL_DELIVERY_CONNECTED_OUTLOOK",
125284
+ sparkpost: "EMAIL_DELIVERY_CONNECTED_SPARKPOST",
125286
125285
  };
125287
125286
  class EmailDeliveryUtils {
125288
125287
  neetoPlaywrightUtilities;
@@ -125292,6 +125291,20 @@ class EmailDeliveryUtils {
125292
125291
  this.emailDeliveryApi = new NeetoEmailDeliveryApi(neetoPlaywrightUtilities);
125293
125292
  }
125294
125293
  connectViaRequest = async ({ provider, ownerId }) => {
125294
+ if (provider === "sparkpost") {
125295
+ const sparkpostEmailEnvKey = FROM_EMAIL_ENV_KEYS.sparkpost;
125296
+ const email = process.env[sparkpostEmailEnvKey];
125297
+ if (isNil(email)) {
125298
+ throw new Error(`ENV variable ${sparkpostEmailEnvKey} is not properly configured`);
125299
+ }
125300
+ const response = await this.emailDeliveryApi.connect({
125301
+ emailProvider: "sparkpost",
125302
+ email,
125303
+ ownerId,
125304
+ });
125305
+ expect(response?.ok()).toBeTruthy();
125306
+ return response;
125307
+ }
125295
125308
  const refreshTokenEnvKey = REFRESH_TOKEN_ENV_KEYS[provider];
125296
125309
  const refreshToken = process.env[refreshTokenEnvKey];
125297
125310
  if (isNil(refreshToken)) {
@@ -126166,5 +126179,5 @@ const definePlaywrightConfig = (overrides) => {
126166
126179
  });
126167
126180
  };
126168
126181
 
126169
- export { ACTIONS, ADMIN_PANEL_SELECTORS, 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, 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, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, 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, joinHyphenCase, joinString, login, loginWithoutSSO, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, writeDataToFile };
126182
+ 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, 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, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, 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, joinHyphenCase, joinString, login, loginWithoutSSO, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, writeDataToFile };
126170
126183
  //# sourceMappingURL=index.js.map