From 1cad772c64c34b130e3a71e2db563e2e698d1bcd Mon Sep 17 00:00:00 2001
From: Michael Kainz <michael.kainz@open-xchange.com>
Date: Thu, 25 Apr 2024 09:15:24 +0200
Subject: [PATCH] Use eslint meta package

---
 .npmrc                       |   1 +
 .vscode/settings.json        |   7 +-
 eslint.config.js             |  39 ++--------
 integration/eslint.config.js |  28 -------
 package.json                 |  11 +--
 pnpm-lock.yaml               | 140 +++++++++++------------------------
 spec/eslint.config.js        |  28 -------
 7 files changed, 57 insertions(+), 197 deletions(-)
 create mode 100644 .npmrc
 delete mode 100644 integration/eslint.config.js
 delete mode 100644 spec/eslint.config.js

diff --git a/.npmrc b/.npmrc
new file mode 100644
index 0000000..9c8bb32
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1 @@
+public-hoist-pattern[]=*eslint*
diff --git a/.vscode/settings.json b/.vscode/settings.json
index bc21604..d6bc240 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,5 +1,10 @@
 {
   "yaml.customTags": [
     "!reference sequence"
-  ]
+  ],
+  "eslint.experimental.useFlatConfig": true,
+  "eslint.format.enable": true,
+  "editor.codeActionsOnSave": {
+    "source.fixAll.eslint": "explicit"
+  }
 }
diff --git a/eslint.config.js b/eslint.config.js
index 3ceca14..e741036 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -18,42 +18,13 @@
  * Any use of the work other than as authorized under this license or copyright law is prohibited.
  */
 
-import { FlatCompat } from '@eslint/eslintrc'
-import { fileURLToPath } from 'url'
-import path from 'path'
-
-import licenseHeader from 'eslint-plugin-license-header'
-import specConfig from './spec/eslint.config.js'
-import integrationConfig from './integration/eslint.config.js'
-
-const __filename = fileURLToPath(import.meta.url)
-const __dirname = path.dirname(__filename)
-
-const flatCompat = new FlatCompat({
-  baseDirectory: __dirname
-})
+import frontendStandard from '@open-xchange/lint'
+import mochaPlugin from 'eslint-plugin-mocha'
 
 export default [
-  ...flatCompat.extends('eslint-config-standard'),
-  ...flatCompat.extends('plugin:chai-friendly/recommended'),
-  ...specConfig,
-  ...integrationConfig,
+  ...frontendStandard,
   {
-    languageOptions: {
-      globals: {
-        browser: true,
-        es2022: true
-      }
-    },
-    plugins: {
-      licenseHeader
-    },
-    ignores: [
-      'public/*',
-      'node_modules/*'
-    ],
-    rules: {
-      'licenseHeader/header': ['error', path.join(__dirname, 'license-header')]
-    }
+    files: ['integration/**/*_test.js', 'spec/**/*_test.js'],
+    ...mochaPlugin.configs.flat.recommended
   }
 ]
diff --git a/integration/eslint.config.js b/integration/eslint.config.js
deleted file mode 100644
index 64923ba..0000000
--- a/integration/eslint.config.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * @copyright Copyright (c) Open-Xchange GmbH, Germany <info@open-xchange.com>
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with OX App Suite. If not, see <https://www.gnu.org/licenses/agpl-3.0.txt>.
- *
- * Any use of the work other than as authorized under this license or copyright law is prohibited.
- */
-
-import mochaPlugin from 'eslint-plugin-mocha'
-
-export default [
-  mochaPlugin.configs.flat.recommended,
-  {
-    files: ['integration/**/*_test.js']
-  }
-]
diff --git a/package.json b/package.json
index 0ec1c89..d565f72 100644
--- a/package.json
+++ b/package.json
@@ -41,18 +41,9 @@
     "prom-client": "^15.1.1"
   },
   "devDependencies": {
-    "@eslint/eslintrc": "^3.0.2",
     "@open-xchange/lint": "^0.0.8",
     "@types/ioredis-mock": "^8.2.5",
     "chai": "^5.1.0",
-    "eslint": "^9.0.0",
-    "eslint-config-standard": "^17.1.0",
-    "eslint-plugin-chai-friendly": "^0.7.4",
-    "eslint-plugin-import": "^2.29.1",
-    "eslint-plugin-license-header": "^0.6.1",
-    "eslint-plugin-mocha": "^10.4.3",
-    "eslint-plugin-n": "^17.0.0",
-    "eslint-plugin-promise": "^6.1.1",
     "husky": "^9.0.11",
     "ioredis-mock": "^8.9.0",
     "lint-staged": "^15.2.2",
@@ -109,4 +100,4 @@
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 94f9685..e70b7a2 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -15,7 +15,7 @@ importers:
     dependencies:
       '@fastify/autoload':
         specifier: ^5.8.0
-        version: 5.8.0
+        version: 5.8.2
       '@fastify/cors':
         specifier: ^9.0.1
         version: 9.0.1
@@ -74,9 +74,6 @@ importers:
         specifier: ^15.1.1
         version: 15.1.2
     devDependencies:
-      '@eslint/eslintrc':
-        specifier: ^3.0.2
-        version: 3.0.2
       '@open-xchange/lint':
         specifier: ^0.0.8
         version: 0.0.8
@@ -86,30 +83,6 @@ importers:
       chai:
         specifier: ^5.1.0
         version: 5.1.0
-      eslint:
-        specifier: ^9.0.0
-        version: 9.2.0
-      eslint-config-standard:
-        specifier: ^17.1.0
-        version: 17.1.0(eslint-plugin-import@2.29.1(eslint@9.2.0))(eslint-plugin-n@17.3.1(eslint@9.2.0))(eslint-plugin-promise@6.1.1(eslint@9.2.0))(eslint@9.2.0)
-      eslint-plugin-chai-friendly:
-        specifier: ^0.7.4
-        version: 0.7.4(eslint@9.2.0)
-      eslint-plugin-import:
-        specifier: ^2.29.1
-        version: 2.29.1(eslint@9.2.0)
-      eslint-plugin-license-header:
-        specifier: ^0.6.1
-        version: 0.6.1
-      eslint-plugin-mocha:
-        specifier: ^10.4.3
-        version: 10.4.3(eslint@9.2.0)
-      eslint-plugin-n:
-        specifier: ^17.0.0
-        version: 17.3.1(eslint@9.2.0)
-      eslint-plugin-promise:
-        specifier: ^6.1.1
-        version: 6.1.1(eslint@9.2.0)
       husky:
         specifier: ^9.0.11
         version: 9.0.11
@@ -166,8 +139,8 @@ packages:
   '@fastify/ajv-compiler@3.5.0':
     resolution: {integrity: sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==}
 
-  '@fastify/autoload@5.8.0':
-    resolution: {integrity: sha512-bF86vl+1Kk91S41WIL9NrKhcugGQg/cQ959aTaombkCjA+9YAbgVCKKu2lRqtMsosDZ0CNRfVnaLYoHQIDUI2A==}
+  '@fastify/autoload@5.8.2':
+    resolution: {integrity: sha512-AX555mbAvtYPWZhOJG73y8zV39wH+wEnOcgg13xfGoHJ46rdsfx0Rs8Yfi5exE4bBqdzcM72iIZdhTbLbEqScA==}
 
   '@fastify/cors@9.0.1':
     resolution: {integrity: sha512-YY9Ho3ovI+QHIL2hW+9X4XqQjXLjJqsU+sMV/xFsxZkE8p3GNnYVFpoOxF7SsP5ZL76gwvbo3V9L+FIekBGU4Q==}
@@ -314,8 +287,8 @@ packages:
   '@types/json5@0.0.29':
     resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
 
-  '@types/node@20.12.7':
-    resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==}
+  '@types/node@20.12.10':
+    resolution: {integrity: sha512-Eem5pH9pmWBHoGAT8Dr5fdc5rYA+4NAovdM4EktRPVAAiJhmWWfQrA0cFhAbOsQdSfIHjAud6YdkbL69+zSKjw==}
 
   abort-controller@3.0.0:
     resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
@@ -702,15 +675,6 @@ packages:
     peerDependencies:
       eslint: '>=6.0.0'
 
-  eslint-config-standard@17.1.0:
-    resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==}
-    engines: {node: '>=12.0.0'}
-    peerDependencies:
-      eslint: ^8.0.1
-      eslint-plugin-import: ^2.25.2
-      eslint-plugin-n: '^15.0.0 || ^16.0.0 '
-      eslint-plugin-promise: ^6.0.0
-
   eslint-import-resolver-node@0.3.9:
     resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
 
@@ -735,12 +699,6 @@ packages:
       eslint-import-resolver-webpack:
         optional: true
 
-  eslint-plugin-chai-friendly@0.7.4:
-    resolution: {integrity: sha512-PGPjJ8diYgX1mjLxGJqRop2rrGwZRKImoEOwUOgoIhg0p80MkTaqvmFLe5TF7/iagZHggasvIfQlUyHIhK/PYg==}
-    engines: {node: '>=0.10.0'}
-    peerDependencies:
-      eslint: '>=3.0.0'
-
   eslint-plugin-codeceptjs@1.3.0:
     resolution: {integrity: sha512-KdRRVJxzE1Ts9SNMKn1Zt3clA1D+hl49zugiq0rncuAp0SCUlkLEacxf0nR16q4KOI1t+5kF+J9goF4iN/m+GA==}
     engines: {node: '>=0.10.0'}
@@ -776,8 +734,8 @@ packages:
     peerDependencies:
       eslint: '>=7.0.0'
 
-  eslint-plugin-n@17.3.1:
-    resolution: {integrity: sha512-25+HTtKe1F8U/M4ERmdzbz/xkm/gaY0OYC8Fcv1z/WvpLJ8Xfh9LzJ13JV5uj4QyCUD8kOPJrNjn/3y+tc57Vw==}
+  eslint-plugin-n@17.5.0:
+    resolution: {integrity: sha512-r7i+NY+RVXQi4Q7sKCG5H4464saJWddDk7QFQjtj+wU//sf15QCq3M8LwZU2yiE45yhVUT9DXW+8AbXRQKJLPQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       eslint: '>=8.23.0'
@@ -876,8 +834,8 @@ packages:
   fast-json-stable-stringify@2.1.0:
     resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
 
-  fast-json-stringify@5.15.0:
-    resolution: {integrity: sha512-BUEAAyDKb64u+kmkINYfXUUiKjBKerSmVu/dzotfaWSHBxR44JFrOZgkhMO6VxDhDfiuAoi8mx4drd5nvNdA4Q==}
+  fast-json-stringify@5.15.1:
+    resolution: {integrity: sha512-JopGtkvvguRqrS4gHXSSA2jf4pDgOZkeBAkLO1LbzOpiOMo7/kugoR+KiWifpLpluaVeYDkAuxCJOj4Gyc6L9A==}
 
   fast-levenshtein@2.0.6:
     resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
@@ -926,8 +884,8 @@ packages:
     resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
     engines: {node: '>=8'}
 
-  find-my-way@8.1.0:
-    resolution: {integrity: sha512-41QwjCGcVTODUmLLqTMeoHeiozbMXYMAE1CKFiDyi9zVZ2Vjh0yz3MF0WQZoIb+cmzP/XlbFjlF2NtJmvZHznA==}
+  find-my-way@8.2.0:
+    resolution: {integrity: sha512-HdWXgFYc6b1BJcOBDBwjqWuHJj1WYiqrxSh25qtU4DabpMFdj/gSunNBQb83t+8Zt67D7CXEzJWTkxaShMTMOA==}
     engines: {node: '>=14'}
 
   find-up@5.0.0:
@@ -1001,8 +959,8 @@ packages:
     resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
     engines: {node: '>= 0.4'}
 
-  get-tsconfig@4.7.3:
-    resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==}
+  get-tsconfig@4.7.4:
+    resolution: {integrity: sha512-ofbkKj+0pjXjhejr007J/fLf+sW+8H7K5GCm+msC8q3IpvgjobpyPqSRFemNyIMxklC0zeJpi7VDFna19FacvQ==}
 
   glob-parent@5.1.2:
     resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
@@ -1033,8 +991,8 @@ packages:
     resolution: {integrity: sha512-926gJqg+4mkxwYKiFvoomM4J0kWESfk3qfTvRL2/oc/tK/eTDBbrfcKnSa2KtfdxB5onoL7D3A3qIHQFpd4+UA==}
     engines: {node: '>=18'}
 
-  globalthis@1.0.3:
-    resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
+  globalthis@1.0.4:
+    resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
     engines: {node: '>= 0.4'}
 
   gopd@1.0.1:
@@ -1412,8 +1370,8 @@ packages:
   minimist@1.2.8:
     resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
 
-  minipass@7.0.4:
-    resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
+  minipass@7.1.0:
+    resolution: {integrity: sha512-oGZRv2OT1lO2UF1zUcwdTb3wqUwI0kBGTgt/T7OdSj6M6N5m3o5uPf0AIW6lVxGGoiWUR7e2AwTE+xiwK8WQig==}
     engines: {node: '>=16 || 14 >=14.17'}
 
   mkdirp@1.0.4:
@@ -1702,9 +1660,9 @@ packages:
     resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
 
-  ret@0.2.2:
-    resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==}
-    engines: {node: '>=4'}
+  ret@0.4.3:
+    resolution: {integrity: sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==}
+    engines: {node: '>=10'}
 
   reusify@1.0.4:
     resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
@@ -1731,8 +1689,8 @@ packages:
     resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
     engines: {node: '>= 0.4'}
 
-  safe-regex2@2.0.0:
-    resolution: {integrity: sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==}
+  safe-regex2@3.1.0:
+    resolution: {integrity: sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==}
 
   safe-stable-stringify@2.4.3:
     resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
@@ -2105,7 +2063,7 @@ snapshots:
       ajv-formats: 2.1.1(ajv@8.13.0)
       fast-uri: 2.3.0
 
-  '@fastify/autoload@5.8.0': {}
+  '@fastify/autoload@5.8.2': {}
 
   '@fastify/cors@9.0.1':
     dependencies:
@@ -2116,7 +2074,7 @@ snapshots:
 
   '@fastify/fast-json-stringify-compiler@4.3.0':
     dependencies:
-      fast-json-stringify: 5.15.0
+      fast-json-stringify: 5.15.1
 
   '@fastify/formbody@7.4.0':
     dependencies:
@@ -2255,7 +2213,7 @@ snapshots:
       eslint-plugin-jsdoc: 48.2.3(eslint@9.2.0)
       eslint-plugin-license-header: 0.6.1
       eslint-plugin-mocha: 10.4.3(eslint@9.2.0)
-      eslint-plugin-n: 17.3.1(eslint@9.2.0)
+      eslint-plugin-n: 17.5.0(eslint@9.2.0)
       eslint-plugin-promise: 6.1.1(eslint@9.2.0)
       eslint-plugin-vue: 9.25.0(eslint@9.2.0)
     transitivePeerDependencies:
@@ -2291,14 +2249,14 @@ snapshots:
 
   '@types/ioredis-mock@8.2.5':
     dependencies:
-      '@types/node': 20.12.7
+      '@types/node': 20.12.10
       ioredis: 5.4.1
     transitivePeerDependencies:
       - supports-color
 
   '@types/json5@0.0.29': {}
 
-  '@types/node@20.12.7':
+  '@types/node@20.12.10':
     dependencies:
       undici-types: 5.26.5
 
@@ -2658,7 +2616,7 @@ snapshots:
       function.prototype.name: 1.1.6
       get-intrinsic: 1.2.4
       get-symbol-description: 1.0.2
-      globalthis: 1.0.3
+      globalthis: 1.0.4
       gopd: 1.0.1
       has-property-descriptors: 1.0.2
       has-proto: 1.0.3
@@ -2727,13 +2685,6 @@ snapshots:
       eslint: 9.2.0
       semver: 7.6.0
 
-  eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1(eslint@9.2.0))(eslint-plugin-n@17.3.1(eslint@9.2.0))(eslint-plugin-promise@6.1.1(eslint@9.2.0))(eslint@9.2.0):
-    dependencies:
-      eslint: 9.2.0
-      eslint-plugin-import: 2.29.1(eslint@9.2.0)
-      eslint-plugin-n: 17.3.1(eslint@9.2.0)
-      eslint-plugin-promise: 6.1.1(eslint@9.2.0)
-
   eslint-import-resolver-node@0.3.9:
     dependencies:
       debug: 4.3.4(supports-color@8.1.1)
@@ -2751,10 +2702,6 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  eslint-plugin-chai-friendly@0.7.4(eslint@9.2.0):
-    dependencies:
-      eslint: 9.2.0
-
   eslint-plugin-codeceptjs@1.3.0:
     dependencies:
       requireindex: 1.1.0
@@ -2817,13 +2764,13 @@ snapshots:
       globals: 13.24.0
       rambda: 7.5.0
 
-  eslint-plugin-n@17.3.1(eslint@9.2.0):
+  eslint-plugin-n@17.5.0(eslint@9.2.0):
     dependencies:
       '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0)
       enhanced-resolve: 5.16.0
       eslint: 9.2.0
       eslint-plugin-es-x: 7.6.0(eslint@9.2.0)
-      get-tsconfig: 4.7.3
+      get-tsconfig: 4.7.4
       globals: 15.1.0
       ignore: 5.3.1
       minimatch: 9.0.4
@@ -2957,7 +2904,7 @@ snapshots:
 
   fast-json-stable-stringify@2.1.0: {}
 
-  fast-json-stringify@5.15.0:
+  fast-json-stringify@5.15.1:
     dependencies:
       '@fastify/merge-json-schemas': 0.1.1
       ajv: 8.13.0
@@ -2997,8 +2944,8 @@ snapshots:
       abstract-logging: 2.0.1
       avvio: 8.3.0
       fast-content-type-parse: 1.1.0
-      fast-json-stringify: 5.15.0
-      find-my-way: 8.1.0
+      fast-json-stringify: 5.15.1
+      find-my-way: 8.2.0
       light-my-request: 5.13.0
       pino: 8.21.0
       process-warning: 3.0.0
@@ -3032,11 +2979,11 @@ snapshots:
     dependencies:
       to-regex-range: 5.0.1
 
-  find-my-way@8.1.0:
+  find-my-way@8.2.0:
     dependencies:
       fast-deep-equal: 3.1.3
       fast-querystring: 1.1.2
-      safe-regex2: 2.0.0
+      safe-regex2: 3.1.0
 
   find-up@5.0.0:
     dependencies:
@@ -3103,7 +3050,7 @@ snapshots:
       es-errors: 1.3.0
       get-intrinsic: 1.2.4
 
-  get-tsconfig@4.7.3:
+  get-tsconfig@4.7.4:
     dependencies:
       resolve-pkg-maps: 1.0.0
 
@@ -3120,7 +3067,7 @@ snapshots:
       foreground-child: 3.1.1
       jackspeak: 2.3.6
       minimatch: 9.0.4
-      minipass: 7.0.4
+      minipass: 7.1.0
       path-scurry: 1.10.2
 
   glob@8.1.0:
@@ -3139,9 +3086,10 @@ snapshots:
 
   globals@15.1.0: {}
 
-  globalthis@1.0.3:
+  globalthis@1.0.4:
     dependencies:
       define-properties: 1.2.1
+      gopd: 1.0.1
 
   gopd@1.0.1:
     dependencies:
@@ -3504,7 +3452,7 @@ snapshots:
 
   minimist@1.2.8: {}
 
-  minipass@7.0.4: {}
+  minipass@7.1.0: {}
 
   mkdirp@1.0.4: {}
 
@@ -3686,7 +3634,7 @@ snapshots:
   path-scurry@1.10.2:
     dependencies:
       lru-cache: 10.2.2
-      minipass: 7.0.4
+      minipass: 7.1.0
 
   path-to-regexp@6.2.2: {}
 
@@ -3823,7 +3771,7 @@ snapshots:
       onetime: 5.1.2
       signal-exit: 3.0.7
 
-  ret@0.2.2: {}
+  ret@0.4.3: {}
 
   reusify@1.0.4: {}
 
@@ -3854,9 +3802,9 @@ snapshots:
       es-errors: 1.3.0
       is-regex: 1.1.4
 
-  safe-regex2@2.0.0:
+  safe-regex2@3.1.0:
     dependencies:
-      ret: 0.2.2
+      ret: 0.4.3
 
   safe-stable-stringify@2.4.3: {}
 
diff --git a/spec/eslint.config.js b/spec/eslint.config.js
deleted file mode 100644
index 8264e3c..0000000
--- a/spec/eslint.config.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * @copyright Copyright (c) Open-Xchange GmbH, Germany <info@open-xchange.com>
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with OX App Suite. If not, see <https://www.gnu.org/licenses/agpl-3.0.txt>.
- *
- * Any use of the work other than as authorized under this license or copyright law is prohibited.
- */
-
-import mochaPlugin from 'eslint-plugin-mocha'
-
-export default [
-  mochaPlugin.configs.flat.recommended,
-  {
-    files: ['spec/**/*_test.js']
-  }
-]
-- 
GitLab