diff --git a/.github/workflows/dso-automatic-sync.yml b/.github/workflows/dso-automatic-sync.yml
deleted file mode 100644
index eb7bf7a1..00000000
--- a/.github/workflows/dso-automatic-sync.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-name: Sync DSO gitlab repository
-
-on:
- workflow_dispatch:
- push:
-
-jobs:
- sync:
- runs-on: ubuntu-latest
- steps:
- - run: |
- curl "https://gitlab.apps.c6.numerique-interieur.com/api/v4/projects/193/trigger/pipeline" \
- -X POST \
- --fail \
- -F token=${{ secrets.DSO_TOKEN }} \
- -F ref=main \
- -F variables[GIT_BRANCH_DEPLOY]=${{ github.ref_name }} \
- -F variables[PROJECT_NAME]=app
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index d9cd2777..f819a3e8 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -71,6 +71,17 @@ jobs:
steps:
- run: cd /app && pytest
+ test-frontend-format:
+ name: Test Frontend Formatting
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Run Prettier check
+ working-directory: frontend
+ run: |
+ npm ci
+ npm run format-check
+
test-e2e:
name: Run E2E tests
needs: [build-backend, build-frontend]
diff --git a/.gitlab-ci-dso.yml b/.gitlab-ci-dso.yml
index bea57bb5..61b8f422 100644
--- a/.gitlab-ci-dso.yml
+++ b/.gitlab-ci-dso.yml
@@ -3,7 +3,7 @@ include:
file: vault-ci.yml
ref: main
- project: $CATALOG_PATH
- file: kaniko-ci.yml
+ file: kaniko-ci-mirror.yml
ref: main
default:
@@ -30,7 +30,7 @@ docker-build-frontend:
BUILD_ARGS: --build-arg=VERSION=1.1.1
stage: docker-build
extends:
- - .kaniko:build-push
+ - .kaniko-mirror:build-push
docker-build-backend:
variables:
@@ -40,4 +40,4 @@ docker-build-backend:
BUILD_ARGS: --build-arg=VERSION=1.1.1
stage: docker-build
extends:
- - .kaniko:build-push
+ - .kaniko-mirror:build-push
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index f202a80e..acbcb491 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -12,8 +12,8 @@ repos:
args: ["--profile", "black"]
- repo: local
hooks:
- - id: eslint
- name: eslint
+ - id: prettier
+ name: prettier
entry: bash -c 'cd ./frontend && npm run format'
language: system
files: ^frontend/
\ No newline at end of file
diff --git a/backend/requirements.txt b/backend/requirements.txt
index d0ae5e3c..ad35831a 100644
--- a/backend/requirements.txt
+++ b/backend/requirements.txt
@@ -10,9 +10,7 @@ user-agents==2.2.0
boto3==1.28.39
autodynatrace==2.0.0
# ML
-ultralytics==8.1.2
-opencv-python==4.9.0.80
-onnxruntime==1.17.1
+https://github.com/dnum-mi/basegun-ml/raw/MLPackages/MLpackages/basegun_ml/dist/basegunml-0.1.tar.gz
# Dev
pytest==7.4.3
coverage==7.3.2
\ No newline at end of file
diff --git a/backend/src/ml/measure/best_card.onnx b/backend/src/ml/measure/best_card.onnx
deleted file mode 100644
index f3309788..00000000
Binary files a/backend/src/ml/measure/best_card.onnx and /dev/null differ
diff --git a/backend/src/ml/measure/best_keypoints.pt b/backend/src/ml/measure/best_keypoints.pt
deleted file mode 100644
index 7552a292..00000000
Binary files a/backend/src/ml/measure/best_keypoints.pt and /dev/null differ
diff --git a/backend/src/ml/measure/measure.py b/backend/src/ml/measure/measure.py
deleted file mode 100644
index 3ae4ba36..00000000
--- a/backend/src/ml/measure/measure.py
+++ /dev/null
@@ -1,359 +0,0 @@
-import cv2
-import numpy as np
-import onnxruntime as ort
-from ultralytics import YOLO
-
-NMS_THRES = 0.1
-CONF_THRES = 0
-PI = 3.141592
-
-# DOTA-v1.5
-CLASSES = ["Card"]
-
-# Class YOLOV5_OBB from repository
-
-
-class YOLOv5_OBB:
- def __init__(self, model_path, stride=32):
- self.model_path = model_path
- self.stride = stride
-
- def rbox2poly(self, obboxes):
- """
- Trans rbox format to poly format.
- Args:
- rboxes (array/tensor): (num_gts, [cx cy l s θ]) θ∈[-pi/2, pi/2)
-
- Returns:
- polys (array/tensor): (num_gts, [x1 y1 x2 y2 x3 y3 x4 y4])
- """
- center, w, h, theta = np.split(obboxes, (2, 3, 4), axis=-1)
- Cos, Sin = np.cos(theta), np.sin(theta)
- vector1 = np.concatenate([w / 2 * Cos, -w / 2 * Sin], axis=-1)
- vector2 = np.concatenate([-h / 2 * Sin, -h / 2 * Cos], axis=-1)
-
- point1 = center + vector1 + vector2
- point2 = center + vector1 - vector2
- point3 = center - vector1 - vector2
- point4 = center - vector1 + vector2
- order = obboxes.shape[:-1]
- return np.concatenate([point1, point2, point3, point4], axis=-1).reshape(
- *order, 8
- )
-
- def scale_polys(self, img1_shape, polys, img0_shape, ratio_pad=None):
- # ratio_pad: [(h_raw, w_raw), (hw_ratios, wh_paddings)]
- # Rescale coords (xyxyxyxy) from img1_shape to img0_shape
- if ratio_pad is None: # calculate from img0_shape
- gain = min(
- img1_shape[0] / img0_shape[0], img1_shape[1] / img0_shape[1]
- ) # gain = resized / raw
- pad = (img1_shape[1] - img0_shape[1] * gain) / 2, (
- img1_shape[0] - img0_shape[0] * gain
- ) / 2 # wh padding
- else:
- gain = ratio_pad[0][0] # h_ratios
- pad = ratio_pad[1] # wh_paddings
- polys[:, [0, 2, 4, 6]] -= pad[0] # x padding
- polys[:, [1, 3, 5, 7]] -= pad[1] # y padding
- polys[:, :8] /= gain # Rescale poly shape to img0_shape
- # clip_polys(polys, img0_shape)
- return polys
-
- def letterbox(
- self,
- im,
- new_shape,
- color=(255, 0, 255),
- auto=False,
- scaleFill=False,
- scaleup=True,
- ):
- """
- Resize and pad image while meeting stride-multiple constraints
- Returns:
- im (array): (height, width, 3)
- ratio (array): [w_ratio, h_ratio]
- (dw, dh) (array): [w_padding h_padding]
- """
- shape = im.shape[:2] # current shape [height, width]
- if isinstance(new_shape, int): # [h_rect, w_rect]
- new_shape = (new_shape, new_shape)
-
- # Scale ratio (new / old)
- r = min(new_shape[0] / shape[0], new_shape[1] / shape[1])
- if not scaleup: # only scale down, do not scale up (for better val mAP)
- r = min(r, 1.0)
-
- # Compute padding
- ratio = r, r # wh ratios
- new_unpad = int(round(shape[1] * r)), int(round(shape[0] * r)) # w h
- dw, dh = new_shape[1] - new_unpad[0], new_shape[0] - new_unpad[1] # wh padding
-
- if auto: # minimum rectangle
- dw, dh = np.mod(dw, self.stride), np.mod(dh, self.stride) # wh padding
- elif scaleFill: # stretch
- dw, dh = 0.0, 0.0
- new_unpad = (new_shape[1], new_shape[0]) # [w h]
- ratio = (
- new_shape[1] / shape[1],
- new_shape[0] / shape[0],
- ) # [w_ratio, h_ratio]
-
- dw /= 2 # divide padding into 2 sides
- dh /= 2
- if shape[::-1] != new_unpad: # resize
- im = cv2.resize(im, new_unpad, interpolation=cv2.INTER_LINEAR)
- top, bottom = int(round(dh - 0.1)), int(round(dh + 0.1))
- left, right = int(round(dw - 0.1)), int(round(dw + 0.1))
- im = cv2.copyMakeBorder(
- im, top, bottom, left, right, cv2.BORDER_CONSTANT, value=color
- ) # add border
- return im, ratio, (dw, dh)
-
- def preprocess(self, img, new_shape):
- img = self.letterbox(img, new_shape, auto=False)[0]
- img = img.transpose((2, 0, 1))[::-1] # HWC to CHW, BGR to RGB
- img = np.ascontiguousarray(img).astype("float32")
- img /= 255 # 0 - 255 to 0.0 - 1.0
- if len(img.shape) == 3:
- img = img[None] # expand for batch dim
- return img
-
- def postprecess(self, prediction, src_img, new_shape):
- nc = prediction.shape[2] - 5 - 180 # number of classes
- maxconf = np.max(prediction[..., 4])
- CONF_THRES = (
- maxconf - 0.1
- ) # To retrieve best results and not limit to an absolute threshold
- xc = prediction[..., 4] > CONF_THRES
- outputs = prediction[:][xc]
-
- generate_boxes, bboxes, scores = [], [], []
-
- for out in outputs:
- cx, cy, longside, shortside, obj_score = out[:5]
- class_scores = out[5 : 5 + nc]
- class_idx = np.argmax(class_scores)
-
- max_class_score = class_scores[class_idx] * obj_score
- if max_class_score < CONF_THRES:
- continue
-
- theta_scores = out[5 + nc :]
- theta_idx = np.argmax(theta_scores)
- theta_pred = (theta_idx - 90) / 180 * PI
-
- bboxes.append([[cx, cy], [longside, shortside], max_class_score])
- scores.append(max_class_score)
- generate_boxes.append(
- [cx, cy, longside, shortside, theta_pred, max_class_score, class_idx]
- )
-
- indices = cv2.dnn.NMSBoxesRotated(bboxes, scores, CONF_THRES, NMS_THRES)
- det = np.array(generate_boxes)[indices.flatten()]
-
- pred_poly = self.rbox2poly(det[:, :5])
-
- pred_poly = self.scale_polys(new_shape, pred_poly, src_img.shape)
- det = np.concatenate((pred_poly, det[:, -2:]), axis=1) # (n, [poly conf cls])
- return det
-
- def run(self, src_img):
- net = ort.InferenceSession(self.model_path, providers=["CPUExecutionProvider"])
- input_name = net.get_inputs()[0].name
- input_shape = net.get_inputs()[0].shape
- new_shape = input_shape[-2:]
-
- blob = self.preprocess(src_img, new_shape)
- outputs = net.run(None, {input_name: blob})[0]
- return self.postprecess(outputs, src_img, new_shape)
-
-
-def get_card(image, model):
- """Predict the keypoints on the image
- Args:
- image (opencv matrix): image after CV2.imread(path)
- modelCard (model): model after load_models call
-
- Returns:
- Prediction: Oriented boundng box(x,y,x,y,x,y,x,y ,CONF_THRES, NMS_THRES)
- """
-
- return model.run(image)
-
-
-def get_keypoints(image, model):
- """Predict the keypoints on the image
- Args:
- image (opencv matrix): image after CV2.imread(path)
- modelWeapon (model): model after load_models call
-
- Returns:
- Prediction: keypoints coordinates [[KP1x,KP1y],[KP2x,KP2y],[KP3x,KP3y],[KP4x,KP4y]]
- """
- results = model(image, verbose=False)
- return results[0].keypoints.data[0]
-
-
-def load_models(model_card_path, model_weapon_path):
- """Load model structure and weights
- Args:
- model_card (str): path to model (.onnx file)
- modelWeapon (str): path to model (.pt file)
-
- Returns:
- Models: loaded models ready for prediction and warmed-up
- """
- model_card = YOLOv5_OBB(model_path=model_card_path, stride=32)
-
- model_weapon = YOLO(model_weapon_path)
-
- # warmup
- imagetest = cv2.imread("./src/ml/measure/warmup.jpg")
- get_card(imagetest, model_card)
- get_keypoints(imagetest, model_weapon)
-
- return model_card, model_weapon
-
-
-model_card, model_weapon = load_models(
- "./src/ml/measure/best_card.onnx", "./src/ml/measure/best_keypoints.pt"
-)
-
-
-# geometric functions for distance calculation
-
-
-def distanceCalculate(p1, p2):
- """Distance calculation between two points
- Args:
- P1 (tuple): (x1,y1)
- P2 (tuple): (x2,y2)
-
- Returns:
- Distance: float in px
- """
- dis = ((p2[0] - p1[0]) ** 2 + (p2[1] - p1[1]) ** 2) ** 0.5
- return dis
-
-
-def scalarproduct(v1, v2):
- """Scalar product between two vectors
- Args:
- P1 (vector): (u1,v1)
- P2 (vector): (u2,v2)
-
- Returns:
- Projection: float in px
- """
- return (v1[0] * v2[0] + v1[1] * v2[1]) / np.linalg.norm(v2)
-
-
-def rotate(img):
- """Rotate the image if not in landscape
- Args:
- image (opencv matrix): image after CV2.imread(path)
- Returns:
- image (opencv matrix): image after CV2.imread(path)
- """
- height, width, channels = img.shape
- if height > width:
- img = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)
- return img
-
-
-def get_lengths_from_image(img_bytes, draw=True, output_filename="result.jpg"):
- """Predict the keypoints on the image
- Args:
- image (opencv matrix): image after CV2.imread(path)
- modelCard (model): model after load_models call
- modelWeapon (model): model after load_models call
- draw (Boolean): whether the result image need to be drawed and saved
- output_filename: Filename and location for the image output
-
- Returns:
- Length (list): Overall Length, Barrel Length, Card detection confidence score
- """
- try:
- image = np.asarray(bytearray(img_bytes), dtype="uint8")
- image = cv2.imdecode(image, cv2.IMREAD_COLOR)
- image = rotate(image)
-
- keypoints = get_keypoints(image, model_weapon)
- if keypoints[3][0] < keypoints[0][0]: # Weapon upside down
- image = cv2.rotate(image, cv2.ROTATE_180)
- keypoints = get_keypoints(image, model_weapon)
-
- cards = get_card(image, model_card)
- card = cards[0]
- confCard = card[8]
- CardP = distanceCalculate((card[0], card[1]), (card[4], card[5]))
- CardP = distanceCalculate((card[2], card[3]), (card[6], card[7]))
- CardR = (8.56**2 + 5.398**2) ** 0.5
-
- factor = CardR / CardP
- canonP = distanceCalculate(
- (int(keypoints[2][0]), int(keypoints[2][1])),
- (int(keypoints[3][0]), int(keypoints[3][1])),
- )
- canonR = round(canonP * factor, 2)
-
- totalP1 = scalarproduct(keypoints[0] - keypoints[3], keypoints[2] - keypoints[3])
- totalP2 = scalarproduct(keypoints[1] - keypoints[3], keypoints[2] - keypoints[3])
-
- totalP = float(max(totalP1, totalP2))
-
- totalR = round(totalP * factor, 2)
-
- if draw:
- img2 = image
- for keypoint in keypoints:
- img2 = cv2.circle(
- img2,
- (int(keypoint[0]), int(keypoint[1])),
- radius=5,
- color=(0, 0, 255),
- thickness=20,
- )
-
- img2 = cv2.line(
- img2,
- (int(card[0]), int(card[1])),
- (int(card[2]), int(card[3])),
- color=(255, 0, 0),
- thickness=15,
- )
- img2 = cv2.line(
- img2,
- (int(card[4]), int(card[5])),
- (int(card[2]), int(card[3])),
- color=(255, 0, 0),
- thickness=15,
- )
- img2 = cv2.line(
- img2,
- (int(card[6]), int(card[7])),
- (int(card[4]), int(card[5])),
- color=(255, 0, 0),
- thickness=15,
- )
- img2 = cv2.line(
- img2,
- (int(card[0]), int(card[1])),
- (int(card[6]), int(card[7])),
- color=(255, 0, 0),
- thickness=15,
- )
- img2 = cv2.line(
- img2,
- (int(card[0]), int(card[1])),
- (int(card[4]), int(card[5])),
- color=(255, 255, 0),
- thickness=15,
- )
-
- cv2.imwrite(output_filename, img2)
- except cv2.error as e:
- totalR, canonR, confCard = None, None, None
- return (totalR, canonR, confCard)
diff --git a/backend/src/ml/measure/warmup.jpg b/backend/src/ml/measure/warmup.jpg
deleted file mode 100644
index 9457c6ac..00000000
Binary files a/backend/src/ml/measure/warmup.jpg and /dev/null differ
diff --git a/backend/src/ml/models/typology.pt b/backend/src/ml/models/typology.pt
deleted file mode 100644
index 3b7319d4..00000000
Binary files a/backend/src/ml/models/typology.pt and /dev/null differ
diff --git a/backend/src/ml/utils/typology.py b/backend/src/ml/utils/typology.py
deleted file mode 100644
index b90a214d..00000000
--- a/backend/src/ml/utils/typology.py
+++ /dev/null
@@ -1,40 +0,0 @@
-from io import BytesIO
-from typing import Union
-
-from PIL import Image
-from ultralytics import YOLO
-
-CLASSES = [
- "autre_pistolet",
- "epaule_a_levier_sous_garde",
- "epaule_a_pompe",
- "epaule_a_un_coup_par_canon",
- "epaule_a_verrou",
- "epaule_mecanisme_ancien",
- "epaule_semi_auto_style_chasse",
- "epaule_semi_auto_style_militaire_milieu_20e",
- "pistolet_mecanisme_ancien",
- "pistolet_semi_auto_moderne",
- "revolver",
- "semi_auto_style_militaire_autre",
-]
-
-MODEL = YOLO("./src/ml/models/typology.pt")
-
-
-def get_typology_from_image(img: bytes) -> Union[str, float]:
- """Run the model prediction on an image
-
- Args:
- model (Model): classification model
- img (bytes): input image in bytes
-
- Returns:
- Union[str, float]: (label, confidence) of best class predicted
- """
- im = Image.open(BytesIO(img))
- results = MODEL(im, verbose=False)
- predicted_class = results[0].probs.top5[0]
- label = CLASSES[predicted_class]
- confidence = float(results[0].probs.top5conf[0])
- return (label, confidence)
diff --git a/backend/src/router.py b/backend/src/router.py
index 9fe41c82..6408ee92 100644
--- a/backend/src/router.py
+++ b/backend/src/router.py
@@ -4,14 +4,23 @@
from typing import Union
from uuid import uuid4
-from fastapi import (APIRouter, BackgroundTasks, Cookie, File, Form,
- HTTPException, Request, Response, UploadFile)
+from basegunML.classification import get_typology
+from basegunML.measure import get_lengths
+from fastapi import (
+ APIRouter,
+ BackgroundTasks,
+ Cookie,
+ File,
+ Form,
+ HTTPException,
+ Request,
+ Response,
+ UploadFile,
+)
from fastapi.responses import PlainTextResponse
from user_agents import parse
from .config import APP_VERSION, S3_PREFIX, TYPOLOGIES_MEASURED, get_base_logs
-from .ml.measure.measure import get_lengths_from_image
-from .ml.utils.typology import get_typology_from_image
from .utils import upload_image
router = APIRouter(prefix="/api")
@@ -59,11 +68,16 @@ async def imageupload(
start = time.time()
# Process image with ML models
- label, confidence = get_typology_from_image(img_bytes)
+ label, confidence, confidence_level = get_typology(img_bytes)
gun_length, gun_barrel_length, conf_card = None, None, None
if label in TYPOLOGIES_MEASURED:
- gun_length, gun_barrel_length, conf_card = get_lengths_from_image(img_bytes)
+ gun_length, gun_barrel_length, conf_card = get_lengths(img_bytes)
+
+ # Temporary fix while ML package send 0 instead of None
+ # https://github.com/dnum-mi/basegun-ml/issues/14
+ gun_length = None if gun_length == 0 else gun_length
+ gun_barrel_length = None if gun_barrel_length == 0 else gun_barrel_length
extras_logging["bg_label"] = label
extras_logging["bg_confidence"] = confidence
@@ -71,12 +85,7 @@ async def imageupload(
extras_logging["bg_gun_barrel_length"] = gun_barrel_length
extras_logging["bg_conf_card"] = conf_card
extras_logging["bg_model_time"] = round(time.time() - start, 2)
- if confidence < 0.76:
- extras_logging["bg_confidence_level"] = "low"
- elif confidence < 0.98:
- extras_logging["bg_confidence_level"] = "medium"
- else:
- extras_logging["bg_confidence_level"] = "high"
+ extras_logging["bg_confidence_level"] = confidence_level
logging.info("Identification request", extra=extras_logging)
@@ -84,7 +93,7 @@ async def imageupload(
"path": img_key,
"label": label,
"confidence": confidence,
- "confidence_level": extras_logging["bg_confidence_level"],
+ "confidence_level": confidence_level,
"gun_length": gun_length,
"gun_barrel_length": gun_barrel_length,
"conf_card": conf_card,
diff --git a/frontend/.eslintrc.cjs b/frontend/.eslintrc.cjs
index 7f7533c5..a51baaa2 100644
--- a/frontend/.eslintrc.cjs
+++ b/frontend/.eslintrc.cjs
@@ -1,55 +1,54 @@
/* eslint-env node */
-require('@rushstack/eslint-patch/modern-module-resolution')
+require("@rushstack/eslint-patch/modern-module-resolution");
module.exports = {
root: true,
extends: [
- 'eslint:recommended',
+ "eslint:recommended",
// 'standard-with-typescript', // À décommenter quand le code sera typé
- 'standard',
- '@vue/eslint-config-typescript',
- 'plugin:vue/vue3-recommended',
- './.eslintrc-auto-import.json',
- ],
- plugins: [
- 'vue',
+ "standard",
+ "@vue/eslint-config-typescript",
+ "plugin:vue/vue3-recommended",
+ "./.eslintrc-auto-import.json",
+ "prettier",
],
+ plugins: ["vue"],
parserOptions: {
- ecmaVersion: 'latest',
- sourceType: 'module',
- parser: '@typescript-eslint/parser',
+ ecmaVersion: "latest",
+ sourceType: "module",
+ parser: "@typescript-eslint/parser",
tsconfigRootDir: __dirname,
- project: ['./tsconfig.app.json'],
+ project: ["./tsconfig.app.json"],
},
env: {
- 'vue/setup-compiler-macros': true,
+ "vue/setup-compiler-macros": true,
browser: true,
es2021: true,
},
rules: {
- 'comma-dangle': [2, 'always-multiline'],
- '@typescript-eslint/comma-dangle': [2, 'always-multiline'],
- 'vue/no-v-html': 0,
- 'no-irregular-whitespace': 0,
+ "comma-dangle": [2, "always-multiline"],
+ "@typescript-eslint/comma-dangle": [2, "always-multiline"],
+ "vue/no-v-html": 0,
+ "no-irregular-whitespace": 0,
},
overrides: [
{
- files: ['**/__tests__/*.{j,t}s?(x)', '**/src/**/*.spec.{j,t}s?(x)'],
+ files: ["**/__tests__/*.{j,t}s?(x)", "**/src/**/*.spec.{j,t}s?(x)"],
env: {
jest: true,
},
},
{
- files: ['src/utils/**/*.{j,t}s?(x)'],
+ files: ["src/utils/**/*.{j,t}s?(x)"],
rules: {
- camelcase: 'off',
+ camelcase: "off",
},
},
{
- files: ['**/src/**/*.e2e.js*', '**/src/**/*.cy.js'],
+ files: ["**/src/**/*.e2e.js*", "**/src/**/*.cy.js"],
globals: {
cy: true,
},
},
],
-}
+};
diff --git a/frontend/.prettierignore b/frontend/.prettierignore
new file mode 100644
index 00000000..b45ef414
--- /dev/null
+++ b/frontend/.prettierignore
@@ -0,0 +1,2 @@
+dist
+dev-dist
\ No newline at end of file
diff --git a/frontend/README.md b/frontend/README.md
index 9c7e6bff..def7ae69 100644
--- a/frontend/README.md
+++ b/frontend/README.md
@@ -1,7 +1,9 @@
# Basegun Vue.js frontend
## Project setup
+
### Without Docker
+
```bash
# install requirements
npm install
@@ -12,37 +14,45 @@ npm run build
# Lints and fixes files
npm run lint
```
+
### With Docker
+
```bash
docker build --target dev -t basegun-front:dev .
```
-If you are in a network blocked with proxy, remember to add arg `--build_arg https_proxy` where `https_proxy` is a variable already set in your env.
-
+If you are in a network blocked with proxy, remember to add arg `--build_arg https_proxy` where `https_proxy` is a variable already set in your env.
## Run project
+
### Without Docker
+
```bash
npm run dev
```
+
Open localhost:3000
### With Docker
+
```bash
docker run --rm -p 3000:3000 -d basegun-front:dev
```
## Test project
+
Run end-to-end tests with cypress. You need first to have installed dependancies with `npm ci`.
First run website with Docker then
+
```bash
# run in headless mode (only in terminal)
npm --prefix frontend run test:e2e-run
# run with graphical interface
npm --prefix frontend run test:e2e-open
-```
+```
### Customize configuration
+
See [Configuration Reference](https://cli.vuejs.org/config/).
diff --git a/frontend/cert/README.md b/frontend/cert/README.md
index 1971b787..1d2ee52b 100644
--- a/frontend/cert/README.md
+++ b/frontend/cert/README.md
@@ -1,3 +1,3 @@
-This folder is only useful if your network imposes you to use custom certs.
-
-You can ignore it otherwise.
\ No newline at end of file
+This folder is only useful if your network imposes you to use custom certs.
+
+You can ignore it otherwise.
diff --git a/frontend/cypress.config.cjs b/frontend/cypress.config.cjs
index f9ab8144..67796588 100644
--- a/frontend/cypress.config.cjs
+++ b/frontend/cypress.config.cjs
@@ -1,11 +1,11 @@
-const { defineConfig } = require('cypress')
+const { defineConfig } = require("cypress");
-const frontendHost = process.env.FRONTEND_HOST || 'localhost'
-const frontendPort = process.env.FRONTEND_PORT || '3000'
+const frontendHost = process.env.FRONTEND_HOST || "localhost";
+const frontendPort = process.env.FRONTEND_PORT || "3000";
module.exports = defineConfig({
e2e: {
- specPattern: 'cypress/e2e/**/*.{cy,spec}.{js,ts}',
+ specPattern: "cypress/e2e/**/*.{cy,spec}.{js,ts}",
baseUrl: `http://${frontendHost}:${frontendPort}`,
// NEO - Crosscall X4 - Résolution : 18:9
// Iphone XR
@@ -13,4 +13,4 @@ module.exports = defineConfig({
viewportHeight: 896,
video: false,
},
-})
+});
diff --git a/frontend/cypress/.eslintrc.cjs b/frontend/cypress/.eslintrc.cjs
index 0c938b0e..2ee3017f 100644
--- a/frontend/cypress/.eslintrc.cjs
+++ b/frontend/cypress/.eslintrc.cjs
@@ -1,12 +1,10 @@
module.exports = {
- plugins: [
- 'cypress',
- ],
+ plugins: ["cypress"],
env: {
mocha: true,
- 'cypress/globals': true,
+ "cypress/globals": true,
},
rules: {
- strict: 'off',
+ strict: "off",
},
-}
+};
diff --git a/frontend/cypress/e2e/firearm-fiability.cy.js b/frontend/cypress/e2e/firearm-fiability.cy.js
index 5415c9b7..6312f835 100644
--- a/frontend/cypress/e2e/firearm-fiability.cy.js
+++ b/frontend/cypress/e2e/firearm-fiability.cy.js
@@ -1,51 +1,50 @@
-describe('Firearm Fiability', () => {
- it('should identificate firearm with high fiability', () => {
- cy.Identification()
+describe("Firearm Fiability", () => {
+ it("should identificate firearm with high confidence", () => {
+ cy.Identification();
- cy.getByDataTestid('select-file').as('fileInput')
- cy.intercept('POST', '/api/upload').as('upload')
- cy.get('@fileInput').selectFile('./cypress/images/pistolet-semi-auto.jpg', { force: true })
- cy.wait('@upload').then(({ response }) => {
- expect(response.statusCode).to.eq(200)
- })
- cy.getByDataTestid('next-step').click()
- cy.IdentificationPistoletSemiAuto()
- cy.url().should('contain', '/guide-identification/resultat-final')
- cy.getByDataTestid('arm-category').should('contain', 'Catégorie B')
- cy.getByDataTestid('arm-category').should(() => {
- expect(localStorage.getItem('confidenceLevel')).to.eq('"high"')
- })
- })
+ cy.getByDataTestid("select-file").as("fileInput");
+ cy.intercept("POST", "/api/upload").as("upload");
+ cy.get("@fileInput").selectFile("./cypress/images/pistolet-semi-auto.jpg", {
+ force: true,
+ });
+ cy.wait("@upload").then(({ response }) => {
+ expect(response.statusCode).to.eq(200);
+ });
+ cy.getByDataTestid("next-step").click();
+ cy.IdentificationPistoletSemiAuto();
+ cy.url().should("contain", "/guide-identification/resultat-final");
+ cy.getByDataTestid("arm-category").should("contain", "Catégorie B");
+ });
- it('should identificate firearm with medium fiability', () => {
- cy.Identification()
+ it("should identificate firearm with low confidence", () => {
+ cy.Identification();
- cy.getByDataTestid('select-file').as('fileInput')
- cy.intercept('POST', '/api/upload').as('upload')
- cy.get('@fileInput').selectFile('./cypress/images/arme-medium.png', { force: true })
- cy.wait('@upload').then(({ response }) => {
- expect(response.statusCode).to.eq(200)
- })
- cy.url().should('contain', '/guide-identification/resultat-typologie')
- cy.contains('h3', 'Catégorie A, B ou D')
- cy.get('h2').should(() => {
- expect(localStorage.getItem('confidenceLevel')).to.eq('"medium"')
- })
- })
+ cy.getByDataTestid("select-file").as("fileInput");
+ cy.intercept("POST", "/api/upload").as("upload");
+ cy.get("@fileInput").selectFile("./cypress/images/arme-medium.png", {
+ force: true,
+ });
+ cy.wait("@upload").then(({ response }) => {
+ expect(response.statusCode).to.eq(200);
+ });
+ cy.url().should("contain", "/carte-manquante");
+ cy.contains("Je souhaite tout de même poursuivre").click();
+ cy.url().should("contain", "/guide-identification/resultat-typologie");
+ cy.contains("h2", "Typologie non déterminée");
+ });
- it('should identificate firearm with low fiability', () => {
- cy.Identification()
+ it("should identificate firearm with low fiability", () => {
+ cy.Identification();
- cy.getByDataTestid('select-file').as('fileInput')
- cy.intercept('POST', '/api/upload').as('upload')
- cy.get('@fileInput').selectFile('./cypress/images/arme-low.png', { force: true })
- cy.wait('@upload').then(({ response }) => {
- expect(response.statusCode).to.eq(200)
- })
- cy.url().should('contain', '/guide-identification/resultat-typologie')
- cy.contains('h2', 'Catégorie non déterminée')
- cy.get('h2').should(() => {
- expect(localStorage.getItem('confidenceLevel')).to.eq('"low"')
- })
- })
-})
+ cy.getByDataTestid("select-file").as("fileInput");
+ cy.intercept("POST", "/api/upload").as("upload");
+ cy.get("@fileInput").selectFile("./cypress/images/arme-low.png", {
+ force: true,
+ });
+ cy.wait("@upload").then(({ response }) => {
+ expect(response.statusCode).to.eq(200);
+ });
+ cy.url().should("contain", "/guide-identification/resultat-typologie");
+ cy.contains("h2", "Typologie non déterminée");
+ });
+});
diff --git a/frontend/cypress/e2e/firearm-identification.cy.js b/frontend/cypress/e2e/firearm-identification.cy.js
index 198b5799..1b2ecc93 100644
--- a/frontend/cypress/e2e/firearm-identification.cy.js
+++ b/frontend/cypress/e2e/firearm-identification.cy.js
@@ -1,31 +1,35 @@
-describe('Firearm Identification', () => {
- it('should identificate real firearm', () => {
- cy.Identification()
- cy.getByDataTestid('select-file').as('fileInput')
- cy.intercept('POST', '/api/upload').as('upload')
- cy.get('@fileInput').selectFile('./cypress/images/pistolet-semi-auto.jpg', { force: true })
- cy.wait('@upload').then(({ response }) => {
- expect(response.statusCode).to.eq(200)
- })
- cy.getByDataTestid('next-step').click()
- cy.IdentificationPistoletSemiAuto()
- cy.url().should('contain', '/guide-identification/resultat-final')
- cy.getByDataTestid('arm-category').should('contain', 'Catégorie B')
- cy.getByDataTestid('return-to-home-end').click()
- cy.url().should('contain', '/accueil')
- })
+describe("Firearm Identification", () => {
+ it("should identificate real firearm", () => {
+ cy.Identification();
+ cy.getByDataTestid("select-file").as("fileInput");
+ cy.intercept("POST", "/api/upload").as("upload");
+ cy.get("@fileInput").selectFile("./cypress/images/pistolet-semi-auto.jpg", {
+ force: true,
+ });
+ cy.wait("@upload").then(({ response }) => {
+ expect(response.statusCode).to.eq(200);
+ });
+ cy.getByDataTestid("next-step").click();
+ cy.IdentificationPistoletSemiAuto();
+ cy.url().should("contain", "/guide-identification/resultat-final");
+ cy.getByDataTestid("arm-category").should("contain", "Catégorie B");
+ cy.getByDataTestid("return-to-home-end").click();
+ cy.url().should("contain", "/accueil");
+ });
- it('should identificate dummy firearm', () => {
- cy.Identification()
- cy.getByDataTestid('select-file').as('fileInput')
- cy.intercept('POST', '/api/upload').as('upload')
- cy.get('@fileInput').selectFile('./cypress/images/pistolet-semi-auto.jpg', { force: true })
- cy.wait('@upload').then(({ response }) => {
- expect(response.statusCode).to.eq(200)
- })
- cy.getByDataTestid('next-step').click()
- cy.IdentificationDummyPistolet()
- cy.getByDataTestid('return-to-home-end').click()
- cy.url().should('contain', '/accueil')
- })
-})
+ it("should identificate dummy firearm", () => {
+ cy.Identification();
+ cy.getByDataTestid("select-file").as("fileInput");
+ cy.intercept("POST", "/api/upload").as("upload");
+ cy.get("@fileInput").selectFile("./cypress/images/pistolet-semi-auto.jpg", {
+ force: true,
+ });
+ cy.wait("@upload").then(({ response }) => {
+ expect(response.statusCode).to.eq(200);
+ });
+ cy.getByDataTestid("next-step").click();
+ cy.IdentificationDummyPistolet();
+ cy.getByDataTestid("return-to-home-end").click();
+ cy.url().should("contain", "/accueil");
+ });
+});
diff --git a/frontend/cypress/e2e/firearm-securing.cy.js b/frontend/cypress/e2e/firearm-securing.cy.js
index 4f1a57fc..bf3888ba 100644
--- a/frontend/cypress/e2e/firearm-securing.cy.js
+++ b/frontend/cypress/e2e/firearm-securing.cy.js
@@ -1,32 +1,34 @@
-describe('Securing Firearm and Identification', () => {
- it('should secure and identificate real firearm', () => {
- cy.miseEnSecurite()
- cy.getByDataTestid('select-file').as('fileInput')
- cy.intercept('POST', '/api/upload').as('upload')
- cy.get('@fileInput').selectFile('./cypress/images/pistolet-semi-auto.jpg', { force: true })
- cy.wait('@upload').then(({ response }) => {
- expect(response.statusCode).to.eq(200)
- })
- cy.url().should('contain', '/mise-en-securite-choix-option-etape/1')
- cy.getByDataTestid('button-next').should('have.attr', 'disabled')
- cy.contains('Bouton à côté du pontet').first().click()
- cy.getByDataTestid('button-next').should('not.have.attr', 'disabled')
- cy.getByDataTestid('button-next').click()
- cy.url().should('contain', '/mise-en-securite-tutoriel')
- cy.getVideo()
- cy.contains('h1', 'Mettre en sécurité mon arme')
- cy.contains('li', 'Actionner la culasse')
- cy.getByDataTestid('button-next').click()
- cy.contains('h1', 'Fin de la mise en sécurité')
- cy.getByDataTestid('go-to-identification').click()
- cy.url().should('contain', '/guide-identification/resultat-typologie')
- cy.contains('h1', 'Typologie de l\'arme')
- cy.contains('p', 'Basegun a identifié votre arme')
- cy.getByDataTestid('next-step').click()
- cy.IdentificationPistoletSemiAuto()
- cy.url().should('contain', '/guide-identification/resultat-final')
- cy.getByDataTestid('arm-category').should('contain', 'Catégorie B')
- cy.getByDataTestid('return-to-home-end').click()
- cy.url().should('contain', '/accueil')
- })
-})
+describe("Securing Firearm and Identification", () => {
+ it("should secure and identificate real firearm", () => {
+ cy.miseEnSecurite();
+ cy.getByDataTestid("select-file").as("fileInput");
+ cy.intercept("POST", "/api/upload").as("upload");
+ cy.get("@fileInput").selectFile("./cypress/images/pistolet-semi-auto.jpg", {
+ force: true,
+ });
+ cy.wait("@upload").then(({ response }) => {
+ expect(response.statusCode).to.eq(200);
+ });
+ cy.url().should("contain", "/mise-en-securite-choix-option-etape/1");
+ cy.getByDataTestid("button-next").should("have.attr", "disabled");
+ cy.contains("Bouton à côté du pontet").first().click();
+ cy.getByDataTestid("button-next").should("not.have.attr", "disabled");
+ cy.getByDataTestid("button-next").click();
+ cy.url().should("contain", "/mise-en-securite-tutoriel");
+ cy.getVideo();
+ cy.contains("h1", "Mettre en sécurité mon arme");
+ cy.contains("li", "Actionner la culasse");
+ cy.getByDataTestid("button-next").click();
+ cy.contains("h1", "Fin de la mise en sécurité");
+ cy.getByDataTestid("go-to-identification").click();
+ cy.url().should("contain", "/guide-identification/resultat-typologie");
+ cy.contains("h1", "Typologie de l'arme");
+ cy.contains("p", "Basegun a identifié votre arme");
+ cy.getByDataTestid("next-step").click();
+ cy.IdentificationPistoletSemiAuto();
+ cy.url().should("contain", "/guide-identification/resultat-final");
+ cy.getByDataTestid("arm-category").should("contain", "Catégorie B");
+ cy.getByDataTestid("return-to-home-end").click();
+ cy.url().should("contain", "/accueil");
+ });
+});
diff --git a/frontend/cypress/e2e/home.cy.js b/frontend/cypress/e2e/home.cy.js
index c0a7d27b..82c5137a 100644
--- a/frontend/cypress/e2e/home.cy.js
+++ b/frontend/cypress/e2e/home.cy.js
@@ -1,56 +1,40 @@
-describe('HomePage', () => {
- it('shoud visit HomePage', () => {
- cy.visit('/')
- cy.getByDataTestid('basegun-logo').should('exist')
- cy.contains('li', 'Basegun est une application')
- cy.get('swiper-container').shadow().find('.swiper-button-next').click()
- cy.contains('li', 'ne remplace en aucun cas l\'avis d\'un expert')
- cy.get('#agree-button').contains('J\'ai compris').click()
- cy.url().should('contain', '/accueil')
- })
+describe("HomePage", () => {
+ it("shoud visit HomePage", () => {
+ cy.visit("/");
+ cy.getByDataTestid("basegun-logo").should("exist");
+ cy.contains("li", "Basegun est une application");
+ cy.get("swiper-container").shadow().find(".swiper-button-next").click();
+ cy.contains("li", "ne remplace en aucun cas l'avis d'un expert");
+ cy.get("#agree-button").contains("J'ai compris").click();
+ cy.url().should("contain", "/accueil");
+ });
- it('should open Menu informations', () => {
- cy.visit('/')
- cy.getByDataTestid('header-logo').contains('Ministère')
- cy.get('#button-menu')
- .should('exist')
- .click()
- cy.getByRole('navigation')
- .contains('a', 'A propos')
- .click()
- cy.url()
- .should('contain', '/a-propos')
- cy.contains('p', 'Basegun est un projet')
+ it("should open Menu informations", () => {
+ cy.visit("/");
+ cy.getByDataTestid("header-logo").contains("Ministère");
+ cy.get("#button-menu").should("exist").click();
+ cy.getByRole("navigation").contains("a", "A propos").click();
+ cy.url().should("contain", "/a-propos");
+ cy.contains("p", "Basegun est un projet");
- cy.get('#button-menu')
- .click()
- cy.getByRole('navigation')
- .contains('a', 'Mentions légales')
- .click()
- cy.url()
- .should('contain', '/mentions-legales')
- cy.contains('p', 'Basegun')
+ cy.get("#button-menu").click();
+ cy.getByRole("navigation").contains("a", "Mentions légales").click();
+ cy.url().should("contain", "/mentions-legales");
+ cy.contains("p", "Basegun");
- cy.get('#button-menu')
- .click()
- cy.getByRole('navigation')
- .contains('a', 'Contact')
- .click()
- cy.url()
- .should('contain', '/contact')
- cy.contains('a', 'support.basegun@interieur.gouv.fr')
- cy.getByRole('navigation')
- .contains('a', 'Important')
- .click({ force: true })
+ cy.get("#button-menu").click();
+ cy.getByRole("navigation").contains("a", "Contact").click();
+ cy.url().should("contain", "/contact");
+ cy.contains("a", "support.basegun@interieur.gouv.fr");
+ cy.getByRole("navigation")
+ .contains("a", "Important")
+ .click({ force: true });
- cy.get('#button-menu')
- .click()
- cy.getByRole('navigation')
- .contains('a', 'Accessibilité : partiellement conforme')
- .click()
- cy.url()
- .should('contain', '/accessibilite')
- cy.contains('h1', 'Déclaration d’accessibilité')
- })
-},
-)
+ cy.get("#button-menu").click();
+ cy.getByRole("navigation")
+ .contains("a", "Accessibilité : partiellement conforme")
+ .click();
+ cy.url().should("contain", "/accessibilite");
+ cy.contains("h1", "Déclaration d’accessibilité");
+ });
+});
diff --git a/frontend/cypress/e2e/old-mechanism-pistol-securing.cy.js b/frontend/cypress/e2e/old-mechanism-pistol-securing.cy.js
index 4f826eb8..48f058b1 100644
--- a/frontend/cypress/e2e/old-mechanism-pistol-securing.cy.js
+++ b/frontend/cypress/e2e/old-mechanism-pistol-securing.cy.js
@@ -1,15 +1,18 @@
-describe('Old Mechanism Pistol Securing', () => {
- it('should secure and identificate old mechanism pistol', () => {
- cy.miseEnSecurite()
- cy.getByDataTestid('select-file').as('fileInput')
- cy.intercept('POST', '/api/upload').as('upload')
- cy.get('@fileInput').selectFile('./cypress/images/pistolet-ancien-a-percussion-monocoup.jpg', { force: true })
- cy.wait('@upload').then(({ response }) => {
- expect(response.statusCode).to.eq(200)
- })
- cy.pasDeGuide()
- cy.getByDataTestid('arm-category').should('contain', 'Catégorie D')
- cy.getByDataTestid('return-to-home-end').click()
- cy.url().should('contain', '/accueil')
- })
-})
+describe("Old Mechanism Pistol Securing", () => {
+ it("should secure and identificate old mechanism pistol", () => {
+ cy.miseEnSecurite();
+ cy.getByDataTestid("select-file").as("fileInput");
+ cy.intercept("POST", "/api/upload").as("upload");
+ cy.get("@fileInput").selectFile(
+ "./cypress/images/pistolet-ancien-a-percussion-monocoup.jpg",
+ { force: true },
+ );
+ cy.wait("@upload").then(({ response }) => {
+ expect(response.statusCode).to.eq(200);
+ });
+ cy.pasDeGuide();
+ cy.getByDataTestid("arm-category").should("contain", "Catégorie D");
+ cy.getByDataTestid("return-to-home-end").click();
+ cy.url().should("contain", "/accueil");
+ });
+});
diff --git a/frontend/cypress/e2e/recommendations-civilians-vs-fsi.cy.js b/frontend/cypress/e2e/recommendations-civilians-vs-fsi.cy.js
index 2600c97b..85e71f65 100644
--- a/frontend/cypress/e2e/recommendations-civilians-vs-fsi.cy.js
+++ b/frontend/cypress/e2e/recommendations-civilians-vs-fsi.cy.js
@@ -1,33 +1,34 @@
-describe('Recommendations Civilians vs FSI', () => {
- it('should show application version FSI', () => {
- cy.visit('/', {
- onBeforeLoad: win => {
- Object.defineProperty(win.navigator, 'userAgent', {
- value: 'SAID',
- })
+describe("Recommendations Civilians vs FSI", () => {
+ it("should show application version FSI", () => {
+ cy.visit("/", {
+ onBeforeLoad: (win) => {
+ Object.defineProperty(win.navigator, "userAgent", {
+ value: "SAID",
+ });
},
- })
- cy.accueil()
- cy.getByDataTestid('secure-firearm')
- .contains('Je veux mettre en sécurité mon arme')
- .click()
- cy.contains('h1', 'Mettre en sécurité mon arme')
- cy.contains('p', 'En cas de doute,')
- })
+ });
+ cy.accueil();
+ cy.getByDataTestid("secure-firearm")
+ .contains("Je veux mettre en sécurité mon arme")
+ .click();
+ cy.contains("h1", "Mettre en sécurité mon arme");
+ cy.contains("p", "En cas de doute,");
+ });
- it('should show application version Civilians', () => {
- cy.visit('/', {
- onBeforeLoad: win => {
- Object.defineProperty(win.navigator, 'userAgent', {
- value: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1',
- })
+ it("should show application version Civilians", () => {
+ cy.visit("/", {
+ onBeforeLoad: (win) => {
+ Object.defineProperty(win.navigator, "userAgent", {
+ value:
+ "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1",
+ });
},
- })
- cy.accueil()
- cy.getByDataTestid('secure-firearm')
- .contains('Je veux mettre en sécurité mon arme')
- .click()
- cy.contains('h1', 'Mettre en sécurité mon arme')
- cy.contains('span', 'extraire des munitions')
- })
-})
+ });
+ cy.accueil();
+ cy.getByDataTestid("secure-firearm")
+ .contains("Je veux mettre en sécurité mon arme")
+ .click();
+ cy.contains("h1", "Mettre en sécurité mon arme");
+ cy.contains("span", "extraire des munitions");
+ });
+});
diff --git a/frontend/cypress/e2e/shoulder-bolt-rifle-securing.cy.js b/frontend/cypress/e2e/shoulder-bolt-rifle-securing.cy.js
index 3d2605b7..2f9c44fc 100644
--- a/frontend/cypress/e2e/shoulder-bolt-rifle-securing.cy.js
+++ b/frontend/cypress/e2e/shoulder-bolt-rifle-securing.cy.js
@@ -1,21 +1,23 @@
-describe('Shoulder Bolt Rifle Securing', () => {
- it('should secure and identficate real shoulder bolt rifle', () => {
- cy.miseEnSecurite()
- cy.getByDataTestid('select-file').as('fileInput')
- cy.intercept('POST', '/api/upload').as('upload')
- cy.get('@fileInput').selectFile('./cypress/images/epaule-a-verrou.jpg', { force: true })
- cy.wait('@upload').then(({ response }) => {
- expect(response.statusCode).to.eq(200)
- })
- cy.getVideo()
- cy.url().should('contain', '/mise-en-securite-tutoriel')
- cy.contains('h1', 'Mettre en sécurité mon arme')
- cy.contains('li', 'Ouvrez la culasse')
- cy.getByDataTestid('button-next').click()
- cy.IdentificationShoulderBoltRifle()
- cy.url().should('contain', '/guide-identification/resultat-final')
- cy.getByDataTestid('arm-category').should('contain', 'Catégorie C')
- cy.getByDataTestid('return-to-home-end').click()
- cy.url().should('contain', '/accueil')
- })
-})
+describe("Shoulder Bolt Rifle Securing", () => {
+ it("should secure and identficate real shoulder bolt rifle", () => {
+ cy.miseEnSecurite();
+ cy.getByDataTestid("select-file").as("fileInput");
+ cy.intercept("POST", "/api/upload").as("upload");
+ cy.get("@fileInput").selectFile("./cypress/images/epaule-a-verrou.jpg", {
+ force: true,
+ });
+ cy.wait("@upload").then(({ response }) => {
+ expect(response.statusCode).to.eq(200);
+ });
+ cy.getVideo();
+ cy.url().should("contain", "/mise-en-securite-tutoriel");
+ cy.contains("h1", "Mettre en sécurité mon arme");
+ cy.contains("li", "Ouvrez la culasse");
+ cy.getByDataTestid("button-next").click();
+ cy.IdentificationShoulderBoltRifle();
+ cy.url().should("contain", "/guide-identification/resultat-final");
+ cy.getByDataTestid("arm-category").should("contain", "Catégorie B ou C");
+ cy.getByDataTestid("return-to-home-end").click();
+ cy.url().should("contain", "/accueil");
+ });
+});
diff --git a/frontend/cypress/e2e/typology-revolver-identification.cy.js b/frontend/cypress/e2e/typology-revolver-identification.cy.js
index 6e658a8d..9e195b1f 100644
--- a/frontend/cypress/e2e/typology-revolver-identification.cy.js
+++ b/frontend/cypress/e2e/typology-revolver-identification.cy.js
@@ -1,16 +1,18 @@
-describe('Typology Revolver Identification', () => {
- it('should identificate revolver typology', () => {
- cy.Identification()
- cy.getByDataTestid('select-file').as('fileInput')
- cy.intercept('POST', '/api/upload').as('upload')
- cy.get('@fileInput').selectFile('./cypress/images/revolver.jpg', { force: true })
- cy.wait('@upload').then(({ response }) => {
- expect(response.statusCode).to.eq(200)
- })
- cy.IdentificationRevolver()
- cy.url().should('contain', '/guide-identification/resultat-final')
- cy.getByDataTestid('arm-category').should('contain', 'Catégorie B ou D')
- cy.getByDataTestid('return-to-home-end').click()
- cy.url().should('contain', '/accueil')
- })
-})
+describe("Typology Revolver Identification", () => {
+ it("should identificate revolver typology", () => {
+ cy.Identification();
+ cy.getByDataTestid("select-file").as("fileInput");
+ cy.intercept("POST", "/api/upload").as("upload");
+ cy.get("@fileInput").selectFile("./cypress/images/revolver.jpg", {
+ force: true,
+ });
+ cy.wait("@upload").then(({ response }) => {
+ expect(response.statusCode).to.eq(200);
+ });
+ cy.IdentificationRevolver();
+ cy.url().should("contain", "/guide-identification/resultat-final");
+ cy.getByDataTestid("arm-category").should("contain", "Catégorie B ou D");
+ cy.getByDataTestid("return-to-home-end").click();
+ cy.url().should("contain", "/accueil");
+ });
+});
diff --git a/frontend/cypress/e2e/typology-revolver-securing.cy.js b/frontend/cypress/e2e/typology-revolver-securing.cy.js
index ec1ac189..e2389518 100644
--- a/frontend/cypress/e2e/typology-revolver-securing.cy.js
+++ b/frontend/cypress/e2e/typology-revolver-securing.cy.js
@@ -1,74 +1,80 @@
-describe('Typology Revolver Securing', () => {
- it('should identificate revolver with small fireplaces (?) ', () => {
- cy.miseEnSecurite()
- cy.getByDataTestid('select-file').as('fileInput')
- cy.intercept('POST', '/api/upload').as('upload')
- cy.get('@fileInput').selectFile('./cypress/images/revolver.jpg', { force: true })
- cy.wait('@upload').then(({ response }) => {
- expect(response.statusCode).to.eq(200)
- })
- cy.url().should('contain', '/mise-en-securite-choix-option-etape/1')
- cy.getByDataTestid('button-next').should('have.attr', 'disabled')
- cy.contains('Petites Cheminées').first().click()
- cy.getByDataTestid('button-next').should('not.have.attr', 'disabled')
- cy.getByDataTestid('button-next').click()
- cy.url().should('contain', '/fin-mise-en-securite')
- cy.contains('h1', 'mise en sécurité')
- cy.contains('p', 'les manipulations sont complexes')
- cy.getByDataTestid('go-to-identification').click()
- cy.url().should('contain', '/guide-identification/resultat-final')
- cy.getByDataTestid('arm-category').should('contain', 'Catégorie D')
- })
+describe("Typology Revolver Securing", () => {
+ it("should identificate revolver with small fireplaces (?) ", () => {
+ cy.miseEnSecurite();
+ cy.getByDataTestid("select-file").as("fileInput");
+ cy.intercept("POST", "/api/upload").as("upload");
+ cy.get("@fileInput").selectFile("./cypress/images/revolver.jpg", {
+ force: true,
+ });
+ cy.wait("@upload").then(({ response }) => {
+ expect(response.statusCode).to.eq(200);
+ });
+ cy.url().should("contain", "/mise-en-securite-choix-option-etape/1");
+ cy.getByDataTestid("button-next").should("have.attr", "disabled");
+ cy.contains("Petites Cheminées").first().click();
+ cy.getByDataTestid("button-next").should("not.have.attr", "disabled");
+ cy.getByDataTestid("button-next").click();
+ cy.url().should("contain", "/fin-mise-en-securite");
+ cy.contains("h1", "mise en sécurité");
+ cy.contains("p", "les manipulations sont complexes");
+ cy.getByDataTestid("go-to-identification").click();
+ cy.url().should("contain", "/guide-identification/resultat-final");
+ cy.getByDataTestid("arm-category").should("contain", "Catégorie D");
+ });
- it('should secure and identificate real revolver with barrel button', () => {
- cy.miseEnSecurite()
- cy.getByDataTestid('select-file').as('fileInput')
- cy.intercept('POST', '/api/upload').as('upload')
- cy.get('@fileInput').selectFile('./cypress/images/revolver.jpg', { force: true })
- cy.wait('@upload').then(({ response }) => {
- expect(response.statusCode).to.eq(200)
- })
- cy.arrierePlatRevolver()
- cy.contains('Bouton à côté du barillet').first().click()
- cy.getByDataTestid('button-next').should('not.have.attr', 'disabled')
- cy.getByDataTestid('button-next').click()
- cy.getVideo()
- cy.contains('h1', 'Mettre en sécurité mon arme')
- cy.contains('li', 'Tirer ou pousser')
- cy.getByDataTestid('button-next').click()
- cy.url().should('contain', '/fin-mise-en-securite')
- cy.getByDataTestid('go-to-identification').click()
- cy.IdentificationRevolver()
- cy.url().should('contain', '/guide-identification/resultat-final')
- cy.getByDataTestid('arm-category').should('contain', 'Catégorie B')
- cy.getByDataTestid('return-to-home-end').click()
- cy.url().should('contain', '/accueil')
- })
- it('should secure and identificate real revolver with hidden door', () => {
- cy.miseEnSecurite()
- cy.getByDataTestid('select-file').as('fileInput')
- cy.intercept('POST', '/api/upload').as('upload')
- cy.get('@fileInput').selectFile('./cypress/images/revolver.jpg', { force: true })
- cy.wait('@upload').then(({ response }) => {
- expect(response.statusCode).to.eq(200)
- })
- cy.arrierePlatRevolver()
- cy.contains('Portière qui cache le côté droit du barillet').first().click()
- cy.getByDataTestid('button-next').should('not.have.attr', 'disabled')
- cy.getByDataTestid('button-next').click()
- cy.getByDataTestid('button-next').should('have.attr', 'disabled')
- cy.contains('Le barillet ne bascule pas').first().click()
- cy.getByDataTestid('button-next').should('not.have.attr', 'disabled')
- cy.getByDataTestid('button-next').click()
- cy.contains('h1', 'Mettre en sécurité mon arme')
- cy.contains('li', 'Contrôler que chaque chambre')
- cy.getByDataTestid('button-next').click()
- cy.url().should('contain', '/fin-mise-en-securite')
- cy.getByDataTestid('go-to-identification').click()
- cy.IdentificationRevolver()
- cy.url().should('contain', '/guide-identification/resultat-final')
- cy.getByDataTestid('arm-category').should('contain', 'Catégorie B')
- cy.getByDataTestid('return-to-home-end').click()
- cy.url().should('contain', '/accueil')
- })
-})
+ it("should secure and identificate real revolver with barrel button", () => {
+ cy.miseEnSecurite();
+ cy.getByDataTestid("select-file").as("fileInput");
+ cy.intercept("POST", "/api/upload").as("upload");
+ cy.get("@fileInput").selectFile("./cypress/images/revolver.jpg", {
+ force: true,
+ });
+ cy.wait("@upload").then(({ response }) => {
+ expect(response.statusCode).to.eq(200);
+ });
+ cy.arrierePlatRevolver();
+ cy.contains("Bouton à côté du barillet").first().click();
+ cy.getByDataTestid("button-next").should("not.have.attr", "disabled");
+ cy.getByDataTestid("button-next").click();
+ cy.getVideo();
+ cy.contains("h1", "Mettre en sécurité mon arme");
+ cy.contains("li", "Tirer ou pousser");
+ cy.getByDataTestid("button-next").click();
+ cy.url().should("contain", "/fin-mise-en-securite");
+ cy.getByDataTestid("go-to-identification").click();
+ cy.IdentificationRevolver();
+ cy.url().should("contain", "/guide-identification/resultat-final");
+ cy.getByDataTestid("arm-category").should("contain", "Catégorie B");
+ cy.getByDataTestid("return-to-home-end").click();
+ cy.url().should("contain", "/accueil");
+ });
+ it("should secure and identificate real revolver with hidden door", () => {
+ cy.miseEnSecurite();
+ cy.getByDataTestid("select-file").as("fileInput");
+ cy.intercept("POST", "/api/upload").as("upload");
+ cy.get("@fileInput").selectFile("./cypress/images/revolver.jpg", {
+ force: true,
+ });
+ cy.wait("@upload").then(({ response }) => {
+ expect(response.statusCode).to.eq(200);
+ });
+ cy.arrierePlatRevolver();
+ cy.contains("Portière qui cache le côté droit du barillet").first().click();
+ cy.getByDataTestid("button-next").should("not.have.attr", "disabled");
+ cy.getByDataTestid("button-next").click();
+ cy.getByDataTestid("button-next").should("have.attr", "disabled");
+ cy.contains("Le barillet ne bascule pas").first().click();
+ cy.getByDataTestid("button-next").should("not.have.attr", "disabled");
+ cy.getByDataTestid("button-next").click();
+ cy.contains("h1", "Mettre en sécurité mon arme");
+ cy.contains("li", "Contrôler que chaque chambre");
+ cy.getByDataTestid("button-next").click();
+ cy.url().should("contain", "/fin-mise-en-securite");
+ cy.getByDataTestid("go-to-identification").click();
+ cy.IdentificationRevolver();
+ cy.url().should("contain", "/guide-identification/resultat-final");
+ cy.getByDataTestid("arm-category").should("contain", "Catégorie B");
+ cy.getByDataTestid("return-to-home-end").click();
+ cy.url().should("contain", "/accueil");
+ });
+});
diff --git a/frontend/cypress/support/commands.js b/frontend/cypress/support/commands.js
index a78caadf..5cb05b48 100644
--- a/frontend/cypress/support/commands.js
+++ b/frontend/cypress/support/commands.js
@@ -23,164 +23,178 @@
//
// -- This will overwrite an existing command --
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
-import { mount } from 'cypress/vue'
-import '@testing-library/cypress/add-commands'
+import { mount } from "cypress/vue";
+import "@testing-library/cypress/add-commands";
-Cypress.Commands.add('mount', mount)
+Cypress.Commands.add("mount", mount);
-Cypress.Commands.add('getByDataTestid', (selector, options) => {
- return cy.get(`[data-testid=${selector}]`, options)
-})
+Cypress.Commands.add("getByDataTestid", (selector, options) => {
+ return cy.get(`[data-testid=${selector}]`, options);
+});
-Cypress.Commands.add('getByRole', (selector, options) => {
- return cy.get(`[role=${selector}]`, options)
-})
+Cypress.Commands.add("getByRole", (selector, options) => {
+ return cy.get(`[role=${selector}]`, options);
+});
-Cypress.Commands.add('getVideo', () => {
- cy.get('video')
- .then(
- ($video) => {
- $video[0].addEventListener('loadeddata', () => {
- $video[0].play()
- })
- $video[0].load()
- })
- cy.wait(3000)
- cy.get('video')
- .then(($video) => {
- $video[0].pause()
- })
- cy.wait(2000)
- cy.get('video').should('have.prop', 'paused', true)
-})
+Cypress.Commands.add("getVideo", () => {
+ cy.get("video").then(($video) => {
+ $video[0].addEventListener("loadeddata", () => {
+ $video[0].play();
+ });
+ $video[0].load();
+ });
+ cy.wait(3000);
+ cy.get("video").then(($video) => {
+ $video[0].pause();
+ });
+ cy.wait(2000);
+ cy.get("video").should("have.prop", "paused", true);
+});
-Cypress.Commands.add('accueil', () => {
- cy.getByDataTestid('basegun-logo').should('exist')
- cy.contains('li', 'Basegun est une application')
- cy.get('swiper-container').shadow().find('.swiper-button-next').click()
- cy.contains('li', 'ne remplace en aucun cas l\'avis d\'un expert')
- cy.get('#agree-button').contains('J\'ai compris').click()
- cy.url().should('contain', '/accueil')
-})
+Cypress.Commands.add("accueil", () => {
+ cy.getByDataTestid("basegun-logo").should("exist");
+ cy.contains("li", "Basegun est une application");
+ cy.get("swiper-container").shadow().find(".swiper-button-next").click();
+ cy.contains("li", "ne remplace en aucun cas l'avis d'un expert");
+ cy.get("#agree-button").contains("J'ai compris").click();
+ cy.url().should("contain", "/accueil");
+});
-Cypress.Commands.add('miseEnSecurite', () => {
- cy.visit('/')
- cy.getByDataTestid('basegun-logo').should('exist')
- cy.contains('li', 'Basegun est une application')
- cy.get('swiper-container').shadow().find('.swiper-button-next').click()
- cy.contains('li', 'ne remplace en aucun cas l\'avis d\'un expert')
- cy.get('#agree-button').contains('J\'ai compris').click()
- cy.url().should('contain', '/accueil')
- cy.getByDataTestid('secure-firearm')
- .contains('Je veux mettre en sécurité mon arme')
- .click()
- cy.contains('h1', 'Mettre en sécurité mon arme')
- cy.contains('span', 'extraire des munitions')
- cy.getByDataTestid('button-next')
- .contains('Suivant')
- .click()
- cy.contains('h1', 'Mettre en sécurité mon arme')
- cy.contains('span', 'DIRECTION SÛRE')
- cy.getByDataTestid('button-next')
- .contains('Suivant')
- .click()
- cy.contains('h1', 'Mettre en sécurité mon arme')
- cy.contains('span', 'tutoriel adapté')
- cy.getByDataTestid('button-next')
- .contains('Suivant')
- .click()
-})
+Cypress.Commands.add("miseEnSecurite", () => {
+ cy.visit("/");
+ cy.getByDataTestid("basegun-logo").should("exist");
+ cy.contains("li", "Basegun est une application");
+ cy.get("swiper-container").shadow().find(".swiper-button-next").click();
+ cy.contains("li", "ne remplace en aucun cas l'avis d'un expert");
+ cy.get("#agree-button").contains("J'ai compris").click();
+ cy.url().should("contain", "/accueil");
+ cy.getByDataTestid("secure-firearm")
+ .contains("Je veux mettre en sécurité mon arme")
+ .click();
+ cy.contains("h1", "Mettre en sécurité mon arme");
+ cy.contains("span", "extraire des munitions");
+ cy.getByDataTestid("button-next").contains("Suivant").click();
+ cy.contains("h1", "Mettre en sécurité mon arme");
+ cy.contains("span", "DIRECTION SÛRE");
+ cy.getByDataTestid("button-next").contains("Suivant").click();
+ cy.contains("h1", "Mettre en sécurité mon arme");
+ cy.contains("span", "tutoriel adapté");
+ cy.getByDataTestid("button-next").contains("Suivant").click();
+});
-Cypress.Commands.add('Identification', () => {
- cy.visit('/')
- cy.getByDataTestid('basegun-logo').should('exist')
- cy.contains('li', 'Basegun est une application')
- cy.get('swiper-container').shadow().find('.swiper-button-next').click()
- cy.contains('li', 'ne remplace en aucun cas l\'avis d\'un expert')
- cy.get('#agree-button').contains('J\'ai compris').click()
- cy.url().should('contain', '/accueil')
- cy.getByDataTestid('identification')
- .contains('J’ai déjà mis mon arme en sécurité, je veux l’identifier')
- .click()
- cy.url().should('contain', '/instructions')
- cy.contains('h1', 'Pour un résultat optimal')
- cy.contains('span', 'canon vers la droite')
-})
+Cypress.Commands.add("Identification", () => {
+ cy.visit("/");
+ cy.getByDataTestid("basegun-logo").should("exist");
+ cy.contains("li", "Basegun est une application");
+ cy.get("swiper-container").shadow().find(".swiper-button-next").click();
+ cy.contains("li", "ne remplace en aucun cas l'avis d'un expert");
+ cy.get("#agree-button").contains("J'ai compris").click();
+ cy.url().should("contain", "/accueil");
+ cy.getByDataTestid("identification")
+ .contains("J’ai déjà mis mon arme en sécurité, je veux l’identifier")
+ .click();
+ cy.url().should("contain", "/instructions");
+ cy.contains("h1", "Pour un résultat optimal");
+ cy.contains("span", "canon vers la droite");
+});
-Cypress.Commands.add('IdentificationPistoletSemiAuto', () => {
- cy.url().should('contain', 'guide-identification/informations-complementaires')
- cy.getByDataTestid('next-step').click()
- cy.url().should('contain', '/guide-identification/munition-type')
- cy.getByDataTestid('next-step').should('have.attr', 'disabled')
- cy.contains('Cartouches').first().click()
- cy.getByDataTestid('next-step').should('not.have.attr', 'disabled')
- cy.getByDataTestid('next-step').click()
- cy.url().should('contain', '/guide-identification/armes-alarme')
- cy.getByDataTestid('instruction-armeAlarme').should('contain', 'Votre arme')
- cy.getByDataTestid('next-step').click()
- cy.getByDataTestid('aucune-correspondance').click()
- cy.getByDataTestid('next-step').click()
-})
+Cypress.Commands.add("IdentificationPistoletSemiAuto", () => {
+ cy.url().should(
+ "contain",
+ "guide-identification/informations-complementaires",
+ );
+ cy.getByDataTestid("next-step").click();
+ cy.url().should("contain", "/guide-identification/munition-type");
+ cy.getByDataTestid("next-step").should("have.attr", "disabled");
+ cy.contains("Cartouches").first().click();
+ cy.getByDataTestid("next-step").should("not.have.attr", "disabled");
+ cy.getByDataTestid("next-step").click();
+ cy.url().should("contain", "/guide-identification/armes-alarme");
+ cy.getByDataTestid("instruction-armeAlarme").should("contain", "Votre arme");
+ cy.getByDataTestid("next-step").click();
+ cy.getByDataTestid("aucune-correspondance").click();
+ cy.getByDataTestid("next-step").click();
+});
-Cypress.Commands.add('IdentificationRevolver', () => {
- cy.url().should('contain', '/resultat-typologie')
- cy.getByDataTestid('next-step').click()
- cy.url().should('contain', 'guide-identification/informations-complementaires')
- cy.getByDataTestid('explanation').should('contain', 'questions supplémentaires')
- cy.getByDataTestid('next-step').click()
- cy.url().should('contain', '/guide-identification/munition-type')
- cy.getByDataTestid('next-step').should('have.attr', 'disabled')
- cy.contains('Balles').first().click()
- cy.getByDataTestid('next-step').should('not.have.attr', 'disabled')
- cy.getByDataTestid('next-step').click()
- cy.url().should('contain', '/guide-identification/armes-alarme')
- cy.getByDataTestid('instruction-armeAlarme').should('contain', 'Votre arme')
- cy.getByDataTestid('next-step').click()
- cy.getByDataTestid('aucune-correspondance').click()
- cy.getByDataTestid('next-step').click()
-})
+Cypress.Commands.add("IdentificationRevolver", () => {
+ cy.url().should("contain", "/resultat-typologie");
+ cy.getByDataTestid("next-step").click();
+ cy.url().should(
+ "contain",
+ "guide-identification/informations-complementaires",
+ );
+ cy.getByDataTestid("explanation").should(
+ "contain",
+ "questions supplémentaires",
+ );
+ cy.getByDataTestid("next-step").click();
+ cy.url().should("contain", "/guide-identification/munition-type");
+ cy.getByDataTestid("next-step").should("have.attr", "disabled");
+ cy.contains("Balles").first().click();
+ cy.getByDataTestid("next-step").should("not.have.attr", "disabled");
+ cy.getByDataTestid("next-step").click();
+ cy.url().should("contain", "/guide-identification/armes-alarme");
+ cy.getByDataTestid("instruction-armeAlarme").should("contain", "Votre arme");
+ cy.getByDataTestid("next-step").click();
+ cy.getByDataTestid("aucune-correspondance").click();
+ cy.getByDataTestid("next-step").click();
+});
-Cypress.Commands.add('arrierePlatRevolver', () => {
- cy.url().should('contain', '/mise-en-securite-choix-option-etape/1')
- cy.getByDataTestid('button-next').should('have.attr', 'disabled')
- cy.contains('Arrière plat').first().click()
- cy.getByDataTestid('button-next').should('not.have.attr', 'disabled')
- cy.getByDataTestid('button-next').click()
- cy.url().should('contain', '/mise-en-securite-choix-option-etape/2')
- cy.getByDataTestid('button-next').should('have.attr', 'disabled')
-})
+Cypress.Commands.add("arrierePlatRevolver", () => {
+ cy.url().should("contain", "/mise-en-securite-choix-option-etape/1");
+ cy.getByDataTestid("button-next").should("have.attr", "disabled");
+ cy.contains("Arrière plat").first().click();
+ cy.getByDataTestid("button-next").should("not.have.attr", "disabled");
+ cy.getByDataTestid("button-next").click();
+ cy.url().should("contain", "/mise-en-securite-choix-option-etape/2");
+ cy.getByDataTestid("button-next").should("have.attr", "disabled");
+});
-Cypress.Commands.add('IdentificationShoulderBoltRifle', () => {
- cy.url().should('contain', '/fin-mise-en-securite')
- cy.getByDataTestid('go-to-identification').click()
- cy.url().should('contain', '/resultat-typologie')
- cy.getByDataTestid('next-step').click()
- cy.url().should('contain', 'guide-identification/informations-complementaires')
- cy.getByDataTestid('explanation').should('contain', 'questions supplémentaires')
- cy.getByDataTestid('next-step').click()
- cy.url().should('contain', '/guide-identification/munition-type')
- cy.getByDataTestid('next-step').should('have.attr', 'disabled')
- cy.contains('Balles').first().click()
- cy.getByDataTestid('next-step').should('not.have.attr', 'disabled')
- cy.getByDataTestid('next-step').click()
-})
+Cypress.Commands.add("IdentificationShoulderBoltRifle", () => {
+ cy.url().should("contain", "/fin-mise-en-securite");
+ cy.getByDataTestid("go-to-identification").click();
+ cy.url().should("contain", "/carte-manquante");
+ cy.contains("Je souhaite tout de même poursuivre").click();
+ cy.url().should("contain", "/resultat-typologie");
+ cy.getByDataTestid("next-step").click();
+ cy.url().should(
+ "contain",
+ "guide-identification/informations-complementaires",
+ );
+ cy.getByDataTestid("explanation").should(
+ "contain",
+ "questions supplémentaires",
+ );
+ cy.getByDataTestid("next-step").click();
+ cy.url().should("contain", "/guide-identification/munition-type");
+ cy.getByDataTestid("next-step").should("have.attr", "disabled");
+ cy.contains("Balles").first().click();
+ cy.getByDataTestid("next-step").should("not.have.attr", "disabled");
+ cy.getByDataTestid("next-step").click();
+});
-Cypress.Commands.add('IdentificationDummyPistolet', () => {
- cy.url().should('contain', '/guide-identification/informations-complementaires')
- cy.getByDataTestid('explanation').should('contain', 'questions supplémentaires')
- cy.getByDataTestid('next-step').click()
- cy.getByDataTestid('next-step').should('have.attr', 'disabled')
- cy.contains('Billes').first().click()
- cy.url().should('contain', '/guide-identification/munition-type')
- cy.getByDataTestid('next-step').should('not.have.attr', 'disabled')
- cy.getByDataTestid('next-step').click()
- cy.url().should('contain', '/guide-identification/resultat-final')
- cy.getByDataTestid('arm-category').should('contain', 'Catégorie Non Classée')
-})
+Cypress.Commands.add("IdentificationDummyPistolet", () => {
+ cy.url().should(
+ "contain",
+ "/guide-identification/informations-complementaires",
+ );
+ cy.getByDataTestid("explanation").should(
+ "contain",
+ "questions supplémentaires",
+ );
+ cy.getByDataTestid("next-step").click();
+ cy.getByDataTestid("next-step").should("have.attr", "disabled");
+ cy.contains("Billes").first().click();
+ cy.url().should("contain", "/guide-identification/munition-type");
+ cy.getByDataTestid("next-step").should("not.have.attr", "disabled");
+ cy.getByDataTestid("next-step").click();
+ cy.url().should("contain", "/guide-identification/resultat-final");
+ cy.getByDataTestid("arm-category").should("contain", "Catégorie Non Classée");
+});
-Cypress.Commands.add('pasDeGuide', () => {
- cy.contains('h1', 'Pas de guide de mise en sécurité pour votre arme')
- cy.url().should('contain', '/fin-mise-en-securite')
- cy.getByDataTestid('go-to-identification').click()
- cy.url().should('contain', '/guide-identification/resultat-typologie')
-})
+Cypress.Commands.add("pasDeGuide", () => {
+ cy.contains("h1", "Pas de guide de mise en sécurité pour votre arme");
+ cy.url().should("contain", "/fin-mise-en-securite");
+ cy.getByDataTestid("go-to-identification").click();
+ cy.url().should("contain", "/guide-identification/resultat-typologie");
+});
diff --git a/frontend/cypress/support/e2e.js b/frontend/cypress/support/e2e.js
index d68db96d..d076cec9 100644
--- a/frontend/cypress/support/e2e.js
+++ b/frontend/cypress/support/e2e.js
@@ -14,7 +14,7 @@
// ***********************************************************
// Import commands.js using ES2015 syntax:
-import './commands'
+import "./commands";
// Alternatively you can use CommonJS syntax:
// require('./commands')
diff --git a/frontend/cypress/tsconfig.json b/frontend/cypress/tsconfig.json
index eb38171b..b5b2f972 100644
--- a/frontend/cypress/tsconfig.json
+++ b/frontend/cypress/tsconfig.json
@@ -1,8 +1,8 @@
-{
- "compilerOptions": {
- "target": "es5",
- "lib": ["es5", "dom"],
+{
+ "compilerOptions": {
+ "target": "es5",
+ "lib": ["es5", "dom"],
"types": ["cypress"]
- },
- "include": ["./**/*"]
+ },
+ "include": ["./**/*"]
}
diff --git a/frontend/index.html b/frontend/index.html
index a53b7942..3d3ce834 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -1,21 +1,36 @@
-
+
-
-
-
-
+
+
+
+
Basegun
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/frontend/jsconfig.json b/frontend/jsconfig.json
index 38caa457..88cf2e5b 100644
--- a/frontend/jsconfig.json
+++ b/frontend/jsconfig.json
@@ -8,7 +8,7 @@
},
"moduleResolution": "node",
"sourceMap": true,
- "jsx": "preserve",
+ "jsx": "preserve"
},
"exclude": ["node_modules"]
-}
\ No newline at end of file
+}
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 1699b144..7b2bb793 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -14,7 +14,7 @@
"axios": "^1.6.7",
"luxon": "^3.4.4",
"pinia": "^2.1.7",
- "stylelint-config-recommended-vue": "^1.5.0",
+ "pinia-plugin-persistedstate": "^3.2.1",
"swiper": "^11.0.6",
"vite": "^5.0.12",
"vue": "^3.4.15",
@@ -33,6 +33,7 @@
"@vue/tsconfig": "^0.5.1",
"cypress": "^13.7.1",
"eslint": "^8.56.0",
+ "eslint-config-prettier": "^9.1.0",
"eslint-config-standard": "^17.1.0",
"eslint-config-standard-with-typescript": "^43.0.1",
"eslint-plugin-cypress": "^2.15.1",
@@ -40,9 +41,7 @@
"eslint-plugin-n": "^16.6.2",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-vue": "^9.21.1",
- "start-server-and-test": "^2.0.3",
- "stylelint": "^16.2.1",
- "stylelint-config-standard": "^36.0.0",
+ "prettier": "3.3.1",
"typescript": "^5.3.3",
"unocss": "^0.58.5",
"unplugin-auto-import": "^0.17.5",
@@ -100,6 +99,7 @@
"version": "7.23.5",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
"integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "dev": true,
"dependencies": {
"@babel/highlight": "^7.23.4",
"chalk": "^2.4.2"
@@ -112,6 +112,7 @@
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -123,6 +124,7 @@
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -136,6 +138,7 @@
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
"dependencies": {
"color-name": "1.1.3"
}
@@ -143,12 +146,14 @@
"node_modules/@babel/code-frame/node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
},
"node_modules/@babel/code-frame/node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
"engines": {
"node": ">=0.8.0"
}
@@ -157,6 +162,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
"engines": {
"node": ">=4"
}
@@ -165,6 +171,7 @@
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -577,6 +584,7 @@
"version": "7.22.20",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
"integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "dev": true,
"engines": {
"node": ">=6.9.0"
}
@@ -623,6 +631,7 @@
"version": "7.23.4",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
"integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+ "dev": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.22.20",
"chalk": "^2.4.2",
@@ -636,6 +645,7 @@
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -647,6 +657,7 @@
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -660,6 +671,7 @@
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
"dependencies": {
"color-name": "1.1.3"
}
@@ -667,12 +679,14 @@
"node_modules/@babel/highlight/node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
},
"node_modules/@babel/highlight/node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
"engines": {
"node": ">=0.8.0"
}
@@ -681,6 +695,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
"engines": {
"node": ">=4"
}
@@ -688,12 +703,14 @@
"node_modules/@babel/highlight/node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
},
"node_modules/@babel/highlight/node_modules/supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -2060,88 +2077,6 @@
"node": ">=0.1.90"
}
},
- "node_modules/@csstools/css-parser-algorithms": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz",
- "integrity": "sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "engines": {
- "node": "^14 || ^16 || >=18"
- },
- "peerDependencies": {
- "@csstools/css-tokenizer": "^2.2.3"
- }
- },
- "node_modules/@csstools/css-tokenizer": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz",
- "integrity": "sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "engines": {
- "node": "^14 || ^16 || >=18"
- }
- },
- "node_modules/@csstools/media-query-list-parser": {
- "version": "2.1.7",
- "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz",
- "integrity": "sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "engines": {
- "node": "^14 || ^16 || >=18"
- },
- "peerDependencies": {
- "@csstools/css-parser-algorithms": "^2.5.0",
- "@csstools/css-tokenizer": "^2.2.3"
- }
- },
- "node_modules/@csstools/selector-specificity": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz",
- "integrity": "sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "engines": {
- "node": "^14 || ^16 || >=18"
- },
- "peerDependencies": {
- "postcss-selector-parser": "^6.0.13"
- }
- },
"node_modules/@cypress/request": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz",
@@ -2635,21 +2570,6 @@
"vue-router": "^4.2.4"
}
},
- "node_modules/@hapi/hoek": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
- "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
- "dev": true
- },
- "node_modules/@hapi/topo": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
- "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
- "dev": true,
- "dependencies": {
- "@hapi/hoek": "^9.0.0"
- }
- },
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.14",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
@@ -2720,95 +2640,6 @@
"url": "https://github.com/sponsors/antfu"
}
},
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
- },
- "node_modules/@isaacs/cliui/node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
"node_modules/@jest/schemas": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
@@ -2883,6 +2714,7 @@
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
"dependencies": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
@@ -2895,6 +2727,7 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
"engines": {
"node": ">= 8"
}
@@ -2903,6 +2736,7 @@
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
"dependencies": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
@@ -2911,15 +2745,6 @@
"node": ">= 8"
}
},
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
"node_modules/@polka/url": {
"version": "1.0.0-next.24",
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz",
@@ -3167,27 +2992,6 @@
"integrity": "sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==",
"dev": true
},
- "node_modules/@sideway/address": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
- "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
- "dev": true,
- "dependencies": {
- "@hapi/hoek": "^9.0.0"
- }
- },
- "node_modules/@sideway/formula": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
- "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
- "dev": true
- },
- "node_modules/@sideway/pinpoint": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
- "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
- "dev": true
- },
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
@@ -3289,12 +3093,6 @@
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
"dev": true
},
- "node_modules/@types/luxon": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.4.2.tgz",
- "integrity": "sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==",
- "dev": true
- },
"node_modules/@types/node": {
"version": "20.11.16",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz",
@@ -4737,6 +4535,7 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -4745,6 +4544,7 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -4788,16 +4588,11 @@
}
]
},
- "node_modules/arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
- "dev": true
- },
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
},
"node_modules/aria-query": {
"version": "5.1.3",
@@ -4844,6 +4639,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -4954,6 +4750,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
"integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -5139,6 +4936,7 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
"dependencies": {
"fill-range": "^7.0.1"
},
@@ -5273,6 +5071,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
"engines": {
"node": ">=6"
}
@@ -5482,6 +5281,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
@@ -5492,12 +5292,8 @@
"node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/colord": {
- "version": "2.9.3",
- "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
- "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw=="
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
"node_modules/colorette": {
"version": "2.0.20",
@@ -5571,35 +5367,11 @@
"integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
"dev": true
},
- "node_modules/cosmiconfig": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
- "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
- "dependencies": {
- "env-paths": "^2.2.1",
- "import-fresh": "^3.3.0",
- "js-yaml": "^4.1.0",
- "parse-json": "^5.2.0"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- },
- "peerDependencies": {
- "typescript": ">=4.9.5"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
"node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -5618,18 +5390,11 @@
"node": ">=8"
}
},
- "node_modules/css-functions-list": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz",
- "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==",
- "engines": {
- "node": ">=12 || >=16"
- }
- },
"node_modules/css-tree": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
"integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
+ "dev": true,
"dependencies": {
"mdn-data": "2.0.30",
"source-map-js": "^1.0.1"
@@ -5642,6 +5407,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
"bin": {
"cssesc": "bin/cssesc"
},
@@ -5810,6 +5576,7 @@
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
"dependencies": {
"ms": "2.1.2"
},
@@ -5927,6 +5694,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
"dependencies": {
"path-type": "^4.0.0"
},
@@ -5952,72 +5720,12 @@
"integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==",
"dev": true
},
- "node_modules/dom-serializer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
- "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
- "peer": true,
- "dependencies": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
- "entities": "^4.2.0"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
- }
- },
- "node_modules/domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ],
- "peer": true
- },
- "node_modules/domhandler": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
- "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
- "peer": true,
- "dependencies": {
- "domelementtype": "^2.3.0"
- },
- "engines": {
- "node": ">= 4"
- },
- "funding": {
- "url": "https://github.com/fb55/domhandler?sponsor=1"
- }
- },
- "node_modules/domutils": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
- "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
- "peer": true,
- "dependencies": {
- "dom-serializer": "^2.0.0",
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.3"
- },
- "funding": {
- "url": "https://github.com/fb55/domutils?sponsor=1"
- }
- },
"node_modules/duplexer": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
"integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
"dev": true
},
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
- },
"node_modules/ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -6052,7 +5760,8 @@
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
},
"node_modules/end-of-stream": {
"version": "1.4.4",
@@ -6087,22 +5796,6 @@
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
- "node_modules/env-paths": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
- "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
"node_modules/es-abstract": {
"version": "1.22.1",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz",
@@ -6341,6 +6034,18 @@
"eslint": ">=6.0.0"
}
},
+ "node_modules/eslint-config-prettier": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
+ "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
+ "dev": true,
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
+ }
+ },
"node_modules/eslint-config-standard": {
"version": "17.1.0",
"resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz",
@@ -6680,21 +6385,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/event-stream": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
- "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==",
- "dev": true,
- "dependencies": {
- "duplexer": "~0.1.1",
- "from": "~0",
- "map-stream": "~0.1.0",
- "pause-stream": "0.0.11",
- "split": "0.3",
- "stream-combiner": "~0.0.4",
- "through": "~2.3.1"
- }
- },
"node_modules/eventemitter2": {
"version": "6.4.7",
"resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz",
@@ -6789,12 +6479,14 @@
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
},
"node_modules/fast-glob": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "dev": true,
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -6810,6 +6502,7 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -6829,18 +6522,11 @@
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
"dev": true
},
- "node_modules/fastest-levenshtein": {
- "version": "1.0.16",
- "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
- "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==",
- "engines": {
- "node": ">= 4.9.1"
- }
- },
"node_modules/fastq": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
"integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
+ "dev": true,
"dependencies": {
"reusify": "^1.0.4"
}
@@ -6924,6 +6610,7 @@
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -6964,7 +6651,8 @@
"node_modules/flatted": {
"version": "3.2.9",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
- "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ=="
+ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
+ "dev": true
},
"node_modules/focus-trap": {
"version": "7.5.4",
@@ -7011,37 +6699,11 @@
"is-callable": "^1.1.3"
}
},
- "node_modules/foreground-child": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
- "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/foreground-child/node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
- "dev": true,
+ "node_modules/forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
+ "dev": true,
"engines": {
"node": "*"
}
@@ -7059,12 +6721,6 @@
"node": ">= 6"
}
},
- "node_modules/from": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
- "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==",
- "dev": true
- },
"node_modules/fs-extra": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
@@ -7288,41 +6944,6 @@
"node": ">=10"
}
},
- "node_modules/global-modules": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
- "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
- "dependencies": {
- "global-prefix": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/global-prefix": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
- "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
- "dependencies": {
- "ini": "^1.3.5",
- "kind-of": "^6.0.2",
- "which": "^1.3.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/global-prefix/node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "which": "bin/which"
- }
- },
"node_modules/globals": {
"version": "13.24.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
@@ -7357,6 +6978,7 @@
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
"integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
"dependencies": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
@@ -7372,11 +6994,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/globjoin": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz",
- "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg=="
- },
"node_modules/gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
@@ -7441,6 +7058,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -7508,36 +7126,6 @@
"node": ">= 0.4"
}
},
- "node_modules/html-tags": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
- "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/htmlparser2": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
- "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
- "funding": [
- "https://github.com/fb55/htmlparser2?sponsor=1",
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ],
- "peer": true,
- "dependencies": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.3",
- "domutils": "^3.0.1",
- "entities": "^4.4.0"
- }
- },
"node_modules/http-signature": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz",
@@ -7591,6 +7179,7 @@
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
"integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "dev": true,
"engines": {
"node": ">= 4"
}
@@ -7599,6 +7188,7 @@
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
"integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
"dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -7614,6 +7204,7 @@
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
"engines": {
"node": ">=0.8.19"
}
@@ -7643,11 +7234,6 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
- "node_modules/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
- },
"node_modules/internal-slot": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
@@ -7692,11 +7278,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
- },
"node_modules/is-bigint": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
@@ -7807,6 +7388,7 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -7815,6 +7397,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -7823,6 +7406,7 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -7877,6 +7461,7 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
"engines": {
"node": ">=0.12.0"
}
@@ -7914,14 +7499,6 @@
"node": ">=8"
}
},
- "node_modules/is-plain-object": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
- "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/is-regex": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
@@ -8090,7 +7667,8 @@
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
},
"node_modules/isstream": {
"version": "0.1.2",
@@ -8098,23 +7676,6 @@
"integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
"dev": true
},
- "node_modules/jackspeak": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
- "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
"node_modules/jake": {
"version": "10.8.7",
"resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz",
@@ -8156,29 +7717,11 @@
"jiti": "bin/jiti.js"
}
},
- "node_modules/joi": {
- "version": "17.12.1",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.1.tgz",
- "integrity": "sha512-vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ==",
- "dev": true,
- "dependencies": {
- "@hapi/hoek": "^9.3.0",
- "@hapi/topo": "^5.1.0",
- "@sideway/address": "^4.1.5",
- "@sideway/formula": "^3.0.1",
- "@sideway/pinpoint": "^2.0.0"
- }
- },
- "node_modules/js-tokens": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz",
- "integrity": "sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==",
- "peer": true
- },
"node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
"dependencies": {
"argparse": "^2.0.1"
},
@@ -8207,12 +7750,8 @@
"node_modules/json-buffer": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
},
"node_modules/json-schema": {
"version": "0.4.0",
@@ -8296,23 +7835,11 @@
"version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
"integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
"dependencies": {
"json-buffer": "3.0.1"
}
},
- "node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/known-css-properties": {
- "version": "0.29.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
- "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ=="
- },
"node_modules/kolorist": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
@@ -8350,11 +7877,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
- },
"node_modules/listr2": {
"version": "3.14.0",
"resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz",
@@ -8439,11 +7961,6 @@
"integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==",
"dev": true
},
- "node_modules/lodash.truncate": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
- "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw=="
- },
"node_modules/log-symbols": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
@@ -8505,6 +8022,7 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
"dependencies": {
"yallist": "^4.0.0"
},
@@ -8538,36 +8056,11 @@
"sourcemap-codec": "^1.4.8"
}
},
- "node_modules/map-stream": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
- "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==",
- "dev": true
- },
- "node_modules/mathml-tag-names": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz",
- "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
"node_modules/mdn-data": {
"version": "2.0.30",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
- "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA=="
- },
- "node_modules/meow": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
- "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
+ "dev": true
},
"node_modules/merge-stream": {
"version": "2.0.0",
@@ -8579,6 +8072,7 @@
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
"engines": {
"node": ">= 8"
}
@@ -8587,6 +8081,7 @@
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
"dependencies": {
"braces": "^3.0.2",
"picomatch": "^2.3.1"
@@ -8644,14 +8139,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/minipass": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
- "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
"node_modules/mlly": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/mlly/-/mlly-1.5.0.tgz",
@@ -8676,7 +8163,8 @@
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
},
"node_modules/nanoid": {
"version": "3.3.7",
@@ -8717,6 +8205,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -8992,6 +8481,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
"dependencies": {
"callsites": "^3.0.0"
},
@@ -8999,23 +8489,6 @@
"node": ">=6"
}
},
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/parse5": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
@@ -9050,6 +8523,7 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -9060,33 +8534,11 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
- "node_modules/path-scurry": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
- "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
- "dependencies": {
- "lru-cache": "^9.1.1 || ^10.0.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/path-scurry/node_modules/lru-cache": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
- "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
- "engines": {
- "node": "14 || >=16.14"
- }
- },
"node_modules/path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -9106,15 +8558,6 @@
"node": "*"
}
},
- "node_modules/pause-stream": {
- "version": "0.0.11",
- "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
- "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==",
- "dev": true,
- "dependencies": {
- "through": "~2.3"
- }
- },
"node_modules/pend": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
@@ -9142,6 +8585,7 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
"engines": {
"node": ">=8.6"
},
@@ -9183,6 +8627,14 @@
}
}
},
+ "node_modules/pinia-plugin-persistedstate": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.2.1.tgz",
+ "integrity": "sha512-MK++8LRUsGF7r45PjBFES82ISnPzyO6IZx3CH5vyPseFLZCk1g2kgx6l/nW8pEBKxxd4do0P6bJw+mUSZIEZUQ==",
+ "peerDependencies": {
+ "pinia": "^2.0.0"
+ }
+ },
"node_modules/pkg-types": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz",
@@ -9221,71 +8673,11 @@
"node": "^10 || ^12 || >=14"
}
},
- "node_modules/postcss-html": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.6.0.tgz",
- "integrity": "sha512-OWgQ9/Pe23MnNJC0PL4uZp8k0EDaUvqpJFSiwFxOLClAhmD7UEisyhO3x5hVsD4xFrjReVTXydlrMes45dJ71w==",
- "peer": true,
- "dependencies": {
- "htmlparser2": "^8.0.0",
- "js-tokens": "^8.0.0",
- "postcss": "^8.4.0",
- "postcss-safe-parser": "^6.0.0"
- },
- "engines": {
- "node": "^12 || >=14"
- }
- },
- "node_modules/postcss-html/node_modules/postcss-safe-parser": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz",
- "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==",
- "peer": true,
- "engines": {
- "node": ">=12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.3.3"
- }
- },
- "node_modules/postcss-resolve-nested-selector": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz",
- "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw=="
- },
- "node_modules/postcss-safe-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz",
- "integrity": "sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
"node_modules/postcss-selector-parser": {
"version": "6.0.15",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz",
"integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==",
+ "dev": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -9294,11 +8686,6 @@
"node": ">=4"
}
},
- "node_modules/postcss-value-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
- },
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -9308,6 +8695,21 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/prettier": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.1.tgz",
+ "integrity": "sha512-7CAwy5dRsxs8PHXT3twixW9/OEll8MLE0VRPCJyl7CkS6VHGPSlsVaWTiASPTyGyYRyApxlaWTzwUxVNrhcwDg==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin/prettier.cjs"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
"node_modules/pretty-bytes": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
@@ -9360,21 +8762,6 @@
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
- "node_modules/ps-tree": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz",
- "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==",
- "dev": true,
- "dependencies": {
- "event-stream": "=3.3.4"
- },
- "bin": {
- "ps-tree": "bin/ps-tree.js"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/psl": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
@@ -9395,6 +8782,7 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true,
"engines": {
"node": ">=6"
}
@@ -9424,6 +8812,7 @@
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
"funding": [
{
"type": "github",
@@ -9567,6 +8956,7 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -9598,6 +8988,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
"engines": {
"node": ">=4"
}
@@ -9628,6 +9019,7 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
"engines": {
"iojs": ">=1.0.0",
"node": ">=0.10.0"
@@ -9689,6 +9081,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
"funding": [
{
"type": "github",
@@ -9784,6 +9177,7 @@
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -9807,6 +9201,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
"dependencies": {
"shebang-regex": "^3.0.0"
},
@@ -9818,6 +9213,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -9866,6 +9262,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -9874,6 +9271,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
"integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
"dependencies": {
"ansi-styles": "^4.0.0",
"astral-regex": "^2.0.0",
@@ -9920,18 +9318,6 @@
"deprecated": "Please use @jridgewell/sourcemap-codec instead",
"dev": true
},
- "node_modules/split": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
- "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==",
- "dev": true,
- "dependencies": {
- "through": "2"
- },
- "engines": {
- "node": "*"
- }
- },
"node_modules/sshpk": {
"version": "1.17.0",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
@@ -9963,30 +9349,6 @@
"integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
"dev": true
},
- "node_modules/start-server-and-test": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-2.0.3.tgz",
- "integrity": "sha512-QsVObjfjFZKJE6CS6bSKNwWZCKBG6975/jKRPPGFfFh+yOQglSeGXiNWjzgQNXdphcBI9nXbyso9tPfX4YAUhg==",
- "dev": true,
- "dependencies": {
- "arg": "^5.0.2",
- "bluebird": "3.7.2",
- "check-more-types": "2.24.0",
- "debug": "4.3.4",
- "execa": "5.1.1",
- "lazy-ass": "1.6.0",
- "ps-tree": "1.2.0",
- "wait-on": "7.2.0"
- },
- "bin": {
- "server-test": "src/bin/start.js",
- "start-server-and-test": "src/bin/start.js",
- "start-test": "src/bin/start.js"
- },
- "engines": {
- "node": ">=16"
- }
- },
"node_modules/std-env": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz",
@@ -10005,33 +9367,11 @@
"node": ">= 0.4"
}
},
- "node_modules/stream-combiner": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
- "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==",
- "dev": true,
- "dependencies": {
- "duplexer": "~0.1.1"
- }
- },
"node_modules/string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -10123,18 +9463,7 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
"dependencies": {
"ansi-regex": "^5.0.1"
},
@@ -10193,253 +9522,11 @@
"url": "https://github.com/sponsors/antfu"
}
},
- "node_modules/stylelint": {
- "version": "16.2.1",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.2.1.tgz",
- "integrity": "sha512-SfIMGFK+4n7XVAyv50CpVfcGYWG4v41y6xG7PqOgQSY8M/PgdK0SQbjWFblxjJZlN9jNq879mB4BCZHJRIJ1hA==",
- "dependencies": {
- "@csstools/css-parser-algorithms": "^2.5.0",
- "@csstools/css-tokenizer": "^2.2.3",
- "@csstools/media-query-list-parser": "^2.1.7",
- "@csstools/selector-specificity": "^3.0.1",
- "balanced-match": "^2.0.0",
- "colord": "^2.9.3",
- "cosmiconfig": "^9.0.0",
- "css-functions-list": "^3.2.1",
- "css-tree": "^2.3.1",
- "debug": "^4.3.4",
- "fast-glob": "^3.3.2",
- "fastest-levenshtein": "^1.0.16",
- "file-entry-cache": "^8.0.0",
- "global-modules": "^2.0.0",
- "globby": "^11.1.0",
- "globjoin": "^0.1.4",
- "html-tags": "^3.3.1",
- "ignore": "^5.3.0",
- "imurmurhash": "^0.1.4",
- "is-plain-object": "^5.0.0",
- "known-css-properties": "^0.29.0",
- "mathml-tag-names": "^2.1.3",
- "meow": "^13.1.0",
- "micromatch": "^4.0.5",
- "normalize-path": "^3.0.0",
- "picocolors": "^1.0.0",
- "postcss": "^8.4.33",
- "postcss-resolve-nested-selector": "^0.1.1",
- "postcss-safe-parser": "^7.0.0",
- "postcss-selector-parser": "^6.0.15",
- "postcss-value-parser": "^4.2.0",
- "resolve-from": "^5.0.0",
- "string-width": "^4.2.3",
- "strip-ansi": "^7.1.0",
- "supports-hyperlinks": "^3.0.0",
- "svg-tags": "^1.0.0",
- "table": "^6.8.1",
- "write-file-atomic": "^5.0.1"
- },
- "bin": {
- "stylelint": "bin/stylelint.mjs"
- },
- "engines": {
- "node": ">=18.12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/stylelint"
- }
- },
- "node_modules/stylelint-config-html": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-html/-/stylelint-config-html-1.1.0.tgz",
- "integrity": "sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==",
- "engines": {
- "node": "^12 || >=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/ota-meshi"
- },
- "peerDependencies": {
- "postcss-html": "^1.0.0",
- "stylelint": ">=14.0.0"
- }
- },
- "node_modules/stylelint-config-recommended": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.0.tgz",
- "integrity": "sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==",
- "engines": {
- "node": ">=18.12.0"
- },
- "peerDependencies": {
- "stylelint": "^16.0.0"
- }
- },
- "node_modules/stylelint-config-recommended-vue": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-recommended-vue/-/stylelint-config-recommended-vue-1.5.0.tgz",
- "integrity": "sha512-65TAK/clUqkNtkZLcuytoxU0URQYlml+30Nhop7sRkCZ/mtWdXt7T+spPSB3KMKlb+82aEVJ4OrcstyDBdbosg==",
- "dependencies": {
- "semver": "^7.3.5",
- "stylelint-config-html": ">=1.0.0",
- "stylelint-config-recommended": ">=6.0.0"
- },
- "engines": {
- "node": "^12 || >=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/ota-meshi"
- },
- "peerDependencies": {
- "postcss-html": "^1.0.0",
- "stylelint": ">=14.0.0"
- }
- },
- "node_modules/stylelint-config-standard": {
- "version": "36.0.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-36.0.0.tgz",
- "integrity": "sha512-3Kjyq4d62bYFp/Aq8PMKDwlgUyPU4nacXsjDLWJdNPRUgpuxALu1KnlAHIj36cdtxViVhXexZij65yM0uNIHug==",
- "dev": true,
- "dependencies": {
- "stylelint-config-recommended": "^14.0.0"
- },
- "engines": {
- "node": ">=18.12.0"
- },
- "peerDependencies": {
- "stylelint": "^16.1.0"
- }
- },
- "node_modules/stylelint/node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/stylelint/node_modules/balanced-match": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
- "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA=="
- },
- "node_modules/stylelint/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/stylelint/node_modules/brace-expansion/node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "node_modules/stylelint/node_modules/file-entry-cache": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
- "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
- "dependencies": {
- "flat-cache": "^4.0.0"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/stylelint/node_modules/flat-cache": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.0.tgz",
- "integrity": "sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA==",
- "dependencies": {
- "flatted": "^3.2.9",
- "keyv": "^4.5.4",
- "rimraf": "^5.0.5"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/stylelint/node_modules/glob": {
- "version": "10.3.10",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
- "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^2.3.5",
- "minimatch": "^9.0.1",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
- "path-scurry": "^1.10.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/stylelint/node_modules/minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/stylelint/node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/stylelint/node_modules/rimraf": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
- "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
- "dependencies": {
- "glob": "^10.3.7"
- },
- "bin": {
- "rimraf": "dist/esm/bin.mjs"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/stylelint/node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -10447,18 +9534,6 @@
"node": ">=8"
}
},
- "node_modules/supports-hyperlinks": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz",
- "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==",
- "dependencies": {
- "has-flag": "^4.0.0",
- "supports-color": "^7.0.0"
- },
- "engines": {
- "node": ">=14.18"
- }
- },
"node_modules/supports-preserve-symlinks-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
@@ -10471,68 +9546,28 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/svg-tags": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
- "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA=="
- },
"node_modules/swiper": {
"version": "11.0.6",
"resolved": "https://registry.npmjs.org/swiper/-/swiper-11.0.6.tgz",
"integrity": "sha512-W/Me7MQl5rNgdM5x9i3Gll76WsyVpnHn91GhBOyL7RCFUeg62aVnflzlVfIpXzZ/87FtJOfAoDH79ZH2Yq76zA==",
"funding": [
- {
- "type": "patreon",
- "url": "https://www.patreon.com/swiperjs"
- },
- {
- "type": "open_collective",
- "url": "http://opencollective.com/swiper"
- }
- ],
- "engines": {
- "node": ">= 4.7.0"
- }
- },
- "node_modules/tabbable": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
- "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew=="
- },
- "node_modules/table": {
- "version": "6.8.1",
- "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
- "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
- "dependencies": {
- "ajv": "^8.0.1",
- "lodash.truncate": "^4.4.2",
- "slice-ansi": "^4.0.0",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/table/node_modules/ajv": {
- "version": "8.11.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz",
- "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/swiperjs"
+ },
+ {
+ "type": "open_collective",
+ "url": "http://opencollective.com/swiper"
+ }
+ ],
+ "engines": {
+ "node": ">= 4.7.0"
}
},
- "node_modules/table/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ "node_modules/tabbable": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
+ "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew=="
},
"node_modules/temp-dir": {
"version": "2.0.0",
@@ -10658,6 +9693,7 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
"dependencies": {
"is-number": "^7.0.0"
},
@@ -11417,6 +10453,7 @@
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
"dependencies": {
"punycode": "^2.1.0"
}
@@ -11434,7 +10471,8 @@
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true
},
"node_modules/uuid": {
"version": "8.3.2",
@@ -11924,25 +10962,6 @@
"vue": "^3.2.0"
}
},
- "node_modules/wait-on": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz",
- "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==",
- "dev": true,
- "dependencies": {
- "axios": "^1.6.1",
- "joi": "^17.11.0",
- "lodash": "^4.17.21",
- "minimist": "^1.2.8",
- "rxjs": "^7.8.1"
- },
- "bin": {
- "wait-on": "bin/wait-on"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
"node_modules/webidl-conversions": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
@@ -11979,6 +10998,7 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
"dependencies": {
"isexe": "^2.0.0"
},
@@ -12314,52 +11334,12 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/wrap-ansi-cjs": {
- "name": "wrap-ansi",
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true
},
- "node_modules/write-file-atomic": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
- "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/write-file-atomic/node_modules/signal-exit": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
- "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/xml-name-validator": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
@@ -12372,7 +11352,8 @@
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
},
"node_modules/yauzl": {
"version": "2.10.0",
@@ -12434,6 +11415,7 @@
"version": "7.23.5",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
"integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "dev": true,
"requires": {
"@babel/highlight": "^7.23.4",
"chalk": "^2.4.2"
@@ -12443,6 +11425,7 @@
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
"requires": {
"color-convert": "^1.9.0"
}
@@ -12451,6 +11434,7 @@
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -12461,6 +11445,7 @@
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
"requires": {
"color-name": "1.1.3"
}
@@ -12468,22 +11453,26 @@
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true
},
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
"requires": {
"has-flag": "^3.0.0"
}
@@ -12795,7 +11784,8 @@
"@babel/helper-validator-identifier": {
"version": "7.22.20",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
- "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A=="
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "dev": true
},
"@babel/helper-validator-option": {
"version": "7.23.5",
@@ -12830,6 +11820,7 @@
"version": "7.23.4",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
"integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+ "dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.22.20",
"chalk": "^2.4.2",
@@ -12840,6 +11831,7 @@
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
"requires": {
"color-convert": "^1.9.0"
}
@@ -12848,6 +11840,7 @@
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -12858,6 +11851,7 @@
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
"requires": {
"color-name": "1.1.3"
}
@@ -12865,27 +11859,32 @@
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true
},
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
},
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
"requires": {
"has-flag": "^3.0.0"
}
@@ -13811,29 +12810,6 @@
"dev": true,
"optional": true
},
- "@csstools/css-parser-algorithms": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz",
- "integrity": "sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==",
- "requires": {}
- },
- "@csstools/css-tokenizer": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz",
- "integrity": "sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg=="
- },
- "@csstools/media-query-list-parser": {
- "version": "2.1.7",
- "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz",
- "integrity": "sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ==",
- "requires": {}
- },
- "@csstools/selector-specificity": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz",
- "integrity": "sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==",
- "requires": {}
- },
"@cypress/request": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz",
@@ -14088,21 +13064,6 @@
"vue-router": "^4.2.5"
}
},
- "@hapi/hoek": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
- "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
- "dev": true
- },
- "@hapi/topo": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
- "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
- "dev": true,
- "requires": {
- "@hapi/hoek": "^9.0.0"
- }
- },
"@humanwhocodes/config-array": {
"version": "0.11.14",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
@@ -14159,64 +13120,6 @@
}
}
},
- "@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "requires": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="
- },
- "ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="
- },
- "emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
- },
- "string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "requires": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- }
- },
- "strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "requires": {
- "ansi-regex": "^6.0.1"
- }
- },
- "wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "requires": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- }
- }
- }
- },
"@jest/schemas": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
@@ -14279,6 +13182,7 @@
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
"requires": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
@@ -14287,23 +13191,19 @@
"@nodelib/fs.stat": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true
},
"@nodelib/fs.walk": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
"requires": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
}
},
- "@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "optional": true
- },
"@polka/url": {
"version": "1.0.0-next.24",
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz",
@@ -14447,27 +13347,6 @@
"integrity": "sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==",
"dev": true
},
- "@sideway/address": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
- "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
- "dev": true,
- "requires": {
- "@hapi/hoek": "^9.0.0"
- }
- },
- "@sideway/formula": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
- "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
- "dev": true
- },
- "@sideway/pinpoint": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
- "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
- "dev": true
- },
"@sinclair/typebox": {
"version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
@@ -14555,12 +13434,6 @@
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
"dev": true
},
- "@types/luxon": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.4.2.tgz",
- "integrity": "sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==",
- "dev": true
- },
"@types/node": {
"version": "20.11.16",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz",
@@ -15604,12 +14477,14 @@
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true
},
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
"requires": {
"color-convert": "^2.0.1"
}
@@ -15630,16 +14505,11 @@
"integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
"dev": true
},
- "arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
- "dev": true
- },
"argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
},
"aria-query": {
"version": "5.1.3",
@@ -15676,7 +14546,8 @@
"array-union": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true
},
"array.prototype.findlastindex": {
"version": "1.2.3",
@@ -15753,7 +14624,8 @@
"astral-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
- "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true
},
"async": {
"version": "3.2.4",
@@ -15897,6 +14769,7 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
"requires": {
"fill-range": "^7.0.1"
}
@@ -15975,7 +14848,8 @@
"callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
},
"caniuse-lite": {
"version": "1.0.30001584",
@@ -16114,6 +14988,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
"requires": {
"color-name": "~1.1.4"
}
@@ -16121,12 +14996,8 @@
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "colord": {
- "version": "2.9.3",
- "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
- "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw=="
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
"colorette": {
"version": "2.0.20",
@@ -16187,21 +15058,11 @@
"integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
"dev": true
},
- "cosmiconfig": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
- "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
- "requires": {
- "env-paths": "^2.2.1",
- "import-fresh": "^3.3.0",
- "js-yaml": "^4.1.0",
- "parse-json": "^5.2.0"
- }
- },
"cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
"requires": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -16214,15 +15075,11 @@
"integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
"dev": true
},
- "css-functions-list": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz",
- "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ=="
- },
"css-tree": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
"integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
+ "dev": true,
"requires": {
"mdn-data": "2.0.30",
"source-map-js": "^1.0.1"
@@ -16231,7 +15088,8 @@
"cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true
},
"csstype": {
"version": "3.1.3",
@@ -16362,6 +15220,7 @@
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
"requires": {
"ms": "2.1.2"
}
@@ -16450,6 +15309,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
"requires": {
"path-type": "^4.0.0"
}
@@ -16469,54 +15329,12 @@
"integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==",
"dev": true
},
- "dom-serializer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
- "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
- "peer": true,
- "requires": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
- "entities": "^4.2.0"
- }
- },
- "domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "peer": true
- },
- "domhandler": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
- "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
- "peer": true,
- "requires": {
- "domelementtype": "^2.3.0"
- }
- },
- "domutils": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
- "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
- "peer": true,
- "requires": {
- "dom-serializer": "^2.0.0",
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.3"
- }
- },
"duplexer": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
"integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
"dev": true
},
- "eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
- },
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -16545,7 +15363,8 @@
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
},
"end-of-stream": {
"version": "1.4.4",
@@ -16571,19 +15390,6 @@
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
},
- "env-paths": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
- "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="
- },
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "requires": {
- "is-arrayish": "^0.2.1"
- }
- },
"es-abstract": {
"version": "1.22.1",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz",
@@ -16774,6 +15580,13 @@
"dev": true,
"requires": {}
},
+ "eslint-config-prettier": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
+ "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
+ "dev": true,
+ "requires": {}
+ },
"eslint-config-standard": {
"version": "17.1.0",
"resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz",
@@ -17007,21 +15820,6 @@
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true
},
- "event-stream": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
- "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==",
- "dev": true,
- "requires": {
- "duplexer": "~0.1.1",
- "from": "~0",
- "map-stream": "~0.1.0",
- "pause-stream": "0.0.11",
- "split": "0.3",
- "stream-combiner": "~0.0.4",
- "through": "~2.3.1"
- }
- },
"eventemitter2": {
"version": "6.4.7",
"resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz",
@@ -17092,12 +15890,14 @@
"fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
},
"fast-glob": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "dev": true,
"requires": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -17110,6 +15910,7 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
"requires": {
"is-glob": "^4.0.1"
}
@@ -17128,15 +15929,11 @@
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
"dev": true
},
- "fastest-levenshtein": {
- "version": "1.0.16",
- "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
- "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg=="
- },
"fastq": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
"integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
+ "dev": true,
"requires": {
"reusify": "^1.0.4"
}
@@ -17209,6 +16006,7 @@
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
"requires": {
"to-regex-range": "^5.0.1"
}
@@ -17237,7 +16035,8 @@
"flatted": {
"version": "3.2.9",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
- "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ=="
+ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
+ "dev": true
},
"focus-trap": {
"version": "7.5.4",
@@ -17267,22 +16066,6 @@
"is-callable": "^1.1.3"
}
},
- "foreground-child": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
- "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
- "requires": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "dependencies": {
- "signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="
- }
- }
- },
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
@@ -17299,12 +16082,6 @@
"mime-types": "^2.1.12"
}
},
- "from": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
- "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==",
- "dev": true
- },
"fs-extra": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
@@ -17466,34 +16243,6 @@
}
}
},
- "global-modules": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
- "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
- "requires": {
- "global-prefix": "^3.0.0"
- }
- },
- "global-prefix": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
- "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
- "requires": {
- "ini": "^1.3.5",
- "kind-of": "^6.0.2",
- "which": "^1.3.1"
- },
- "dependencies": {
- "which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "requires": {
- "isexe": "^2.0.0"
- }
- }
- }
- },
"globals": {
"version": "13.24.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
@@ -17516,6 +16265,7 @@
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
"integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
"requires": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
@@ -17525,11 +16275,6 @@
"slash": "^3.0.0"
}
},
- "globjoin": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz",
- "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg=="
- },
"gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
@@ -17578,7 +16323,8 @@
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
},
"has-property-descriptors": {
"version": "1.0.0",
@@ -17619,23 +16365,6 @@
"function-bind": "^1.1.2"
}
},
- "html-tags": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
- "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ=="
- },
- "htmlparser2": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
- "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
- "peer": true,
- "requires": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.3",
- "domutils": "^3.0.1",
- "entities": "^4.4.0"
- }
- },
"http-signature": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz",
@@ -17668,12 +16397,14 @@
"ignore": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw=="
+ "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "dev": true
},
"import-fresh": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
"integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
"requires": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -17682,7 +16413,8 @@
"imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true
},
"indent-string": {
"version": "4.0.0",
@@ -17706,11 +16438,6 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
- "ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
- },
"internal-slot": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
@@ -17743,11 +16470,6 @@
"is-typed-array": "^1.1.10"
}
},
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
- },
"is-bigint": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
@@ -17821,17 +16543,20 @@
"is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true
},
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
},
"is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
"requires": {
"is-extglob": "^2.1.1"
}
@@ -17867,7 +16592,8 @@
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
},
"is-number-object": {
"version": "1.0.7",
@@ -17890,11 +16616,6 @@
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
"dev": true
},
- "is-plain-object": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
- "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="
- },
"is-regex": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
@@ -18009,7 +16730,8 @@
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
},
"isstream": {
"version": "0.1.2",
@@ -18017,15 +16739,6 @@
"integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
"dev": true
},
- "jackspeak": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
- "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
- "requires": {
- "@isaacs/cliui": "^8.0.2",
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
"jake": {
"version": "10.8.7",
"resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz",
@@ -18055,29 +16768,11 @@
"integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==",
"dev": true
},
- "joi": {
- "version": "17.12.1",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.1.tgz",
- "integrity": "sha512-vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ==",
- "dev": true,
- "requires": {
- "@hapi/hoek": "^9.3.0",
- "@hapi/topo": "^5.1.0",
- "@sideway/address": "^4.1.5",
- "@sideway/formula": "^3.0.1",
- "@sideway/pinpoint": "^2.0.0"
- }
- },
- "js-tokens": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz",
- "integrity": "sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==",
- "peer": true
- },
"js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
"requires": {
"argparse": "^2.0.1"
}
@@ -18097,12 +16792,8 @@
"json-buffer": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
- },
- "json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
},
"json-schema": {
"version": "0.4.0",
@@ -18175,20 +16866,11 @@
"version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
"integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
"requires": {
"json-buffer": "3.0.1"
}
},
- "kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
- },
- "known-css-properties": {
- "version": "0.29.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
- "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ=="
- },
"kolorist": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
@@ -18217,11 +16899,6 @@
"type-check": "~0.4.0"
}
},
- "lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
- },
"listr2": {
"version": "3.14.0",
"resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz",
@@ -18283,11 +16960,6 @@
"integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==",
"dev": true
},
- "lodash.truncate": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
- "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw=="
- },
"log-symbols": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
@@ -18336,6 +17008,7 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
"requires": {
"yallist": "^4.0.0"
}
@@ -18360,26 +17033,11 @@
"sourcemap-codec": "^1.4.8"
}
},
- "map-stream": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
- "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==",
- "dev": true
- },
- "mathml-tag-names": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz",
- "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg=="
- },
"mdn-data": {
"version": "2.0.30",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
- "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA=="
- },
- "meow": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
- "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA=="
+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
+ "dev": true
},
"merge-stream": {
"version": "2.0.0",
@@ -18390,12 +17048,14 @@
"merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true
},
"micromatch": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
"requires": {
"braces": "^3.0.2",
"picomatch": "^2.3.1"
@@ -18435,11 +17095,6 @@
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"dev": true
},
- "minipass": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
- "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ=="
- },
"mlly": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/mlly/-/mlly-1.5.0.tgz",
@@ -18461,7 +17116,8 @@
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
},
"nanoid": {
"version": "3.3.7",
@@ -18489,7 +17145,8 @@
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
},
"npm-run-path": {
"version": "4.0.1",
@@ -18673,21 +17330,11 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
"requires": {
"callsites": "^3.0.0"
}
},
- "parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- }
- },
"parse5": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
@@ -18712,7 +17359,8 @@
"path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
},
"path-parse": {
"version": "1.0.7",
@@ -18720,26 +17368,11 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
- "path-scurry": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
- "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
- "requires": {
- "lru-cache": "^9.1.1 || ^10.0.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "dependencies": {
- "lru-cache": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
- "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q=="
- }
- }
- },
"path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
},
"pathe": {
"version": "1.1.2",
@@ -18753,15 +17386,6 @@
"integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
"dev": true
},
- "pause-stream": {
- "version": "0.0.11",
- "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
- "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==",
- "dev": true,
- "requires": {
- "through": "~2.3"
- }
- },
"pend": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
@@ -18788,7 +17412,8 @@
"picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
},
"pify": {
"version": "2.3.0",
@@ -18805,6 +17430,12 @@
"vue-demi": ">=0.14.5"
}
},
+ "pinia-plugin-persistedstate": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.2.1.tgz",
+ "integrity": "sha512-MK++8LRUsGF7r45PjBFES82ISnPzyO6IZx3CH5vyPseFLZCk1g2kgx6l/nW8pEBKxxd4do0P6bJw+mUSZIEZUQ==",
+ "requires": {}
+ },
"pkg-types": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz",
@@ -18826,58 +17457,28 @@
"source-map-js": "^1.0.2"
}
},
- "postcss-html": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.6.0.tgz",
- "integrity": "sha512-OWgQ9/Pe23MnNJC0PL4uZp8k0EDaUvqpJFSiwFxOLClAhmD7UEisyhO3x5hVsD4xFrjReVTXydlrMes45dJ71w==",
- "peer": true,
- "requires": {
- "htmlparser2": "^8.0.0",
- "js-tokens": "^8.0.0",
- "postcss": "^8.4.0",
- "postcss-safe-parser": "^6.0.0"
- },
- "dependencies": {
- "postcss-safe-parser": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz",
- "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==",
- "peer": true,
- "requires": {}
- }
- }
- },
- "postcss-resolve-nested-selector": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz",
- "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw=="
- },
- "postcss-safe-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz",
- "integrity": "sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==",
- "requires": {}
- },
"postcss-selector-parser": {
"version": "6.0.15",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz",
"integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==",
+ "dev": true,
"requires": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
}
},
- "postcss-value-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
- },
"prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true
},
+ "prettier": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.1.tgz",
+ "integrity": "sha512-7CAwy5dRsxs8PHXT3twixW9/OEll8MLE0VRPCJyl7CkS6VHGPSlsVaWTiASPTyGyYRyApxlaWTzwUxVNrhcwDg==",
+ "dev": true
+ },
"pretty-bytes": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
@@ -18914,15 +17515,6 @@
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
- "ps-tree": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz",
- "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==",
- "dev": true,
- "requires": {
- "event-stream": "=3.3.4"
- }
- },
"psl": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
@@ -18942,7 +17534,8 @@
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true
},
"qs": {
"version": "6.10.4",
@@ -18962,7 +17555,8 @@
"queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true
},
"randombytes": {
"version": "2.1.0",
@@ -19072,7 +17666,8 @@
"require-from-string": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true
},
"requires-port": {
"version": "1.0.0",
@@ -19094,7 +17689,8 @@
"resolve-from": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
},
"resolve-pkg-maps": {
"version": "1.0.0",
@@ -19115,7 +17711,8 @@
"reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true
},
"rfdc": {
"version": "1.3.0",
@@ -19157,6 +17754,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
"requires": {
"queue-microtask": "^1.2.2"
}
@@ -19215,6 +17813,7 @@
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
"requires": {
"lru-cache": "^6.0.0"
}
@@ -19232,6 +17831,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
"requires": {
"shebang-regex": "^3.0.0"
}
@@ -19239,7 +17839,8 @@
"shebang-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
},
"side-channel": {
"version": "1.0.4",
@@ -19278,12 +17879,14 @@
"slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
},
"slice-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
"integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
"requires": {
"ansi-styles": "^4.0.0",
"astral-regex": "^2.0.0",
@@ -19317,15 +17920,6 @@
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
"dev": true
},
- "split": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
- "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==",
- "dev": true,
- "requires": {
- "through": "2"
- }
- },
"sshpk": {
"version": "1.17.0",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
@@ -19349,22 +17943,6 @@
"integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
"dev": true
},
- "start-server-and-test": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-2.0.3.tgz",
- "integrity": "sha512-QsVObjfjFZKJE6CS6bSKNwWZCKBG6975/jKRPPGFfFh+yOQglSeGXiNWjzgQNXdphcBI9nXbyso9tPfX4YAUhg==",
- "dev": true,
- "requires": {
- "arg": "^5.0.2",
- "bluebird": "3.7.2",
- "check-more-types": "2.24.0",
- "debug": "4.3.4",
- "execa": "5.1.1",
- "lazy-ass": "1.6.0",
- "ps-tree": "1.2.0",
- "wait-on": "7.2.0"
- }
- },
"std-env": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz",
@@ -19380,29 +17958,11 @@
"internal-slot": "^1.0.4"
}
},
- "stream-combiner": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
- "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==",
- "dev": true,
- "requires": {
- "duplexer": "~0.1.1"
- }
- },
"string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- },
- "string-width-cjs": {
- "version": "npm:string-width@4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -19473,14 +18033,7 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "strip-ansi-cjs": {
- "version": "npm:strip-ansi@6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
"requires": {
"ansi-regex": "^5.0.1"
}
@@ -19518,196 +18071,21 @@
"acorn": "^8.10.0"
}
},
- "stylelint": {
- "version": "16.2.1",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.2.1.tgz",
- "integrity": "sha512-SfIMGFK+4n7XVAyv50CpVfcGYWG4v41y6xG7PqOgQSY8M/PgdK0SQbjWFblxjJZlN9jNq879mB4BCZHJRIJ1hA==",
- "requires": {
- "@csstools/css-parser-algorithms": "^2.5.0",
- "@csstools/css-tokenizer": "^2.2.3",
- "@csstools/media-query-list-parser": "^2.1.7",
- "@csstools/selector-specificity": "^3.0.1",
- "balanced-match": "^2.0.0",
- "colord": "^2.9.3",
- "cosmiconfig": "^9.0.0",
- "css-functions-list": "^3.2.1",
- "css-tree": "^2.3.1",
- "debug": "^4.3.4",
- "fast-glob": "^3.3.2",
- "fastest-levenshtein": "^1.0.16",
- "file-entry-cache": "^8.0.0",
- "global-modules": "^2.0.0",
- "globby": "^11.1.0",
- "globjoin": "^0.1.4",
- "html-tags": "^3.3.1",
- "ignore": "^5.3.0",
- "imurmurhash": "^0.1.4",
- "is-plain-object": "^5.0.0",
- "known-css-properties": "^0.29.0",
- "mathml-tag-names": "^2.1.3",
- "meow": "^13.1.0",
- "micromatch": "^4.0.5",
- "normalize-path": "^3.0.0",
- "picocolors": "^1.0.0",
- "postcss": "^8.4.33",
- "postcss-resolve-nested-selector": "^0.1.1",
- "postcss-safe-parser": "^7.0.0",
- "postcss-selector-parser": "^6.0.15",
- "postcss-value-parser": "^4.2.0",
- "resolve-from": "^5.0.0",
- "string-width": "^4.2.3",
- "strip-ansi": "^7.1.0",
- "supports-hyperlinks": "^3.0.0",
- "svg-tags": "^1.0.0",
- "table": "^6.8.1",
- "write-file-atomic": "^5.0.1"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="
- },
- "balanced-match": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
- "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA=="
- },
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- },
- "dependencies": {
- "balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- }
- }
- },
- "file-entry-cache": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
- "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
- "requires": {
- "flat-cache": "^4.0.0"
- }
- },
- "flat-cache": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.0.tgz",
- "integrity": "sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA==",
- "requires": {
- "flatted": "^3.2.9",
- "keyv": "^4.5.4",
- "rimraf": "^5.0.5"
- }
- },
- "glob": {
- "version": "10.3.10",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
- "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
- "requires": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^2.3.5",
- "minimatch": "^9.0.1",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
- "path-scurry": "^1.10.1"
- }
- },
- "minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- },
- "resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
- },
- "rimraf": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
- "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
- "requires": {
- "glob": "^10.3.7"
- }
- },
- "strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "requires": {
- "ansi-regex": "^6.0.1"
- }
- }
- }
- },
- "stylelint-config-html": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-html/-/stylelint-config-html-1.1.0.tgz",
- "integrity": "sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==",
- "requires": {}
- },
- "stylelint-config-recommended": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.0.tgz",
- "integrity": "sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==",
- "requires": {}
- },
- "stylelint-config-recommended-vue": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-recommended-vue/-/stylelint-config-recommended-vue-1.5.0.tgz",
- "integrity": "sha512-65TAK/clUqkNtkZLcuytoxU0URQYlml+30Nhop7sRkCZ/mtWdXt7T+spPSB3KMKlb+82aEVJ4OrcstyDBdbosg==",
- "requires": {
- "semver": "^7.3.5",
- "stylelint-config-html": ">=1.0.0",
- "stylelint-config-recommended": ">=6.0.0"
- }
- },
- "stylelint-config-standard": {
- "version": "36.0.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-36.0.0.tgz",
- "integrity": "sha512-3Kjyq4d62bYFp/Aq8PMKDwlgUyPU4nacXsjDLWJdNPRUgpuxALu1KnlAHIj36cdtxViVhXexZij65yM0uNIHug==",
- "dev": true,
- "requires": {
- "stylelint-config-recommended": "^14.0.0"
- }
- },
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
"requires": {
"has-flag": "^4.0.0"
}
},
- "supports-hyperlinks": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz",
- "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==",
- "requires": {
- "has-flag": "^4.0.0",
- "supports-color": "^7.0.0"
- }
- },
"supports-preserve-symlinks-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"dev": true
},
- "svg-tags": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
- "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA=="
- },
"swiper": {
"version": "11.0.6",
"resolved": "https://registry.npmjs.org/swiper/-/swiper-11.0.6.tgz",
@@ -19718,36 +18096,6 @@
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
"integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew=="
},
- "table": {
- "version": "6.8.1",
- "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
- "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
- "requires": {
- "ajv": "^8.0.1",
- "lodash.truncate": "^4.4.2",
- "slice-ansi": "^4.0.0",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1"
- },
- "dependencies": {
- "ajv": {
- "version": "8.11.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz",
- "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==",
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
- "json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
- }
- }
- },
"temp-dir": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
@@ -19841,6 +18189,7 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
"requires": {
"is-number": "^7.0.0"
}
@@ -20375,6 +18724,7 @@
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
"requires": {
"punycode": "^2.1.0"
}
@@ -20392,7 +18742,8 @@
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true
},
"uuid": {
"version": "8.3.2",
@@ -20659,19 +19010,6 @@
"@vue/devtools-api": "^6.5.0"
}
},
- "wait-on": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz",
- "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==",
- "dev": true,
- "requires": {
- "axios": "^1.6.1",
- "joi": "^17.11.0",
- "lodash": "^4.17.21",
- "minimist": "^1.2.8",
- "rxjs": "^7.8.1"
- }
- },
"webidl-conversions": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
@@ -20705,6 +19043,7 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
"requires": {
"isexe": "^2.0.0"
}
@@ -20996,38 +19335,12 @@
"strip-ansi": "^6.0.0"
}
},
- "wrap-ansi-cjs": {
- "version": "npm:wrap-ansi@7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true
},
- "write-file-atomic": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
- "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
- "requires": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^4.0.1"
- },
- "dependencies": {
- "signal-exit": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
- "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q=="
- }
- }
- },
"xml-name-validator": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
@@ -21037,7 +19350,8 @@
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
},
"yauzl": {
"version": "2.10.0",
diff --git a/frontend/package.json b/frontend/package.json
index d5d21c61..21df5a3e 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -6,24 +6,21 @@
"scripts": {
"preview": "vite preview",
"build": "vite build",
- "compose:up": "docker compose -f ../docker-compose.yml --profile backend-only up -d",
"dev": "vite",
"start": "API_HOST=http://localhost:5000 vite",
- "lint": "eslint . --ignore-path ../.gitignore",
- "format": "eslint . --fix --ignore-path ../.gitignore",
- "format:css": "stylelint --fix src/**/*.{css,vue}",
- "pretest:unit": "npm run lint",
+ "lint": "eslint . --fix --ignore-path ../.gitignore",
+ "format": "prettier . --write",
+ "format-check": "prettier . --check",
"test:e2e-ci": "FRONTEND_HOST=localhost FRONTEND_PORT=3000 cypress run --e2e --browser firefox",
"test:e2e-open": "FRONTEND_HOST=localhost FRONTEND_PORT=5173 cypress open --e2e --browser firefox"
},
"dependencies": {
"@gouvfr/dsfr": "~1.11.0",
"@gouvminint/vue-dsfr": "^5.8.0",
- "@vueuse/core": "^10.7.2",
"axios": "^1.6.7",
"luxon": "^3.4.4",
"pinia": "^2.1.7",
- "stylelint-config-recommended-vue": "^1.5.0",
+ "pinia-plugin-persistedstate": "^3.2.1",
"swiper": "^11.0.6",
"vite": "^5.0.12",
"vue": "^3.4.15",
@@ -42,6 +39,7 @@
"@vue/tsconfig": "^0.5.1",
"cypress": "^13.7.1",
"eslint": "^8.56.0",
+ "eslint-config-prettier": "^9.1.0",
"eslint-config-standard": "^17.1.0",
"eslint-config-standard-with-typescript": "^43.0.1",
"eslint-plugin-cypress": "^2.15.1",
@@ -49,9 +47,7 @@
"eslint-plugin-n": "^16.6.2",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-vue": "^9.21.1",
- "start-server-and-test": "^2.0.3",
- "stylelint": "^16.2.1",
- "stylelint-config-standard": "^36.0.0",
+ "prettier": "3.3.1",
"typescript": "^5.3.3",
"unocss": "^0.58.5",
"unplugin-auto-import": "^0.17.5",
diff --git a/frontend/src/.stylelintrc.js b/frontend/src/.stylelintrc.js
deleted file mode 100644
index 01d33208..00000000
--- a/frontend/src/.stylelintrc.js
+++ /dev/null
@@ -1,34 +0,0 @@
-module.exports = {
- root: true,
- extends: [
- 'stylelint-config-standard',
- 'stylelint-config-html/vue',
- 'stylelint-config-html',
- 'stylelint-config-recommended-vue',
- ],
- overrides: [
- {
- files: ['**/*.vue'],
- customSyntax: 'postcss-html',
- }
- ],
- rules: {
- 'max-line-length': 160,
- 'at-rule-no-unknown': [
- true,
- {
- ignoreAtRules: [
- 'windi',
- 'apply',
- 'include',
- 'variants',
- 'responsive',
- 'screen',
- ],
- },
- ],
- 'declaration-block-trailing-semicolon': null,
- 'no-descending-specificity': null,
- 'selector-class-pattern': '^((sm|md|lg|xl|2xl):)?[a-z][-_/a-z0-9]*$'
- },
-}
\ No newline at end of file
diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index 111f9ccb..84a9e004 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -1,35 +1,32 @@
-
+
Problème de connexion
@@ -57,5 +54,4 @@ registerSW({ immediate: true })
#nav a.router-link-exact-active {
color: #42b983;
}
-
diff --git a/frontend/src/api/api-client.ts b/frontend/src/api/api-client.ts
index cf680f3e..ec61f1a8 100644
--- a/frontend/src/api/api-client.ts
+++ b/frontend/src/api/api-client.ts
@@ -1,35 +1,44 @@
-import axios from 'axios'
-import { ASK_FOR_OPINION_ROUTE, IDENTIFICATION_DUMMY_ROUTE, IDENTIFICATION_FEEDBACK_ROUTE, TUTORIAL_FEEDBACK_ROUTE, UPLOAD_PHOTO_FOR_DETECTION_ROUTE } from './api-routes'
+import axios from "axios";
+import {
+ ASK_FOR_OPINION_ROUTE,
+ IDENTIFICATION_DUMMY_ROUTE,
+ IDENTIFICATION_FEEDBACK_ROUTE,
+ TUTORIAL_FEEDBACK_ROUTE,
+ UPLOAD_PHOTO_FOR_DETECTION_ROUTE,
+} from "./api-routes";
export const uploadPhotoForDetection = async (file: File) => {
- const fd = new FormData()
- fd.append('image', file, file.name)
- fd.append('date', '' + (Date.now() / 1000)) // date.now gives in milliseconds, convert to seconds
+ const fd = new FormData();
+ fd.append("image", file, file.name);
+ fd.append("date", "" + Date.now() / 1000); // date.now gives in milliseconds, convert to seconds
- const { data } = await axios.post(UPLOAD_PHOTO_FOR_DETECTION_ROUTE, fd)
- return data
-}
+ const { data } = await axios.post(UPLOAD_PHOTO_FOR_DETECTION_ROUTE, fd);
+ return data;
+};
export const sendTutorialFeedback = async (feedback: any) => {
- const { data } = await axios.post(TUTORIAL_FEEDBACK_ROUTE, feedback)
- return data
-}
+ const { data } = await axios.post(TUTORIAL_FEEDBACK_ROUTE, feedback);
+ return data;
+};
export const sendIdentificationFeedback = async (feedbackData: any) => {
- const { data } = await axios.post(IDENTIFICATION_FEEDBACK_ROUTE, feedbackData)
- return data
-}
+ const { data } = await axios.post(
+ IDENTIFICATION_FEEDBACK_ROUTE,
+ feedbackData,
+ );
+ return data;
+};
export const sendIdentificationDummyFeedback = async (feedbackDummy: any) => {
- const { data } = await axios.post(IDENTIFICATION_DUMMY_ROUTE, feedbackDummy)
- return data
-}
+ const { data } = await axios.post(IDENTIFICATION_DUMMY_ROUTE, feedbackDummy);
+ return data;
+};
export const sendExpertiseForm = async (feedbackExpert: any) => {
const { data } = await axios.post(ASK_FOR_OPINION_ROUTE, feedbackExpert, {
headers: {
- 'Content-Type': 'application/json',
+ "Content-Type": "application/json",
},
- })
- return data
-}
+ });
+ return data;
+};
diff --git a/frontend/src/api/api-routes.ts b/frontend/src/api/api-routes.ts
index e8b38d6c..e796e7cd 100644
--- a/frontend/src/api/api-routes.ts
+++ b/frontend/src/api/api-routes.ts
@@ -1,5 +1,5 @@
-export const UPLOAD_PHOTO_FOR_DETECTION_ROUTE = '/upload'
-export const TUTORIAL_FEEDBACK_ROUTE = '/tutorial-feedback'
-export const IDENTIFICATION_FEEDBACK_ROUTE = '/identification-feedback'
-export const IDENTIFICATION_DUMMY_ROUTE = '/identification-dummy'
-export const ASK_FOR_OPINION_ROUTE = 'http://localhost:8000/api/requests/'
+export const UPLOAD_PHOTO_FOR_DETECTION_ROUTE = "/upload";
+export const TUTORIAL_FEEDBACK_ROUTE = "/tutorial-feedback";
+export const IDENTIFICATION_FEEDBACK_ROUTE = "/identification-feedback";
+export const IDENTIFICATION_DUMMY_ROUTE = "/identification-dummy";
+export const ASK_FOR_OPINION_ROUTE = "http://localhost:8000/api/requests/";
diff --git a/frontend/src/auto-imports.d.ts b/frontend/src/auto-imports.d.ts
index d78c821a..50c95f02 100644
--- a/frontend/src/auto-imports.d.ts
+++ b/frontend/src/auto-imports.d.ts
@@ -5,881 +5,1745 @@
// Generated by unplugin-auto-import
export {}
declare global {
- const EffectScope: typeof import('vue')['EffectScope']
- const OhVueIcon: typeof import('oh-vue-icons')['OhVueIcon']
- const addIcons: typeof import('oh-vue-icons')['addIcons']
- const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
- const autoResetRef: typeof import('@vueuse/core')['autoResetRef']
- const computed: typeof import('vue')['computed']
- const computedAsync: typeof import('@vueuse/core')['computedAsync']
- const computedEager: typeof import('@vueuse/core')['computedEager']
- const computedInject: typeof import('@vueuse/core')['computedInject']
- const computedWithControl: typeof import('@vueuse/core')['computedWithControl']
- const controlledComputed: typeof import('@vueuse/core')['controlledComputed']
- const controlledRef: typeof import('@vueuse/core')['controlledRef']
- const createApp: typeof import('vue')['createApp']
- const createEventHook: typeof import('@vueuse/core')['createEventHook']
- const createGlobalState: typeof import('@vueuse/core')['createGlobalState']
- const createInjectionState: typeof import('@vueuse/core')['createInjectionState']
- const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn']
- const createReusableTemplate: typeof import('@vueuse/core')['createReusableTemplate']
- const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable']
- const createTemplatePromise: typeof import('@vueuse/core')['createTemplatePromise']
- const createUnrefFn: typeof import('@vueuse/core')['createUnrefFn']
- const customRef: typeof import('vue')['customRef']
- const debouncedRef: typeof import('@vueuse/core')['debouncedRef']
- const debouncedWatch: typeof import('@vueuse/core')['debouncedWatch']
- const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
- const defineComponent: typeof import('vue')['defineComponent']
- const eagerComputed: typeof import('@vueuse/core')['eagerComputed']
- const effectScope: typeof import('vue')['effectScope']
- const extendRef: typeof import('@vueuse/core')['extendRef']
- const getCurrentInstance: typeof import('vue')['getCurrentInstance']
- const getCurrentScope: typeof import('vue')['getCurrentScope']
- const h: typeof import('vue')['h']
- const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch']
- const inject: typeof import('vue')['inject']
- const injectLocal: typeof import('@vueuse/core')['injectLocal']
- const isDefined: typeof import('@vueuse/core')['isDefined']
- const isProxy: typeof import('vue')['isProxy']
- const isReactive: typeof import('vue')['isReactive']
- const isReadonly: typeof import('vue')['isReadonly']
- const isRef: typeof import('vue')['isRef']
- const makeDestructurable: typeof import('@vueuse/core')['makeDestructurable']
- const markRaw: typeof import('vue')['markRaw']
- const nextTick: typeof import('vue')['nextTick']
- const onActivated: typeof import('vue')['onActivated']
- const onBeforeMount: typeof import('vue')['onBeforeMount']
- const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
- const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
- const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
- const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
- const onClickOutside: typeof import('@vueuse/core')['onClickOutside']
- const onDeactivated: typeof import('vue')['onDeactivated']
- const onErrorCaptured: typeof import('vue')['onErrorCaptured']
- const onKeyStroke: typeof import('@vueuse/core')['onKeyStroke']
- const onLongPress: typeof import('@vueuse/core')['onLongPress']
- const onMounted: typeof import('vue')['onMounted']
- const onRenderTracked: typeof import('vue')['onRenderTracked']
- const onRenderTriggered: typeof import('vue')['onRenderTriggered']
- const onScopeDispose: typeof import('vue')['onScopeDispose']
- const onServerPrefetch: typeof import('vue')['onServerPrefetch']
- const onStartTyping: typeof import('@vueuse/core')['onStartTyping']
- const onUnmounted: typeof import('vue')['onUnmounted']
- const onUpdated: typeof import('vue')['onUpdated']
- const pausableWatch: typeof import('@vueuse/core')['pausableWatch']
- const provide: typeof import('vue')['provide']
- const provideLocal: typeof import('@vueuse/core')['provideLocal']
- const reactify: typeof import('@vueuse/core')['reactify']
- const reactifyObject: typeof import('@vueuse/core')['reactifyObject']
- const reactive: typeof import('vue')['reactive']
- const reactiveComputed: typeof import('@vueuse/core')['reactiveComputed']
- const reactiveOmit: typeof import('@vueuse/core')['reactiveOmit']
- const reactivePick: typeof import('@vueuse/core')['reactivePick']
- const readonly: typeof import('vue')['readonly']
- const ref: typeof import('vue')['ref']
- const refAutoReset: typeof import('@vueuse/core')['refAutoReset']
- const refDebounced: typeof import('@vueuse/core')['refDebounced']
- const refDefault: typeof import('@vueuse/core')['refDefault']
- const refThrottled: typeof import('@vueuse/core')['refThrottled']
- const refWithControl: typeof import('@vueuse/core')['refWithControl']
- const resolveComponent: typeof import('vue')['resolveComponent']
- const resolveRef: typeof import('@vueuse/core')['resolveRef']
- const resolveUnref: typeof import('@vueuse/core')['resolveUnref']
- const shallowReactive: typeof import('vue')['shallowReactive']
- const shallowReadonly: typeof import('vue')['shallowReadonly']
- const shallowRef: typeof import('vue')['shallowRef']
- const syncRef: typeof import('@vueuse/core')['syncRef']
- const syncRefs: typeof import('@vueuse/core')['syncRefs']
- const templateRef: typeof import('@vueuse/core')['templateRef']
- const throttledRef: typeof import('@vueuse/core')['throttledRef']
- const throttledWatch: typeof import('@vueuse/core')['throttledWatch']
- const toRaw: typeof import('vue')['toRaw']
- const toReactive: typeof import('@vueuse/core')['toReactive']
- const toRef: typeof import('vue')['toRef']
- const toRefs: typeof import('vue')['toRefs']
- const toValue: typeof import('vue')['toValue']
- const triggerRef: typeof import('vue')['triggerRef']
- const tryOnBeforeMount: typeof import('@vueuse/core')['tryOnBeforeMount']
- const tryOnBeforeUnmount: typeof import('@vueuse/core')['tryOnBeforeUnmount']
- const tryOnMounted: typeof import('@vueuse/core')['tryOnMounted']
- const tryOnScopeDispose: typeof import('@vueuse/core')['tryOnScopeDispose']
- const tryOnUnmounted: typeof import('@vueuse/core')['tryOnUnmounted']
- const unref: typeof import('vue')['unref']
- const unrefElement: typeof import('@vueuse/core')['unrefElement']
- const until: typeof import('@vueuse/core')['until']
- const useActiveElement: typeof import('@vueuse/core')['useActiveElement']
- const useAnimate: typeof import('@vueuse/core')['useAnimate']
- const useArrayDifference: typeof import('@vueuse/core')['useArrayDifference']
- const useArrayEvery: typeof import('@vueuse/core')['useArrayEvery']
- const useArrayFilter: typeof import('@vueuse/core')['useArrayFilter']
- const useArrayFind: typeof import('@vueuse/core')['useArrayFind']
- const useArrayFindIndex: typeof import('@vueuse/core')['useArrayFindIndex']
- const useArrayFindLast: typeof import('@vueuse/core')['useArrayFindLast']
- const useArrayIncludes: typeof import('@vueuse/core')['useArrayIncludes']
- const useArrayJoin: typeof import('@vueuse/core')['useArrayJoin']
- const useArrayMap: typeof import('@vueuse/core')['useArrayMap']
- const useArrayReduce: typeof import('@vueuse/core')['useArrayReduce']
- const useArraySome: typeof import('@vueuse/core')['useArraySome']
- const useArrayUnique: typeof import('@vueuse/core')['useArrayUnique']
- const useAsyncQueue: typeof import('@vueuse/core')['useAsyncQueue']
- const useAsyncState: typeof import('@vueuse/core')['useAsyncState']
- const useAttrs: typeof import('vue')['useAttrs']
- const useBase64: typeof import('@vueuse/core')['useBase64']
- const useBattery: typeof import('@vueuse/core')['useBattery']
- const useBluetooth: typeof import('@vueuse/core')['useBluetooth']
- const useBreakpoints: typeof import('@vueuse/core')['useBreakpoints']
- const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel']
- const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation']
- const useCached: typeof import('@vueuse/core')['useCached']
- const useClipboard: typeof import('@vueuse/core')['useClipboard']
- const useClipboardItems: typeof import('@vueuse/core')['useClipboardItems']
- const useCloned: typeof import('@vueuse/core')['useCloned']
- const useColorMode: typeof import('@vueuse/core')['useColorMode']
- const useConfirmDialog: typeof import('@vueuse/core')['useConfirmDialog']
- const useCounter: typeof import('@vueuse/core')['useCounter']
- const useCssModule: typeof import('vue')['useCssModule']
- const useCssVar: typeof import('@vueuse/core')['useCssVar']
- const useCssVars: typeof import('vue')['useCssVars']
- const useCurrentElement: typeof import('@vueuse/core')['useCurrentElement']
- const useCycleList: typeof import('@vueuse/core')['useCycleList']
- const useDark: typeof import('@vueuse/core')['useDark']
- const useDateFormat: typeof import('@vueuse/core')['useDateFormat']
- const useDebounce: typeof import('@vueuse/core')['useDebounce']
- const useDebounceFn: typeof import('@vueuse/core')['useDebounceFn']
- const useDebouncedRefHistory: typeof import('@vueuse/core')['useDebouncedRefHistory']
- const useDeviceMotion: typeof import('@vueuse/core')['useDeviceMotion']
- const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation']
- const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio']
- const useDevicesList: typeof import('@vueuse/core')['useDevicesList']
- const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia']
- const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility']
- const useDraggable: typeof import('@vueuse/core')['useDraggable']
- const useDropZone: typeof import('@vueuse/core')['useDropZone']
- const useElementBounding: typeof import('@vueuse/core')['useElementBounding']
- const useElementByPoint: typeof import('@vueuse/core')['useElementByPoint']
- const useElementHover: typeof import('@vueuse/core')['useElementHover']
- const useElementSize: typeof import('@vueuse/core')['useElementSize']
- const useElementVisibility: typeof import('@vueuse/core')['useElementVisibility']
- const useEventBus: typeof import('@vueuse/core')['useEventBus']
- const useEventListener: typeof import('@vueuse/core')['useEventListener']
- const useEventSource: typeof import('@vueuse/core')['useEventSource']
- const useEyeDropper: typeof import('@vueuse/core')['useEyeDropper']
- const useFavicon: typeof import('@vueuse/core')['useFavicon']
- const useFetch: typeof import('@vueuse/core')['useFetch']
- const useFileDialog: typeof import('@vueuse/core')['useFileDialog']
- const useFileSystemAccess: typeof import('@vueuse/core')['useFileSystemAccess']
- const useFocus: typeof import('@vueuse/core')['useFocus']
- const useFocusWithin: typeof import('@vueuse/core')['useFocusWithin']
- const useFps: typeof import('@vueuse/core')['useFps']
- const useFullscreen: typeof import('@vueuse/core')['useFullscreen']
- const useGamepad: typeof import('@vueuse/core')['useGamepad']
- const useGeolocation: typeof import('@vueuse/core')['useGeolocation']
- const useHead: typeof import('@vueuse/head')['useHead']
- const useIdle: typeof import('@vueuse/core')['useIdle']
- const useImage: typeof import('@vueuse/core')['useImage']
- const useInfiniteScroll: typeof import('@vueuse/core')['useInfiniteScroll']
- const useIntersectionObserver: typeof import('@vueuse/core')['useIntersectionObserver']
- const useInterval: typeof import('@vueuse/core')['useInterval']
- const useIntervalFn: typeof import('@vueuse/core')['useIntervalFn']
- const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier']
- const useLastChanged: typeof import('@vueuse/core')['useLastChanged']
- const useLink: typeof import('vue-router')['useLink']
- const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage']
- const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys']
- const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory']
- const useMediaControls: typeof import('@vueuse/core')['useMediaControls']
- const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery']
- const useMemoize: typeof import('@vueuse/core')['useMemoize']
- const useMemory: typeof import('@vueuse/core')['useMemory']
- const useMounted: typeof import('@vueuse/core')['useMounted']
- const useMouse: typeof import('@vueuse/core')['useMouse']
- const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement']
- const useMousePressed: typeof import('@vueuse/core')['useMousePressed']
- const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver']
- const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage']
- const useNetwork: typeof import('@vueuse/core')['useNetwork']
- const useNow: typeof import('@vueuse/core')['useNow']
- const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl']
- const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination']
- const useOnline: typeof import('@vueuse/core')['useOnline']
- const usePageLeave: typeof import('@vueuse/core')['usePageLeave']
- const useParallax: typeof import('@vueuse/core')['useParallax']
- const useParentElement: typeof import('@vueuse/core')['useParentElement']
- const usePerformanceObserver: typeof import('@vueuse/core')['usePerformanceObserver']
- const usePermission: typeof import('@vueuse/core')['usePermission']
- const usePointer: typeof import('@vueuse/core')['usePointer']
- const usePointerLock: typeof import('@vueuse/core')['usePointerLock']
- const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe']
- const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme']
- const usePreferredContrast: typeof import('@vueuse/core')['usePreferredContrast']
- const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark']
- const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages']
- const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion']
- const usePrevious: typeof import('@vueuse/core')['usePrevious']
- const useRafFn: typeof import('@vueuse/core')['useRafFn']
- const useRefHistory: typeof import('@vueuse/core')['useRefHistory']
- const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver']
- const useResultStore: typeof import('./stores/result')['useResultStore']
- const useRoute: typeof import('vue-router')['useRoute']
- const useRouter: typeof import('vue-router')['useRouter']
- const useScheme: typeof import('@gouvminint/vue-dsfr')['useScheme']
- const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation']
- const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea']
- const useScriptTag: typeof import('@vueuse/core')['useScriptTag']
- const useScroll: typeof import('@vueuse/core')['useScroll']
- const useScrollLock: typeof import('@vueuse/core')['useScrollLock']
- const useSeoMeta: typeof import('@vueuse/head')['useSeoMeta']
- const useSessionStorage: typeof import('@vueuse/core')['useSessionStorage']
- const useShare: typeof import('@vueuse/core')['useShare']
- const useSlots: typeof import('vue')['useSlots']
- const useSnackbarStore: typeof import('./stores/snackbar')['useSnackbarStore']
- const useSorted: typeof import('@vueuse/core')['useSorted']
- const useSpeechRecognition: typeof import('@vueuse/core')['useSpeechRecognition']
- const useSpeechSynthesis: typeof import('@vueuse/core')['useSpeechSynthesis']
- const useStepper: typeof import('@vueuse/core')['useStepper']
- const useStorage: typeof import('@vueuse/core')['useStorage']
- const useStorageAsync: typeof import('@vueuse/core')['useStorageAsync']
- const useStore: typeof import('./stores/result')['useStore']
- const useStyleTag: typeof import('@vueuse/core')['useStyleTag']
- const useSupported: typeof import('@vueuse/core')['useSupported']
- const useSwipe: typeof import('@vueuse/core')['useSwipe']
- const useTabs: typeof import('@gouvminint/vue-dsfr')['useTabs']
- const useTemplateRefsList: typeof import('@vueuse/core')['useTemplateRefsList']
- const useTextDirection: typeof import('@vueuse/core')['useTextDirection']
- const useTextSelection: typeof import('@vueuse/core')['useTextSelection']
- const useTextareaAutosize: typeof import('@vueuse/core')['useTextareaAutosize']
- const useThrottle: typeof import('@vueuse/core')['useThrottle']
- const useThrottleFn: typeof import('@vueuse/core')['useThrottleFn']
- const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory']
- const useTimeAgo: typeof import('@vueuse/core')['useTimeAgo']
- const useTimeout: typeof import('@vueuse/core')['useTimeout']
- const useTimeoutFn: typeof import('@vueuse/core')['useTimeoutFn']
- const useTimeoutPoll: typeof import('@vueuse/core')['useTimeoutPoll']
- const useTimestamp: typeof import('@vueuse/core')['useTimestamp']
- const useTitle: typeof import('@vueuse/core')['useTitle']
- const useToNumber: typeof import('@vueuse/core')['useToNumber']
- const useToString: typeof import('@vueuse/core')['useToString']
- const useToggle: typeof import('@vueuse/core')['useToggle']
- const useTransition: typeof import('@vueuse/core')['useTransition']
- const useUrlSearchParams: typeof import('@vueuse/core')['useUrlSearchParams']
- const useUserMedia: typeof import('@vueuse/core')['useUserMedia']
- const useVModel: typeof import('@vueuse/core')['useVModel']
- const useVModels: typeof import('@vueuse/core')['useVModels']
- const useVibrate: typeof import('@vueuse/core')['useVibrate']
- const useVirtualList: typeof import('@vueuse/core')['useVirtualList']
- const useWakeLock: typeof import('@vueuse/core')['useWakeLock']
- const useWebNotification: typeof import('@vueuse/core')['useWebNotification']
- const useWebSocket: typeof import('@vueuse/core')['useWebSocket']
- const useWebWorker: typeof import('@vueuse/core')['useWebWorker']
- const useWebWorkerFn: typeof import('@vueuse/core')['useWebWorkerFn']
- const useWindowFocus: typeof import('@vueuse/core')['useWindowFocus']
- const useWindowScroll: typeof import('@vueuse/core')['useWindowScroll']
- const useWindowSize: typeof import('@vueuse/core')['useWindowSize']
- const watch: typeof import('vue')['watch']
- const watchArray: typeof import('@vueuse/core')['watchArray']
- const watchAtMost: typeof import('@vueuse/core')['watchAtMost']
- const watchDebounced: typeof import('@vueuse/core')['watchDebounced']
- const watchDeep: typeof import('@vueuse/core')['watchDeep']
- const watchEffect: typeof import('vue')['watchEffect']
- const watchIgnorable: typeof import('@vueuse/core')['watchIgnorable']
- const watchImmediate: typeof import('@vueuse/core')['watchImmediate']
- const watchOnce: typeof import('@vueuse/core')['watchOnce']
- const watchPausable: typeof import('@vueuse/core')['watchPausable']
- const watchPostEffect: typeof import('vue')['watchPostEffect']
- const watchSyncEffect: typeof import('vue')['watchSyncEffect']
- const watchThrottled: typeof import('@vueuse/core')['watchThrottled']
- const watchTriggerable: typeof import('@vueuse/core')['watchTriggerable']
- const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter']
- const whenever: typeof import('@vueuse/core')['whenever']
+ const EffectScope: (typeof import("vue"))["EffectScope"];
+ const OhVueIcon: (typeof import("oh-vue-icons"))["OhVueIcon"];
+ const addIcons: (typeof import("oh-vue-icons"))["addIcons"];
+ const asyncComputed: (typeof import("@vueuse/core"))["asyncComputed"];
+ const autoResetRef: (typeof import("@vueuse/core"))["autoResetRef"];
+ const computed: (typeof import("vue"))["computed"];
+ const computedAsync: (typeof import("@vueuse/core"))["computedAsync"];
+ const computedEager: (typeof import("@vueuse/core"))["computedEager"];
+ const computedInject: (typeof import("@vueuse/core"))["computedInject"];
+ const computedWithControl: (typeof import("@vueuse/core"))["computedWithControl"];
+ const controlledComputed: (typeof import("@vueuse/core"))["controlledComputed"];
+ const controlledRef: (typeof import("@vueuse/core"))["controlledRef"];
+ const createApp: (typeof import("vue"))["createApp"];
+ const createEventHook: (typeof import("@vueuse/core"))["createEventHook"];
+ const createGlobalState: (typeof import("@vueuse/core"))["createGlobalState"];
+ const createInjectionState: (typeof import("@vueuse/core"))["createInjectionState"];
+ const createReactiveFn: (typeof import("@vueuse/core"))["createReactiveFn"];
+ const createReusableTemplate: (typeof import("@vueuse/core"))["createReusableTemplate"];
+ const createSharedComposable: (typeof import("@vueuse/core"))["createSharedComposable"];
+ const createTemplatePromise: (typeof import("@vueuse/core"))["createTemplatePromise"];
+ const createUnrefFn: (typeof import("@vueuse/core"))["createUnrefFn"];
+ const customRef: (typeof import("vue"))["customRef"];
+ const debouncedRef: (typeof import("@vueuse/core"))["debouncedRef"];
+ const debouncedWatch: (typeof import("@vueuse/core"))["debouncedWatch"];
+ const defineAsyncComponent: (typeof import("vue"))["defineAsyncComponent"];
+ const defineComponent: (typeof import("vue"))["defineComponent"];
+ const eagerComputed: (typeof import("@vueuse/core"))["eagerComputed"];
+ const effectScope: (typeof import("vue"))["effectScope"];
+ const extendRef: (typeof import("@vueuse/core"))["extendRef"];
+ const getCurrentInstance: (typeof import("vue"))["getCurrentInstance"];
+ const getCurrentScope: (typeof import("vue"))["getCurrentScope"];
+ const h: (typeof import("vue"))["h"];
+ const ignorableWatch: (typeof import("@vueuse/core"))["ignorableWatch"];
+ const inject: (typeof import("vue"))["inject"];
+ const injectLocal: (typeof import("@vueuse/core"))["injectLocal"];
+ const isDefined: (typeof import("@vueuse/core"))["isDefined"];
+ const isProxy: (typeof import("vue"))["isProxy"];
+ const isReactive: (typeof import("vue"))["isReactive"];
+ const isReadonly: (typeof import("vue"))["isReadonly"];
+ const isRef: (typeof import("vue"))["isRef"];
+ const makeDestructurable: (typeof import("@vueuse/core"))["makeDestructurable"];
+ const markRaw: (typeof import("vue"))["markRaw"];
+ const nextTick: (typeof import("vue"))["nextTick"];
+ const onActivated: (typeof import("vue"))["onActivated"];
+ const onBeforeMount: (typeof import("vue"))["onBeforeMount"];
+ const onBeforeRouteLeave: (typeof import("vue-router"))["onBeforeRouteLeave"];
+ const onBeforeRouteUpdate: (typeof import("vue-router"))["onBeforeRouteUpdate"];
+ const onBeforeUnmount: (typeof import("vue"))["onBeforeUnmount"];
+ const onBeforeUpdate: (typeof import("vue"))["onBeforeUpdate"];
+ const onClickOutside: (typeof import("@vueuse/core"))["onClickOutside"];
+ const onDeactivated: (typeof import("vue"))["onDeactivated"];
+ const onErrorCaptured: (typeof import("vue"))["onErrorCaptured"];
+ const onKeyStroke: (typeof import("@vueuse/core"))["onKeyStroke"];
+ const onLongPress: (typeof import("@vueuse/core"))["onLongPress"];
+ const onMounted: (typeof import("vue"))["onMounted"];
+ const onRenderTracked: (typeof import("vue"))["onRenderTracked"];
+ const onRenderTriggered: (typeof import("vue"))["onRenderTriggered"];
+ const onScopeDispose: (typeof import("vue"))["onScopeDispose"];
+ const onServerPrefetch: (typeof import("vue"))["onServerPrefetch"];
+ const onStartTyping: (typeof import("@vueuse/core"))["onStartTyping"];
+ const onUnmounted: (typeof import("vue"))["onUnmounted"];
+ const onUpdated: (typeof import("vue"))["onUpdated"];
+ const pausableWatch: (typeof import("@vueuse/core"))["pausableWatch"];
+ const provide: (typeof import("vue"))["provide"];
+ const provideLocal: (typeof import("@vueuse/core"))["provideLocal"];
+ const reactify: (typeof import("@vueuse/core"))["reactify"];
+ const reactifyObject: (typeof import("@vueuse/core"))["reactifyObject"];
+ const reactive: (typeof import("vue"))["reactive"];
+ const reactiveComputed: (typeof import("@vueuse/core"))["reactiveComputed"];
+ const reactiveOmit: (typeof import("@vueuse/core"))["reactiveOmit"];
+ const reactivePick: (typeof import("@vueuse/core"))["reactivePick"];
+ const readonly: (typeof import("vue"))["readonly"];
+ const ref: (typeof import("vue"))["ref"];
+ const refAutoReset: (typeof import("@vueuse/core"))["refAutoReset"];
+ const refDebounced: (typeof import("@vueuse/core"))["refDebounced"];
+ const refDefault: (typeof import("@vueuse/core"))["refDefault"];
+ const refThrottled: (typeof import("@vueuse/core"))["refThrottled"];
+ const refWithControl: (typeof import("@vueuse/core"))["refWithControl"];
+ const resolveComponent: (typeof import("vue"))["resolveComponent"];
+ const resolveRef: (typeof import("@vueuse/core"))["resolveRef"];
+ const resolveUnref: (typeof import("@vueuse/core"))["resolveUnref"];
+ const shallowReactive: (typeof import("vue"))["shallowReactive"];
+ const shallowReadonly: (typeof import("vue"))["shallowReadonly"];
+ const shallowRef: (typeof import("vue"))["shallowRef"];
+ const syncRef: (typeof import("@vueuse/core"))["syncRef"];
+ const syncRefs: (typeof import("@vueuse/core"))["syncRefs"];
+ const templateRef: (typeof import("@vueuse/core"))["templateRef"];
+ const throttledRef: (typeof import("@vueuse/core"))["throttledRef"];
+ const throttledWatch: (typeof import("@vueuse/core"))["throttledWatch"];
+ const toRaw: (typeof import("vue"))["toRaw"];
+ const toReactive: (typeof import("@vueuse/core"))["toReactive"];
+ const toRef: (typeof import("vue"))["toRef"];
+ const toRefs: (typeof import("vue"))["toRefs"];
+ const toValue: (typeof import("vue"))["toValue"];
+ const triggerRef: (typeof import("vue"))["triggerRef"];
+ const tryOnBeforeMount: (typeof import("@vueuse/core"))["tryOnBeforeMount"];
+ const tryOnBeforeUnmount: (typeof import("@vueuse/core"))["tryOnBeforeUnmount"];
+ const tryOnMounted: (typeof import("@vueuse/core"))["tryOnMounted"];
+ const tryOnScopeDispose: (typeof import("@vueuse/core"))["tryOnScopeDispose"];
+ const tryOnUnmounted: (typeof import("@vueuse/core"))["tryOnUnmounted"];
+ const unref: (typeof import("vue"))["unref"];
+ const unrefElement: (typeof import("@vueuse/core"))["unrefElement"];
+ const until: (typeof import("@vueuse/core"))["until"];
+ const useActiveElement: (typeof import("@vueuse/core"))["useActiveElement"];
+ const useAnimate: (typeof import("@vueuse/core"))["useAnimate"];
+ const useArrayDifference: (typeof import("@vueuse/core"))["useArrayDifference"];
+ const useArrayEvery: (typeof import("@vueuse/core"))["useArrayEvery"];
+ const useArrayFilter: (typeof import("@vueuse/core"))["useArrayFilter"];
+ const useArrayFind: (typeof import("@vueuse/core"))["useArrayFind"];
+ const useArrayFindIndex: (typeof import("@vueuse/core"))["useArrayFindIndex"];
+ const useArrayFindLast: (typeof import("@vueuse/core"))["useArrayFindLast"];
+ const useArrayIncludes: (typeof import("@vueuse/core"))["useArrayIncludes"];
+ const useArrayJoin: (typeof import("@vueuse/core"))["useArrayJoin"];
+ const useArrayMap: (typeof import("@vueuse/core"))["useArrayMap"];
+ const useArrayReduce: (typeof import("@vueuse/core"))["useArrayReduce"];
+ const useArraySome: (typeof import("@vueuse/core"))["useArraySome"];
+ const useArrayUnique: (typeof import("@vueuse/core"))["useArrayUnique"];
+ const useAsyncQueue: (typeof import("@vueuse/core"))["useAsyncQueue"];
+ const useAsyncState: (typeof import("@vueuse/core"))["useAsyncState"];
+ const useAttrs: (typeof import("vue"))["useAttrs"];
+ const useBase64: (typeof import("@vueuse/core"))["useBase64"];
+ const useBattery: (typeof import("@vueuse/core"))["useBattery"];
+ const useBluetooth: (typeof import("@vueuse/core"))["useBluetooth"];
+ const useBreakpoints: (typeof import("@vueuse/core"))["useBreakpoints"];
+ const useBroadcastChannel: (typeof import("@vueuse/core"))["useBroadcastChannel"];
+ const useBrowserLocation: (typeof import("@vueuse/core"))["useBrowserLocation"];
+ const useCached: (typeof import("@vueuse/core"))["useCached"];
+ const useClipboard: (typeof import("@vueuse/core"))["useClipboard"];
+ const useClipboardItems: (typeof import("@vueuse/core"))["useClipboardItems"];
+ const useCloned: (typeof import("@vueuse/core"))["useCloned"];
+ const useColorMode: (typeof import("@vueuse/core"))["useColorMode"];
+ const useConfirmDialog: (typeof import("@vueuse/core"))["useConfirmDialog"];
+ const useCounter: (typeof import("@vueuse/core"))["useCounter"];
+ const useCssModule: (typeof import("vue"))["useCssModule"];
+ const useCssVar: (typeof import("@vueuse/core"))["useCssVar"];
+ const useCssVars: (typeof import("vue"))["useCssVars"];
+ const useCurrentElement: (typeof import("@vueuse/core"))["useCurrentElement"];
+ const useCycleList: (typeof import("@vueuse/core"))["useCycleList"];
+ const useDark: (typeof import("@vueuse/core"))["useDark"];
+ const useDateFormat: (typeof import("@vueuse/core"))["useDateFormat"];
+ const useDebounce: (typeof import("@vueuse/core"))["useDebounce"];
+ const useDebounceFn: (typeof import("@vueuse/core"))["useDebounceFn"];
+ const useDebouncedRefHistory: (typeof import("@vueuse/core"))["useDebouncedRefHistory"];
+ const useDeviceMotion: (typeof import("@vueuse/core"))["useDeviceMotion"];
+ const useDeviceOrientation: (typeof import("@vueuse/core"))["useDeviceOrientation"];
+ const useDevicePixelRatio: (typeof import("@vueuse/core"))["useDevicePixelRatio"];
+ const useDevicesList: (typeof import("@vueuse/core"))["useDevicesList"];
+ const useDisplayMedia: (typeof import("@vueuse/core"))["useDisplayMedia"];
+ const useDocumentVisibility: (typeof import("@vueuse/core"))["useDocumentVisibility"];
+ const useDraggable: (typeof import("@vueuse/core"))["useDraggable"];
+ const useDropZone: (typeof import("@vueuse/core"))["useDropZone"];
+ const useElementBounding: (typeof import("@vueuse/core"))["useElementBounding"];
+ const useElementByPoint: (typeof import("@vueuse/core"))["useElementByPoint"];
+ const useElementHover: (typeof import("@vueuse/core"))["useElementHover"];
+ const useElementSize: (typeof import("@vueuse/core"))["useElementSize"];
+ const useElementVisibility: (typeof import("@vueuse/core"))["useElementVisibility"];
+ const useEventBus: (typeof import("@vueuse/core"))["useEventBus"];
+ const useEventListener: (typeof import("@vueuse/core"))["useEventListener"];
+ const useEventSource: (typeof import("@vueuse/core"))["useEventSource"];
+ const useEyeDropper: (typeof import("@vueuse/core"))["useEyeDropper"];
+ const useFavicon: (typeof import("@vueuse/core"))["useFavicon"];
+ const useFetch: (typeof import("@vueuse/core"))["useFetch"];
+ const useFileDialog: (typeof import("@vueuse/core"))["useFileDialog"];
+ const useFileSystemAccess: (typeof import("@vueuse/core"))["useFileSystemAccess"];
+ const useFocus: (typeof import("@vueuse/core"))["useFocus"];
+ const useFocusWithin: (typeof import("@vueuse/core"))["useFocusWithin"];
+ const useFps: (typeof import("@vueuse/core"))["useFps"];
+ const useFullscreen: (typeof import("@vueuse/core"))["useFullscreen"];
+ const useGamepad: (typeof import("@vueuse/core"))["useGamepad"];
+ const useGeolocation: (typeof import("@vueuse/core"))["useGeolocation"];
+ const useHead: (typeof import("@vueuse/head"))["useHead"];
+ const useIdle: (typeof import("@vueuse/core"))["useIdle"];
+ const useImage: (typeof import("@vueuse/core"))["useImage"];
+ const useInfiniteScroll: (typeof import("@vueuse/core"))["useInfiniteScroll"];
+ const useIntersectionObserver: (typeof import("@vueuse/core"))["useIntersectionObserver"];
+ const useInterval: (typeof import("@vueuse/core"))["useInterval"];
+ const useIntervalFn: (typeof import("@vueuse/core"))["useIntervalFn"];
+ const useKeyModifier: (typeof import("@vueuse/core"))["useKeyModifier"];
+ const useLastChanged: (typeof import("@vueuse/core"))["useLastChanged"];
+ const useLink: (typeof import("vue-router"))["useLink"];
+ const useLocalStorage: (typeof import("@vueuse/core"))["useLocalStorage"];
+ const useMagicKeys: (typeof import("@vueuse/core"))["useMagicKeys"];
+ const useManualRefHistory: (typeof import("@vueuse/core"))["useManualRefHistory"];
+ const useMediaControls: (typeof import("@vueuse/core"))["useMediaControls"];
+ const useMediaQuery: (typeof import("@vueuse/core"))["useMediaQuery"];
+ const useMemoize: (typeof import("@vueuse/core"))["useMemoize"];
+ const useMemory: (typeof import("@vueuse/core"))["useMemory"];
+ const useMounted: (typeof import("@vueuse/core"))["useMounted"];
+ const useMouse: (typeof import("@vueuse/core"))["useMouse"];
+ const useMouseInElement: (typeof import("@vueuse/core"))["useMouseInElement"];
+ const useMousePressed: (typeof import("@vueuse/core"))["useMousePressed"];
+ const useMutationObserver: (typeof import("@vueuse/core"))["useMutationObserver"];
+ const useNavigatorLanguage: (typeof import("@vueuse/core"))["useNavigatorLanguage"];
+ const useNetwork: (typeof import("@vueuse/core"))["useNetwork"];
+ const useNow: (typeof import("@vueuse/core"))["useNow"];
+ const useObjectUrl: (typeof import("@vueuse/core"))["useObjectUrl"];
+ const useOffsetPagination: (typeof import("@vueuse/core"))["useOffsetPagination"];
+ const useOnline: (typeof import("@vueuse/core"))["useOnline"];
+ const usePageLeave: (typeof import("@vueuse/core"))["usePageLeave"];
+ const useParallax: (typeof import("@vueuse/core"))["useParallax"];
+ const useParentElement: (typeof import("@vueuse/core"))["useParentElement"];
+ const usePerformanceObserver: (typeof import("@vueuse/core"))["usePerformanceObserver"];
+ const usePermission: (typeof import("@vueuse/core"))["usePermission"];
+ const usePointer: (typeof import("@vueuse/core"))["usePointer"];
+ const usePointerLock: (typeof import("@vueuse/core"))["usePointerLock"];
+ const usePointerSwipe: (typeof import("@vueuse/core"))["usePointerSwipe"];
+ const usePreferredColorScheme: (typeof import("@vueuse/core"))["usePreferredColorScheme"];
+ const usePreferredContrast: (typeof import("@vueuse/core"))["usePreferredContrast"];
+ const usePreferredDark: (typeof import("@vueuse/core"))["usePreferredDark"];
+ const usePreferredLanguages: (typeof import("@vueuse/core"))["usePreferredLanguages"];
+ const usePreferredReducedMotion: (typeof import("@vueuse/core"))["usePreferredReducedMotion"];
+ const usePrevious: (typeof import("@vueuse/core"))["usePrevious"];
+ const useRafFn: (typeof import("@vueuse/core"))["useRafFn"];
+ const useRefHistory: (typeof import("@vueuse/core"))["useRefHistory"];
+ const useResizeObserver: (typeof import("@vueuse/core"))["useResizeObserver"];
+ const useResultStore: (typeof import("./stores/result"))["useResultStore"];
+ const useRoute: (typeof import("vue-router"))["useRoute"];
+ const useRouter: (typeof import("vue-router"))["useRouter"];
+ const useScheme: (typeof import("@gouvminint/vue-dsfr"))["useScheme"];
+ const useScreenOrientation: (typeof import("@vueuse/core"))["useScreenOrientation"];
+ const useScreenSafeArea: (typeof import("@vueuse/core"))["useScreenSafeArea"];
+ const useScriptTag: (typeof import("@vueuse/core"))["useScriptTag"];
+ const useScroll: (typeof import("@vueuse/core"))["useScroll"];
+ const useScrollLock: (typeof import("@vueuse/core"))["useScrollLock"];
+ const useSeoMeta: (typeof import("@vueuse/head"))["useSeoMeta"];
+ const useSessionStorage: (typeof import("@vueuse/core"))["useSessionStorage"];
+ const useShare: (typeof import("@vueuse/core"))["useShare"];
+ const useSlots: (typeof import("vue"))["useSlots"];
+ const useSnackbarStore: (typeof import("./stores/snackbar"))["useSnackbarStore"];
+ const useSorted: (typeof import("@vueuse/core"))["useSorted"];
+ const useSpeechRecognition: (typeof import("@vueuse/core"))["useSpeechRecognition"];
+ const useSpeechSynthesis: (typeof import("@vueuse/core"))["useSpeechSynthesis"];
+ const useStepper: (typeof import("@vueuse/core"))["useStepper"];
+ const useStorage: (typeof import("@vueuse/core"))["useStorage"];
+ const useStorageAsync: (typeof import("@vueuse/core"))["useStorageAsync"];
+ const useStore: (typeof import("./stores/result"))["useStore"];
+ const useStyleTag: (typeof import("@vueuse/core"))["useStyleTag"];
+ const useSupported: (typeof import("@vueuse/core"))["useSupported"];
+ const useSwipe: (typeof import("@vueuse/core"))["useSwipe"];
+ const useTabs: (typeof import("@gouvminint/vue-dsfr"))["useTabs"];
+ const useTemplateRefsList: (typeof import("@vueuse/core"))["useTemplateRefsList"];
+ const useTextDirection: (typeof import("@vueuse/core"))["useTextDirection"];
+ const useTextSelection: (typeof import("@vueuse/core"))["useTextSelection"];
+ const useTextareaAutosize: (typeof import("@vueuse/core"))["useTextareaAutosize"];
+ const useThrottle: (typeof import("@vueuse/core"))["useThrottle"];
+ const useThrottleFn: (typeof import("@vueuse/core"))["useThrottleFn"];
+ const useThrottledRefHistory: (typeof import("@vueuse/core"))["useThrottledRefHistory"];
+ const useTimeAgo: (typeof import("@vueuse/core"))["useTimeAgo"];
+ const useTimeout: (typeof import("@vueuse/core"))["useTimeout"];
+ const useTimeoutFn: (typeof import("@vueuse/core"))["useTimeoutFn"];
+ const useTimeoutPoll: (typeof import("@vueuse/core"))["useTimeoutPoll"];
+ const useTimestamp: (typeof import("@vueuse/core"))["useTimestamp"];
+ const useTitle: (typeof import("@vueuse/core"))["useTitle"];
+ const useToNumber: (typeof import("@vueuse/core"))["useToNumber"];
+ const useToString: (typeof import("@vueuse/core"))["useToString"];
+ const useToggle: (typeof import("@vueuse/core"))["useToggle"];
+ const useTransition: (typeof import("@vueuse/core"))["useTransition"];
+ const useUrlSearchParams: (typeof import("@vueuse/core"))["useUrlSearchParams"];
+ const useUserMedia: (typeof import("@vueuse/core"))["useUserMedia"];
+ const useVModel: (typeof import("@vueuse/core"))["useVModel"];
+ const useVModels: (typeof import("@vueuse/core"))["useVModels"];
+ const useVibrate: (typeof import("@vueuse/core"))["useVibrate"];
+ const useVirtualList: (typeof import("@vueuse/core"))["useVirtualList"];
+ const useWakeLock: (typeof import("@vueuse/core"))["useWakeLock"];
+ const useWebNotification: (typeof import("@vueuse/core"))["useWebNotification"];
+ const useWebSocket: (typeof import("@vueuse/core"))["useWebSocket"];
+ const useWebWorker: (typeof import("@vueuse/core"))["useWebWorker"];
+ const useWebWorkerFn: (typeof import("@vueuse/core"))["useWebWorkerFn"];
+ const useWindowFocus: (typeof import("@vueuse/core"))["useWindowFocus"];
+ const useWindowScroll: (typeof import("@vueuse/core"))["useWindowScroll"];
+ const useWindowSize: (typeof import("@vueuse/core"))["useWindowSize"];
+ const watch: (typeof import("vue"))["watch"];
+ const watchArray: (typeof import("@vueuse/core"))["watchArray"];
+ const watchAtMost: (typeof import("@vueuse/core"))["watchAtMost"];
+ const watchDebounced: (typeof import("@vueuse/core"))["watchDebounced"];
+ const watchDeep: (typeof import("@vueuse/core"))["watchDeep"];
+ const watchEffect: (typeof import("vue"))["watchEffect"];
+ const watchIgnorable: (typeof import("@vueuse/core"))["watchIgnorable"];
+ const watchImmediate: (typeof import("@vueuse/core"))["watchImmediate"];
+ const watchOnce: (typeof import("@vueuse/core"))["watchOnce"];
+ const watchPausable: (typeof import("@vueuse/core"))["watchPausable"];
+ const watchPostEffect: (typeof import("vue"))["watchPostEffect"];
+ const watchSyncEffect: (typeof import("vue"))["watchSyncEffect"];
+ const watchThrottled: (typeof import("@vueuse/core"))["watchThrottled"];
+ const watchTriggerable: (typeof import("@vueuse/core"))["watchTriggerable"];
+ const watchWithFilter: (typeof import("@vueuse/core"))["watchWithFilter"];
+ const whenever: (typeof import("@vueuse/core"))["whenever"];
}
// for type re-export
declare global {
// @ts-ignore
- export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
- import('vue')
+ export type {
+ Component,
+ ComponentPublicInstance,
+ ComputedRef,
+ ExtractDefaultPropTypes,
+ ExtractPropTypes,
+ ExtractPublicPropTypes,
+ InjectionKey,
+ PropType,
+ Ref,
+ VNode,
+ WritableComputedRef,
+ } from "vue";
+ import("vue");
}
// for vue template auto import
-import { UnwrapRef } from 'vue'
-declare module 'vue' {
+import { UnwrapRef } from "vue";
+declare module "vue" {
interface GlobalComponents {}
interface ComponentCustomProperties {
- readonly EffectScope: UnwrapRef
- readonly OhVueIcon: UnwrapRef
- readonly addIcons: UnwrapRef
- readonly asyncComputed: UnwrapRef
- readonly autoResetRef: UnwrapRef
- readonly computed: UnwrapRef
- readonly computedAsync: UnwrapRef
- readonly computedEager: UnwrapRef
- readonly computedInject: UnwrapRef
- readonly computedWithControl: UnwrapRef
- readonly controlledComputed: UnwrapRef
- readonly controlledRef: UnwrapRef
- readonly createApp: UnwrapRef
- readonly createEventHook: UnwrapRef
- readonly createGlobalState: UnwrapRef
- readonly createInjectionState: UnwrapRef
- readonly createReactiveFn: UnwrapRef
- readonly createReusableTemplate: UnwrapRef
- readonly createSharedComposable: UnwrapRef
- readonly createTemplatePromise: UnwrapRef
- readonly createUnrefFn: UnwrapRef
- readonly customRef: UnwrapRef
- readonly debouncedRef: UnwrapRef
- readonly debouncedWatch: UnwrapRef
- readonly defineAsyncComponent: UnwrapRef
- readonly defineComponent: UnwrapRef
- readonly eagerComputed: UnwrapRef
- readonly effectScope: UnwrapRef
- readonly extendRef: UnwrapRef
- readonly getCurrentInstance: UnwrapRef
- readonly getCurrentScope: UnwrapRef
- readonly h: UnwrapRef
- readonly ignorableWatch: UnwrapRef
- readonly inject: UnwrapRef
- readonly injectLocal: UnwrapRef
- readonly isDefined: UnwrapRef
- readonly isProxy: UnwrapRef
- readonly isReactive: UnwrapRef
- readonly isReadonly: UnwrapRef
- readonly isRef: UnwrapRef
- readonly makeDestructurable: UnwrapRef
- readonly markRaw: UnwrapRef
- readonly nextTick: UnwrapRef
- readonly onActivated: UnwrapRef
- readonly onBeforeMount: UnwrapRef
- readonly onBeforeRouteLeave: UnwrapRef
- readonly onBeforeRouteUpdate: UnwrapRef
- readonly onBeforeUnmount: UnwrapRef
- readonly onBeforeUpdate: UnwrapRef
- readonly onClickOutside: UnwrapRef
- readonly onDeactivated: UnwrapRef
- readonly onErrorCaptured: UnwrapRef
- readonly onKeyStroke: UnwrapRef
- readonly onLongPress: UnwrapRef
- readonly onMounted: UnwrapRef
- readonly onRenderTracked: UnwrapRef
- readonly onRenderTriggered: UnwrapRef
- readonly onScopeDispose: UnwrapRef
- readonly onServerPrefetch: UnwrapRef
- readonly onStartTyping: UnwrapRef
- readonly onUnmounted: UnwrapRef
- readonly onUpdated: UnwrapRef
- readonly pausableWatch: UnwrapRef
- readonly provide: UnwrapRef
- readonly provideLocal: UnwrapRef
- readonly reactify: UnwrapRef
- readonly reactifyObject: UnwrapRef
- readonly reactive: UnwrapRef
- readonly reactiveComputed: UnwrapRef
- readonly reactiveOmit: UnwrapRef
- readonly reactivePick: UnwrapRef
- readonly readonly: UnwrapRef
- readonly ref: UnwrapRef
- readonly refAutoReset: UnwrapRef
- readonly refDebounced: UnwrapRef
- readonly refDefault: UnwrapRef
- readonly refThrottled: UnwrapRef
- readonly refWithControl: UnwrapRef
- readonly resolveComponent: UnwrapRef
- readonly resolveRef: UnwrapRef
- readonly resolveUnref: UnwrapRef
- readonly shallowReactive: UnwrapRef
- readonly shallowReadonly: UnwrapRef
- readonly shallowRef: UnwrapRef
- readonly syncRef: UnwrapRef
- readonly syncRefs: UnwrapRef
- readonly templateRef: UnwrapRef
- readonly throttledRef: UnwrapRef
- readonly throttledWatch: UnwrapRef
- readonly toRaw: UnwrapRef
- readonly toReactive: UnwrapRef
- readonly toRef: UnwrapRef
- readonly toRefs: UnwrapRef
- readonly toValue: UnwrapRef
- readonly triggerRef: UnwrapRef
- readonly tryOnBeforeMount: UnwrapRef
- readonly tryOnBeforeUnmount: UnwrapRef
- readonly tryOnMounted: UnwrapRef
- readonly tryOnScopeDispose: UnwrapRef
- readonly tryOnUnmounted: UnwrapRef
- readonly unref: UnwrapRef
- readonly unrefElement: UnwrapRef
- readonly until: UnwrapRef
- readonly useActiveElement: UnwrapRef
- readonly useAnimate: UnwrapRef
- readonly useArrayDifference: UnwrapRef
- readonly useArrayEvery: UnwrapRef
- readonly useArrayFilter: UnwrapRef
- readonly useArrayFind: UnwrapRef
- readonly useArrayFindIndex: UnwrapRef
- readonly useArrayFindLast: UnwrapRef
- readonly useArrayIncludes: UnwrapRef
- readonly useArrayJoin: UnwrapRef
- readonly useArrayMap: UnwrapRef
- readonly useArrayReduce: UnwrapRef
- readonly useArraySome: UnwrapRef
- readonly useArrayUnique: UnwrapRef
- readonly useAsyncQueue: UnwrapRef
- readonly useAsyncState: UnwrapRef
- readonly useAttrs: UnwrapRef
- readonly useBase64: UnwrapRef
- readonly useBattery: UnwrapRef
- readonly useBluetooth: UnwrapRef
- readonly useBreakpoints: UnwrapRef
- readonly useBroadcastChannel: UnwrapRef
- readonly useBrowserLocation: UnwrapRef
- readonly useCached: UnwrapRef
- readonly useClipboard: UnwrapRef
- readonly useClipboardItems: UnwrapRef
- readonly useCloned: UnwrapRef
- readonly useColorMode: UnwrapRef
- readonly useConfirmDialog: UnwrapRef
- readonly useCounter: UnwrapRef
- readonly useCssModule: UnwrapRef
- readonly useCssVar: UnwrapRef
- readonly useCssVars: UnwrapRef
- readonly useCurrentElement: UnwrapRef
- readonly useCycleList: UnwrapRef
- readonly useDark: UnwrapRef
- readonly useDateFormat: UnwrapRef
- readonly useDebounce: UnwrapRef
- readonly useDebounceFn: UnwrapRef
- readonly useDebouncedRefHistory: UnwrapRef
- readonly useDeviceMotion: UnwrapRef
- readonly useDeviceOrientation: UnwrapRef
- readonly useDevicePixelRatio: UnwrapRef
- readonly useDevicesList: UnwrapRef
- readonly useDisplayMedia: UnwrapRef
- readonly useDocumentVisibility: UnwrapRef
- readonly useDraggable: UnwrapRef
- readonly useDropZone: UnwrapRef
- readonly useElementBounding: UnwrapRef
- readonly useElementByPoint: UnwrapRef
- readonly useElementHover: UnwrapRef
- readonly useElementSize: UnwrapRef
- readonly useElementVisibility: UnwrapRef
- readonly useEventBus: UnwrapRef
- readonly useEventListener: UnwrapRef
- readonly useEventSource: UnwrapRef
- readonly useEyeDropper: UnwrapRef
- readonly useFavicon: UnwrapRef
- readonly useFetch: UnwrapRef
- readonly useFileDialog: UnwrapRef
- readonly useFileSystemAccess: UnwrapRef
- readonly useFocus: UnwrapRef
- readonly useFocusWithin: UnwrapRef
- readonly useFps: UnwrapRef
- readonly useFullscreen: UnwrapRef
- readonly useGamepad: UnwrapRef
- readonly useGeolocation: UnwrapRef
- readonly useHead: UnwrapRef
- readonly useIdle: UnwrapRef
- readonly useImage: UnwrapRef
- readonly useInfiniteScroll: UnwrapRef
- readonly useIntersectionObserver: UnwrapRef
- readonly useInterval: UnwrapRef
- readonly useIntervalFn: UnwrapRef
- readonly useKeyModifier: UnwrapRef
- readonly useLastChanged: UnwrapRef
- readonly useLink: UnwrapRef
- readonly useLocalStorage: UnwrapRef
- readonly useMagicKeys: UnwrapRef
- readonly useManualRefHistory: UnwrapRef
- readonly useMediaControls: UnwrapRef
- readonly useMediaQuery: UnwrapRef
- readonly useMemoize: UnwrapRef
- readonly useMemory: UnwrapRef
- readonly useMounted: UnwrapRef
- readonly useMouse: UnwrapRef
- readonly useMouseInElement: UnwrapRef
- readonly useMousePressed: UnwrapRef
- readonly useMutationObserver: UnwrapRef
- readonly useNavigatorLanguage: UnwrapRef
- readonly useNetwork: UnwrapRef
- readonly useNow: UnwrapRef
- readonly useObjectUrl: UnwrapRef
- readonly useOffsetPagination: UnwrapRef
- readonly useOnline: UnwrapRef
- readonly usePageLeave: UnwrapRef
- readonly useParallax: UnwrapRef
- readonly useParentElement: UnwrapRef
- readonly usePerformanceObserver: UnwrapRef
- readonly usePermission: UnwrapRef
- readonly usePointer: UnwrapRef
- readonly usePointerLock: UnwrapRef
- readonly usePointerSwipe: UnwrapRef
- readonly usePreferredColorScheme: UnwrapRef
- readonly usePreferredContrast: UnwrapRef
- readonly usePreferredDark: UnwrapRef
- readonly usePreferredLanguages: UnwrapRef
- readonly usePreferredReducedMotion: UnwrapRef
- readonly usePrevious: UnwrapRef
- readonly useRafFn: UnwrapRef
- readonly useRefHistory: UnwrapRef
- readonly useResizeObserver: UnwrapRef
- readonly useRoute: UnwrapRef
- readonly useRouter: UnwrapRef
- readonly useScheme: UnwrapRef
- readonly useScreenOrientation: UnwrapRef
- readonly useScreenSafeArea: UnwrapRef
- readonly useScriptTag: UnwrapRef
- readonly useScroll: UnwrapRef
- readonly useScrollLock: UnwrapRef
- readonly useSeoMeta: UnwrapRef
- readonly useSessionStorage: UnwrapRef
- readonly useShare: UnwrapRef
- readonly useSlots: UnwrapRef
- readonly useSnackbarStore: UnwrapRef
- readonly useSorted: UnwrapRef
- readonly useSpeechRecognition: UnwrapRef
- readonly useSpeechSynthesis: UnwrapRef
- readonly useStepper: UnwrapRef
- readonly useStorage: UnwrapRef
- readonly useStorageAsync: UnwrapRef
- readonly useStore: UnwrapRef
- readonly useStyleTag: UnwrapRef
- readonly useSupported: UnwrapRef
- readonly useSwipe: UnwrapRef
- readonly useTabs: UnwrapRef
- readonly useTemplateRefsList: UnwrapRef
- readonly useTextDirection: UnwrapRef
- readonly useTextSelection: UnwrapRef
- readonly useTextareaAutosize: UnwrapRef
- readonly useThrottle: UnwrapRef
- readonly useThrottleFn: UnwrapRef
- readonly useThrottledRefHistory: UnwrapRef
- readonly useTimeAgo: UnwrapRef
- readonly useTimeout: UnwrapRef
- readonly useTimeoutFn: UnwrapRef
- readonly useTimeoutPoll: UnwrapRef
- readonly useTimestamp: UnwrapRef