@samitouri / QOS-React / commits / dd228c9ed0

[be] non-blocking ESLint config, fixes

Configures typescript-eslint for the project with an initial configuration that starts with their recommended rules, and adds/disables a few (generally either disabling warnings or promoting them to errors). The new `yarn lint` command is not hooked up to CI yet, so for now this is something we can opt-in to running locally. If you have some free time, help get us down to zero errors! My general philosophy for linting, which I propose we follow, is that lints should be very high-signal: * Error, don't warn. If it's worth mentioning it's worth fixing. * Enable rules that consistently identify real problems. If we frequently would have to disable the rule due to false positives, it isn't high-signal. * Enable rules that help improve consistent style (to avoid code review about style rather than substance).

Joe Savona committed Feb 9, 2023 at 11:58 UTC dd228c9ed022bf9c32d672dcda3ce2c5f9657891
9 files changed +224 -75
compiler/forget/.eslintrc.js new
+53
@@ -0,0 +1,53 @@
1 +/**
2 + * Our philosophy for linting is that lints should be very high-signal:
3 + * - Error, don't warn. If it's worth mentioning it's worth fixing.
4 + * - Enable rules that consistently identify real problems. If we frequently would have to
5 + * disable the rule due to false positives, it isn't high-signal.
6 + * - Enable rules that help improve consistent style (to avoid code review about style rather
7 + * than substance).
8 + */
9 +module.exports = {
10 + extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
11 + rules: {
12 + // We prefer using const where variables are not reassigned, but occassional mistakes
13 + // aren't a major issue
14 + "prefer-const": "off",
15 +
16 + // Not valuable enough to enable
17 + "no-useless-escape": "off",
18 + "@typescript-eslint/no-empty-function": "off",
19 +
20 + // Explicitly casting to/through any is sometimes required, often for error messages to
21 + // assertExhaustive()
22 + "@typescript-eslint/no-explicit-any": "off",
23 +
24 + // We use non-null assertions carefully. Ideally, there would be a TS option to codegen
25 + // a non-null check at the assertion site.
26 + "@typescript-eslint/no-non-null-assertion": "off",
27 +
28 + // Being explicit provides value in cases where inference may later change
29 + "@typescript-eslint/no-inferrable-types": "off",
30 + "@typescript-eslint/explicit-function-return-type": "error",
31 +
32 + // Unused variables are frequently a bug. Ideally this rule would ignore identifiers
33 + // prefixed with "_", though, so that we don't need suppressions in legit cases.
34 + // TODO: build a custom version of this rule that understands "_" as a prefix.
35 + "@typescript-eslint/no-unused-vars": "error",
36 +
37 + // Consider enabling for consistency. Ideally violations could be auto-fixed.
38 + "@typescript-eslint/consistent-generic-constructors": [
39 + "off",
40 + "constructor",
41 + ],
42 + "@typescript-eslint/array-type": ["off", "generic"],
43 + },
44 + parser: "@typescript-eslint/parser",
45 + plugins: ["@typescript-eslint"],
46 + root: true,
47 + ignorePatterns: ["src/__tests__/**/*", "src/**/*.d.ts", "packages/**/*"],
48 +
49 + // If rules need to be disabled then the rule is insufficiently high signal
50 + // and should be diasbled altogether or customized (in either case via a standalone PR)
51 + noInlineConfig: true,
52 + reportUnusedDisableDirectives: true,
53 +};
compiler/forget/package.json
+5 -4
@@ -19,7 +19,8 @@
19 "test262:ci": "scripts/test262.sh",
20 "prettier": "node ./scripts/prettier.js write-changed",
21 "prettier:all": "node ./scripts/prettier.js write",
22 - "prettier:ci": "prettier --check ."
22 + "prettier:ci": "prettier --check .",
23 + "lint": "yarn eslint src"
24 },
25 "repository": {
26 "type": "git",
@@ -46,15 +47,15 @@
47 "@hpcc-js/wasm": "^1.15.0",
48 "@testing-library/react": "^13.4.0",
49 "@tsconfig/node16-strictest": "^1.0.3",
49 - "@types/eslint": "^8.4.6",
50 "@types/invariant": "^2.2.35",
51 "@types/jest": "^29.0.3",
52 "@types/node": "^18.7.18",
53 + "@typescript-eslint/eslint-plugin": "^5.51.0",
54 + "@typescript-eslint/parser": "^5.51.0",
55 "babel-jest": "^29.0.3",
56 "concurrently": "^7.4.0",
55 - "eslint": "^8.25.0",
57 + "eslint": "^8.33.0",
58 "glob": "^7.1.6",
57 - "hermes-eslint": "^0.9.0",
59 "jest": "^29.0.3",
60 "jest-environment-jsdom": "^29.0.3",
61 "react": "^18.2.0",
compiler/forget/src/HIR/BuildHIR.ts
+2
@@ -1763,6 +1763,8 @@ function buildTemporaryPlace(builder: HIRBuilder, loc: SourceLocation): Place {
1763 return place;
1764 }
1765
1766 +function lowerFooBar(): void {}
1767 +
1768 function lowerAssignment(
1769 builder: HIRBuilder,
1770 loc: SourceLocation,
compiler/forget/src/Utils/DisjointSet.ts
+2 -2
@@ -18,7 +18,7 @@ export default class DisjointSet<T> {
18 * linking any previous sets that the items were part of into a single
19 * set.
20 */
21 - union(items: Array<T>) {
21 + union(items: Array<T>): void {
22 const first = items.shift();
23 invariant(first != null, "Expected set to be non-empty");
24 // determine an arbitrary "root" for this set: if the first
@@ -94,7 +94,7 @@ export default class DisjointSet<T> {
94 * Calls the provided callback once for each item in the disjoint set,
95 * passing the @param item and the @param group to which it belongs.
96 */
97 - forEach(fn: (item: T, group: T) => void) {
97 + forEach(fn: (item: T, group: T) => void): void {
98 for (const item of this.#entries.keys()) {
99 const group = this.find(item)!;
100 fn(item, group);
compiler/forget/src/Utils/VisualizeHIRMermaid.ts
+2 -2
@@ -37,7 +37,7 @@ function printJumpArrow(
37 * Prints a mermaid arrow connecting a BasicBlock's instructions to its Terminal for use in the
38 * "Basic Blocks" section.
39 */
40 -function printTerminalArrow(blockId: BlockId, block: BasicBlock) {
40 +function printTerminalArrow(blockId: BlockId, block: BasicBlock): string {
41 const bbId = printBlockId(blockId);
42 if (block.instructions.length > 0) {
43 return `${bbId}_${INSTRUCTIONS_NODE_NAME} --> ${bbId}_${TERMINAL_NODE_NAME}(["${printTerminalLabel(
@@ -53,7 +53,7 @@ function printTerminalArrow(blockId: BlockId, block: BasicBlock) {
53 * Prints a BasicBlock as a mermaid `subgraph`, with instructions as a single multiline mermaid node
54 * and the terminal as an arrow connecting the instruction node with the terminal.
55 */
56 -function printBlockSubgraphs(blockId: BlockId, block: BasicBlock) {
56 +function printBlockSubgraphs(blockId: BlockId, block: BasicBlock): string {
57 const buffer = [];
58 const bbId = printBlockId(blockId);
59 const instructions = block.instructions
compiler/forget/src/Utils/logger.ts
+2 -2
@@ -14,7 +14,7 @@ let ENABLED: boolean = false;
14
15 let lastLogged: string;
16
17 -export function toggleLogging(enabled: boolean) {
17 +export function toggleLogging(enabled: boolean): void {
18 ENABLED = enabled;
19 }
20
@@ -54,7 +54,7 @@ export function logReactiveFunction(step: string, fn: ReactiveFunction): void {
54 }
55 }
56
57 -export function log(fn: () => string) {
57 +export function log(fn: () => string): void {
58 if (ENABLED) {
59 const message = fn();
60 process.stdout.write(message.trim() + "\n\n");
compiler/forget/src/Utils/utils.ts
+1 -1
@@ -34,7 +34,7 @@ export function assertExhaustive(_: never, errorMsg: string): never {
34 export function retainWhere<T>(
35 array: Array<T>,
36 predicate: (item: T) => boolean
37 -) {
37 +): void {
38 let writeIndex = 0;
39 for (let readIndex = 0; readIndex < array.length; readIndex++) {
40 const item = array[readIndex];
compiler/forget/src/index.ts
+1 -1
@@ -15,7 +15,7 @@ export { printHIR } from "./HIR";
15 export { printReactiveFunction } from "./ReactiveScopes";
16
17 declare global {
18 - var __DEV__: boolean | null | undefined;
18 + let __DEV__: boolean | null | undefined;
19 }
20
21 import ReactForgetBabelPlugin from "./Babel/BabelPlugin";
compiler/forget/yarn.lock
+156 -63
@@ -555,15 +555,15 @@
555 dependencies:
556 "@jridgewell/trace-mapping" "0.3.9"
557
558 -"@eslint/eslintrc@^1.3.3":
559 - version "1.3.3"
560 - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95"
561 - integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==
558 +"@eslint/eslintrc@^1.4.1":
559 + version "1.4.1"
560 + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e"
561 + integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==
562 dependencies:
563 ajv "^6.12.4"
564 debug "^4.3.2"
565 espree "^9.4.0"
566 - globals "^13.15.0"
566 + globals "^13.19.0"
567 ignore "^5.2.0"
568 import-fresh "^3.2.1"
569 js-yaml "^4.1.0"
@@ -577,14 +577,14 @@
577 dependencies:
578 yargs "17.5.1"
579
580 -"@humanwhocodes/config-array@^0.10.5":
581 - version "0.10.7"
582 - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.7.tgz#6d53769fd0c222767e6452e8ebda825c22e9f0dc"
583 - integrity sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==
580 +"@humanwhocodes/config-array@^0.11.8":
581 + version "0.11.8"
582 + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9"
583 + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==
584 dependencies:
585 "@humanwhocodes/object-schema" "^1.2.1"
586 debug "^4.1.1"
587 - minimatch "^3.0.4"
587 + minimatch "^3.0.5"
588
589 "@humanwhocodes/module-importer@^1.0.1":
590 version "1.0.1"
@@ -875,7 +875,7 @@
875 resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
876 integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
877
878 -"@nodelib/fs.walk@^1.2.3":
878 +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
879 version "1.2.8"
880 resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
881 integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
@@ -993,19 +993,6 @@
993 dependencies:
994 "@babel/types" "^7.3.0"
995
996 -"@types/eslint@^8.4.6":
997 - version "8.4.6"
998 - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.6.tgz#7976f054c1bccfcf514bff0564c0c41df5c08207"
999 - integrity sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==
1000 - dependencies:
1001 - "@types/estree" "*"
1002 - "@types/json-schema" "*"
1003 -
1004 -"@types/estree@*":
1005 - version "1.0.0"
1006 - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2"
1007 - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==
1008 -
996 "@types/graceful-fs@^4.1.3":
997 version "4.1.5"
998 resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15"
@@ -1062,7 +1049,7 @@
1049 "@types/tough-cookie" "*"
1050 parse5 "^7.0.0"
1051
1065 -"@types/json-schema@*":
1052 +"@types/json-schema@^7.0.9":
1053 version "7.0.11"
1054 resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3"
1055 integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
@@ -1103,6 +1090,11 @@
1090 resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
1091 integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
1092
1093 +"@types/semver@^7.3.12":
1094 + version "7.3.13"
1095 + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91"
1096 + integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==
1097 +
1098 "@types/stack-utils@^2.0.0":
1099 version "2.0.1"
1100 resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c"
@@ -1132,6 +1124,90 @@
1124 dependencies:
1125 "@types/yargs-parser" "*"
1126
1127 +"@typescript-eslint/eslint-plugin@^5.51.0":
1128 + version "5.51.0"
1129 + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.51.0.tgz#da3f2819633061ced84bb82c53bba45a6fe9963a"
1130 + integrity sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==
1131 + dependencies:
1132 + "@typescript-eslint/scope-manager" "5.51.0"
1133 + "@typescript-eslint/type-utils" "5.51.0"
1134 + "@typescript-eslint/utils" "5.51.0"
1135 + debug "^4.3.4"
1136 + grapheme-splitter "^1.0.4"
1137 + ignore "^5.2.0"
1138 + natural-compare-lite "^1.4.0"
1139 + regexpp "^3.2.0"
1140 + semver "^7.3.7"
1141 + tsutils "^3.21.0"
1142 +
1143 +"@typescript-eslint/parser@^5.51.0":
1144 + version "5.51.0"
1145 + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.51.0.tgz#2d74626652096d966ef107f44b9479f02f51f271"
1146 + integrity sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==
1147 + dependencies:
1148 + "@typescript-eslint/scope-manager" "5.51.0"
1149 + "@typescript-eslint/types" "5.51.0"
1150 + "@typescript-eslint/typescript-estree" "5.51.0"
1151 + debug "^4.3.4"
1152 +
1153 +"@typescript-eslint/scope-manager@5.51.0":
1154 + version "5.51.0"
1155 + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz#ad3e3c2ecf762d9a4196c0fbfe19b142ac498990"
1156 + integrity sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==
1157 + dependencies:
1158 + "@typescript-eslint/types" "5.51.0"
1159 + "@typescript-eslint/visitor-keys" "5.51.0"
1160 +
1161 +"@typescript-eslint/type-utils@5.51.0":
1162 + version "5.51.0"
1163 + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.51.0.tgz#7af48005531700b62a20963501d47dfb27095988"
1164 + integrity sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==
1165 + dependencies:
1166 + "@typescript-eslint/typescript-estree" "5.51.0"
1167 + "@typescript-eslint/utils" "5.51.0"
1168 + debug "^4.3.4"
1169 + tsutils "^3.21.0"
1170 +
1171 +"@typescript-eslint/types@5.51.0":
1172 + version "5.51.0"
1173 + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.51.0.tgz#e7c1622f46c7eea7e12bbf1edfb496d4dec37c90"
1174 + integrity sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==
1175 +
1176 +"@typescript-eslint/typescript-estree@5.51.0":
1177 + version "5.51.0"
1178 + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz#0ec8170d7247a892c2b21845b06c11eb0718f8de"
1179 + integrity sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==
1180 + dependencies:
1181 + "@typescript-eslint/types" "5.51.0"
1182 + "@typescript-eslint/visitor-keys" "5.51.0"
1183 + debug "^4.3.4"
1184 + globby "^11.1.0"
1185 + is-glob "^4.0.3"
1186 + semver "^7.3.7"
1187 + tsutils "^3.21.0"
1188 +
1189 +"@typescript-eslint/utils@5.51.0":
1190 + version "5.51.0"
1191 + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.51.0.tgz#074f4fabd5b12afe9c8aa6fdee881c050f8b4d47"
1192 + integrity sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==
1193 + dependencies:
1194 + "@types/json-schema" "^7.0.9"
1195 + "@types/semver" "^7.3.12"
1196 + "@typescript-eslint/scope-manager" "5.51.0"
1197 + "@typescript-eslint/types" "5.51.0"
1198 + "@typescript-eslint/typescript-estree" "5.51.0"
1199 + eslint-scope "^5.1.1"
1200 + eslint-utils "^3.0.0"
1201 + semver "^7.3.7"
1202 +
1203 +"@typescript-eslint/visitor-keys@5.51.0":
1204 + version "5.51.0"
1205 + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz#c0147dd9a36c0de758aaebd5b48cae1ec59eba87"
1206 + integrity sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==
1207 + dependencies:
1208 + "@typescript-eslint/types" "5.51.0"
1209 + eslint-visitor-keys "^3.3.0"
1210 +
1211 abab@^2.0.6:
1212 version "2.0.6"
1213 resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
@@ -1653,7 +1729,7 @@ date-fns@^2.29.1:
1729 resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8"
1730 integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==
1731
1656 -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2:
1732 +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
1733 version "4.3.4"
1734 resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
1735 integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@@ -1877,6 +1953,14 @@ eshost@^7.7.0:
1953 socket.io "^2.3.0"
1954 unique-temp-dir "^1.0.0"
1955
1956 +eslint-scope@^5.1.1:
1957 + version "5.1.1"
1958 + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
1959 + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
1960 + dependencies:
1961 + esrecurse "^4.3.0"
1962 + estraverse "^4.1.1"
1963 +
1964 eslint-scope@^7.1.1:
1965 version "7.1.1"
1966 resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642"
@@ -1902,14 +1986,15 @@ eslint-visitor-keys@^3.3.0:
1986 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
1987 integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
1988
1905 -eslint@^8.25.0:
1906 - version "8.25.0"
1907 - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.25.0.tgz#00eb962f50962165d0c4ee3327708315eaa8058b"
1908 - integrity sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==
1989 +eslint@^8.33.0:
1990 + version "8.33.0"
1991 + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.33.0.tgz#02f110f32998cb598c6461f24f4d306e41ca33d7"
1992 + integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==
1993 dependencies:
1910 - "@eslint/eslintrc" "^1.3.3"
1911 - "@humanwhocodes/config-array" "^0.10.5"
1994 + "@eslint/eslintrc" "^1.4.1"
1995 + "@humanwhocodes/config-array" "^0.11.8"
1996 "@humanwhocodes/module-importer" "^1.0.1"
1997 + "@nodelib/fs.walk" "^1.2.8"
1998 ajv "^6.10.0"
1999 chalk "^4.0.0"
2000 cross-spawn "^7.0.2"
@@ -1925,14 +2010,14 @@ eslint@^8.25.0:
2010 fast-deep-equal "^3.1.3"
2011 file-entry-cache "^6.0.1"
2012 find-up "^5.0.0"
1928 - glob-parent "^6.0.1"
1929 - globals "^13.15.0"
1930 - globby "^11.1.0"
2013 + glob-parent "^6.0.2"
2014 + globals "^13.19.0"
2015 grapheme-splitter "^1.0.4"
2016 ignore "^5.2.0"
2017 import-fresh "^3.0.0"
2018 imurmurhash "^0.1.4"
2019 is-glob "^4.0.0"
2020 + is-path-inside "^3.0.3"
2021 js-sdsl "^4.1.4"
2022 js-yaml "^4.1.0"
2023 json-stable-stringify-without-jsonify "^1.0.1"
@@ -1974,6 +2059,11 @@ esrecurse@^4.3.0:
2059 dependencies:
2060 estraverse "^5.2.0"
2061
2062 +estraverse@^4.1.1:
2063 + version "4.3.0"
2064 + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
2065 + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
2066 +
2067 estraverse@^5.1.0, estraverse@^5.2.0:
2068 version "5.3.0"
2069 resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
@@ -2165,7 +2255,7 @@ glob-parent@^5.1.2:
2255 dependencies:
2256 is-glob "^4.0.1"
2257
2168 -glob-parent@^6.0.1:
2258 +glob-parent@^6.0.2:
2259 version "6.0.2"
2260 resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
2261 integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
@@ -2189,10 +2279,10 @@ globals@^11.1.0:
2279 resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
2280 integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
2281
2192 -globals@^13.15.0:
2193 - version "13.17.0"
2194 - resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4"
2195 - integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==
2282 +globals@^13.19.0:
2283 + version "13.20.0"
2284 + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82"
2285 + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==
2286 dependencies:
2287 type-fest "^0.20.2"
2288
@@ -2259,27 +2349,6 @@ has@^1.0.3:
2349 dependencies:
2350 function-bind "^1.1.1"
2351
2262 -hermes-eslint@^0.9.0:
2263 - version "0.9.0"
2264 - resolved "https://registry.yarnpkg.com/hermes-eslint/-/hermes-eslint-0.9.0.tgz#f1423abe3dfd959257430d61a9bccd4700b59e09"
2265 - integrity sha512-rlkK51UpGwo0ZWg8hu8DVICth7RfGSvaEJzFflos8bDOYm/d842/J3IXi0lB9R9waOp4VGGSc8VDmh+a9p2Q2w==
2266 - dependencies:
2267 - esrecurse "^4.3.0"
2268 - hermes-estree "0.9.0"
2269 - hermes-parser "0.9.0"
2270 -
2271 -hermes-estree@0.9.0:
2272 - version "0.9.0"
2273 - resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.9.0.tgz#026e0abe6db1dcf50a81a79014b779a83db3b814"
2274 - integrity sha512-5DZ7Y0CbHVk8zPqgRCvqp8iw+P05svnQDI1aJFjdqCfXJ/1CZ+8aYpGlhJ29zCG5SE5duGTzSxogAYYI4QqXqw==
2275 -
2276 -hermes-parser@0.9.0:
2277 - version "0.9.0"
2278 - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.9.0.tgz#ede3044d50479c61843cef5bbdcea83933d4e4ec"
2279 - integrity sha512-IcvJIlAn+9tpHkP+HTsxWKrIdQPp0gvGrrQmxlL4XnNS+Oh6R/Fpxbcoflm2kY3zgQjEvxZxLiK/2+k3/5wsrw==
2280 - dependencies:
2281 - hermes-estree "0.9.0"
2282 -
2352 html-encoding-sniffer@^3.0.0:
2353 version "3.0.0"
2354 resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9"
@@ -2421,6 +2490,11 @@ is-number@^7.0.0:
2490 resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
2491 integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
2492
2493 +is-path-inside@^3.0.3:
2494 + version "3.0.3"
2495 + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
2496 + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
2497 +
2498 is-potential-custom-element-name@^1.0.1:
2499 version "1.0.1"
2500 resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
@@ -3114,7 +3188,7 @@ mimic-fn@^2.1.0:
3188 resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
3189 integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
3190
3117 -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:
3191 +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
3192 version "3.1.2"
3193 resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
3194 integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -3148,6 +3222,11 @@ ms@^2.1.1:
3222 resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
3223 integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
3224
3225 +natural-compare-lite@^1.4.0:
3226 + version "1.4.0"
3227 + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4"
3228 + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==
3229 +
3230 natural-compare@^1.4.0:
3231 version "1.4.0"
3232 resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@@ -3647,6 +3726,13 @@ semver@^6.0.0, semver@^6.3.0:
3726 resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
3727 integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
3728
3729 +semver@^7.3.7:
3730 + version "7.3.8"
3731 + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
3732 + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
3733 + dependencies:
3734 + lru-cache "^6.0.0"
3735 +
3736 server-destroy@^1.0.1:
3737 version "1.0.1"
3738 resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd"
@@ -4017,7 +4103,7 @@ ts-node@^10.9.1:
4103 v8-compile-cache-lib "^3.0.1"
4104 yn "3.1.1"
4105
4020 -tslib@^1.9.0:
4106 +tslib@^1.8.1, tslib@^1.9.0:
4107 version "1.14.1"
4108 resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
4109 integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
@@ -4027,6 +4113,13 @@ tslib@^2.1.0:
4113 resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
4114 integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
4115
4116 +tsutils@^3.21.0:
4117 + version "3.21.0"
4118 + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
4119 + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
4120 + dependencies:
4121 + tslib "^1.8.1"
4122 +
4123 type-check@^0.4.0, type-check@~0.4.0:
4124 version "0.4.0"
4125 resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"