Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linting changes #97

Closed
wants to merge 1 commit into from
Closed

Linting changes #97

wants to merge 1 commit into from

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Oct 2, 2023

This pull request includes linting changes based on the target branch.

Please review and merge if everything looks good.

Additional suggestions: ./dist.tsconfig.json format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

i Formatter would have printed the following content:

 1  1 │   {
 2    │ - ··"compilerOptions":·{
 3    │ - ····"strictFunctionTypes":·true,
 4    │ - ····"strictNullChecks":·true,
 5    │ - ····"strictBindCallApply":·true,
 6    │ - ····"resolveJsonModule":·true,
 7    │ - ····"allowJs":·true,
 8    │ - ····"allowSyntheticDefaultImports":·true,
 9    │ - ····"allowUnreachableCode":·false,
10    │ - ····"declaration":·true,
11    │ - ····"experimentalDecorators":·true,
12    │ - ····"noErrorTruncation":·true,
13    │ - ····"lib":·[
14    │ - ······"dom",
15    │ - ······"es2020"
16    │ - ····],
17    │ - ····"outDir":·"dist",
18    │ - ····"moduleResolution":·"node16",
19    │ - ····"module":·"esnext",
20    │ - ····"target":·"es2019",
21    │ - ····"noUnusedLocals":·false,
22    │ - ····"noUnusedParameters":·false,
23    │ - ····"noImplicitThis":·true,
24    │ - ····"jsx":·"react",
25    │ - ····"jsxFactory":·"h.createElement",
26    │ - ····"jsxFragmentFactory":·"h.Fragment"
27    │ - ··},
28    │ - ··"include":·[
29    │ - ····"src"
30    │ - ··],
31    │ - ··"exclude"·:·[
32    │ - ····"src/**/*.spec.ts",
33    │ - ····"src/**/*.spec.tsx"
34    │ - ··]
35    │ - }
    2 │ + → "compilerOptions":·{
    3 │ + → → "strictFunctionTypes":·true,
    4 │ + → → "strictNullChecks":·true,
    5 │ + → → "strictBindCallApply":·true,
    6 │ + → → "resolveJsonModule":·true,
    7 │ + → → "allowJs":·true,
    8 │ + → → "allowSyntheticDefaultImports":·true,
    9 │ + → → "allowUnreachableCode":·false,
   10 │ + → → "declaration":·true,
   11 │ + → → "experimentalDecorators":·true,
   12 │ + → → "noErrorTruncation":·true,
   13 │ + → → "lib":·["dom",·"es2020"],
   14 │ + → → "outDir":·"dist",
   15 │ + → → "moduleResolution":·"node16",
   16 │ + → → "module":·"esnext",
   17 │ + → → "target":·"es2019",
   18 │ + → → "noUnusedLocals":·false,
   19 │ + → → "noUnusedParameters":·false,
   20 │ + → → "noImplicitThis":·true,
   21 │ + → → "jsx":·"react",
   22 │ + → → "jsxFactory":·"h.createElement",
   23 │ + → → "jsxFragmentFactory":·"h.Fragment"
   24 │ + → },
   25 │ + → "include":·["src"],
   26 │ + → "exclude":·["src/**/*.spec.ts",·"src/**/*.spec.tsx"]
   27 │ + }
   28 │ + 

./dist.tsconfig.json check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

× The file contains diagnostics that needs to be addressed.

./tasks/generateTypes.ts organizeImports ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

i Import statements could be sorted:

 1    │ - import·{
    1 │ + import·{·mkdirSync,·rmSync,·writeFileSync·}·from·"fs";
    2 │ + import·{
 2  3 │     supportedHTMLElements,
 3  4 │     supportedMathMLElements,
 4  5 │     supportedSVGElements,
 5    │ - }·from·"@michijs/htmltype/supported";
 6    │ - import·{·writeFileSync,·rmSync,·mkdirSync·}·from·"fs";
    6 │ + }·from·"@michijs/htmltype/supported";
 7  7 │   
 8  8 │   const elements = new Map<

./tasks/generateTypes.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

i Formatter would have printed the following content:

 1  1 │   import {
 2    │ - ··supportedHTMLElements,
 3    │ - ··supportedMathMLElements,
 4    │ - ··supportedSVGElements,
    2 │ + → supportedHTMLElements,
    3 │ + → supportedMathMLElements,
    4 │ + → supportedSVGElements,
 5  5 │   } from "@michijs/htmltype/supported";
 6  6 │   import { writeFileSync, rmSync, mkdirSync } from "fs";
 7  7 │   
 8  8 │   const elements = new Map<
 9    │ - ··string,
10    │ - ··{
11    │ - ····attributes:·string[];
12    │ - ····elementInterfaces:·string[];
13    │ - ··}
    9 │ + → string,
   10 │ + → {
   11 │ + → → attributes:·string[];
   12 │ + → → elementInterfaces:·string[];
   13 │ + → }
14 14 │   >();
15 15 │   
16 16 │   supportedHTMLElements.forEach((x) => {
17    │ - ··elements.set(x.tagName,·{
18    │ - ····attributes:·[`HTMLElements["${x.tagName}"]`],
19    │ - ····elementInterfaces:·[x.elementInterface],
20    │ - ··});
   17 │ + → elements.set(x.tagName,·{
   18 │ + → → attributes:·[`HTMLElements["${x.tagName}"]`],
   19 │ + → → elementInterfaces:·[x.elementInterface],
   20 │ + → });
21 21 │   });
22 22 │   supportedMathMLElements.forEach((x) => {
23    │ - ··elements.set(x.tagName,·{
24    │ - ····attributes:·[`MathMLElements["${x.tagName}"]`],
25    │ - ····elementInterfaces:·[x.elementInterface],
26    │ - ··});
   23 │ + → elements.set(x.tagName,·{
   24 │ + → → attributes:·[`MathMLElements["${x.tagName}"]`],
   25 │ + → → elementInterfaces:·[x.elementInterface],
   26 │ + → });
27 27 │   });
28 28 │   supportedSVGElements.forEach((x) => {
29    │ - ··const·attributes·=·`SVGElements["${x.tagName}"]`;
30    │ - ··const·elementInterface·=·x.elementInterface;
31    │ - ··const·element·=·elements.get(x.tagName);
32    │ - ··if·(element)·{
33    │ - ····element.attributes.push(attributes);
34    │ - ····element.elementInterfaces.push(elementInterface);
35    │ - ··}·else·{
36    │ - ····elements.set(x.tagName,·{
37    │ - ······attributes:·[attributes],
38    │ - ······elementInterfaces:·[x.elementInterface],
39    │ - ····});
40    │ - ··}
   29 │ + → const·attributes·=·`SVGElements["${x.tagName}"]`;
   30 │ + → const·elementInterface·=·x.elementInterface;
   31 │ + → const·element·=·elements.get(x.tagName);
   32 │ + → if·(element)·{
   33 │ + → → element.attributes.push(attributes);
   34 │ + → → element.elementInterfaces.push(elementInterface);
   35 │ + → }·else·{
   36 │ + → → elements.set(x.tagName,·{
   37 │ + → → → attributes:·[attributes],
   38 │ + → → → elementInterfaces:·[x.elementInterface],
   39 │ + → → });
   40 │ + → }
41 41 │   });
42 42 │   
····· │ 
45 45 │   
46 46 │   writeFileSync(
47    │ - ··"./src/michijs/h/generated/JSX.ts",
48    │ - ··`·import·{·HTMLElements·as·HTMLElementsHTMLType,·MathMLElements,·SVGElements·as·SVGElementsHTMLType·}·from·"@michijs/htmltype";
   47 │ + → "./src/michijs/h/generated/JSX.ts",
   48 │ + → `·import·{·HTMLElements·as·HTMLElementsHTMLType,·MathMLElements,·SVGElements·as·SVGElementsHTMLType·}·from·"@michijs/htmltype";
49 49 │     import { MichiAttributes } from "../MichiAttributes";
50 50 │     import { SingleJSXElement } from '../../types';
····· │ 
52 52 │     interface ElementsInterfaceOverride {
53 53 │       ${Array.from(elements)
54    │ - ······.filter(([_name,·x])·=>·x.elementInterfaces.length·>·1)
55    │ - ······.map(([name,·x])·=>·`${name}:·${x.elementInterfaces.join("·&·")}`)
56    │ - ······.join(",\n")}
   54 │ + → → → .filter(([_name,·x])·=>·x.elementInterfaces.length·>·1)
   55 │ + → → → .map(([name,·x])·=>·`${name}:·${x.elementInterfaces.join("·&·")}`)
   56 │ + → → → .join(",\n")}
57 57 │     }
58 58 │     type HTMLElements = HTMLElementsHTMLType<ElementsInterfaceOverride>;
····· │ 
67 67 │         interface IntrinsicElements extends HTMLElements, MathMLElements, SVGElements {
68 68 │           ${Array.from(elements)
69    │ - ··········.sort()
70    │ - ··········.map(
71    │ - ············([key,·{·attributes,·elementInterfaces·}])·=>
72    │ - ··············`${key}:·${attributes.join(
73    │ - ················"·&·",
74    │ - ··············)}·&·MichiAttributes<${elementInterfaces.join("·&·")}>;`,
75    │ - ··········)
76    │ - ··········.join("\n")}
   69 │ + → → → → → .sort()
   70 │ + → → → → → .map(
   71 │ + → → → → → → ([key,·{·attributes,·elementInterfaces·}])·=>
   72 │ + → → → → → → → `${key}:·${attributes.join(
   73 │ + → → → → → → → → "·&·",
   74 │ + → → → → → → → )}·&·MichiAttributes<${elementInterfaces.join("·&·")}>;`,
   75 │ + → → → → → )
   76 │ + → → → → → .join("\n")}
77 77 │         }
78 78 │       }

./tasks/generateTypes.ts check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

× The file contains diagnostics that needs to be addressed.

./tests/index.tsx organizeImports ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

i Import statements could be sorted:

  1     │ - import·{·createCustomElement,·h,·Host·}·from·"../src";
      1 │ + import·{·Host,·createCustomElement,·h·}·from·"../src";
  2   2 │   import { ColorSelector } from "./ColorSelector";
  3   3 │   import { Router } from "./routes";

./tests/index.tsx format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

i Formatter would have printed the following content:

  6   6 │   
  7   7 │   createCustomElement("root-test-element", {
  8     │ - ··reflectedAttributes:·{
  9     │ - ····//·arrayTest:·new·ElementList(0,·1,·2,·3,·4,·5,·6),
 10     │ - ····arrayTest:·[0,·1,·2,·3,·4,·5],
 11     │ - ··},
 12     │ - ··shadow:·false,
 13     │ - ··transactions:·{
 14     │ - ····onClickArray()·{
 15     │ - ······this.arrayTest.push(7,·8);
 16     │ - ······//·this.arrayTest·=·[0,·1,·2,·3,·6]
 17     │ - ······//·this.arrayTest.reverse();
 18     │ - ······//·this.arrayTest.pop();
 19     │ - ······//·this.arrayTest.shift();
 20     │ - ······//·Scenario
 21     │ - ······//·this.arrayTest·=·[6,·3,·2,·1,·0]
 22     │ - ····},
 23     │ - ··},
 24     │ - ··fakeRoot:·false,
 25     │ - ··observe:·{
 26     │ - ····"arrayTest.6"()·{
 27     │ - ······console.log("6·Added");
 28     │ - ····},
 29     │ - ··},
 30     │ - ··render()·{
 31     │ - ····return·(
 32     │ - ······<Host>
 33     │ - ········<Router·/>
 34     │ - ········<math·display="block">
 35     │ - ··········<mfrac>
 36     │ - ············<mn>{this.arrayTest.length}</mn>
 37     │ - ············<msqrt>
 38     │ - ··············<mn>2</mn>
 39     │ - ············</msqrt>
 40     │ - ··········</mfrac>
 41     │ - ········</math>
 42     │ - ········{/*·<List
      8 │ + → reflectedAttributes:·{
      9 │ + → → //·arrayTest:·new·ElementList(0,·1,·2,·3,·4,·5,·6),
     10 │ + → → arrayTest:·[0,·1,·2,·3,·4,·5],
     11 │ + → },
     12 │ + → shadow:·false,
     13 │ + → transactions:·{
     14 │ + → → onClickArray()·{
     15 │ + → → → this.arrayTest.push(7,·8);
     16 │ + → → → //·this.arrayTest·=·[0,·1,·2,·3,·6]
     17 │ + → → → //·this.arrayTest.reverse();
     18 │ + → → → //·this.arrayTest.pop();
     19 │ + → → → //·this.arrayTest.shift();
     20 │ + → → → //·Scenario
     21 │ + → → → //·this.arrayTest·=·[6,·3,·2,·1,·0]
     22 │ + → → },
     23 │ + → },
     24 │ + → fakeRoot:·false,
     25 │ + → observe:·{
     26 │ + → → "arrayTest.6"()·{
     27 │ + → → → console.log("6·Added");
     28 │ + → → },
     29 │ + → },
     30 │ + → render()·{
     31 │ + → → return·(
     32 │ + → → → <Host>
     33 │ + → → → → <Router·/>
     34 │ + → → → → <math·display="block">
     35 │ + → → → → → <mfrac>
     36 │ + → → → → → → <mn>{this.arrayTest.length}</mn>
     37 │ + → → → → → → <msqrt>
     38 │ + → → → → → → → <mn>2</mn>
     39 │ + → → → → → → </msqrt>
     40 │ + → → → → → </mfrac>
     41 │ + → → → → </math>
     42 │ + → → → → {/*·<List
 43  43 │             as='div'
 44  44 │             data={this.arrayTest}
 45  45 │             renderItem={item => <div key={item} onclick={this.onClickArray}>{item}</div>}
 46  46 │           /> */}
 47     │ - ········<ColorSelector·/>
 48     │ - ········{this.arrayTest.map((item)·=>·(
 49     │ - ··········<div·key={item}·onclick={this.onClickArray}>
 50     │ - ············{item}
 51     │ - ··········</div>
 52     │ - ········))}
 53     │ - ········{/*·<this.arrayTest.List
     47 │ + → → → → <ColorSelector·/>
     48 │ + → → → → {this.arrayTest.map((item)·=>·(
     49 │ + → → → → → <div·key={item}·onclick={this.onClickArray}>
     50 │ + → → → → → → {item}
     51 │ + → → → → → </div>
     52 │ + → → → → ))}
     53 │ + → → → → {/*·<this.arrayTest.List
 54  54 │             renderItem={(item) => <div onclick={this.onClickArray}>{item}</div>}
 55  55 │           /> */}
 56     │ - ······</Host>
 57     │ - ····);
 58     │ - ··},
     56 │ + → → → </Host>
     57 │ + → → );
     58 │ + → },
 59  59 │   });
 60  60 │   

./tests/index.tsx check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

× The file contains diagnostics that needs to be addressed.

./tests/CounterWithReduxStore.tsx:35:11 lint/a11y/useButtonType ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

× Provide an explicit type prop for the button element.

33 │       return (
34 │         <Host count={this.count()}>

35 │ -
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
36 │ {this.count()}
37 │ +

i The default type of a button is submit, which causes the submission of a form when placed inside a form element. This is likely not the behaviour that you want inside a React application.

i Allowed button types are: submit, button or reset

./tests/CounterWithReduxStore.tsx:37:11 lint/a11y/useButtonType ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

× Provide an explicit type prop for the button element.

35 │           <button onpointerup={this.decrementCount}>-</button>
36 │           <span>{this.count()}</span>

37 │ +
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
38 │
39 │ );

i The default type of a button is submit, which causes the submission of a form when placed inside a form element. This is likely not the behaviour that you want inside a React application.

i Allowed button types are: submit, button or reset

./tests/CounterWithReduxStore.tsx lint ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

× The file contains diagnostics that needs to be addressed.

./tests/CounterWithReduxStore.tsx organizeImports ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

i Import statements could be sorted:

 1    │ - import·{·h,·createCustomElement,·Host,·EventDispatcher·}·from·"../src";
    1 │ + import·{·EventDispatcher,·Host,·createCustomElement,·h·}·from·"../src";
 2  2 │   import { counterStyle } from "./shared/counterStyle";
 3  3 │   import { decrement, increment } from "./shared/redux/CounterSlice";

./tests/CounterWithReduxStore.tsx format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

i Formatter would have printed the following content:

 5  5 │   
 6  6 │   export const CounterWithReduxStore = createCustomElement(
 7    │ - ··"counter-with-redux-store",
 8    │ - ··{
 9    │ - ····methods:·{
10    │ - ······count()·{
11    │ - ········return·store.getState().counterStore.count;
12    │ - ······},
13    │ - ······decrementCount()·{
14    │ - ········store.dispatch(decrement());
15    │ - ······},
16    │ - ······incrementCount()·{
17    │ - ········store.dispatch(increment());
18    │ - ······},
19    │ - ····},
20    │ - ····events:·{
21    │ - ······countChanged:·new·EventDispatcher<number>(),
22    │ - ····},
23    │ - ····observe:·{
24    │ - ······store()·{
25    │ - ········this.countChanged(this.count());
26    │ - ······},
27    │ - ····},
28    │ - ····subscribeTo:·{
29    │ - ······store,
30    │ - ····},
31    │ - ····adoptedStyleSheets:·[counterStyle],
32    │ - ····render()·{
33    │ - ······return·(
34    │ - ········<Host·count={this.count()}>
35    │ - ··········<button·onpointerup={this.decrementCount}>-</button>
36    │ - ··········<span>{this.count()}</span>
37    │ - ··········<button·onpointerup={this.incrementCount}>+</button>
38    │ - ········</Host>
39    │ - ······);
40    │ - ····},
41    │ - ··},
    7 │ + → "counter-with-redux-store",
    8 │ + → {
    9 │ + → → methods:·{
   10 │ + → → → count()·{
   11 │ + → → → → return·store.getState().counterStore.count;
   12 │ + → → → },
   13 │ + → → → decrementCount()·{
   14 │ + → → → → store.dispatch(decrement());
   15 │ + → → → },
   16 │ + → → → incrementCount()·{
   17 │ + → → → → store.dispatch(increment());
   18 │ + → → → },
   19 │ + → → },
   20 │ + → → events:·{
   21 │ + → → → countChanged:·new·EventDispatcher<number>(),
   22 │ + → → },
   23 │ + → → observe:·{
   24 │ + → → → store()·{
   25 │ + → → → → this.countChanged(this.count());
   26 │ + → → → },
   27 │ + → → },
   28 │ + → → subscribeTo:·{
   29 │ + → → → store,
   30 │ + → → },
   31 │ + → → adoptedStyleSheets:·[counterStyle],
   32 │ + → → render()·{
   33 │ + → → → return·(
   34 │ + → → → → <Host·count={this.count()}>
   35 │ + → → → → → <button·onpointerup={this.decrementCount}>-</button>
   36 │ + → → → → → <span>{this.count()}</span>
   37 │ + → → → → → <button·onpointerup={this.incrementCount}>+</button>
   38 │ + → → → → </Host>
   39 │ + → → → );
   40 │ + → → },
   41 │ + → },
42 42 │   );
43 43 │   

./tests/CounterWithReduxStore.tsx check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

× The file contains diagnostics that needs to be addressed.

./tests/pages/i18nTests/es.json format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

i Formatter would have printed the following content:

1 1 │   {
2   │ - ····"language":·"Lenguaje",
3   │ - ····"dogBit":·"El·perro·mordió·a·su·dueño"
4   │ - }
  2 │ + → "language":·"Lenguaje",
  3 │ + → "dogBit":·"El·perro·mordió·a·su·dueño"
  4 │ + }
  5 │ + 

./tests/pages/i18nTests/es.json check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

× The file contains diagnostics that needs to be addressed.

./src/michijs/types.ts:111:17 lint/suspicious/noExplicitAny ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

× Unexpected any. Specify a different type.

110 │ type StringArrayToDelimiterCase<

111 │ Parts extends any[],
│ ^^^
112 │ UsedWordSeparators extends string,
113 │ UsedUpperCaseCharacters extends string,

i any disables many type checking rules. Its use should be avoided.

./src/michijs/types.ts:154:37 lint/suspicious/noExplicitAny ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

× Unexpected any. Specify a different type.

152 │ }
153 │ 

154 │ export interface ObservableLike<T = any> {
│ ^^^
155 │ subscribe(observer: ObserverCallback): void;
156 │ unsubscribe?(observer: ObserverCallback): void;

i any disables many type checking rules. Its use should be avoided.

./src/michijs/types.ts:227:25 lint/suspicious/noExplicitAny ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

× Unexpected any. Specify a different type.

226 │ export interface CommonJSXAttrs<T> extends IterableAttrs<T> {

227 │ attrs: Record<string, any> & { children: JSX.Element[] };
│ ^^^
228 │ }
229 │ export type FragmentJSXElement = CommonJSXAttrs<

i any disables many type checking rules. Its use should be avoided.

./src/michijs/types.ts:237:52 lint/suspicious/noExplicitAny ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

× Unexpected any. Specify a different type.

235 │ export type ObjectJSXElement = CommonJSXAttrs<string>;
236 │ export type DOMElementJSXElement = CommonJSXAttrs<Element>;

237 │ export type FunctionJSXElement = CommonJSXAttrs<FC>;
│ ^^^
238 │ export type ClassJSXElement = CommonJSXAttrs<
239 │ (new (...args: any[]) => Element) & { tag: string; extends?: string }

i any disables many type checking rules. Its use should be avoided.

The number of diagnostics exceeds the number allowed by Biome.
Diagnostics not shown: 523.
Checked 147 file(s) in 97ms
Found 204 error(s)
check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

× Some errors were emitted while running checks.

@github-actions github-actions bot closed this Oct 11, 2023
@github-actions github-actions bot deleted the master_lint branch October 11, 2023 19:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants