linted 33.4.0 → 33.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.mocharc.yml CHANGED
@@ -1,11 +1,11 @@
1
1
  ####################
2
2
  ### .mocharc ###
3
- ### 1107.0.0 ###
3
+ ### 1107.1.0 ###
4
4
  ####################
5
5
 
6
6
  # https://mochajs.org/#configuration-format
7
7
  # https://mochajs.org/#command-line-usage
8
8
 
9
- spec: [dist/**/*.spec.js]
10
9
  extension: [js]
11
- # require: dist/_test/hooks.js
10
+ require: dist-tests/index.js
11
+ spec: [dist-tests/**/*.spec.js]
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
- "$pkg": "2411.0.0",
2
+ "$pkg": "2411.4.1",
3
3
  "$schema": "https://json.schemastore.org/package",
4
4
  "$help": "https://docs.npmjs.com/cli/configuring-npm/package-json",
5
5
  "name": "linted",
6
- "version": "33.4.0",
6
+ "version": "33.4.3",
7
7
  "repository": "github:jimmy-zhening-luo/linted",
8
8
  "description": "ESLint mono-plugin bundler with strict, opinionated defaults for (Stylistic) JavaScript, TypeScript, Svelte, HTML, Tailwind/CSS, JSON, JSONC, YAML, and Mocha.",
9
9
  "keywords": [
@@ -33,8 +33,10 @@
33
33
  "npm": "^11"
34
34
  },
35
35
  "type": "module",
36
+ "main": "dist/index.js",
37
+ "types": "dist/index.d.ts",
36
38
  "peerDependencies": {
37
- "eslint": "~9.38.0",
39
+ "eslint": "~9.39.0",
38
40
  "eslint-plugin-svelte": "~3.13.0",
39
41
  "mocha": "^11.7.4",
40
42
  "typescript": "^5.9.3"
@@ -53,8 +55,8 @@
53
55
  "dependencies": {
54
56
  "@eslint/css": "0.14.0",
55
57
  "@eslint/json": "0.13.2",
56
- "@eslinted/core": "29.4.0",
57
- "@eslinted/defaults": "17.2.0",
58
+ "@eslinted/core": "29.4.2",
59
+ "@eslinted/defaults": "17.2.2",
58
60
  "@html-eslint/eslint-plugin": "0.47.0",
59
61
  "@stylistic/eslint-plugin": "5.5.0",
60
62
  "eslint-plugin-chai-expect": "3.1.0",
@@ -72,26 +74,25 @@
72
74
  "ts-add-js-extension": "^1.6.6",
73
75
  "typescript": "^5.9.3"
74
76
  },
75
- "main": "dist/index.js",
76
- "types": "dist/index.d.ts",
77
77
  "scripts": {
78
- "clean": "cmd --% /c \"(if exist dist rmdir /s /q dist) & (if exist build rmdir /s /q build) & (if exist .eslintcache del /f /q .eslintcache)\" || rm -rf dist build .eslintcache",
79
- "prebuild": "npm run clean",
80
- "build": "cmd /c \"(if exist svelte.config.js (npm run build:svelte) else (npm run build:ts))\" || bash -c 'if [ -f svelte.config.js ]; then npm run build:svelte; else npm run build:ts; fi'",
81
- "build:ts": "tsc && ts-add-js-extension --dir=dist --showprogress=false",
78
+ "clean": "cmd --% /c \"for %G in (types dist dist-tests build packed) do (if exist %G rmdir /s /q %G) & for %G in (.eslintcache) do (if exist %G del /f /q %G)\" || rm -rf types dist dist-tests build packed .eslintcache",
79
+ "build": "npm run build:ts",
80
+ "build:ts": "tsc -b src",
82
81
  "build:svelte": "svelte-kit sync && svelte-check && vite build",
83
- "postbuild": "npm run lint || echo \"Lint failed. Continuing...\"",
82
+ "postbuild:ts": "npm run --if-present stage && ts-add-js-extension --showprogress=false --dir=dist",
83
+ "postbuild": "npm run lint || exit 0",
84
84
  "lint": "eslint --cache --fix",
85
85
  "pretest": "npm run build",
86
- "test": "npm run --if-present test:runner",
87
- "test:runner": "mocha",
88
- "prestart": "npm run --ignore-scripts build",
89
- "start": "cmd --% /c \"(if exist svelte.config.js (npm run start:svelte) else (npm run start:ts))\" || bash -c 'if [ -f svelte.config.js ]; then npm run start:svelte; else npm run start:ts; fi'",
86
+ "test": "npm run --if-present test:suite",
87
+ "test:suite": "tsc -b tests && ts-add-js-extension --showprogress=false --dir=dist-tests --include=dist && mocha",
88
+ "prestart": "npm run build",
89
+ "start": "npm run start:ts",
90
90
  "start:ts": "node .",
91
91
  "start:svelte": "vite preview --open",
92
- "prepublishOnly": "npm test",
92
+ "prepublishOnly": "npm run clean && npm test",
93
93
  "publish:release": "cmd --% /c \"for /f \"delims=-\" %a in (\"%npm_package_version%\") do if \"%a\" == \"%npm_package_version%\" (npm publish) else (npm publish --tag=next)\" || bash -c 'if [ \"${npm_package_version#*-}\" = \"${npm_package_version}\" ]; then npm publish; else npm publish --tag=next; fi'",
94
- "predeploy": "npm test",
94
+ "predeploy": "npm run clean && npm test",
95
+ "stage": "",
95
96
  "deploy": ""
96
97
  },
97
98
  "author": "Jimmy Zhening Luo <jimmy-zhening-luo@users.noreply.github.com> (https://jimm.my/)"
@@ -0,0 +1,11 @@
1
+ {
2
+ "extends": "../tsconfig.json",
3
+ "include": [
4
+ "../typings/**/*",
5
+ "**/*",
6
+ ],
7
+ "compilerOptions": {
8
+ "rootDir": ".",
9
+ "outDir": "../dist",
10
+ },
11
+ }
@@ -1,5 +1,5 @@
1
1
  import "chai/register-should.js";
2
- import linted from ".";
2
+ import linted from "../dist";
3
3
 
4
4
  const configs = linted();
5
5
 
package/tests/index.ts ADDED
@@ -0,0 +1,11 @@
1
+ export function mochaGlobalSetup() {
2
+ try {
3
+ //
4
+ }
5
+ catch (error) {
6
+ throw Error(
7
+ "Failed to hook up Mocha",
8
+ { cause: error },
9
+ );
10
+ }
11
+ }
@@ -1,5 +1,5 @@
1
1
  import "chai/register-should.js";
2
- import { scopes } from ".";
2
+ import { scopes } from "../../dist/scope";
3
3
 
4
4
  describe(
5
5
  "Scopes",
@@ -1,5 +1,5 @@
1
1
  import "chai/register-should.js";
2
- import { tree } from "./tree";
2
+ import { tree } from "../../dist/scope/tree";
3
3
 
4
4
  const nodes = tree.map(([scope]) => scope);
5
5
 
@@ -0,0 +1,17 @@
1
+ {
2
+ "extends": "../tsconfig.json",
3
+ "include": [
4
+ "../src/**/*",
5
+ "../typings/**/*",
6
+ "**/*",
7
+ ],
8
+ "references": [
9
+ {
10
+ "path": "../src/tsconfig.json",
11
+ },
12
+ ],
13
+ "compilerOptions": {
14
+ "rootDir": ".",
15
+ "outDir": "../dist-tests",
16
+ },
17
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "display": "tsc@509.4.0",
3
+ "$help": "https://aka.ms/tsconfig/#quick-nav-Top%20Level",
4
+ "compilerOptions": {
5
+ "allowUnreachableCode": false,
6
+ "allowUnusedLabels": false,
7
+ "exactOptionalPropertyTypes": true,
8
+ "noFallthroughCasesInSwitch": true,
9
+ "noImplicitOverride": true,
10
+ "noImplicitReturns": true,
11
+ "noPropertyAccessFromIndexSignature": true,
12
+ "noUncheckedIndexedAccess": true,
13
+ "noUnusedLocals": true,
14
+ "noUnusedParameters": true,
15
+ "strict": true,
16
+ "allowArbitraryExtensions": true,
17
+ "module": "esnext",
18
+ "moduleResolution": "bundler",
19
+ "rewriteRelativeImportExtensions": true,
20
+ "declarationMap": true,
21
+ "noEmitOnError": true,
22
+ "removeComments": true,
23
+ "sourceMap": true,
24
+ "target": "esnext",
25
+ "composite": true,
26
+ },
27
+ }
package/tsconfig.json CHANGED
@@ -1,56 +1,34 @@
1
1
  {
2
- "display": "tsc@509.3.0",
3
- "include": [
4
- "src/**/*.ts",
5
- "typings/**/*.d.ts",
2
+ "files": [],
3
+ "extends": "./tsconfig-base.json",
4
+ "references": [
5
+ {
6
+ "path": "src/tsconfig.json",
7
+ },
8
+ {
9
+ "path": "tests/tsconfig.json",
10
+ },
11
+ {
12
+ "path": "typings/tsconfig.json",
13
+ },
6
14
  ],
7
15
  "compilerOptions": {
8
- "allowUnreachableCode": false,
9
- "allowUnusedLabels": false,
10
- "exactOptionalPropertyTypes": true,
11
- "noFallthroughCasesInSwitch": true,
12
- "noImplicitOverride": true,
13
- "noImplicitReturns": true,
14
- "noPropertyAccessFromIndexSignature": true,
15
- "noUncheckedIndexedAccess": true,
16
- "noUnusedLocals": true,
17
- "noUnusedParameters": true,
18
- "strict": true,
19
- "allowArbitraryExtensions": true,
20
- "module": "esnext",
21
- "moduleResolution": "bundler",
22
- // "paths": {},
23
- // "resolveJsonModule": true,
24
- // "resolvePackageJsonExports": true,
25
- // "resolvePackageJsonImports": true,
26
- "rewriteRelativeImportExtensions": true,
27
- // "rootDir": "src",
28
- // "rootDirs": [],
29
- // "typeRoots": [],
16
+ // "module": "esnext",
17
+ // "moduleResolution": "bundler",
30
18
  "types": [
31
19
  "mocha",
32
20
  "chai",
33
21
  /* {CONFIGURE} */
34
22
  ],
35
- "declaration": true,
36
- // "declarationDir": "",
37
- "declarationMap": true,
38
- // "emitDeclarationOnly": true,
39
- // "noEmit": true,
40
- "noEmitOnError": true,
41
- "outDir": "dist",
42
- "removeComments": true,
43
- "sourceMap": true,
44
- // "allowJs": true,
45
- // "checkJs": true,
46
- // "isolatedDeclarations": false,
23
+ // "declaration": true,
24
+ // "sourceMap": false,
47
25
  // "verbatimModuleSyntax": true,
48
26
  "lib": [
49
27
  "esnext",
50
28
  /* {CONFIGURE} */
51
29
  ],
52
- "target": "esnext",
53
- // "composite": true,
30
+ // "target": "esnext",
31
+ // "composite": false,
54
32
  // "skipLibCheck": true,
55
33
  },
56
34
  }
File without changes
@@ -0,0 +1,6 @@
1
+ {
2
+ "extends": "../tsconfig.json",
3
+ "include": [
4
+ "**/*",
5
+ ],
6
+ }
@@ -1,2 +0,0 @@
1
- import "chai/register-should.js";
2
- //# sourceMappingURL=index.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../src/index.spec.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC"}
@@ -1,21 +0,0 @@
1
- import "chai/register-should.js";
2
- import linted from "./index.js";
3
- const configs = linted();
4
- describe("linted", function () {
5
- describe("shape", function () {
6
- it("is a function", function () {
7
- linted
8
- .should.be
9
- .a("function");
10
- });
11
- });
12
- describe("output", function () {
13
- it("is a non-empty array", function () {
14
- configs
15
- .should.be
16
- .an("array")
17
- .not.empty;
18
- });
19
- });
20
- });
21
- //# sourceMappingURL=index.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../src/index.spec.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,MAAM,MAAM,GAAG,CAAC;AAEvB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAEzB,QAAQ,CACN,QAAQ,EACR;IACE,QAAQ,CACN,OAAO,EACP;QACE,EAAE,CACA,eAAe,EACf;YACE,MAAM;iBACH,MAAM,CAAC,EAAE;iBACT,CAAC,CAAC,UAAU,CAAC,CAAC;QACnB,CAAC,CACF,CAAC;IACJ,CAAC,CACF,CAAC;IACF,QAAQ,CACN,QAAQ,EACR;QACE,EAAE,CACA,sBAAsB,EACtB;YACE,OAAO;iBACJ,MAAM,CAAC,EAAE;iBACT,EAAE,CAAC,OAAO,CAAC;iBACX,GAAG,CAAC,KAAK,CAAC;QACf,CAAC,CACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -1,2 +0,0 @@
1
- import "chai/register-should.js";
2
- //# sourceMappingURL=index.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../src/scope/index.spec.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC"}
@@ -1,86 +0,0 @@
1
- import "chai/register-should.js";
2
- import { scopes } from "./index.js";
3
- describe("Scopes", function () {
4
- describe("shape", function () {
5
- it("is a non-empty array", function () {
6
- scopes
7
- .should.be
8
- .an("array")
9
- .not.empty;
10
- });
11
- });
12
- describe("members", function () {
13
- it("are unique", function () {
14
- scopes
15
- .length
16
- .should
17
- .equal(new Set(scopes)
18
- .size);
19
- });
20
- });
21
- describe("order", function () {
22
- it("`jsoncc` > `jsonc` > `json`", function () {
23
- scopes
24
- .should
25
- .include
26
- .members([
27
- "jsoncc",
28
- "jsonc",
29
- "json",
30
- ]);
31
- scopes
32
- .indexOf("jsoncc")
33
- .should.be
34
- .greaterThan(scopes
35
- .indexOf("jsonc"));
36
- scopes
37
- .indexOf("jsonc")
38
- .should.be
39
- .greaterThan(scopes
40
- .indexOf("json"));
41
- });
42
- it("`mocha` > `ts`", function () {
43
- scopes
44
- .should
45
- .include
46
- .members([
47
- "mocha",
48
- "ts",
49
- ]);
50
- scopes
51
- .indexOf("mocha")
52
- .should.be
53
- .greaterThan(scopes
54
- .indexOf("ts"));
55
- });
56
- it("`svelte` > `ts`", function () {
57
- scopes
58
- .should
59
- .include
60
- .members([
61
- "svelte",
62
- "ts",
63
- ]);
64
- scopes
65
- .indexOf("svelte")
66
- .should.be
67
- .greaterThan(scopes
68
- .indexOf("ts"));
69
- });
70
- it("`ts` > `js`", function () {
71
- scopes
72
- .should
73
- .include
74
- .members([
75
- "ts",
76
- "js",
77
- ]);
78
- scopes
79
- .indexOf("ts")
80
- .should.be
81
- .greaterThan(scopes
82
- .indexOf("js"));
83
- });
84
- });
85
- });
86
- //# sourceMappingURL=index.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../src/scope/index.spec.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;AAE3B,QAAQ,CACN,QAAQ,EACR;IACE,QAAQ,CACN,OAAO,EACP;QACE,EAAE,CACA,sBAAsB,EACtB;YACE,MAAM;iBACH,MAAM,CAAC,EAAE;iBACT,EAAE,CAAC,OAAO,CAAC;iBACX,GAAG,CAAC,KAAK,CAAC;QACf,CAAC,CACF,CAAC;IACJ,CAAC,CACF,CAAC;IACF,QAAQ,CACN,SAAS,EACT;QACE,EAAE,CACA,YAAY,EACZ;YACE,MAAM;iBACH,MAAM;iBACN,MAAM;iBACN,KAAK,CACJ,IAAI,GAAG,CAAC,MAAM,CAAC;iBACZ,IAAI,CACR,CAAC;QACN,CAAC,CACF,CAAC;IACJ,CAAC,CACF,CAAC;IACF,QAAQ,CACN,OAAO,EACP;QACE,EAAE,CACA,6BAA6B,EAC7B;YACE,MAAM;iBACH,MAAM;iBACN,OAAO;iBACP,OAAO,CACN;gBACE,QAAQ;gBACR,OAAO;gBACP,MAAM;aACP,CACF,CAAC;YACJ,MAAM;iBACH,OAAO,CAAC,QAAQ,CAAC;iBACjB,MAAM,CAAC,EAAE;iBACT,WAAW,CACV,MAAM;iBACH,OAAO,CAAC,OAAO,CAAC,CACpB,CAAC;YACJ,MAAM;iBACH,OAAO,CAAC,OAAO,CAAC;iBAChB,MAAM,CAAC,EAAE;iBACT,WAAW,CACV,MAAM;iBACH,OAAO,CAAC,MAAM,CAAC,CACnB,CAAC;QACN,CAAC,CACF,CAAC;QACF,EAAE,CACA,gBAAgB,EAChB;YACE,MAAM;iBACH,MAAM;iBACN,OAAO;iBACP,OAAO,CACN;gBACE,OAAO;gBACP,IAAI;aACL,CACF,CAAC;YACJ,MAAM;iBACH,OAAO,CAAC,OAAO,CAAC;iBAChB,MAAM,CAAC,EAAE;iBACT,WAAW,CACV,MAAM;iBACH,OAAO,CAAC,IAAI,CAAC,CACjB,CAAC;QACN,CAAC,CACF,CAAC;QACF,EAAE,CACA,iBAAiB,EACjB;YACE,MAAM;iBACH,MAAM;iBACN,OAAO;iBACP,OAAO,CACN;gBACE,QAAQ;gBACR,IAAI;aACL,CACF,CAAC;YACJ,MAAM;iBACH,OAAO,CAAC,QAAQ,CAAC;iBACjB,MAAM,CAAC,EAAE;iBACT,WAAW,CACV,MAAM;iBACH,OAAO,CAAC,IAAI,CAAC,CACjB,CAAC;QACN,CAAC,CACF,CAAC;QACF,EAAE,CACA,aAAa,EACb;YACE,MAAM;iBACH,MAAM;iBACN,OAAO;iBACP,OAAO,CACN;gBACE,IAAI;gBACJ,IAAI;aACL,CACF,CAAC;YACJ,MAAM;iBACH,OAAO,CAAC,IAAI,CAAC;iBACb,MAAM,CAAC,EAAE;iBACT,WAAW,CACV,MAAM;iBACH,OAAO,CAAC,IAAI,CAAC,CACjB,CAAC;QACN,CAAC,CACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -1,2 +0,0 @@
1
- import "chai/register-should.js";
2
- //# sourceMappingURL=tree.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree.spec.d.ts","sourceRoot":"","sources":["../../src/scope/tree.spec.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC"}
@@ -1,78 +0,0 @@
1
- import "chai/register-should.js";
2
- import { tree } from "./tree.js";
3
- const nodes = tree.map(([scope]) => scope);
4
- describe("Tree", function () {
5
- describe("shape", function () {
6
- it("is an array", function () {
7
- tree
8
- .should.be
9
- .an("array");
10
- });
11
- });
12
- describe("members", function () {
13
- it("are unique", function () {
14
- tree
15
- .length
16
- .should
17
- .equal(new Set(nodes)
18
- .size);
19
- });
20
- it("omit `js`", function () {
21
- nodes
22
- .should
23
- .not.include
24
- .members(["js"]);
25
- });
26
- });
27
- describe("order", function () {
28
- it("`jsoncc` < [`jsonc`]?", function () {
29
- nodes
30
- .should
31
- .include
32
- .members(["jsoncc"]);
33
- nodes
34
- .indexOf("jsoncc")
35
- .should.be
36
- .lessThan(nodes.indexOf("jsonc") * tree.length);
37
- });
38
- it("`mocha` < `ts`", function () {
39
- nodes
40
- .should
41
- .include
42
- .members([
43
- "mocha",
44
- "ts",
45
- ]);
46
- nodes
47
- .indexOf("mocha")
48
- .should.be
49
- .lessThan(nodes
50
- .indexOf("ts"));
51
- });
52
- it("`svelte` < `ts`", function () {
53
- nodes
54
- .should
55
- .include
56
- .members([
57
- "svelte",
58
- "ts",
59
- ]);
60
- nodes
61
- .indexOf("svelte")
62
- .should.be
63
- .lessThan(nodes
64
- .indexOf("ts"));
65
- });
66
- it("`ts` is last", function () {
67
- nodes
68
- .should
69
- .include
70
- .members(["ts"]);
71
- nodes
72
- .indexOf("ts")
73
- .should
74
- .equal(tree.length - 1);
75
- });
76
- });
77
- });
78
- //# sourceMappingURL=tree.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree.spec.js","sourceRoot":"","sources":["../../src/scope/tree.spec.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AAE3C,QAAQ,CACN,MAAM,EACN;IACE,QAAQ,CACN,OAAO,EACP;QACE,EAAE,CACA,aAAa,EACb;YACE,IAAI;iBACD,MAAM,CAAC,EAAE;iBACT,EAAE,CAAC,OAAO,CAAC,CAAC;QACjB,CAAC,CACF,CAAC;IACJ,CAAC,CACF,CAAC;IACF,QAAQ,CACN,SAAS,EACT;QACE,EAAE,CACA,YAAY,EACZ;YACE,IAAI;iBACD,MAAM;iBACN,MAAM;iBACN,KAAK,CACJ,IAAI,GAAG,CAAC,KAAK,CAAC;iBACX,IAAI,CACR,CAAC;QACN,CAAC,CACF,CAAC;QACF,EAAE,CACA,WAAW,EACX;YACE,KAAK;iBACF,MAAM;iBACN,GAAG,CAAC,OAAO;iBACX,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACrB,CAAC,CACF,CAAC;IACJ,CAAC,CACF,CAAC;IACF,QAAQ,CACN,OAAO,EACP;QACE,EAAE,CACA,uBAAuB,EACvB;YACE,KAAK;iBACF,MAAM;iBACN,OAAO;iBACP,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvB,KAAK;iBACF,OAAO,CAAC,QAAQ,CAAC;iBACjB,MAAM,CAAC,EAAE;iBACT,QAAQ,CACP,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CACrC,CAAC;QACN,CAAC,CACF,CAAC;QACF,EAAE,CACA,gBAAgB,EAChB;YACE,KAAK;iBACF,MAAM;iBACN,OAAO;iBACP,OAAO,CACN;gBACE,OAAO;gBACP,IAAI;aACL,CACF,CAAC;YACJ,KAAK;iBACF,OAAO,CAAC,OAAO,CAAC;iBAChB,MAAM,CAAC,EAAE;iBACT,QAAQ,CACP,KAAK;iBACF,OAAO,CAAC,IAAI,CAAC,CACjB,CAAC;QACN,CAAC,CACF,CAAC;QACF,EAAE,CACA,iBAAiB,EACjB;YACE,KAAK;iBACF,MAAM;iBACN,OAAO;iBACP,OAAO,CACN;gBACE,QAAQ;gBACR,IAAI;aACL,CACF,CAAC;YACJ,KAAK;iBACF,OAAO,CAAC,QAAQ,CAAC;iBACjB,MAAM,CAAC,EAAE;iBACT,QAAQ,CACP,KAAK;iBACF,OAAO,CAAC,IAAI,CAAC,CACjB,CAAC;QACN,CAAC,CACF,CAAC;QACF,EAAE,CACA,cAAc,EACd;YACE,KAAK;iBACF,MAAM;iBACN,OAAO;iBACP,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACnB,KAAK;iBACF,OAAO,CAAC,IAAI,CAAC;iBACb,MAAM;iBACN,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5B,CAAC,CACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC,CACF,CAAC"}