@applitools/dom-snapshot 4.13.7 → 4.13.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +106 -0
  3. package/dist/browser/aggregateResourceUrlsAndBlobs.d.ts +3 -0
  4. package/dist/browser/arrayBufferToBase64.d.ts +2 -0
  5. package/dist/browser/buildBlobImages.d.ts +3 -0
  6. package/dist/browser/buildBlobVideos.d.ts +3 -0
  7. package/dist/browser/buildCanvasBlobs.d.ts +3 -0
  8. package/dist/browser/constants.d.ts +2 -0
  9. package/dist/browser/createBlob.d.ts +3 -0
  10. package/dist/browser/createTempStyleSheet.d.ts +2 -0
  11. package/dist/browser/cssom/createAstFromCssom.d.ts +2 -0
  12. package/dist/browser/cssom/createAstFromDeclaration.d.ts +2 -0
  13. package/dist/browser/cssom/createAstFromTextContent.d.ts +2 -0
  14. package/dist/browser/cssom/mergeRules.d.ts +2 -0
  15. package/dist/browser/cssom/processInlineCss.d.ts +2 -0
  16. package/dist/browser/cssom/processInlineStyleCss.d.ts +2 -0
  17. package/dist/browser/cssom/styleProperties.d.ts +7 -0
  18. package/dist/browser/cssom/styleSheetToCssText.d.ts +2 -0
  19. package/dist/browser/domNodesToCdt.d.ts +3 -0
  20. package/dist/browser/extractLinksFromElement.d.ts +2 -0
  21. package/dist/browser/extractResourceUrlsFromAdoptedStyleSheets.d.ts +2 -0
  22. package/dist/browser/extractResourceUrlsFromStyleAttrs.d.ts +2 -0
  23. package/dist/browser/extractResourceUrlsFromStyleTags.d.ts +2 -0
  24. package/dist/browser/extractResourcesFromStyle.d.ts +2 -0
  25. package/dist/browser/extractResourcesFromStyleSheet.d.ts +9 -0
  26. package/dist/browser/fetchUrl.d.ts +3 -0
  27. package/dist/browser/filterInlineUrl.d.ts +2 -0
  28. package/dist/browser/findStyleSheetByUrl.d.ts +3 -0
  29. package/dist/browser/flat.d.ts +2 -0
  30. package/dist/browser/generate-safe-selectors.d.ts +2 -0
  31. package/dist/browser/getBaseUrl.d.ts +2 -0
  32. package/dist/browser/getCorsFreeStyleSheet.d.ts +6 -0
  33. package/dist/browser/getElementAttrSelector.d.ts +2 -0
  34. package/dist/browser/getInlineCssCacheKey.d.ts +2 -0
  35. package/dist/browser/getResourceUrlsAndBlobs.d.ts +3 -0
  36. package/dist/browser/getUrlFromCssText.d.ts +5 -0
  37. package/dist/browser/isInvisibleElement.d.ts +2 -0
  38. package/dist/browser/isScreenMediaQuery.d.ts +2 -0
  39. package/dist/browser/log.d.ts +2 -0
  40. package/dist/browser/makeExtractResourcesFromSvg.d.ts +7 -0
  41. package/dist/browser/md5.d.ts +2 -0
  42. package/dist/browser/noop.d.ts +2 -0
  43. package/dist/browser/pollResult.d.ts +1 -0
  44. package/dist/browser/processPage.d.ts +29 -0
  45. package/dist/browser/processPageAndSerialize.d.ts +3 -0
  46. package/dist/browser/processPageAndSerializePoll.d.ts +19 -0
  47. package/dist/browser/processPagePoll.d.ts +2 -0
  48. package/dist/browser/processResource.d.ts +19 -0
  49. package/dist/browser/removeBasicAuthFromUrl.d.ts +2 -0
  50. package/dist/browser/sanitizeAuthUrl.d.ts +2 -0
  51. package/dist/browser/sessionCache.d.ts +3 -0
  52. package/dist/browser/toUnAnchoredUri.d.ts +2 -0
  53. package/dist/browser/toUriEncoding.d.ts +2 -0
  54. package/dist/browser/uniq.d.ts +2 -0
  55. package/dist/browser/uuid.d.ts +2 -0
  56. package/dist/browser/wrapHTMLElement.d.ts +5 -0
  57. package/dist/index.d.ts +6 -0
  58. package/dist/pollResult.js +3 -2
  59. package/dist/pollResult.js.map +1 -0
  60. package/dist/pollResultCjs.js +3 -2
  61. package/dist/pollResultCjs.js.map +1 -0
  62. package/dist/pollResultEs.js +3 -0
  63. package/dist/pollResultEs.js.map +1 -0
  64. package/dist/processPage.js +4 -3
  65. package/dist/processPage.js.map +1 -0
  66. package/dist/processPagePoll.js +4 -3
  67. package/dist/processPagePoll.js.map +1 -0
  68. package/dist/processPagePollCjs.js +4 -3
  69. package/dist/processPagePollCjs.js.map +1 -0
  70. package/dist/processPagePollEs.js +5 -0
  71. package/dist/processPagePollEs.js.map +1 -0
  72. package/dist/types/blob.d.ts +63 -0
  73. package/dist/types/browser.d.ts +52 -0
  74. package/dist/types/css.d.ts +16 -0
  75. package/dist/types/elements.d.ts +19 -0
  76. package/dist/types/index.d.ts +7 -0
  77. package/dist/types/raw-dom-snapshot.d.ts +37 -0
  78. package/dist/types/resources.d.ts +92 -0
  79. package/dist/types/selectors.d.ts +6 -0
  80. package/index.js +1 -1
  81. package/package.json +22 -5
  82. package/src/getScript.js +1 -1
package/CHANGELOG.md CHANGED
@@ -9,6 +9,13 @@
9
9
  - fix style programmatic generated fallback
10
10
  - performance boost
11
11
 
12
+ ## [4.13.8](https://github.com/Applitools-Dev/sdk/compare/js/dom-snapshot@4.13.7...js/dom-snapshot@4.13.8) (2025-10-08)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * support cssom property rule ([#3263](https://github.com/Applitools-Dev/sdk/issues/3263)) ([c142687](https://github.com/Applitools-Dev/sdk/commit/c142687ec075784d0e0fb8f178af01c5e81dad82))
18
+
12
19
  ## [4.13.7](https://github.com/Applitools-Dev/sdk/compare/js/dom-snapshot@4.13.6...js/dom-snapshot@4.13.7) (2025-09-16)
13
20
 
14
21
 
package/README.md CHANGED
@@ -2,6 +2,105 @@
2
2
 
3
3
  Script for extracting resources and DOM in CDT format, to serve as the input for rendering a screenshot with the visual grid.
4
4
 
5
+ ## Package Context & Usage Across Applitools SDKs
6
+
7
+ This package is a core dependency used throughout the Applitools ecosystem:
8
+
9
+ ### Consumer Packages
10
+ - **`@applitools/eyes-selenium`** - Selenium WebDriver integration
11
+ - **`@applitools/eyes-cypress`** - Cypress testing integration
12
+ - **`@applitools/eyes-playwright`** - Playwright testing integration
13
+ - **`@applitools/core`** - Shared core functionality across SDKs
14
+ - **`@applitools/visual-grid-client`** - Visual Grid rendering service
15
+
16
+ ### Usage Patterns
17
+
18
+ #### 1. **Script Injection Pattern** (Most Common)
19
+ Test frameworks inject DOM capture scripts into browser contexts:
20
+
21
+ ```javascript
22
+ // Used by: eyes-selenium, eyes-playwright, etc.
23
+ const { getProcessPage } = require('@applitools/dom-snapshot')
24
+ const script = await getProcessPage()
25
+ const result = await driver.executeScript(`return (${script}).apply(null, arguments);`, args)
26
+ ```
27
+
28
+ #### 2. **Direct Function Execution Pattern**
29
+ Advanced frameworks that pass function objects directly:
30
+
31
+ ```javascript
32
+ // Used by: core package for specific driver capabilities
33
+ const processPagePoll = require('@applitools/dom-snapshot/dist/processPagePollCjs')
34
+ await driver.executePoll({ main: processPagePoll }, args)
35
+ ```
36
+
37
+ #### 3. **Client-Side Bundling Pattern**
38
+ Non-driver based integrations bundle the functions:
39
+
40
+ ```javascript
41
+ // Used by: eyes-cypress (runs in browser context)
42
+ import processPage from '@applitools/dom-snapshot/src/browser/processPage'
43
+ ```
44
+
45
+ ## Design Architecture
46
+
47
+ ### Multi-Format Build Strategy
48
+
49
+ The package provides the same functionality in multiple formats to support different execution contexts:
50
+
51
+ ```
52
+ src/browser/processPage.js
53
+ ├── dist/processPage.js (IIFE - Browser injection)
54
+ └── dist/processPagePollCjs.js (CommonJS - Node.js execution)
55
+ ```
56
+
57
+ ### Format Rationale
58
+
59
+ #### **IIFE (Immediately Invoked Function Expression)**
60
+ - **Purpose**: Browser script injection
61
+ - **Consumers**: All driver-based SDKs (Selenium, Playwright, etc.)
62
+ - **Why**: Self-contained, executes immediately when injected
63
+ - **Example**: `dist/processPage.js`
64
+
65
+ #### **CommonJS**
66
+ - **Purpose**: Direct Node.js function execution
67
+ - **Consumers**: Core package, advanced driver capabilities
68
+ - **Why**: Can be passed as function object to specialized driver methods
69
+ - **Example**: `dist/processPagePollCjs.js`
70
+
71
+ #### **ES Modules**
72
+ - **Purpose**: Client-side bundling
73
+ - **Consumers**: Cypress SDK, other in-browser integrations
74
+ - **Why**: Tree-shakable, modern bundling support
75
+ - **Example**: `src/browser/processPage.js` (raw source)
76
+
77
+ ### Simplified Index Strategy
78
+
79
+ Instead of complex bundling with selective obfuscation, we use **direct imports**:
80
+
81
+ ```javascript
82
+ // Main package exports - simple script getters
83
+ const { getProcessPage, getProcessPagePoll, getPollResult } = require('@applitools/dom-snapshot')
84
+
85
+ // Direct imports for specific formats
86
+ const processPagePoll = require('@applitools/dom-snapshot/dist/processPagePollCjs')
87
+ const pollResult = require('@applitools/dom-snapshot/dist/pollResultCjs')
88
+ ```
89
+
90
+ This approach:
91
+ - ✅ **Eliminates bundling complexity** - No circular dependencies or path resolution issues
92
+ - ✅ **Clear separation of concerns** - Each format serves its specific purpose
93
+ - ✅ **Better tree-shaking** - Consumers import only what they need
94
+ - ✅ **Simpler maintenance** - No selective obfuscation configuration needed
95
+
96
+ ### TypeScript Migration Design
97
+
98
+ **Gradual Migration Strategy:**
99
+ - Coexist `.js` and `.ts` files during transition
100
+ - Rollup handles both formats with TypeScript plugin
101
+ - Build system remains consistent across all outputs
102
+ - Consumer packages unaffected during migration
103
+
5
104
  ## Installing
6
105
 
7
106
  ```sh
@@ -132,3 +231,10 @@ Status could be one of:
132
231
  ## `pollResult`
133
232
 
134
233
  returns the poll result - an object with the same shape as `processPagePoll`.
234
+
235
+
236
+ # Testing
237
+
238
+ 1. yarn test
239
+ 2. cd ../core && yarn test:it -b -g snapshot
240
+
@@ -0,0 +1,3 @@
1
+ import type { ResourceUrlsAndBlobs } from '../types';
2
+ declare function aggregateResourceUrlsAndBlobs(resourceUrlsAndBlobsArr: ResourceUrlsAndBlobs[]): ResourceUrlsAndBlobs;
3
+ export default aggregateResourceUrlsAndBlobs;
@@ -0,0 +1,2 @@
1
+ declare function arrayBufferToBase64(ab: ArrayBuffer): string;
2
+ export default arrayBufferToBase64;
@@ -0,0 +1,3 @@
1
+ import type { ImageBlob, BlobResult, BuildBlobImagesOptions } from '../types';
2
+ declare function buildBlobImages(imageBlobs: ImageBlob[], { doc, fetchedBlobs, log, compress, serialize, sessionCache }: BuildBlobImagesOptions): Promise<BlobResult[] | void>;
3
+ export default buildBlobImages;
@@ -0,0 +1,3 @@
1
+ import type { VideoBlob, BlobResult, BuildBlobVideosOptions } from '../types';
2
+ declare function buildBlobVideos(imageBlobs: VideoBlob[], { doc, fetchedBlobs, compress, serialize, sessionCache }: BuildBlobVideosOptions): Promise<BlobResult[]>;
3
+ export default buildBlobVideos;
@@ -0,0 +1,3 @@
1
+ import type { CanvasElement, BlobResult, BuildCanvasBlobsOptions } from '../types';
2
+ declare function buildCanvasBlobs(canvasElements: CanvasElement[], { log, compress, serialize }: BuildCanvasBlobsOptions): Promise<BlobResult[]>;
3
+ export default buildCanvasBlobs;
@@ -0,0 +1,2 @@
1
+ export declare const EYES_NAMESPACE = "__EYES__APPLITOOLS__";
2
+ export declare const DOM_SNAPSHOT_KEY = "domSnapshotResult";
@@ -0,0 +1,3 @@
1
+ import type { BlobResource, CreateBlobParams } from '../types';
2
+ declare function createBlob({ type, value, compress, serialize }: CreateBlobParams): BlobResource;
3
+ export default createBlob;
@@ -0,0 +1,2 @@
1
+ declare function createTempStylsheet(cssArrayBuffer: ArrayBuffer): CSSStyleSheet;
2
+ export default createTempStylsheet;
@@ -0,0 +1,2 @@
1
+ declare function createAstFromCssom(cssomRules: CSSRuleList): any[];
2
+ export default createAstFromCssom;
@@ -0,0 +1,2 @@
1
+ declare function createAstFromDeclaration(cssomDeclaration: CSSStyleDeclaration): any[];
2
+ export default createAstFromDeclaration;
@@ -0,0 +1,2 @@
1
+ declare function createAstFromTextContent(textContent: string): any;
2
+ export default createAstFromTextContent;
@@ -0,0 +1,2 @@
1
+ declare function mergeRules(textRules: any[], cssomRules: any[]): any[];
2
+ export default mergeRules;
@@ -0,0 +1,2 @@
1
+ declare function processInlineCss(styleNode: HTMLStyleElement, log?: (..._args: any[]) => void): string;
2
+ export default processInlineCss;
@@ -0,0 +1,2 @@
1
+ declare function processInlineStyleCss(cssomDeclaration: CSSStyleDeclaration): string;
2
+ export default processInlineStyleCss;
@@ -0,0 +1,7 @@
1
+ declare function isShorthand(shorthand: string): boolean;
2
+ declare function isShorthandFor(shorthand: string, longhand: string): boolean;
3
+ declare function hasShorthand(longhand: string): boolean;
4
+ declare function hasShorthandWithin(longhand: string, shorthands: string[]): boolean;
5
+ declare function getShorthands(longhand: string): Set<string> | undefined;
6
+ declare function preferredShorthand(longhand: string): string | undefined;
7
+ export { isShorthand, isShorthandFor, hasShorthand, hasShorthandWithin, getShorthands, preferredShorthand };
@@ -0,0 +1,2 @@
1
+ declare function styleSheetToCssText(sheet: CSSStyleSheet): string;
2
+ export default styleSheetToCssText;
@@ -0,0 +1,3 @@
1
+ import type { DomNodesToCdtResult } from '../types';
2
+ declare function domNodesToCdt(docNode: Document | DocumentFragment, baseUrl: string, log?: (..._args: any[]) => void): DomNodesToCdtResult;
3
+ export default domNodesToCdt;
@@ -0,0 +1,2 @@
1
+ declare function extractLinksFromElement(el: Element): string[];
2
+ export default extractLinksFromElement;
@@ -0,0 +1,2 @@
1
+ declare function makeExtractResourceUrlsFromAdoptedStyleSheets(extractResourcesFromStyleSheet: (styleSheet: CSSStyleSheet) => string[]): (doc: Document) => string[];
2
+ export default makeExtractResourceUrlsFromAdoptedStyleSheets;
@@ -0,0 +1,2 @@
1
+ declare function extractResourceUrlsFromStyleAttrs(el: Element): string[] | undefined;
2
+ export default extractResourceUrlsFromStyleAttrs;
@@ -0,0 +1,2 @@
1
+ declare function makeExtractResourceUrlsFromStyleTags(extractResourcesFromStyleSheet: (styleSheet: CSSStyleSheet) => string[]): (doc: Document, onlyDocStylesheet?: boolean) => string[];
2
+ export default makeExtractResourceUrlsFromStyleTags;
@@ -0,0 +1,2 @@
1
+ declare function extractResourcesFromStyle(style: CSSStyleDeclaration): string[];
2
+ export default extractResourcesFromStyle;
@@ -0,0 +1,9 @@
1
+ interface ExtractResourcesConfig {
2
+ styleSheetCache: {
3
+ [url: string]: CSSStyleSheet;
4
+ };
5
+ CSSRule?: typeof window.CSSRule;
6
+ removeReverseProxyURLPrefixes?: boolean;
7
+ }
8
+ declare function makeExtractResourcesFromStyleSheet({ styleSheetCache, CSSRule, removeReverseProxyURLPrefixes, }: ExtractResourcesConfig): (styleSheet: CSSStyleSheet | CSSGroupingRule) => string[];
9
+ export default makeExtractResourcesFromStyleSheet;
@@ -0,0 +1,3 @@
1
+ import type { FetchUrlResult, FetchUrlOptions } from '../types';
2
+ declare function makeFetchUrl({ fetch, AbortController, timeout, mediaDownloadTimeout, }?: FetchUrlOptions): (url: string) => Promise<FetchUrlResult>;
3
+ export default makeFetchUrl;
@@ -0,0 +1,2 @@
1
+ declare function filterInlineUrl(absoluteUrl: string): boolean;
2
+ export default filterInlineUrl;
@@ -0,0 +1,3 @@
1
+ import type { FindStyleSheetByUrlOptions } from '../types/browser';
2
+ declare function makeFindStyleSheetByUrl({ styleSheetCache }: FindStyleSheetByUrlOptions): (url: string, documents: Document[]) => CSSStyleSheet | undefined;
3
+ export default makeFindStyleSheetByUrl;
@@ -0,0 +1,2 @@
1
+ declare function flat<T>(arr: T[][]): T[];
2
+ export default flat;
@@ -0,0 +1,2 @@
1
+ import type { SafeSelector } from '../types';
2
+ export declare function generateSafeSelectors(elements: Element[][]): (SafeSelector | null)[] | undefined;
@@ -0,0 +1,2 @@
1
+ declare function getBaseUrl(doc: Document): string | undefined;
2
+ export default getBaseUrl;
@@ -0,0 +1,6 @@
1
+ interface CorsFreeStyleSheetResult {
2
+ corsFreeStyleSheet: CSSStyleSheet;
3
+ cleanStyleSheet: () => void;
4
+ }
5
+ declare function getCorsFreeStyleSheet(cssArrayBuffer: ArrayBuffer, styleSheet?: CSSStyleSheet, log?: (..._args: any[]) => void): CorsFreeStyleSheetResult;
6
+ export default getCorsFreeStyleSheet;
@@ -0,0 +1,2 @@
1
+ declare function getElementAttrSelector(el: Element): string;
2
+ export default getElementAttrSelector;
@@ -0,0 +1,2 @@
1
+ declare function getInlineCssCacheKey(styleNode: any): string;
2
+ export default getInlineCssCacheKey;
@@ -0,0 +1,3 @@
1
+ import type { GetResourceUrlsAndBlobsFunction, MakeGetResourceUrlsAndBlobsOptions } from '../types';
2
+ declare function makeGetResourceUrlsAndBlobs({ processResource, aggregateResourceUrlsAndBlobs, }: MakeGetResourceUrlsAndBlobsOptions): GetResourceUrlsAndBlobsFunction;
3
+ export default makeGetResourceUrlsAndBlobs;
@@ -0,0 +1,5 @@
1
+ interface GetUrlFromCssTextOptions {
2
+ removeReverseProxyURLPrefixes?: boolean;
3
+ }
4
+ declare function getUrlFromCssText(cssText: string, { removeReverseProxyURLPrefixes }?: GetUrlFromCssTextOptions): string[];
5
+ export default getUrlFromCssText;
@@ -0,0 +1,2 @@
1
+ declare function isInvisibleElement(element: Element): boolean;
2
+ export default isInvisibleElement;
@@ -0,0 +1,2 @@
1
+ declare function isScreenMediaQuery(media: string): boolean;
2
+ export default isScreenMediaQuery;
@@ -0,0 +1,2 @@
1
+ declare function makeLog(referenceTime: number): (...args: any[]) => void;
2
+ export default makeLog;
@@ -0,0 +1,7 @@
1
+ interface ExtractSvgConfig {
2
+ parser?: DOMParser;
3
+ decoder?: TextDecoder;
4
+ extractResourceUrlsFromStyleTags: (doc: Document, onlyDocStylesheet: boolean) => string[];
5
+ }
6
+ declare function makeExtractResourcesFromSvg({ parser, decoder, extractResourceUrlsFromStyleTags }: ExtractSvgConfig): (svgArrayBuffer: ArrayBuffer) => string[];
7
+ export default makeExtractResourcesFromSvg;
@@ -0,0 +1,2 @@
1
+ declare function md5(s: string): string;
2
+ export default md5;
@@ -0,0 +1,2 @@
1
+ declare const noop: (..._args: any[]) => void;
2
+ export default noop;
@@ -0,0 +1 @@
1
+ export default function (options: any): string;
@@ -0,0 +1,29 @@
1
+ import type { SafeSelector } from '../types';
2
+ export interface ProcessPageOptions {
3
+ doc?: Document;
4
+ showLogs?: boolean;
5
+ useSessionCache?: boolean;
6
+ dontFetchResources?: boolean;
7
+ fetchTimeout?: number;
8
+ skipResources?: string[];
9
+ compressResources?: boolean;
10
+ serializeResources?: boolean;
11
+ removeReverseProxyURLPrefixes?: string[];
12
+ elements?: HTMLElement[][];
13
+ }
14
+ export interface ProcessPageResult {
15
+ cdt: any[];
16
+ url: string;
17
+ srcAttr?: string;
18
+ resourceUrls: string[];
19
+ blobs: any[];
20
+ frames: ProcessPageResult[];
21
+ crossFrames: any[];
22
+ safeSelectors?: SafeSelector[];
23
+ selector?: string;
24
+ baseUri?: string;
25
+ warnings?: string[];
26
+ scriptVersion?: string;
27
+ }
28
+ declare function processPage({ doc, showLogs, useSessionCache, dontFetchResources, fetchTimeout, skipResources, compressResources, serializeResources, removeReverseProxyURLPrefixes, elements, }?: ProcessPageOptions): Promise<ProcessPageResult>;
29
+ export default processPage;
@@ -0,0 +1,3 @@
1
+ import { ProcessPageOptions, ProcessPageResult } from './processPage';
2
+ declare function processPageAndSerialize(options?: ProcessPageOptions): Promise<ProcessPageResult>;
3
+ export default processPageAndSerialize;
@@ -0,0 +1,19 @@
1
+ declare global {
2
+ interface Window {
3
+ [key: string]: any;
4
+ }
5
+ }
6
+ interface ProcessPageOptions {
7
+ doc?: Document;
8
+ showLogs?: boolean;
9
+ useSessionCache?: boolean;
10
+ dontFetchResources?: boolean;
11
+ fetchTimeout?: number;
12
+ skipResources?: string[];
13
+ compressResources?: boolean;
14
+ serializeResources?: boolean;
15
+ removeReverseProxyURLPrefixes?: string[];
16
+ elements?: HTMLElement[];
17
+ }
18
+ declare function processPageAndSerializePoll(options?: ProcessPageOptions): string;
19
+ export default processPageAndSerializePoll;
@@ -0,0 +1,2 @@
1
+ declare function processPagePoll(options: any): string;
2
+ export default processPagePoll;
@@ -0,0 +1,19 @@
1
+ declare function makeProcessResource({ fetchUrl, findStyleSheetByUrl, getCorsFreeStyleSheet, extractResourcesFromStyleSheet, extractResourcesFromSvg, sessionCache, cache, compress, serialize, log, }: {
2
+ fetchUrl: any;
3
+ findStyleSheetByUrl: any;
4
+ getCorsFreeStyleSheet: any;
5
+ extractResourcesFromStyleSheet: any;
6
+ extractResourcesFromSvg: any;
7
+ sessionCache: any;
8
+ cache?: {};
9
+ compress: any;
10
+ serialize: any;
11
+ log?: (..._args: any[]) => void;
12
+ }): ({ url, documents, getResourceUrlsAndBlobs, forceCreateStyle, skipResources }: {
13
+ url: any;
14
+ documents: any;
15
+ getResourceUrlsAndBlobs: any;
16
+ forceCreateStyle?: boolean;
17
+ skipResources: any;
18
+ }) => any;
19
+ export default makeProcessResource;
@@ -0,0 +1,2 @@
1
+ declare function removeBasicAuthFromUrl(url: string): string;
2
+ export default removeBasicAuthFromUrl;
@@ -0,0 +1,2 @@
1
+ declare function sanitizeAuthUrl(urlStr: string): string;
2
+ export default sanitizeAuthUrl;
@@ -0,0 +1,3 @@
1
+ import type { SessionCacheParams, SessionCache } from '../types';
2
+ declare function makeSessionCache({ log, sessionStorage }: SessionCacheParams): SessionCache;
3
+ export default makeSessionCache;
@@ -0,0 +1,2 @@
1
+ declare function toUnAnchoredUri(url: string): string;
2
+ export default toUnAnchoredUri;
@@ -0,0 +1,2 @@
1
+ declare function toUriEncoding(url: string): string;
2
+ export default toUriEncoding;
@@ -0,0 +1,2 @@
1
+ declare function uniq<T>(arr: T[]): T[];
2
+ export default uniq;
@@ -0,0 +1,2 @@
1
+ declare function uuid(): number;
2
+ export default uuid;
@@ -0,0 +1,5 @@
1
+ declare function wrapHTMLElement<T extends Node>(node: T): T;
2
+ declare namespace wrapHTMLElement {
3
+ var unwrap: <T extends Node>(wrapper: T) => T;
4
+ }
5
+ export default wrapHTMLElement;
@@ -0,0 +1,6 @@
1
+ export type { RawDomSnapshot } from './types/raw-dom-snapshot';
2
+ export declare function getProcessPage(): Promise<string>;
3
+ export declare function getProcessPagePoll(): Promise<string>;
4
+ export declare function getPollResult(): Promise<string>;
5
+ export declare const processPagePoll: () => any;
6
+ export declare const pollResult: () => any;
@@ -1,6 +1,7 @@
1
- /* @applitools/dom-snapshot@4.13.7 */
1
+ /* @applitools/dom-snapshot@4.13.8 */
2
2
  function __pollResult() {
3
- var pollResult=function(){"use strict";function t(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var e=function(){const t=function(t){return function(){var t={};function e(t,e=0){const n=t.charCodeAt(e);return n>=55296&&n<56320?1024*(n-55296)+(t.charCodeAt(e+1)-56320)+65536:56320<=n&&n<=57343?-1:n}var n=function(t,n){const r=[];let o=0;for(let u=0;u<t.length;++u){const c=e(t,u);let a=0;c>0&&(a=c<128?1:c<2048?2:c<65536?3:c<2097152?4:c<67108864?5:6),o+a>n?(r.push(u),o=a):o+=a}return r};const r=function(t){return t&&t.__esModule?t:{default:t}}(n),o="WIP",u="SUCCESS",c="SUCCESS_CHUNKED",a="ERROR";var s=function(t,e,n={}){const s=function(t,{chunkByteLength:e=0}={}){if(t){if(t.value){if(e){if(!t.chunks)try{const n=JSON.stringify(t.value);t.chunks=(0,r.default)(n,e),t.chunks.length>0&&(t.from=0,t.value=n)}catch(t){return{status:a,error:t.message}}if(t.from>=0)return{status:c,value:t.value.substring(t.from,t.from=t.chunks.shift()),done:!t.from}}return{status:u,value:t.value}}return t.error?{status:a,error:t.error}:{status:o}}return{status:a,error:"unexpected poll request received - cannot find state of current operation"}}((t=t||{})[e],n);return(s.status===u||s.status===a||s.status===c&&s.done)&&delete t[e],s};const l=s;var i=function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(t,"__esModule",{value:!0}),t.isAccessibleFrame=t.isInlineFrame=t.absolutizeUrl=t.poll=t.pollify=t.chunkify=void 0;const f=i(n);t.chunkify=f.default;const d=i((function(t,e,n){return r=>function(...o){return e[n]||(e[n]={},Promise.resolve().then((()=>t(...o))).then((t=>e[n].value=t)).catch((t=>e[n].error=t.message+"\nStack:"+t.stack))),l(e,n,r)}}));t.pollify=d.default;const h=i(s);t.poll=h.default;const p=i((function(t,e){if(function(t){try{return new URL(t),!0}catch(t){return!1}}(t))return t;let n=!0;try{n=t!==decodeURI(t)}catch(t){n=!0}try{const r=new URL(t,e).href;return n?r:decodeURI(r)}catch(e){return n?t:decodeURI(t)}}));t.absolutizeUrl=p.default;const m=i((function(t){return t.contentDocument&&t.contentDocument.location&&!/^https?:$/.test(t.contentDocument.location.protocol)}));t.isInlineFrame=m.default;const y=i((function(t){try{const e=t.contentDocument;return Boolean(e&&e.defaultView&&e.defaultView.frameElement)}catch(t){return!1}}));t.isAccessibleFrame=y.default;const{poll:S}=t,{EYES_NAMESPACE:_,DOM_SNAPSHOT_KEY:E}={EYES_NAMESPACE:"__EYES__APPLITOOLS__",DOM_SNAPSHOT_KEY:"domSnapshotResult"};return function(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}((function(t){try{return JSON.stringify(S(window[_],E,t))}catch(t){return JSON.stringify({status:"ERROR",error:t.message})}}))}()};let e=!0;try{let n=document.createElement("iframe");n.setAttribute("data-applitools-sandbox",""),n.setAttribute("data-applitools-skip",""),document.head.appendChild(n);const r=window.crypto.getRandomValues(new Uint32Array(1))[0],o=n.contentDocument.createElement("script");o.textContent=`window['ctor-${r}'] = ${t.toString()};`,n.contentDocument.head.appendChild(o);const u=n.contentWindow[`ctor-${r}`];if("function"!=typeof u)throw new Error("Sandbox failed to extract function");return e=!1,u(document).apply(null,arguments).finally((()=>{n.remove()}))}catch(n){try{return t(document).apply(null,arguments)}catch(t){throw e?t:n}}};return t(e)}();
3
+ var pollResult=function(){"use strict";function t(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var e=function(){const t=function(t){return function(){var t={};function e(t,e=0){const n=t.charCodeAt(e);return n>=55296&&n<56320?1024*(n-55296)+(t.charCodeAt(e+1)-56320)+65536:56320<=n&&n<=57343?-1:n}var n=function(t,n){const r=[];let o=0;for(let u=0;u<t.length;++u){const c=e(t,u);let a=0;c>0&&(a=c<128?1:c<2048?2:c<65536?3:c<2097152?4:c<67108864?5:6),o+a>n?(r.push(u),o=a):o+=a}return r};const r=function(t){return t&&t.__esModule?t:{default:t}}(n),o="WIP",u="SUCCESS",c="SUCCESS_CHUNKED",a="ERROR";var s=function(t,e,n={}){const s=function(t,{chunkByteLength:e=0}={}){if(t){if(t.value){if(e){if(!t.chunks)try{const n=JSON.stringify(t.value);t.chunks=(0,r.default)(n,e),t.chunks.length>0&&(t.from=0,t.value=n)}catch(t){return{status:a,error:t.message}}if(t.from>=0)return{status:c,value:t.value.substring(t.from,t.from=t.chunks.shift()),done:!t.from}}return{status:u,value:t.value}}return t.error?{status:a,error:t.error}:{status:o}}return{status:a,error:"unexpected poll request received - cannot find state of current operation"}}((t=t||{})[e],n);return(s.status===u||s.status===a||s.status===c&&s.done)&&delete t[e],s};const l=s;var i=function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(t,"__esModule",{value:!0}),t.isAccessibleFrame=t.isInlineFrame=t.absolutizeUrl=p=t.poll=t.pollify=t.chunkify=void 0;const f=i(n);t.chunkify=f.default;const d=i((function(t,e,n){return r=>function(...o){return e[n]||(e[n]={},Promise.resolve().then((()=>t(...o))).then((t=>e[n].value=t)).catch((t=>e[n].error=t.message+"\nStack:"+t.stack))),l(e,n,r)}}));t.pollify=d.default;const h=i(s);var p=t.poll=h.default;const m=i((function(t,e){if(function(t){try{return new URL(t),!0}catch(t){return!1}}(t))return t;let n=!0;try{n=t!==decodeURI(t)}catch(t){n=!0}try{const r=new URL(t,e).href;return n?r:decodeURI(r)}catch(e){return n?t:decodeURI(t)}}));t.absolutizeUrl=m.default;const y=i((function(t){return t.contentDocument&&t.contentDocument.location&&!/^https?:$/.test(t.contentDocument.location.protocol)}));t.isInlineFrame=y.default;const v=i((function(t){try{const e=t.contentDocument;return Boolean(e&&e.defaultView&&e.defaultView.frameElement)}catch(t){return!1}}));return t.isAccessibleFrame=v.default,function(t){try{return JSON.stringify(p(window.__EYES__APPLITOOLS__,"domSnapshotResult",t))}catch(t){return JSON.stringify({status:"ERROR",error:t.message})}}}()};let e=!0;try{let n=document.createElement("iframe");n.setAttribute("data-applitools-sandbox",""),n.setAttribute("data-applitools-skip",""),document.head.appendChild(n);const r=window.crypto.getRandomValues(new Uint32Array(1))[0],o=n.contentDocument.createElement("script");o.textContent=`window['ctor-${r}'] = ${t.toString()};`,n.contentDocument.head.appendChild(o);const u=n.contentWindow[`ctor-${r}`];if("function"!=typeof u)throw new Error("Sandbox failed to extract function");return e=!1,u(document).apply(null,arguments).finally((()=>{n.remove()}))}catch(n){try{return t(document).apply(null,arguments)}catch(t){throw e?t:n}}};return t(e)}();
4
+ //# sourceMappingURL=pollResult.js.map
4
5
 
5
6
  return pollResult.apply(this, arguments);
6
7
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pollResult.js","sources":["../../dom-shared/dist/chunkify.js","../../dom-shared/dist/poll.js","../../dom-shared/dist/pollify.js","../../dom-shared/dist/browser/absolutizeUrl.js","../../dom-shared/dist/browser/isInlineFrame.js","../../dom-shared/dist/browser/isAccessibleFrame.js","../../dom-shared/dist/index.js","../src/browser/pollResult.ts","../src/browser/constants.ts"],"sourcesContent":["\"use strict\";\nfunction charCodeAt(string, index = 0) {\n const code = string.charCodeAt(index);\n // if the code of high word (16 bits) in this diapason the character encoded by two words\n if (code >= 0xd800 && code < 0xdc00) {\n const high = code;\n const low = string.charCodeAt(index + 1);\n // convert 2 utf16le words into integer code\n return (high - 0xd800) * 0x400 + (low - 0xdc00) + 0x10000;\n }\n // diapason is reserved for surrogates, we can skip it\n if (0xdc00 <= code && code <= 0xdfff)\n return -1;\n return code;\n}\nfunction chunkify(string, chunkByteLength) {\n const chunks = [];\n let currChunkByteLength = 0;\n for (let index = 0; index < string.length; ++index) {\n const code = charCodeAt(string, index);\n let charByteLength = 0;\n if (code > 0) {\n if (code < 128)\n charByteLength = 1;\n else if (code < 2048)\n charByteLength = 2;\n else if (code < 65536)\n charByteLength = 3;\n else if (code < 2097152)\n charByteLength = 4;\n else if (code < 67108864)\n charByteLength = 5;\n else\n charByteLength = 6;\n }\n if (currChunkByteLength + charByteLength > chunkByteLength) {\n chunks.push(index);\n currChunkByteLength = charByteLength;\n }\n else {\n currChunkByteLength += charByteLength;\n }\n }\n return chunks;\n}\nmodule.exports = chunkify;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nconst chunkify_1 = __importDefault(require(\"./chunkify\"));\nconst STATUSES = {\n WIP: 'WIP',\n SUCCESS: 'SUCCESS',\n SUCCESS_CHUNKED: 'SUCCESS_CHUNKED',\n ERROR: 'ERROR',\n};\nconst _DEFAULT_CHUNK_BYTE_LENGTH = 268435456; // 256MB\nfunction createPollResponse(state, { chunkByteLength = 0 } = {}) {\n if (!state) {\n return {\n status: STATUSES.ERROR,\n error: 'unexpected poll request received - cannot find state of current operation',\n };\n }\n else if (state.value) {\n if (chunkByteLength) {\n if (!state.chunks) {\n try {\n const stringified = JSON.stringify(state.value);\n state.chunks = (0, chunkify_1.default)(stringified, chunkByteLength);\n if (state.chunks.length > 0) {\n state.from = 0;\n state.value = stringified;\n }\n }\n catch (e) {\n return { status: STATUSES.ERROR, error: e.message };\n }\n }\n if (state.from >= 0) {\n return {\n status: STATUSES.SUCCESS_CHUNKED,\n value: state.value.substring(state.from, (state.from = state.chunks.shift())),\n done: !state.from,\n };\n }\n }\n return { status: STATUSES.SUCCESS, value: state.value };\n }\n else if (state.error) {\n return { status: STATUSES.ERROR, error: state.error };\n }\n else {\n return { status: STATUSES.WIP };\n }\n}\nfunction poll(context, key, options = {}) {\n context = context || {};\n const result = createPollResponse(context[key], options);\n if (result.status === STATUSES.SUCCESS ||\n result.status === STATUSES.ERROR ||\n (result.status === STATUSES.SUCCESS_CHUNKED && result.done)) {\n delete context[key];\n }\n return result;\n}\nmodule.exports = poll;\n","\"use strict\";\nconst poll = require(\"./poll\");\nfunction pollify(script, context, key) {\n return (options) => function (...args) {\n if (!context[key]) {\n context[key] = {};\n Promise.resolve()\n .then(() => script(...args))\n .then(value => (context[key].value = value))\n .catch(err => (context[key].error = err.message + '\\nStack:' + err.stack));\n }\n return poll(context, key, options);\n };\n}\nmodule.exports = pollify;\n","\"use strict\";\nfunction isAbsoluteUrl(url) {\n try {\n new URL(url);\n return true;\n }\n catch (err) {\n return false;\n }\n}\nfunction absolutizeUrl(url, baseUrl) {\n if (isAbsoluteUrl(url))\n return url;\n let isEncoded = true;\n try {\n isEncoded = url !== decodeURI(url);\n }\n catch (err) {\n isEncoded = true;\n }\n try {\n const absoluteUrl = new URL(url, baseUrl).href;\n return !isEncoded ? decodeURI(absoluteUrl) : absoluteUrl;\n }\n catch (err) {\n return !isEncoded ? decodeURI(url) : url;\n }\n}\nmodule.exports = absolutizeUrl;\n","\"use strict\";\nfunction isInlineFrame(frame) {\n return (frame.contentDocument &&\n frame.contentDocument.location &&\n !/^https?:$/.test(frame.contentDocument.location.protocol));\n}\nmodule.exports = isInlineFrame;\n","\"use strict\";\nfunction isAccessibleFrame(frame) {\n try {\n const doc = frame.contentDocument;\n return Boolean(doc && doc.defaultView && doc.defaultView.frameElement);\n }\n catch (err) {\n return false;\n }\n}\nmodule.exports = isAccessibleFrame;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAccessibleFrame = exports.isInlineFrame = exports.absolutizeUrl = exports.poll = exports.pollify = exports.chunkify = void 0;\nconst chunkify_1 = __importDefault(require(\"./chunkify\"));\nexports.chunkify = chunkify_1.default;\nconst pollify_1 = __importDefault(require(\"./pollify\"));\nexports.pollify = pollify_1.default;\nconst poll_1 = __importDefault(require(\"./poll\"));\nexports.poll = poll_1.default;\nconst absolutizeUrl_1 = __importDefault(require(\"./browser/absolutizeUrl\"));\nexports.absolutizeUrl = absolutizeUrl_1.default;\nconst isInlineFrame_1 = __importDefault(require(\"./browser/isInlineFrame\"));\nexports.isInlineFrame = isInlineFrame_1.default;\nconst isAccessibleFrame_1 = __importDefault(require(\"./browser/isAccessibleFrame\"));\nexports.isAccessibleFrame = isAccessibleFrame_1.default;\n",null,null],"names":["charCodeAt","string","index","code","chunkify_1","chunkByteLength","chunks","currChunkByteLength","length","charByteLength","push","mod","__esModule","default","__importDefault","require$$0","STATUSES","WIP","SUCCESS","SUCCESS_CHUNKED","ERROR","poll_1","context","key","options","result","state","value","stringified","JSON","stringify","from","e","status","error","message","substring","shift","done","createPollResponse","poll","pollify_1","script","args","Promise","resolve","then","catch","err","stack","absolutizeUrl_1","url","baseUrl","URL","isAbsoluteUrl","isEncoded","decodeURI","absoluteUrl","href","isInlineFrame_1","frame","contentDocument","location","test","protocol","isAccessibleFrame_1","doc","Boolean","defaultView","frameElement","Object","defineProperty","dist","isAccessibleFrame","isInlineFrame","absolutizeUrl","pollify","chunkify","require$$1","require$$2","require$$3","require$$4","require$$5","window"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- /* @applitools/dom-snapshot@4.13.7 */
2
- "use strict";function t(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var e=function(){const t=function(t){return function(){var t={};function e(t,e=0){const n=t.charCodeAt(e);return n>=55296&&n<56320?1024*(n-55296)+(t.charCodeAt(e+1)-56320)+65536:56320<=n&&n<=57343?-1:n}var n=function(t,n){const r=[];let o=0;for(let u=0;u<t.length;++u){const c=e(t,u);let a=0;c>0&&(a=c<128?1:c<2048?2:c<65536?3:c<2097152?4:c<67108864?5:6),o+a>n?(r.push(u),o=a):o+=a}return r};const r=function(t){return t&&t.__esModule?t:{default:t}}(n),o="WIP",u="SUCCESS",c="SUCCESS_CHUNKED",a="ERROR";var s=function(t,e,n={}){const s=function(t,{chunkByteLength:e=0}={}){if(t){if(t.value){if(e){if(!t.chunks)try{const n=JSON.stringify(t.value);t.chunks=(0,r.default)(n,e),t.chunks.length>0&&(t.from=0,t.value=n)}catch(t){return{status:a,error:t.message}}if(t.from>=0)return{status:c,value:t.value.substring(t.from,t.from=t.chunks.shift()),done:!t.from}}return{status:u,value:t.value}}return t.error?{status:a,error:t.error}:{status:o}}return{status:a,error:"unexpected poll request received - cannot find state of current operation"}}((t=t||{})[e],n);return(s.status===u||s.status===a||s.status===c&&s.done)&&delete t[e],s};const l=s;var i=function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(t,"__esModule",{value:!0}),t.isAccessibleFrame=t.isInlineFrame=t.absolutizeUrl=t.poll=t.pollify=t.chunkify=void 0;const f=i(n);t.chunkify=f.default;const d=i((function(t,e,n){return r=>function(...o){return e[n]||(e[n]={},Promise.resolve().then((()=>t(...o))).then((t=>e[n].value=t)).catch((t=>e[n].error=t.message+"\nStack:"+t.stack))),l(e,n,r)}}));t.pollify=d.default;const h=i(s);t.poll=h.default;const p=i((function(t,e){if(function(t){try{return new URL(t),!0}catch(t){return!1}}(t))return t;let n=!0;try{n=t!==decodeURI(t)}catch(t){n=!0}try{const r=new URL(t,e).href;return n?r:decodeURI(r)}catch(e){return n?t:decodeURI(t)}}));t.absolutizeUrl=p.default;const m=i((function(t){return t.contentDocument&&t.contentDocument.location&&!/^https?:$/.test(t.contentDocument.location.protocol)}));t.isInlineFrame=m.default;const y=i((function(t){try{const e=t.contentDocument;return Boolean(e&&e.defaultView&&e.defaultView.frameElement)}catch(t){return!1}}));t.isAccessibleFrame=y.default;const{poll:S}=t,{EYES_NAMESPACE:_,DOM_SNAPSHOT_KEY:E}={EYES_NAMESPACE:"__EYES__APPLITOOLS__",DOM_SNAPSHOT_KEY:"domSnapshotResult"};return function(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}((function(t){try{return JSON.stringify(S(window[_],E,t))}catch(t){return JSON.stringify({status:"ERROR",error:t.message})}}))}()};let e=!0;try{let n=document.createElement("iframe");n.setAttribute("data-applitools-sandbox",""),n.setAttribute("data-applitools-skip",""),document.head.appendChild(n);const r=window.crypto.getRandomValues(new Uint32Array(1))[0],o=n.contentDocument.createElement("script");o.textContent=`window['ctor-${r}'] = ${t.toString()};`,n.contentDocument.head.appendChild(o);const u=n.contentWindow[`ctor-${r}`];if("function"!=typeof u)throw new Error("Sandbox failed to extract function");return e=!1,u(document).apply(null,arguments).finally((()=>{n.remove()}))}catch(n){try{return t(document).apply(null,arguments)}catch(t){throw e?t:n}}},n=t(e);module.exports=n;
1
+ /* @applitools/dom-snapshot@4.13.8 */
2
+ "use strict";function t(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var e=function(){const t=function(t){return function(){var t={};function e(t,e=0){const n=t.charCodeAt(e);return n>=55296&&n<56320?1024*(n-55296)+(t.charCodeAt(e+1)-56320)+65536:56320<=n&&n<=57343?-1:n}var n=function(t,n){const r=[];let o=0;for(let u=0;u<t.length;++u){const c=e(t,u);let a=0;c>0&&(a=c<128?1:c<2048?2:c<65536?3:c<2097152?4:c<67108864?5:6),o+a>n?(r.push(u),o=a):o+=a}return r};const r=function(t){return t&&t.__esModule?t:{default:t}}(n),o="WIP",u="SUCCESS",c="SUCCESS_CHUNKED",a="ERROR";var s=function(t,e,n={}){const s=function(t,{chunkByteLength:e=0}={}){if(t){if(t.value){if(e){if(!t.chunks)try{const n=JSON.stringify(t.value);t.chunks=(0,r.default)(n,e),t.chunks.length>0&&(t.from=0,t.value=n)}catch(t){return{status:a,error:t.message}}if(t.from>=0)return{status:c,value:t.value.substring(t.from,t.from=t.chunks.shift()),done:!t.from}}return{status:u,value:t.value}}return t.error?{status:a,error:t.error}:{status:o}}return{status:a,error:"unexpected poll request received - cannot find state of current operation"}}((t=t||{})[e],n);return(s.status===u||s.status===a||s.status===c&&s.done)&&delete t[e],s};const l=s;var i=function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(t,"__esModule",{value:!0}),t.isAccessibleFrame=t.isInlineFrame=t.absolutizeUrl=m=t.poll=t.pollify=t.chunkify=void 0;const f=i(n);t.chunkify=f.default;const d=i((function(t,e,n){return r=>function(...o){return e[n]||(e[n]={},Promise.resolve().then((()=>t(...o))).then((t=>e[n].value=t)).catch((t=>e[n].error=t.message+"\nStack:"+t.stack))),l(e,n,r)}}));t.pollify=d.default;const h=i(s);var m=t.poll=h.default;const p=i((function(t,e){if(function(t){try{return new URL(t),!0}catch(t){return!1}}(t))return t;let n=!0;try{n=t!==decodeURI(t)}catch(t){n=!0}try{const r=new URL(t,e).href;return n?r:decodeURI(r)}catch(e){return n?t:decodeURI(t)}}));t.absolutizeUrl=p.default;const y=i((function(t){return t.contentDocument&&t.contentDocument.location&&!/^https?:$/.test(t.contentDocument.location.protocol)}));t.isInlineFrame=y.default;const v=i((function(t){try{const e=t.contentDocument;return Boolean(e&&e.defaultView&&e.defaultView.frameElement)}catch(t){return!1}}));return t.isAccessibleFrame=v.default,function(t){try{return JSON.stringify(m(window.__EYES__APPLITOOLS__,"domSnapshotResult",t))}catch(t){return JSON.stringify({status:"ERROR",error:t.message})}}}()};let e=!0;try{let n=document.createElement("iframe");n.setAttribute("data-applitools-sandbox",""),n.setAttribute("data-applitools-skip",""),document.head.appendChild(n);const r=window.crypto.getRandomValues(new Uint32Array(1))[0],o=n.contentDocument.createElement("script");o.textContent=`window['ctor-${r}'] = ${t.toString()};`,n.contentDocument.head.appendChild(o);const u=n.contentWindow[`ctor-${r}`];if("function"!=typeof u)throw new Error("Sandbox failed to extract function");return e=!1,u(document).apply(null,arguments).finally((()=>{n.remove()}))}catch(n){try{return t(document).apply(null,arguments)}catch(t){throw e?t:n}}},n=t(e);module.exports=n;
3
+ //# sourceMappingURL=pollResultCjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pollResultCjs.js","sources":["../../dom-shared/dist/chunkify.js","../../dom-shared/dist/poll.js","../../dom-shared/dist/pollify.js","../../dom-shared/dist/browser/absolutizeUrl.js","../../dom-shared/dist/browser/isInlineFrame.js","../../dom-shared/dist/browser/isAccessibleFrame.js","../../dom-shared/dist/index.js","../src/browser/pollResult.ts","../src/browser/constants.ts"],"sourcesContent":["\"use strict\";\nfunction charCodeAt(string, index = 0) {\n const code = string.charCodeAt(index);\n // if the code of high word (16 bits) in this diapason the character encoded by two words\n if (code >= 0xd800 && code < 0xdc00) {\n const high = code;\n const low = string.charCodeAt(index + 1);\n // convert 2 utf16le words into integer code\n return (high - 0xd800) * 0x400 + (low - 0xdc00) + 0x10000;\n }\n // diapason is reserved for surrogates, we can skip it\n if (0xdc00 <= code && code <= 0xdfff)\n return -1;\n return code;\n}\nfunction chunkify(string, chunkByteLength) {\n const chunks = [];\n let currChunkByteLength = 0;\n for (let index = 0; index < string.length; ++index) {\n const code = charCodeAt(string, index);\n let charByteLength = 0;\n if (code > 0) {\n if (code < 128)\n charByteLength = 1;\n else if (code < 2048)\n charByteLength = 2;\n else if (code < 65536)\n charByteLength = 3;\n else if (code < 2097152)\n charByteLength = 4;\n else if (code < 67108864)\n charByteLength = 5;\n else\n charByteLength = 6;\n }\n if (currChunkByteLength + charByteLength > chunkByteLength) {\n chunks.push(index);\n currChunkByteLength = charByteLength;\n }\n else {\n currChunkByteLength += charByteLength;\n }\n }\n return chunks;\n}\nmodule.exports = chunkify;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nconst chunkify_1 = __importDefault(require(\"./chunkify\"));\nconst STATUSES = {\n WIP: 'WIP',\n SUCCESS: 'SUCCESS',\n SUCCESS_CHUNKED: 'SUCCESS_CHUNKED',\n ERROR: 'ERROR',\n};\nconst _DEFAULT_CHUNK_BYTE_LENGTH = 268435456; // 256MB\nfunction createPollResponse(state, { chunkByteLength = 0 } = {}) {\n if (!state) {\n return {\n status: STATUSES.ERROR,\n error: 'unexpected poll request received - cannot find state of current operation',\n };\n }\n else if (state.value) {\n if (chunkByteLength) {\n if (!state.chunks) {\n try {\n const stringified = JSON.stringify(state.value);\n state.chunks = (0, chunkify_1.default)(stringified, chunkByteLength);\n if (state.chunks.length > 0) {\n state.from = 0;\n state.value = stringified;\n }\n }\n catch (e) {\n return { status: STATUSES.ERROR, error: e.message };\n }\n }\n if (state.from >= 0) {\n return {\n status: STATUSES.SUCCESS_CHUNKED,\n value: state.value.substring(state.from, (state.from = state.chunks.shift())),\n done: !state.from,\n };\n }\n }\n return { status: STATUSES.SUCCESS, value: state.value };\n }\n else if (state.error) {\n return { status: STATUSES.ERROR, error: state.error };\n }\n else {\n return { status: STATUSES.WIP };\n }\n}\nfunction poll(context, key, options = {}) {\n context = context || {};\n const result = createPollResponse(context[key], options);\n if (result.status === STATUSES.SUCCESS ||\n result.status === STATUSES.ERROR ||\n (result.status === STATUSES.SUCCESS_CHUNKED && result.done)) {\n delete context[key];\n }\n return result;\n}\nmodule.exports = poll;\n","\"use strict\";\nconst poll = require(\"./poll\");\nfunction pollify(script, context, key) {\n return (options) => function (...args) {\n if (!context[key]) {\n context[key] = {};\n Promise.resolve()\n .then(() => script(...args))\n .then(value => (context[key].value = value))\n .catch(err => (context[key].error = err.message + '\\nStack:' + err.stack));\n }\n return poll(context, key, options);\n };\n}\nmodule.exports = pollify;\n","\"use strict\";\nfunction isAbsoluteUrl(url) {\n try {\n new URL(url);\n return true;\n }\n catch (err) {\n return false;\n }\n}\nfunction absolutizeUrl(url, baseUrl) {\n if (isAbsoluteUrl(url))\n return url;\n let isEncoded = true;\n try {\n isEncoded = url !== decodeURI(url);\n }\n catch (err) {\n isEncoded = true;\n }\n try {\n const absoluteUrl = new URL(url, baseUrl).href;\n return !isEncoded ? decodeURI(absoluteUrl) : absoluteUrl;\n }\n catch (err) {\n return !isEncoded ? decodeURI(url) : url;\n }\n}\nmodule.exports = absolutizeUrl;\n","\"use strict\";\nfunction isInlineFrame(frame) {\n return (frame.contentDocument &&\n frame.contentDocument.location &&\n !/^https?:$/.test(frame.contentDocument.location.protocol));\n}\nmodule.exports = isInlineFrame;\n","\"use strict\";\nfunction isAccessibleFrame(frame) {\n try {\n const doc = frame.contentDocument;\n return Boolean(doc && doc.defaultView && doc.defaultView.frameElement);\n }\n catch (err) {\n return false;\n }\n}\nmodule.exports = isAccessibleFrame;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAccessibleFrame = exports.isInlineFrame = exports.absolutizeUrl = exports.poll = exports.pollify = exports.chunkify = void 0;\nconst chunkify_1 = __importDefault(require(\"./chunkify\"));\nexports.chunkify = chunkify_1.default;\nconst pollify_1 = __importDefault(require(\"./pollify\"));\nexports.pollify = pollify_1.default;\nconst poll_1 = __importDefault(require(\"./poll\"));\nexports.poll = poll_1.default;\nconst absolutizeUrl_1 = __importDefault(require(\"./browser/absolutizeUrl\"));\nexports.absolutizeUrl = absolutizeUrl_1.default;\nconst isInlineFrame_1 = __importDefault(require(\"./browser/isInlineFrame\"));\nexports.isInlineFrame = isInlineFrame_1.default;\nconst isAccessibleFrame_1 = __importDefault(require(\"./browser/isAccessibleFrame\"));\nexports.isAccessibleFrame = isAccessibleFrame_1.default;\n",null,null],"names":["charCodeAt","string","index","code","chunkify_1","chunkByteLength","chunks","currChunkByteLength","length","charByteLength","push","mod","__esModule","default","__importDefault","require$$0","STATUSES","WIP","SUCCESS","SUCCESS_CHUNKED","ERROR","poll_1","context","key","options","result","state","value","stringified","JSON","stringify","from","e","status","error","message","substring","shift","done","createPollResponse","poll","pollify_1","script","args","Promise","resolve","then","catch","err","stack","absolutizeUrl_1","url","baseUrl","URL","isAbsoluteUrl","isEncoded","decodeURI","absoluteUrl","href","isInlineFrame_1","frame","contentDocument","location","test","protocol","isAccessibleFrame_1","doc","Boolean","defaultView","frameElement","Object","defineProperty","dist","isAccessibleFrame","isInlineFrame","absolutizeUrl","pollify","chunkify","require$$1","require$$2","require$$3","require$$4","require$$5","window"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /* @applitools/dom-snapshot@4.13.8 */
2
+ function t(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var e=function(){const t=function(t){return function(){var t={};function e(t,e=0){const n=t.charCodeAt(e);return n>=55296&&n<56320?1024*(n-55296)+(t.charCodeAt(e+1)-56320)+65536:56320<=n&&n<=57343?-1:n}var n=function(t,n){const r=[];let o=0;for(let u=0;u<t.length;++u){const c=e(t,u);let a=0;c>0&&(a=c<128?1:c<2048?2:c<65536?3:c<2097152?4:c<67108864?5:6),o+a>n?(r.push(u),o=a):o+=a}return r};const r=function(t){return t&&t.__esModule?t:{default:t}}(n),o="WIP",u="SUCCESS",c="SUCCESS_CHUNKED",a="ERROR";var s=function(t,e,n={}){const s=function(t,{chunkByteLength:e=0}={}){if(t){if(t.value){if(e){if(!t.chunks)try{const n=JSON.stringify(t.value);t.chunks=(0,r.default)(n,e),t.chunks.length>0&&(t.from=0,t.value=n)}catch(t){return{status:a,error:t.message}}if(t.from>=0)return{status:c,value:t.value.substring(t.from,t.from=t.chunks.shift()),done:!t.from}}return{status:u,value:t.value}}return t.error?{status:a,error:t.error}:{status:o}}return{status:a,error:"unexpected poll request received - cannot find state of current operation"}}((t=t||{})[e],n);return(s.status===u||s.status===a||s.status===c&&s.done)&&delete t[e],s};const l=s;var i=function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(t,"__esModule",{value:!0}),t.isAccessibleFrame=t.isInlineFrame=t.absolutizeUrl=p=t.poll=t.pollify=t.chunkify=void 0;const f=i(n);t.chunkify=f.default;const d=i((function(t,e,n){return r=>function(...o){return e[n]||(e[n]={},Promise.resolve().then((()=>t(...o))).then((t=>e[n].value=t)).catch((t=>e[n].error=t.message+"\nStack:"+t.stack))),l(e,n,r)}}));t.pollify=d.default;const h=i(s);var p=t.poll=h.default;const m=i((function(t,e){if(function(t){try{return new URL(t),!0}catch(t){return!1}}(t))return t;let n=!0;try{n=t!==decodeURI(t)}catch(t){n=!0}try{const r=new URL(t,e).href;return n?r:decodeURI(r)}catch(e){return n?t:decodeURI(t)}}));t.absolutizeUrl=m.default;const y=i((function(t){return t.contentDocument&&t.contentDocument.location&&!/^https?:$/.test(t.contentDocument.location.protocol)}));t.isInlineFrame=y.default;const v=i((function(t){try{const e=t.contentDocument;return Boolean(e&&e.defaultView&&e.defaultView.frameElement)}catch(t){return!1}}));return t.isAccessibleFrame=v.default,function(t){try{return JSON.stringify(p(window.__EYES__APPLITOOLS__,"domSnapshotResult",t))}catch(t){return JSON.stringify({status:"ERROR",error:t.message})}}}()};let e=!0;try{let n=document.createElement("iframe");n.setAttribute("data-applitools-sandbox",""),n.setAttribute("data-applitools-skip",""),document.head.appendChild(n);const r=window.crypto.getRandomValues(new Uint32Array(1))[0],o=n.contentDocument.createElement("script");o.textContent=`window['ctor-${r}'] = ${t.toString()};`,n.contentDocument.head.appendChild(o);const u=n.contentWindow[`ctor-${r}`];if("function"!=typeof u)throw new Error("Sandbox failed to extract function");return e=!1,u(document).apply(null,arguments).finally((()=>{n.remove()}))}catch(n){try{return t(document).apply(null,arguments)}catch(t){throw e?t:n}}},n=t(e);export{n as default};
3
+ //# sourceMappingURL=pollResultEs.js.map