diff --git a/.gitignore b/.gitignore index a7e119ee035e..96e153e8eb33 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ sticker-creator/**/*.js sticker-creator/dist/* /.idea +/storybook-static/ diff --git a/.storybook/config.js b/.storybook/config.js index d2bf3b882209..83ad39d5bed0 100644 --- a/.storybook/config.js +++ b/.storybook/config.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: AGPL-3.0-only import * as React from 'react'; -import { addDecorator, configure } from '@storybook/react'; +import { addDecorator, addParameters, configure } from '@storybook/react'; import { withKnobs, boolean, optionsKnob } from '@storybook/addon-knobs'; import classnames from 'classnames'; import * as styles from './styles.scss'; @@ -126,6 +126,12 @@ addDecorator(Story => ); addDecorator(story => {story()}); +addParameters({ + axe: { + disabledRules: ['html-has-lang'], + }, +}); + configure(() => { // Load main app stories const tsComponentsContext = require.context( diff --git a/package.json b/package.json index 731d773b138a..74024aedb9d4 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "dev:webpack": "cross-env NODE_ENV=development webpack-dev-server --hot", "dev:typed-scss": "yarn build:typed-scss -w", "dev:storybook": "cross-env SIGNAL_ENV=storybook start-storybook -p 6006 -s ./", + "storybook:axe": "build-storybook && axe-storybook", "build": "run-s --print-label build:grunt build:typed-scss build:webpack build:release build:zip", "build:acknowledgments": "node scripts/generate-acknowledgments.js", "build:dev": "run-s --print-label build:grunt build:typed-scss build:webpack", @@ -164,6 +165,7 @@ "@babel/plugin-transform-runtime": "7.8.3", "@babel/preset-react": "7.7.4", "@babel/preset-typescript": "7.7.7", + "@chanzuckerberg/axe-storybook-testing": "3.0.1", "@storybook/addon-actions": "5.1.11", "@storybook/addon-knobs": "5.1.11", "@storybook/addons": "5.1.11", @@ -262,6 +264,7 @@ "snyk": "1.316.1", "spectron": "5.0.0", "style-loader": "1.0.0", + "ts-dedent": "2.0.0", "ts-loader": "4.1.0", "ts-node": "8.3.0", "typed-scss-modules": "0.0.11", diff --git a/ts/util/lint/exceptions.json b/ts/util/lint/exceptions.json index f5227a18db6e..224cd98c1f22 100644 --- a/ts/util/lint/exceptions.json +++ b/ts/util/lint/exceptions.json @@ -1583,6 +1583,275 @@ "updated": "2020-11-18T03:39:29.033Z", "reasonDetail": "Protected from arbitrary input" }, + { + "rule": "jQuery-wrap(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/ansi-styles/index.js", + "line": "\t\t\tstyles[name] = wrap(identity, offset);", + "lineNumber": 52, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-wrap(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/ansi-styles/index.js", + "line": "\t\t\tstyles[name] = wrap(suite[targetSpace], offset);", + "lineNumber": 54, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-wrap(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/cliui/build/lib/index.js", + "line": " wrapped = mixin.wrap(col.text, this.negatePadding(col), { hard: true }).split('\\n');", + "lineNumber": 168, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-wrap(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/cliui/build/lib/string-utils.js", + "line": "export function wrap(str, width) {", + "lineNumber": 13, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-after(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/after.js", + "line": " * var done = _.after(saves.length, function() {", + "lineNumber": 21, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-after(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/after.js", + "line": "function after(n, func) {", + "lineNumber": 30, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-before(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/before.js", + "line": " * jQuery(element).on('click', _.before(5, addContactToList));", + "lineNumber": 20, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-before(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/before.js", + "line": "function before(n, func) {", + "lineNumber": 23, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-before(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/core.js", + "line": " * jQuery(element).on('click', _.before(5, addContactToList));", + "lineNumber": 2244, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-before(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/core.js", + "line": " function before(n, func) {", + "lineNumber": 2247, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-before(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/core.js", + "line": " return before(2, func);", + "lineNumber": 2397, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-wrap(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/core.js", + "line": " * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {", + "lineNumber": 3499, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/core.min.js", + "lineNumber": 15, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-wrap(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/fp/_baseConvert.js", + "line": " function wrap(name, func, placeholder) {", + "lineNumber": 468, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-wrap(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/fp/_baseConvert.js", + "line": " return wrap(name, func, defaultHolder);", + "lineNumber": 521, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-wrap(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/fp/_baseConvert.js", + "line": " pairs.push([key, wrap(key, func, _)]);", + "lineNumber": 531, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-wrap(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/iteratee.js", + "line": " * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {", + "lineNumber": 40, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-after(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/lodash.js", + "line": " * var done = _.after(saves.length, function() {", + "lineNumber": 10049, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-after(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/lodash.js", + "line": " function after(n, func) {", + "lineNumber": 10058, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-before(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/lodash.js", + "line": " * jQuery(element).on('click', _.before(5, addContactToList));", + "lineNumber": 10107, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-before(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/lodash.js", + "line": " function before(n, func) {", + "lineNumber": 10110, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-before(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/lodash.js", + "line": " return before(2, func);", + "lineNumber": 10686, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-wrap(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/lodash.js", + "line": " * var p = _.wrap(_.escape, function(func, text) {", + "lineNumber": 11017, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-wrap(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/lodash.js", + "line": " function wrap(value, wrapper) {", + "lineNumber": 11024, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-wrap(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/lodash.js", + "line": " * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {", + "lineNumber": 15594, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/lodash.min.js", + "lineNumber": 14, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/lodash.min.js", + "lineNumber": 107, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-before(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/once.js", + "line": " return before(2, func);", + "lineNumber": 22, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-wrap(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/wrap.js", + "line": " * var p = _.wrap(_.escape, function(func, text) {", + "lineNumber": 19, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-wrap(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/lodash/wrap.js", + "line": "function wrap(value, wrapper) {", + "lineNumber": 26, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/yargs/build/lib/completion-templates.js", + "line": " type_list=$({{app_path}} --get-yargs-completions \"\\${args[@]}\")", + "lineNumber": 16, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/yargs/build/lib/completion-templates.js", + "line": " COMPREPLY=( $(compgen -W \"\\${type_list}\" -- \\${cur_word}) )", + "lineNumber": 18, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/yargs/build/lib/completion-templates.js", + "line": " IFS=$'\\n' reply=($(COMP_CWORD=\"$((CURRENT-1))\" COMP_LINE=\"$BUFFER\" COMP_POINT=\"$CURSOR\" {{app_path}} --get-yargs-completions \"\\${words[@]}\"))", + "lineNumber": 41, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-wrap(", + "path": "node_modules/@chanzuckerberg/axe-storybook-testing/node_modules/yargs/build/lib/yargs-factory.js", + "line": " usage.wrap(cols);", + "lineNumber": 751, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, { "rule": "DOM-innerHTML", "path": "node_modules/@electron/get/node_modules/@sindresorhus/is/dist/index.js", @@ -6389,6 +6658,14 @@ "reasonCategory": "falseMatch", "updated": "2020-08-11T15:42:35.324Z" }, + { + "rule": "jQuery-load(", + "path": "node_modules/jpeg-js/lib/decoder.js", + "line": " load: function load(path) {", + "lineNumber": 551, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, { "rule": "eval", "path": "node_modules/js-base64/base64.js", @@ -11614,6 +11891,1432 @@ "reasonCategory": "falseMatch", "updated": "2021-03-09T20:56:35.403Z" }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/client/elementHandle.js", + "line": " async innerHTML() {", + "lineNumber": 90, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/client/elementHandle.js", + "line": " return this._wrapApiCall('elementHandle.innerHTML', async (channel) => {", + "lineNumber": 91, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/client/elementHandle.js", + "line": " return (await channel.innerHTML()).value;", + "lineNumber": 92, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/client/elementHandle.js", + "line": " async $(selector) {", + "lineNumber": 221, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/client/elementHandle.js", + "line": " async $$(selector) {", + "lineNumber": 226, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "eval", + "path": "node_modules/playwright/lib/client/elementHandle.js", + "line": " async $eval(selector, pageFunction, arg) {", + "lineNumber": 232, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "eval", + "path": "node_modules/playwright/lib/client/elementHandle.js", + "line": " async $$eval(selector, pageFunction, arg) {", + "lineNumber": 238, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/client/frame.js", + "line": " async $(selector) {", + "lineNumber": 190, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "eval", + "path": "node_modules/playwright/lib/client/frame.js", + "line": " async $eval(selector, pageFunction, arg) {", + "lineNumber": 211, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "eval", + "path": "node_modules/playwright/lib/client/frame.js", + "line": " async $$eval(selector, pageFunction, arg) {", + "lineNumber": 218, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/client/frame.js", + "line": " async $$(selector) {", + "lineNumber": 225, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/client/frame.js", + "line": " async innerHTML(selector, options = {}) {", + "lineNumber": 313, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/client/frame.js", + "line": " return this._wrapApiCall(this._apiName('innerHTML'), async (channel) => {", + "lineNumber": 314, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/client/frame.js", + "line": " return (await channel.innerHTML({ selector, ...options })).value;", + "lineNumber": 315, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/client/page.js", + "line": " async $(selector) {", + "lineNumber": 237, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/client/page.js", + "line": " return this._attributeToPage(() => this._mainFrame.$(selector));", + "lineNumber": 238, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "eval", + "path": "node_modules/playwright/lib/client/page.js", + "line": " async $eval(selector, pageFunction, arg) {", + "lineNumber": 250, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "eval", + "path": "node_modules/playwright/lib/client/page.js", + "line": " return this._attributeToPage(() => this._mainFrame.$eval(selector, pageFunction, arg));", + "lineNumber": 252, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "eval", + "path": "node_modules/playwright/lib/client/page.js", + "line": " async $$eval(selector, pageFunction, arg) {", + "lineNumber": 254, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "eval", + "path": "node_modules/playwright/lib/client/page.js", + "line": " return this._attributeToPage(() => this._mainFrame.$$eval(selector, pageFunction, arg));", + "lineNumber": 256, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/client/page.js", + "line": " async $$(selector) {", + "lineNumber": 258, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/client/page.js", + "line": " return this._attributeToPage(() => this._mainFrame.$$(selector));", + "lineNumber": 259, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/client/page.js", + "line": " async innerHTML(selector, options) {", + "lineNumber": 467, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/client/page.js", + "line": " return this._attributeToPage(() => this._mainFrame.innerHTML(selector, options));", + "lineNumber": 468, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/dispatchers/elementHandlerDispatcher.js", + "line": " async innerHTML(params, metadata) {", + "lineNumber": 52, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/dispatchers/elementHandlerDispatcher.js", + "line": " return { value: await this._elementHandle.innerHTML() };", + "lineNumber": 53, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/dispatchers/elementHandlerDispatcher.js", + "line": " const handle = await this._elementHandle.$(params.selector);", + "lineNumber": 127, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/dispatchers/elementHandlerDispatcher.js", + "line": " const elements = await this._elementHandle.$$(params.selector);", + "lineNumber": 131, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/dispatchers/frameDispatcher.js", + "line": " return { element: elementHandlerDispatcher_1.ElementHandleDispatcher.createNullable(this._scope, await this._frame.$(params.selector)) };", + "lineNumber": 75, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/dispatchers/frameDispatcher.js", + "line": " const elements = await this._frame.$$(params.selector);", + "lineNumber": 78, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/dispatchers/frameDispatcher.js", + "line": " async innerHTML(params, metadata) {", + "lineNumber": 115, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/dispatchers/frameDispatcher.js", + "line": " return { value: await this._frame.innerHTML(metadata, params.selector, params) };", + "lineNumber": 116, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/generated/consoleApiSource.js", + "lineNumber": 4, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-append(", + "path": "node_modules/playwright/lib/generated/consoleApiSource.js", + "lineNumber": 4, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "eval", + "path": "node_modules/playwright/lib/generated/injectedScriptSource.js", + "lineNumber": 4, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-append(", + "path": "node_modules/playwright/lib/generated/injectedScriptSource.js", + "lineNumber": 4, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-append(", + "path": "node_modules/playwright/lib/generated/recorderSource.js", + "lineNumber": 4, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "eval", + "path": "node_modules/playwright/lib/generated/utilityScriptSource.js", + "lineNumber": 4, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-append(", + "path": "node_modules/playwright/lib/server/common/selectorParser.js", + "line": " append();", + "lineNumber": 87, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-append(", + "path": "node_modules/playwright/lib/server/common/selectorParser.js", + "line": " append();", + "lineNumber": 104, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-append(", + "path": "node_modules/playwright/lib/server/common/selectorParser.js", + "line": " append();", + "lineNumber": 112, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/server/dom.js", + "line": " async innerHTML() {", + "lineNumber": 177, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/server/dom.js", + "line": " return { value: element.innerHTML };", + "lineNumber": 182, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/server/dom.js", + "line": " async $(selector) {", + "lineNumber": 586, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/server/dom.js", + "line": " async $$(selector) {", + "lineNumber": 589, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/server/dom.js", + "line": " return element.innerHTML;", + "lineNumber": 889, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/server/frames.js", + "line": " async $(selector) {", + "lineNumber": 527, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/server/frames.js", + "line": " const handle = await this.$(selector);", + "lineNumber": 564, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/server/frames.js", + "line": " async $$(selector) {", + "lineNumber": 577, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-outerHTML", + "path": "node_modules/playwright/lib/server/frames.js", + "line": " retVal += document.documentElement.outerHTML;", + "lineNumber": 587, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-document.write(", + "path": "node_modules/playwright/lib/server/frames.js", + "line": " document.write(html);", + "lineNumber": 609, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/server/frames.js", + "line": " async innerHTML(metadata, selector, options = {}) {", + "lineNumber": 808, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/server/frames.js", + "line": " progress.log(` retrieving innerHTML from \"${selector}\"`);", + "lineNumber": 813, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/server/frames.js", + "line": " const element = await this.$(selector);", + "lineNumber": 840, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "eval", + "path": "node_modules/playwright/lib/server/frames.js", + "line": " let result = self.eval(expression);", + "lineNumber": 908, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-load(", + "path": "node_modules/playwright/lib/server/snapshot/snapshotStorage.js", + "line": " async load(tracePrefix, resourcesDir) {", + "lineNumber": 82, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-prepend(", + "path": "node_modules/playwright/lib/server/supplements/recorder/csharp.js", + "line": " prepend(text) {", + "lineNumber": 225, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-prepend(", + "path": "node_modules/playwright/lib/server/supplements/recorder/javascript.js", + "line": " prepend(text) {", + "lineNumber": 185, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-prepend(", + "path": "node_modules/playwright/lib/server/supplements/recorder/python.js", + "line": " prepend(text) {", + "lineNumber": 198, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-load(", + "path": "node_modules/playwright/lib/server/trace/viewer/traceViewer.js", + "line": " await snapshotStorage.load(tracePrefix, resourcesDir);", + "lineNumber": 81, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/third_party/highlightjs/highlightjs/core.js", + "line": " domProps: { innerHTML: this.highlighted }", + "lineNumber": 1160, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/third_party/highlightjs/highlightjs/core.js", + "line": " resultNode.innerHTML = result.value;", + "lineNumber": 1181, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/third_party/highlightjs/highlightjs/core.js", + "line": " block.innerHTML = block.innerHTML.replace(/\\n/g, '').replace(//g, '\\n');", + "lineNumber": 1944, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/third_party/highlightjs/highlightjs/core.js", + "line": " element.innerHTML = result.value;", + "lineNumber": 1979, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "jQuery-$(", + "path": "node_modules/playwright/lib/third_party/highlightjs/highlightjs/languages/javascript.js", + "line": " begin: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`", + "lineNumber": 567, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "React-dangerouslySetInnerHTML", + "path": "node_modules/playwright/lib/web/recorder/app.bundle.js", + "line": "var reservedProps = ['children', 'dangerouslySetInnerHTML', // TODO: This prevents the assignment of defaultValue to regular", + "lineNumber": 867, + "reasonCategory": "usageTrusted", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "DOM-innerHTML", + "path": "node_modules/playwright/lib/web/recorder/app.bundle.js", + "line": "'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'];", + "lineNumber": 870, + "reasonCategory": "falseMatch", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "React-dangerouslySetInnerHTML", + "path": "node_modules/playwright/lib/web/recorder/app.bundle.js", + "line": " error('A future version of React will block javascript: URLs as a security precaution. ' + 'Use event handlers instead if you can. If you need to generate unsafe HTML try ' + 'using dangerouslySetInnerHTML instead. React was passed %s.', JSON.stringify(url));", + "lineNumber": 1049, + "reasonCategory": "usageTrusted", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "React-dangerouslySetInnerHTML", + "path": "node_modules/playwright/lib/web/recorder/app.bundle.js", + "line": " if (!(props.dangerouslySetInnerHTML == null)) {", + "lineNumber": 2552, + "reasonCategory": "usageTrusted", + "updated": "2021-04-06T04:01:59.934Z" + }, + { + "rule": "React-dangerouslySetInnerHTML", + "path": "node_modules/playwright/lib/web/recorder/app.bundle.js", + "line": " throw Error( \"`dangerouslySetInnerHTML` does not make sense on