diff options
author | Vitaly Takmazov | 2023-05-31 07:21:46 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2023-05-31 07:21:46 +0300 |
commit | 41d02443a7a86fec3e5cf520eabeee8cfb477ca0 (patch) | |
tree | 81ad5e5ca256acdebfcb356bf5f38a50e6fc5551 | |
parent | f2a7ea3af919548d41383734e8a3667086a44bcc (diff) |
ESLint: switch back to default parser
-rw-r--r-- | .eslintrc | 14 | ||||
-rw-r--r-- | package-lock.json | 79 | ||||
-rw-r--r-- | package.json | 3 | ||||
-rw-r--r-- | vnext/server/webpack.config.js | 2 | ||||
-rw-r--r-- | vnext/webpack.config.js | 2 |
5 files changed, 76 insertions, 24 deletions
@@ -8,9 +8,7 @@ "plugin:react/jsx-runtime", "plugin:react-hooks/recommended", "plugin:jest/recommended", - "plugin:jest-dom/recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended" + "plugin:jest-dom/recommended" ], "env": { "browser": true, @@ -25,8 +23,7 @@ "testing-library", "jest", "jest-dom", - "jsdoc", - "@typescript-eslint" + "jsdoc" ], "settings": { "react": { @@ -43,11 +40,7 @@ "extends": ["plugin:testing-library/react"] } ], - "parser": "@typescript-eslint/parser", "parserOptions": { - "project": [ - "jsconfig.json" - ], "sourceType": "module", "ecmaFeatures": { "jsx": true @@ -69,8 +62,7 @@ "jsdoc/require-param-description": "off", "promise/always-return": "off", "semi": ["error", "never", { "beforeStatementContinuationChars": "always"}], - "semi-style": ["error", "last"], - "@typescript-eslint/no-floating-promises": "error" + "semi-style": ["error", "last"] }, "root": true } diff --git a/package-lock.json b/package-lock.json index a15347e6..afdf96ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,6 @@ "@swc/jest": "^0.2.26", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^14.0.0", - "@typescript-eslint/eslint-plugin": "^5.59.8", "autoprefixer": "^10.4.14", "babel-loader": "^9.1.2", "core-js": "^3.30.2", @@ -4739,6 +4738,8 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.8.tgz", "integrity": "sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.4.0", "@typescript-eslint/scope-manager": "5.59.8", @@ -4773,6 +4774,8 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.8.tgz", "integrity": "sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@typescript-eslint/types": "5.59.8", "@typescript-eslint/visitor-keys": "5.59.8" @@ -4790,6 +4793,8 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4803,6 +4808,8 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz", "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@typescript-eslint/types": "5.59.8", "eslint-visitor-keys": "^3.3.0" @@ -4820,6 +4827,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -4835,6 +4844,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.54.0.tgz", "integrity": "sha512-aAVL3Mu2qTi+h/r04WI/5PfNWvO6pdhpeMRWk9R7rEV4mwJNzoWf5CCU5vDKBsPIFQFjEq1xg7XBI2rjiMXQbQ==", "dev": true, + "optional": true, "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "5.54.0", @@ -4863,6 +4873,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz", "integrity": "sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==", "dev": true, + "optional": true, "peer": true, "dependencies": { "@typescript-eslint/types": "5.54.0", @@ -4881,6 +4892,8 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.8.tgz", "integrity": "sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@typescript-eslint/typescript-estree": "5.59.8", "@typescript-eslint/utils": "5.59.8", @@ -4908,6 +4921,8 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4921,6 +4936,8 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz", "integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@typescript-eslint/types": "5.59.8", "@typescript-eslint/visitor-keys": "5.59.8", @@ -4948,6 +4965,8 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz", "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@typescript-eslint/types": "5.59.8", "eslint-visitor-keys": "^3.3.0" @@ -4965,6 +4984,8 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -4985,6 +5006,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -5000,6 +5023,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.0.tgz", "integrity": "sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==", "dev": true, + "optional": true, "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5014,6 +5038,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz", "integrity": "sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==", "dev": true, + "optional": true, "peer": true, "dependencies": { "@typescript-eslint/types": "5.54.0", @@ -5042,6 +5067,7 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "optional": true, "peer": true, "dependencies": { "array-union": "^2.1.0", @@ -5063,6 +5089,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, + "optional": true, "peer": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5214,6 +5241,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz", "integrity": "sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==", "dev": true, + "optional": true, "peer": true, "dependencies": { "@typescript-eslint/types": "5.54.0", @@ -9635,7 +9663,9 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/graphemer": { "version": "1.4.0", @@ -13394,7 +13424,9 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/negotiator": { "version": "0.6.3", @@ -21996,6 +22028,8 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.8.tgz", "integrity": "sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "@eslint-community/regexpp": "^4.4.0", "@typescript-eslint/scope-manager": "5.59.8", @@ -22014,6 +22048,8 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.8.tgz", "integrity": "sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==", "dev": true, + "optional": true, + "peer": true, "requires": { "@typescript-eslint/types": "5.59.8", "@typescript-eslint/visitor-keys": "5.59.8" @@ -22023,13 +22059,17 @@ "version": "5.59.8", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "@typescript-eslint/visitor-keys": { "version": "5.59.8", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz", "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "@typescript-eslint/types": "5.59.8", "eslint-visitor-keys": "^3.3.0" @@ -22040,6 +22080,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, + "optional": true, + "peer": true, "requires": { "lru-cache": "^6.0.0" } @@ -22051,6 +22093,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.54.0.tgz", "integrity": "sha512-aAVL3Mu2qTi+h/r04WI/5PfNWvO6pdhpeMRWk9R7rEV4mwJNzoWf5CCU5vDKBsPIFQFjEq1xg7XBI2rjiMXQbQ==", "dev": true, + "optional": true, "peer": true, "requires": { "@typescript-eslint/scope-manager": "5.54.0", @@ -22064,6 +22107,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz", "integrity": "sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==", "dev": true, + "optional": true, "peer": true, "requires": { "@typescript-eslint/types": "5.54.0", @@ -22075,6 +22119,8 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.8.tgz", "integrity": "sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==", "dev": true, + "optional": true, + "peer": true, "requires": { "@typescript-eslint/typescript-estree": "5.59.8", "@typescript-eslint/utils": "5.59.8", @@ -22086,13 +22132,17 @@ "version": "5.59.8", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "@typescript-eslint/typescript-estree": { "version": "5.59.8", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz", "integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==", "dev": true, + "optional": true, + "peer": true, "requires": { "@typescript-eslint/types": "5.59.8", "@typescript-eslint/visitor-keys": "5.59.8", @@ -22108,6 +22158,8 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz", "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "@typescript-eslint/types": "5.59.8", "eslint-visitor-keys": "^3.3.0" @@ -22118,6 +22170,8 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "optional": true, + "peer": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -22132,6 +22186,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dev": true, + "optional": true, + "peer": true, "requires": { "lru-cache": "^6.0.0" } @@ -22143,6 +22199,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.0.tgz", "integrity": "sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==", "dev": true, + "optional": true, "peer": true }, "@typescript-eslint/typescript-estree": { @@ -22150,6 +22207,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz", "integrity": "sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==", "dev": true, + "optional": true, "peer": true, "requires": { "@typescript-eslint/types": "5.54.0", @@ -22166,6 +22224,7 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "optional": true, "peer": true, "requires": { "array-union": "^2.1.0", @@ -22181,6 +22240,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, + "optional": true, "peer": true, "requires": { "lru-cache": "^6.0.0" @@ -22275,6 +22335,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz", "integrity": "sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==", "dev": true, + "optional": true, "peer": true, "requires": { "@typescript-eslint/types": "5.54.0", @@ -25560,7 +25621,9 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "graphemer": { "version": "1.4.0", @@ -28358,7 +28421,9 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "negotiator": { "version": "0.6.3", diff --git a/package.json b/package.json index 05427f0f..22cbe90f 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "compile": "cross-env NODE_ENV=production webpack", - "lint": "eslint src", + "lint": "eslint src/main/assets", "vnext:test": "jest", "vnext:build": "webpack -c vnext/webpack.config.js --mode production", "vnext:build:ssr": "npm run vnext:build && webpack -c vnext/server/webpack.config.js --mode production", @@ -46,7 +46,6 @@ "@swc/jest": "^0.2.26", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^14.0.0", - "@typescript-eslint/eslint-plugin": "^5.59.8", "autoprefixer": "^10.4.14", "babel-loader": "^9.1.2", "core-js": "^3.30.2", diff --git a/vnext/server/webpack.config.js b/vnext/server/webpack.config.js index 77a86abd..9ffb3360 100644 --- a/vnext/server/webpack.config.js +++ b/vnext/server/webpack.config.js @@ -1,5 +1,3 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ - const ESLintPlugin = require('eslint-webpack-plugin') const TerserPlugin = require('terser-webpack-plugin') diff --git a/vnext/webpack.config.js b/vnext/webpack.config.js index 241cc431..810a63bd 100644 --- a/vnext/webpack.config.js +++ b/vnext/webpack.config.js @@ -1,5 +1,3 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ - const ESLintPlugin = require('eslint-webpack-plugin') const HtmlWebpackPlugin = require('html-webpack-plugin') const MiniCssExtractPlugin = require('mini-css-extract-plugin') |