@axe-core/watcher 3.11.1-next.0f311c49 → 3.11.1-next.547b132b

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.
@@ -17,7 +17,7 @@ const playwrightTest = (options) => {
17
17
  let base;
18
18
  let chromium;
19
19
  try {
20
- // eslint-disable-next-line @typescript-eslint/no-require-imports
20
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, import/no-extraneous-dependencies
21
21
  ;
22
22
  ({ test: base, chromium } = require('@playwright/test'));
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"playwrightTest.js","sourceRoot":"","sources":["../src/playwrightTest.ts"],"names":[],"mappings":";;AAUA,6CAIqB;AACrB,iCAAwD;AAYxD;;;;;;GAMG;AAEH,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAe,EAAE;IACvD,IAAI,UAAU,GAAgC,IAAI,CAAA;IAClD,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;IAElC,4DAA4D;IAC5D,oDAAoD;IACpD,IAAI,IAAU,CAAA;IACd,IAAI,QAAsC,CAAA;IAC1C,IAAI,CAAC;QACH,iEAAiE;QACjE,CAAC;QAAA,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAC3D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,mCAAmC,GAAI,KAAe,CAAC,OAAO,CAC/D,CAAA;IACH,CAAC;IAED,IAAA,qBAAc,EAAC,GAAG,CAAC,CAAA;IAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,0EAA0E;QAC1E,EAAE;QACF,mEAAmE;QACnE,EAAE;QACF,4CAA4C;QAC5C,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CAAC,EAAE,EAAE;gBACzD,GAAG,MAAM;gBACT,IAAI,EAAE,IAAA,sBAAe,EAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE;oBACvC,sBAAsB,EAAE,IAAI;iBAC7B,CAAC;aACH,CAAC,CAAA;YACF,MAAM,GAAG,CAAC,OAAO,CAAC,CAAA;YAClB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QACvB,CAAC;QACD,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;YAC5B,UAAU,GAAG,IAAI,iCAAoB,CAAC,IAAI,CAAC,CAAA;YAC3C,IAAI,GAAG,IAAA,+BAAkB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAA;YAC3C,MAAM,GAAG,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,EAAE,CAAA,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAE1B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AACzB,CAAC,CAAA;AAED,kBAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"playwrightTest.js","sourceRoot":"","sources":["../src/playwrightTest.ts"],"names":[],"mappings":";;AAUA,6CAIqB;AACrB,iCAAwD;AAYxD;;;;;;GAMG;AAEH,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAe,EAAE;IACvD,IAAI,UAAU,GAAgC,IAAI,CAAA;IAClD,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;IAElC,4DAA4D;IAC5D,oDAAoD;IACpD,IAAI,IAAU,CAAA;IACd,IAAI,QAAsC,CAAA;IAC1C,IAAI,CAAC;QACH,oGAAoG;QACpG,CAAC;QAAA,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAC3D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,mCAAmC,GAAI,KAAe,CAAC,OAAO,CAC/D,CAAA;IACH,CAAC;IAED,IAAA,qBAAc,EAAC,GAAG,CAAC,CAAA;IAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,0EAA0E;QAC1E,EAAE;QACF,mEAAmE;QACnE,EAAE;QACF,4CAA4C;QAC5C,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CAAC,EAAE,EAAE;gBACzD,GAAG,MAAM;gBACT,IAAI,EAAE,IAAA,sBAAe,EAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE;oBACvC,sBAAsB,EAAE,IAAI;iBAC7B,CAAC;aACH,CAAC,CAAA;YACF,MAAM,GAAG,CAAC,OAAO,CAAC,CAAA;YAClB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QACvB,CAAC;QACD,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;YAC5B,UAAU,GAAG,IAAI,iCAAoB,CAAC,IAAI,CAAC,CAAA;YAC3C,IAAI,GAAG,IAAA,+BAAkB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAA;YAC3C,MAAM,GAAG,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,EAAE,CAAA,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAE1B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AACzB,CAAC,CAAA;AAED,kBAAe,cAAc,CAAA"}
@@ -1,5 +1,5 @@
1
- import type { AxeResults } from 'axe-core';
2
- import debug from 'debug';
1
+ import type { AxeResults, ElementContext, RunOptions } from 'axe-core';
2
+ import type debug from 'debug';
3
3
  /**
4
4
  * Number of page states to send to the server at once.
5
5
  *
@@ -12,6 +12,8 @@ export interface Result {
12
12
  results: AxeResults;
13
13
  screenshot: string | null;
14
14
  screenshot_id: string | null;
15
+ run_context: ElementContext | null;
16
+ run_options: RunOptions | null;
15
17
  }
16
18
  interface SendResultsToServerParams {
17
19
  results: Result[];
@@ -1 +1 @@
1
- {"version":3,"file":"sendResultsToServer.js","sourceRoot":"","sources":["../src/sendResultsToServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sendResultsToServer.js","sourceRoot":"","sources":["../src/sendResultsToServer.ts"],"names":[],"mappings":"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"}
package/dist/util.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import type Controller from './Controller';
2
+ import type axe from 'axe-core';
3
+ import { type RunOptions } from './utils';
2
4
  export declare const PATH_TO_EXTENSION: string;
3
5
  export declare const DEFAULT_SERVER_URL = "https://axe.deque.com/";
4
6
  export declare const PATH_TO_SESSION_FILE: string;
@@ -19,6 +21,22 @@ interface AxeConfiguration {
19
21
  * when changes are made.
20
22
  */
21
23
  autoAnalyze?: boolean;
24
+ /**
25
+ * By default we'll scan the entire page. Provide a context object to limit
26
+ * the scope of the scan.
27
+ *
28
+ * @see https://www.deque.com/axe/core-documentation/api-documentation/#context-parameter
29
+ */
30
+ runContext?: axe.ElementContext;
31
+ /**
32
+ * Provide options on how to run axe.
33
+ * - `rules`: Enable or disable rules using the enabled property
34
+ * - `runOnly`: Limit which rules are executed, based on names or tags
35
+ * - `ancestry`: Return CSS selector for elements, with all the element's ancestors
36
+ *
37
+ * @see https://www.deque.com/axe/core-documentation/api-documentation/#options-parameter
38
+ */
39
+ runOptions?: RunOptions;
22
40
  }
23
41
  export interface Configuration {
24
42
  axe: AxeConfiguration;
@@ -31,13 +49,15 @@ export interface Variables {
31
49
  api_key: string;
32
50
  server_url: string;
33
51
  auto_analyze: boolean;
34
- session_id?: string;
35
52
  cypress: boolean;
53
+ session_id?: string;
54
+ run_context: axe.ElementContext | null;
55
+ run_options: RunOptions | null;
36
56
  take_screenshots?: boolean;
37
57
  experimental_advanced_rules?: boolean;
38
58
  }
39
59
  /** Write the user's settings to the disk, so the extension can load them. */
40
- export declare function writeVariables({ apiKey, serverURL, sessionId, autoAnalyze, cypress, takeScreenshots, experimentalAdvancedRules }: WriteVariablesParams): void;
60
+ export declare function writeVariables({ apiKey, autoAnalyze, cypress, serverURL, sessionId, runContext, runOptions, takeScreenshots, experimentalAdvancedRules }: WriteVariablesParams): void;
41
61
  interface ValidateApiKeyParams {
42
62
  apiKey: string;
43
63
  serverURL: string;
package/dist/util.js CHANGED
@@ -10,6 +10,8 @@ const assert_1 = __importDefault(require("assert"));
10
10
  const fs_1 = __importDefault(require("fs"));
11
11
  const path_1 = __importDefault(require("path"));
12
12
  const os_1 = __importDefault(require("os"));
13
+ const utils_1 = require("./utils");
14
+ // TODO: https://github.com/dequelabs/jazzband/issues/1227
13
15
  exports.PATH_TO_EXTENSION = path_1.default.join(__dirname, '..', 'extension');
14
16
  exports.DEFAULT_SERVER_URL = 'https://axe.deque.com/';
15
17
  exports.PATH_TO_SESSION_FILE = path_1.default.join(os_1.default.tmpdir(), 'axe-watcher-session.json');
@@ -27,7 +29,7 @@ class HeadlessNotSupportedError extends Error {
27
29
  }
28
30
  exports.HeadlessNotSupportedError = HeadlessNotSupportedError;
29
31
  /** Write the user's settings to the disk, so the extension can load them. */
30
- function writeVariables({ apiKey, serverURL, sessionId, autoAnalyze, cypress,
32
+ function writeVariables({ apiKey, autoAnalyze, cypress, serverURL, sessionId, runContext, runOptions,
31
33
  // @ts-expect-error Feature flag, not part of public type
32
34
  takeScreenshots,
33
35
  // @ts-expect-error Feature flag, not part of public type
@@ -42,6 +44,8 @@ experimentalAdvancedRules }) {
42
44
  catch (err) {
43
45
  throw new Error(`Error when converting serverURL to URL. Ensure it is formatted properly: ${err}`);
44
46
  }
47
+ (0, utils_1.validateAxeRunContext)(runContext);
48
+ (0, utils_1.validateAxeRunOptions)(runOptions);
45
49
  (0, exports.validateApiKey)({ apiKey, serverURL: urlString });
46
50
  if (typeof autoAnalyze === 'undefined') {
47
51
  autoAnalyze = true;
@@ -65,7 +69,9 @@ experimentalAdvancedRules }) {
65
69
  take_screenshots: !!takeScreenshots,
66
70
  auto_analyze: !!autoAnalyze,
67
71
  cypress: !!cypress,
68
- experimental_advanced_rules: !!experimentalAdvancedRules
72
+ experimental_advanced_rules: !!experimentalAdvancedRules,
73
+ run_context: runContext || null,
74
+ run_options: runOptions || null
69
75
  };
70
76
  fs_1.default.writeFileSync(exports.PATH_TO_EXTENSION_VARIABLES, JSON.stringify(variables));
71
77
  }
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './validateAxeRunOptions';
2
+ export * from './validateAxeRunContext';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ // TODO: https://github.com/dequelabs/jazzband/issues/1227
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ __exportStar(require("./validateAxeRunOptions"), exports);
19
+ __exportStar(require("./validateAxeRunContext"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA,0DAA0D;;;;;;;;;;;;;;;;AAE1D,0DAAuC;AACvC,0DAAuC"}
@@ -0,0 +1,2 @@
1
+ import type { ElementContext } from 'axe-core';
2
+ export declare function validateAxeRunContext(runContext?: ElementContext | undefined): asserts runContext is ElementContext;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateAxeRunContext = void 0;
4
+ function validateAxeRunContext(runContext = undefined) {
5
+ if (!runContext) {
6
+ return;
7
+ }
8
+ if (!isContextObject(runContext)) {
9
+ throw new Error(`\`runContext\` must be an object, an array of objects, or a string. Examples: \n
10
+ - Object: { runContext: { include: 'selector' } }\n
11
+ - Array: { runContext: ['selector1', 'selector2'] }\n
12
+ - String: { runContext: 'selector' }\n
13
+
14
+ For more detailed examples: https://www.deque.com/axe/core-documentation/api-documentation/#context-parameter
15
+ `);
16
+ }
17
+ }
18
+ exports.validateAxeRunContext = validateAxeRunContext;
19
+ /**
20
+ * Validates the context object for the `runContext` parameter of the `axe.run` method.
21
+ * Borrowed from axe-core's original implementation.
22
+ *
23
+ * @see https://github.com/dequelabs/axe-core/blob/0577a74fab385a590b31c9118f3da7ad55051097/lib/core/base/context/normalize-context.js#L92
24
+ *
25
+ * Removed `window.node` check
26
+ *
27
+ * @param contextSpec - The context object to validate
28
+ * @returns `true` if the context object is valid, `false` otherwise
29
+ */
30
+ function isContextObject(contextSpec) {
31
+ return ['include', 'exclude'].some(prop => objectHasOwn(contextSpec, prop) &&
32
+ isContextProp(contextSpec[prop]));
33
+ }
34
+ //@see https://github.com/dequelabs/axe-core/blob/0577a74fab385a590b31c9118f3da7ad55051097/lib/core/base/context/normalize-context.js#L98
35
+ function isContextProp(contextList) {
36
+ return (typeof contextList === 'string' ||
37
+ isLabelledFramesSelector(contextList) ||
38
+ isLabelledShadowDomSelector(contextList) ||
39
+ isArrayLike(contextList));
40
+ }
41
+ // @see https://github.com/dequelabs/axe-core/blob/0577a74fab385a590b31c9118f3da7ad55051097/lib/core/base/context/normalize-context.js#L178-L184
42
+ function objectHasOwn(obj, prop) {
43
+ if (!obj || typeof obj !== 'object') {
44
+ return false;
45
+ }
46
+ return Object.prototype.hasOwnProperty.call(obj, prop);
47
+ }
48
+ //@see https://github.com/dequelabs/axe-core/blob/0577a74fab385a590b31c9118f3da7ad55051097/lib/core/base/context/normalize-context.js#L108
49
+ function isLabelledFramesSelector(selector) {
50
+ return objectHasOwn(selector, 'fromFrames');
51
+ }
52
+ //@see https://github.com/dequelabs/axe-core/blob/0577a74fab385a590b31c9118f3da7ad55051097/lib/core/base/context/normalize-context.js#L112
53
+ function isLabelledShadowDomSelector(selector) {
54
+ return objectHasOwn(selector, 'fromShadowDom');
55
+ }
56
+ // @see https://github.com/dequelabs/axe-core/blob/0577a74fab385a590b31c9118f3da7ad55051097/lib/core/base/context/normalize-context.js#L160C1-L168C2
57
+ function isArrayLike(arr) {
58
+ return arr && typeof arr === 'object' && typeof arr.length === 'number';
59
+ }
60
+ //# sourceMappingURL=validateAxeRunContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAxeRunContext.js","sourceRoot":"","sources":["../../src/utils/validateAxeRunContext.ts"],"names":[],"mappings":";;;AAEA,SAAgB,qBAAqB,CACnC,aAAyC,SAAS;IAElD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAM;IACR,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb;;;;;;OAMC,CACF,CAAA;IACH,CAAC;AACH,CAAC;AAlBD,sDAkBC;AAED;;;;;;;;;;GAUG;AACH,SAAS,eAAe,CAAC,WAA2B;IAClD,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,IAAI,CAChC,IAAI,CAAC,EAAE,CACL,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC;QAC/B,aAAa,CAAC,WAAW,CAAC,IAA4B,CAAC,CAAC,CAC3D,CAAA;AACH,CAAC;AAED,yIAAyI;AACzI,SAAS,aAAa,CACpB,WAAiD;IAEjD,OAAO,CACL,OAAO,WAAW,KAAK,QAAQ;QAC/B,wBAAwB,CAAC,WAAW,CAAC;QACrC,2BAA2B,CAAC,WAAW,CAAC;QACxC,WAAW,CAAC,WAAW,CAAC,CACzB,CAAA;AACH,CAAC;AAED,gJAAgJ;AAChJ,SAAS,YAAY,CAAC,GAAY,EAAE,IAAiB;IACnD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACxD,CAAC;AAED,0IAA0I;AAC1I,SAAS,wBAAwB,CAAC,QAAiB;IACjD,OAAO,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;AAC7C,CAAC;AAED,0IAA0I;AAC1I,SAAS,2BAA2B,CAAC,QAAiB;IACpD,OAAO,YAAY,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;AAChD,CAAC;AAED,oJAAoJ;AACpJ,SAAS,WAAW,CAAC,GAAc;IACjC,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAA;AACzE,CAAC"}
@@ -0,0 +1,2 @@
1
+ /// <reference types="cypress/types/mocha" />
2
+ import 'mocha';
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("mocha");
4
+ const chai_1 = require("chai");
5
+ const validateAxeRunContext_1 = require("./validateAxeRunContext");
6
+ describe('validateAxeRunContext', () => {
7
+ describe('when no run context is provided', () => {
8
+ it('does not throw an error', () => {
9
+ chai_1.assert.doesNotThrow(() => (0, validateAxeRunContext_1.validateAxeRunContext)());
10
+ });
11
+ });
12
+ describe('given a valid run context', () => {
13
+ describe('when the run context is a string', () => {
14
+ it('does not throw an error', () => {
15
+ chai_1.assert.doesNotThrow(() => (0, validateAxeRunContext_1.validateAxeRunContext)({ include: 'selector' }));
16
+ });
17
+ });
18
+ describe('when the run context is an array of strings', () => {
19
+ it('does not throw an error', () => {
20
+ chai_1.assert.doesNotThrow(() => (0, validateAxeRunContext_1.validateAxeRunContext)({ include: ['selector1', 'selector2'] }));
21
+ });
22
+ });
23
+ describe('when the run context is an object', () => {
24
+ describe('when the object has an `include` property', () => {
25
+ it('does not throw an error', () => {
26
+ chai_1.assert.doesNotThrow(() => (0, validateAxeRunContext_1.validateAxeRunContext)({ include: 'selector' }));
27
+ });
28
+ describe('and a `fromFrames` property', () => {
29
+ it('does not throw an error', () => {
30
+ chai_1.assert.doesNotThrow(() => (0, validateAxeRunContext_1.validateAxeRunContext)({
31
+ include: {
32
+ fromFrames: ['selector', 'selector']
33
+ }
34
+ }));
35
+ });
36
+ });
37
+ describe('and a `fromShadowDom` property', () => {
38
+ it('does not throw an error', () => {
39
+ chai_1.assert.doesNotThrow(() => (0, validateAxeRunContext_1.validateAxeRunContext)({
40
+ include: {
41
+ fromShadowDom: ['selector', 'selector']
42
+ }
43
+ }));
44
+ });
45
+ });
46
+ });
47
+ describe('when the object has an `exclude` property', () => {
48
+ it('does not throw an error', () => {
49
+ chai_1.assert.doesNotThrow(() => (0, validateAxeRunContext_1.validateAxeRunContext)({ exclude: 'selector' }));
50
+ });
51
+ describe('and a `fromFrames` property', () => {
52
+ it('does not throw an error', () => {
53
+ chai_1.assert.doesNotThrow(() => (0, validateAxeRunContext_1.validateAxeRunContext)({
54
+ exclude: {
55
+ fromFrames: ['selector', 'selector']
56
+ }
57
+ }));
58
+ });
59
+ });
60
+ describe('and a `fromShadowDom` property', () => {
61
+ it('does not throw an error', () => {
62
+ chai_1.assert.doesNotThrow(() => (0, validateAxeRunContext_1.validateAxeRunContext)({
63
+ exclude: {
64
+ fromShadowDom: ['selector', 'selector']
65
+ }
66
+ }));
67
+ });
68
+ });
69
+ });
70
+ describe('when the object has both `include` and `exclude` properties', () => {
71
+ it('does not throw an error', () => {
72
+ chai_1.assert.doesNotThrow(() => (0, validateAxeRunContext_1.validateAxeRunContext)({ include: 'selector', exclude: 'selector' }));
73
+ });
74
+ });
75
+ });
76
+ });
77
+ describe('given an invalid run context', () => {
78
+ describe('and does not have an `include` or `exclude` property', () => {
79
+ describe('and is not a string', () => {
80
+ it('throws an error', () => {
81
+ //@ts-expect-error - Testing invalid input
82
+ chai_1.assert.throws(() => (0, validateAxeRunContext_1.validateAxeRunContext)(1));
83
+ });
84
+ });
85
+ describe('and is not an array of strings', () => {
86
+ it('throws an error', () => {
87
+ //@ts-expect-error - Testing invalid input
88
+ chai_1.assert.throws(() => (0, validateAxeRunContext_1.validateAxeRunContext)([1, 2]));
89
+ });
90
+ });
91
+ describe('and does not have a `fromFrames` or `fromShadowDom` property', () => {
92
+ it('throws an error', () => {
93
+ //@ts-expect-error - Testing invalid input
94
+ chai_1.assert.throws(() => (0, validateAxeRunContext_1.validateAxeRunContext)({ a: 'a' }));
95
+ });
96
+ });
97
+ });
98
+ });
99
+ });
100
+ //# sourceMappingURL=validateAxeRunContext.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAxeRunContext.test.js","sourceRoot":"","sources":["../../src/utils/validateAxeRunContext.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { RunOptions as AxeRunOptions } from 'axe-core';
2
+ export type RunOptions = Pick<AxeRunOptions, 'runOnly' | 'rules' | 'ancestry'>;
3
+ /**
4
+ * We only provide a subset of axe-core's RunOptions.
5
+ * We want to sanitize the user's input to ensure they are not providing
6
+ * any invalid properties that are outside of the subset we provide.
7
+ *
8
+ * @param runOptions The user's run options.
9
+ */
10
+ export declare function validateAxeRunOptions(runOptions?: RunOptions | undefined): asserts runOptions is RunOptions;
11
+ /** Helper functions */
12
+ /** Checks if the value provided is an object */
13
+ export declare function isObject(value: unknown): value is Record<string, unknown>;
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isObject = exports.validateAxeRunOptions = void 0;
4
+ const VALID_RUN_ONLY_TYPES = [
5
+ 'rules',
6
+ 'rule',
7
+ 'tag',
8
+ 'tags'
9
+ ];
10
+ /**
11
+ * We only provide a subset of axe-core's RunOptions.
12
+ * We want to sanitize the user's input to ensure they are not providing
13
+ * any invalid properties that are outside of the subset we provide.
14
+ *
15
+ * @param runOptions The user's run options.
16
+ */
17
+ function validateAxeRunOptions(runOptions = undefined) {
18
+ if (!runOptions) {
19
+ return;
20
+ }
21
+ const runOptionsKeys = Object.keys(runOptions);
22
+ const validKeys = [
23
+ 'runOnly',
24
+ 'rules',
25
+ 'ancestry'
26
+ ];
27
+ for (const key of runOptionsKeys) {
28
+ switch (key) {
29
+ case 'ancestry':
30
+ if (!isBoolean(runOptions.ancestry)) {
31
+ throw new Error('`ancestry` property must be a boolean. Full example: `{ ancestry: true }`');
32
+ }
33
+ break;
34
+ case 'rules':
35
+ validateRulesProperty(runOptions.rules);
36
+ break;
37
+ case 'runOnly':
38
+ validateRunOnlyProperty(runOptions.runOnly);
39
+ break;
40
+ default:
41
+ throw new Error(`Invalid property found in \`runOptions\`: ${key}. The available properties are: ${validKeys.join(', ')}`);
42
+ }
43
+ }
44
+ }
45
+ exports.validateAxeRunOptions = validateAxeRunOptions;
46
+ /** Helper functions */
47
+ /** Checks if the value provided is an object */
48
+ function isObject(value) {
49
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
50
+ }
51
+ exports.isObject = isObject;
52
+ /** Checks if the value provided is a boolean */
53
+ function isBoolean(value) {
54
+ return typeof value === 'boolean';
55
+ }
56
+ /**
57
+ * Validate the user's `rules` object and its values. As a user can provide:
58
+ * @example
59
+ * {
60
+ * rules: {
61
+ * 'ruleId1': { enabled: false },
62
+ * 'ruleId2': { enabled: false }
63
+ * 'ruleId3': { enabled: false }
64
+ * // ...
65
+ * }
66
+ * }
67
+ *
68
+ * @param rules The user's rules object.
69
+ */
70
+ function validateRulesProperty(rules) {
71
+ if (!isObject(rules)) {
72
+ throw new Error('`rules` property must be an object. Full example: `{ rules: { "ruleId": { enabled: false } } }`');
73
+ }
74
+ if (!Object.keys(rules).length) {
75
+ throw new Error('`rules` object must contain at least one key-value pair. Full example: `{ rules: { "ruleId": { enabled: false } } }`');
76
+ }
77
+ // Validate each K:V pair in the `rules` object e.g. { 'ruleId': { enabled: false } }
78
+ for (const ruleKey of Object.keys(rules)) {
79
+ const ruleValue = rules[ruleKey];
80
+ if (!isObject(ruleValue)) {
81
+ throw new Error(`The value of the \`${ruleKey}\` key in the \`rules\` object must be an object. Full example: \`{ rules: { "ruleId": { enabled: false } } }\``);
82
+ }
83
+ if (Object.keys(ruleValue).length !== 1) {
84
+ throw new Error(`The \`${ruleKey}\` key in the \`rules\` object must only contain the \`enabled\` property. Full example: \`{ rules: { "ruleId": { enabled: false } } }\``);
85
+ }
86
+ if (!('enabled' in ruleValue)) {
87
+ throw new Error(`The \`${ruleKey}\` key in the \`rules\` object must contain an \`enabled\` property. Full example: \`{ rules: { "ruleId": { enabled: false } } }\``);
88
+ }
89
+ if (!isBoolean(ruleValue.enabled)) {
90
+ throw new Error(`The \`enabled\` property of the \`${ruleKey}\` key in the \`rules\` object must be a boolean. Full example: \`{ rules: { "ruleId": { enabled: false } } }\``);
91
+ }
92
+ }
93
+ }
94
+ /**
95
+ * Validate the user's `runOnly` configuration. A user can provide:
96
+ * @example
97
+ * {
98
+ * runOnly: {
99
+ * type: 'rule',
100
+ * values: ['ruleId1', 'ruleId2', 'ruleId3']
101
+ * }
102
+ * }
103
+ *
104
+ * OR
105
+ *
106
+ * @example
107
+ * {
108
+ * runOnly: ['ruleId1', 'ruleId2', 'ruleId3']
109
+ * }
110
+ *
111
+ * OR
112
+ *
113
+ * @example
114
+ * {
115
+ * runOnly: 'ruleId1'
116
+ * }
117
+ *
118
+ * @param runOnly The user's runOnly object, array, or string.
119
+ */
120
+ function validateRunOnlyProperty(runOnly) {
121
+ const isRunOnlyObject = isObject(runOnly);
122
+ const isRunOnlyArray = Array.isArray(runOnly);
123
+ const isRunOnlyString = typeof runOnly === 'string';
124
+ if (!isRunOnlyObject && !isRunOnlyArray && !isRunOnlyString) {
125
+ throw new Error(`\`runOnly\` property must be an object, an array, or a string. Examples: \n
126
+ - Object: { runOnly: { type: 'rule', values: ['ruleId1'] } }\n
127
+ - Array: { runOnly: ['ruleId1', 'ruleId2', 'ruleId3'] }\n
128
+ - String: { runOnly: 'ruleId1' }\n
129
+
130
+ For more detailed examples: https://www.deque.com/axe/core-documentation/api-documentation/#options-parameter
131
+ `);
132
+ }
133
+ if (isRunOnlyArray) {
134
+ if (!runOnly.length) {
135
+ throw new Error(`\`runOnly\` array must contain at least one string value. Example: { runOnly: ['ruleId1', 'ruleId2'] }`);
136
+ }
137
+ if (runOnly.some(value => typeof value !== 'string')) {
138
+ throw new Error(`\`runOnly\` array must contain only strings. Example: { runOnly: ['ruleId1', 'ruleId2'] }`);
139
+ }
140
+ }
141
+ if (isRunOnlyObject) {
142
+ if (!('type' in runOnly)) {
143
+ throw new Error(`\`runOnly\` object must contain a \`type\` property. Example: { runOnly: { type: 'rule', values: ['ruleId1'] } }`);
144
+ }
145
+ if (!('values' in runOnly)) {
146
+ throw new Error(`\`runOnly\` object must contain a \`values\` property. Example: { runOnly: { type: 'rule', values: ['ruleId1'] } }`);
147
+ }
148
+ if (!VALID_RUN_ONLY_TYPES.includes(runOnly.type)) {
149
+ throw new Error(`\`runOnly\` object's \`type\` property must be one of the following: ${VALID_RUN_ONLY_TYPES.join(', ')}`);
150
+ }
151
+ if (!Array.isArray(runOnly.values)) {
152
+ throw new Error(`\`runOnly\` object's \`values\` property must be an array. Example: { runOnly: { type: 'rule', values: ['ruleId1'] } }`);
153
+ }
154
+ if (!runOnly.values.length) {
155
+ throw new Error(`\`runOnly\` object's \`values\` property must contain at least one value. Example: { runOnly: { type: 'rule', values: ['ruleId1'] } }`);
156
+ }
157
+ if (runOnly.values.some(value => typeof value !== 'string')) {
158
+ throw new Error(`\`runOnly\` object's \`values\` property must contain only strings. Example: { runOnly: { type: 'rule', values: ['ruleId1'] } }`);
159
+ }
160
+ }
161
+ }
162
+ //# sourceMappingURL=validateAxeRunOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAxeRunOptions.js","sourceRoot":"","sources":["../../src/utils/validateAxeRunOptions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /// <reference types="cypress/types/mocha" />
2
+ import 'mocha';