@applitools/dom-snapshot 4.13.7 → 4.13.9

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 +14 -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
@@ -0,0 +1,63 @@
1
+ export interface BlobResource {
2
+ type: string;
3
+ value: ArrayBuffer | Uint8Array | string;
4
+ compressed?: boolean;
5
+ dependencies?: string[];
6
+ }
7
+ export interface BlobsObj {
8
+ [url: string]: BlobResource | {
9
+ errorStatusCode: number;
10
+ } | {
11
+ errorStatusCode?: number;
12
+ type?: string;
13
+ value?: ArrayBuffer;
14
+ dependencies?: string[];
15
+ };
16
+ }
17
+ export interface BlobResult {
18
+ url: string;
19
+ type?: string;
20
+ value?: ArrayBuffer;
21
+ }
22
+ export interface BlobElement {
23
+ element: HTMLImageElement | HTMLVideoElement;
24
+ cdtNode: import('./raw-dom-snapshot').CDTNode;
25
+ url: string;
26
+ }
27
+ export interface CreateBlobParams {
28
+ type: string;
29
+ value: ArrayBuffer | Uint8Array;
30
+ compress?: boolean;
31
+ serialize?: boolean;
32
+ }
33
+ export interface BuildCanvasBlobsOptions {
34
+ log: (message: string, ...args: any[]) => void;
35
+ compress?: boolean;
36
+ serialize?: boolean;
37
+ }
38
+ export interface BuildBlobImagesOptions {
39
+ doc: Document;
40
+ fetchedBlobs: {
41
+ [url: string]: any;
42
+ };
43
+ log: (message: string, ...args: any[]) => void;
44
+ compress?: boolean;
45
+ serialize?: boolean;
46
+ sessionCache?: {
47
+ getItem: (key: string) => any;
48
+ setItem?: (key: string, value: any) => void;
49
+ };
50
+ }
51
+ export interface BuildBlobVideosOptions {
52
+ doc: Document;
53
+ fetchedBlobs: {
54
+ [url: string]: any;
55
+ };
56
+ compress?: boolean;
57
+ serialize?: boolean;
58
+ log?: (message: string, ...args: any[]) => void;
59
+ sessionCache?: {
60
+ getItem: (key: string) => any;
61
+ setItem?: (key: string, value: any) => void;
62
+ };
63
+ }
@@ -0,0 +1,52 @@
1
+ import type { CDTNode } from './raw-dom-snapshot';
2
+ import type { StyleSheetCache } from './css';
3
+ export interface DomNodesToCdtResult {
4
+ cdt: CDTNode[];
5
+ docRoots: (Document | ShadowRoot | DocumentFragment)[];
6
+ canvasElements: import('./elements').CanvasElement[];
7
+ frames: import('./elements').FrameElement[];
8
+ inlineFrames: import('./elements').FrameElement[];
9
+ crossFrames: import('./raw-dom-snapshot').CrossFrame[];
10
+ linkUrls: string[];
11
+ imageBlobs: import('./elements').ImageBlob[];
12
+ videoBlobs: import('./elements').VideoBlob[];
13
+ }
14
+ export interface ExtractResourcesConfig {
15
+ styleSheetCache: StyleSheetCache;
16
+ removeReverseProxyURLPrefixes?: boolean;
17
+ }
18
+ export interface FindStyleSheetByUrlOptions {
19
+ styleSheetCache: StyleSheetCache;
20
+ }
21
+ export interface CorsFreeStyleSheetResult {
22
+ corsFreeStyleSheet: CSSStyleSheet;
23
+ cleanStyleSheet: () => void;
24
+ }
25
+ export interface ExtractSvgConfig {
26
+ extractResourceUrlsFromStyleTags: (document: Document) => string[];
27
+ }
28
+ export interface MediaQueryNode {
29
+ type: 'media-query';
30
+ name: string;
31
+ value: string;
32
+ }
33
+ export interface GetUrlFromCssTextOptions {
34
+ cssText: string;
35
+ baseUrl: string;
36
+ }
37
+ export interface SessionCacheParams {
38
+ log: (message?: any, ...optionalParams: any[]) => void;
39
+ sessionStorage?: Storage;
40
+ }
41
+ export interface SessionCache {
42
+ getItem: (key: string) => any;
43
+ setItem: (key: string, value: any) => void;
44
+ keys: () => string[];
45
+ persist: () => void;
46
+ }
47
+ export interface PollResult {
48
+ status: string;
49
+ value?: string;
50
+ error?: string;
51
+ done?: boolean;
52
+ }
@@ -0,0 +1,16 @@
1
+ export interface RuleProps {
2
+ atrule?: string;
3
+ prelude?: string;
4
+ block?: string;
5
+ }
6
+ export interface StyleSheetCache {
7
+ [url: string]: CSSStyleSheet;
8
+ }
9
+ export interface CSSMediaQueryNode {
10
+ type: string;
11
+ modifier?: string;
12
+ name?: string;
13
+ mediaType?: string;
14
+ condition?: CSSMediaQueryNode;
15
+ children?: CSSMediaQueryNode[];
16
+ }
@@ -0,0 +1,19 @@
1
+ import type { CDTNode } from './raw-dom-snapshot';
2
+ export interface CanvasElement {
3
+ url: string;
4
+ element: HTMLCanvasElement;
5
+ cdtNode: CDTNode;
6
+ }
7
+ export interface FrameElement {
8
+ element: HTMLIFrameElement;
9
+ url: string;
10
+ }
11
+ export interface ImageBlob {
12
+ element: HTMLImageElement;
13
+ url: string;
14
+ cdtNode: CDTNode;
15
+ }
16
+ export interface VideoBlob {
17
+ element: HTMLVideoElement;
18
+ url: string;
19
+ }
@@ -0,0 +1,7 @@
1
+ export type { CDTAttribute, CDTNode, CrossFrame, Blob } from './raw-dom-snapshot';
2
+ export type { BlobResource, BlobsObj, BlobResult, BlobElement, CreateBlobParams, BuildCanvasBlobsOptions, BuildBlobImagesOptions, BuildBlobVideosOptions } from './blob';
3
+ export type { CanvasElement, FrameElement, ImageBlob, VideoBlob } from './elements';
4
+ export type { ResourceUrlsAndBlobs, FetchUrlResult, FetchUrlError, ProcessResourceResult, FetchUrlOptions, ProcessResourceOptions, ProcessResourceParams, GetResourceUrlsAndBlobsParams, GetResourceUrlsAndBlobsResult, ProcessResourceFunction, GetResourceUrlsAndBlobsFunction, AggregateFunction, MakeGetResourceUrlsAndBlobsOptions } from './resources';
5
+ export type { SafeSelector } from './selectors';
6
+ export type { RuleProps, StyleSheetCache, CSSMediaQueryNode } from './css';
7
+ export type { DomNodesToCdtResult, ExtractResourcesConfig, FindStyleSheetByUrlOptions, CorsFreeStyleSheetResult, ExtractSvgConfig, MediaQueryNode, GetUrlFromCssTextOptions, SessionCacheParams, SessionCache, PollResult } from './browser';
@@ -0,0 +1,37 @@
1
+ export interface CDTAttribute {
2
+ name: string;
3
+ value: string;
4
+ }
5
+ export interface CDTNode {
6
+ nodeType: number;
7
+ nodeName?: string;
8
+ attributes?: CDTAttribute[];
9
+ childNodeIndexes?: number[] | null;
10
+ nodeValue?: string;
11
+ shadowRootIndex?: number;
12
+ exp_adoptedStyleSheets?: string[];
13
+ }
14
+ export interface CrossFrame {
15
+ selector: string;
16
+ index: number;
17
+ }
18
+ export interface Blob {
19
+ url: string;
20
+ value?: string;
21
+ type?: string;
22
+ errorStatusCode?: number;
23
+ }
24
+ export interface RawDomSnapshot {
25
+ url: string;
26
+ selector?: string;
27
+ cdt: CDTNode[];
28
+ crossFrames?: CrossFrame[];
29
+ frames: RawDomSnapshot[];
30
+ resourceUrls: string[];
31
+ blobs: Blob[];
32
+ srcAttr?: string;
33
+ baseUri?: string;
34
+ scriptVersion?: string;
35
+ safeSelectors?: string[];
36
+ warnings?: string[];
37
+ }
@@ -0,0 +1,92 @@
1
+ import type { BlobsObj } from './blob';
2
+ export interface ResourceUrlsAndBlobs {
3
+ resourceUrls: string[];
4
+ blobsObj: BlobsObj;
5
+ }
6
+ export interface FetchUrlResult {
7
+ url: string;
8
+ value?: ArrayBuffer;
9
+ type?: string;
10
+ probablyCORS?: boolean;
11
+ errorStatusCode?: number;
12
+ isTimeout?: boolean;
13
+ }
14
+ export interface FetchUrlError extends Error {
15
+ isTimeout: boolean;
16
+ }
17
+ export interface ProcessResourceResult {
18
+ resourceUrls?: string[];
19
+ blobsObj?: BlobsObj;
20
+ }
21
+ export interface FetchUrlOptions {
22
+ fetch?: typeof window.fetch;
23
+ AbortController?: typeof window.AbortController;
24
+ timeout?: number;
25
+ mediaDownloadTimeout?: number;
26
+ }
27
+ export interface ProcessResourceOptions {
28
+ fetchUrl: (url: string) => Promise<FetchUrlResult>;
29
+ findStyleSheetByUrl: (url: string, documents: Document[]) => CSSStyleSheet | null;
30
+ getCorsFreeStyleSheet: (value: ArrayBuffer, styleSheet?: CSSStyleSheet | null) => {
31
+ corsFreeStyleSheet: CSSStyleSheet;
32
+ cleanStyleSheet: () => void;
33
+ };
34
+ extractResourcesFromStyleSheet: (styleSheet: CSSStyleSheet) => string[];
35
+ extractResourcesFromSvg: (value: ArrayBuffer) => string[];
36
+ sessionCache?: {
37
+ getItem: (key: string) => string[];
38
+ setItem: (key: string, value: string[]) => void;
39
+ keys: () => string[];
40
+ persist?: () => void;
41
+ };
42
+ cache?: {
43
+ [url: string]: Promise<ProcessResourceResult>;
44
+ };
45
+ compress?: boolean;
46
+ serialize?: boolean;
47
+ log?: (message: string, ...args: any[]) => void;
48
+ }
49
+ export interface ProcessResourceParams {
50
+ url: string;
51
+ documents: Document[];
52
+ getResourceUrlsAndBlobs: (params: {
53
+ documents: Document[];
54
+ urls: string[];
55
+ forceCreateStyle?: boolean;
56
+ skipResources?: string[];
57
+ }) => Promise<{
58
+ resourceUrls: string[];
59
+ blobsObj: BlobsObj;
60
+ }>;
61
+ forceCreateStyle?: boolean;
62
+ skipResources?: string[];
63
+ }
64
+ export interface GetResourceUrlsAndBlobsParams {
65
+ documents: Document[];
66
+ urls: string[];
67
+ forceCreateStyle?: boolean;
68
+ skipResources?: string[];
69
+ }
70
+ export interface GetResourceUrlsAndBlobsResult {
71
+ resourceUrls: string[];
72
+ blobsObj: BlobsObj;
73
+ }
74
+ export interface ProcessResourceFunction {
75
+ (params: {
76
+ url: string;
77
+ documents: Document[];
78
+ getResourceUrlsAndBlobs: GetResourceUrlsAndBlobsFunction;
79
+ forceCreateStyle?: boolean;
80
+ skipResources?: string[];
81
+ }): Promise<ProcessResourceResult>;
82
+ }
83
+ export interface GetResourceUrlsAndBlobsFunction {
84
+ (params: GetResourceUrlsAndBlobsParams): Promise<GetResourceUrlsAndBlobsResult>;
85
+ }
86
+ export interface AggregateFunction {
87
+ (resourceUrlsAndBlobsArr: ProcessResourceResult[]): GetResourceUrlsAndBlobsResult;
88
+ }
89
+ export interface MakeGetResourceUrlsAndBlobsOptions {
90
+ processResource: ProcessResourceFunction;
91
+ aggregateResourceUrlsAndBlobs: AggregateFunction;
92
+ }
@@ -0,0 +1,6 @@
1
+ export interface SafeSelector {
2
+ type: string;
3
+ selector: string;
4
+ shadow?: SafeSelector;
5
+ error?: any;
6
+ }
package/index.js CHANGED
@@ -15,4 +15,4 @@ module.exports = {
15
15
  processPagePoll: require('./dist/processPagePollCjs'),
16
16
  //eslint-disable-next-line
17
17
  pollResult: require('./dist/pollResultCjs'),
18
- }
18
+ }
package/package.json CHANGED
@@ -1,24 +1,36 @@
1
1
  {
2
2
  "name": "@applitools/dom-snapshot",
3
- "version": "4.13.7",
3
+ "version": "4.13.9",
4
4
  "homepage": "https://applitools.com",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": {
7
7
  "name": "Applitools Team",
8
8
  "email": "team@applitools.com"
9
9
  },
10
- "main": "index.js",
10
+ "types": "dist/index.d.ts",
11
+ "exports": {
12
+ ".": "./index.js",
13
+ "./dist/processPagePollCjs": {
14
+ "types": "./dist/processPagePollCjs.d.ts",
15
+ "default": "./dist/processPagePollCjs.js"
16
+ },
17
+ "./dist/pollResultCjs": {
18
+ "types": "./dist/pollResultCjs.d.ts",
19
+ "default": "./dist/pollResultCjs.js"
20
+ }
21
+ },
11
22
  "files": [
12
23
  "dist",
13
- "src/getScript.js"
24
+ "src/getScript.js",
25
+ "index.js"
14
26
  ],
15
27
  "scripts": {
16
- "lint": "run --top-level eslint '**/*.js'",
28
+ "lint": "run --top-level eslint '**/*.{js,ts}'",
17
29
  "build": "rollup -c src/build/rollup.config.js",
18
30
  "build:pretty": "APPLITOOLS_BUILD_MODE=pretty rollup -c src/build/rollup.config.js",
19
31
  "build:watch": "yarn build --watch",
20
32
  "test": "run test:mocha && run test:testcafe",
21
- "test:mocha": "run --top-level mocha './test/**/*.test.js'",
33
+ "test:mocha": "run --top-level mocha './test/**/*.test.{js,ts}'",
22
34
  "test:testcafe": "testcafe chrome:headless test/testcafe/*.testcafe.js",
23
35
  "surge": "surge test/fixtures applitools-dom-snapshot.surge.sh"
24
36
  },
@@ -32,6 +44,7 @@
32
44
  "@applitools/monitoring-commons": "^1.0.19",
33
45
  "@applitools/snippets": "2.7.0",
34
46
  "@applitools/spec-driver-puppeteer": "1.6.5",
47
+ "@applitools/spec-driver-webdriver": "1.4.5",
35
48
  "@applitools/test-server": "^1.3.3",
36
49
  "@applitools/test-utils": "^1.5.17",
37
50
  "@babel/core": "^7.26.0",
@@ -42,6 +55,9 @@
42
55
  "@rollup/plugin-node-resolve": "^15.2.3",
43
56
  "@rollup/plugin-replace": "^5.0.4",
44
57
  "@rollup/plugin-terser": "^0.4.4",
58
+ "@rollup/plugin-typescript": "^12.1.4",
59
+ "@types/mocha": "^10.0.10",
60
+ "@types/node": "^24.3.0",
45
61
  "@types/pixelmatch": "^5.2.4",
46
62
  "abort-controller": "^3.0.0",
47
63
  "chai": "^4.2.0",
@@ -59,6 +75,7 @@
59
75
  "rollup-plugin-polyfill": "^4.2.0",
60
76
  "selenium-webdriver": "^4.15.0",
61
77
  "testcafe": "^1.18.1",
78
+ "typescript": "^5.9.2",
62
79
  "whatwg-fetch": "^3.0.0"
63
80
  },
64
81
  "engines": {
package/src/getScript.js CHANGED
@@ -8,4 +8,4 @@ const makeGetScript = filename =>
8
8
  return await p(fs.readFile)(__dirname + `/../dist/${filename}.js`, 'utf-8')
9
9
  })
10
10
 
11
- module.exports = makeGetScript
11
+ module.exports = makeGetScript