This is an automated email from the ASF dual-hosted git repository.

kinow pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git


The following commit(s) were added to refs/heads/main by this push:
     new c93343b83a [GH-2456]: Change the project type to module, and update 
files to match the import type (import, from ES6)
c93343b83a is described below

commit c93343b83abef715127f8a85d64e7281aab8a739
Author: Bruno P. Kinoshita <[email protected]>
AuthorDate: Mon May 6 22:30:20 2024 +0200

    [GH-2456]: Change the project type to module, and update files to match the 
import type (import, from ES6)
---
 jena-fuseki2/jena-fuseki-ui/.eslintrc.js           |  61 ---------
 .../{cypress.config.js => cypress.config.mjs}      |  31 +++--
 jena-fuseki2/jena-fuseki-ui/eslint.config.js       |  63 +++++++++
 jena-fuseki2/jena-fuseki-ui/package.json           |   8 +-
 jena-fuseki2/jena-fuseki-ui/src/main.js            |   2 +-
 .../mixins/current-dataset-navigation-guards.js    |   1 +
 .../jena-fuseki-ui/src/mixins/list-datasets.js     |   2 -
 .../src/services/mock/json-server.js               |  18 ++-
 .../jena-fuseki-ui/src/views/dataset/Edit.vue      |   1 -
 .../jena-fuseki-ui/src/views/dataset/Query.vue     |   2 +
 .../jena-fuseki-ui/tests/e2e/specs/datasets.cy.js  |  20 ++-
 .../jena-fuseki-ui/tests/e2e/specs/query.cy.js     |  22 +++-
 .../jena-fuseki-ui/tests/e2e/specs/upload.cy.js    |  20 ++-
 jena-fuseki2/jena-fuseki-ui/vite.config.js         |   7 +-
 jena-fuseki2/jena-fuseki-ui/yarn.lock              | 141 ++++++++++-----------
 15 files changed, 215 insertions(+), 184 deletions(-)

diff --git a/jena-fuseki2/jena-fuseki-ui/.eslintrc.js 
b/jena-fuseki2/jena-fuseki-ui/.eslintrc.js
deleted file mode 100644
index a40740b35e..0000000000
--- a/jena-fuseki2/jena-fuseki-ui/.eslintrc.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-module.exports = {
-  root: true,
-  env: {
-    node: true,
-    es2021: true,
-  },
-  extends: [
-    'plugin:vue/vue3-recommended'
-  ],
-  parserOptions: {
-    requireConfigFile: false
-  },
-  rules: {
-    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
-    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
-    'vue/custom-event-name-casing': 'off',
-    'vue/multi-word-component-names': 'off',
-    'vue/no-reserved-component-names': 'off',
-    'vue/order-in-components': 'off',
-    'vue/max-attributes-per-line': 'off',
-    'vue/attributes-order': 'off',
-    'vue/html-self-closing': 'off'
-  },
-  overrides: [
-    {
-      files: [
-        '**/__tests__/*.{j,t}s?(x)',
-        '**/tests/unit/**/*.spec.{j,t}s?(x)'
-      ],
-      env: {
-        mocha: true
-      }
-    },
-    {
-      files: [
-        '**/__tests__/*.{j,t}s?(x)',
-        '**/tests/unit/**/*.spec.{j,t}s?(x)'
-      ],
-      env: {
-        mocha: true
-      }
-    }
-  ]
-}
diff --git a/jena-fuseki2/jena-fuseki-ui/cypress.config.js 
b/jena-fuseki2/jena-fuseki-ui/cypress.config.mjs
similarity index 68%
rename from jena-fuseki2/jena-fuseki-ui/cypress.config.js
rename to jena-fuseki2/jena-fuseki-ui/cypress.config.mjs
index c00726b47d..21cd369e82 100644
--- a/jena-fuseki2/jena-fuseki-ui/cypress.config.js
+++ b/jena-fuseki2/jena-fuseki-ui/cypress.config.mjs
@@ -15,11 +15,14 @@
  * limitations under the License.
  */
 
-const { defineConfig } = require('cypress')
-const vitePreprocessor = require('./tests/e2e/support/vite-preprocessor')
-const path = require('path')
+import {defineConfig} from 'cypress'
+import codeCoverageTask from '@cypress/code-coverage/task.js'
+import vitePreprocessor from 'cypress-vite'
+import {resolve} from 'path'
 
-module.exports = defineConfig({
+const __dirname = resolve()
+
+export default defineConfig({
   video: false,
   defaultCommandTimeout: 20000,
   execTimeout: 30000,
@@ -31,14 +34,18 @@ module.exports = defineConfig({
   e2e: {
     baseUrl: 'http://localhost:' + (process.env.PORT || 8080),
     setupNodeEvents (on, config) {
-      // For test coverage
-      require('@cypress/code-coverage/task')(on, config)
-
-      on(
-        'file:preprocessor',
-        vitePreprocessor(path.resolve(__dirname, 'vite.config.js'))
-      )
-      return require('./tests/e2e/plugins/index.js')(on, config)
+      codeCoverageTask(on, config)
+      on('before:browser:launch', (browser, launchOptions) => {
+        if (browser.name === 'chrome' && browser.isHeadless) {
+          launchOptions.args.push('--window-size=1440,1024', 
'--force-device-scale-factor=1')
+        }
+        return launchOptions
+      })
+      on('file:preprocessor', vitePreprocessor({
+        configFile: resolve(__dirname, './vite.config.js'),
+        mode: 'development',
+      }))
+      return config
     },
     specPattern: 'tests/e2e/specs/**/*.cy.{js,jsx,ts,tsx}',
     fixturesFolder: 'tests/e2e/fixtures',
diff --git a/jena-fuseki2/jena-fuseki-ui/eslint.config.js 
b/jena-fuseki2/jena-fuseki-ui/eslint.config.js
new file mode 100644
index 0000000000..91f53602f7
--- /dev/null
+++ b/jena-fuseki2/jena-fuseki-ui/eslint.config.js
@@ -0,0 +1,63 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the 'License'); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import js from '@eslint/js'
+import pluginVue from 'eslint-plugin-vue'
+
+export default [
+  js.configs.recommended,
+  ...pluginVue.configs['flat/recommended'],
+  {
+    'files': [
+      '**/*.mjs',
+      '**/*.js',
+      '**/*.vue'
+    ],
+    'ignores': [
+      'node_modules/*',
+      'dist/*',
+      'tests/coverage/*'
+    ],
+    'rules': {
+      'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
+      'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
+      'vue/custom-event-name-casing': 'off',
+      'vue/multi-word-component-names': 'off',
+      'vue/no-reserved-component-names': 'off',
+      'vue/order-in-components': 'off',
+      'vue/max-attributes-per-line': 'off',
+      'vue/attributes-order': 'off',
+      'vue/html-self-closing': 'off'
+    },
+    'languageOptions': {
+      'ecmaVersion': 2021,
+      'globals': {
+        'process': true,
+        'describe': true,
+        'it': true,
+        'Cypress': true,
+        'cy': true,
+        'expect': true,
+        'before': true,
+        'beforeEach': true,
+        'after': true,
+        'afterEach': true,
+        '__dirname': true
+      }
+    }
+  }
+];
diff --git a/jena-fuseki2/jena-fuseki-ui/package.json 
b/jena-fuseki2/jena-fuseki-ui/package.json
index e9cef4ebcb..c645ca28d0 100644
--- a/jena-fuseki2/jena-fuseki-ui/package.json
+++ b/jena-fuseki2/jena-fuseki-ui/package.json
@@ -1,5 +1,6 @@
 {
   "name": "apache-jena-fuseki",
+  "type": "module",
   "version": "1.0.0",
   "private": false,
   "description": "Apache Jena Fuseki UI",
@@ -11,7 +12,7 @@
     "build": "vite build",
     "test:unit": "vitest run --environment jsdom",
     "test:e2e": "cross-env FUSEKI_PORT=\"${FUSEKI_PORT:=3030}\" 
PORT=\"${PORT:=8080}\" concurrently --names 'SERVER,CLIENT,TESTS' 
--prefix-colors 'yellow,blue,green' --success 'first' --kill-others 'yarn run 
serve:fuseki' 'yarn wait-on http://localhost:${FUSEKI_PORT}/$/ping && yarn run 
dev' 'yarn wait-on http-get://localhost:${PORT}/index.html && cypress run $@'",
-    "lint": "eslint --ext .js,.vue --ignore-path .gitignore --fix src",
+    "lint": "eslint --fix src",
     "coverage:unit": "yarn run test:unit --coverage",
     "coverage:e2e": "cross-env-shell CYPRESS_COVERAGE=true yarn run test:e2e",
     "serve:fuseki": "nodemon src/services/mock/json-server.js",
@@ -36,8 +37,9 @@
   "devDependencies": {
     "@cypress/code-coverage": "^3.12.4",
     "@cypress/vue": "^6.0.0",
+    "@eslint/js": "^9.2.0",
     "@vitejs/plugin-vue": "^5.0.3",
-    "@vitest/coverage-c8": "^0.33.0",
+    "@vitest/coverage-v8": "^1.6.0",
     "@vue/compiler-sfc": "^3.3.6",
     "@vue/eslint-config-standard": "^8.0.1",
     "@vue/test-utils": "^2.4.1",
@@ -60,7 +62,7 @@
     "sass": "^1.69.4",
     "sinon": "^17.0.0",
     "vite": "^5.0.12",
-    "vite-plugin-istanbul": "6.0.0",
+    "vite-plugin-istanbul": "^6.0.2",
     "vitest": "^1.3.1",
     "wait-on": "^7.0.1"
   },
diff --git a/jena-fuseki2/jena-fuseki-ui/src/main.js 
b/jena-fuseki2/jena-fuseki-ui/src/main.js
index 4a79e75909..8c39356206 100644
--- a/jena-fuseki2/jena-fuseki-ui/src/main.js
+++ b/jena-fuseki2/jena-fuseki-ui/src/main.js
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-import { createApp, h } from 'vue'
+import { createApp } from 'vue'
 import App from './App.vue'
 import router from './router'
 import 'bootstrap/dist/js/bootstrap.bundle.min'
diff --git 
a/jena-fuseki2/jena-fuseki-ui/src/mixins/current-dataset-navigation-guards.js 
b/jena-fuseki2/jena-fuseki-ui/src/mixins/current-dataset-navigation-guards.js
index d5f77d58cf..b79e37ab5f 100644
--- 
a/jena-fuseki2/jena-fuseki-ui/src/mixins/current-dataset-navigation-guards.js
+++ 
b/jena-fuseki2/jena-fuseki-ui/src/mixins/current-dataset-navigation-guards.js
@@ -30,6 +30,7 @@ export default {
     })
   },
   async beforeRouteUpdate (from, to, next) {
+    // eslint-disable-next-line no-unused-vars
     next(async vm => {
       await this.loadCurrentDataset()
     })
diff --git a/jena-fuseki2/jena-fuseki-ui/src/mixins/list-datasets.js 
b/jena-fuseki2/jena-fuseki-ui/src/mixins/list-datasets.js
index a2da558433..6da311b422 100644
--- a/jena-fuseki2/jena-fuseki-ui/src/mixins/list-datasets.js
+++ b/jena-fuseki2/jena-fuseki-ui/src/mixins/list-datasets.js
@@ -15,8 +15,6 @@
  * limitations under the License.
  */
 
-import { BUS } from '@/events'
-
 export default {
   data () {
     return {
diff --git a/jena-fuseki2/jena-fuseki-ui/src/services/mock/json-server.js 
b/jena-fuseki2/jena-fuseki-ui/src/services/mock/json-server.js
index 5f20e1d17e..d54d9fca03 100644
--- a/jena-fuseki2/jena-fuseki-ui/src/services/mock/json-server.js
+++ b/jena-fuseki2/jena-fuseki-ui/src/services/mock/json-server.js
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
+import jsonServer from 'json-server'
+
 const PORT = process.env.FUSEKI_PORT || 3030
 
 const data = {}
 
-const jsonServer = require('json-server')
-
 const server = jsonServer.create()
 const router = jsonServer.router(data)
 const middlewares = jsonServer.defaults()
@@ -260,8 +260,6 @@ server.get('/:datasetName/data', (req, res) => {
     .send(dataContent)
 })
 
-let failUpload = false
-
 // Upload data.
 server.post('/:datasetName/data', (req, res) => {
   res
@@ -282,9 +280,15 @@ server.get('/\\$/ping', (req, res) => {
 // RESET TEST DATA
 server.get('/tests/reset', (req, res) => {
   // Just delete the datasets to clean up for other tests to have a
-  // brand new environment.
-  for (const dataset in DATASETS) {
-    delete DATASETS[dataset]
+  // brand-new environment.
+  if (DATASETS) {
+    try {
+      for (const dataset in DATASETS) {
+        delete DATASETS[dataset]
+      }
+    } catch (e) {
+      console.log(e)
+    }
   }
   res.sendStatus(200)
 })
diff --git a/jena-fuseki2/jena-fuseki-ui/src/views/dataset/Edit.vue 
b/jena-fuseki2/jena-fuseki-ui/src/views/dataset/Edit.vue
index 8dde59f7af..b19aeb5e9c 100644
--- a/jena-fuseki2/jena-fuseki-ui/src/views/dataset/Edit.vue
+++ b/jena-fuseki2/jena-fuseki-ui/src/views/dataset/Edit.vue
@@ -261,7 +261,6 @@ export default {
       this.loadingGraph = true
       this.selectedGraph = graphName
       try {
-        const dataEndpoint = 
this.services['gsp-rw']['srv.endpoints'].find(endpoint => endpoint !== '') || ''
         const result = await this.$fusekiService.fetchGraph(
           this.datasetName,
           this.services['gsp-rw']['srv.endpoints'],
diff --git a/jena-fuseki2/jena-fuseki-ui/src/views/dataset/Query.vue 
b/jena-fuseki2/jena-fuseki-ui/src/views/dataset/Query.vue
index 07c9579df5..e44a843865 100644
--- a/jena-fuseki2/jena-fuseki-ui/src/views/dataset/Query.vue
+++ b/jena-fuseki2/jena-fuseki-ui/src/views/dataset/Query.vue
@@ -327,6 +327,7 @@ export default {
   },
 
   watch: {
+    /* eslint-disable no-unused-vars */
     datasetUrl: function (val, oldVal) {
       this.currentDatasetUrl = val
     },
@@ -345,6 +346,7 @@ export default {
         this.yasqe.options.requestConfig.acceptHeaderGraph = 
this.contentTypeGraph
       }
     }
+    /* eslint-enable no-unused-vars */
   },
 
   methods: {
diff --git a/jena-fuseki2/jena-fuseki-ui/tests/e2e/specs/datasets.cy.js 
b/jena-fuseki2/jena-fuseki-ui/tests/e2e/specs/datasets.cy.js
index e5be01a35b..ecc049c3e0 100644
--- a/jena-fuseki2/jena-fuseki-ui/tests/e2e/specs/datasets.cy.js
+++ b/jena-fuseki2/jena-fuseki-ui/tests/e2e/specs/datasets.cy.js
@@ -25,11 +25,17 @@ describe('datasets', () => {
   describe('without any datasets', () => {
     before(() => {
       // Special endpoint that clears the datasets data.
-      cy.request('/tests/reset')
+      cy.request({
+        url: '/tests/reset',
+        retryOnStatusCodeFailure: true
+      })
     })
     after(() => {
       // Special endpoint that clears the datasets data.
-      cy.request('/tests/reset')
+      cy.request({
+        url: '/tests/reset',
+        retryOnStatusCodeFailure: true
+      })
     })
     it('Visits datasets page, also the application landing-page', () => {
       cy.visit('/')
@@ -59,7 +65,10 @@ describe('datasets', () => {
   describe('after creating new datasets', () => {
     before(() => {
       // Special endpoint that clears the datasets data.
-      cy.request('/tests/reset')
+      cy.request({
+        url: '/tests/reset',
+        retryOnStatusCodeFailure: true
+      })
       for (const datasetName of ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 
'j', 'k']) {
         // NOTE: Cypress appears to get confused when re-using the same URL,
         //       so we use a ?temp=... in the URL to force distinct requests.
@@ -84,7 +93,10 @@ describe('datasets', () => {
     })
     after(() => {
       // Special endpoint that clears the datasets data.
-      cy.request('/tests/reset')
+      cy.request({
+        url: '/tests/reset',
+        retryOnStatusCodeFailure: true
+      })
     })
     it('Edits the graph', () => {
       cy.visit('/#/dataset/a/edit')
diff --git a/jena-fuseki2/jena-fuseki-ui/tests/e2e/specs/query.cy.js 
b/jena-fuseki2/jena-fuseki-ui/tests/e2e/specs/query.cy.js
index b73c54569c..57fe9cedba 100644
--- a/jena-fuseki2/jena-fuseki-ui/tests/e2e/specs/query.cy.js
+++ b/jena-fuseki2/jena-fuseki-ui/tests/e2e/specs/query.cy.js
@@ -18,10 +18,13 @@
 /**
  * Tests the Query view and YASGUI & family components.
  */
-describe('Query', () => {
-  beforeEach(() => {
+describe('Query', function() {
+  beforeEach(function() {
     // Special endpoint that clears the datasets data.
-    cy.request('/tests/reset')
+    cy.request({
+      url: '/tests/reset',
+      retryOnStatusCodeFailure: true
+    })
     // Create a sample dataset.
     cy
       .visit('/#/manage/new')
@@ -41,14 +44,18 @@ describe('Query', () => {
           .should('be.visible')
       })
   })
-  afterEach(() => {
+
+  afterEach(function() {
     // Special endpoint that clears the datasets data.
-    cy.request('/tests/reset')
+    cy.request({
+      url: '/tests/reset',
+      retryOnStatusCodeFailure: true
+    })
   })
   /**
    * Bug: https://github.com/apache/jena/issues/1443
    */
-  it('Uses the correct SPARQL Endpoint', () => {
+  it('Uses the correct SPARQL Endpoint', function() {
     const SPARQL_ENDPOINT = '/skosmos/update'
     cy.visit('/#/dataset/skosmos/query')
     cy
@@ -75,7 +82,8 @@ describe('Query', () => {
       .its('response')
       .should('have.property', 'statusCode', 203)
   })
-  it('Can resize the query editor', () => {
+
+  it('Can resize the query editor', function() {
     cy.visit('/#/dataset/skosmos/query')
     // TODO: The .then(() => {}) is a bug/regression in Cypress 12 - 
https://github.com/cypress-io/cypress/issues/25173#issuecomment-1358017970
     cy
diff --git a/jena-fuseki2/jena-fuseki-ui/tests/e2e/specs/upload.cy.js 
b/jena-fuseki2/jena-fuseki-ui/tests/e2e/specs/upload.cy.js
index c31d1ccbd3..eeafec66c5 100644
--- a/jena-fuseki2/jena-fuseki-ui/tests/e2e/specs/upload.cy.js
+++ b/jena-fuseki2/jena-fuseki-ui/tests/e2e/specs/upload.cy.js
@@ -22,12 +22,15 @@
  * add new datasets. So we also cover parts of the Manage view.
  */
 
-describe('upload', () => {
-  beforeEach(() => {
+describe('upload', function () {
+  beforeEach(function () {
     // Intercept new dataset request.
     cy.intercept('POST', '/$/datasets').as('createDataset')
     // Special endpoint that clears the datasets data.
-    cy.request('/tests/reset')
+    cy.request({
+      url: '/tests/reset',
+      retryOnStatusCodeFailure: true
+    })
     // Create a sample dataset.
     cy
       .visit('/#/manage/new')
@@ -56,11 +59,14 @@ describe('upload', () => {
     cy.wait('@server')
     cy.intercept('/$/server').as('server')
   })
-  afterEach(() => {
+  afterEach(function () {
     // Special endpoint that clears the datasets data.
-    cy.request('/tests/reset')
+    cy.request({
+      url: '/tests/reset',
+      retryOnStatusCodeFailure: true
+    })
   })
-  it('displays an empty progress bar by default', () => {
+  it('displays an empty progress bar by default', function () {
     // The progress is present.
     cy
       .get('.progress')
@@ -78,7 +84,7 @@ describe('upload', () => {
           .should('have.attr', 'aria-valuenow', 0)
       })
   })
-  it('displays the progress for success and failure', () => {
+  it('displays the progress for success and failure', function () {
     // Intercept upload calls.
     // Fails every other upload.
     let fail = false
diff --git a/jena-fuseki2/jena-fuseki-ui/vite.config.js 
b/jena-fuseki2/jena-fuseki-ui/vite.config.js
index 1fc8dd7d21..f35beb8fb0 100644
--- a/jena-fuseki2/jena-fuseki-ui/vite.config.js
+++ b/jena-fuseki2/jena-fuseki-ui/vite.config.js
@@ -19,7 +19,7 @@ import { defineConfig } from 'vite'
 import { configDefaults } from 'vitest/config'
 import vue from '@vitejs/plugin-vue'
 import istanbul from "vite-plugin-istanbul";
-const path = require("path")
+import path from 'path'
 
 // https://vitejs.dev/config/
 export default defineConfig({
@@ -91,7 +91,7 @@ export default defineConfig({
         changeOrigin: true,
         secure: false,
         ws: false,
-        bypass: (req, res, options) => {
+        bypass: (req) => {
           const accept = req.headers.accept
           const contentType = req.headers['content-type']
           // webpack-dev-server automatically handled fall-through, as it was 
requested (and quickly
@@ -100,10 +100,11 @@ export default defineConfig({
           // So we bypass requests from the proxy that do not contain the 
header Accept: application/json.*,
           // or that are requesting /node_modules/ (dev Vite/Vue/JS modules).
           const sendToUI =
+            req.url.endsWith('index.html') ||
             req.method !== 'POST' &&
             req.url.indexOf('tests/reset') < 0 &&
             (
-              (req.hasOwnProperty('originalUrl') && 
req.originalUrl.includes('node_modules')) ||
+              (Object.prototype.hasOwnProperty.call(req, 'originalUrl') && 
req.originalUrl.includes('node_modules')) ||
               (
                 (accept !== undefined && accept !== null) &&
                 !(accept.includes('application/json') || 
accept.includes('text/turtle') || 
accept.includes('application/sparql-results+json')
diff --git a/jena-fuseki2/jena-fuseki-ui/yarn.lock 
b/jena-fuseki2/jena-fuseki-ui/yarn.lock
index f8b1c1e042..47e9215b30 100644
--- a/jena-fuseki2/jena-fuseki-ui/yarn.lock
+++ b/jena-fuseki2/jena-fuseki-ui/yarn.lock
@@ -536,6 +536,11 @@
   resolved 
"https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f";
   integrity 
sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==
 
+"@eslint/js@^9.2.0":
+  version "9.2.0"
+  resolved 
"https://registry.yarnpkg.com/@eslint/js/-/js-9.2.0.tgz#b0a9123e8e91a3d9a2eed3a04a6ed44fdab639aa";
+  integrity 
sha512-ESiIudvhoYni+MdsI8oD7skpprZ89qKocwRM2KEvhhBJ9nl5MRh7BXU5GTod7Mdygq+AUl+QzId6iWJKR/wABA==
+
 "@fortawesome/[email protected]":
   version "6.5.2"
   resolved 
"https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.2.tgz#eaf2f5699f73cef198454ebc0c414e3688898179";
@@ -662,7 +667,7 @@
   resolved 
"https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32";
   integrity 
sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
 
-"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", 
"@jridgewell/trace-mapping@^0.3.9":
+"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
   version "0.3.20"
   resolved 
"https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f";
   integrity 
sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==
@@ -670,6 +675,14 @@
     "@jridgewell/resolve-uri" "^3.1.0"
     "@jridgewell/sourcemap-codec" "^1.4.14"
 
+"@jridgewell/trace-mapping@^0.3.23":
+  version "0.3.25"
+  resolved 
"https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0";
+  integrity 
sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
+  dependencies:
+    "@jridgewell/resolve-uri" "^3.1.0"
+    "@jridgewell/sourcemap-codec" "^1.4.14"
+
 "@json2csv/formatters@^7.0.5":
   version "7.0.5"
   resolved 
"https://registry.yarnpkg.com/@json2csv/formatters/-/formatters-7.0.5.tgz#530193d4a584f9f6b410fd0a95a7f8185d15d759";
@@ -858,11 +871,6 @@
   resolved 
"https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4";
   integrity 
sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
 
-"@types/istanbul-lib-coverage@^2.0.1":
-  version "2.0.6"
-  resolved 
"https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7";
-  integrity 
sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==
-
 "@types/json5@^0.0.29":
   version "0.0.29"
   resolved 
"https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
@@ -921,16 +929,24 @@
   resolved 
"https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz#508d6a0f2440f86945835d903fcc0d95d1bb8a37";
   integrity 
sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==
 
-"@vitest/coverage-c8@^0.33.0":
-  version "0.33.0"
-  resolved 
"https://registry.yarnpkg.com/@vitest/coverage-c8/-/coverage-c8-0.33.0.tgz#7c8ef0997afcc3f5ab99984c0197ece4451f26b6";
-  integrity 
sha512-DaF1zJz4dcOZS4k/neiQJokmOWqsGXwhthfmUdPGorXIQHjdPvV6JQSYhQDI41MyI8c+IieQUdIDs5XAMHtDDw==
+"@vitest/coverage-v8@^1.6.0":
+  version "1.6.0"
+  resolved 
"https://registry.yarnpkg.com/@vitest/coverage-v8/-/coverage-v8-1.6.0.tgz#2f54ccf4c2d9f23a71294aba7f95b3d2e27d14e7";
+  integrity 
sha512-KvapcbMY/8GYIG0rlwwOKCVNRc0OL20rrhFkg/CHNzncV03TE2XWvO5w9uZYoxNiMEBacAJt3unSOiZ7svePew==
   dependencies:
     "@ampproject/remapping" "^2.2.1"
-    c8 "^7.14.0"
-    magic-string "^0.30.1"
+    "@bcoe/v8-coverage" "^0.2.3"
+    debug "^4.3.4"
+    istanbul-lib-coverage "^3.2.2"
+    istanbul-lib-report "^3.0.1"
+    istanbul-lib-source-maps "^5.0.4"
+    istanbul-reports "^3.1.6"
+    magic-string "^0.30.5"
+    magicast "^0.3.3"
     picocolors "^1.0.0"
-    std-env "^3.3.3"
+    std-env "^3.5.0"
+    strip-literal "^2.0.0"
+    test-exclude "^6.0.0"
 
 "@vitest/[email protected]":
   version "1.6.0"
@@ -1575,24 +1591,6 @@ [email protected]:
   resolved 
"https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5";
   integrity 
sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
 
-c8@^7.14.0:
-  version "7.14.0"
-  resolved 
"https://registry.yarnpkg.com/c8/-/c8-7.14.0.tgz#f368184c73b125a80565e9ab2396ff0be4d732f3";
-  integrity 
sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==
-  dependencies:
-    "@bcoe/v8-coverage" "^0.2.3"
-    "@istanbuljs/schema" "^0.1.3"
-    find-up "^5.0.0"
-    foreground-child "^2.0.0"
-    istanbul-lib-coverage "^3.2.0"
-    istanbul-lib-report "^3.0.0"
-    istanbul-reports "^3.1.4"
-    rimraf "^3.0.2"
-    test-exclude "^6.0.0"
-    v8-to-istanbul "^9.0.0"
-    yargs "^16.2.0"
-    yargs-parser "^20.2.9"
-
 cac@^6.7.14:
   version "6.7.14"
   resolved 
"https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959";
@@ -1757,15 +1755,6 @@ cliui@^6.0.0:
     strip-ansi "^6.0.0"
     wrap-ansi "^6.2.0"
 
-cliui@^7.0.2:
-  version "7.0.4"
-  resolved 
"https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f";
-  integrity 
sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
-  dependencies:
-    string-width "^4.2.0"
-    strip-ansi "^6.0.0"
-    wrap-ansi "^7.0.0"
-
 cliui@^8.0.1:
   version "8.0.1"
   resolved 
"https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa";
@@ -3658,7 +3647,7 @@ isstream@~0.1.2:
   resolved 
"https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a";
   integrity 
sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==
 
-istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
+istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0, 
istanbul-lib-coverage@^3.2.2:
   version "3.2.2"
   resolved 
"https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756";
   integrity 
sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==
@@ -3703,7 +3692,7 @@ istanbul-lib-processinfo@^2.0.2:
     rimraf "^3.0.0"
     uuid "^8.3.2"
 
-istanbul-lib-report@^3.0.0:
+istanbul-lib-report@^3.0.0, istanbul-lib-report@^3.0.1:
   version "3.0.1"
   resolved 
"https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d";
   integrity 
sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==
@@ -3721,7 +3710,16 @@ istanbul-lib-source-maps@^4.0.0:
     istanbul-lib-coverage "^3.0.0"
     source-map "^0.6.1"
 
-istanbul-reports@^3.0.2, istanbul-reports@^3.1.4:
+istanbul-lib-source-maps@^5.0.4:
+  version "5.0.4"
+  resolved 
"https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.4.tgz#1947003c72a91b6310efeb92d2a91be8804d92c2";
+  integrity 
sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==
+  dependencies:
+    "@jridgewell/trace-mapping" "^0.3.23"
+    debug "^4.1.1"
+    istanbul-lib-coverage "^3.0.0"
+
+istanbul-reports@^3.0.2:
   version "3.1.6"
   resolved 
"https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a";
   integrity 
sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==
@@ -3729,6 +3727,14 @@ istanbul-reports@^3.0.2, istanbul-reports@^3.1.4:
     html-escaper "^2.0.0"
     istanbul-lib-report "^3.0.0"
 
+istanbul-reports@^3.1.6:
+  version "3.1.7"
+  resolved 
"https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b";
+  integrity 
sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==
+  dependencies:
+    html-escaper "^2.0.0"
+    istanbul-lib-report "^3.0.0"
+
 jackspeak@^2.3.5:
   version "2.3.6"
   resolved 
"https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8";
@@ -4075,13 +4081,22 @@ lru-cache@^6.0.0:
   resolved 
"https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484";
   integrity 
sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==
 
-magic-string@^0.30.1, magic-string@^0.30.10, magic-string@^0.30.5:
+magic-string@^0.30.10, magic-string@^0.30.5:
   version "0.30.10"
   resolved 
"https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e";
   integrity 
sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==
   dependencies:
     "@jridgewell/sourcemap-codec" "^1.4.15"
 
+magicast@^0.3.3:
+  version "0.3.4"
+  resolved 
"https://registry.yarnpkg.com/magicast/-/magicast-0.3.4.tgz#bbda1791d03190a24b00ff3dd18151e7fd381d19";
+  integrity 
sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==
+  dependencies:
+    "@babel/parser" "^7.24.4"
+    "@babel/types" "^7.24.0"
+    source-map-js "^1.2.0"
+
 make-dir@^3.0.0, make-dir@^3.0.2:
   version "3.1.0"
   resolved 
"https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f";
@@ -5308,7 +5323,7 @@ [email protected]:
   resolved 
"https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63";
   integrity 
sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
 
-std-env@^3.3.3, std-env@^3.5.0:
+std-env@^3.5.0:
   version "3.7.0"
   resolved 
"https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2";
   integrity 
sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==
@@ -5768,15 +5783,6 @@ uuid@^8.3.2:
   resolved 
"https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2";
   integrity 
sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
 
-v8-to-istanbul@^9.0.0:
-  version "9.1.3"
-  resolved 
"https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz#ea456604101cd18005ac2cae3cdd1aa058a6306b";
-  integrity 
sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==
-  dependencies:
-    "@jridgewell/trace-mapping" "^0.3.12"
-    "@types/istanbul-lib-coverage" "^2.0.1"
-    convert-source-map "^2.0.0"
-
 vary@^1, vary@~1.1.2:
   version "1.1.2"
   resolved 
"https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc";
@@ -5802,10 +5808,10 @@ [email protected]:
     picocolors "^1.0.0"
     vite "^5.0.0"
 
[email protected]:
-  version "6.0.0"
-  resolved 
"https://registry.yarnpkg.com/vite-plugin-istanbul/-/vite-plugin-istanbul-6.0.0.tgz#630c1404c09ae242f84b819f001abe4db3f8bf2e";
-  integrity 
sha512-Vwh2XdesjcLwaPbHSOiWHh+0s7CNovQTPEjUCTkqmJUe0FN2TKsOp0qpoaklOuwrKlL9elhD5fPFxi5lmG62zA==
+vite-plugin-istanbul@^6.0.2:
+  version "6.0.2"
+  resolved 
"https://registry.yarnpkg.com/vite-plugin-istanbul/-/vite-plugin-istanbul-6.0.2.tgz#242a57b20d540adc49631f9e6c174a1c3559ece7";
+  integrity 
sha512-0/sKwjEEIwbEyl43xX7onX3dIbMJAsigNsKyyVPalG1oRFo5jn3qkJbS2PUfp9wrr3piy1eT6qRoeeum2p4B2A==
   dependencies:
     "@istanbuljs/load-nyc-config" "^1.1.0"
     espree "^10.0.1"
@@ -5978,6 +5984,7 @@ why-is-node-running@^2.2.2:
     stackback "0.0.2"
 
 "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
+  name wrap-ansi-cjs
   version "7.0.0"
   resolved 
"https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43";
   integrity 
sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -6067,11 +6074,6 @@ yargs-parser@^18.1.2:
     camelcase "^5.0.0"
     decamelize "^1.2.0"
 
-yargs-parser@^20.2.2, yargs-parser@^20.2.9:
-  version "20.2.9"
-  resolved 
"https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee";
-  integrity 
sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
-
 yargs-parser@^21.1.1:
   version "21.1.1"
   resolved 
"https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35";
@@ -6094,19 +6096,6 @@ yargs@^15.0.2:
     y18n "^4.0.0"
     yargs-parser "^18.1.2"
 
-yargs@^16.2.0:
-  version "16.2.0"
-  resolved 
"https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66";
-  integrity 
sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
-  dependencies:
-    cliui "^7.0.2"
-    escalade "^3.1.1"
-    get-caller-file "^2.0.5"
-    require-directory "^2.1.1"
-    string-width "^4.2.0"
-    y18n "^5.0.5"
-    yargs-parser "^20.2.2"
-
 yargs@^17.0.1, yargs@^17.7.2:
   version "17.7.2"
   resolved 
"https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269";

Reply via email to