[
  {
    "rule": "eval",
    "path": "components/mp3lameencoder/lib/Mp3LameEncoder.js",
    "line": "    return eval(funcstr);",
    "reasonCategory": "usageTrusted",
    "updated": "2018-09-18T19:19:27.699Z",
    "reasonDetail": "Part of a set of functions to implement C calls"
  },
  {
    "rule": "eval",
    "path": "components/mp3lameencoder/lib/Mp3LameEncoder.js",
    "line": "      func = eval('_' + ident); // explicit lookup",
    "reasonCategory": "usageTrusted",
    "updated": "2018-09-18T19:19:27.699Z",
    "reasonDetail": "Part of runtime library for C++ transpiled code"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@design-systems/utils/dist/cjs/utils/focus-lock.js",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@design-systems/utils/dist/esm/utils/focus-lock.js",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@design-systems/utils/src/utils/focus-lock.tsx",
    "line": "  const trap = React.useRef<HTMLDivElement>(null);",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "React-createRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.es.js",
    "line": "    .map(() => createRef());",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.es.js",
    "line": "    const ref = useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.es.js",
    "line": "    const ref = useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.es.js",
    "line": "    const activeMenus = useRef((_a = menu === null || menu === void 0 ? void 0 : menu.length) !== null && _a !== void 0 ? _a : 0);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.es.js",
    "line": "    const savedCallback = useRef(onClickAway);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.es.js",
    "line": "    const menuRef = useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.es.js",
    "line": "    const scrollRef = useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.es.js",
    "line": "    myRef = myRef !== null && myRef !== void 0 ? myRef : useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.es.js",
    "line": "    const overflowRef = useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.es.js",
    "line": "    const menuBar = useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.es.js",
    "line": "    const ref = useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-createRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.js",
    "line": "    .map(() => React.createRef());",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.js",
    "line": "    const ref = React.useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.js",
    "line": "    const ref = React.useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.js",
    "line": "    const activeMenus = React.useRef((_a = menu === null || menu === void 0 ? void 0 : menu.length) !== null && _a !== void 0 ? _a : 0);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.js",
    "line": "    const savedCallback = React.useRef(onClickAway);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.js",
    "line": "    const menuRef = React.useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.js",
    "line": "    const scrollRef = React.useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.js",
    "line": "    myRef = myRef !== null && myRef !== void 0 ? myRef : React.useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.js",
    "line": "    const overflowRef = React.useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.js",
    "line": "    const menuBar = React.useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@indutny/frameless-titlebar/dist/index.js",
    "line": "    const ref = React.useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-06T22:58:37.359Z"
  },
  {
    "rule": "eval",
    "path": "node_modules/@protobufjs/inquire/index.js",
    "line": "        var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval",
    "reasonCategory": "usageTrusted",
    "updated": "2018-09-18T19:19:27.699Z",
    "reasonDetail": "What's being eval'd is a static string"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/animated/dist/react-spring-animated.cjs.dev.js",
    "line": "    const instanceRef = React.useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/animated/dist/react-spring-animated.cjs.dev.js",
    "line": "    const observerRef = React.useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/animated/dist/react-spring-animated.cjs.prod.js",
    "line": "    const instanceRef = React.useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/animated/dist/react-spring-animated.cjs.prod.js",
    "line": "    const observerRef = React.useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/animated/dist/react-spring-animated.esm.js",
    "line": "    const instanceRef = useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/animated/dist/react-spring-animated.esm.js",
    "line": "    const observerRef = useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.dev.js",
    "line": "  const layoutId = React.useRef(0);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.dev.js",
    "line": "  const ctrls = React.useRef([...state.ctrls]);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.dev.js",
    "line": "  const usedTransitions = React.useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.dev.js",
    "line": "  const exitingTransitions = React.useRef(new Map());",
    "reasonCategory": "usageTrusted",
    "updated": "2022-01-12T23:16:33.623Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.dev.js",
    "line": "  const forceChange = React.useRef(false);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-01-12T23:16:33.623Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.prod.js",
    "line": "  const layoutId = React.useRef(0);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.prod.js",
    "line": "  const ctrls = React.useRef([...state.ctrls]);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.prod.js",
    "line": "  const usedTransitions = React.useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.prod.js",
    "line": "  const exitingTransitions = React.useRef(new Map());",
    "reasonCategory": "usageTrusted",
    "updated": "2022-01-12T23:16:33.623Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.prod.js",
    "line": "  const forceChange = React.useRef(false);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-01-12T23:16:33.623Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/core/dist/react-spring-core.esm.js",
    "line": "  const layoutId = useRef(0);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/core/dist/react-spring-core.esm.js",
    "line": "  const ctrls = useRef([...state.ctrls]);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/core/dist/react-spring-core.esm.js",
    "line": "  const usedTransitions = useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/core/dist/react-spring-core.esm.js",
    "line": "  const exitingTransitions = useRef(new Map());",
    "reasonCategory": "usageTrusted",
    "updated": "2022-01-12T23:16:33.623Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/core/dist/react-spring-core.esm.js",
    "line": "  const forceChange = useRef(false);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-01-12T23:16:33.623Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/shared/dist/react-spring-shared.cjs.dev.js",
    "line": "  const committed = react.useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/shared/dist/react-spring-shared.cjs.dev.js",
    "line": "  const prevRef = react.useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/shared/dist/react-spring-shared.cjs.dev.js",
    "line": "  const isMounted = react.useRef(false);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-01T22:57:44.591Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/shared/dist/react-spring-shared.cjs.prod.js",
    "line": "  const committed = react.useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/shared/dist/react-spring-shared.cjs.prod.js",
    "line": "  const prevRef = react.useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/shared/dist/react-spring-shared.cjs.prod.js",
    "line": "  const isMounted = react.useRef(false);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-01T22:57:44.591Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/shared/dist/react-spring-shared.esm.js",
    "line": "  const isMounted = useRef(false);",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-01T22:57:44.591Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/shared/dist/react-spring-shared.esm.js",
    "line": "  const committed = useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/@react-spring/shared/dist/react-spring-shared.esm.js",
    "line": "  const prevRef = useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-27T21:37:06.339Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@sindresorhus/is/dist/index.js",
    "line": "    'innerHTML',",
    "reasonCategory": "usageTrusted",
    "updated": "2021-10-06T15:40:12.124Z"
  },
  {
    "rule": "eval",
    "path": "node_modules/@sinonjs/commons/lib/function-name.test.js",
    "line": "                fn = eval(\"(function*() {})\")().constructor;",
    "reasonCategory": "testCode",
    "updated": "2020-10-09T22:28:48.591Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.cjs.js",
    "line": "  if (!element || !('innerHTML' in element)) {",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.cjs.js",
    "line": "  if (!element.innerHTML) {",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.cjs.js",
    "line": "  console.log(\"Open this URL in your browser\\n\\n\" + getPlaygroundUrl(element.innerHTML));",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.cjs.js",
    "line": "  if (!('outerHTML' in dom)) {",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.cjs.js",
    "line": "  return maxLength !== undefined && dom.outerHTML.length > maxLength ? debugContent.slice(0, maxLength) + \"...\" : debugContent;",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.esm.js",
    "line": "  if (!element || !('innerHTML' in element)) {",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.esm.js",
    "line": "  if (!element.innerHTML) {",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.esm.js",
    "line": "  console.log(\"Open this URL in your browser\\n\\n\" + getPlaygroundUrl(element.innerHTML));",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.esm.js",
    "line": "  if (!('outerHTML' in dom)) {",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.esm.js",
    "line": "  return maxLength !== undefined && dom.outerHTML.length > maxLength ? debugContent.slice(0, maxLength) + \"...\" : debugContent;",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.umd.js",
    "line": "    if (!element || !('innerHTML' in element)) {",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.umd.js",
    "line": "    if (!element.innerHTML) {",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.umd.js",
    "line": "    console.log(\"Open this URL in your browser\\n\\n\" + getPlaygroundUrl(element.innerHTML));",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.umd.js",
    "line": "    if (!('outerHTML' in dom)) {",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.umd.js",
    "line": "    return maxLength !== undefined && dom.outerHTML.length > maxLength ? debugContent.slice(0, maxLength) + \"...\" : debugContent;",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.umd.min.js",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/@testing-library/dom/dist/@testing-library/dom.umd.min.js",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/@testing-library/dom/dist/pretty-dom.js",
    "line": "  if (!('outerHTML' in dom)) {",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/@testing-library/dom/dist/pretty-dom.js",
    "line": "  return maxLength !== undefined && dom.outerHTML.length > maxLength ? `${debugContent.slice(0, maxLength)}...` : debugContent;",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/dom/dist/screen.js",
    "line": "  if (!element || !('innerHTML' in element)) {",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/dom/dist/screen.js",
    "line": "  if (!element.innerHTML) {",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/dom/dist/screen.js",
    "line": "  console.log(`Open this URL in your browser\\n\\n${getPlaygroundUrl(element.innerHTML)}`);",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/jest-dom/dist/to-be-empty-dom-element.js",
    "line": "      return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toBeEmptyDOMElement`, 'element', ''), '', 'Received:', `  ${this.utils.printReceived(element.innerHTML)}`].join('\\n');",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/jest-dom/dist/to-be-empty.js",
    "line": "    pass: element.innerHTML === '',",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/jest-dom/dist/to-be-empty.js",
    "line": "      return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toBeEmpty`, 'element', ''), '', 'Received:', `  ${this.utils.printReceived(element.innerHTML)}`].join('\\n');",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/jest-dom/dist/to-contain-html.js",
    "line": "  div.innerHTML = htmlText;",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/jest-dom/dist/to-contain-html.js",
    "line": "  return div.innerHTML;",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/@testing-library/jest-dom/dist/to-contain-html.js",
    "line": "    pass: container.outerHTML.includes(getNormalizedHtml(container, htmlText)),",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/@testing-library/user-event/dist/select-options.js",
    "line": "      const matchingOption = allOptions.find(o => o.value === val || o.innerHTML === val);",
    "reasonCategory": "testCode",
    "updated": "2022-06-23T23:21:04.555Z"
  },
  {
    "rule": "eval",
    "path": "node_modules/agentkeepalive/node_modules/depd/index.js",
    "line": "  var deprecatedfn = eval('(function (' + args + ') {\\n' +",
    "reasonCategory": "usageTrusted",
    "updated": "2022-12-13T00:55:48.389Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/axe-core/axe.js",
    "line": "      style.innerHTML = usePointer ? '* { pointer-events: all }' : '* { visibility: visible }';",
    "reasonCategory": "usageTrusted",
    "updated": "2021-04-13T00:52:21.453Z"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/axe-core/axe.js",
    "line": "      var source = element.outerHTML;",
    "reasonCategory": "usageTrusted",
    "updated": "2021-04-13T00:52:21.453Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/axe-core/axe.min.js",
    "reasonCategory": "usageTrusted",
    "updated": "2021-04-13T17:31:15.352Z"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/axe-core/axe.min.js",
    "reasonCategory": "usageTrusted",
    "updated": "2021-04-13T17:31:15.352Z"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/axe-core/lib/core/utils/dq-element.js",
    "line": "\tvar source = element.outerHTML;",
    "reasonCategory": "usageTrusted",
    "updated": "2021-04-13T00:52:21.453Z"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/axe-core/lib/core/utils/dq-element.js",
    "line": " * grab the source (outerHTML) and offer an array for storing frame paths",
    "reasonCategory": "usageTrusted",
    "updated": "2021-04-13T00:52:21.453Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/axe-core/lib/core/utils/pollyfills.js",
    "line": "\tstyle.innerHTML = usePointer",
    "reasonCategory": "usageTrusted",
    "updated": "2021-04-13T17:31:15.352Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/axe-core/lib/core/utils/valid-langs.js",
    "line": "const str = document.querySelector('pre').innerHTML;",
    "reasonCategory": "usageTrusted",
    "updated": "2021-04-13T17:31:15.352Z"
  },
  {
    "rule": "eval",
    "path": "node_modules/config/lib/config.js",
    "line": "      configObject = VisionmediaYaml.eval(util.stripYamlComments(content));",
    "reasonCategory": "falseMatch",
    "updated": "2018-09-15T00:38:04.183Z"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/domutils/node_modules/dom-serializer/lib/esm/index.js",
    "line": " * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).",
    "reasonCategory": "falseMatch",
    "updated": "2023-01-11T23:51:00.603Z"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/domutils/node_modules/dom-serializer/lib/index.js",
    "line": " * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).",
    "reasonCategory": "falseMatch",
    "updated": "2023-01-11T23:51:00.603Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/element-resize-detector/dist/element-resize-detector.js",
    "line": "            div.innerHTML = \"<!--[if gt IE \" + (++v) + \"]><i></i><![endif]-->\";",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-01T22:57:44.591Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/element-resize-detector/dist/element-resize-detector.js",
    "line": "            styleElement.innerHTML = style;",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-01T22:57:44.591Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/element-resize-detector/dist/element-resize-detector.min.js",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-01T22:57:44.591Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/element-resize-detector/src/browser-detector.js",
    "line": "            div.innerHTML = \"<!--[if gt IE \" + (++v) + \"]><i></i><![endif]-->\";",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-01T22:57:44.591Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/element-resize-detector/src/detection-strategy/scroll.js",
    "line": "            styleElement.innerHTML = style;",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-01T22:57:44.591Z"
  },
  {
    "rule": "React-ref",
    "path": "node_modules/esquery/dist/esquery.esm.min.js",
    "reasonCategory": "falseMatch",
    "updated": "2020-08-26T00:10:28.628Z",
    "reasonDetail": "isn't react"
  },
  {
    "rule": "React-ref",
    "path": "node_modules/esquery/dist/esquery.min.js",
    "reasonCategory": "falseMatch",
    "updated": "2020-08-26T00:10:28.628Z",
    "reasonDetail": "isn't react"
  },
  {
    "rule": "thenify-multiArgs",
    "path": "node_modules/find-cache-dir/node_modules/pify/index.js",
    "line": "\t\tif (options.multiArgs) {",
    "reasonCategory": "falseMatch",
    "updated": "2020-08-25T00:30:50.619Z"
  },
  {
    "rule": "React-findDOMNode",
    "path": "node_modules/focus-trap-react/dist/focus-trap-react.js",
    "line": "        var focusTrapElementDOMNodes = this.focusTrapElements.map( // NOTE: `findDOMNode()` does not support CSS selectors; it'll just return",
    "reasonCategory": "exampleCode",
    "updated": "2021-10-01T23:53:26.107Z"
  },
  {
    "rule": "React-findDOMNode",
    "path": "node_modules/focus-trap-react/src/focus-trap-react.js",
    "line": "        // NOTE: `findDOMNode()` does not support CSS selectors; it'll just return",
    "reasonCategory": "exampleCode",
    "updated": "2021-10-01T23:53:26.107Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/google-libphonenumber/dist/libphonenumber.js",
    "reasonCategory": "notExercisedByOurApp",
    "updated": "2021-02-16T19:08:17.452Z",
    "reasonDetail": "Debug capabilities"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/google-libphonenumber/dist/libphonenumber.js",
    "line": "goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse=function(a,b){if(goog.dom.safe.isInnerHtmlCleanupRecursive_())for(;a.lastChild;)a.removeChild(a.lastChild);a.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(b)};",
    "reasonCategory": "notExercisedByOurApp",
    "updated": "2021-02-16T19:08:17.452Z",
    "reasonDetail": "Debug capabilities"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/google-libphonenumber/dist/libphonenumber.js",
    "reasonCategory": "usageTrusted",
    "updated": "2021-02-16T19:08:17.452Z",
    "reasonDetail": "Escapes HTML, HTML comes from a constant"
  },
  {
    "rule": "eval",
    "path": "node_modules/google-libphonenumber/dist/libphonenumber.js",
    "reasonCategory": "notExercisedByOurApp",
    "updated": "2021-02-16T19:08:17.452Z",
    "reasonDetail": "Transpilation logic"
  },
  {
    "rule": "eval",
    "path": "node_modules/google-libphonenumber/dist/libphonenumber.js",
    "reasonCategory": "notExercisedByOurApp",
    "updated": "2021-02-16T19:08:17.452Z",
    "reasonDetail": "Used to load dependencies; parent function loadModuleFromSource_ is used in one place only."
  },
  {
    "rule": "eval",
    "path": "node_modules/google-libphonenumber/dist/libphonenumber.js",
    "reasonCategory": "usageTrusted",
    "updated": "2021-02-16T19:08:17.452Z",
    "reasonDetail": "Hard-coded string used for testing capabilities."
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/html-minifier-terser/node_modules/terser/dist/bundle.min.js",
    "reasonCategory": "falseMatch",
    "updated": "2022-07-26T23:41:36.800Z",
    "reasonDetail": "Part of keyword list for preservation in final minified build"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/html-minifier-terser/node_modules/terser/dist/bundle.min.js",
    "reasonCategory": "falseMatch",
    "updated": "2022-07-26T23:41:36.800Z",
    "reasonDetail": "Part of keyword list for preservation in final minified build"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/html-minifier-terser/node_modules/terser/tools/domprops.js",
    "line": "    \"innerHTML\",",
    "reasonCategory": "falseMatch",
    "updated": "2022-07-26T23:41:36.800Z",
    "reasonDetail": "Part of keyword list for preservation in final minified build"
  },
  {
    "rule": "DOM-outerHTML",
    "path": "node_modules/html-minifier-terser/node_modules/terser/tools/domprops.js",
    "line": "    \"outerHTML\",",
    "reasonCategory": "falseMatch",
    "updated": "2022-07-26T23:41:36.800Z",
    "reasonDetail": "Part of keyword list for preservation in final minified build"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/intl-tel-input/build/js/intlTelInput-jquery.js",
    "line": "                    this.selectedDialCode.innerHTML = dialCode;",
    "reasonCategory": "usageTrusted",
    "updated": "2021-12-01T01:31:12.757Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/intl-tel-input/build/js/intlTelInput-jquery.min.js",
    "reasonCategory": "usageTrusted",
    "updated": "2021-12-01T01:31:12.757Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/intl-tel-input/build/js/intlTelInput.js",
    "line": "                        this.selectedDialCode.innerHTML = dialCode;",
    "reasonCategory": "usageTrusted",
    "updated": "2021-12-01T01:31:12.757Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/intl-tel-input/build/js/intlTelInput.min.js",
    "reasonCategory": "usageTrusted",
    "updated": "2021-12-01T01:31:12.757Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/intl-tel-input/src/js/intlTelInput.js",
    "line": "      this.selectedDialCode.innerHTML = dialCode;",
    "reasonCategory": "usageTrusted",
    "updated": "2021-12-01T01:31:12.757Z"
  },
  {
    "rule": "DOM-document.write(",
    "path": "node_modules/is-function/test.js",
    "line": "        iframe.contentWindow.document.write([",
    "reasonCategory": "testCode",
    "updated": "2022-06-01T22:57:44.591Z"
  },
  {
    "rule": "eval",
    "path": "node_modules/loader-runner/lib/loadLoader.js",
    "line": "\t\t\tvar modulePromise = eval(\"import(\" + JSON.stringify(loaderUrl.toString()) + \")\");",
    "reasonCategory": "usageTrusted",
    "updated": "2021-04-05T20:48:36.065Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/min-document/serialize.js",
    "line": "        } else if (elem.innerHTML) {",
    "reasonCategory": "usageTrusted",
    "updated": "2018-09-15T00:38:04.183Z",
    "reasonDetail": "Getting the value, not setting it"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/min-document/serialize.js",
    "line": "        key !== \"textContent\" && key !== \"innerText\" && key !== \"namespaceURI\" &&  key !== \"innerHTML\"",
    "reasonCategory": "usageTrusted",
    "updated": "2018-09-15T00:38:04.183Z",
    "reasonDetail": "Getting the value, not setting it"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/min-document/serialize.js",
    "line": "            strings.push(elem.innerHTML)",
    "reasonCategory": "usageTrusted",
    "updated": "2020-09-11T17:24:56.124Z",
    "reasonDetail": "Read, not write"
  },
  {
    "rule": "thenify-multiArgs",
    "path": "node_modules/p-event/index.js",
    "line": "\t\t\tmultiArgs: false,",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "thenify-multiArgs",
    "path": "node_modules/p-event/index.js",
    "line": "\t\t\tconst value = options.multiArgs ? args : args[0];",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "thenify-multiArgs",
    "path": "node_modules/p-event/index.js",
    "line": "\t\tmultiArgs: false,",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "thenify-multiArgs",
    "path": "node_modules/p-event/index.js",
    "line": "\t\tconst value = options.multiArgs ? args : args[0];",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "thenify-multiArgs",
    "path": "node_modules/p-event/index.js",
    "line": "\t\terror = options.multiArgs ? args : args[0];",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "thenify-multiArgs",
    "path": "node_modules/p-event/index.js",
    "line": "\t\tconst value = options.multiArgs ? args : args[0];",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "eval",
    "path": "node_modules/pac-proxy-agent/node_modules/depd/index.js",
    "line": "  var deprecatedfn = eval('(function (' + args + ') {\\n' +",
    "reasonCategory": "usageTrusted",
    "updated": "2022-12-13T00:55:48.389Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/package-json/node_modules/@sindresorhus/is/dist/index.js",
    "line": "        'innerHTML',",
    "reasonCategory": "usageTrusted",
    "updated": "2021-11-13T01:24:25.496Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/parse-entities/decode-entity.browser.js",
    "line": "  el.innerHTML = entity",
    "reasonCategory": "usageTrusted",
    "updated": "2020-08-25T16:59:46.588Z",
    "reasonDetail": "Ephemeral element"
  },
  {
    "rule": "thenify-multiArgs",
    "path": "node_modules/pify/index.js",
    "line": "\t\t\t\tif (opts.multiArgs) {",
    "reasonCategory": "falseMatch",
    "updated": "2018-09-19T18:06:35.446Z"
  },
  {
    "rule": "thenify-multiArgs",
    "path": "node_modules/pify/index.js",
    "line": "\t\t\t\tif (opts.multiArgs) {",
    "reasonCategory": "falseMatch",
    "updated": "2018-09-19T18:06:35.446Z"
  },
  {
    "rule": "eval",
    "path": "node_modules/protobufjs/dist/light/protobuf.js",
    "line": "        var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval",
    "reasonCategory": "usageTrusted",
    "updated": "2019-03-09T00:08:44.242Z",
    "reasonDetail": "Eval is used here to produce and evaluate the expression 'require'"
  },
  {
    "rule": "eval",
    "path": "node_modules/protobufjs/dist/light/protobuf.min.js",
    "reasonCategory": "usageTrusted",
    "updated": "2018-09-18T19:19:27.699Z",
    "reasonDetail": "Hard-coded string"
  },
  {
    "rule": "eval",
    "path": "node_modules/protobufjs/dist/minimal/protobuf.js",
    "line": "        var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval",
    "reasonCategory": "usageTrusted",
    "updated": "2019-03-09T00:08:44.242Z",
    "reasonDetail": "Eval is used here to produce and evaluate the expression 'require'"
  },
  {
    "rule": "eval",
    "path": "node_modules/protobufjs/dist/minimal/protobuf.min.js",
    "reasonCategory": "falseMatch",
    "updated": "2018-09-18T19:19:27.699Z",
    "reasonDetail": "Inside of regular expression"
  },
  {
    "rule": "eval",
    "path": "node_modules/protobufjs/dist/protobuf.js",
    "line": "        var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval",
    "reasonCategory": "usageTrusted",
    "updated": "2019-03-09T00:08:44.242Z",
    "reasonDetail": "Eval is used here to produce and evaluate the expression 'require'"
  },
  {
    "rule": "eval",
    "path": "node_modules/protobufjs/dist/protobuf.min.js",
    "reasonCategory": "usageTrusted",
    "updated": "2018-09-18T19:19:27.699Z",
    "reasonDetail": "Hard-coded string"
  },
  {
    "rule": "DOM-document.write(",
    "path": "node_modules/qrcode-generator/sample.js",
    "line": "  document.write(create_qrcode(text, typeNumber, errorCorrectionLevel) );",
    "reasonCategory": "notExercisedByOurApp",
    "updated": "2022-01-04T20:32:10.596Z",
    "reasonDetail": "Sample code never required by us."
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/qrcode-generator/sample.js",
    "line": "  document.getElementById('qr').innerHTML =",
    "reasonCategory": "notExercisedByOurApp",
    "updated": "2022-01-04T20:32:10.596Z",
    "reasonDetail": "Sample code never required by us."
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/core/quill.js",
    "line": "    let html = this.container.innerHTML.trim();",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/core/quill.js",
    "line": "    this.container.innerHTML = '';",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.core.js",
    "line": "    var html = this.container.innerHTML.trim();",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.core.js",
    "line": "    this.container.innerHTML = '';",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.core.js",
    "line": "        this.container.innerHTML = html.replace(/\\>\\r?\\n +\\</g, '><'); // Remove spaces between tags",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.core.js",
    "line": "        this.container.innerHTML = '';",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.core.js",
    "line": "      debug.log('convert', this.container.innerHTML, delta);",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.core.js",
    "line": "      this.container.innerHTML = '';",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.js",
    "line": "    var html = this.container.innerHTML.trim();",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.js",
    "line": "    this.container.innerHTML = '';",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.js",
    "line": "      label.innerHTML = _dropdown2.default;",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.js",
    "line": "            button.innerHTML = icons[name][''] + icons[name]['rtl'];",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.js",
    "line": "            button.innerHTML = icons[name];",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.js",
    "line": "              button.innerHTML = icons[name][value];",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.js",
    "line": "        this.container.innerHTML = html.replace(/\\>\\r?\\n +\\</g, '><'); // Remove spaces between tags",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.js",
    "line": "        this.container.innerHTML = '';",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.js",
    "line": "      debug.log('convert', this.container.innerHTML, delta);",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.js",
    "line": "      this.container.innerHTML = '';",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.js",
    "line": "    _this.label.innerHTML = label;",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.js",
    "line": "      item.innerHTML = icons[item.getAttribute('data-value') || ''];",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.js",
    "line": "      this.label.innerHTML = item.innerHTML;",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.js",
    "line": "    this.root.innerHTML = this.constructor.TEMPLATE;",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.js",
    "line": "          this.domNode.innerHTML = _highlight(text);",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/dist/quill.min.js",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/modules/clipboard.js",
    "line": "      this.container.innerHTML = html.replace(/\\>\\r?\\n +\\</g, '><'); // Remove spaces between tags",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/modules/clipboard.js",
    "line": "      this.container.innerHTML = '';",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/modules/clipboard.js",
    "line": "    this.container.innerHTML = '';",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/modules/clipboard.js",
    "line": "    debug.log('convert', this.container.innerHTML, delta);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-12-01T01:31:12.757Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/modules/syntax.js",
    "line": "        this.domNode.innerHTML = highlight(text);",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/themes/base.js",
    "line": "          button.innerHTML = icons[name][''] + icons[name]['rtl'];",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/themes/base.js",
    "line": "          button.innerHTML = icons[name];",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/themes/base.js",
    "line": "            button.innerHTML = icons[name][value];",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/ui/color-picker.js",
    "line": "    this.label.innerHTML = label;",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/ui/icon-picker.js",
    "line": "      item.innerHTML = icons[item.getAttribute('data-value') || ''];",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/ui/icon-picker.js",
    "line": "    this.label.innerHTML = item.innerHTML;",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/ui/picker.js",
    "line": "    label.innerHTML = DropdownIcon;",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/quill/ui/tooltip.js",
    "line": "    this.root.innerHTML = this.constructor.TEMPLATE;",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for quill"
  },
  {
    "rule": "eval",
    "path": "node_modules/raw-body/node_modules/depd/index.js",
    "line": "  var deprecatedfn = eval('(function (' + args + ') {\\n' +",
    "reasonCategory": "usageTrusted",
    "updated": "2022-12-13T00:55:48.389Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/react-blurhash/docs/demo.1d83eeb63aeb90e0cf0e.js",
    "reasonCategory": "notExercisedByOurApp",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/react-blurhash/docs/demo.1d83eeb63aeb90e0cf0e.js",
    "reasonCategory": "notExercisedByOurApp",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "React-dangerouslySetInnerHTML",
    "path": "node_modules/react-blurhash/docs/demo.1d83eeb63aeb90e0cf0e.js",
    "reasonCategory": "notExercisedByOurApp",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "React-dangerouslySetInnerHTML",
    "path": "node_modules/react-blurhash/docs/demo.1d83eeb63aeb90e0cf0e.js",
    "reasonCategory": "notExercisedByOurApp",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "React-dangerouslySetInnerHTML",
    "path": "node_modules/react-blurhash/docs/demo.1d83eeb63aeb90e0cf0e.js",
    "reasonCategory": "notExercisedByOurApp",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "React-ref",
    "path": "node_modules/react-blurhash/docs/demo.1d83eeb63aeb90e0cf0e.js",
    "reasonCategory": "notExercisedByOurApp",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "React-ref",
    "path": "node_modules/react-blurhash/docs/demo.1d83eeb63aeb90e0cf0e.js",
    "reasonCategory": "notExercisedByOurApp",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-blurhash/docs/demo.1d83eeb63aeb90e0cf0e.js",
    "reasonCategory": "notExercisedByOurApp",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/react-colorful/dist/index.esmodule.js",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/react-colorful/dist/index.js",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-colorful/dist/index.js",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/react-colorful/dist/index.module.js",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/react-colorful/dist/index.umd.js",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-colorful/dist/index.umd.js",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "React-createRef",
    "path": "node_modules/react-inspector/dist/umd/react-inspector.js",
    "line": "function createRef() {",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "React-createRef",
    "path": "node_modules/react-inspector/dist/umd/react-inspector.js",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-inspector/dist/umd/react-inspector.js",
    "line": "var useLayoutEffect=function(a,b){return Z().useLayoutEffect(a,b)};var useMemo=function(a,b){return Z().useMemo(a,b)};var useReducer=function(a,b,c){return Z().useReducer(a,b,c)};var useRef=function(a){return Z().useRef(a)};var useState=function(a){return Z().useState(a)};var version=\"16.14.0\";",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-inspector/dist/umd/react-inspector.js",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-inspector/dist/umd/react-inspector.js",
    "line": "function useRef(initialValue) {",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-inspector/dist/umd/react-inspector.js",
    "line": "  return dispatcher.useRef(initialValue);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/react-quill/dist/react-quill.js",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for react-quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/react-quill/dist/react-quill.js",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for react-quill"
  },
  {
    "rule": "React-findDOMNode",
    "path": "node_modules/react-quill/dist/react-quill.js",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for react-quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/react-quill/lib/index.js",
    "line": "                (_b = (_a = _this).onEditorChangeText) === null || _b === void 0 ? void 0 : _b.call(_a, _this.editor.root.innerHTML, rangeOrDelta, source, _this.unprivilegedEditor);",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for react-quill"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "node_modules/react-quill/lib/index.js",
    "line": "            getHTML: function () { return e.root.innerHTML; },",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for react-quill"
  },
  {
    "rule": "React-findDOMNode",
    "path": "node_modules/react-quill/lib/index.js",
    "line": "        var element = react_dom_1.default.findDOMNode(this.editingArea);",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-13T18:36:57.012Z",
    "reasonDetail": "necessary for react-quill"
  },
  {
    "rule": "React-findDOMNode",
    "path": "node_modules/react-sizeme/dist/react-sizeme.js",
    "line": "          var found = this.element && ReactDOM__default['default'].findDOMNode(this.element);",
    "reasonCategory": "falseMatch",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "React-findDOMNode",
    "path": "node_modules/react-sizeme/dist/react-sizeme.min.js",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-04T00:50:49.405Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.cjs.js",
    "line": "  var libRef = React.useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.cjs.js",
    "line": "  var heightRef = React.useRef(0);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.cjs.js",
    "line": "  var measurementsCacheRef = React.useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.esm.js",
    "line": "  var libRef = useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.esm.js",
    "line": "  var heightRef = useRef(0);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.esm.js",
    "line": "  var measurementsCacheRef = useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.dev.js",
    "line": "  var libRef = React.useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.dev.js",
    "line": "  var heightRef = React.useRef(0);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.dev.js",
    "line": "  var measurementsCacheRef = React.useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.prod.js",
    "line": "  var libRef = React.useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.prod.js",
    "line": "  var heightRef = React.useRef(0);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.prod.js",
    "line": "  var measurementsCacheRef = React.useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js",
    "line": "  var libRef = useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js",
    "line": "  var heightRef = useRef(0);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js",
    "line": "  var measurementsCacheRef = useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "eval",
    "path": "node_modules/source-map-support/source-map-support.js",
    "line": "  // Most eval() calls are in this format",
    "reasonCategory": "falseMatch",
    "updated": "2020-04-30T22:35:27.860Z"
  },
  {
    "rule": "eval",
    "path": "node_modules/source-map-support/source-map-support.js",
    "line": "  // Parse nested eval() calls using recursion",
    "reasonCategory": "falseMatch",
    "updated": "2020-04-30T22:35:27.860Z"
  },
  {
    "rule": "eval",
    "path": "node_modules/source-map-support/source-map-support.js",
    "line": "  // passed to eval() ending in \"//# sourceURL=...\" will return the source file",
    "reasonCategory": "falseMatch",
    "updated": "2020-04-30T22:35:27.860Z"
  },
  {
    "rule": "eval",
    "path": "node_modules/source-map-support/source-map-support.js",
    "line": "  // Code called using eval() needs special handling",
    "reasonCategory": "falseMatch",
    "updated": "2020-04-30T22:35:27.860Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/use-composed-ref/dist/use-composed-ref.cjs.js",
    "line": "  var prevUserRef = React.useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/use-composed-ref/dist/use-composed-ref.esm.js",
    "line": "  var prevUserRef = useRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/use-latest/dist/use-latest.cjs.dev.js",
    "line": "  var ref = React__namespace.useRef(value);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/use-latest/dist/use-latest.cjs.prod.js",
    "line": "  var ref = React__namespace.useRef(value);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "node_modules/use-latest/dist/use-latest.esm.js",
    "line": "  var ref = React.useRef(value);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "eval",
    "path": "node_modules/vm2/lib/nodevm.js",
    "line": "\t * @param {boolean} [options.eval=true] - Allow the dynamic evaluation of code via eval(code) or Function(code)().<br>",
    "reasonCategory": "falseMatch",
    "updated": "2022-02-16T15:30:35.122Z",
    "reasonDetail": "falseMatch"
  },
  {
    "rule": "eval",
    "path": "node_modules/vm2/lib/vm.js",
    "line": "\t * @param {boolean} [options.eval=true] - Allow the dynamic evaluation of code via eval(code) or Function(code)().<br>",
    "reasonCategory": "falseMatch",
    "updated": "2022-02-16T15:30:35.122Z",
    "reasonDetail": "This is a comment."
  },
  {
    "rule": "eval",
    "path": "node_modules/workerpool/dist/worker.js",
    "line": "var requireFoolWebpack = eval('typeof require !== \\'undefined\\'' + ' ? require' + ' : function (module) { throw new Error(\\'Module \" + module + \" not found.\\') }');",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-16T20:26:31.296Z",
    "reasonDetail": "Dev-only dependency."
  },
  {
    "rule": "eval",
    "path": "node_modules/workerpool/dist/workerpool.js",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-16T20:26:31.296Z",
    "reasonDetail": "Dev-only dependency."
  },
  {
    "rule": "eval",
    "path": "node_modules/workerpool/dist/workerpool.js",
    "line": "var requireFoolWebpack = eval('typeof require !== \\'undefined\\' ' + '? require ' + ': function (module) { throw new Error(\\'Module \" + module + \" not found.\\') }');",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-16T20:26:31.296Z",
    "reasonDetail": "Dev-only dependency."
  },
  {
    "rule": "eval",
    "path": "node_modules/workerpool/dist/workerpool.js",
    "line": "var requireFoolWebpack = eval('typeof require !== \\'undefined\\'' + ' ? require' + ' : function (module) { throw new Error(\\'Module \" + module + \" not found.\\') }');",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-16T20:26:31.296Z",
    "reasonDetail": "Dev-only dependency."
  },
  {
    "rule": "eval",
    "path": "node_modules/workerpool/dist/workerpool.min.js",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-16T20:26:31.296Z",
    "reasonDetail": "Dev-only dependency."
  },
  {
    "rule": "eval",
    "path": "node_modules/workerpool/src/generated/embeddedWorker.js",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-16T20:26:31.296Z",
    "reasonDetail": "Dev-only dependency."
  },
  {
    "rule": "eval",
    "path": "node_modules/workerpool/src/requireFoolWebpack.js",
    "line": "var requireFoolWebpack = eval(",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-16T20:26:31.296Z",
    "reasonDetail": "Dev-only dependency."
  },
  {
    "rule": "eval",
    "path": "node_modules/workerpool/src/worker.js",
    "line": "var requireFoolWebpack = eval(",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-16T20:26:31.296Z",
    "reasonDetail": "Dev-only dependency."
  },
  {
    "rule": "React-useRef",
    "path": "ts/calling/useGetCallingFrameBuffer.ts",
    "line": "  const ref = useRef<Buffer | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-12-10T23:24:03.829Z",
    "reasonDetail": "Doesn't touch the DOM."
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/AddCaptionModal.tsx",
    "line": "  const scrollerRef = React.useRef<HTMLDivElement>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-10-03T16:06:12.837Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/AvatarTextEditor.tsx",
    "line": "  const measureElRef = useRef<null | HTMLDivElement>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-08-04T18:18:09.236Z",
    "reasonDetail": "Only used for measurement. Doesn't modify the DOM."
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/AvatarTextEditor.tsx",
    "line": "  const inputRef = useRef<HTMLInputElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-08-04T22:02:17.074Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/AvatarTextEditor.tsx",
    "line": "  const onDoneRef = useRef<DoneHandleType>(onDone);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-08-05T23:40:55.699Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/AvatarUploadButton.tsx",
    "line": "  const fileInputRef = useRef<null | HTMLInputElement>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-08-03T21:17:38.615Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CallNeedPermissionScreen.tsx",
    "line": "  const autoCloseAtRef = useRef<number>(Date.now() + AUTO_CLOSE_MS);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CallScreen.tsx",
    "line": "  const localVideoRef = useRef<HTMLVideoElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-12-01T01:31:12.757Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CallingLobby.tsx",
    "line": "  const localVideoRef = React.useRef<null | HTMLVideoElement>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CallingPip.tsx",
    "line": "  const localVideoRef = React.useRef(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2020-10-26T19:12:24.410Z",
    "reasonDetail": "Used to get the local video element for rendering."
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CallingPip.tsx",
    "line": "  const videoContainerRef = React.useRef<null | HTMLDivElement>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CallingToastManager.tsx",
    "line": "  const timeoutRef = useRef<NodeJS.Timeout | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CaptchaDialog.tsx",
    "line": "  const buttonRef = useRef<HTMLButtonElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/ChatColorPicker.tsx",
    "line": "  const menuRef = useRef<any | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CompositionArea.tsx",
    "line": "  const inputApiRef = useRef<InputApi | undefined>();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-23T00:07:11.885Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CompositionArea.tsx",
    "line": "  const fileInputRef = useRef<null | HTMLInputElement>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-23T00:07:11.885Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CompositionArea.tsx",
    "line": "  const emojiButtonRef = useRef<EmojiButtonAPI | undefined>();",
    "reasonCategory": "usageTrusted",
    "updated": "2022-07-07T20:51:44.602Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CompositionInput.tsx",
    "line": "  const callbacksRef = React.useRef(unstaleCallbacks);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-04-21T21:35:38.757Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CompositionInput.tsx",
    "line": "  const emojiCompletionRef = React.useRef<EmojiCompletion>();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CompositionInput.tsx",
    "line": "  const mentionCompletionRef = React.useRef<MentionCompletion>();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CompositionInput.tsx",
    "line": "  const quillRef = React.useRef<Quill>();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CompositionInput.tsx",
    "line": "  const propsRef = React.useRef<Props>(props);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CompositionInput.tsx",
    "line": "  const memberRepositoryRef = React.useRef<MemberRepository>(",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CompositionInput.tsx",
    "line": "  const canSendRef = React.useRef<boolean>(false);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-25T00:06:19.860Z",
    "reasonDetail": "Not used for DOM manipulation"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CompositionInput.tsx",
    "line": "  const scrollerRefInner = React.useRef<HTMLDivElement>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-10-03T16:06:12.837Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CompositionRecording.tsx",
    "line": "  const startTime = useRef(Date.now());",
    "reasonCategory": "usageTrusted",
    "updated": "2023-02-26T23:17:41.234Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CompositionRecording.tsx",
    "line": "  const drift = useRef(0);",
    "reasonCategory": "usageTrusted",
    "updated": "2023-02-26T23:20:28.848Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CompositionRecordingDraft.tsx",
    "line": "  const timeout = useRef<undefined | NodeJS.Timeout>(undefined);",
    "reasonCategory": "usageTrusted",
    "updated": "2023-02-26T23:20:28.848Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/CompositionTextArea.tsx",
    "line": "  const inputApiRef = React.useRef<InputApi | undefined>();",
    "reasonCategory": "usageTrusted",
    "updated": "2022-10-03T16:06:12.837Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/ContactPills.tsx",
    "line": "  const elRef = useRef<null | HTMLDivElement>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/ContextMenu.tsx",
    "line": "  const virtualElement = useRef<VirtualElement>(generateVirtualElement(0, 0));",
    "reasonCategory": "usageTrusted",
    "updated": "2022-08-19T17:09:38.534Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/DirectCallRemoteParticipant.tsx",
    "line": "  const remoteVideoRef = useRef<HTMLCanvasElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/EditHistoryMessagesModal.tsx",
    "line": "  const containerElementRef = useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2023-03-25T01:59:04.590Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/ForwardMessagesModal.tsx",
    "line": "  const inputRef = useRef<null | HTMLInputElement>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/GradientDial.tsx",
    "line": "  const containerRef = useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/GroupCallOverflowArea.tsx",
    "line": "  const overflowRef = useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/GroupCallRemoteParticipant.tsx",
    "line": "    const lastReceivedVideoAt = useRef(-Infinity);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-06-17T20:46:02.342Z",
    "reasonDetail": "Doesn't reference the DOM."
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/GroupCallRemoteParticipant.tsx",
    "line": "    const remoteVideoRef = useRef<HTMLCanvasElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/GroupCallRemoteParticipant.tsx",
    "line": "    const canvasContextRef = useRef<CanvasRenderingContext2D | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/GroupCallRemoteParticipant.tsx",
    "line": "    const imageDataRef = useRef<ImageData | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-12-10T23:24:31.237Z",
    "reasonDetail": "Doesn't touch the DOM."
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/IncomingCallBar.tsx",
    "line": "  const initialTitleRef = useRef<string>(title);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-08-16T20:52:11.043Z",
    "reasonDetail": "Doesn't interact with the DOM."
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/Input.tsx",
    "line": "    const innerRef = useRef<HTMLInputElement | HTMLTextAreaElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/Input.tsx",
    "line": "    const valueOnKeydownRef = useRef<string>(value);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/Input.tsx",
    "line": "    const selectionStartOnKeydownRef = useRef<number>(value.length);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/LeftPaneSearchInput.tsx",
    "line": "  const inputRef = useRef<null | HTMLInputElement>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-02-11T20:49:03.879Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/Lightbox.tsx",
    "line": "  const containerRef = useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-08-23T18:39:37.081Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/Lightbox.tsx",
    "line": "  const imageRef = useRef<HTMLImageElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-24T00:03:36.061Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/Lightbox.tsx",
    "line": "  const animateRef = useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-10-11T21:21:08.188Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/Lightbox.tsx",
    "line": "  const dragCacheRef = useRef<",
    "reasonCategory": "usageTrusted",
    "updated": "2021-10-11T21:21:08.188Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/Lightbox.tsx",
    "line": "  const zoomCacheRef = useRef<",
    "reasonCategory": "usageTrusted",
    "updated": "2021-10-11T21:21:08.188Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/ListView.tsx",
    "line": "  const listRef = useRef<null | List>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-11-11T17:11:07.659Z"
  },
  {
    "rule": "React-createRef",
    "path": "ts/components/MainHeader.tsx",
    "line": "  public containerRef: React.RefObject<HTMLDivElement> = React.createRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-14T22:04:43.988Z",
    "reasonDetail": "Handling outside click"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/MediaQualitySelector.tsx",
    "line": "  const buttonRef = React.useRef<HTMLButtonElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-14T22:04:43.988Z",
    "reasonDetail": "Handling outside click"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/Modal.tsx",
    "line": "  const modalRef = useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-08-05T00:22:31.660Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/Modal.tsx",
    "line": "  const bodyRef = useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-21T01:40:08.534Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/ModalContainer.tsx",
    "line": "  const containerRef = React.useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-10-14T16:39:48.461Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/ModalHost.tsx",
    "line": "    const containerRef = React.useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-09-14T16:20:15.384Z",
    "reasonDetail": "Holds a reference to a container element to prevent outside clicks"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/ProfileEditor.tsx",
    "line": "  const focusInputRef = useRef<HTMLInputElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/QrCode.tsx",
    "line": "  const elRef = useRef<null | HTMLImageElement>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-01-04T21:43:17.517Z",
    "reasonDetail": "Used to change the style in non-production builds."
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/Slider.tsx",
    "line": "  const diff = useRef<number>(0);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/Slider.tsx",
    "line": "  const handleRef = useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/Slider.tsx",
    "line": "  const sliderRef = useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/StandaloneRegistration.tsx",
    "line": "  const pluginRef = useRef<Plugin | undefined>();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-11-24T20:55:14.943Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/StandaloneRegistration.tsx",
    "line": "  const elemRef = useRef<HTMLInputElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-11-30T10:15:33.662Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/StoryImage.tsx",
    "line": "  const videoRef = useRef<HTMLVideoElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-04-29T23:54:21.656Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/StoryViewer.tsx",
    "line": "  const progressBarRef = useRef<HTMLDivElement>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-10-13T15:18:21.267Z",
    "reasonDetail": "<optional>"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/StoryViewer.tsx",
    "line": "  const animationRef = useRef<Animation | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-10-13T15:18:21.267Z",
    "reasonDetail": "<optional>"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/StoryViewer.tsx",
    "line": "  const onFinishRef = useRef<(() => void) | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-10-13T15:18:21.267Z",
    "reasonDetail": "<optional>"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/StoryViewsNRepliesModal.tsx",
    "line": "  const inputApiRef = useRef<InputApi | undefined>();",
    "reasonCategory": "usageTrusted",
    "updated": "2022-02-15T17:57:06.507Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/StoryViewsNRepliesModal.tsx",
    "line": "  const containerElementRef = useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-08-04T00:52:01.080Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/StoryViewsNRepliesModal.tsx",
    "line": "  const shouldScrollToBottomRef = useRef(true);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-10-05T18:51:56.411Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/StoryViewsNRepliesModal.tsx",
    "line": "  const bottomRef = useRef<HTMLDivElement>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-10-05T18:51:56.411Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/TextAttachment.tsx",
    "line": "  const linkPreview = useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-04-06T00:59:17.194Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/TextAttachment.tsx",
    "line": "  const textEditorRef = useRef<HTMLTextAreaElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/TextStoryCreator.tsx",
    "line": "  const textEditorRef = useRef<HTMLTextAreaElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-16T23:23:32.306Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/Tooltip.tsx",
    "line": "  const wrapperRef = React.useRef<HTMLSpanElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-createRef",
    "path": "ts/components/conversation/ConversationHeader.tsx",
    "line": "    this.menuTriggerRef = React.createRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2020-05-20T20:10:43.540Z",
    "reasonDetail": "Used to reference popup menu"
  },
  {
    "rule": "React-createRef",
    "path": "ts/components/conversation/ConversationHeader.tsx",
    "line": "    this.headerRef = React.createRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-01-18T22:24:05.937Z",
    "reasonDetail": "Used to reference popup menu boundaries element"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/conversation/GIF.tsx",
    "line": "  const videoRef = useRef<HTMLVideoElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/conversation/GroupDescription.tsx",
    "line": "  const textRef = useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-createRef",
    "path": "ts/components/conversation/InlineNotificationWrapper.tsx",
    "line": "  public focusRef: React.RefObject<HTMLDivElement> = React.createRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2019-11-06T19:56:38.557Z",
    "reasonDetail": "Used to manage focus"
  },
  {
    "rule": "React-createRef",
    "path": "ts/components/conversation/Message.tsx",
    "line": "    React.createRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-03-05T19:57:01.431Z",
    "reasonDetail": "Used for detecting clicks outside reaction viewer"
  },
  {
    "rule": "React-createRef",
    "path": "ts/components/conversation/Message.tsx",
    "line": "  public focusRef: React.RefObject<HTMLDivElement> = React.createRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-03-05T19:57:01.431Z",
    "reasonDetail": "Used for managing focus only"
  },
  {
    "rule": "React-createRef",
    "path": "ts/components/conversation/Message.tsx",
    "line": "  public audioButtonRef: React.RefObject<HTMLButtonElement> = React.createRef();",
    "reasonCategory": "usageTrusted",
    "updated": "2021-03-05T19:57:01.431Z",
    "reasonDetail": "Used for propagating click from the Message to MessageAudio's button"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/conversation/Quote.tsx",
    "line": "  const imageRef = useRef(new Image());",
    "reasonCategory": "usageTrusted",
    "updated": "2021-01-20T21:30:08.430Z",
    "reasonDetail": "Doesn't touch the DOM."
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/conversation/TimelineMessage.tsx",
    "line": "  const menuTriggerRef = useRef<Trigger | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-11-03T14:21:47.456Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/conversation/WaveformScrubber.tsx",
    "line": "  const waveformRef = useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2023-02-26T23:20:28.848Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/conversation/conversation-details/AddGroupMembersModal/ChooseGroupMembersModal.tsx",
    "line": "  const inputRef = useRef<null | HTMLInputElement>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/conversation/conversation-details/EditConversationAttributesModal.tsx",
    "line": "  const focusDescriptionRef = useRef<undefined | boolean>(",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/conversation/conversation-details/EditConversationAttributesModal.tsx",
    "line": "  const startingTitleRef = useRef<string>(externalTitle);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/conversation/conversation-details/EditConversationAttributesModal.tsx",
    "line": "  const startingAvatarPathRef = useRef<undefined | string>(externalAvatarPath);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/conversation/media-gallery/MediaGallery.tsx",
    "line": "  const focusRef = useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2019-11-01T22:46:33.013Z",
    "reasonDetail": "Used for setting focus only"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/emoji/EmojiButton.tsx",
    "line": "    const buttonRef = React.useRef<HTMLButtonElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-14T22:04:43.988Z",
    "reasonDetail": "Handling outside click"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/emoji/EmojiButton.tsx",
    "line": "  const popperRef = React.useRef<HTMLDivElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2023-01-18T22:32:43.901Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/installScreen/InstallScreenChoosingDeviceNameStep.tsx",
    "line": "  const hasFocusedRef = useRef<boolean>(false);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-12-06T23:07:28.947Z",
    "reasonDetail": "Doesn't touch the DOM."
  },
  {
    "rule": "React-useRef",
    "path": "ts/components/stickers/StickerButton.tsx",
    "line": "    const buttonRef = React.useRef<HTMLButtonElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2022-06-14T22:04:43.988Z",
    "reasonDetail": "Handling outside click"
  },
  {
    "rule": "React-useRef",
    "path": "ts/hooks/useIntersectionObserver.ts",
    "line": "  const unobserveRef = useRef<(() => unknown) | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-17T20:16:37.959Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/hooks/usePrevious.ts",
    "line": "  const previousValueRef = useRef<T>(initialValue);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-17T20:16:37.959Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/hooks/useRestoreFocus.ts",
    "line": "  const toFocusRef = React.useRef<HTMLElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/hooks/useRestoreFocus.ts",
    "line": "  const lastFocusedRef = React.useRef<HTMLElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-07-30T16:57:33.618Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/hooks/useRestoreFocus.ts",
    "line": "  const toFocusRef = React.useRef<HTMLElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-10-22T00:52:39.251Z"
  },
  {
    "rule": "React-useRef",
    "path": "ts/hooks/useRestoreFocus.ts",
    "line": "  const lastFocusedRef = React.useRef<HTMLElement | null>(null);",
    "reasonCategory": "usageTrusted",
    "updated": "2021-10-22T00:52:39.251Z"
  },
  {
    "rule": "DOM-innerHTML",
    "path": "ts/quill/signal-clipboard/index.ts",
    "line": "  return div.innerHTML;",
    "reasonCategory": "usageTrusted",
    "updated": "2020-11-06T17:43:07.381Z",
    "reasonDetail": "used for figuring out clipboard contents"
  },
  {
    "rule": "React-useRef",
    "path": "ts/state/smart/InstallScreen.tsx",
    "line": "  const chooseDeviceNamePromiseWrapperRef = useRef(explodePromise<string>());",
    "reasonCategory": "usageTrusted",
    "updated": "2021-12-06T23:07:28.947Z",
    "reasonDetail": "Doesn't touch the DOM."
  },
  {
    "rule": "DOM-innerHTML",
    "path": "ts/windows/loading/start.ts",
    "line": "  message.innerHTML = window.SignalContext.i18n('icu:optimizingApplication');",
    "reasonCategory": "usageTrusted",
    "updated": "2021-09-17T21:02:59.414Z"
  }
]
