From 40cc14c4890a25c0a3ef2bb9ca06e3e1aea24f68 Mon Sep 17 00:00:00 2001
From: Do Duc Quan <99700700+ducquando@users.noreply.github.com>
Date: Thu, 18 Apr 2024 21:20:42 +0700
Subject: [PATCH 1/5] Add more test cases
---
.github/workflows/build.yml | 3 -
package.json | 2 +-
src/core/utils/id-helper.spec.ts | 50 ++++++++++
src/core/utils/math-helper.ts | 1 -
.../components/headers/IdHeader.tsx | 15 ++-
src/wireframes/model/actions/diagrams.spec.ts | 91 ++++++++++++++++++-
src/wireframes/model/actions/diagrams.ts | 11 +++
src/wireframes/model/actions/items.spec.ts | 24 ++++-
src/wireframes/model/actions/items.ts | 9 +-
src/wireframes/model/actions/ui.spec.ts | 42 ++++++++-
src/wireframes/model/actions/ui.ts | 10 +-
src/wireframes/model/diagram-item.ts | 10 +-
src/wireframes/model/diagram.spec.ts | 33 +++++++
src/wireframes/model/editor-state.spec.ts | 13 +++
14 files changed, 286 insertions(+), 28 deletions(-)
create mode 100644 src/core/utils/id-helper.spec.ts
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 0f0e0b8..295ea41 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,9 +1,6 @@
name: Build
on:
- push:
- branches:
- - main
pull_request:
branches:
- main
diff --git a/package.json b/package.json
index 81881d0..1efb566 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "codeslide.net",
- "version": "0.3.5",
+ "version": "0.3.6",
"private": true,
"dependencies": {
"@ant-design/icons": "^4.8.1",
diff --git a/src/core/utils/id-helper.spec.ts b/src/core/utils/id-helper.spec.ts
new file mode 100644
index 0000000..2d871b1
--- /dev/null
+++ b/src/core/utils/id-helper.spec.ts
@@ -0,0 +1,50 @@
+/*
+ * codeslide.net
+ *
+ * @license
+ * Forked from mydraft.cc by Sebastian Stehle
+ * Copyright (c) Do Duc Quan. All rights reserved.
+*/
+
+import { shapes } from '@app/const';
+import { IDHelper } from '@app/core/utils';
+import { Diagram, DiagramItem } from '@app/wireframes/model';
+
+describe('IDHelper', () => {
+ it('should instantiate', () => {
+ Object.values(shapes.id).map((renderer) => {
+ const diagram = Diagram.create();
+ const { id, count, newDiagram } = IDHelper.nextId(diagram, renderer);
+
+ expect(id).toBe(`${renderer}1`);
+ expect(count).toBe(1);
+ expect(newDiagram.nextIds.get(renderer)).toBe(1);
+ })
+ });
+
+ it('should generate next id', () => {
+ Object.values(shapes.id).map((renderer) => {
+ let diagram = Diagram.create();
+ diagram = diagram.addShape(DiagramItem.createShape({ renderer: renderer }, diagram));
+ const { id, count, newDiagram } = IDHelper.nextId(diagram, renderer);
+
+ expect(id).toBe(`${renderer}2`);
+ expect(count).toBe(2);
+ expect(newDiagram.nextIds.get(renderer)).toBe(2);
+ })
+ });
+
+ it('should adjust next id if existed', () => {
+ Object.values(shapes.id).map((renderer) => {
+ let diagram = Diagram.create();
+ diagram = diagram.addShape(DiagramItem.createShape({ id: `${renderer}1`,renderer: renderer }, diagram));
+ diagram = diagram.addShape(DiagramItem.createShape({ renderer: renderer }, diagram));
+
+ const { id, count, newDiagram } = IDHelper.nextId(diagram, renderer);
+
+ expect(id).toBe(`${renderer}3`);
+ expect(count).toBe(3);
+ expect(newDiagram.nextIds.get(renderer)).toBe(3);
+ })
+ });
+});
diff --git a/src/core/utils/math-helper.ts b/src/core/utils/math-helper.ts
index e6643ea..9731e57 100644
--- a/src/core/utils/math-helper.ts
+++ b/src/core/utils/math-helper.ts
@@ -15,7 +15,6 @@ export module MathHelper {
return CURRENT_ID.toString();
}
-
export function nextCIId(isbegining:boolean, CURRENT_INSTANCE_ID?: any) {
if (isbegining ) {
CURRENT_INSTANCE_ID = 0;
diff --git a/src/wireframes/components/headers/IdHeader.tsx b/src/wireframes/components/headers/IdHeader.tsx
index 3e788b9..7819455 100644
--- a/src/wireframes/components/headers/IdHeader.tsx
+++ b/src/wireframes/components/headers/IdHeader.tsx
@@ -26,11 +26,16 @@ export const IdHeader = () => {
};
const acceptUpdateId = () => {
- try {
- dispatch(replaceId(diagram!, id, newId));
- } catch (e) {
- if (e instanceof Error) messageApi.error(e.message);
+ dispatch(replaceId(diagram!, id, newId));
+ setIsUpdate(false);
+ };
+
+ const handleUpdateId = () => {
+ if (diagram!.items.has(newId)) {
+ messageApi.error(`Cannot change ID. ${newId} is assigning to another shape.`);
cancelUpdateId();
+ } else {
+ acceptUpdateId();
}
};
@@ -52,7 +57,7 @@ export const IdHeader = () => {
className='shape-cta'
type='text'
icon={}
- onClick={acceptUpdateId} />
+ onClick={handleUpdateId} />
: <>>
}
diff --git a/src/wireframes/model/actions/diagrams.spec.ts b/src/wireframes/model/actions/diagrams.spec.ts
index 7e6f339..95fd1cc 100644
--- a/src/wireframes/model/actions/diagrams.spec.ts
+++ b/src/wireframes/model/actions/diagrams.spec.ts
@@ -9,7 +9,7 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { Color, Vec2 } from '@app/core/utils';
-import { addDiagram, buildDiagrams, changeColor, changeSize, createClassReducer, Diagram, duplicateDiagram, EditorState, moveDiagram, removeDiagram, renameDiagram, selectDiagram, setDiagramMaster } from '@app/wireframes/model';
+import { addDiagram, buildDiagrams, changeColor, changeFrames, changeName, changeRevealConfig, changeScript, changeSize, createClassReducer, Diagram, duplicateDiagram, EditorState, moveDiagram, removeDiagram, renameDiagram, selectDiagram, setDiagramMaster, updateNextId } from '@app/wireframes/model';
describe('DiagramReducer', () => {
const state =
@@ -111,6 +111,95 @@ describe('DiagramReducer', () => {
expect(state_2.diagrams.get('1')?.title).toEqual('New Title');
});
+ it('should change script', () => {
+ const diagram = Diagram.create({ id: '1' });
+
+ const action = changeScript(diagram, 'New Script');
+
+ const state_1 = EditorState.create().addDiagram(diagram);
+ const state_2 = reducer(state_1, action);
+
+ expect(state_2.diagrams.get('1')?.script).toEqual('New Script');
+ });
+
+ it('should change frames', () => {
+ const diagram = Diagram.create({ id: '1' });
+
+ const action = changeFrames(diagram, [['Shape1']]);
+
+ const state_1 = EditorState.create().addDiagram(diagram);
+ const state_2 = reducer(state_1, action);
+
+ expect(state_2.diagrams.get('1')?.frames).toEqual([['Shape1']]);
+ });
+
+ it('should increase nextId', () => {
+ const diagram = Diagram.create({ id: '1' });
+ const renderer = 'Textbox';
+
+ const action = updateNextId(diagram, renderer, 10);
+
+ const state_1 = EditorState.create().addDiagram(diagram);
+ const state_2 = reducer(state_1, action);
+
+ expect(state_2.diagrams.get('1')?.nextIds.get(renderer)).toEqual(10);
+ });
+
+ it('should not decrease nextId', () => {
+ const diagram = Diagram.create({ id: '1' });
+ const renderer = 'Textbox';
+
+ const action1 = updateNextId(diagram, renderer, 10);
+ const action2 = updateNextId(diagram, renderer, 5);
+
+ const state_1 = EditorState.create().addDiagram(diagram);
+ const state_2 = reducer(state_1, action1);
+ const state_3 = reducer(state_2, action2);
+
+ expect(state_3.diagrams.get('1')?.nextIds.get(renderer)).toEqual(10);
+ });
+
+ it('should not assign negative number to nextId', () => {
+ const diagram = Diagram.create({ id: '1' });
+ const renderer = 'Textbox';
+
+ const action1 = updateNextId(diagram, renderer, -1);
+
+ const state_1 = EditorState.create().addDiagram(diagram);
+ const state_2 = reducer(state_1, action1);
+
+ expect(state_2.diagrams.get('1')?.nextIds.get(renderer)).toEqual(undefined);
+ });
+
+ it('should rename project', () => {
+ const action = changeName('New Name');
+
+ const state_1 = EditorState.create();
+ const state_2 = reducer(state_1, action);
+
+ expect(state_2.name).toEqual('New Name');
+ });
+
+ it('should change reveal config', () => {
+ const newConfig = JSON.stringify({ enabled: true, autoPlay: true, autoPlayDuration: 10 });
+ const action = changeRevealConfig(newConfig);
+
+ const state_1 = EditorState.create();
+ const state_2 = reducer(state_1, action);
+
+ expect(state_2.revealConfig).toEqual(newConfig);
+ });
+
+ it('should change reveal config', () => {
+ const newConfig = JSON.stringify({ enabled: true, autoPlay: true, autoPlayDuration: 10 });
+ const action = changeRevealConfig(newConfig);
+
+ const state_1 = EditorState.create();
+ const state_2 = reducer(state_1, action);
+
+ expect(state_2.revealConfig).toEqual(newConfig);
+ });
+
it('should set master', () => {
const diagram = Diagram.create({ id: '1' });
diff --git a/src/wireframes/model/actions/diagrams.ts b/src/wireframes/model/actions/diagrams.ts
index a300f9e..88f66be 100644
--- a/src/wireframes/model/actions/diagrams.ts
+++ b/src/wireframes/model/actions/diagrams.ts
@@ -10,6 +10,7 @@ import { ActionReducerMapBuilder, createAction } from '@reduxjs/toolkit';
import { Color, MathHelper, Vec2 } from '@app/core/utils';
import { Diagram, EditorState } from './../internal';
import { createDiagramAction, DiagramRef } from './utils';
+import { s } from 'vitest/dist/reporters-5f784f42.js';
export const addDiagram =
createAction('diagram/add', (diagramId?: string, index?: number) => {
@@ -136,8 +137,18 @@ export function buildDiagrams(builder: ActionReducerMapBuilder) {
.addCase(updateNextId, (state, action) => {
const { diagramId, renderer, count } = action.payload;
+ const diagram = state.diagrams.get(diagramId);
+ if (count < (diagram?.nextIds.get(renderer) ?? 0)) {
+ return state;
+ }
+
return state.updateDiagram(diagramId, diagram => diagram.updateNextId(renderer, count));
})
+ .addCase(changeRevealConfig, (state, action) => {
+ const { config } = action.payload;
+
+ return state.changeReveal(config);
+ })
.addCase(duplicateDiagram, (state, action) => {
const { diagramId, index } = action.payload;
diff --git a/src/wireframes/model/actions/items.spec.ts b/src/wireframes/model/actions/items.spec.ts
index 1efa9fb..d55fb0b 100644
--- a/src/wireframes/model/actions/items.spec.ts
+++ b/src/wireframes/model/actions/items.spec.ts
@@ -10,7 +10,7 @@
import { shapes } from '@app/const';
import { Vec2 } from '@app/core/utils';
-import { addShape, buildItems, calculateSelection, createClassReducer, Diagram, DiagramItem, DiagramItemSet, EditorState, lockItems, pasteItems, removeItems, renameItems, RendererService, selectItems, Serializer, unlockItems } from '@app/wireframes/model';
+import { addShape, buildItems, calculateSelection, createClassReducer, Diagram, DiagramItem, DiagramItemSet, EditorState, lockItems, pasteItems, removeItems, renameItems, RendererService, replaceId, selectItems, Serializer, unlockItems } from '@app/wireframes/model';
import { Button } from '@app/wireframes/shapes/neutral/button';
import { Icon } from '@app/wireframes/shapes/shared/icon';
import { Raster } from '@app/wireframes/shapes/shared/raster';
@@ -219,4 +219,26 @@ describe('ItemsReducer', () => {
expect(itemIds).toEqual([groupId]);
});
+
+ it('should replace current id with new id', () => {
+ const action = replaceId(diagram, shape1, 'new-id');
+
+ const state_1 = EditorState.create().addDiagram(diagram);
+ const state_2 = reducer(state_1, action);
+
+ const newShape = state_2.diagrams.get(diagram.id)!.items.get('new-id')!;
+
+ expect(newShape).toBeDefined();
+ });
+
+ it('should not replace id if existed', () => {
+ const action = replaceId(diagram, shape1, shape2.id);
+
+ const state_1 = EditorState.create().addDiagram(diagram);
+ const state_2 = reducer(state_1, action);
+
+ const newShape = state_2.diagrams.get(diagram.id)!.items.get(shape1.id)!;
+
+ expect(newShape).toBeDefined();
+ });
});
diff --git a/src/wireframes/model/actions/items.ts b/src/wireframes/model/actions/items.ts
index 62fdf8b..f3f0102 100644
--- a/src/wireframes/model/actions/items.ts
+++ b/src/wireframes/model/actions/items.ts
@@ -98,11 +98,10 @@ export function buildItems(builder: ActionReducerMapBuilder) {
const { diagramId, itemId, id } = action.payload;
return state.updateDiagram(diagramId, diagram => {
- // If current id is the same as new id, return
- if (itemId === id) return diagram;
-
- // If new id is already existed, throw error
- if (diagram.items.has(id)) throw new Error(`Cannot perform action! Item with id ${id} already existed.`);
+ // If current id is the same as new id or new id is already existed, return
+ if (itemId === id || diagram.items.has(id)) {
+ return diagram;
+ }
// If shape is not existed, return
const shape = diagram.items.get(itemId);
diff --git a/src/wireframes/model/actions/ui.spec.ts b/src/wireframes/model/actions/ui.spec.ts
index d93b3d4..d05886e 100644
--- a/src/wireframes/model/actions/ui.spec.ts
+++ b/src/wireframes/model/actions/ui.spec.ts
@@ -8,7 +8,7 @@
/* eslint-disable @typescript-eslint/naming-convention */
-import { filterDiagrams, selectColorTab, setZoom, showToast, ui, UIState } from '@app/wireframes/model';
+import { filterDiagrams, selectColorTab, setAnimation, setFooterSize, setIsTourOpen, setMode, setSidebarSize, setZoom, showToast, ui, UIState } from '@app/wireframes/model';
describe('UIReducer', () => {
const state: UIState = {} as any;
@@ -38,4 +38,44 @@ describe('UIReducer', () => {
expect(state_1).toBe(state);
});
+
+ it('should set sizebar size', () => {
+ const state_1 = reducer(state, setSidebarSize(600));
+ const state_2 = reducer(state, setSidebarSize(0));
+
+ expect(state_1.sidebarSize).toEqual(600);
+ expect(state_2.sidebarSize).toEqual(0);
+ });
+
+ it('should set footer size', () => {
+ const state_1 = reducer(state, setFooterSize(72));
+ const state_2 = reducer(state, setFooterSize(0));
+
+ expect(state_1.footerSize).toEqual(72);
+ expect(state_2.footerSize).toEqual(0);
+ });
+
+ it('should change mode', () => {
+ const state_1 = reducer(state, setMode('animation'));
+ const state_2 = reducer(state_1, setMode('design'));
+
+ expect(state_1.selectedMode).toEqual('animation');
+ expect(state_2.selectedMode).toEqual('design');
+ });
+
+ it('should change animation tab', () => {
+ const state_1 = reducer(state, setAnimation('output'));
+ const state_2 = reducer(state_1, setAnimation('script'));
+
+ expect(state_1.selectedAnimation).toEqual('output');
+ expect(state_2.selectedAnimation).toEqual('script');
+ });
+
+ it('should toggle tour', () => {
+ const state_1 = reducer(state, setIsTourOpen(true));
+ const state_2 = reducer(state_1, setIsTourOpen(false));
+
+ expect(state_1.isTourOpen).toBeTruthy();
+ expect(state_2.isTourOpen).toBeFalsy();
+ });
});
\ No newline at end of file
diff --git a/src/wireframes/model/actions/ui.ts b/src/wireframes/model/actions/ui.ts
index 09af955..eebdbf3 100644
--- a/src/wireframes/model/actions/ui.ts
+++ b/src/wireframes/model/actions/ui.ts
@@ -48,16 +48,16 @@ export const setAnimation =
return { payload: { animation } };
});
-export const filterDiagrams =
- createAction('ui/diagrams/filter', (filter: string) => {
- return { payload: { filter } };
- });
-
export const setIsTourOpen =
createAction('ui/isTourOpen', (isOpen: boolean) => {
return { payload: { isOpen } };
});
+export const filterDiagrams =
+ createAction('ui/diagrams/filter', (filter: string) => {
+ return { payload: { filter } };
+ });
+
export function toastMiddleware() {
const middleware: Middleware = () => (next: Dispatch) => (action: any) => {
if (showToast.match(action)) {
diff --git a/src/wireframes/model/diagram-item.ts b/src/wireframes/model/diagram-item.ts
index 965b435..9b1d162 100644
--- a/src/wireframes/model/diagram-item.ts
+++ b/src/wireframes/model/diagram-item.ts
@@ -6,7 +6,7 @@
* Copyright (c) Do Duc Quan. All rights reserved.
*/
-import { ImmutableList, ImmutableMap, MathHelper, Record, Rotation } from '@app/core/utils';
+import { IDHelper, ImmutableList, ImmutableMap, MathHelper, Record, Rotation } from '@app/core/utils';
import { Shape } from '@app/wireframes/interface';
import { shapes } from '@app/const';
import { Configurable } from './configurables';
@@ -202,11 +202,11 @@ export class DiagramItem extends Record implements Shape {
return this.appearance.get(key);
}
- public static createGroup(setup: InitialGroupProps = {}) {
+ public static createGroup(setup: InitialGroupProps = {}, diagram?: Diagram) {
const { id, childIds, isLocked, name, rotation } = setup;
const props: GroupProps & ItemProps = {
- id: id || MathHelper.nextId(),
+ id: id || (typeof(diagram) !== 'undefined' ? IDHelper.nextId(diagram, 'Group').id : MathHelper.nextId()),
childCache: {},
childIds: ImmutableList.of(childIds),
isLocked,
@@ -218,11 +218,11 @@ export class DiagramItem extends Record implements Shape {
return new DiagramItem(props as any);
}
- public static createShape(setup: InitialShapeProps) {
+ public static createShape(setup: InitialShapeProps, diagram?: Diagram) {
const { id, appearance, configurables, constraint, isLocked, name, renderer, transform } = setup;
const props: ShapeProps & ItemProps = {
- id: id || MathHelper.nextId(),
+ id: id || (typeof(diagram) !== 'undefined' ? IDHelper.nextId(diagram, renderer).id : MathHelper.nextId()),
appearance: ImmutableMap.of(appearance),
configurables,
constraint,
diff --git a/src/wireframes/model/diagram.spec.ts b/src/wireframes/model/diagram.spec.ts
index 9f10d31..e9ff8ec 100644
--- a/src/wireframes/model/diagram.spec.ts
+++ b/src/wireframes/model/diagram.spec.ts
@@ -277,4 +277,37 @@ describe('Diagram', () => {
expect(diagram_3.rootIds.values).toEqual([shape1.id, shape3.id, shape2.id]);
});
+
+ it('should update next id', () => {
+ const diagram_2 = diagram_1
+ .updateNextId('Textbox', 10)
+ .updateNextId('Shape', 12)
+ .updateNextId('Group', 20);
+
+ expect(diagram_2.nextIds.get('Textbox')).toBe(10);
+ expect(diagram_2.nextIds.get('Shape')).toBe(12);
+ expect(diagram_2.nextIds.get('Group')).toBe(20);
+ });
+
+ it('should set new frames', () => {
+ const frame_1 = [['Shape1']];
+ const frame_2 = [['Shape3', 'Shape4']];
+
+ const diagram_2 = diagram_1.setFrames(frame_1);
+ const diagram_3 = diagram_1.setFrames(frame_2);
+
+ expect(diagram_2.frames).toEqual(frame_1);
+ expect(diagram_3.frames).toEqual(frame_2);
+ });
+
+ it('should modify animation script', () => {
+ const script_1 = ' \n print("<1> Shape1")';
+ const script_2 = '<1> Shape2';
+
+ const diagram_2 = diagram_1.setScript(script_1);
+ const diagram_3 = diagram_1.setScript(script_2);
+
+ expect(diagram_2.script).toEqual(script_1);
+ expect(diagram_3.script).toEqual(script_2);
+ });
});
diff --git a/src/wireframes/model/editor-state.spec.ts b/src/wireframes/model/editor-state.spec.ts
index 0cad4cc..9b9db89 100644
--- a/src/wireframes/model/editor-state.spec.ts
+++ b/src/wireframes/model/editor-state.spec.ts
@@ -144,4 +144,17 @@ describe('EditorState', () => {
expect(state_2).toBe(state_1);
});
+
+ it('should change project name', () => {
+ const state_2 = state_1.changeName('New Name');
+
+ expect(state_2.name).toBe('New Name');
+ });
+
+ it('should change reveal config', () => {
+ const config = JSON.stringify({config: 'config'});
+ const state_2 = state_1.changeReveal(config);
+
+ expect(state_2.revealConfig).toBe(config);
+ });
});
From 3a751dd405eb43fac23d9bfacddc14c1109b3396 Mon Sep 17 00:00:00 2001
From: Do Duc Quan <99700700+ducquando@users.noreply.github.com>
Date: Thu, 18 Apr 2024 21:52:06 +0700
Subject: [PATCH 2/5] Change github action
---
.github/workflows/build.yml | 5 ++---
src/wireframes/model/actions/diagrams.ts | 1 -
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 295ea41..6d87942 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,7 +1,7 @@
name: Build
on:
- pull_request:
+ push:
branches:
- main
@@ -33,10 +33,9 @@ jobs:
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
- name: Upload coverage reports to Codecov
- uses: codecov/codecov-action@v4.0.1
+ uses: codecov/codecov-action@v4.1.1
with:
token: ${{ secrets.CODECOV_TOKEN }}
- slug: code-slide/ui
- name: Run Build
run: npm run build
diff --git a/src/wireframes/model/actions/diagrams.ts b/src/wireframes/model/actions/diagrams.ts
index 88f66be..325dd06 100644
--- a/src/wireframes/model/actions/diagrams.ts
+++ b/src/wireframes/model/actions/diagrams.ts
@@ -10,7 +10,6 @@ import { ActionReducerMapBuilder, createAction } from '@reduxjs/toolkit';
import { Color, MathHelper, Vec2 } from '@app/core/utils';
import { Diagram, EditorState } from './../internal';
import { createDiagramAction, DiagramRef } from './utils';
-import { s } from 'vitest/dist/reporters-5f784f42.js';
export const addDiagram =
createAction('diagram/add', (diagramId?: string, index?: number) => {
From e6ccc623aebe05664c8fb331dbd56e8764882b99 Mon Sep 17 00:00:00 2001
From: Do Duc Quan <99700700+ducquando@users.noreply.github.com>
Date: Fri, 19 Apr 2024 08:57:24 +0700
Subject: [PATCH 3/5] Update github actions
---
.github/workflows/build.yml | 2 +-
.github/workflows/test.yml | 12 +++--
package-lock.json | 103 ++++++++++++++++++++++++++----------
package.json | 9 ++--
4 files changed, 87 insertions(+), 39 deletions(-)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 6d87942..3a06ce9 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,4 +1,4 @@
-name: Build
+name: Build & Deploy
on:
push:
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 8edeb7a..ccad2c8 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -1,9 +1,9 @@
-name: Test
+name: Build & Test
on:
push:
- branches:
- - '!main'
+ branches-ignore:
+ - main
jobs:
build:
@@ -28,7 +28,9 @@ jobs:
run: npm run test:ci
- name: Upload coverage reports to Codecov
- uses: codecov/codecov-action@v4.0.1
+ uses: codecov/codecov-action@v4.1.1
with:
token: ${{ secrets.CODECOV_TOKEN }}
- slug: code-slide/ui
\ No newline at end of file
+
+ - name: Run Build
+ run: npm run build
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index f56370d..6e390ce 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "codeslide.net",
- "version": "0.3.0",
+ "version": "0.3.6",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "codeslide.net",
- "version": "0.3.0",
+ "version": "0.3.6",
"dependencies": {
"@ant-design/icons": "^4.8.1",
"@ant-design/pro-layout": "^7.17.19",
@@ -14,13 +14,14 @@
"@marker.io/browser": "^0.18.0",
"@reduxjs/toolkit": "^1.7.1",
"@svgdotjs/svg.js": "^3.1.1",
+ "@vitest/utils": "^0.34.6",
"antd": "^5.15.4",
"classnames": "^2.3.1",
"connected-react-router": "6.9.3",
"date-fns": "^2.28.0",
"deep-object-diff": "^1.1.9",
"file-saver": "^2.0.5",
- "history": "^4.10.1",
+ "history": "4.7.2",
"katex": "^0.16.8",
"marked": "^4.1.0",
"mousetrap": "1.6.5",
@@ -51,7 +52,7 @@
"@storybook/react": "^7.5.1",
"@storybook/react-vite": "^7.5.1",
"@types/file-saver": "^2.0.5",
- "@types/history": "^4.7.11",
+ "@types/history": "^4.7.9",
"@types/katex": "^0.16.3",
"@types/lodash": "4.14.178",
"@types/marked": "^4.0.7",
@@ -3130,7 +3131,6 @@
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
"integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
- "dev": true,
"dependencies": {
"@sinclair/typebox": "^0.27.8"
},
@@ -4374,8 +4374,7 @@
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
- "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
- "dev": true
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA=="
},
"node_modules/@sindresorhus/is": {
"version": "5.6.0",
@@ -6413,7 +6412,6 @@
"version": "0.34.6",
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz",
"integrity": "sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==",
- "dev": true,
"dependencies": {
"diff-sequences": "^29.4.3",
"loupe": "^2.3.6",
@@ -8918,7 +8916,6 @@
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
"integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
- "dev": true,
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
@@ -11113,7 +11110,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
"integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
- "dev": true,
"engines": {
"node": "*"
}
@@ -11504,16 +11500,23 @@
}
},
"node_modules/history": {
- "version": "4.10.1",
- "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz",
- "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
+ "version": "4.7.2",
+ "resolved": "https://registry.npmjs.org/history/-/history-4.7.2.tgz",
+ "integrity": "sha512-1zkBRWW6XweO0NBcjiphtVJVsIQ+SXF29z9DVkceeaSLVMFXHool+fdCZD4spDCfZJCILPILc3bm7Bc+HRi0nA==",
"dependencies": {
- "@babel/runtime": "^7.1.2",
+ "invariant": "^2.2.1",
"loose-envify": "^1.2.0",
- "resolve-pathname": "^3.0.0",
- "tiny-invariant": "^1.0.2",
- "tiny-warning": "^1.0.0",
- "value-equal": "^1.0.1"
+ "resolve-pathname": "^2.2.0",
+ "value-equal": "^0.4.0",
+ "warning": "^3.0.0"
+ }
+ },
+ "node_modules/history/node_modules/warning": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
+ "integrity": "sha512-jMBt6pUrKn5I+OGgtQ4YZLdhIeJmObddh6CsibPxyQ5yPZm1XExSyzC1LCNX7BzhxWgiHmizBWJTHJIjMjTQYQ==",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
}
},
"node_modules/hoist-non-react-statics": {
@@ -12997,7 +13000,6 @@
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz",
"integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
- "dev": true,
"dependencies": {
"get-func-name": "^2.0.1"
}
@@ -14435,7 +14437,6 @@
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
"integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
- "dev": true,
"dependencies": {
"@jest/schemas": "^29.6.3",
"ansi-styles": "^5.0.0",
@@ -14449,7 +14450,6 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
"integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true,
"engines": {
"node": ">=10"
},
@@ -14460,8 +14460,7 @@
"node_modules/pretty-format/node_modules/react-is": {
"version": "18.2.0",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
- "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
- "dev": true
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
},
"node_modules/pretty-hrtime": {
"version": "1.0.3",
@@ -15691,6 +15690,42 @@
"react": ">=15"
}
},
+ "node_modules/react-router-dom/node_modules/history": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz",
+ "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
+ "dependencies": {
+ "@babel/runtime": "^7.1.2",
+ "loose-envify": "^1.2.0",
+ "resolve-pathname": "^3.0.0",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0",
+ "value-equal": "^1.0.1"
+ }
+ },
+ "node_modules/react-router-dom/node_modules/resolve-pathname": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
+ "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng=="
+ },
+ "node_modules/react-router-dom/node_modules/value-equal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz",
+ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw=="
+ },
+ "node_modules/react-router/node_modules/history": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz",
+ "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
+ "dependencies": {
+ "@babel/runtime": "^7.1.2",
+ "loose-envify": "^1.2.0",
+ "resolve-pathname": "^3.0.0",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0",
+ "value-equal": "^1.0.1"
+ }
+ },
"node_modules/react-router/node_modules/isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
@@ -15704,6 +15739,16 @@
"isarray": "0.0.1"
}
},
+ "node_modules/react-router/node_modules/resolve-pathname": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
+ "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng=="
+ },
+ "node_modules/react-router/node_modules/value-equal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz",
+ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw=="
+ },
"node_modules/react-simple-code-editor": {
"version": "0.13.1",
"resolved": "https://registry.npmjs.org/react-simple-code-editor/-/react-simple-code-editor-0.13.1.tgz",
@@ -16155,9 +16200,9 @@
}
},
"node_modules/resolve-pathname": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
- "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng=="
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz",
+ "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg=="
},
"node_modules/responselike": {
"version": "3.0.0",
@@ -18242,9 +18287,9 @@
}
},
"node_modules/value-equal": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz",
- "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw=="
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz",
+ "integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw=="
},
"node_modules/vary": {
"version": "1.1.2",
diff --git a/package.json b/package.json
index 1efb566..1680b53 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "codeslide.net",
- "version": "0.3.6",
+ "version": "0.3.7",
"private": true,
"dependencies": {
"@ant-design/icons": "^4.8.1",
@@ -9,13 +9,14 @@
"@marker.io/browser": "^0.18.0",
"@reduxjs/toolkit": "^1.7.1",
"@svgdotjs/svg.js": "^3.1.1",
+ "@vitest/utils": "^0.34.6",
"antd": "^5.15.4",
"classnames": "^2.3.1",
"connected-react-router": "6.9.3",
"date-fns": "^2.28.0",
"deep-object-diff": "^1.1.9",
"file-saver": "^2.0.5",
- "history": "^4.10.1",
+ "history": "4.7.2",
"katex": "^0.16.8",
"marked": "^4.1.0",
"mousetrap": "1.6.5",
@@ -43,7 +44,7 @@
"start": "vite",
"start-local": "vite --mode local-server",
"test": "vitest --browser",
- "test:ci": "vitest run --browser.name=firefox --browser.provider=playwright --browser.headless",
+ "test:ci": "vitest run --coverage --browser.name=firefox --browser.provider=playwright --browser.headless",
"lint": "eslint src/**/*.ts[x]",
"lint:fix": "eslint src/**/*.ts[x] --fix",
"build": "tsc && vite build",
@@ -58,7 +59,7 @@
"@storybook/react": "^7.5.1",
"@storybook/react-vite": "^7.5.1",
"@types/file-saver": "^2.0.5",
- "@types/history": "^4.7.11",
+ "@types/history": "^4.7.9",
"@types/katex": "^0.16.3",
"@types/lodash": "4.14.178",
"@types/marked": "^4.0.7",
From 286513574d93eedb321abccee10b9c098088506f Mon Sep 17 00:00:00 2001
From: Do Duc Quan <99700700+ducquando@users.noreply.github.com>
Date: Fri, 19 Apr 2024 09:02:25 +0700
Subject: [PATCH 4/5] Change coverage to istanbul
---
package-lock.json | 216 +++++++++++++++++++++++++++++++++++++++++++++-
package.json | 2 +
vitest.config.ts | 4 +
3 files changed, 220 insertions(+), 2 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 6e390ce..066a9bd 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "codeslide.net",
- "version": "0.3.6",
+ "version": "0.3.7",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "codeslide.net",
- "version": "0.3.6",
+ "version": "0.3.7",
"dependencies": {
"@ant-design/icons": "^4.8.1",
"@ant-design/pro-layout": "^7.17.19",
@@ -71,6 +71,8 @@
"@typescript-eslint/parser": "^6.8.0",
"@vitejs/plugin-react": "^4.0.3",
"@vitest/browser": "^0.34.6",
+ "@vitest/coverage-istanbul": "^0.34.6",
+ "@vitest/coverage-v8": "^0.34.6",
"chromatic": "^7.4.0",
"eslint": "^8.51.0",
"eslint-config-airbnb-typescript": "^17.1.0",
@@ -2309,6 +2311,12 @@
"integrity": "sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==",
"dev": true
},
+ "node_modules/@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
+ "dev": true
+ },
"node_modules/@colors/colors": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
@@ -6327,6 +6335,101 @@
"@types/estree": "^1.0.0"
}
},
+ "node_modules/@vitest/coverage-istanbul": {
+ "version": "0.34.6",
+ "resolved": "https://registry.npmjs.org/@vitest/coverage-istanbul/-/coverage-istanbul-0.34.6.tgz",
+ "integrity": "sha512-5KaBNZPDSk2ybavC3rZ1pWGniw7sJ5usuwVGRUYzJwiBfWvnLpuUer7bjw7qUCRGdKJXrBgb/Dsgif9rkwMX/A==",
+ "dev": true,
+ "dependencies": {
+ "istanbul-lib-coverage": "^3.2.0",
+ "istanbul-lib-instrument": "^6.0.0",
+ "istanbul-lib-report": "^3.0.1",
+ "istanbul-lib-source-maps": "^4.0.1",
+ "istanbul-reports": "^3.1.5",
+ "picocolors": "^1.0.0",
+ "test-exclude": "^6.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "vitest": ">=0.32.0 <1"
+ }
+ },
+ "node_modules/@vitest/coverage-istanbul/node_modules/istanbul-lib-instrument": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz",
+ "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@istanbuljs/schema": "^0.1.3",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@vitest/coverage-istanbul/node_modules/lru-cache": {
+ "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"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@vitest/coverage-istanbul/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@vitest/coverage-istanbul/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/@vitest/coverage-v8": {
+ "version": "0.34.6",
+ "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-0.34.6.tgz",
+ "integrity": "sha512-fivy/OK2d/EsJFoEoxHFEnNGTg+MmdZBAVK9Ka4qhXR2K3J0DS08vcGVwzDtXSuUMabLv4KtPcpSKkcMXFDViw==",
+ "dev": true,
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.1",
+ "@bcoe/v8-coverage": "^0.2.3",
+ "istanbul-lib-coverage": "^3.2.0",
+ "istanbul-lib-report": "^3.0.1",
+ "istanbul-lib-source-maps": "^4.0.1",
+ "istanbul-reports": "^3.1.5",
+ "magic-string": "^0.30.1",
+ "picocolors": "^1.0.0",
+ "std-env": "^3.3.3",
+ "test-exclude": "^6.0.0",
+ "v8-to-istanbul": "^9.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "vitest": ">=0.32.0 <1"
+ }
+ },
"node_modules/@vitest/expect": {
"version": "0.34.6",
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.6.tgz",
@@ -11533,6 +11636,12 @@
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
"dev": true
},
+ "node_modules/html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
+ "dev": true
+ },
"node_modules/html-tags": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
@@ -12373,6 +12482,95 @@
"node": ">=8"
}
},
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
+ "dev": true,
+ "dependencies": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^4.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-report/node_modules/lru-cache": {
+ "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"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-report/node_modules/make-dir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/istanbul-lib-report/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-report/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/istanbul-lib-source-maps": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-reports": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
+ "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
+ "dev": true,
+ "dependencies": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/iterator.prototype": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz",
@@ -18276,6 +18474,20 @@
"uuid": "dist/bin/uuid"
}
},
+ "node_modules/v8-to-istanbul": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz",
+ "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.12",
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.12.0"
+ }
+ },
"node_modules/validate-npm-package-license": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
diff --git a/package.json b/package.json
index 1680b53..d3d20a9 100644
--- a/package.json
+++ b/package.json
@@ -78,6 +78,8 @@
"@typescript-eslint/parser": "^6.8.0",
"@vitejs/plugin-react": "^4.0.3",
"@vitest/browser": "^0.34.6",
+ "@vitest/coverage-istanbul": "^0.34.6",
+ "@vitest/coverage-v8": "^0.34.6",
"chromatic": "^7.4.0",
"eslint": "^8.51.0",
"eslint-config-airbnb-typescript": "^17.1.0",
diff --git a/vitest.config.ts b/vitest.config.ts
index b8a7871..867905f 100644
--- a/vitest.config.ts
+++ b/vitest.config.ts
@@ -21,5 +21,9 @@ export default defineConfig({
slowHijackESM: false
},
+
+ coverage: {
+ provider: 'istanbul',
+ },
},
});
\ No newline at end of file
From 3aff20fd4b1e43719362dfede17c6af918291575 Mon Sep 17 00:00:00 2001
From: Do Duc Quan <99700700+ducquando@users.noreply.github.com>
Date: Fri, 19 Apr 2024 10:46:35 +0700
Subject: [PATCH 5/5] Fix vitest code coverage
---
package-lock.json | 2078 +++++++++++++----
package.json | 11 +-
src/const/texts.ts | 1 -
src/wireframes/interface/index.spec.ts | 26 +
src/wireframes/model/configurables.spec.ts | 38 +-
src/wireframes/shapes/neutral/latex.ts | 2 +-
src/wireframes/shapes/neutral/textbox.ts | 2 +-
.../shapes/utils/svg-renderer2.spec.ts | 99 +-
src/wireframes/shapes/utils/svg-renderer2.ts | 19 +-
tsconfig.json | 6 +-
tsconfig.node.json | 2 +-
vite.config.ts | 7 +-
vitest.config.ts | 19 +-
13 files changed, 1805 insertions(+), 505 deletions(-)
create mode 100644 src/wireframes/interface/index.spec.ts
diff --git a/package-lock.json b/package-lock.json
index 066a9bd..942e6b2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -57,7 +57,7 @@
"@types/lodash": "4.14.178",
"@types/marked": "^4.0.7",
"@types/mousetrap": "1.6.9",
- "@types/node": "17.0.6",
+ "@types/node": "20.9.3",
"@types/prismjs": "^1.26.3",
"@types/react": "^18.2.48",
"@types/react-color": "3.0.6",
@@ -82,10 +82,12 @@
"eslint-plugin-react-refresh": "^0.4.3",
"eslint-plugin-sort-keys-fix": "^1.1.2",
"eslint-plugin-storybook": "^0.6.15",
+ "jsdom": "^24.0.0",
"sass": "^1.72.0",
"storybook": "^7.5.1",
"typescript": "^5.2.2",
"vite": "^4.5.0",
+ "vite-plugin-pwa": "^0.17.0",
"vitest": "^0.34.6",
"webdriverio": "^8.16.10"
}
@@ -121,9 +123,9 @@
}
},
"node_modules/@ant-design/cssinjs": {
- "version": "1.18.5",
- "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.18.5.tgz",
- "integrity": "sha512-Ub4n3d+MAX/qtE5S9PM8iOn5ocU7GUAIC4Adc2X8UCMXnsRRfpJBHsBdtQ1qoAuaQ7lU2M1BTCuJ+fkv4fOWiw==",
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.20.0.tgz",
+ "integrity": "sha512-uG3iWzJxgNkADdZmc6W0Ci3iQAUOvLMcM8SnnmWq3r6JeocACft4ChnY/YWvI2Y+rG/68QBla/O+udke1yH3vg==",
"dependencies": {
"@babel/runtime": "^7.11.1",
"@emotion/hash": "^0.8.0",
@@ -164,13 +166,13 @@
"integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA=="
},
"node_modules/@ant-design/pro-layout": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@ant-design/pro-layout/-/pro-layout-7.18.0.tgz",
- "integrity": "sha512-Es/mQAif5RJVynC/rVM+DsX1Kvp3xkjlAgZta3Sak4GZmkq3lRMq80MPlsKLeIZMwOBE1k3CZ4i7VEdWTcXCgg==",
+ "version": "7.19.0",
+ "resolved": "https://registry.npmjs.org/@ant-design/pro-layout/-/pro-layout-7.19.0.tgz",
+ "integrity": "sha512-E7kfInojfsvyFaYbppQRyGd4f8IRTi+KXXc3wWQ2C1EcWlaASB7AGYlGRjjeJyvIPa3UPOfKkveL7/pM/Z3GiQ==",
"dependencies": {
"@ant-design/icons": "^5.0.0",
- "@ant-design/pro-provider": "2.14.0",
- "@ant-design/pro-utils": "2.15.5",
+ "@ant-design/pro-provider": "2.14.1",
+ "@ant-design/pro-utils": "2.15.6",
"@babel/runtime": "^7.18.0",
"@umijs/route-utils": "^4.0.0",
"@umijs/use-params": "^1.0.9",
@@ -198,9 +200,9 @@
}
},
"node_modules/@ant-design/pro-layout/node_modules/@ant-design/icons": {
- "version": "5.3.5",
- "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.3.5.tgz",
- "integrity": "sha512-Vyv/OsKz56BsKBtcRlLP6G8RGaRW43f7G5dK3XNPCaeV4YyehLVaITuNKi2YJG9hMVURkBdzdGhveNQlnKTFqw==",
+ "version": "5.3.6",
+ "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.3.6.tgz",
+ "integrity": "sha512-JeWsgNjvkTTC73YDPgWOgdScRku/iHN9JU0qk39OSEmJSCiRghQMLlxGTCY5ovbRRoXjxHXnUKgQEgBDnQfKmA==",
"dependencies": {
"@ant-design/colors": "^7.0.0",
"@ant-design/icons-svg": "^4.4.0",
@@ -217,9 +219,9 @@
}
},
"node_modules/@ant-design/pro-provider": {
- "version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@ant-design/pro-provider/-/pro-provider-2.14.0.tgz",
- "integrity": "sha512-C89hwefeC7OJlLBzPjYS5XbW/t3NAM1KKqPiBeTkr0+KHQE7xjYfh+bi7RcQ7TsHNIYHjd52cEZuEdTJqzyHPg==",
+ "version": "2.14.1",
+ "resolved": "https://registry.npmjs.org/@ant-design/pro-provider/-/pro-provider-2.14.1.tgz",
+ "integrity": "sha512-N8hTUNJc7dtIjj79ZFviielizo15nOUyjrmz9Ll0Mn68Btne2FLpf8cKHsUMdA+yLDW9oM0ExcqIWJOKyx0nUg==",
"dependencies": {
"@ant-design/cssinjs": "^1.11.1",
"@babel/runtime": "^7.18.0",
@@ -234,12 +236,12 @@
}
},
"node_modules/@ant-design/pro-utils": {
- "version": "2.15.5",
- "resolved": "https://registry.npmjs.org/@ant-design/pro-utils/-/pro-utils-2.15.5.tgz",
- "integrity": "sha512-352WZhzWRsyRd85R0fIxJgDEl9+vgxIzDxIW7G0/oWpXilxDIUnVVB/U46UM3d1YuR+0PQsKBXJmS1niro8sXA==",
+ "version": "2.15.6",
+ "resolved": "https://registry.npmjs.org/@ant-design/pro-utils/-/pro-utils-2.15.6.tgz",
+ "integrity": "sha512-F9ERv14dnXQjsBYXTxMpl0blWPNhluufrP9ko2X/dYyVYohAFX8j0sbcUEHY7auPAxHT3c06+sjlqp2bXG9NDg==",
"dependencies": {
"@ant-design/icons": "^5.0.0",
- "@ant-design/pro-provider": "2.14.0",
+ "@ant-design/pro-provider": "2.14.1",
"@babel/runtime": "^7.18.0",
"classnames": "^2.3.2",
"dayjs": "^1.11.10",
@@ -263,9 +265,9 @@
}
},
"node_modules/@ant-design/pro-utils/node_modules/@ant-design/icons": {
- "version": "5.3.5",
- "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.3.5.tgz",
- "integrity": "sha512-Vyv/OsKz56BsKBtcRlLP6G8RGaRW43f7G5dK3XNPCaeV4YyehLVaITuNKi2YJG9hMVURkBdzdGhveNQlnKTFqw==",
+ "version": "5.3.6",
+ "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.3.6.tgz",
+ "integrity": "sha512-JeWsgNjvkTTC73YDPgWOgdScRku/iHN9JU0qk39OSEmJSCiRghQMLlxGTCY5ovbRRoXjxHXnUKgQEgBDnQfKmA==",
"dependencies": {
"@ant-design/colors": "^7.0.0",
"@ant-design/icons-svg": "^4.4.0",
@@ -282,9 +284,9 @@
}
},
"node_modules/@ant-design/react-slick": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.0.2.tgz",
- "integrity": "sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz",
+ "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==",
"dependencies": {
"@babel/runtime": "^7.10.4",
"classnames": "^2.2.5",
@@ -322,27 +324,27 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz",
- "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==",
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz",
+ "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.24.3",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.3.tgz",
- "integrity": "sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==",
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz",
+ "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==",
"dev": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.24.2",
- "@babel/generator": "^7.24.1",
+ "@babel/generator": "^7.24.4",
"@babel/helper-compilation-targets": "^7.23.6",
"@babel/helper-module-transforms": "^7.23.3",
- "@babel/helpers": "^7.24.1",
- "@babel/parser": "^7.24.1",
+ "@babel/helpers": "^7.24.4",
+ "@babel/parser": "^7.24.4",
"@babel/template": "^7.24.0",
"@babel/traverse": "^7.24.1",
"@babel/types": "^7.24.0",
@@ -361,9 +363,9 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz",
- "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==",
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz",
+ "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==",
"dev": true,
"dependencies": {
"@babel/types": "^7.24.0",
@@ -416,9 +418,9 @@
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.1.tgz",
- "integrity": "sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==",
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz",
+ "integrity": "sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==",
"dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
@@ -681,9 +683,9 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz",
- "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==",
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz",
+ "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==",
"dev": true,
"dependencies": {
"@babel/template": "^7.24.0",
@@ -781,9 +783,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz",
- "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==",
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz",
+ "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
@@ -792,6 +794,22 @@
"node": ">=6.0.0"
}
},
+ "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.4.tgz",
+ "integrity": "sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.24.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
"node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
"version": "7.24.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz",
@@ -1198,9 +1216,9 @@
}
},
"node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.1.tgz",
- "integrity": "sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==",
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.4.tgz",
+ "integrity": "sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.0"
@@ -1229,12 +1247,12 @@
}
},
"node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.1.tgz",
- "integrity": "sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==",
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz",
+ "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==",
"dev": true,
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.24.1",
+ "@babel/helper-create-class-features-plugin": "^7.24.4",
"@babel/helper-plugin-utils": "^7.24.0",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
},
@@ -1887,13 +1905,13 @@
}
},
"node_modules/@babel/plugin-transform-typescript": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.1.tgz",
- "integrity": "sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==",
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.4.tgz",
+ "integrity": "sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==",
"dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-create-class-features-plugin": "^7.24.1",
+ "@babel/helper-create-class-features-plugin": "^7.24.4",
"@babel/helper-plugin-utils": "^7.24.0",
"@babel/plugin-syntax-typescript": "^7.24.1"
},
@@ -1968,15 +1986,16 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.24.3",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.3.tgz",
- "integrity": "sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==",
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.4.tgz",
+ "integrity": "sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==",
"dev": true,
"dependencies": {
- "@babel/compat-data": "^7.24.1",
+ "@babel/compat-data": "^7.24.4",
"@babel/helper-compilation-targets": "^7.23.6",
"@babel/helper-plugin-utils": "^7.24.0",
"@babel/helper-validator-option": "^7.23.5",
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.4",
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1",
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1",
"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1",
@@ -2003,9 +2022,9 @@
"@babel/plugin-transform-async-generator-functions": "^7.24.3",
"@babel/plugin-transform-async-to-generator": "^7.24.1",
"@babel/plugin-transform-block-scoped-functions": "^7.24.1",
- "@babel/plugin-transform-block-scoping": "^7.24.1",
+ "@babel/plugin-transform-block-scoping": "^7.24.4",
"@babel/plugin-transform-class-properties": "^7.24.1",
- "@babel/plugin-transform-class-static-block": "^7.24.1",
+ "@babel/plugin-transform-class-static-block": "^7.24.4",
"@babel/plugin-transform-classes": "^7.24.1",
"@babel/plugin-transform-computed-properties": "^7.24.1",
"@babel/plugin-transform-destructuring": "^7.24.1",
@@ -2246,9 +2265,9 @@
"dev": true
},
"node_modules/@babel/runtime": {
- "version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz",
- "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==",
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz",
+ "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -3001,9 +3020,9 @@
}
},
"node_modules/@humanwhocodes/object-schema": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
- "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
"dev": true
},
"node_modules/@icons/material": {
@@ -3320,8 +3339,6 @@
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
"integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
"dev": true,
- "optional": true,
- "peer": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25"
@@ -3439,6 +3456,45 @@
"integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==",
"dev": true
},
+ "node_modules/@promptbook/core": {
+ "version": "0.44.0-1",
+ "resolved": "https://registry.npmjs.org/@promptbook/core/-/core-0.44.0-1.tgz",
+ "integrity": "sha512-+HS9RPOYj7v+SYxzUeJGfgffh1Kp2YsLlGy4CkWlxtk2NAcSz8IokhlJbed7WyMH0I+EvoKnD3DAU6ZadNjIvA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "spacetrim": "0.11.2"
+ }
+ },
+ "node_modules/@promptbook/utils": {
+ "version": "0.44.0-1",
+ "resolved": "https://registry.npmjs.org/@promptbook/utils/-/utils-0.44.0-1.tgz",
+ "integrity": "sha512-6twWfKlM0wOqPTzyKKCn2OcXVxloveTfK/x2sFDIqOiyMYehrHVksrETEqr0QnZ4uY/yLMs6jIx5DdDlJrUJQw==",
+ "dev": true,
+ "dependencies": {
+ "moment": "^2.30.1",
+ "prettier": "2.8.1",
+ "spacetrim": "0.11.2"
+ },
+ "peerDependencies": {
+ "@promptbook/core": "0.44.0-1"
+ }
+ },
+ "node_modules/@promptbook/utils/node_modules/prettier": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz",
+ "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
"node_modules/@puppeteer/browsers": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.9.1.tgz",
@@ -4273,9 +4329,9 @@
}
},
"node_modules/@rc-component/trigger": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.0.0.tgz",
- "integrity": "sha512-niwKADPdY5dhdIblV6uwSayVivwo2uUISfJqri+/ovYQcH/omxDYBJKo755QKeoIIsWptxnRpgr7reEnNEZGFg==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.1.1.tgz",
+ "integrity": "sha512-UjHkedkgtEcgQu87w1VuWug1idoDJV7VUt0swxHXRcmei2uu1AuUzGBPEUlmOmXGJ+YtTgZfVLi7kuAUKoZTMA==",
"dependencies": {
"@babel/runtime": "^7.23.2",
"@rc-component/portal": "^1.1.0",
@@ -4351,6 +4407,167 @@
"resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz",
"integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ=="
},
+ "node_modules/@rollup/plugin-babel": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
+ "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.10.4",
+ "@rollup/pluginutils": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0",
+ "@types/babel__core": "^7.1.9",
+ "rollup": "^1.20.0||^2.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/babel__core": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/plugin-babel/node_modules/@rollup/pluginutils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
+ "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "0.0.39",
+ "estree-walker": "^1.0.1",
+ "picomatch": "^2.2.2"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0"
+ }
+ },
+ "node_modules/@rollup/plugin-babel/node_modules/@types/estree": {
+ "version": "0.0.39",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
+ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
+ "dev": true
+ },
+ "node_modules/@rollup/plugin-babel/node_modules/estree-walker": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
+ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
+ "dev": true
+ },
+ "node_modules/@rollup/plugin-node-resolve": {
+ "version": "11.2.1",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz",
+ "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==",
+ "dev": true,
+ "dependencies": {
+ "@rollup/pluginutils": "^3.1.0",
+ "@types/resolve": "1.17.1",
+ "builtin-modules": "^3.1.0",
+ "deepmerge": "^4.2.2",
+ "is-module": "^1.0.0",
+ "resolve": "^1.19.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0"
+ }
+ },
+ "node_modules/@rollup/plugin-node-resolve/node_modules/@rollup/pluginutils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
+ "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "0.0.39",
+ "estree-walker": "^1.0.1",
+ "picomatch": "^2.2.2"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0"
+ }
+ },
+ "node_modules/@rollup/plugin-node-resolve/node_modules/@types/estree": {
+ "version": "0.0.39",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
+ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
+ "dev": true
+ },
+ "node_modules/@rollup/plugin-node-resolve/node_modules/@types/resolve": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
+ "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@rollup/plugin-node-resolve/node_modules/estree-walker": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
+ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
+ "dev": true
+ },
+ "node_modules/@rollup/plugin-replace": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz",
+ "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==",
+ "dev": true,
+ "dependencies": {
+ "@rollup/pluginutils": "^3.1.0",
+ "magic-string": "^0.25.7"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0 || ^2.0.0"
+ }
+ },
+ "node_modules/@rollup/plugin-replace/node_modules/@rollup/pluginutils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
+ "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "0.0.39",
+ "estree-walker": "^1.0.1",
+ "picomatch": "^2.2.2"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0"
+ }
+ },
+ "node_modules/@rollup/plugin-replace/node_modules/@types/estree": {
+ "version": "0.0.39",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
+ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
+ "dev": true
+ },
+ "node_modules/@rollup/plugin-replace/node_modules/estree-walker": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
+ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
+ "dev": true
+ },
+ "node_modules/@rollup/plugin-replace/node_modules/magic-string": {
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
+ "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
+ "dev": true,
+ "dependencies": {
+ "sourcemap-codec": "^1.4.8"
+ }
+ },
"node_modules/@rollup/pluginutils": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
@@ -4939,9 +5156,9 @@
}
},
"node_modules/@storybook/core-common/node_modules/@types/node": {
- "version": "18.19.26",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.26.tgz",
- "integrity": "sha512-+wiMJsIwLOYCvUqSdKTrfkS8mpTp+MPINe6+Np4TAGFWWRWiBQ5kSq9nZGCSPkzx9mvT+uEukzpX4MOSCydcvw==",
+ "version": "18.19.31",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz",
+ "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==",
"dev": true,
"dependencies": {
"undici-types": "~5.26.4"
@@ -5014,9 +5231,9 @@
}
},
"node_modules/@storybook/core-server/node_modules/@types/node": {
- "version": "18.19.26",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.26.tgz",
- "integrity": "sha512-+wiMJsIwLOYCvUqSdKTrfkS8mpTp+MPINe6+Np4TAGFWWRWiBQ5kSq9nZGCSPkzx9mvT+uEukzpX4MOSCydcvw==",
+ "version": "18.19.31",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz",
+ "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==",
"dev": true,
"dependencies": {
"undici-types": "~5.26.4"
@@ -5056,9 +5273,9 @@
"dev": true
},
"node_modules/@storybook/csf": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.3.tgz",
- "integrity": "sha512-IPZvXXo4b3G+gpmgBSBqVM81jbp2ePOKsvhgJdhyZJtkYQCII7rg9KKLQhvBQM5sLaF1eU6r0iuwmyynC9d9SA==",
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.4.tgz",
+ "integrity": "sha512-B9UI/lsQMjF+oEfZCI6YXNoeuBcGZoOP5x8yKbe2tIEmsMjSztFKkpPzi5nLCnBk/MBtl6QJeI3ksJnbsWPkOw==",
"dev": true,
"dependencies": {
"type-fest": "^2.19.0"
@@ -5347,9 +5564,9 @@
}
},
"node_modules/@storybook/react/node_modules/@types/node": {
- "version": "18.19.26",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.26.tgz",
- "integrity": "sha512-+wiMJsIwLOYCvUqSdKTrfkS8mpTp+MPINe6+Np4TAGFWWRWiBQ5kSq9nZGCSPkzx9mvT+uEukzpX4MOSCydcvw==",
+ "version": "18.19.31",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz",
+ "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==",
"dev": true,
"dependencies": {
"undici-types": "~5.26.4"
@@ -5426,6 +5643,27 @@
"url": "https://opencollective.com/storybook"
}
},
+ "node_modules/@surma/rollup-plugin-off-main-thread": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz",
+ "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==",
+ "dev": true,
+ "dependencies": {
+ "ejs": "^3.1.6",
+ "json5": "^2.2.0",
+ "magic-string": "^0.25.0",
+ "string.prototype.matchall": "^4.0.6"
+ }
+ },
+ "node_modules/@surma/rollup-plugin-off-main-thread/node_modules/magic-string": {
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
+ "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
+ "dev": true,
+ "dependencies": {
+ "sourcemap-codec": "^1.4.8"
+ }
+ },
"node_modules/@svgdotjs/svg.js": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/@svgdotjs/svg.js/-/svg.js-3.2.0.tgz",
@@ -5591,9 +5829,9 @@
}
},
"node_modules/@types/express-serve-static-core": {
- "version": "4.17.43",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz",
- "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==",
+ "version": "4.19.0",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz",
+ "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==",
"dev": true,
"dependencies": {
"@types/node": "*",
@@ -5715,9 +5953,9 @@
"dev": true
},
"node_modules/@types/mdx": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.12.tgz",
- "integrity": "sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==",
+ "version": "2.0.13",
+ "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz",
+ "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==",
"dev": true
},
"node_modules/@types/mime": {
@@ -5745,10 +5983,13 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "17.0.6",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.6.tgz",
- "integrity": "sha512-+XBAjfZmmivILUzO0HwBJoYkAyyySSLg5KCGBDFLomJo0sV6szvVLAf4ANZZ0pfWzgEds5KmGLG9D5hfEqOhaA==",
- "devOptional": true
+ "version": "20.9.3",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.3.tgz",
+ "integrity": "sha512-nk5wXLAXGBKfrhLB0cyHGbSqopS+nz0BUgZkUQqSHSSgdee0kssp1IAqlQOu333bW+gMNs2QREx7iynm19Abxw==",
+ "devOptional": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
},
"node_modules/@types/node-fetch": {
"version": "2.6.11",
@@ -5784,9 +6025,9 @@
"integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q=="
},
"node_modules/@types/qs": {
- "version": "6.9.14",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz",
- "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==",
+ "version": "6.9.15",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz",
+ "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==",
"dev": true
},
"node_modules/@types/range-parser": {
@@ -5796,9 +6037,9 @@
"dev": true
},
"node_modules/@types/react": {
- "version": "18.2.72",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.72.tgz",
- "integrity": "sha512-/e7GWxGzXQF7OJAua7UAYqYi/4VpXEfbGtmYQcAQwP3SjjjAXfybTf/JK5S+SaetB/ChXl8Y2g1hCsj7jDXxcg==",
+ "version": "18.2.79",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz",
+ "integrity": "sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==",
"dependencies": {
"@types/prop-types": "*",
"csstype": "^3.0.2"
@@ -5815,9 +6056,9 @@
}
},
"node_modules/@types/react-dom": {
- "version": "18.2.22",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.22.tgz",
- "integrity": "sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==",
+ "version": "18.2.25",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.25.tgz",
+ "integrity": "sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==",
"devOptional": true,
"dependencies": {
"@types/react": "*"
@@ -5908,16 +6149,22 @@
}
},
"node_modules/@types/serve-static": {
- "version": "1.15.5",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz",
- "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==",
+ "version": "1.15.7",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
+ "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
"dev": true,
"dependencies": {
"@types/http-errors": "*",
- "@types/mime": "*",
- "@types/node": "*"
+ "@types/node": "*",
+ "@types/send": "*"
}
},
+ "node_modules/@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+ "dev": true
+ },
"node_modules/@types/unist": {
"version": "2.0.10",
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz",
@@ -6356,55 +6603,6 @@
"vitest": ">=0.32.0 <1"
}
},
- "node_modules/@vitest/coverage-istanbul/node_modules/istanbul-lib-instrument": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz",
- "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.23.9",
- "@babel/parser": "^7.23.9",
- "@istanbuljs/schema": "^0.1.3",
- "istanbul-lib-coverage": "^3.2.0",
- "semver": "^7.5.4"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@vitest/coverage-istanbul/node_modules/lru-cache": {
- "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"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@vitest/coverage-istanbul/node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@vitest/coverage-istanbul/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
"node_modules/@vitest/coverage-v8": {
"version": "0.34.6",
"resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-0.34.6.tgz",
@@ -6444,6 +6642,20 @@
"url": "https://opencollective.com/vitest"
}
},
+ "node_modules/@vitest/expect/node_modules/@vitest/utils": {
+ "version": "0.34.6",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz",
+ "integrity": "sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==",
+ "dev": true,
+ "dependencies": {
+ "diff-sequences": "^29.4.3",
+ "loupe": "^2.3.6",
+ "pretty-format": "^29.5.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
"node_modules/@vitest/runner": {
"version": "0.34.6",
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.6.tgz",
@@ -6458,6 +6670,20 @@
"url": "https://opencollective.com/vitest"
}
},
+ "node_modules/@vitest/runner/node_modules/@vitest/utils": {
+ "version": "0.34.6",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz",
+ "integrity": "sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==",
+ "dev": true,
+ "dependencies": {
+ "diff-sequences": "^29.4.3",
+ "loupe": "^2.3.6",
+ "pretty-format": "^29.5.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
"node_modules/@vitest/runner/node_modules/p-limit": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
@@ -6512,9 +6738,9 @@
}
},
"node_modules/@vitest/utils": {
- "version": "0.34.6",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz",
- "integrity": "sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==",
+ "version": "0.34.7",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.7.tgz",
+ "integrity": "sha512-ziAavQLpCYS9sLOorGrFFKmy2gnfiNU0ZJ15TsMz/K92NAPS/rp9K4z6AJQQk5Y8adCy4Iwpxy7pQumQ/psnRg==",
"dependencies": {
"diff-sequences": "^29.4.3",
"loupe": "^2.3.6",
@@ -6525,14 +6751,14 @@
}
},
"node_modules/@wdio/config": {
- "version": "8.35.0",
- "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.35.0.tgz",
- "integrity": "sha512-I36sBPMl/+LCyQ3Pwb8gGQM6KxwmUfhOPp16TxN21Qo/Bc0fZfyGIg6KevmRu4DuqpGUm5MMVSfyPhLUkMk3Cg==",
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.36.0.tgz",
+ "integrity": "sha512-sAbqnx/G+OsrMquIncFXjM4U0/E0ULMP0jDHZND75r0e1DYYCHmyacrvIHu3Jyxinl9f6+4XQdev6vqdTqPdNg==",
"dev": true,
"dependencies": {
"@wdio/logger": "8.28.0",
- "@wdio/types": "8.32.4",
- "@wdio/utils": "8.35.0",
+ "@wdio/types": "8.36.0",
+ "@wdio/utils": "8.36.0",
"decamelize": "^6.0.0",
"deepmerge-ts": "^5.0.0",
"glob": "^10.2.2",
@@ -6614,19 +6840,10 @@
"node": "^16.13 || >=18"
}
},
- "node_modules/@wdio/repl/node_modules/@types/node": {
- "version": "20.11.30",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz",
- "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==",
- "dev": true,
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
"node_modules/@wdio/types": {
- "version": "8.32.4",
- "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.32.4.tgz",
- "integrity": "sha512-pDPGcCvq0MQF8u0sjw9m4aMI2gAKn6vphyBB2+1IxYriL777gbbxd7WQ+PygMBvYVprCYIkLPvhUFwF85WakmA==",
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.36.0.tgz",
+ "integrity": "sha512-0hw/PaJHqDrbIMvU08w3oMDGg89udSkqWF2hFlGAjOc20quRrhn0F1L+NhFpYdezeRKz5gpgTDIqaQs9RWKq1A==",
"dev": true,
"dependencies": {
"@types/node": "^20.1.0"
@@ -6635,24 +6852,15 @@
"node": "^16.13 || >=18"
}
},
- "node_modules/@wdio/types/node_modules/@types/node": {
- "version": "20.11.30",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz",
- "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==",
- "dev": true,
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
"node_modules/@wdio/utils": {
- "version": "8.35.0",
- "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.35.0.tgz",
- "integrity": "sha512-9KCyn4aS+9tWfthnUkNFVe52AM6QrLGAeIxgGxNlzTAcQGl7jjwdDM7aSK0RjLkWI3a/88DRH21mN/t2LGDmPQ==",
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.36.0.tgz",
+ "integrity": "sha512-3VAbavN206qkvm6lITtOtTgscFChax7shzqHjUNln+QWMRyELtT81iw32ux2ld+Bg3F60LAmhbGodu0lJH7k2w==",
"dev": true,
"dependencies": {
"@puppeteer/browsers": "^1.6.0",
"@wdio/logger": "8.28.0",
- "@wdio/types": "8.32.4",
+ "@wdio/types": "8.36.0",
"decamelize": "^6.0.0",
"deepmerge-ts": "^5.1.0",
"edgedriver": "^5.3.5",
@@ -6866,49 +7074,49 @@
}
},
"node_modules/antd": {
- "version": "5.15.4",
- "resolved": "https://registry.npmjs.org/antd/-/antd-5.15.4.tgz",
- "integrity": "sha512-79eLOQW1DG92yzulx+ValfHFjvPnaaI41BffGquAnzx42Ws3eEcKofsa2jNRyJN5NWr9I5wqvABDq9rRRfGGsg==",
+ "version": "5.16.2",
+ "resolved": "https://registry.npmjs.org/antd/-/antd-5.16.2.tgz",
+ "integrity": "sha512-46BC1IaCRzkdcTAs1TuIZ1D56JrIRP5yWGrlfV+kGjro1c2dVaQP7yGXA2/m29uF41TqptxOYl36opY5ydN++A==",
"dependencies": {
"@ant-design/colors": "^7.0.2",
"@ant-design/cssinjs": "^1.18.5",
- "@ant-design/icons": "^5.3.5",
- "@ant-design/react-slick": "~1.0.2",
- "@babel/runtime": "^7.24.1",
+ "@ant-design/icons": "^5.3.6",
+ "@ant-design/react-slick": "~1.1.2",
+ "@babel/runtime": "^7.24.4",
"@ctrl/tinycolor": "^3.6.1",
"@rc-component/color-picker": "~1.5.3",
"@rc-component/mutate-observer": "^1.1.0",
"@rc-component/tour": "~1.14.2",
- "@rc-component/trigger": "^2.0.0",
+ "@rc-component/trigger": "^2.1.1",
"classnames": "^2.5.1",
"copy-to-clipboard": "^3.3.3",
"dayjs": "^1.11.10",
"qrcode.react": "^3.1.0",
- "rc-cascader": "~3.24.0",
+ "rc-cascader": "~3.24.1",
"rc-checkbox": "~3.2.0",
"rc-collapse": "~3.7.3",
"rc-dialog": "~9.4.0",
"rc-drawer": "~7.1.0",
"rc-dropdown": "~4.2.0",
- "rc-field-form": "~1.42.1",
+ "rc-field-form": "~1.44.0",
"rc-image": "~7.6.0",
"rc-input": "~1.4.5",
"rc-input-number": "~9.0.0",
"rc-mentions": "~2.11.1",
"rc-menu": "~9.13.0",
"rc-motion": "^2.9.0",
- "rc-notification": "~5.3.0",
+ "rc-notification": "~5.4.0",
"rc-pagination": "~4.0.4",
- "rc-picker": "~4.3.0",
- "rc-progress": "~3.5.1",
+ "rc-picker": "~4.3.2",
+ "rc-progress": "~4.0.0",
"rc-rate": "~2.12.0",
"rc-resize-observer": "^1.4.0",
"rc-segmented": "~2.3.0",
- "rc-select": "~14.13.0",
+ "rc-select": "~14.13.1",
"rc-slider": "~10.5.0",
"rc-steps": "~6.0.1",
"rc-switch": "~4.1.0",
- "rc-table": "~7.42.0",
+ "rc-table": "~7.45.4",
"rc-tabs": "~14.1.1",
"rc-textarea": "~1.6.3",
"rc-tooltip": "~6.2.0",
@@ -6937,9 +7145,9 @@
}
},
"node_modules/antd/node_modules/@ant-design/icons": {
- "version": "5.3.5",
- "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.3.5.tgz",
- "integrity": "sha512-Vyv/OsKz56BsKBtcRlLP6G8RGaRW43f7G5dK3XNPCaeV4YyehLVaITuNKi2YJG9hMVURkBdzdGhveNQlnKTFqw==",
+ "version": "5.3.6",
+ "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.3.6.tgz",
+ "integrity": "sha512-JeWsgNjvkTTC73YDPgWOgdScRku/iHN9JU0qk39OSEmJSCiRghQMLlxGTCY5ovbRRoXjxHXnUKgQEgBDnQfKmA==",
"dependencies": {
"@ant-design/colors": "^7.0.0",
"@ant-design/icons-svg": "^4.4.0",
@@ -7328,6 +7536,15 @@
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"dev": true
},
+ "node_modules/at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
"node_modules/available-typed-arrays": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
@@ -7392,8 +7609,24 @@
"node": ">=8"
}
},
- "node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.4.10",
+ "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs2": {
+ "version": "0.4.10",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz",
"integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==",
"dev": true,
@@ -7445,14 +7678,13 @@
"optional": true
},
"node_modules/bare-fs": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.2.2.tgz",
- "integrity": "sha512-X9IqgvyB0/VA5OZJyb5ZstoN62AzD7YxVGog13kkfYWYqJYcK0kcqLZ6TrmH5qr4/8//ejVcX4x/a0UvaogXmA==",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.2.3.tgz",
+ "integrity": "sha512-amG72llr9pstfXOBOHve1WjiuKKAMnebcmMbPWDZ7BCevAoJLpugjuAPRsDINEyjT0a6tbaVx3DctkXIRbLuJw==",
"dev": true,
"optional": true,
"dependencies": {
"bare-events": "^2.0.0",
- "bare-os": "^2.0.0",
"bare-path": "^2.0.0",
"streamx": "^2.13.0"
}
@@ -7465,9 +7697,9 @@
"optional": true
},
"node_modules/bare-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.0.tgz",
- "integrity": "sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.1.tgz",
+ "integrity": "sha512-OHM+iwRDRMDBsSW7kl3dO62JyHdBKO3B25FB9vNQBPcGHMo4+eA8Yj41Lfbk3pS/seDY+siNge0LdRTulAau/A==",
"dev": true,
"optional": true,
"dependencies": {
@@ -7771,6 +8003,18 @@
"node": ">=0.2.0"
}
},
+ "node_modules/builtin-modules": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
+ "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
@@ -7854,9 +8098,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001600",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz",
- "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==",
+ "version": "1.0.30001611",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001611.tgz",
+ "integrity": "sha512-19NuN1/3PjA3QI8Eki55N8my4LzfkMCRLgCVfrl/slbSAchQfV0+GwjPrK3rq37As4UCLlM/DHajbKkAqbv92Q==",
"dev": true,
"funding": [
{
@@ -8213,6 +8457,15 @@
"node": ">= 12"
}
},
+ "node_modules/common-tags": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz",
+ "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
"node_modules/commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
@@ -8397,6 +8650,12 @@
"safe-buffer": "~5.1.0"
}
},
+ "node_modules/confbox": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz",
+ "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==",
+ "dev": true
+ },
"node_modules/confusing-browser-globals": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
@@ -8483,9 +8742,9 @@
}
},
"node_modules/core-js-compat": {
- "version": "3.36.1",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz",
- "integrity": "sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==",
+ "version": "3.37.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz",
+ "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==",
"dev": true,
"dependencies": {
"browserslist": "^4.23.0"
@@ -8618,6 +8877,18 @@
"integrity": "sha512-FUV3xaJ63buRLgHrLQVlVgQnQdR4yqdLGaDu7g8CQcWjInDfM9plBTPI9FRfpahju1UBSaMckeb2/46ApS/V1Q==",
"dev": true
},
+ "node_modules/cssstyle": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz",
+ "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==",
+ "dev": true,
+ "dependencies": {
+ "rrweb-cssom": "^0.6.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/csstype": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
@@ -8638,6 +8909,53 @@
"node": ">= 14"
}
},
+ "node_modules/data-urls": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
+ "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
+ "dev": true,
+ "dependencies": {
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/data-urls/node_modules/tr46": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz",
+ "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/data-urls/node_modules/webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/data-urls/node_modules/whatwg-url": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz",
+ "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==",
+ "dev": true,
+ "dependencies": {
+ "tr46": "^5.0.0",
+ "webidl-conversions": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/data-view-buffer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
@@ -8738,6 +9056,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/decimal.js": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
+ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
+ "dev": true
+ },
"node_modules/decompress-response": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
@@ -8788,6 +9112,15 @@
"resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz",
"integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA=="
},
+ "node_modules/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/deepmerge-ts": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-5.1.0.tgz",
@@ -9010,9 +9343,9 @@
}
},
"node_modules/devtools-protocol": {
- "version": "0.0.1273771",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1273771.tgz",
- "integrity": "sha512-QDbb27xcTVReQQW/GHJsdQqGKwYBE7re7gxehj467kKP2DKuYBUj6i2k5LRiAC66J1yZG/9gsxooz/s9pcm0Og==",
+ "version": "0.0.1282316",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1282316.tgz",
+ "integrity": "sha512-i7eIqWdVxeXBY/M+v83yRkOV1sTHnr3XYiC0YNBivLIE6hBfE2H0c2o8VC5ynT44yjy+Ei0kLrBQFK/RUKaAHQ==",
"dev": true
},
"node_modules/diff-sequences": {
@@ -9277,9 +9610,9 @@
"dev": true
},
"node_modules/ejs": {
- "version": "3.1.9",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz",
- "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==",
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
+ "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
"dev": true,
"dependencies": {
"jake": "^10.8.5"
@@ -9292,9 +9625,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.4.717",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.717.tgz",
- "integrity": "sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==",
+ "version": "1.4.744",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.744.tgz",
+ "integrity": "sha512-nAGcF0yeKKfrP13LMFr5U1eghfFSvFLg302VUFzWlcjPOnUYd52yU5x6PBYrujhNbc4jYmZFrGZFK+xasaEzVA==",
"dev": true
},
"node_modules/element-resize-detector": {
@@ -9329,10 +9662,22 @@
"once": "^1.4.0"
}
},
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
"node_modules/envinfo": {
- "version": "7.11.1",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz",
- "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==",
+ "version": "7.12.0",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.12.0.tgz",
+ "integrity": "sha512-Iw9rQJBGpJRd3rwXm9ft/JiGoAZmLxxJZELYDQoPRZ4USVhkKtIcNBPw6U+/K2mBpaqM25JSV6Yl4Az9vO2wJg==",
"dev": true,
"bin": {
"envinfo": "dist/cli.js"
@@ -9351,9 +9696,9 @@
}
},
"node_modules/es-abstract": {
- "version": "1.23.2",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.2.tgz",
- "integrity": "sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==",
+ "version": "1.23.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
+ "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
"dev": true,
"dependencies": {
"array-buffer-byte-length": "^1.0.1",
@@ -9395,11 +9740,11 @@
"safe-regex-test": "^1.0.3",
"string.prototype.trim": "^1.2.9",
"string.prototype.trimend": "^1.0.8",
- "string.prototype.trimstart": "^1.0.7",
+ "string.prototype.trimstart": "^1.0.8",
"typed-array-buffer": "^1.0.2",
"typed-array-byte-length": "^1.0.1",
"typed-array-byte-offset": "^1.0.2",
- "typed-array-length": "^1.0.5",
+ "typed-array-length": "^1.0.6",
"unbox-primitive": "^1.0.2",
"which-typed-array": "^1.1.15"
},
@@ -10806,9 +11151,9 @@
"dev": true
},
"node_modules/flow-parser": {
- "version": "0.232.0",
- "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.232.0.tgz",
- "integrity": "sha512-U8vcKyYdM+Kb0tPzfPJ5JyPMU0uXKwHxp0L6BcEc+wBlbTW9qRhOqV5DeGXclgclVvtqQNGEG8Strj/b6c/IxA==",
+ "version": "0.234.0",
+ "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.234.0.tgz",
+ "integrity": "sha512-J1Wn32xDF1l8FqwshoQnTwC9K3aJ83MFuXUx9AcBQr8ttbI/rkjEgAqnjxaIJuZ6RGMfccN5ZxDJSOMM64qy9Q==",
"dev": true,
"engines": {
"node": ">=0.4.0"
@@ -11091,9 +11436,9 @@
}
},
"node_modules/geckodriver/node_modules/agent-base": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
- "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
+ "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
"dev": true,
"dependencies": {
"debug": "^4.3.4"
@@ -11254,6 +11599,12 @@
"node": ">=12.17"
}
},
+ "node_modules/get-own-enumerable-property-symbols": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz",
+ "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==",
+ "dev": true
+ },
"node_modules/get-package-type": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
@@ -11345,16 +11696,16 @@
"dev": true
},
"node_modules/glob": {
- "version": "10.3.10",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
- "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "version": "10.3.12",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz",
+ "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==",
"dev": true,
"dependencies": {
"foreground-child": "^3.1.0",
- "jackspeak": "^2.3.5",
+ "jackspeak": "^2.3.6",
"minimatch": "^9.0.1",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
- "path-scurry": "^1.10.1"
+ "minipass": "^7.0.4",
+ "path-scurry": "^1.10.2"
},
"bin": {
"glob": "dist/esm/bin.mjs"
@@ -11636,6 +11987,18 @@
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
"dev": true
},
+ "node_modules/html-encoding-sniffer": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
+ "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
+ "dev": true,
+ "dependencies": {
+ "whatwg-encoding": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/html-escaper": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
@@ -11690,9 +12053,9 @@
}
},
"node_modules/http-proxy-agent/node_modules/agent-base": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
- "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
+ "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
"dev": true,
"dependencies": {
"debug": "^4.3.4"
@@ -11748,6 +12111,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/idb": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz",
+ "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==",
+ "dev": true
+ },
"node_modules/ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
@@ -12181,6 +12550,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
+ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
+ "dev": true
+ },
"node_modules/is-nan": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz",
@@ -12233,6 +12608,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/is-path-cwd": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
@@ -12272,6 +12656,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-potential-custom-element-name": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
+ "dev": true
+ },
"node_modules/is-regex": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
@@ -12288,6 +12678,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
+ "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/is-set": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
@@ -12467,21 +12866,54 @@
}
},
"node_modules/istanbul-lib-instrument": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
- "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz",
+ "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==",
"dev": true,
"dependencies": {
- "@babel/core": "^7.12.3",
- "@babel/parser": "^7.14.7",
- "@istanbuljs/schema": "^0.1.2",
+ "@babel/core": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@istanbuljs/schema": "^0.1.3",
"istanbul-lib-coverage": "^3.2.0",
- "semver": "^6.3.0"
+ "semver": "^7.5.4"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-instrument/node_modules/lru-cache": {
+ "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"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-instrument/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
}
},
+ "node_modules/istanbul-lib-instrument/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
"node_modules/istanbul-lib-report": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
@@ -12803,6 +13235,105 @@
"signal-exit": "^3.0.2"
}
},
+ "node_modules/jsdom": {
+ "version": "24.0.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.0.0.tgz",
+ "integrity": "sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==",
+ "dev": true,
+ "dependencies": {
+ "cssstyle": "^4.0.1",
+ "data-urls": "^5.0.0",
+ "decimal.js": "^10.4.3",
+ "form-data": "^4.0.0",
+ "html-encoding-sniffer": "^4.0.0",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.2",
+ "is-potential-custom-element-name": "^1.0.1",
+ "nwsapi": "^2.2.7",
+ "parse5": "^7.1.2",
+ "rrweb-cssom": "^0.6.0",
+ "saxes": "^6.0.0",
+ "symbol-tree": "^3.2.4",
+ "tough-cookie": "^4.1.3",
+ "w3c-xmlserializer": "^5.0.0",
+ "webidl-conversions": "^7.0.0",
+ "whatwg-encoding": "^3.1.1",
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.0.0",
+ "ws": "^8.16.0",
+ "xml-name-validator": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "canvas": "^2.11.2"
+ },
+ "peerDependenciesMeta": {
+ "canvas": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jsdom/node_modules/agent-base": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
+ "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/jsdom/node_modules/https-proxy-agent": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
+ "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
+ "dev": true,
+ "dependencies": {
+ "agent-base": "^7.0.2",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/jsdom/node_modules/tr46": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz",
+ "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/jsdom/node_modules/webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/jsdom/node_modules/whatwg-url": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz",
+ "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==",
+ "dev": true,
+ "dependencies": {
+ "tr46": "^5.0.0",
+ "webidl-conversions": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/jsesc": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
@@ -12827,6 +13358,12 @@
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
"dev": true
},
+ "node_modules/json-schema": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
+ "dev": true
+ },
"node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
@@ -12859,12 +13396,6 @@
"node": ">=6"
}
},
- "node_modules/jsonc-parser": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
- "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==",
- "dev": true
- },
"node_modules/jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
@@ -12877,6 +13408,15 @@
"graceful-fs": "^4.1.6"
}
},
+ "node_modules/jsonpointer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz",
+ "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/jsx-ast-utils": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
@@ -13073,12 +13613,12 @@
}
},
"node_modules/locate-app": {
- "version": "2.2.25",
- "resolved": "https://registry.npmjs.org/locate-app/-/locate-app-2.2.25.tgz",
- "integrity": "sha512-Y7+4RwZkEuR2jtVuCVruztL12OSjFRVwt5J1xwsJ+I6hxJuGq3Hi9+PumWVcTxm6SG7FH7t53SKscHE6ZnLbnA==",
+ "version": "2.4.5",
+ "resolved": "https://registry.npmjs.org/locate-app/-/locate-app-2.4.5.tgz",
+ "integrity": "sha512-TDRQt0uUzc1oUEUjzyUbgRzaYICHrYcO/xIdDpJkL8Yp1Bkle775gCmdsl0DnifDgerE5VWH5ZMOGfhp8sTSfQ==",
"dev": true,
"dependencies": {
- "n12": "1.8.28",
+ "@promptbook/utils": "0.44.0-1",
"type-fest": "2.13.0",
"userhome": "1.0.0"
}
@@ -13142,6 +13682,12 @@
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
},
+ "node_modules/lodash.sortby": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==",
+ "dev": true
+ },
"node_modules/lodash.zip": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz",
@@ -13224,15 +13770,12 @@
}
},
"node_modules/magic-string": {
- "version": "0.30.8",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz",
- "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==",
+ "version": "0.30.10",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
+ "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
"dev": true,
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.4.15"
- },
- "engines": {
- "node": ">=12"
}
},
"node_modules/make-dir": {
@@ -13266,9 +13809,9 @@
"dev": true
},
"node_modules/markdown-to-jsx": {
- "version": "7.4.5",
- "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.4.5.tgz",
- "integrity": "sha512-c8NB0H/ig+FOWssE9be0PKsYbCDhcWEkicxMnpdfUuHbFljnen4LAdgUShOyR/PgO3/qKvt9cwfQ0U/zQvZ44A==",
+ "version": "7.4.7",
+ "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.4.7.tgz",
+ "integrity": "sha512-0+ls1IQZdU6cwM1yu0ZjjiVWYtkbExSyUIFU2ZeDIFuZM1W42Mh4OlJ4nb4apX4H8smxDHRdFaoIVJGwfv5hkg==",
"dev": true,
"engines": {
"node": ">= 10"
@@ -13588,6 +14131,15 @@
"esbuild": "^0.14.0 || ^0.15.0 || ^0.16.0 || ^0.17.0 || ^0.18.0"
}
},
+ "node_modules/moment": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+ "devOptional": true,
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/mousetrap": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz",
@@ -13608,12 +14160,6 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
- "node_modules/n12": {
- "version": "1.8.28",
- "resolved": "https://registry.npmjs.org/n12/-/n12-1.8.28.tgz",
- "integrity": "sha512-d7AxSTy3yrAT//gLFd7s/m4bNGQsiFKah1c/YBw85IvrCvoQZpqaAhnC7ANtjW1C7SE5SiT97Y2H21LCzS9qbA==",
- "dev": true
- },
"node_modules/nanoid": {
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
@@ -13812,6 +14358,12 @@
"node": ">=8"
}
},
+ "node_modules/nwsapi": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz",
+ "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==",
+ "dev": true
+ },
"node_modules/nypm": {
"version": "0.3.8",
"resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.8.tgz",
@@ -14272,9 +14824,9 @@
}
},
"node_modules/pac-proxy-agent/node_modules/agent-base": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
- "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
+ "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
"dev": true,
"dependencies": {
"debug": "^4.3.4"
@@ -14345,6 +14897,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/parse5": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+ "dev": true,
+ "dependencies": {
+ "entities": "^4.4.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
"node_modules/parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
@@ -14388,12 +14952,12 @@
"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==",
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz",
+ "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==",
"dev": true,
"dependencies": {
- "lru-cache": "^9.1.1 || ^10.0.0",
+ "lru-cache": "^10.2.0",
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
},
"engines": {
@@ -14507,22 +15071,22 @@
}
},
"node_modules/pkg-types": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz",
- "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.0.tgz",
+ "integrity": "sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==",
"dev": true,
"dependencies": {
- "jsonc-parser": "^3.2.0",
- "mlly": "^1.2.0",
- "pathe": "^1.1.0"
+ "confbox": "^0.1.7",
+ "mlly": "^1.6.1",
+ "pathe": "^1.1.2"
}
},
"node_modules/playwright": {
- "version": "1.42.1",
- "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.42.1.tgz",
- "integrity": "sha512-PgwB03s2DZBcNRoW+1w9E+VkLBxweib6KTXM0M3tkiT4jVxKSi6PmVJ591J+0u10LUrgxB7dLRbiJqO5s2QPMg==",
+ "version": "1.43.1",
+ "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.43.1.tgz",
+ "integrity": "sha512-V7SoH0ai2kNt1Md9E3Gwas5B9m8KR2GVvwZnAI6Pg0m3sh7UvgiYhRrhsziCmqMJNouPckiOhk8T+9bSAK0VIA==",
"dependencies": {
- "playwright-core": "1.42.1"
+ "playwright-core": "1.43.1"
},
"bin": {
"playwright": "cli.js"
@@ -14535,9 +15099,9 @@
}
},
"node_modules/playwright-core": {
- "version": "1.42.1",
- "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.42.1.tgz",
- "integrity": "sha512-mxz6zclokgrke9p1vtdy/COWBH+eOZgYUVVU34C73M+4j4HLlQJHtfcqiqqxpP0o8HhMkflvfbquLX5dg6wlfA==",
+ "version": "1.43.1",
+ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.43.1.tgz",
+ "integrity": "sha512-EI36Mto2Vrx6VF7rm708qSnesVQKbxEWvPrfA1IPY6HgczBplDx7ENtx+K2n4kJ41sLLkuGfmb0ZLSSXlDhqPg==",
"bin": {
"playwright-core": "cli.js"
},
@@ -14631,10 +15195,22 @@
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
- "node_modules/pretty-format": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
- "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "node_modules/pretty-bytes": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz",
+ "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==",
+ "dev": true,
+ "engines": {
+ "node": "^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
"dependencies": {
"@jest/schemas": "^29.6.3",
"ansi-styles": "^5.0.0",
@@ -14757,9 +15333,9 @@
}
},
"node_modules/proxy-agent/node_modules/agent-base": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
- "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
+ "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
"dev": true,
"dependencies": {
"debug": "^4.3.4"
@@ -14796,6 +15372,12 @@
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"dev": true
},
+ "node_modules/psl": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
+ "dev": true
+ },
"node_modules/pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
@@ -14941,9 +15523,9 @@
}
},
"node_modules/qs": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz",
- "integrity": "sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==",
+ "version": "6.12.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz",
+ "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==",
"dev": true,
"dependencies": {
"side-channel": "^1.0.6"
@@ -14961,6 +15543,12 @@
"integrity": "sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==",
"dev": true
},
+ "node_modules/querystringify": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
+ "dev": true
+ },
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -15014,6 +15602,15 @@
"url": "https://opencollective.com/ramda"
}
},
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
"node_modules/range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
@@ -15039,9 +15636,9 @@
}
},
"node_modules/rc-cascader": {
- "version": "3.24.0",
- "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.24.0.tgz",
- "integrity": "sha512-NwkYsVULA61S085jbOYbq8Z7leyIxVmLwf+71mWLjA3kCfUf/rAKC0WfjQbqBDaLGlU9d4z1EzyPaHBKLYWv6A==",
+ "version": "3.24.1",
+ "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.24.1.tgz",
+ "integrity": "sha512-RgKuYgEGPx+6wCgguYFHjMsDZdCyydZd58YJRCfYQ8FObqLnZW0x/vUcEyPjhWIj1EhjV958IcR+NFPDbbj9kg==",
"dependencies": {
"@babel/runtime": "^7.12.5",
"array-tree-filter": "^2.1.0",
@@ -15132,9 +15729,9 @@
}
},
"node_modules/rc-field-form": {
- "version": "1.42.1",
- "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.42.1.tgz",
- "integrity": "sha512-SqiEmWNP+I61Lt80+ofPvT+3l8Ij6vb35IS+x14gheVnCJN0SRnOwEgsqCEB5FslT7xqjUqDnU845hRZ1jzlAA==",
+ "version": "1.44.0",
+ "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.44.0.tgz",
+ "integrity": "sha512-el7w87fyDUsca63Y/s8qJcq9kNkf/J5h+iTdqG5WsSHLH0e6Usl7QuYSmSVzJMgtp40mOVZIY/W/QP9zwrp1FA==",
"dependencies": {
"@babel/runtime": "^7.18.0",
"async-validator": "^4.1.0",
@@ -15245,9 +15842,9 @@
}
},
"node_modules/rc-notification": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.3.0.tgz",
- "integrity": "sha512-WCf0uCOkZ3HGfF0p1H4Sgt7aWfipxORWTPp7o6prA3vxwtWhtug3GfpYls1pnBp4WA+j8vGIi5c2/hQRpGzPcQ==",
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.4.0.tgz",
+ "integrity": "sha512-li19y9RoYJciF3WRFvD+DvWS70jdL8Fr+Gfb/OshK+iY6iTkwzoigmSIp76/kWh5tF5i/i9im12X3nsF85GYdA==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"classnames": "2.x",
@@ -15292,9 +15889,9 @@
}
},
"node_modules/rc-picker": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.3.0.tgz",
- "integrity": "sha512-bQNB/+NdW55jlQ5lPnNqF5J90Tq4SihLbAF7tzPBvGDJyoYmDgwLm4FN0ZB3Ot9i1v6vJY/1mgqZZTT9jbYc5w==",
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.3.2.tgz",
+ "integrity": "sha512-2NtobLxG2YqllXn4YczbupgIH6PSqzjCfFCnGlgPIY9k0HZti8WmBPjS1OD9JKQl+Tdg0pMVUeTEc07y4X9ZRQ==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"@rc-component/trigger": "^2.0.0",
@@ -15330,9 +15927,9 @@
}
},
"node_modules/rc-progress": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-3.5.1.tgz",
- "integrity": "sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz",
+ "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"classnames": "^2.2.6",
@@ -15391,12 +15988,12 @@
}
},
"node_modules/rc-select": {
- "version": "14.13.0",
- "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.13.0.tgz",
- "integrity": "sha512-ew34FsaqHokK4dxVrcIxSYrgWJ2XJYlkk32eiOIiEo3GkHUExdCzmozMYaUc2P67c5QJRUvvY0uqCs3QG67h5A==",
+ "version": "14.13.1",
+ "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.13.1.tgz",
+ "integrity": "sha512-A1VHqjIOemxLnUGRxLGVqXBs8jGcJemI5NXxOJwU5PQc1wigAu1T4PRLgMkTPDOz8gPhlY9dwsPzMgakMc2QjQ==",
"dependencies": {
"@babel/runtime": "^7.10.1",
- "@rc-component/trigger": "^2.0.0",
+ "@rc-component/trigger": "^2.1.1",
"classnames": "2.x",
"rc-motion": "^2.0.1",
"rc-overflow": "^1.3.1",
@@ -15460,9 +16057,9 @@
}
},
"node_modules/rc-table": {
- "version": "7.42.0",
- "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.42.0.tgz",
- "integrity": "sha512-GwHV9Zs3HvWxBkoXatO/IeKoElzy3Ojf3dcyw1Rj3cyQVb+ZHtexslKdyzsrKRPJ0mUa62BoX+ZAg3zgTEql8w==",
+ "version": "7.45.4",
+ "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.45.4.tgz",
+ "integrity": "sha512-6aSbGrnkN2GLSt3s1x+wa4f3j/VEgg1uKPpaLY5qHH1/nFyreS2V7DFJ0TfUb18allf2FQl7oVYEjTixlBXEyQ==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"@rc-component/context": "^1.4.0",
@@ -15598,9 +16195,9 @@
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
},
"node_modules/rc-virtual-list": {
- "version": "3.11.4",
- "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.11.4.tgz",
- "integrity": "sha512-NbBi0fvyIu26gP69nQBiWgUMTPX3mr4FcuBQiVqagU0BnuX8WQkiivnMs105JROeuUIFczLrlgUhLQwTWV1XDA==",
+ "version": "3.11.5",
+ "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.11.5.tgz",
+ "integrity": "sha512-iZRW99m5jAxtwKNPLwUrPryurcnKpXBdTyhuBp6ythf7kg/otKO5cCiIvL55GQwU0QGSlouQS0tnkciRMJUwRQ==",
"dependencies": {
"@babel/runtime": "^7.20.0",
"classnames": "^2.2.6",
@@ -16346,6 +16943,15 @@
"node": ">=0.10.0"
}
},
+ "node_modules/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/requireindex": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz",
@@ -16355,6 +16961,12 @@
"node": ">=0.10.5"
}
},
+ "node_modules/requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
+ "dev": true
+ },
"node_modules/reselect": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.5.tgz",
@@ -16525,21 +17137,56 @@
}
},
"node_modules/rollup": {
- "version": "3.29.4",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
- "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
+ "version": "2.79.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
+ "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
"dev": true,
"bin": {
"rollup": "dist/bin/rollup"
},
"engines": {
- "node": ">=14.18.0",
- "npm": ">=8.0.0"
+ "node": ">=10.0.0"
},
"optionalDependencies": {
"fsevents": "~2.3.2"
}
},
+ "node_modules/rollup-plugin-terser": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
+ "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==",
+ "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.10.4",
+ "jest-worker": "^26.2.1",
+ "serialize-javascript": "^4.0.0",
+ "terser": "^5.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^2.0.0"
+ }
+ },
+ "node_modules/rollup-plugin-terser/node_modules/jest-worker": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
+ "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/rrweb-cssom": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz",
+ "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==",
+ "dev": true
+ },
"node_modules/run-parallel": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -16639,9 +17286,9 @@
"dev": true
},
"node_modules/sass": {
- "version": "1.72.0",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.72.0.tgz",
- "integrity": "sha512-Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA==",
+ "version": "1.75.0",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.75.0.tgz",
+ "integrity": "sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==",
"dev": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
@@ -16655,6 +17302,18 @@
"node": ">=14.0.0"
}
},
+ "node_modules/saxes": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
+ "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
+ "dev": true,
+ "dependencies": {
+ "xmlchars": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=v12.22.7"
+ }
+ },
"node_modules/scheduler": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
@@ -16747,6 +17406,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/serialize-javascript": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
+ "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
+ "dev": true,
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
"node_modules/serve-static": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
@@ -16920,9 +17588,9 @@
}
},
"node_modules/socks": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz",
- "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==",
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz",
+ "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==",
"dev": true,
"dependencies": {
"ip-address": "^9.0.5",
@@ -16934,12 +17602,12 @@
}
},
"node_modules/socks-proxy-agent": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz",
- "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==",
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz",
+ "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==",
"dev": true,
"dependencies": {
- "agent-base": "^7.0.2",
+ "agent-base": "^7.1.1",
"debug": "^4.3.4",
"socks": "^2.7.1"
},
@@ -16948,9 +17616,9 @@
}
},
"node_modules/socks-proxy-agent/node_modules/agent-base": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
- "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
+ "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
"dev": true,
"dependencies": {
"debug": "^4.3.4"
@@ -16987,6 +17655,13 @@
"source-map": "^0.6.0"
}
},
+ "node_modules/sourcemap-codec": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
+ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
+ "deprecated": "Please use @jridgewell/sourcemap-codec instead",
+ "dev": true
+ },
"node_modules/space-separated-tokens": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz",
@@ -16997,6 +17672,12 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/spacetrim": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/spacetrim/-/spacetrim-0.11.2.tgz",
+ "integrity": "sha512-/rdSi1YqdWpJ2fm2tan8O9ntmAFm04K+aSBgntGJib8nw1aPYZNxGGoPq0c1bC36CbVwLzaiPOLIITQXLBM5Pw==",
+ "dev": true
+ },
"node_modules/spdx-correct": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
@@ -17186,6 +17867,32 @@
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
+ "node_modules/string.prototype.matchall": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
+ "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.7",
+ "regexp.prototype.flags": "^1.5.2",
+ "set-function-name": "^2.0.2",
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/string.prototype.trim": {
"version": "1.2.9",
"resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
@@ -17235,6 +17942,20 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/stringify-object": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
+ "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
+ "dev": true,
+ "dependencies": {
+ "get-own-enumerable-property-symbols": "^3.0.0",
+ "is-obj": "^1.0.1",
+ "is-regexp": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
@@ -17269,6 +17990,15 @@
"node": ">=4"
}
},
+ "node_modules/strip-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz",
+ "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/strip-final-newline": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
@@ -17382,6 +18112,12 @@
"react": "^16.11.0 || ^17.0.0 || ^18.0.0"
}
},
+ "node_modules/symbol-tree": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
+ "dev": true
+ },
"node_modules/synchronous-promise": {
"version": "2.0.17",
"resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.17.tgz",
@@ -17582,12 +18318,10 @@
}
},
"node_modules/terser": {
- "version": "5.30.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.0.tgz",
- "integrity": "sha512-Y/SblUl5kEyEFzhMAQdsxVHh+utAxd4IuRNJzKywY/4uzSogh3G219jqbDDxYu4MXO9CzY3tSEqmZvW6AoEDJw==",
+ "version": "5.30.3",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz",
+ "integrity": "sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==",
"dev": true,
- "optional": true,
- "peer": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
"acorn": "^8.8.2",
@@ -17606,8 +18340,6 @@
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
"integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
"dev": true,
- "optional": true,
- "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -17619,9 +18351,7 @@
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true,
- "optional": true,
- "peer": true
+ "dev": true
},
"node_modules/test-exclude": {
"version": "6.0.0",
@@ -17756,9 +18486,9 @@
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
},
"node_modules/tinybench": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.6.0.tgz",
- "integrity": "sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==",
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.7.0.tgz",
+ "integrity": "sha512-Qgayeb106x2o4hNzNjsZEfFziw8IbKqtbXBjVh7VIZfBxfD5M4gWtpyx5+YTae2gJ6Y6Dz/KLepiv16RFeQWNA==",
"dev": true
},
"node_modules/tinycolor2": {
@@ -17812,9 +18542,9 @@
}
},
"node_modules/tocbot": {
- "version": "4.25.0",
- "resolved": "https://registry.npmjs.org/tocbot/-/tocbot-4.25.0.tgz",
- "integrity": "sha512-kE5wyCQJ40hqUaRVkyQ4z5+4juzYsv/eK+aqD97N62YH0TxFhzJvo22RUQQZdO3YnXAk42ZOfOpjVdy+Z0YokA==",
+ "version": "4.27.0",
+ "resolved": "https://registry.npmjs.org/tocbot/-/tocbot-4.27.0.tgz",
+ "integrity": "sha512-x3ZPNFPVOYCAyW4CEW8KszGfqB3/fnY1QX1tfUHH1fj1r6I8v0g5w0flNsWf7htZKtzqtdiPqu//II3ngL/WwA==",
"dev": true
},
"node_modules/toggle-selection": {
@@ -17840,6 +18570,30 @@
"node": ">=6"
}
},
+ "node_modules/tough-cookie": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
+ "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
+ "dev": true,
+ "dependencies": {
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.2.0",
+ "url-parse": "^1.5.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tough-cookie/node_modules/universalify": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
"node_modules/tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
@@ -18052,9 +18806,9 @@
"dev": true
},
"node_modules/typescript": {
- "version": "5.4.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz",
- "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==",
+ "version": "5.4.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+ "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@@ -18112,7 +18866,7 @@
"version": "5.26.5",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
- "dev": true
+ "devOptional": true
},
"node_modules/unicode-canonical-property-names-ecmascript": {
"version": "2.0.0",
@@ -18224,9 +18978,9 @@
}
},
"node_modules/unplugin": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.10.0.tgz",
- "integrity": "sha512-CuZtvvO8ua2Wl+9q2jEaqH6m3DoQ38N7pvBYQbbaeNlWGvK2l6GHiKi29aIHDPoSxdUzQ7Unevf1/ugil5X6Pg==",
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.10.1.tgz",
+ "integrity": "sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==",
"dev": true,
"dependencies": {
"acorn": "^8.11.3",
@@ -18313,6 +19067,16 @@
"safe-buffer": "~5.1.0"
}
},
+ "node_modules/upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+ "dev": true,
+ "engines": {
+ "node": ">=4",
+ "yarn": "*"
+ }
+ },
"node_modules/update-browserslist-db": {
"version": "1.0.13",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
@@ -18352,6 +19116,16 @@
"punycode": "^2.1.0"
}
},
+ "node_modules/url-parse": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
+ "dev": true,
+ "dependencies": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
"node_modules/use-callback-ref": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz",
@@ -18590,6 +19364,46 @@
"url": "https://opencollective.com/vitest"
}
},
+ "node_modules/vite-plugin-pwa": {
+ "version": "0.17.5",
+ "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.17.5.tgz",
+ "integrity": "sha512-UxRNPiJBzh4tqU/vc8G2TxmrUTzT6BqvSzhszLk62uKsf+npXdvLxGDz9C675f4BJi6MbD2tPnJhi5txlMzxbQ==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.2",
+ "pretty-bytes": "^6.1.1",
+ "workbox-build": "^7.0.0",
+ "workbox-window": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "vite": "^3.1.0 || ^4.0.0 || ^5.0.0",
+ "workbox-build": "^7.0.0",
+ "workbox-window": "^7.0.0"
+ }
+ },
+ "node_modules/vite/node_modules/rollup": {
+ "version": "3.29.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
+ "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
+ "dev": true,
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=14.18.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
"node_modules/vitest": {
"version": "0.34.6",
"resolved": "https://registry.npmjs.org/vitest/-/vitest-0.34.6.tgz",
@@ -18667,6 +19481,20 @@
}
}
},
+ "node_modules/vitest/node_modules/@vitest/utils": {
+ "version": "0.34.6",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz",
+ "integrity": "sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==",
+ "dev": true,
+ "dependencies": {
+ "diff-sequences": "^29.4.3",
+ "loupe": "^2.3.6",
+ "pretty-format": "^29.5.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
"node_modules/vitest/node_modules/acorn": {
"version": "8.11.3",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
@@ -18688,6 +19516,18 @@
"node": ">=0.4.0"
}
},
+ "node_modules/w3c-xmlserializer": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
+ "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
+ "dev": true,
+ "dependencies": {
+ "xml-name-validator": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/wait-port": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/wait-port/-/wait-port-1.1.0.tgz",
@@ -18763,18 +19603,18 @@
}
},
"node_modules/webdriver": {
- "version": "8.35.0",
- "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.35.0.tgz",
- "integrity": "sha512-D13EroddIXDqdq3jgO8j6sorgTWqTwEiTqwlDoJizpRIgHGBy+UjkNM7XW1yVcvt8gsD2Dei2LQth2tJEnu5Ng==",
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.36.0.tgz",
+ "integrity": "sha512-6fmZI1+OCGbhuGMLBLvA7m9TJvHU1Cyzxqd8rGzIyb8hocR53yh/olfOL1BPcjU1NXmKuU1BePSGF+yiKajiEA==",
"dev": true,
"dependencies": {
"@types/node": "^20.1.0",
"@types/ws": "^8.5.3",
- "@wdio/config": "8.35.0",
+ "@wdio/config": "8.36.0",
"@wdio/logger": "8.28.0",
"@wdio/protocols": "8.32.0",
- "@wdio/types": "8.32.4",
- "@wdio/utils": "8.35.0",
+ "@wdio/types": "8.36.0",
+ "@wdio/utils": "8.36.0",
"deepmerge-ts": "^5.1.0",
"got": "^12.6.1",
"ky": "^0.33.0",
@@ -18784,33 +19624,24 @@
"node": "^16.13 || >=18"
}
},
- "node_modules/webdriver/node_modules/@types/node": {
- "version": "20.11.30",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz",
- "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==",
- "dev": true,
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
"node_modules/webdriverio": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.35.1.tgz",
- "integrity": "sha512-YAuKR4JERGiMqCJmm5fEVZ160iiFPyupwALqfXfzrYVcEmKltKPFY/oUCArmi6Uzqd+Sa2Kp9WZtz2Eu1R76JA==",
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.36.0.tgz",
+ "integrity": "sha512-4WnEI+OxslHpfSnDXuADaR6bL1M7QxBUEF1mTN56AroOCJelyPvt94yRhszwQnLcJJB2OLn49eUz8M4yBCB51w==",
"dev": true,
"dependencies": {
"@types/node": "^20.1.0",
- "@wdio/config": "8.35.0",
+ "@wdio/config": "8.36.0",
"@wdio/logger": "8.28.0",
"@wdio/protocols": "8.32.0",
"@wdio/repl": "8.24.12",
- "@wdio/types": "8.32.4",
- "@wdio/utils": "8.35.0",
+ "@wdio/types": "8.36.0",
+ "@wdio/utils": "8.36.0",
"archiver": "^7.0.0",
"aria-query": "^5.0.0",
"css-shorthand-properties": "^1.1.1",
"css-value": "^0.0.1",
- "devtools-protocol": "^0.0.1273771",
+ "devtools-protocol": "^0.0.1282316",
"grapheme-splitter": "^1.0.2",
"import-meta-resolve": "^4.0.0",
"is-plain-obj": "^4.1.0",
@@ -18822,7 +19653,7 @@
"resq": "^1.9.1",
"rgb2hex": "0.2.5",
"serialize-error": "^11.0.1",
- "webdriver": "8.35.0"
+ "webdriver": "8.36.0"
},
"engines": {
"node": "^16.13 || >=18"
@@ -18865,19 +19696,10 @@
}
}
},
- "node_modules/webdriverio/node_modules/@types/node": {
- "version": "20.11.30",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz",
- "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==",
- "dev": true,
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
"node_modules/webdriverio/node_modules/agent-base": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
- "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
+ "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
"dev": true,
"dependencies": {
"debug": "^4.3.4"
@@ -19107,6 +19929,39 @@
"integrity": "sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==",
"dev": true
},
+ "node_modules/whatwg-encoding": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
+ "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
+ "dev": true,
+ "dependencies": {
+ "iconv-lite": "0.6.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/whatwg-encoding/node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "dev": true,
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/whatwg-mimetype": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
+ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
@@ -19233,6 +20088,374 @@
"integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
"dev": true
},
+ "node_modules/workbox-background-sync": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.0.0.tgz",
+ "integrity": "sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==",
+ "dev": true,
+ "dependencies": {
+ "idb": "^7.0.1",
+ "workbox-core": "7.0.0"
+ }
+ },
+ "node_modules/workbox-broadcast-update": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.0.0.tgz",
+ "integrity": "sha512-oUuh4jzZrLySOo0tC0WoKiSg90bVAcnE98uW7F8GFiSOXnhogfNDGZelPJa+6KpGBO5+Qelv04Hqx2UD+BJqNQ==",
+ "dev": true,
+ "dependencies": {
+ "workbox-core": "7.0.0"
+ }
+ },
+ "node_modules/workbox-build": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.0.0.tgz",
+ "integrity": "sha512-CttE7WCYW9sZC+nUYhQg3WzzGPr4IHmrPnjKiu3AMXsiNQKx+l4hHl63WTrnicLmKEKHScWDH8xsGBdrYgtBzg==",
+ "dev": true,
+ "dependencies": {
+ "@apideck/better-ajv-errors": "^0.3.1",
+ "@babel/core": "^7.11.1",
+ "@babel/preset-env": "^7.11.0",
+ "@babel/runtime": "^7.11.2",
+ "@rollup/plugin-babel": "^5.2.0",
+ "@rollup/plugin-node-resolve": "^11.2.1",
+ "@rollup/plugin-replace": "^2.4.1",
+ "@surma/rollup-plugin-off-main-thread": "^2.2.3",
+ "ajv": "^8.6.0",
+ "common-tags": "^1.8.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "fs-extra": "^9.0.1",
+ "glob": "^7.1.6",
+ "lodash": "^4.17.20",
+ "pretty-bytes": "^5.3.0",
+ "rollup": "^2.43.1",
+ "rollup-plugin-terser": "^7.0.0",
+ "source-map": "^0.8.0-beta.0",
+ "stringify-object": "^3.3.0",
+ "strip-comments": "^2.0.1",
+ "tempy": "^0.6.0",
+ "upath": "^1.2.0",
+ "workbox-background-sync": "7.0.0",
+ "workbox-broadcast-update": "7.0.0",
+ "workbox-cacheable-response": "7.0.0",
+ "workbox-core": "7.0.0",
+ "workbox-expiration": "7.0.0",
+ "workbox-google-analytics": "7.0.0",
+ "workbox-navigation-preload": "7.0.0",
+ "workbox-precaching": "7.0.0",
+ "workbox-range-requests": "7.0.0",
+ "workbox-recipes": "7.0.0",
+ "workbox-routing": "7.0.0",
+ "workbox-strategies": "7.0.0",
+ "workbox-streams": "7.0.0",
+ "workbox-sw": "7.0.0",
+ "workbox-window": "7.0.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz",
+ "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==",
+ "dev": true,
+ "dependencies": {
+ "json-schema": "^0.4.0",
+ "jsonpointer": "^5.0.0",
+ "leven": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "ajv": ">=8"
+ }
+ },
+ "node_modules/workbox-build/node_modules/ajv": {
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "dev": true,
+ "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"
+ }
+ },
+ "node_modules/workbox-build/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/workbox-build/node_modules/fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dev": true,
+ "dependencies": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/workbox-build/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/workbox-build/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==",
+ "dev": true
+ },
+ "node_modules/workbox-build/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/workbox-build/node_modules/pretty-bytes": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
+ "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/workbox-build/node_modules/source-map": {
+ "version": "0.8.0-beta.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz",
+ "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
+ "dev": true,
+ "dependencies": {
+ "whatwg-url": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/workbox-build/node_modules/tempy": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz",
+ "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==",
+ "dev": true,
+ "dependencies": {
+ "is-stream": "^2.0.0",
+ "temp-dir": "^2.0.0",
+ "type-fest": "^0.16.0",
+ "unique-string": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/workbox-build/node_modules/tr46": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
+ "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/workbox-build/node_modules/type-fest": {
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz",
+ "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/workbox-build/node_modules/webidl-conversions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
+ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
+ "dev": true
+ },
+ "node_modules/workbox-build/node_modules/whatwg-url": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
+ "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
+ "dev": true,
+ "dependencies": {
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
+ }
+ },
+ "node_modules/workbox-cacheable-response": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.0.0.tgz",
+ "integrity": "sha512-0lrtyGHn/LH8kKAJVOQfSu3/80WDc9Ma8ng0p2i/5HuUndGttH+mGMSvOskjOdFImLs2XZIimErp7tSOPmu/6g==",
+ "dev": true,
+ "dependencies": {
+ "workbox-core": "7.0.0"
+ }
+ },
+ "node_modules/workbox-core": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.0.0.tgz",
+ "integrity": "sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==",
+ "dev": true
+ },
+ "node_modules/workbox-expiration": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.0.0.tgz",
+ "integrity": "sha512-MLK+fogW+pC3IWU9SFE+FRStvDVutwJMR5if1g7oBJx3qwmO69BNoJQVaMXq41R0gg3MzxVfwOGKx3i9P6sOLQ==",
+ "dev": true,
+ "dependencies": {
+ "idb": "^7.0.1",
+ "workbox-core": "7.0.0"
+ }
+ },
+ "node_modules/workbox-google-analytics": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.0.0.tgz",
+ "integrity": "sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==",
+ "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained",
+ "dev": true,
+ "dependencies": {
+ "workbox-background-sync": "7.0.0",
+ "workbox-core": "7.0.0",
+ "workbox-routing": "7.0.0",
+ "workbox-strategies": "7.0.0"
+ }
+ },
+ "node_modules/workbox-navigation-preload": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.0.0.tgz",
+ "integrity": "sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==",
+ "dev": true,
+ "dependencies": {
+ "workbox-core": "7.0.0"
+ }
+ },
+ "node_modules/workbox-precaching": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.0.0.tgz",
+ "integrity": "sha512-EC0vol623LJqTJo1mkhD9DZmMP604vHqni3EohhQVwhJlTgyKyOkMrZNy5/QHfOby+39xqC01gv4LjOm4HSfnA==",
+ "dev": true,
+ "dependencies": {
+ "workbox-core": "7.0.0",
+ "workbox-routing": "7.0.0",
+ "workbox-strategies": "7.0.0"
+ }
+ },
+ "node_modules/workbox-range-requests": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.0.0.tgz",
+ "integrity": "sha512-SxAzoVl9j/zRU9OT5+IQs7pbJBOUOlriB8Gn9YMvi38BNZRbM+RvkujHMo8FOe9IWrqqwYgDFBfv6sk76I1yaQ==",
+ "dev": true,
+ "dependencies": {
+ "workbox-core": "7.0.0"
+ }
+ },
+ "node_modules/workbox-recipes": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.0.0.tgz",
+ "integrity": "sha512-DntcK9wuG3rYQOONWC0PejxYYIDHyWWZB/ueTbOUDQgefaeIj1kJ7pdP3LZV2lfrj8XXXBWt+JDRSw1lLLOnww==",
+ "dev": true,
+ "dependencies": {
+ "workbox-cacheable-response": "7.0.0",
+ "workbox-core": "7.0.0",
+ "workbox-expiration": "7.0.0",
+ "workbox-precaching": "7.0.0",
+ "workbox-routing": "7.0.0",
+ "workbox-strategies": "7.0.0"
+ }
+ },
+ "node_modules/workbox-routing": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.0.0.tgz",
+ "integrity": "sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA==",
+ "dev": true,
+ "dependencies": {
+ "workbox-core": "7.0.0"
+ }
+ },
+ "node_modules/workbox-strategies": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.0.0.tgz",
+ "integrity": "sha512-dg3qJU7tR/Gcd/XXOOo7x9QoCI9nk74JopaJaYAQ+ugLi57gPsXycVdBnYbayVj34m6Y8ppPwIuecrzkpBVwbA==",
+ "dev": true,
+ "dependencies": {
+ "workbox-core": "7.0.0"
+ }
+ },
+ "node_modules/workbox-streams": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.0.0.tgz",
+ "integrity": "sha512-moVsh+5to//l6IERWceYKGiftc+prNnqOp2sgALJJFbnNVpTXzKISlTIsrWY+ogMqt+x1oMazIdHj25kBSq/HQ==",
+ "dev": true,
+ "dependencies": {
+ "workbox-core": "7.0.0",
+ "workbox-routing": "7.0.0"
+ }
+ },
+ "node_modules/workbox-sw": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.0.0.tgz",
+ "integrity": "sha512-SWfEouQfjRiZ7GNABzHUKUyj8pCoe+RwjfOIajcx6J5mtgKkN+t8UToHnpaJL5UVVOf5YhJh+OHhbVNIHe+LVA==",
+ "dev": true
+ },
+ "node_modules/workbox-window": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.0.0.tgz",
+ "integrity": "sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==",
+ "dev": true,
+ "dependencies": {
+ "@types/trusted-types": "^2.0.2",
+ "workbox-core": "7.0.0"
+ }
+ },
"node_modules/wrap-ansi": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
@@ -19373,6 +20596,21 @@
}
}
},
+ "node_modules/xml-name-validator": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
+ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/xmlchars": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
+ "dev": true
+ },
"node_modules/xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
diff --git a/package.json b/package.json
index d3d20a9..2307122 100644
--- a/package.json
+++ b/package.json
@@ -43,13 +43,14 @@
"scripts": {
"start": "vite",
"start-local": "vite --mode local-server",
- "test": "vitest --browser",
- "test:ci": "vitest run --coverage --browser.name=firefox --browser.provider=playwright --browser.headless",
"lint": "eslint src/**/*.ts[x]",
"lint:fix": "eslint src/**/*.ts[x] --fix",
"build": "tsc && vite build",
- "storybook": "storybook dev -p 6006",
"build-storybook": "storybook build",
+ "test": "vitest --browser",
+ "test:cv": "vitest --coverage",
+ "test:ci": "vitest run --coverage --browser.name=chromium --browser.provider=playwright --browser.headless",
+ "storybook": "storybook dev -p 6006",
"chromatic": "npx chromatic --project-token=chpt_fb075605340d316"
},
"devDependencies": {
@@ -64,7 +65,7 @@
"@types/lodash": "4.14.178",
"@types/marked": "^4.0.7",
"@types/mousetrap": "1.6.9",
- "@types/node": "17.0.6",
+ "@types/node": "20.9.3",
"@types/prismjs": "^1.26.3",
"@types/react": "^18.2.48",
"@types/react-color": "3.0.6",
@@ -89,10 +90,12 @@
"eslint-plugin-react-refresh": "^0.4.3",
"eslint-plugin-sort-keys-fix": "^1.1.2",
"eslint-plugin-storybook": "^0.6.15",
+ "jsdom": "^24.0.0",
"sass": "^1.72.0",
"storybook": "^7.5.1",
"typescript": "^5.2.2",
"vite": "^4.5.0",
+ "vite-plugin-pwa": "^0.17.0",
"vitest": "^0.34.6",
"webdriverio": "^8.16.10"
}
diff --git a/src/const/texts.ts b/src/const/texts.ts
index 28a3f00..cbd8284 100644
--- a/src/const/texts.ts
+++ b/src/const/texts.ts
@@ -89,7 +89,6 @@ export const texts = {
savingDiagram: 'Saving presentation...',
savingDiagramDone: 'Saving presentation completed successfully.',
savingDiagramFailed: 'Saving presentation failed with internal error.',
- savingDiagramDoneUrl: (fullUrl: string) => `Saving presentation completed under ${fullUrl}.`,
sendBackwards: 'Send Backwards',
sendToBack: 'Send to Back',
settings: 'Settings',
diff --git a/src/wireframes/interface/index.spec.ts b/src/wireframes/interface/index.spec.ts
new file mode 100644
index 0000000..ce14373
--- /dev/null
+++ b/src/wireframes/interface/index.spec.ts
@@ -0,0 +1,26 @@
+/*
+ * codeslide.net
+ *
+ * @license
+ * Forked from mydraft.cc by Sebastian Stehle
+ * Copyright (c) Do Duc Quan. All rights reserved.
+*/
+
+import { getPageLink, getPageLinkId, isPageLink } from "@app/wireframes/interface";
+
+describe('Inteface', () => {
+ const id = 'test';
+
+ it('should return correct link', () => {
+ expect(getPageLink(id)).toBe(`page://${id}`);
+ });
+
+ it('should return correct id', () => {
+ expect(getPageLinkId(`page://${id}`)).toBe(id);
+ });
+
+ it('should check if correct link is correct', () => {
+ expect(isPageLink(`page://${id}`)).toBeTruthy();
+ expect(isPageLink(`${id}`)).toBeFalsy();
+ });
+});
\ No newline at end of file
diff --git a/src/wireframes/model/configurables.spec.ts b/src/wireframes/model/configurables.spec.ts
index 2fd3c34..ec8a142 100644
--- a/src/wireframes/model/configurables.spec.ts
+++ b/src/wireframes/model/configurables.spec.ts
@@ -6,7 +6,25 @@
* Copyright (c) Do Duc Quan. All rights reserved.
*/
-import { ColorConfigurable, SelectionConfigurable, SliderConfigurable } from '@app/wireframes/model';
+import { ColorConfigurable, NumberConfigurable, SelectionConfigurable, SliderConfigurable, TextConfigurable, ToggleConfigurable } from '@app/wireframes/model';
+
+describe('TextConfigurable', () => {
+ it('should instantiate', () => {
+ const configurable = new TextConfigurable('MyName', 'MyLabel');
+
+ expect(configurable).toBeDefined();
+ });
+});
+
+
+describe('ToggleConfigurable', () => {
+ it('should instantiate', () => {
+ const configurable = new ToggleConfigurable('MyName', 'MyLabel');
+
+ expect(configurable).toBeDefined();
+ });
+});
+
describe('SelectionConfigurable', () => {
it('should instantiate', () => {
@@ -37,6 +55,24 @@ describe('SliderConfigurable', () => {
});
});
+describe('NumberConfigurable', () => {
+ it('should instantiate', () => {
+ const configurable = new NumberConfigurable('MyName', 'MyLabel', 10, 20);
+
+ expect(configurable).toBeDefined();
+ expect(configurable.min).toBe(10);
+ expect(configurable.max).toBe(20);
+ });
+
+ it('should instantiate default', () => {
+ const configurable = new NumberConfigurable('MyName', 'MyLabel');
+
+ expect(configurable).toBeDefined();
+ expect(configurable.min).toBe(0);
+ expect(configurable.max).toBe(100);
+ });
+});
+
describe('ColorConfigurable', () => {
it('should instantiate', () => {
const configurable = new ColorConfigurable('MyName', 'MyLabel');
diff --git a/src/wireframes/shapes/neutral/latex.ts b/src/wireframes/shapes/neutral/latex.ts
index 4f26185..c7fd2fe 100644
--- a/src/wireframes/shapes/neutral/latex.ts
+++ b/src/wireframes/shapes/neutral/latex.ts
@@ -13,7 +13,7 @@ const DEFAULT_APPEARANCE = {
[shapes.key.fontSize]: shapes.common.fontSize,
[shapes.key.foregroundColor]: shapes.common.textColor,
[shapes.key.textAlignment]: 'left',
- [shapes.key.text]: 'Add equation',
+ [shapes.key.text]: 'Equation',
};
export class Latex implements ShapePlugin {
diff --git a/src/wireframes/shapes/neutral/textbox.ts b/src/wireframes/shapes/neutral/textbox.ts
index 19bffd9..d6d7d19 100644
--- a/src/wireframes/shapes/neutral/textbox.ts
+++ b/src/wireframes/shapes/neutral/textbox.ts
@@ -13,7 +13,7 @@ const DEFAULT_APPEARANCE = {
[shapes.key.fontSize]: shapes.common.fontSize,
[shapes.key.foregroundColor]: shapes.common.textColor,
[shapes.key.textAlignment]: 'left',
- [shapes.key.text]: '',
+ [shapes.key.text]: 'Text',
};
export class Textbox implements ShapePlugin {
diff --git a/src/wireframes/shapes/utils/svg-renderer2.spec.ts b/src/wireframes/shapes/utils/svg-renderer2.spec.ts
index 61788b8..5ec8e05 100644
--- a/src/wireframes/shapes/utils/svg-renderer2.spec.ts
+++ b/src/wireframes/shapes/utils/svg-renderer2.spec.ts
@@ -1,9 +1,8 @@
/*
- * codeslide.net
+ * mydraft.cc
*
* @license
- * Forked from mydraft.cc by Sebastian Stehle
- * Copyright (c) Do Duc Quan. All rights reserved.
+ * Copyright (c) Sebastian Stehle. All rights reserved.
*/
import * as svg from '@svgdotjs/svg.js';
@@ -12,74 +11,74 @@ import { SVGRenderer2 } from './svg-renderer2';
describe('SVGRenderer2', () => {
let renderer: SVGRenderer2;
- let container: svg.G;
- let root: svg.Svg;
+ let svgGroup: svg.G;
+ let svgRoot: svg.Svg;
const bounds = new Rect2(0, 0, 100, 100);
beforeEach(() => {
- root = svg.SVG().addTo(document.body);
- container = new svg.G().addTo(root);
+ svgRoot = svg.SVG().addTo(document.body);
+ svgGroup = new svg.G().addTo(svgRoot);
renderer = new SVGRenderer2();
- renderer.setContainer(container);
+ renderer.setContainer(svgGroup);
});
describe('Process', () => {
it('should render same element', () => {
renderRect();
- const rendered1 = container.get(0);
+ const rendered1 = svgGroup.get(0);
renderRect();
- const rendered2 = container.get(0);
+ const rendered2 = svgGroup.get(0);
expect(rendered2).toBe(rendered1);
- expect(container.children().length).toEqual(1);
+ expect(svgGroup.children().length).toEqual(1);
});
it('should render same element with different colors', () => {
renderWithBackground('#00ff00');
- const rendered1 = container.get(0);
+ const rendered1 = svgGroup.get(0);
renderWithBackground('#ff0000');
- const rendered2 = container.get(0);
+ const rendered2 = svgGroup.get(0);
expect(rendered2).toBe(rendered1);
expect(rendered2.fill()).toEqual('#ff0000');
- expect(container.children().length).toEqual(1);
+ expect(svgGroup.children().length).toEqual(1);
});
it('should reuse element when element changed', () => {
renderConditional(true);
- const rendered1 = container.get(2);
+ const rendered1 = svgGroup.get(2);
renderConditional(false);
- const rendered2 = container.get(2);
+ const rendered2 = svgGroup.get(2);
expect(rendered2).toBe(rendered1);
- expect(container.children().length).toEqual(3);
+ expect(svgGroup.children().length).toEqual(3);
});
it('should not reuse element when element added', () => {
renderAdded(false);
- const rendered1 = container.get(2);
+ const rendered1 = svgGroup.get(2);
renderAdded(true);
- const rendered2 = container.get(2);
+ const rendered2 = svgGroup.get(2);
expect(rendered2).not.toBe(rendered1);
- expect(container.children().length).toEqual(4);
+ expect(svgGroup.children().length).toEqual(4);
});
it('should remove old elements', () => {
renderAdded(true);
renderAdded(false);
- expect(container.children().length).toEqual(3);
+ expect(svgGroup.children().length).toEqual(3);
});
it('should set clip element', () => {
renderWithClip(true);
- const rendered = container.get(0) as svg.G;
+ const rendered = svgGroup.get(0) as svg.G;
expect(rendered.attr('clip-path')).toBeDefined();
expect(rendered.children().length).toEqual(2);
@@ -87,10 +86,10 @@ describe('SVGRenderer2', () => {
it('should unset clip element', () => {
renderWithClip(true);
- const rendered1 = container.get(0) as svg.G;
+ const rendered1 = svgGroup.get(0) as svg.G;
renderWithClip(false);
- const rendered2 = container.get(0) as svg.G;
+ const rendered2 = svgGroup.get(0) as svg.G;
expect(rendered2).toBe(rendered1);
expect(rendered2.attr('clip-path')).not.toBeDefined();
@@ -172,7 +171,7 @@ describe('SVGRenderer2', () => {
r.ellipse(1, bounds);
});
- expect(container.get(0).node.tagName).toEqual('ellipse');
+ expect(svgGroup.get(0).node.tagName).toEqual('ellipse');
});
it('should render path', () => {
@@ -180,7 +179,7 @@ describe('SVGRenderer2', () => {
r.path(1, 'M0,0 L10,10');
});
- expect(container.get(0).node.tagName).toEqual('path');
+ expect(svgGroup.get(0).node.tagName).toEqual('path');
});
it('should render raster', () => {
@@ -188,7 +187,7 @@ describe('SVGRenderer2', () => {
r.raster('source', bounds);
});
- expect(container.get(0).node.tagName).toEqual('image');
+ expect(svgGroup.get(0).node.tagName).toEqual('image');
});
it('should render rectangle', () => {
@@ -196,7 +195,7 @@ describe('SVGRenderer2', () => {
r.rectangle(1, 10, bounds);
});
- expect(container.get(0).node.tagName).toEqual('rect');
+ expect(svgGroup.get(0).node.tagName).toEqual('rect');
});
it('should render rounded rectangle bottom', () => {
@@ -204,7 +203,7 @@ describe('SVGRenderer2', () => {
r.roundedRectangleBottom(1, 10, new Rect2(0, 0, 10, 10));
});
- expect(container.get(0).node.tagName).toEqual('path');
+ expect(svgGroup.get(0).node.tagName).toEqual('path');
});
it('should render rounded rectangle left', () => {
@@ -212,7 +211,7 @@ describe('SVGRenderer2', () => {
r.roundedRectangleLeft(1, 10, new Rect2(0, 0, 10, 10));
});
- expect(container.get(0).node.tagName).toEqual('path');
+ expect(svgGroup.get(0).node.tagName).toEqual('path');
});
it('should render rounded rectangle right', () => {
@@ -220,7 +219,7 @@ describe('SVGRenderer2', () => {
r.roundedRectangleRight(1, 10, new Rect2(0, 0, 10, 10));
});
- expect(container.get(0).node.tagName).toEqual('path');
+ expect(svgGroup.get(0).node.tagName).toEqual('path');
});
it('should render rounded rectangle top', () => {
@@ -228,7 +227,7 @@ describe('SVGRenderer2', () => {
r.roundedRectangleTop(1, 10, new Rect2(0, 0, 10, 10));
});
- expect(container.get(0).node.tagName).toEqual('path');
+ expect(svgGroup.get(0).node.tagName).toEqual('path');
});
it('should render text', () => {
@@ -236,7 +235,7 @@ describe('SVGRenderer2', () => {
r.text({} as any, bounds);
});
- expect(container.get(0).node.tagName).toEqual('foreignObject');
+ expect(svgGroup.get(0).node.tagName).toEqual('foreignObject');
});
it('should render multiline text', () => {
@@ -244,7 +243,7 @@ describe('SVGRenderer2', () => {
r.textMultiline({} as any, bounds);
});
- expect(container.get(0).node.tagName).toEqual('foreignObject');
+ expect(svgGroup.get(0).node.tagName).toEqual('foreignObject');
});
});
@@ -256,7 +255,7 @@ describe('SVGRenderer2', () => {
});
});
- expect(container.get(0).fill()).toEqual('#ff0000');
+ expect(svgGroup.get(0).fill()).toEqual('#ff0000');
});
it('should render background from shape', () => {
@@ -266,7 +265,7 @@ describe('SVGRenderer2', () => {
});
});
- expect(container.get(0).fill()).toEqual('#ff0000');
+ expect(svgGroup.get(0).fill()).toEqual('#ff0000');
});
it('should render foreground color', () => {
@@ -276,7 +275,7 @@ describe('SVGRenderer2', () => {
});
});
- expect(container.get(0).attr('color')).toEqual('#00ff00');
+ expect(svgGroup.get(0).attr('color')).toEqual('#00ff00');
});
it('should render foreground from shape', () => {
@@ -286,7 +285,7 @@ describe('SVGRenderer2', () => {
});
});
- expect(container.get(0).attr('color')).toEqual('#00ff00');
+ expect(svgGroup.get(0).attr('color')).toEqual('#00ff00');
});
it('should render stroke color', () => {
@@ -296,7 +295,7 @@ describe('SVGRenderer2', () => {
});
});
- expect(container.get(0).stroke()).toEqual('#0000ff');
+ expect(svgGroup.get(0).stroke()).toEqual('#0000ff');
});
it('should render stroke color from shape', () => {
@@ -306,7 +305,7 @@ describe('SVGRenderer2', () => {
});
});
- expect(container.get(0).stroke()).toEqual('#0000ff');
+ expect(svgGroup.get(0).stroke()).toEqual('#0000ff');
});
it('should render stroke style', () => {
@@ -316,8 +315,8 @@ describe('SVGRenderer2', () => {
});
});
- expect(container.get(0).attr('stroke-linecap')).toEqual('rounded');
- expect(container.get(0).attr('stroke-linejoin')).toEqual('squared');
+ expect(svgGroup.get(0).attr('stroke-linecap')).toEqual('rounded');
+ expect(svgGroup.get(0).attr('stroke-linejoin')).toEqual('squared');
});
it('should render font family', () => {
@@ -327,7 +326,7 @@ describe('SVGRenderer2', () => {
});
});
- expect((container.get(0).node.children[0] as HTMLDivElement).style.fontFamily).toEqual('Arial');
+ expect((svgGroup.get(0).node.children[0] as HTMLDivElement).style.fontFamily).toEqual('Arial');
});
it('should render font family from shape', () => {
@@ -337,7 +336,7 @@ describe('SVGRenderer2', () => {
});
});
- expect((container.get(0).node.children[0] as HTMLDivElement).style.fontFamily).toEqual('Arial');
+ expect((svgGroup.get(0).node.children[0] as HTMLDivElement).style.fontFamily).toEqual('Arial');
});
it('should render opacity', () => {
@@ -347,7 +346,7 @@ describe('SVGRenderer2', () => {
});
});
- expect(container.get(0).opacity()).toEqual(0.3);
+ expect(svgGroup.get(0).opacity()).toEqual(0.3);
});
it('should render opacity from shape', () => {
@@ -357,7 +356,7 @@ describe('SVGRenderer2', () => {
});
});
- expect(container.get(0).opacity()).toEqual(0.3);
+ expect(svgGroup.get(0).opacity()).toEqual(0.3);
});
it('should render text', () => {
@@ -367,7 +366,7 @@ describe('SVGRenderer2', () => {
});
});
- expect((container.get(0).node.children[0]).textContent).toEqual('Text');
+ expect((svgGroup.get(0).node.children[0]).textContent).toEqual('Text');
});
it('should render text from shape', () => {
@@ -377,13 +376,13 @@ describe('SVGRenderer2', () => {
});
});
- expect((container.get(0).node.children[0]).textContent).toEqual('Text');
+ expect((svgGroup.get(0).node.children[0]).textContent).toEqual('Text');
});
});
function render(action: (renderer: SVGRenderer2) => void) {
- renderer.setContainer(container);
+ renderer.setContainer(svgGroup);
action(renderer);
renderer.cleanupAll();
}
-});
+});
\ No newline at end of file
diff --git a/src/wireframes/shapes/utils/svg-renderer2.ts b/src/wireframes/shapes/utils/svg-renderer2.ts
index 134deaf..4f1df6a 100644
--- a/src/wireframes/shapes/utils/svg-renderer2.ts
+++ b/src/wireframes/shapes/utils/svg-renderer2.ts
@@ -11,12 +11,11 @@
import * as svg from '@svgdotjs/svg.js';
import { marked } from 'marked';
import { Rect } from 'react-measure';
+import katex from 'katex';
import { escapeHTML, Rect2, sizeInPx, SVGHelper, Types } from '@app/core';
import { RendererColor, RendererElement, RendererOpacity, RendererText, RendererWidth, Shape, ShapeFactory, ShapeFactoryFunc, ShapeProperties, ShapePropertiesFunc, TextConfig, TextDecoration } from '@app/wireframes/interface';
import { AbstractRenderer2 } from './abstract-renderer';
-import katex from 'katex';
-
export * from './abstract-renderer';
class Factory implements ShapeFactory {
@@ -135,7 +134,7 @@ class Factory implements ShapeFactory {
public textMultiline(config: RendererText, bounds: Rect2, properties?: ShapePropertiesFunc, allowMarkdown?: boolean) {
return this.new('foreignObject', () => SVGHelper.createText(), p => {
p.setBackgroundColor('transparent');
- p.setText(config?.text?.replace(/\n/g, '
'), allowMarkdown);
+ p.setText(config?.text, allowMarkdown);
p.setFontSize(config);
p.setFontFamily(config);
p.setAlignment(config);
@@ -270,7 +269,7 @@ class Factory implements ShapeFactory {
}
export class SVGRenderer2 extends Factory implements AbstractRenderer2 {
- private measureDiv: HTMLDivElement;
+ private readonly measureDiv: HTMLDivElement;
public static readonly INSTANCE = new SVGRenderer2();
@@ -428,7 +427,7 @@ class Properties implements ShapeProperties {
const div = element.node.children[0] as HTMLDivElement;
if (div?.nodeName === 'DIV') {
- const textOrHtml = marked.parseInline(value);
+ const textOrHtml = marked.parseInline(value) as string;
if (textOrHtml.indexOf('&') >= 0 || textOrHtml.indexOf('<') >= 0) {
div.innerHTML = textOrHtml;
@@ -454,16 +453,12 @@ class Properties implements ShapeProperties {
const div = element.node.children[0] as HTMLDivElement;
if (div?.nodeName === 'DIV') {
- var textOrHtml = katex.renderToString(value, {
+ const kaText = katex.renderToString(value, {
throwOnError: false,
output: 'html',
});
- if (textOrHtml.indexOf('&') >= 0 || textOrHtml.indexOf('<') >= 0) {
- div.innerHTML = textOrHtml;
- } else {
- div.innerText = textOrHtml;
- }
+ div.innerHTML = kaText;
}
},
'text-alignment': (value, element) => {
@@ -723,4 +718,4 @@ function getOpacity(value: RendererWidth | null | undefined) {
function isShape(element: any): element is Shape {
return Types.isFunction(element?.getAppearance);
-}
+}
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
index 3e5b139..d11c7e7 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -3,11 +3,7 @@
"allowImportingTsExtensions": true,
"isolatedModules": true,
"jsx": "react-jsx",
- "lib": [
- "ES2020",
- "DOM",
- "DOM.Iterable"
- ],
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
"module": "ESNext",
"moduleResolution": "bundler",
"noEmit": true,
diff --git a/tsconfig.node.json b/tsconfig.node.json
index cdc2a81..0f2276e 100644
--- a/tsconfig.node.json
+++ b/tsconfig.node.json
@@ -7,4 +7,4 @@
"skipLibCheck": true
},
"include": ["vite.config.ts"]
-}
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/vite.config.ts b/vite.config.ts
index 8596c2b..35b7365 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,6 +1,7 @@
import path from 'path';
import react from '@vitejs/plugin-react';
import { defineConfig } from 'vite';
+import { VitePWA } from 'vite-plugin-pwa';
// https://vitejs.dev/config/
export default defineConfig({
@@ -14,5 +15,9 @@ export default defineConfig({
chunkSizeWarningLimit: 2000,
},
- plugins: [react({})],
+ plugins: [
+ ...
+ (process.env.NODE_ENV === 'production' ? [VitePWA({ injectRegister: null })] : []),
+ react({}),
+ ],
});
\ No newline at end of file
diff --git a/vitest.config.ts b/vitest.config.ts
index 867905f..ad0ea51 100644
--- a/vitest.config.ts
+++ b/vitest.config.ts
@@ -1,29 +1,32 @@
import path from 'path';
-import { defineConfig } from 'vitest/config';
+import { defineConfig } from 'vite';
// https://vitejs.dev/config/
export default defineConfig({
resolve: {
alias: {
- '@app': path.resolve(__dirname, './src/')
- }
+ '@app': path.resolve(__dirname, './src/'),
+ },
},
define: {
- __REACT_DEVTOOLS_GLOBAL_HOOK__: { isDisabled: true }
+ __REACT_DEVTOOLS_GLOBAL_HOOK__: { isDisabled: true },
},
test: {
globals: true,
+ environment: "jsdom",
browser: {
- name: 'firefox', // browser name is required,
-
- slowHijackESM: false
+ // Browser name is required,
+ name: 'chrome',
+
+ // Fixes a bug with build errors in browser mode.
+ slowHijackESM: false,
},
coverage: {
provider: 'istanbul',
},
},
-});
\ No newline at end of file
+} as any);
\ No newline at end of file