From 7383862e67069d2ec4297cf527787177de3a6e1b Mon Sep 17 00:00:00 2001 From: Boris Sekachev Date: Thu, 30 Nov 2023 13:41:15 +0200 Subject: [PATCH 1/6] Squashed commits --- .eslintrc.js => .eslintrc.cjs | 8 +- .vscode/launch.json | 2 +- ...20231129_111831_boris_fix_opacity_reset.md | 5 + cvat-canvas/{.eslintrc.js => .eslintrc.cjs} | 2 +- cvat-canvas/package.json | 5 +- cvat-canvas/src/typescript/canvasView.ts | 22 +- cvat-canvas/src/typescript/sliceHandler.ts | 4 + cvat-canvas/tsconfig.json | 2 +- .../{webpack.config.js => webpack.config.cjs} | 1 + cvat-canvas3d/{.eslintrc.js => .eslintrc.cjs} | 3 +- cvat-canvas3d/package.json | 5 +- cvat-canvas3d/src/typescript/canvas3dView.ts | 2 +- cvat-canvas3d/tsconfig.json | 2 +- .../{webpack.config.js => webpack.config.cjs} | 1 + cvat-core/{.eslintrc.js => .eslintrc.cjs} | 10 +- cvat-core/README.md | 2 +- cvat-core/babel.config.json | 16 + cvat-core/{jest.config.js => jest.config.cjs} | 11 +- cvat-core/package.json | 13 +- cvat-core/src/annotations-actions.ts | 222 + cvat-core/src/annotations-collection.ts | 25 +- cvat-core/src/annotations-objects.ts | 126 +- cvat-core/src/annotations.ts | 331 +- cvat-core/src/api-implementation.ts | 187 +- cvat-core/src/api.ts | 41 +- cvat-core/src/comment.ts | 2 +- ...{download.worker.js => download.worker.ts} | 0 cvat-core/src/index.ts | 157 + cvat-core/src/object-state.ts | 2 +- cvat-core/src/project.ts | 2 +- cvat-core/src/server-proxy.ts | 5 +- cvat-core/src/server-response-types.ts | 66 +- cvat-core/src/session-implementation.ts | 158 +- cvat-core/src/session.ts | 272 +- .../api/{annotations.js => annotations.cjs} | 376 +- .../{cloud-storages.js => cloud-storages.cjs} | 38 +- cvat-core/tests/api/{frames.js => frames.cjs} | 38 +- cvat-core/tests/api/{jobs.js => jobs.cjs} | 40 +- .../api/{object-state.js => object-state.cjs} | 111 +- cvat-core/tests/api/plugins.js | 93 - .../tests/api/{projects.js => projects.cjs} | 44 +- cvat-core/tests/api/{server.js => server.cjs} | 21 +- cvat-core/tests/api/{tasks.js => tasks.cjs} | 54 +- cvat-core/tests/api/{user.js => user.cjs} | 20 +- .../tests/api/{webhooks.js => webhooks.cjs} | 22 +- ...dummy-data.mock.js => dummy-data.mock.cjs} | 0 ...er-proxy.mock.js => server-proxy.mock.cjs} | 2 +- cvat-core/tsconfig.json | 4 +- cvat-core/webpack.config.cjs | 59 + cvat-core/webpack.config.js | 108 - cvat-data/{.eslintrc.js => .eslintrc.cjs} | 3 +- cvat-data/package.json | 7 +- cvat-data/src/ts/3rdparty/Decoder.js | 888 --- cvat-data/src/ts/3rdparty/Decoder.worker.js | 2170 ++++-- cvat-data/src/ts/3rdparty/README.md | 6 +- cvat-data/src/ts/3rdparty/mp4.js | 13 +- cvat-data/src/ts/3rdparty_patch.diff | 162 - cvat-data/src/ts/cvat-data.ts | 14 +- ...ip_imgs.worker.js => unzip_imgs.worker.ts} | 5 +- cvat-data/tsconfig.json | 4 +- .../{webpack.config.js => webpack.config.cjs} | 39 +- cvat-ui/{.eslintrc.js => .eslintrc.cjs} | 13 +- cvat-ui/index.d.ts | 1 - cvat-ui/package.json | 4 +- .../analytics-page/quality/issues.tsx | 14 +- .../annotations-actions-modal.tsx | 581 ++ .../annotations-actions/styles.scss | 63 + .../canvas/grid-layout/canvas-layout.tsx | 6 +- .../canvas/views/canvas2d/canvas-wrapper.tsx | 2 +- .../views/canvas3d/canvas-wrapper3D.tsx | 180 +- .../control-visibility-observer.tsx | 2 +- .../handle-popover-visibility.tsx | 2 +- .../controls-side-bar/opencv-control.tsx | 48 +- .../controls-side-bar/tools-control.tsx | 21 +- .../standard-workspace/remove-confirm.tsx | 4 +- .../shortcuts-select.tsx | 6 +- .../top-bar/annotation-menu.tsx | 31 +- .../annotation-page/top-bar/right-group.tsx | 18 +- .../cloud-storage-form.tsx | 71 +- .../components/file-manager/file-manager.tsx | 34 +- .../file-manager/remote-browser.tsx | 22 +- .../header/settings-modal/settings-modal.tsx | 4 +- .../import-backup/import-backup-modal.tsx | 69 +- .../import-dataset/import-dataset-modal.tsx | 17 +- .../labels-editor/constructor-viewer-item.tsx | 1 + .../src/components/login-page/login-form.tsx | 3 +- .../model-runner-modal/detector-runner.tsx | 18 +- cvat-ui/src/components/plugins-entrypoint.tsx | 4 +- .../storage/storage-with-switch-field.tsx | 20 +- .../automatic-annotation-progress.tsx | 137 +- .../components/webhooks-page/empty-list.tsx | 12 +- .../controls-side-bar/draw-shape-popover.tsx | 9 +- .../objects-side-bar/object-item.tsx | 4 +- .../objects-side-bar/objects-list.tsx | 2 +- cvat-ui/src/cvat-core-wrapper.ts | 16 +- cvat-ui/src/index.tsx | 2 +- cvat-ui/src/utils/mousetrap-react.tsx | 1 + .../opencv-wrapper/histogram-equalization.ts | 2 +- .../utils/opencv-wrapper/opencv-wrapper.ts | 14 +- cvat-ui/tsconfig.json | 2 +- cvat-ui/webpack.config.js | 23 - lint-staged.config.js | 12 +- package.json | 25 +- tests/.eslintrc.js | 4 +- yarn.lock | 6796 ++++++++--------- 105 files changed, 7187 insertions(+), 7186 deletions(-) rename .eslintrc.js => .eslintrc.cjs (86%) create mode 100644 changelog.d/20231129_111831_boris_fix_opacity_reset.md rename cvat-canvas/{.eslintrc.js => .eslintrc.cjs} (95%) rename cvat-canvas/{webpack.config.js => webpack.config.cjs} (97%) rename cvat-canvas3d/{.eslintrc.js => .eslintrc.cjs} (82%) rename cvat-canvas3d/{webpack.config.js => webpack.config.cjs} (97%) rename cvat-core/{.eslintrc.js => .eslintrc.cjs} (64%) create mode 100644 cvat-core/babel.config.json rename cvat-core/{jest.config.js => jest.config.cjs} (72%) create mode 100644 cvat-core/src/annotations-actions.ts rename cvat-core/src/{download.worker.js => download.worker.ts} (100%) create mode 100644 cvat-core/src/index.ts rename cvat-core/tests/api/{annotations.js => annotations.cjs} (70%) rename cvat-core/tests/api/{cloud-storages.js => cloud-storages.cjs} (81%) rename cvat-core/tests/api/{frames.js => frames.cjs} (65%) rename cvat-core/tests/api/{jobs.js => jobs.cjs} (71%) rename cvat-core/tests/api/{object-state.js => object-state.cjs} (67%) delete mode 100644 cvat-core/tests/api/plugins.js rename cvat-core/tests/api/{projects.js => projects.cjs} (79%) rename cvat-core/tests/api/{server.js => server.cjs} (76%) rename cvat-core/tests/api/{tasks.js => tasks.cjs} (86%) rename cvat-core/tests/api/{user.js => user.cjs} (68%) rename cvat-core/tests/api/{webhooks.js => webhooks.cjs} (86%) rename cvat-core/tests/mocks/{dummy-data.mock.js => dummy-data.mock.cjs} (100%) rename cvat-core/tests/mocks/{server-proxy.mock.js => server-proxy.mock.cjs} (99%) create mode 100644 cvat-core/webpack.config.cjs delete mode 100644 cvat-core/webpack.config.js rename cvat-data/{.eslintrc.js => .eslintrc.cjs} (86%) delete mode 100644 cvat-data/src/ts/3rdparty/Decoder.js delete mode 100644 cvat-data/src/ts/3rdparty_patch.diff rename cvat-data/src/ts/{unzip_imgs.worker.js => unzip_imgs.worker.ts} (94%) rename cvat-data/{webpack.config.js => webpack.config.cjs} (58%) rename cvat-ui/{.eslintrc.js => .eslintrc.cjs} (68%) create mode 100644 cvat-ui/src/components/annotation-page/annotations-actions/annotations-actions-modal.tsx create mode 100644 cvat-ui/src/components/annotation-page/annotations-actions/styles.scss diff --git a/.eslintrc.js b/.eslintrc.cjs similarity index 86% rename from .eslintrc.js rename to .eslintrc.cjs index 83d8765a2448..58c1b1481153 100644 --- a/.eslintrc.js +++ b/.eslintrc.cjs @@ -1,4 +1,5 @@ // Copyright (C) 2018-2022 Intel Corporation +// Copyright (C) 2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -14,9 +15,10 @@ module.exports = { parser: '@typescript-eslint/parser', }, ignorePatterns: [ - '.eslintrc.js', + '.eslintrc.cjs', 'lint-staged.config.js', 'site/themes/**', + 'webpack.config.cjs', ], plugins: ['@typescript-eslint', 'security', 'no-unsanitized', 'import'], extends: [ @@ -53,6 +55,10 @@ module.exports = { 'import/order': ['error', {'groups': ['builtin', 'external', 'internal']}], 'import/prefer-default-export': 0, // works incorrect with interfaces + 'react/jsx-indent-props': 0, // new rule, breaks current styling + 'react/jsx-indent': 0, // new rule, conflicts with eslint@typescript-eslint/indent eslint@indent, breaks current styling + 'function-paren-newline': 0, // new rule, breaks current styling + '@typescript-eslint/default-param-last': 0, // does not really work with redux reducers '@typescript-eslint/ban-ts-comment': 0, '@typescript-eslint/no-explicit-any': 0, '@typescript-eslint/indent': ['error', 4], diff --git a/.vscode/launch.json b/.vscode/launch.json index fd0a35f45438..d5c2a9ad9e7a 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -519,7 +519,7 @@ "program": "${workspaceFolder}/node_modules/.bin/jest", "args": [ "--config", - "${workspaceFolder}/cvat-core/jest.config.js" + "${workspaceFolder}/cvat-core/jest.config.cjs" ], "console": "integratedTerminal", "internalConsoleOptions": "neverOpen", diff --git a/changelog.d/20231129_111831_boris_fix_opacity_reset.md b/changelog.d/20231129_111831_boris_fix_opacity_reset.md new file mode 100644 index 000000000000..263fee2d724a --- /dev/null +++ b/changelog.d/20231129_111831_boris_fix_opacity_reset.md @@ -0,0 +1,5 @@ +### Added + +- Introduced CVAT actions. Actions allow performing different + predefined scenarios on annotations automatically (e.g. shape converters) + () diff --git a/cvat-canvas/.eslintrc.js b/cvat-canvas/.eslintrc.cjs similarity index 95% rename from cvat-canvas/.eslintrc.js rename to cvat-canvas/.eslintrc.cjs index 23b211a9a3fd..88530e07e8af 100644 --- a/cvat-canvas/.eslintrc.js +++ b/cvat-canvas/.eslintrc.cjs @@ -7,7 +7,7 @@ const { join } = require('path'); module.exports = { ignorePatterns: [ - '.eslintrc.js', + '.eslintrc.cjs', 'webpack.config.js', 'node_modules/**', 'dist/**', diff --git a/cvat-canvas/package.json b/cvat-canvas/package.json index 88d56f5c4f54..a9b52f3f65db 100644 --- a/cvat-canvas/package.json +++ b/cvat-canvas/package.json @@ -1,16 +1,17 @@ { "name": "cvat-canvas", "version": "2.19.0", + "type": "module", "description": "Part of Computer Vision Annotation Tool which presents its canvas library", "main": "src/canvas.ts", "scripts": { - "build": "tsc && webpack --config ./webpack.config.js" + "build": "tsc && webpack --config ./webpack.config.cjs" }, "author": "CVAT.ai", "license": "MIT", "browserslist": [ "Chrome >= 63", - "Firefox > 58", + "Firefox > 102", "not IE 11", "> 2%" ], diff --git a/cvat-canvas/src/typescript/canvasView.ts b/cvat-canvas/src/typescript/canvasView.ts index 5aea9dc058cd..9bab46cd192f 100644 --- a/cvat-canvas/src/typescript/canvasView.ts +++ b/cvat-canvas/src/typescript/canvasView.ts @@ -108,7 +108,7 @@ export class CanvasViewImpl implements CanvasView, Listener { }, }), ); - } + }; private onError = (exception: unknown, domain?: string): void => { this.canvas.dispatchEvent( @@ -122,7 +122,7 @@ export class CanvasViewImpl implements CanvasView, Listener { }, }), ); - } + }; private stateIsLocked(state: any): boolean { const { configuration } = this.controller; @@ -267,7 +267,7 @@ export class CanvasViewImpl implements CanvasView, Listener { enabled: false, }); } - } + }; private onDrawDone = ( data: any | null, @@ -337,7 +337,7 @@ export class CanvasViewImpl implements CanvasView, Listener { // when draw stops from inside canvas (for example if use predefined number of points) this.controller.draw({ enabled: false }); } - } + }; private onEditStart = (state?: any): void => { this.canvas.style.cursor = 'crosshair'; @@ -411,7 +411,7 @@ export class CanvasViewImpl implements CanvasView, Listener { this.controller.merge({ enabled: false }); this.mode = Mode.IDLE; - } + }; private onSplitDone = (object?: any, duration?: number): void => { if (object && typeof duration !== 'undefined') { @@ -437,7 +437,7 @@ export class CanvasViewImpl implements CanvasView, Listener { this.controller.split({ enabled: false }); this.mode = Mode.IDLE; - } + }; private onSelectDone = (objects?: any[], duration?: number): void => { if (objects && typeof duration !== 'undefined') { @@ -503,7 +503,7 @@ export class CanvasViewImpl implements CanvasView, Listener { } this.mode = Mode.IDLE; - } + }; private onSliceDone = (state?: any, results?: number[][], duration?: number): void => { if (state && results && typeof duration !== 'undefined') { @@ -527,7 +527,7 @@ export class CanvasViewImpl implements CanvasView, Listener { this.controller.slice({ enabled: false }); this.mode = Mode.IDLE; - } + }; private onRegionSelected = (points?: number[]): void => { if (points) { @@ -551,7 +551,7 @@ export class CanvasViewImpl implements CanvasView, Listener { this.controller.selectRegion(false); this.mode = Mode.IDLE; - } + }; private onFindObject = (e: MouseEvent): void => { if (e.button === 0) { @@ -570,7 +570,7 @@ export class CanvasViewImpl implements CanvasView, Listener { this.canvas.dispatchEvent(event); e.preventDefault(); } - } + }; private onFocusRegion = (x: number, y: number, width: number, height: number): void => { // First of all, compute and apply scale @@ -616,7 +616,7 @@ export class CanvasViewImpl implements CanvasView, Listener { this.controller.geometry = dragged; this.geometry = dragged; this.moveCanvas(); - } + }; private moveCanvas(): void { for (const obj of [this.background, this.grid, this.bitmap]) { diff --git a/cvat-canvas/src/typescript/sliceHandler.ts b/cvat-canvas/src/typescript/sliceHandler.ts index 4dac74ebaadc..74cdf2656db5 100644 --- a/cvat-canvas/src/typescript/sliceHandler.ts +++ b/cvat-canvas/src/typescript/sliceHandler.ts @@ -294,6 +294,7 @@ export class SliceHandlerImpl implements SliceHandler { const d2 = Math.sqrt((p2[0] - p[0]) ** 2 + (p2[1] - p[1]) ** 2); if (d2 > d1) { + // @ts-ignore error TS2551 (need to update typescript up to 5.2) contour2.push(...otherPoints.toReversed().flat()); } else { contour2.push(...otherPoints.flat()); @@ -311,6 +312,7 @@ export class SliceHandlerImpl implements SliceHandler { ...firstSegmentPoint, // first intersection // intermediate points (reversed if intersections order was swopped) ...(firstSegmentIdx === firstIntersectedSegmentIdx ? + // @ts-ignore error TS2551 (need to update typescript up to 5.2) intermediatePoints : intermediatePoints.toReversed() ).flat(), // second intersection @@ -324,6 +326,7 @@ export class SliceHandlerImpl implements SliceHandler { ...firstSegmentPoint, // first intersection // intermediate points (reversed if intersections order was swopped) ...(firstSegmentIdx === firstIntersectedSegmentIdx ? + // @ts-ignore error TS2551 (need to update typescript up to 5.2) intermediatePoints : intermediatePoints.toReversed() ).flat(), ...secondSegmentPoint, @@ -356,6 +359,7 @@ export class SliceHandlerImpl implements SliceHandler { drawOverOffscreenCanvas(context, shape as any as SVGImageElement); applyOffscreenCanvasMask(context, polygon1); const firstShape = zipChannels(context.getImageData(0, 0, width, height).data); + // @ts-ignore error TS2339 https://github.com/microsoft/TypeScript/issues/55162 context.reset(); drawOverOffscreenCanvas(context, shape as any as SVGImageElement); applyOffscreenCanvasMask(context, polygon2); diff --git a/cvat-canvas/tsconfig.json b/cvat-canvas/tsconfig.json index a83735d3155e..1a5dddc30d8f 100644 --- a/cvat-canvas/tsconfig.json +++ b/cvat-canvas/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es2020", + "target": "ESNext", "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, diff --git a/cvat-canvas/webpack.config.js b/cvat-canvas/webpack.config.cjs similarity index 97% rename from cvat-canvas/webpack.config.js rename to cvat-canvas/webpack.config.cjs index 382e3754d3ef..2e578c52b2b7 100644 --- a/cvat-canvas/webpack.config.js +++ b/cvat-canvas/webpack.config.cjs @@ -1,4 +1,5 @@ // Copyright (C) 2020-2022 Intel Corporation +// Copyright (C) 2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT diff --git a/cvat-canvas3d/.eslintrc.js b/cvat-canvas3d/.eslintrc.cjs similarity index 82% rename from cvat-canvas3d/.eslintrc.js rename to cvat-canvas3d/.eslintrc.cjs index 144b2c3032a8..5c0e79ae2c37 100644 --- a/cvat-canvas3d/.eslintrc.js +++ b/cvat-canvas3d/.eslintrc.cjs @@ -1,4 +1,5 @@ // Copyright (C) 2021-2022 Intel Corporation +// Copyright (C) 2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -8,7 +9,7 @@ module.exports = { tsconfigRootDir: __dirname, }, ignorePatterns: [ - '.eslintrc.js', + '.eslintrc.cjs', 'webpack.config.js', 'node_modules/**', 'dist/**', diff --git a/cvat-canvas3d/package.json b/cvat-canvas3d/package.json index f415e7a3eb60..bc55d0430e5d 100644 --- a/cvat-canvas3d/package.json +++ b/cvat-canvas3d/package.json @@ -1,16 +1,17 @@ { "name": "cvat-canvas3d", "version": "0.0.10", + "type": "module", "description": "Part of Computer Vision Annotation Tool which presents its canvas3D library", "main": "src/canvas3d.ts", "scripts": { - "build": "tsc && webpack --config ./webpack.config.js" + "build": "tsc && webpack --config ./webpack.config.cjs" }, "author": "CVAT.ai", "license": "MIT", "browserslist": [ "Chrome >= 63", - "Firefox > 58", + "Firefox > 102", "not IE 11", "> 2%" ], diff --git a/cvat-canvas3d/src/typescript/canvas3dView.ts b/cvat-canvas3d/src/typescript/canvas3dView.ts index f12fdebcbcdb..a0db4d749a8e 100644 --- a/cvat-canvas3d/src/typescript/canvas3dView.ts +++ b/cvat-canvas3d/src/typescript/canvas3dView.ts @@ -745,7 +745,7 @@ export class Canvas3dViewImpl implements Canvas3dView, Listener { if (![Mode.DRAG_CANVAS, Mode.IDLE].includes(this.mode)) return; this.isPerspectiveBeingDragged = true; this.enablePerspectiveDragging(); - } + }; private startAction(view: any, event: MouseEvent): void { const { clientID } = this.model.data.activeElement; diff --git a/cvat-canvas3d/tsconfig.json b/cvat-canvas3d/tsconfig.json index 088075b29d44..20a6dcefb49a 100644 --- a/cvat-canvas3d/tsconfig.json +++ b/cvat-canvas3d/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es2020", + "target": "ESNext", "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, diff --git a/cvat-canvas3d/webpack.config.js b/cvat-canvas3d/webpack.config.cjs similarity index 97% rename from cvat-canvas3d/webpack.config.js rename to cvat-canvas3d/webpack.config.cjs index f3c7bd789a8b..ae4d09f1e922 100644 --- a/cvat-canvas3d/webpack.config.js +++ b/cvat-canvas3d/webpack.config.cjs @@ -1,4 +1,5 @@ // Copyright (C) 2021-2022 Intel Corporation +// Copyright (C) 2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT diff --git a/cvat-core/.eslintrc.js b/cvat-core/.eslintrc.cjs similarity index 64% rename from cvat-core/.eslintrc.js rename to cvat-core/.eslintrc.cjs index 9dede90d961e..159bd7be8964 100644 --- a/cvat-core/.eslintrc.js +++ b/cvat-core/.eslintrc.cjs @@ -1,16 +1,16 @@ // Copyright (C) 2018-2022 Intel Corporation +// Copyright (C) 2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT module.exports = { ignorePatterns: [ - '.eslintrc.js', - 'webpack.config.js', - 'jest.config.js', - 'src/3rdparty/**', + '.eslintrc.cjs', + 'webpack.config.cjs', + 'jest.config.cjs', 'node_modules/**', 'dist/**', - 'tests/**/*.js', + 'tests/**/*.cjs', ], parserOptions: { project: './tsconfig.json', diff --git a/cvat-core/README.md b/cvat-core/README.md index 0271fc1c1af3..b890f7eb48a5 100644 --- a/cvat-core/README.md +++ b/cvat-core/README.md @@ -18,7 +18,7 @@ If you make changes in this package, please do following: - Dependencies installation ```bash -yarn ci --frozen-lockfile +yarn install --frozen-lockfile ``` - Building the module from sources in the `dist` directory: diff --git a/cvat-core/babel.config.json b/cvat-core/babel.config.json new file mode 100644 index 000000000000..cbd256c19f8b --- /dev/null +++ b/cvat-core/babel.config.json @@ -0,0 +1,16 @@ +{ + "presets": [ + [ + "@babel/preset-env", + { + "targets": { + "node": "current" + } + } + ], + "@babel/preset-typescript" + ], + "plugins": [ + "babel-plugin-transform-import-meta" + ] +} diff --git a/cvat-core/jest.config.js b/cvat-core/jest.config.cjs similarity index 72% rename from cvat-core/jest.config.js rename to cvat-core/jest.config.cjs index 663ab91d2458..7b7e433f9df9 100644 --- a/cvat-core/jest.config.js +++ b/cvat-core/jest.config.cjs @@ -1,4 +1,5 @@ // Copyright (C) 2019-2022 Intel Corporation +// Copyright (C) 2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -6,19 +7,11 @@ const { defaults } = require('jest-config'); module.exports = { testEnvironment: 'jsdom', - preset: 'ts-jest', coverageDirectory: 'reports/coverage', coverageReporters: ['json', ['lcov', { projectRoot: '../' }]], moduleFileExtensions: [...defaults.moduleFileExtensions, 'ts', 'tsx'], reporters: ['default', ['jest-junit', { outputDirectory: 'reports/junit' }]], - testMatch: ['**/tests/**/*.js'], + testMatch: ['**/tests/**/*.cjs'], testPathIgnorePatterns: ['/node_modules/', '/tests/mocks/*'], automock: false, - transform: { - '^.+\\.ts?$': [ - 'ts-jest', - { tsconfig: './tsconfig.json', diagnostics: false, }, - ], - }, - }; diff --git a/cvat-core/package.json b/cvat-core/package.json index fcbf8fdf32da..a9ff302733f1 100644 --- a/cvat-core/package.json +++ b/cvat-core/package.json @@ -1,11 +1,12 @@ { "name": "cvat-core", - "version": "12.1.1", + "version": "12.2.0", + "type": "module", "description": "Part of Computer Vision Tool which presents an interface for client-side integration", "main": "src/api.ts", "scripts": { "build": "webpack", - "test": "jest --config=jest.config.js --coverage", + "test": "jest --config=jest.config.cjs --coverage", "type-check": "tsc --noEmit", "type-check:watch": "yarn run type-check --watch" }, @@ -13,16 +14,18 @@ "license": "MIT", "browserslist": [ "Chrome >= 63", - "Firefox > 58", + "Firefox > 102", "not IE 11", "> 2%" ], "devDependencies": { + "@babel/preset-typescript": "^7.23.3", + "babel-jest": "^29.7.0", + "babel-plugin-transform-import-meta": "^2.2.1", "jest": "^29.5.0", "jest-config": "^29.5.0", "jest-environment-jsdom": "^29.5.0", - "jest-junit": "^6.4.0", - "ts-jest": "^29.1.0" + "jest-junit": "^6.4.0" }, "dependencies": { "@types/lodash": "^4.14.191", diff --git a/cvat-core/src/annotations-actions.ts b/cvat-core/src/annotations-actions.ts new file mode 100644 index 000000000000..c635a9671ebd --- /dev/null +++ b/cvat-core/src/annotations-actions.ts @@ -0,0 +1,222 @@ +// Copyright (C) 2023 CVAT.ai Corporation +// +// SPDX-License-Identifier: MIT + +import { omit, throttle } from 'lodash'; +import { ArgumentError } from './exceptions'; +import { SerializedCollection } from './server-response-types'; +import { Job, Task } from './session'; +import { ObjectType } from './enums'; +import ObjectState from './object-state'; +import { getAnnotations, getCollection } from './annotations'; + +export interface SingleFrameActionInput { + collection: Omit; + frameData: { + width: number; + height: number; + number: number; + }; +} + +export interface SingleFrameActionOutput { + collection: Omit; +} + +export enum ActionParameterType { + SELECT = 'select', + NUMBER = 'number', +} + +type ActionParameters = Record; + +export default class BaseSingleFrameAction { + /* eslint-disable @typescript-eslint/no-unused-vars */ + public async init( + sessionInstance: Job | Task, + parameters: Record, + ): Promise { + throw new Error('Method not implemented'); + } + + public async destroy(): Promise { + throw new Error('Method not implemented'); + } + + public async run(sessionInstance: Job | Task, input: SingleFrameActionInput): Promise { + throw new Error('Method not implemented'); + } + + public get name(): string { + throw new Error('Method not implemented'); + } + + public get parameters(): ActionParameters | null { + throw new Error('Method not implemented'); + } +} + +const registeredActions: BaseSingleFrameAction[] = []; + +export async function listActions(): Promise { + return [...registeredActions]; +} + +export async function registerAction(action: BaseSingleFrameAction): Promise { + if (!(action instanceof BaseSingleFrameAction)) { + throw new ArgumentError('Provided action is not instance of BaseSingleFrameAction'); + } + + const { name } = action; + if (registeredActions.map((_action) => _action.name).includes(name)) { + throw new ArgumentError(`Annotations function name must be unique. Name "${name}" is already exists`); + } + + registeredActions.push(action); +} + +async function runSingleFrameChain( + instance: Job | Task, + actionsChain: BaseSingleFrameAction[], + actionParameters: Record[], + frameFrom: number, + frameTo: number, + filters: string[], + onProgress: ( + message: string, + progress: number, + ) => boolean, +): Promise { + type IDsToHandle = { shapes: number[] }; + + // if called too fast, it will freeze UI, so, add throttling here + const wrappedOnProgress = throttle(onProgress, 100, { leading: true, trailing: true }); + const showMessageWithPause = async (message: string, progress: number, duration: number): Promise => { + // wrapper that gives a chance to abort action + wrappedOnProgress(message, progress); + await new Promise((resolve) => setTimeout(resolve, duration)); + return !!wrappedOnProgress(message, progress); + }; + + try { + if (await showMessageWithPause('Actions initialization', 0, 500)) { + return; + } + + await Promise.all(actionsChain.map((action, idx) => { + const declaredParameters = action.parameters; + if (!declaredParameters) { + return action.init(instance, {}); + } + + const setupValues = actionParameters[idx]; + const parameters = Object.entries(declaredParameters).reduce((acc, [name, { type, defaultValue }]) => { + if (type === ActionParameterType.NUMBER) { + acc[name] = +(Object.hasOwn(setupValues, name) ? setupValues[name] : defaultValue); + } else { + acc[name] = (Object.hasOwn(setupValues, name) ? setupValues[name] : defaultValue); + } + return acc; + }, {} as Record); + + return action.init(instance, parameters); + })); + + const exportedCollection = getCollection(instance).export(); + const handledCollection: SingleFrameActionInput['collection'] = { shapes: [] }; + const modifiedCollectionIDs: IDsToHandle = { shapes: [] }; + + // Iterate over frames + const totalFrames = frameTo - frameFrom + 1; + for (let frame = frameFrom; frame <= frameTo; frame++) { + const frameData = await Object.getPrototypeOf(instance).frames + .get.implementation.call(instance, frame); + + // Ignore deleted frames + if (!frameData.deleted) { + // Get annotations according to filter + const states: ObjectState[] = await getAnnotations(instance, frame, false, filters, null); + const frameCollectionIDs = states.reduce((acc, val) => { + if (val.objectType === ObjectType.SHAPE) { + acc.shapes.push(val.clientID as number); + } + return acc; + }, { shapes: [] }); + + // Pick frame collection according to filtered IDs + let frameCollection = { + shapes: exportedCollection.shapes.filter((shape) => frameCollectionIDs + .shapes.includes(shape.clientID as number)), + }; + + // Iterate over actions on each not deleted frame + for await (const action of actionsChain) { + ({ collection: frameCollection } = await action.run(instance, { + collection: frameCollection, + frameData: { + width: frameData.width, + height: frameData.height, + number: frameData.number, + }, + })); + } + + const progress = Math.ceil(+(((frame - frameFrom) / totalFrames) * 100)); + if (wrappedOnProgress('Actions are running', progress)) { + return; + } + + handledCollection.shapes.push(...frameCollection.shapes.map((shape) => omit(shape, 'id'))); + modifiedCollectionIDs.shapes.push(...frameCollectionIDs.shapes); + } + } + + if (await showMessageWithPause('Commiting handled objects', 100, 1500)) { + return; + } + + exportedCollection.shapes.forEach((shape) => { + if (Number.isInteger(shape.clientID) && !modifiedCollectionIDs.shapes.includes(shape.clientID as number)) { + handledCollection.shapes.push(shape); + } + }); + + await instance.annotations.clear(); + await instance.annotations.import({ + ...handledCollection, + tracks: exportedCollection.tracks, + tags: exportedCollection.tags, + }); + } finally { + wrappedOnProgress('Finalizing', 100); + await Promise.all(actionsChain.map((action) => action.destroy())); + } +} + +export async function runActions( + instance: Job | Task, + actionsChain: BaseSingleFrameAction[], + actionParameters: Record[], + frameFrom: number, + frameTo: number, + filters: string[], + onProgress: ( + message: string, + progress: number, + ) => boolean, +): Promise { + // there will be another function for MultiFrameChains (actions handling tracks) + return runSingleFrameChain( + instance, + actionsChain, + actionParameters, + frameFrom, + frameTo, + filters, + onProgress, + ); +} diff --git a/cvat-core/src/annotations-collection.ts b/cvat-core/src/annotations-collection.ts index 20e0b2c314f9..8cd0d88a73f6 100644 --- a/cvat-core/src/annotations-collection.ts +++ b/cvat-core/src/annotations-collection.ts @@ -5,9 +5,10 @@ import { shapeFactory, trackFactory, Track, Shape, Tag, - MaskShape, BasicInjection, RawShapeData, - RawTrackData, RawTagData, SkeletonShape, SkeletonTrack, PolygonShape, + MaskShape, BasicInjection, + SkeletonShape, SkeletonTrack, PolygonShape, } from './annotations-objects'; +import { SerializedCollection, SerializedTrack } from './server-response-types'; import AnnotationsFilter from './annotations-filter'; import { checkObjectType } from './common'; import Statistics from './statistics'; @@ -21,12 +22,6 @@ import { } from './enums'; import AnnotationHistory from './annotations-history'; -interface RawCollection { - tags: RawTagData[], - shapes: RawShapeData[], - tracks: RawTrackData[], -} - interface ImportedCollection { tags: Tag[], shapes: Shape[], @@ -61,7 +56,7 @@ export default class Collection { public flush: boolean; private stopFrame: number; private frameMeta: any; - private labels: Record + private labels: Record; private annotationsFilter: AnnotationsFilter; private history: AnnotationHistory; private shapes: Record; @@ -109,7 +104,7 @@ export default class Collection { }; } - import(data: RawCollection): ImportedCollection { + import(data: SerializedCollection): ImportedCollection { const result = { tags: [], shapes: [], @@ -152,7 +147,7 @@ export default class Collection { return result; } - export(): RawCollection { + export(): SerializedCollection { const data = { tracks: this.tracks.filter((track) => !track.removed).map((track) => track.toJSON()), shapes: Object.values(this.shapes) @@ -174,7 +169,7 @@ export default class Collection { return data; } - get(frame: number, allTracks: boolean, filters: string[]): ObjectState[] { + public get(frame: number, allTracks: boolean, filters: string[]): ObjectState[] { const { tracks } = this; const shapes = this.shapes[frame] || []; const tags = this.tags[frame] || []; @@ -208,8 +203,8 @@ export default class Collection { return objectStates; } - _mergeInternal(objectsForMerge: (Track | Shape)[], shapeType: ShapeType, label: Label): RawTrackData { - const keyframes: Record = {}; // frame: position + _mergeInternal(objectsForMerge: (Track | Shape)[], shapeType: ShapeType, label: Label): SerializedTrack { + const keyframes: Record = {}; // frame: position const elements = {}; // element_sublabel_id: [element], each sublabel will be merged recursively if (!Object.values(ShapeType).includes(shapeType)) { @@ -448,7 +443,7 @@ export default class Collection { ); } - _splitInternal(objectState: ObjectState, object: Track, frame: number): RawTrackData[] { + _splitInternal(objectState: ObjectState, object: Track, frame: number): SerializedTrack[] { const labelAttributes = labelAttributesAsDict(object.label); // first clear all server ids which may exist in the object being splitted const copy = trackFactory(object.toJSON(), -1, this.injection); diff --git a/cvat-core/src/annotations-objects.ts b/cvat-core/src/annotations-objects.ts index 35195e9ea21c..f0da41eba837 100644 --- a/cvat-core/src/annotations-objects.ts +++ b/cvat-core/src/annotations-objects.ts @@ -12,6 +12,7 @@ import { colors, Source, ShapeType, ObjectType, HistoryActions, DimensionType, } from './enums'; import AnnotationHistory from './annotations-history'; +import { SerializedShape, SerializedTrack, SerializedTag } from './server-response-types'; import { checkNumberOfPoints, attrsAsAnObject, checkShapeArea, mask2Rle, rle2Mask, computeWrappingBox, findAngleDiff, rotatePoint, validateAttributeValue, cropMask, @@ -492,31 +493,6 @@ class Drawn extends Annotation { } } -export interface RawShapeData { - id?: number; - clientID?: number; - label_id: number; - group: number; - frame: number; - source: Source; - attributes: { spec_id: number; value: string }[]; - elements: { - id?: number; - attributes: RawTrackData['attributes']; - label_id: number; - occluded: boolean; - outside: boolean; - points: number[]; - type: ShapeType; - }[]; - occluded: boolean; - outside?: boolean; // only for skeleton elements - points?: number[]; - rotation: number; - z_order: number; - type: ShapeType; -} - export class Shape extends Drawn { public points: number[]; public occluded: boolean; @@ -524,7 +500,7 @@ export class Shape extends Drawn { public rotation: number; public zOrder: number; - constructor(data: RawShapeData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedShape, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.points = data.points; this.rotation = data.rotation || 0; @@ -534,8 +510,8 @@ export class Shape extends Drawn { } // Method is used to export data to the server - public toJSON(): RawShapeData { - const result: RawShapeData = { + public toJSON(): SerializedShape { + const result: SerializedShape = { type: this.shapeType, clientID: this.clientID, occluded: this.occluded, @@ -809,28 +785,6 @@ export class Shape extends Drawn { } } -export interface RawTrackData { - id?: number; - clientID?: number; - label_id: number; - group: number; - frame: number; - source: Source; - attributes: { spec_id: number; value: string }[]; - shapes: { - attributes: RawTrackData['attributes']; - id?: number; - points?: number[]; - frame: number; - occluded: boolean; - outside: boolean; - rotation: number; - type: ShapeType; - z_order: number; - }[]; - elements?: RawTrackData[]; -} - interface TrackedShape { serverID?: number; occluded: boolean; @@ -851,7 +805,7 @@ export interface InterpolatedPosition { export class Track extends Drawn { public shapes: Record; - constructor(data: RawTrackData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedTrack, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.shapes = data.shapes.reduce((shapeAccumulator, value) => { shapeAccumulator[value.frame] = { @@ -872,10 +826,10 @@ export class Track extends Drawn { } // Method is used to export data to the server - public toJSON(): RawTrackData { + public toJSON(): SerializedTrack { const labelAttributes = attrsAsAnObject(this.label.attributes); - const result: RawTrackData = { + const result: SerializedTrack = { clientID: this.clientID, label_id: this.label.id, frame: this.frame, @@ -1032,7 +986,7 @@ export class Track extends Drawn { return result; } - public updateServerID(body: RawTrackData): void { + public updateServerID(body: SerializedTrack): void { this.serverID = body.id; for (const shape of body.shapes) { this.shapes[shape.frame].serverID = shape.id; @@ -1432,20 +1386,10 @@ export class Track extends Drawn { } } -export interface RawTagData { - id?: number; - clientID?: number; - label_id: number; - frame: number; - group: number; - source: Source; - attributes: { spec_id: number; value: string }[]; -} - export class Tag extends Annotation { // Method is used to export data to the server - public toJSON(): RawTagData { - const result: RawTagData = { + public toJSON(): SerializedTag { + const result: SerializedTag = { clientID: this.clientID, frame: this.frame, label_id: this.label.id, @@ -1536,7 +1480,7 @@ export class Tag extends Annotation { } export class RectangleShape extends Shape { - constructor(data: RawShapeData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedShape, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.shapeType = ShapeType.RECTANGLE; this.pinned = false; @@ -1560,7 +1504,7 @@ export class RectangleShape extends Shape { } export class EllipseShape extends Shape { - constructor(data: RawShapeData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedShape, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.shapeType = ShapeType.ELLIPSE; this.pinned = false; @@ -1616,14 +1560,14 @@ export class EllipseShape extends Shape { } class PolyShape extends Shape { - constructor(data: RawShapeData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedShape, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.rotation = 0; // is not supported } } export class PolygonShape extends PolyShape { - constructor(data: RawShapeData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedShape, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.shapeType = ShapeType.POLYGON; checkNumberOfPoints(this.shapeType, this.points); @@ -1694,7 +1638,7 @@ export class PolygonShape extends PolyShape { } export class PolylineShape extends PolyShape { - constructor(data: RawShapeData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedShape, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.shapeType = ShapeType.POLYLINE; checkNumberOfPoints(this.shapeType, this.points); @@ -1738,7 +1682,7 @@ export class PolylineShape extends PolyShape { } export class PointsShape extends PolyShape { - constructor(data: RawShapeData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedShape, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.shapeType = ShapeType.POINTS; checkNumberOfPoints(this.shapeType, this.points); @@ -1763,7 +1707,7 @@ interface Point2D { } export class CuboidShape extends Shape { - constructor(data: RawShapeData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedShape, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.rotation = 0; this.shapeType = ShapeType.CUBOID; @@ -1888,7 +1832,7 @@ export class CuboidShape extends Shape { export class SkeletonShape extends Shape { public elements: Shape[]; - constructor(data: RawShapeData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedShape, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.shapeType = ShapeType.SKELETON; this.pinned = false; @@ -1947,7 +1891,7 @@ export class SkeletonShape extends Shape { } // Method is used to export data to the server - public toJSON(): RawShapeData { + public toJSON(): SerializedShape { const elements = this.elements.map((element) => ({ ...element.toJSON(), outside: element.outside, @@ -1959,7 +1903,7 @@ export class SkeletonShape extends Shape { elements: undefined, })); - const result: RawShapeData = { + const result: SerializedShape = { type: this.shapeType, clientID: this.clientID, occluded: elements.every((el) => el.occluded), @@ -2030,7 +1974,7 @@ export class SkeletonShape extends Shape { }; } - public updateServerID(body: RawShapeData): void { + public updateServerID(body: SerializedShape): void { Shape.prototype.updateServerID.call(this, body); for (const element of body.elements) { const thisElement = this.elements.find((_element: Shape) => _element.label.id === element.label_id); @@ -2339,7 +2283,7 @@ MaskShape.prototype.get = function (frame) { }; export class RectangleTrack extends Track { - constructor(data: RawTrackData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedTrack, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.shapeType = ShapeType.RECTANGLE; this.pinned = false; @@ -2364,7 +2308,7 @@ export class RectangleTrack extends Track { } export class EllipseTrack extends Track { - constructor(data: RawTrackData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedTrack, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.shapeType = ShapeType.ELLIPSE; this.pinned = false; @@ -2390,7 +2334,7 @@ export class EllipseTrack extends Track { } class PolyTrack extends Track { - constructor(data: RawTrackData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedTrack, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); for (const shape of Object.values(this.shapes)) { shape.rotation = 0; // is not supported @@ -2661,7 +2605,7 @@ class PolyTrack extends Track { } export class PolygonTrack extends PolyTrack { - constructor(data: RawTrackData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedTrack, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.shapeType = ShapeType.POLYGON; for (const shape of Object.values(this.shapes)) { @@ -2690,7 +2634,7 @@ export class PolygonTrack extends PolyTrack { } export class PolylineTrack extends PolyTrack { - constructor(data: RawTrackData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedTrack, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.shapeType = ShapeType.POLYLINE; for (const shape of Object.values(this.shapes)) { @@ -2700,7 +2644,7 @@ export class PolylineTrack extends PolyTrack { } export class PointsTrack extends PolyTrack { - constructor(data: RawTrackData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedTrack, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.shapeType = ShapeType.POINTS; for (const shape of Object.values(this.shapes)) { @@ -2733,7 +2677,7 @@ export class PointsTrack extends PolyTrack { } export class CuboidTrack extends Track { - constructor(data: RawTrackData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedTrack, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.shapeType = ShapeType.CUBOID; this.pinned = false; @@ -2793,7 +2737,7 @@ export class CuboidTrack extends Track { export class SkeletonTrack extends Track { public elements: Track[]; - constructor(data: RawTrackData, clientID: number, color: string, injection: AnnotationInjection) { + constructor(data: SerializedTrack, clientID: number, color: string, injection: AnnotationInjection) { super(data, clientID, color, injection); this.shapeType = ShapeType.SKELETON; @@ -2803,7 +2747,7 @@ export class SkeletonTrack extends Track { this.readOnlyFields = ['points', 'label', 'occluded', 'outside']; this.pinned = false; - this.elements = data.elements.map((element: RawTrackData['elements'][0]) => ( + this.elements = data.elements.map((element: SerializedTrack['elements'][0]) => ( /* eslint-disable-next-line @typescript-eslint/no-use-before-define */ trackFactory({ ...element, @@ -2819,7 +2763,7 @@ export class SkeletonTrack extends Track { )).sort((a: Annotation, b: Annotation) => a.label.id - b.label.id) as any as Track[]; } - public updateServerID(body: RawTrackData): void { + public updateServerID(body: SerializedTrack): void { Track.prototype.updateServerID.call(this, body); for (const element of body.elements) { const thisElement = this.elements.find((_element: Track) => _element.label.id === element.label_id); @@ -2899,8 +2843,8 @@ export class SkeletonTrack extends Track { } // Method is used to export data to the server - public toJSON(): RawTrackData { - const result: RawTrackData = Track.prototype.toJSON.call(this); + public toJSON(): SerializedTrack { + const result: SerializedTrack = Track.prototype.toJSON.call(this); result.elements = this.elements.map((el) => ({ ...el.toJSON(), elements: undefined, @@ -3153,7 +3097,7 @@ Object.defineProperty(EllipseTrack, 'distance', { value: EllipseShape.distance } Object.defineProperty(CuboidTrack, 'distance', { value: CuboidShape.distance }); Object.defineProperty(SkeletonTrack, 'distance', { value: SkeletonShape.distance }); -export function shapeFactory(data: RawShapeData, clientID: number, injection: AnnotationInjection): Shape { +export function shapeFactory(data: SerializedShape, clientID: number, injection: AnnotationInjection): Shape { const { type } = data; const color = colors[clientID % colors.length]; @@ -3190,7 +3134,7 @@ export function shapeFactory(data: RawShapeData, clientID: number, injection: An return shapeModel; } -export function trackFactory(trackData: RawTrackData, clientID: number, injection: AnnotationInjection): Track { +export function trackFactory(trackData: SerializedTrack, clientID: number, injection: AnnotationInjection): Track { if (trackData.shapes.length) { const { type } = trackData.shapes[0]; const color = colors[clientID % colors.length]; diff --git a/cvat-core/src/annotations.ts b/cvat-core/src/annotations.ts index cf69d8f199c8..61d73c2ca65c 100644 --- a/cvat-core/src/annotations.ts +++ b/cvat-core/src/annotations.ts @@ -5,19 +5,20 @@ import { Storage } from './storage'; import serverProxy from './server-proxy'; -import Collection from './annotations-collection'; +import AnnotationsCollection from './annotations-collection'; import AnnotationsSaver from './annotations-saver'; import AnnotationsHistory from './annotations-history'; import { checkObjectType } from './common'; import Project from './project'; import { Task, Job } from './session'; -import { ScriptingError, DataError, ArgumentError } from './exceptions'; +import { ScriptingError, ArgumentError } from './exceptions'; import { getDeletedFrames } from './frames'; -const jobCache = new WeakMap(); -const taskCache = new WeakMap(); +type WeakMapItem = { collection: AnnotationsCollection, saver: AnnotationsSaver, history: AnnotationsHistory }; +const jobCache = new WeakMap(); +const taskCache = new WeakMap(); -function getCache(sessionType) { +function getCache(sessionType): WeakMap { if (sessionType === 'task') { return taskCache; } @@ -29,6 +30,33 @@ function getCache(sessionType) { throw new ScriptingError(`Unknown session type was received ${sessionType}`); } +class InstanceNotInitializedError extends Error {} + +function getSession(session): WeakMapItem { + const sessionType = session instanceof Task ? 'task' : 'job'; + const cache = getCache(sessionType); + + if (cache.has(session)) { + return cache.get(session); + } + + throw new InstanceNotInitializedError( + 'Session has not been initialized yet. Call annotations.get() or annotations.clear(true) before', + ); +} + +export function getCollection(session): AnnotationsCollection { + return getSession(session).collection; +} + +export function getSaver(session): AnnotationsSaver { + return getSession(session).saver; +} + +export function getHistory(session): AnnotationsHistory { + return getSession(session).history; +} + function processGroundTruthAnnotations(rawAnnotations, groundTruthAnnotations) { const annotations = [].concat( groundTruthAnnotations.shapes, @@ -59,7 +87,7 @@ function addJobId(rawAnnotations, jobID) { return result; } -async function getAnnotationsFromServer(session, groundTruthJobId) { +async function getAnnotationsFromServer(session, groundTruthJobId): Promise { const sessionType = session instanceof Task ? 'task' : 'job'; const cache = getCache(sessionType); @@ -82,7 +110,7 @@ async function getAnnotationsFromServer(session, groundTruthJobId) { frameMeta.deleted_frames = await getDeletedFrames(sessionType, session.id); const history = new AnnotationsHistory(); - const collection = new Collection({ + const collection = new AnnotationsCollection({ labels: session.labels || session.task.labels, history, stopFrame, @@ -97,7 +125,7 @@ async function getAnnotationsFromServer(session, groundTruthJobId) { } } -export async function clearCache(session) { +export function clearCache(session): void { const sessionType = session instanceof Task ? 'task' : 'job'; const cache = getCache(sessionType); @@ -106,213 +134,30 @@ export async function clearCache(session) { } } -export async function getAnnotations(session, frame, allTracks, filters, groundTruthJobId) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).collection.get(frame, allTracks, filters); - } - - await getAnnotationsFromServer(session, groundTruthJobId); - return cache.get(session).collection.get(frame, allTracks, filters); -} - -export async function saveAnnotations(session, onUpdate) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - await cache.get(session).saver.save(onUpdate); - } - - // If a collection wasn't uploaded, than it wasn't changed, finally we shouldn't save it -} - -export function searchAnnotations(session, filters, frameFrom, frameTo) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).collection.search(filters, frameFrom, frameTo); - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} - -export function searchEmptyFrame(session, frameFrom, frameTo) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).collection.searchEmpty(frameFrom, frameTo); - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} - -export function mergeAnnotations(session, objectStates) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).collection.merge(objectStates); - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} - -export function splitAnnotations(session, objectState, frame) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).collection.split(objectState, frame); - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} - -export function groupAnnotations(session, objectStates, reset) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).collection.group(objectStates, reset); - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} - -export function joinAnnotations(session, objectStates, points) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).collection.join(objectStates, points); - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} - -export function sliceAnnotations(session, state, results) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).collection.slice(state, results); - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} - -export function hasUnsavedChanges(session) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); +export async function getAnnotations(session, frame, allTracks, filters, groundTruthJobId): Promise> { + try { + return getCollection(session).get(frame, allTracks, filters); + } catch (error) { + if (error instanceof InstanceNotInitializedError) { + await getAnnotationsFromServer(session, groundTruthJobId); + return getCollection(session).get(frame, allTracks, filters); + } - if (cache.has(session)) { - return cache.get(session).saver.hasUnsavedChanges(); + throw error; } - - return false; } -export async function clearAnnotations(session, reload, startframe, endframe, delTrackKeyframesOnly) { +export async function clearAnnotations(session, reload, startframe, endframe, delTrackKeyframesOnly): Promise { checkObjectType('reload', reload, 'boolean', null); const sessionType = session instanceof Task ? 'task' : 'job'; const cache = getCache(sessionType); - if (cache.has(session)) { - cache.get(session).collection.clear(startframe, endframe, delTrackKeyframesOnly); - } - if (reload) { cache.delete(session); - await getAnnotationsFromServer(session); - } -} - -export function annotationsStatistics(session) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - if (sessionType === 'job') { - return cache.get(session).collection.statistics({ jobID: session.id }); - } - return cache.get(session).collection.statistics(); - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} - -export function putAnnotations(session, objectStates) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).collection.put(objectStates); + return getAnnotationsFromServer(session); } - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} - -export function selectObject(session, objectStates, x, y) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).collection.select(objectStates, x, y); - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} - -export function importCollection(session, data) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - // eslint-disable-next-line no-unsanitized/method - return cache.get(session).collection.import(data); - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} - -export function exportCollection(session) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).collection.export(); - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); + return getCollection(session).clear(startframe, endframe, delTrackKeyframesOnly); } export async function exportDataset( @@ -322,7 +167,7 @@ export async function exportDataset( useDefaultSettings: boolean, targetStorage: Storage, name?: string, -) { +): Promise { if (!(instance instanceof Task || instance instanceof Project || instance instanceof Job)) { throw new ArgumentError('A dataset can only be created from a job, task or project'); } @@ -413,81 +258,3 @@ export function importDataset( adjustedOptions, ); } - -export function getHistory(session) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).history; - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} - -export async function undoActions(session, count) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).history.undo(count); - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} - -export async function redoActions(session, count) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).history.redo(count); - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} - -export function freezeHistory(session, frozen) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).history.freeze(frozen); - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} - -export function clearActions(session) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).history.clear(); - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} - -export function getActions(session) { - const sessionType = session instanceof Task ? 'task' : 'job'; - const cache = getCache(sessionType); - - if (cache.has(session)) { - return cache.get(session).history.get(); - } - - throw new DataError( - 'Collection has not been initialized yet. Call annotations.get() or annotations.clear(true) before', - ); -} diff --git a/cvat-core/src/api-implementation.ts b/cvat-core/src/api-implementation.ts index fedd1802eede..6e3adb7e76a6 100644 --- a/cvat-core/src/api-implementation.ts +++ b/cvat-core/src/api-implementation.ts @@ -33,39 +33,44 @@ import QualityConflict from './quality-conflict'; import QualitySettings from './quality-settings'; import { FramesMetaData } from './frames'; import AnalyticsReport from './analytics-report'; +import { listActions, registerAction, runActions } from './annotations-actions'; +import CVATCore from '.'; -export default function implementAPI(cvat) { - cvat.plugins.list.implementation = PluginRegistry.list; - cvat.plugins.register.implementation = PluginRegistry.register.bind(cvat); - - cvat.lambda.list.implementation = lambdaManager.list.bind(lambdaManager); - cvat.lambda.run.implementation = lambdaManager.run.bind(lambdaManager); - cvat.lambda.call.implementation = lambdaManager.call.bind(lambdaManager); - cvat.lambda.cancel.implementation = lambdaManager.cancel.bind(lambdaManager); - cvat.lambda.listen.implementation = lambdaManager.listen.bind(lambdaManager); - cvat.lambda.requests.implementation = lambdaManager.requests.bind(lambdaManager); +function implementationMixin(func: Function, implementation: Function): void { + Object.assign(func, { implementation }); +} - cvat.server.about.implementation = async () => { +export default function implementAPI(cvat: CVATCore): CVATCore { + implementationMixin(cvat.plugins.list, PluginRegistry.list); + implementationMixin(cvat.plugins.register, PluginRegistry.register.bind(cvat)); + implementationMixin(cvat.actions.list, listActions); + implementationMixin(cvat.actions.register, registerAction); + implementationMixin(cvat.actions.run, runActions); + + implementationMixin(cvat.lambda.list, lambdaManager.list.bind(lambdaManager)); + implementationMixin(cvat.lambda.run, lambdaManager.run.bind(lambdaManager)); + implementationMixin(cvat.lambda.call, lambdaManager.call.bind(lambdaManager)); + implementationMixin(cvat.lambda.cancel, lambdaManager.cancel.bind(lambdaManager)); + implementationMixin(cvat.lambda.listen, lambdaManager.listen.bind(lambdaManager)); + implementationMixin(cvat.lambda.requests, lambdaManager.requests.bind(lambdaManager)); + + implementationMixin(cvat.server.about, async () => { const result = await serverProxy.server.about(); return result; - }; - - cvat.server.share.implementation = async (directory: string, searchPrefix?: string) => { + }); + implementationMixin(cvat.server.share, async (directory: string, searchPrefix?: string) => { const result = await serverProxy.server.share(directory, searchPrefix); return result.map((item) => ({ ...omit(item, 'mime_type'), mimeType: item.mime_type })); - }; - - cvat.server.formats.implementation = async () => { + }); + implementationMixin(cvat.server.formats, async () => { const result = await serverProxy.server.formats(); return new AnnotationFormats(result); - }; - - cvat.server.userAgreements.implementation = async () => { + }); + implementationMixin(cvat.server.userAgreements, async () => { const result = await serverProxy.server.userAgreements(); return result; - }; - - cvat.server.register.implementation = async ( + }); + implementationMixin(cvat.server.register, async ( username, firstName, lastName, @@ -83,34 +88,27 @@ export default function implementAPI(cvat) { ); return new User(user); - }; - - cvat.server.login.implementation = async (username, password) => { + }); + implementationMixin(cvat.server.login, async (username, password) => { await serverProxy.server.login(username, password); - }; - - cvat.server.logout.implementation = async () => { + }); + implementationMixin(cvat.server.logout, async () => { await serverProxy.server.logout(); - }; - - cvat.server.changePassword.implementation = async (oldPassword, newPassword1, newPassword2) => { + }); + implementationMixin(cvat.server.changePassword, async (oldPassword, newPassword1, newPassword2) => { await serverProxy.server.changePassword(oldPassword, newPassword1, newPassword2); - }; - - cvat.server.requestPasswordReset.implementation = async (email) => { + }); + implementationMixin(cvat.server.requestPasswordReset, async (email) => { await serverProxy.server.requestPasswordReset(email); - }; - - cvat.server.resetPassword.implementation = async (newPassword1, newPassword2, uid, token) => { + }); + implementationMixin(cvat.server.resetPassword, async (newPassword1, newPassword2, uid, token) => { await serverProxy.server.resetPassword(newPassword1, newPassword2, uid, token); - }; - - cvat.server.authorized.implementation = async () => { + }); + implementationMixin(cvat.server.authorized, async () => { const result = await serverProxy.server.authorized(); return result; - }; - - cvat.server.healthCheck.implementation = async ( + }); + implementationMixin(cvat.server.healthCheck, async ( maxRetries = 1, checkPeriod = 3000, requestTimeout = 5000, @@ -118,38 +116,34 @@ export default function implementAPI(cvat) { ) => { const result = await serverProxy.server.healthCheck(maxRetries, checkPeriod, requestTimeout, progressCallback); return result; - }; - - cvat.server.request.implementation = async (url, data, requestConfig) => { + }); + implementationMixin(cvat.server.request, async (url, data, requestConfig) => { const result = await serverProxy.server.request(url, data, requestConfig); return result; - }; - - cvat.server.setAuthData.implementation = async (response) => { + }); + implementationMixin(cvat.server.setAuthData, async (response) => { const result = await serverProxy.server.setAuthData(response); return result; - }; - - cvat.server.removeAuthData.implementation = async () => { + }); + implementationMixin(cvat.server.removeAuthData, async () => { const result = await serverProxy.server.removeAuthData(); return result; - }; - - cvat.server.installedApps.implementation = async () => { + }); + implementationMixin(cvat.server.installedApps, async () => { const result = await serverProxy.server.installedApps(); return result; - }; + }); - cvat.assets.create.implementation = async (file: File, guideId: number): Promise => { + implementationMixin(cvat.assets.create, async (file: File, guideId: number): Promise => { if (!(file instanceof File)) { throw new ArgumentError('Assets expect a file'); } const result = await serverProxy.assets.create(file, guideId); return result; - }; + }); - cvat.users.get.implementation = async (filter) => { + implementationMixin(cvat.users.get, async (filter) => { checkFilter(filter, { id: isInteger, is_active: isBoolean, @@ -174,9 +168,9 @@ export default function implementAPI(cvat) { users = users.map((user) => new User(user)); return users; - }; + }); - cvat.jobs.get.implementation = async (query) => { + implementationMixin(cvat.jobs.get, async (query) => { checkFilter(query, { page: isInteger, filter: isString, @@ -215,9 +209,9 @@ export default function implementAPI(cvat) { const jobs = jobsData.results.map((jobData) => new Job(jobData)); jobs.count = jobsData.count; return jobs; - }; + }); - cvat.tasks.get.implementation = async (filter) => { + implementationMixin(cvat.tasks.get, async (filter) => { checkFilter(filter, { page: isInteger, projectId: isInteger, @@ -264,9 +258,9 @@ export default function implementAPI(cvat) { tasks.count = tasksData.count; return tasks; - }; + }); - cvat.projects.get.implementation = async (filter) => { + implementationMixin(cvat.projects.get, async (filter) => { checkFilter(filter, { id: isInteger, page: isInteger, @@ -298,12 +292,12 @@ export default function implementAPI(cvat) { projects.count = projectsData.count; return projects; - }; + }); - cvat.projects.searchNames - .implementation = async (search, limit) => serverProxy.projects.searchNames(search, limit); + implementationMixin(cvat.projects.searchNames, + async (search, limit) => serverProxy.projects.searchNames(search, limit)); - cvat.cloudStorages.get.implementation = async (filter) => { + implementationMixin(cvat.cloudStorages.get, async (filter) => { checkFilter(filter, { page: isInteger, filter: isString, @@ -323,9 +317,9 @@ export default function implementAPI(cvat) { const cloudStorages = cloudStoragesData.map((cloudStorage) => new CloudStorage(cloudStorage)); cloudStorages.count = cloudStoragesData.count; return cloudStorages; - }; + }); - cvat.organizations.get.implementation = async (filter) => { + implementationMixin(cvat.organizations.get, async (filter) => { checkFilter(filter, { search: isString, filter: isString, @@ -334,24 +328,21 @@ export default function implementAPI(cvat) { const organizationsData = await serverProxy.organizations.get(filter); const organizations = organizationsData.map((organizationData) => new Organization(organizationData)); return organizations; - }; - - cvat.organizations.activate.implementation = (organization) => { + }); + implementationMixin(cvat.organizations.activate, (organization) => { checkObjectType('organization', organization, null, Organization); config.organization = { organizationID: organization.id, organizationSlug: organization.slug, }; - }; - - cvat.organizations.deactivate.implementation = async () => { + }); + implementationMixin(cvat.organizations.deactivate, async () => { config.organization = { organizationID: null, organizationSlug: null, }; - }; - - cvat.organizations.acceptInvitation.implementation = async ( + }); + implementationMixin(cvat.organizations.acceptInvitation, async ( username, firstName, lastName, @@ -371,9 +362,9 @@ export default function implementAPI(cvat) { ); return orgSlug; - }; + }); - cvat.webhooks.get.implementation = async (filter) => { + implementationMixin(cvat.webhooks.get, async (filter) => { checkFilter(filter, { page: isInteger, id: isInteger, @@ -391,9 +382,9 @@ export default function implementAPI(cvat) { const webhooks = webhooksData.map((webhookData) => new Webhook(webhookData)); webhooks.count = webhooksData.count; return webhooks; - }; + }); - cvat.analytics.quality.reports.implementation = async (filter) => { + implementationMixin(cvat.analytics.quality.reports, async (filter) => { let updatedParams: Record = {}; if ('taskId' in filter) { updatedParams = { @@ -412,9 +403,8 @@ export default function implementAPI(cvat) { const reportsData = await serverProxy.analytics.quality.reports(updatedParams); return reportsData.map((report) => new QualityReport({ ...report })); - }; - - cvat.analytics.quality.conflicts.implementation = async (filter) => { + }); + implementationMixin(cvat.analytics.quality.conflicts, async (filter) => { let updatedParams: Record = {}; if ('reportId' in filter) { updatedParams = { @@ -425,19 +415,12 @@ export default function implementAPI(cvat) { const reportsData = await serverProxy.analytics.quality.conflicts(updatedParams); return reportsData.map((conflict) => new QualityConflict({ ...conflict })); - }; - - cvat.analytics.quality.settings.get.implementation = async (taskID: number) => { + }); + implementationMixin(cvat.analytics.quality.settings.get, async (taskID: number) => { const settings = await serverProxy.analytics.quality.settings.get(taskID); return new QualitySettings({ ...settings }); - }; - - cvat.frames.getMeta.implementation = async (type, id) => { - const result = await serverProxy.frames.getMeta(type, id); - return new FramesMetaData({ ...result }); - }; - - cvat.analytics.performance.reports.implementation = async (filter) => { + }); + implementationMixin(cvat.analytics.performance.reports, async (filter) => { checkFilter(filter, { jobID: isInteger, taskID: isInteger, @@ -468,7 +451,11 @@ export default function implementAPI(cvat) { const reportData = await serverProxy.analytics.performance.reports(updatedParams); return new AnalyticsReport(reportData); - }; + }); + implementationMixin(cvat.frames.getMeta, async (type, id) => { + const result = await serverProxy.frames.getMeta(type, id); + return new FramesMetaData({ ...result }); + }); return cvat; } diff --git a/cvat-core/src/api.ts b/cvat-core/src/api.ts index 6cdd57187ff5..02f44ea3e238 100644 --- a/cvat-core/src/api.ts +++ b/cvat-core/src/api.ts @@ -21,6 +21,7 @@ import CloudStorage from './cloud-storage'; import Organization from './organization'; import Webhook from './webhook'; import AnnotationGuide from './guide'; +import BaseSingleFrameAction from './annotations-actions'; import * as enums from './enums'; @@ -34,9 +35,10 @@ import pjson from '../package.json'; import config from './config'; import implementAPI from './api-implementation'; +import CVATCore from '.'; -function build() { - const cvat = { +function build(): CVATCore { + const cvat: CVATCore = { server: { async about() { const result = await PluginRegistry.apiWrapper(cvat.server.about); @@ -178,6 +180,40 @@ function build() { return result; }, }, + actions: { + async list() { + const result = await PluginRegistry.apiWrapper(cvat.actions.list); + return result; + }, + async register(action: BaseSingleFrameAction) { + const result = await PluginRegistry.apiWrapper(cvat.actions.register, action); + return result; + }, + async run( + instance: Job | Task, + actionsChain: BaseSingleFrameAction[], + actionsParameters: Record[], + frameFrom: number, + frameTo: number, + filters: string[], + onProgress: ( + message: string, + progress: number, + ) => boolean, + ) { + const result = await PluginRegistry.apiWrapper( + cvat.actions.run, + instance, + actionsChain, + actionsParameters, + frameFrom, + frameTo, + filters, + onProgress, + ); + return result; + }, + }, lambda: { async list() { const result = await PluginRegistry.apiWrapper(cvat.lambda.list); @@ -329,6 +365,7 @@ function build() { Organization, Webhook, AnnotationGuide, + BaseSingleFrameAction, }, utils: { mask2Rle, diff --git a/cvat-core/src/comment.ts b/cvat-core/src/comment.ts index 347e23f81094..1989c25e9900 100644 --- a/cvat-core/src/comment.ts +++ b/cvat-core/src/comment.ts @@ -14,7 +14,7 @@ export interface RawCommentData { owner?: any; } -interface SerializedCommentData extends RawCommentData{ +interface SerializedCommentData extends RawCommentData { owner_id?: number; issue?: number; } diff --git a/cvat-core/src/download.worker.js b/cvat-core/src/download.worker.ts similarity index 100% rename from cvat-core/src/download.worker.js rename to cvat-core/src/download.worker.ts diff --git a/cvat-core/src/index.ts b/cvat-core/src/index.ts new file mode 100644 index 000000000000..559fda211692 --- /dev/null +++ b/cvat-core/src/index.ts @@ -0,0 +1,157 @@ +// Copyright (C) 2023 CVAT.ai Corporation +// +// SPDX-License-Identifier: MIT + +import PluginRegistry from './plugins'; +import serverProxy from './server-proxy'; +import lambdaManager from './lambda-manager'; +import { AnnotationFormats } from './annotation-formats'; +import loggerStorage from './logger-storage'; +import * as enums from './enums'; +import config from './config'; +import { mask2Rle, rle2Mask } from './object-utils'; +import User from './user'; +import Project from './project'; +import { Job, Task } from './session'; +import { EventLogger } from './log'; +import { Attribute, Label } from './labels'; +import Statistics from './statistics'; +import ObjectState from './object-state'; +import MLModel from './ml-model'; +import Issue from './issue'; +import Comment from './comment'; +import { FrameData } from './frames'; +import CloudStorage from './cloud-storage'; +import Organization from './organization'; +import Webhook from './webhook'; +import AnnotationGuide from './guide'; +import BaseSingleFrameAction, { listActions, registerAction, runActions } from './annotations-actions'; +import { + ArgumentError, DataError, Exception, ScriptingError, ServerError, +} from './exceptions'; + +export default interface CVATCore { + plugins: { + list: typeof PluginRegistry.list; + register: typeof PluginRegistry.register; + }; + lambda: { + list: typeof lambdaManager.list; + run: typeof lambdaManager.run; + call: typeof lambdaManager.call; + cancel: typeof lambdaManager.cancel; + listen: typeof lambdaManager.listen; + requests: typeof lambdaManager.requests; + }; + server: { + about: typeof serverProxy.server.about; + share: (dir: string) => Promise<{ + mimeType: string; + name: string; + type: enums.ShareFileType; + }[]>; + formats: () => Promise; + userAgreements: typeof serverProxy.server.userAgreements, + register: any; // TODO: add types later + login: any; + logout: any; + changePassword: any; + requestPasswordReset: any; + resetPassword: any; + authorized: any; + healthCheck: any; + request: any; + setAuthData: any; + removeAuthData: any; + installedApps: any; + }; + assets: { + create: any; + }; + users: { + get: any; + }; + jobs: { + get: any; + }; + tasks: { + get: any; + } + projects: { + get: any; + searchNames: any; + }; + cloudStorages: { + get: any; + }; + organizations: { + get: any; + activate: any; + deactivate: any; + acceptInvitation: any; + }; + webhooks: { + get: any; + }; + analytics: { + quality: { + reports: any; + conflicts: any; + settings: any; + }; + performance: { + reports: any; + }; + }; + frames: { + getMeta: any; + }; + actions: { + list: typeof listActions; + register: typeof registerAction; + run: typeof runActions; + }; + logger: typeof loggerStorage; + config: { + backendAPI: typeof config.backendAPI; + origin: typeof config.origin; + uploadChunkSize: typeof config.uploadChunkSize; + removeUnderlyingMaskPixels: typeof config.removeUnderlyingMaskPixels; + onOrganizationChange: typeof config.onOrganizationChange; + }, + client: { + version: string; + }; + enums, + exceptions: { + Exception: typeof Exception, + ArgumentError: typeof ArgumentError, + DataError: typeof DataError, + ScriptingError: typeof ScriptingError, + ServerError: typeof ServerError, + }, + classes: { + User: typeof User; + Project: typeof Project; + Task: typeof Task; + Job: typeof Job; + EventLogger: typeof EventLogger; + Attribute: typeof Attribute; + Label: typeof Label; + Statistics: typeof Statistics; + ObjectState: typeof ObjectState; + MLModel: typeof MLModel; + Comment: typeof Comment; + Issue: typeof Issue; + FrameData: typeof FrameData; + CloudStorage: typeof CloudStorage; + Organization: typeof Organization; + Webhook: typeof Webhook; + AnnotationGuide: typeof AnnotationGuide; + BaseSingleFrameAction: typeof BaseSingleFrameAction; + }; + utils: { + mask2Rle: typeof mask2Rle; + rle2Mask: typeof rle2Mask; + }; +} diff --git a/cvat-core/src/object-state.ts b/cvat-core/src/object-state.ts index 4f7e78ad61c9..8082b33dffb6 100644 --- a/cvat-core/src/object-state.ts +++ b/cvat-core/src/object-state.ts @@ -60,7 +60,7 @@ export interface SerializedData { last: number | null; }; elements?: SerializedData[]; - __internal: { + __internal?: { save: (objectState: ObjectState) => ObjectState; delete: (frame: number, force: boolean) => boolean; }; diff --git a/cvat-core/src/project.ts b/cvat-core/src/project.ts index c4baf381a635..f139a1c4e33d 100644 --- a/cvat-core/src/project.ts +++ b/cvat-core/src/project.ts @@ -33,7 +33,7 @@ export default class Project { public annotations: { exportDataset: CallableFunction; importDataset: CallableFunction; - } + }; constructor(initialData: SerializedProject & { labels?: SerializedLabel[] }) { const data = { diff --git a/cvat-core/src/server-proxy.ts b/cvat-core/src/server-proxy.ts index 3ea3dafae6e7..610dfa479e21 100644 --- a/cvat-core/src/server-proxy.ts +++ b/cvat-core/src/server-proxy.ts @@ -21,7 +21,6 @@ import { Storage } from './storage'; import { RQStatus, StorageLocation, WebhookSourceType } from './enums'; import { isEmail, isResourceURL } from './common'; import config from './config'; -import DownloadWorker from './download.worker'; import { ServerError } from './exceptions'; import { SerializedQualityConflictData } from './quality-conflict'; @@ -192,8 +191,8 @@ function prepareData(details) { } class WorkerWrappedAxios { - constructor(requestInterseptor) { - const worker = new DownloadWorker(requestInterseptor); + constructor() { + const worker = new Worker(new URL('./download.worker', import.meta.url)); const requests = {}; let requestId = 0; diff --git a/cvat-core/src/server-response-types.ts b/cvat-core/src/server-response-types.ts index 9d6c68c8b80b..4cc8a5a1a953 100644 --- a/cvat-core/src/server-response-types.ts +++ b/cvat-core/src/server-response-types.ts @@ -5,7 +5,8 @@ import { ChunkType, DimensionType, JobStage, JobState, JobType, ProjectStatus, - ShareFileType, TaskMode, TaskStatus, StorageLocation, + ShapeType, StorageLocation, + ShareFileType, Source, TaskMode, TaskStatus, } from 'enums'; export interface SerializedAnnotationImporter { @@ -239,3 +240,66 @@ export interface SerializedQualitySettingsData { panoptic_comparison?: boolean; compare_attributes?: boolean; } + +export interface SerializedShape { + id?: number; + clientID?: number; + label_id: number; + group: number; + frame: number; + source: Source; + attributes: { spec_id: number; value: string }[]; + elements: { + id?: number; + attributes: SerializedTrack['attributes']; + label_id: number; + occluded: boolean; + outside: boolean; + points: number[]; + type: ShapeType; + }[]; + occluded: boolean; + outside?: boolean; // only for skeleton elements + points?: number[]; + rotation: number; + z_order: number; + type: ShapeType; +} + +export interface SerializedTrack { + id?: number; + clientID?: number; + label_id: number; + group: number; + frame: number; + source: Source; + attributes: { spec_id: number; value: string }[]; + shapes: { + attributes: SerializedTrack['attributes']; + id?: number; + points?: number[]; + frame: number; + occluded: boolean; + outside: boolean; + rotation: number; + type: ShapeType; + z_order: number; + }[]; + elements?: SerializedTrack[]; +} + +export interface SerializedTag { + id?: number; + clientID?: number; + label_id: number; + frame: number; + group: number; + source: Source; + attributes: { spec_id: number; value: string }[]; +} + +export interface SerializedCollection { + tags: SerializedTag[], + shapes: SerializedShape[], + tracks: SerializedTrack[], +} diff --git a/cvat-core/src/session-implementation.ts b/cvat-core/src/session-implementation.ts index 3d985ede5097..261a29067bbf 100644 --- a/cvat-core/src/session-implementation.ts +++ b/cvat-core/src/session-implementation.ts @@ -26,38 +26,30 @@ import { Label } from './labels'; import { SerializedLabel } from './server-response-types'; import { checkObjectType } from './common'; import { - getAnnotations, putAnnotations, saveAnnotations, - hasUnsavedChanges, searchAnnotations, searchEmptyFrame, - mergeAnnotations, splitAnnotations, groupAnnotations, - joinAnnotations, sliceAnnotations, clearAnnotations, selectObject, - annotationsStatistics, importCollection, exportCollection, - importDataset, exportDataset, undoActions, redoActions, - freezeHistory, clearActions, getActions, - clearCache, getHistory, + getCollection, getSaver, clearAnnotations, getAnnotations, + importDataset, exportDataset, clearCache, getHistory, } from './annotations'; import AnnotationGuide from './guide'; // must be called with task/job context -async function deleteFrameWrapper(jobID, frame) { - const history = getHistory(this); - const redo = async () => { +async function deleteFrameWrapper(jobID, frame): Promise { + const redo = async (): Promise => { deleteFrame(jobID, frame); }; await redo(); - history.do(HistoryActions.REMOVED_FRAME, async () => { + getHistory(this).do(HistoryActions.REMOVED_FRAME, async () => { restoreFrame(jobID, frame); }, redo, [], frame); } -async function restoreFrameWrapper(jobID, frame) { - const history = getHistory(this); - const redo = async () => { +async function restoreFrameWrapper(jobID, frame): Promise { + const redo = async (): Promise => { restoreFrame(jobID, frame); }; await redo(); - history.do(HistoryActions.RESTORED_FRAME, async () => { + getHistory(this).do(HistoryActions.RESTORED_FRAME, async () => { deleteFrame(jobID, frame); }, redo, [], frame); } @@ -257,8 +249,7 @@ export function implementJob(Job) { throw new ArgumentError('The stop frame is out of the job'); } - const result = searchAnnotations(this, filters, frameFrom, frameTo); - return result; + return getCollection(this).search(filters, frameFrom, frameTo); }; Job.prototype.annotations.searchEmpty.implementation = function (frameFrom, frameTo) { @@ -274,43 +265,35 @@ export function implementJob(Job) { throw new ArgumentError('The stop frame is out of the job'); } - const result = searchEmptyFrame(this, frameFrom, frameTo); - return result; + return getCollection(this).searchEmpty(frameFrom, frameTo); }; Job.prototype.annotations.save.implementation = async function (onUpdate) { - const result = await saveAnnotations(this, onUpdate); - return result; + return getSaver(this).save(onUpdate); }; Job.prototype.annotations.merge.implementation = async function (objectStates) { - const result = await mergeAnnotations(this, objectStates); - return result; + return getCollection(this).merge(objectStates); }; Job.prototype.annotations.split.implementation = async function (objectState, frame) { - const result = await splitAnnotations(this, objectState, frame); - return result; + return getCollection(this).split(objectState, frame); }; Job.prototype.annotations.group.implementation = async function (objectStates, reset) { - const result = await groupAnnotations(this, objectStates, reset); - return result; + return getCollection(this).group(objectStates, reset); }; Job.prototype.annotations.join.implementation = async function (objectStates, points) { - const result = await joinAnnotations(this, objectStates, points); - return result; + return getCollection(this).join(objectStates, points); }; - Job.prototype.annotations.slice.implementation = async function (objectSTate, results) { - const result = await sliceAnnotations(this, objectSTate, results); - return result; + Job.prototype.annotations.slice.implementation = async function (objectState, results) { + return getCollection(this).slice(objectState, results); }; Job.prototype.annotations.hasUnsavedChanges.implementation = function () { - const result = hasUnsavedChanges(this); - return result; + return getSaver(this).hasUnsavedChanges(); }; Job.prototype.annotations.clear.implementation = async function ( @@ -320,19 +303,16 @@ export function implementJob(Job) { return result; }; - Job.prototype.annotations.select.implementation = function (frame, x, y) { - const result = selectObject(this, frame, x, y); - return result; + Job.prototype.annotations.select.implementation = function (objectStates, x, y) { + return getCollection(this).select(objectStates, x, y); }; Job.prototype.annotations.statistics.implementation = function () { - const result = annotationsStatistics(this); - return result; + return getCollection(this).statistics({ jobID: this.id }); }; Job.prototype.annotations.put.implementation = function (objectStates) { - const result = putAnnotations(this, objectStates); - return result; + return getCollection(this).put(objectStates); }; Job.prototype.annotations.upload.implementation = async function ( @@ -347,13 +327,11 @@ export function implementJob(Job) { }; Job.prototype.annotations.import.implementation = function (data) { - const result = importCollection(this, data); - return result; + return getCollection(this).import(data); }; Job.prototype.annotations.export.implementation = function () { - const result = exportCollection(this); - return result; + return getCollection(this).export(); }; Job.prototype.annotations.exportDataset.implementation = async function ( @@ -368,28 +346,23 @@ export function implementJob(Job) { }; Job.prototype.actions.undo.implementation = async function (count) { - const result = await undoActions(this, count); - return result; + return getHistory(this).undo(count); }; Job.prototype.actions.redo.implementation = async function (count) { - const result = await redoActions(this, count); - return result; + return getHistory(this).redo(count); }; Job.prototype.actions.freeze.implementation = function (frozen) { - const result = freezeHistory(this, frozen); - return result; + return getHistory(this).freeze(frozen); }; Job.prototype.actions.clear.implementation = function () { - const result = clearActions(this); - return result; + return getHistory(this).clear(); }; Job.prototype.actions.get.implementation = function () { - const result = getActions(this); - return result; + return getHistory(this).get(); }; Job.prototype.logger.log.implementation = async function (logType, payload, wait) { @@ -714,7 +687,7 @@ export function implementTask(Task) { throw new ArgumentError(`Frame ${frame} does not exist in the task`); } - const result = await getAnnotations(this, frame, allTracks, filters); + const result = await getAnnotations(this, frame, allTracks, filters, null); const deletedFrames = await getDeletedFrames('task', this.id); if (frame in deletedFrames) { return []; @@ -740,8 +713,7 @@ export function implementTask(Task) { throw new ArgumentError('The stop frame is out of the task'); } - const result = searchAnnotations(this, filters, frameFrom, frameTo); - return result; + return getCollection(this).search(filters, frameFrom, frameTo); }; Task.prototype.annotations.searchEmpty.implementation = function (frameFrom, frameTo) { @@ -757,63 +729,54 @@ export function implementTask(Task) { throw new ArgumentError('The stop frame is out of the task'); } - const result = searchEmptyFrame(this, frameFrom, frameTo); - return result; + return getCollection(this).searchEmpty(frameFrom, frameTo); }; Task.prototype.annotations.save.implementation = async function (onUpdate) { - const result = await saveAnnotations(this, onUpdate); - return result; + return getSaver(this).save(onUpdate); }; Task.prototype.annotations.merge.implementation = async function (objectStates) { - const result = await mergeAnnotations(this, objectStates); - return result; + return getCollection(this).merge(objectStates); }; Task.prototype.annotations.split.implementation = async function (objectState, frame) { - const result = await splitAnnotations(this, objectState, frame); - return result; + return getCollection(this).split(objectState, frame); }; Task.prototype.annotations.group.implementation = async function (objectStates, reset) { - const result = await groupAnnotations(this, objectStates, reset); - return result; + return getCollection(this).group(objectStates, reset); }; Task.prototype.annotations.join.implementation = async function (objectStates, points) { - const result = await joinAnnotations(this, objectStates, points); - return result; + return getCollection(this).join(objectStates, points); }; - Task.prototype.annotations.slice.implementation = async function (objectSTate, results) { - const result = await sliceAnnotations(this, objectSTate, results); - return result; + Task.prototype.annotations.slice.implementation = async function (objectState, results) { + return getCollection(this).slice(objectState, results); }; Task.prototype.annotations.hasUnsavedChanges.implementation = function () { - const result = hasUnsavedChanges(this); - return result; + return getSaver(this).hasUnsavedChanges(); }; - Task.prototype.annotations.clear.implementation = async function (reload) { - const result = await clearAnnotations(this, reload); + Task.prototype.annotations.clear.implementation = async function ( + reload, startframe, endframe, delTrackKeyframesOnly, + ) { + const result = await clearAnnotations(this, reload, startframe, endframe, delTrackKeyframesOnly); return result; }; - Task.prototype.annotations.select.implementation = function (frame, x, y) { - const result = selectObject(this, frame, x, y); - return result; + Task.prototype.annotations.select.implementation = function (objectStates, x, y) { + return getCollection(this).select(objectStates, x, y); }; Task.prototype.annotations.statistics.implementation = function () { - const result = annotationsStatistics(this); - return result; + return getCollection(this).statistics({}); }; Task.prototype.annotations.put.implementation = function (objectStates) { - const result = putAnnotations(this, objectStates); - return result; + return getCollection(this).put(objectStates); }; Task.prototype.annotations.upload.implementation = async function ( @@ -828,13 +791,11 @@ export function implementTask(Task) { }; Task.prototype.annotations.import.implementation = function (data) { - const result = importCollection(this, data); - return result; + return getCollection(this).import(data); }; Task.prototype.annotations.export.implementation = function () { - const result = exportCollection(this); - return result; + return getCollection(this).export(); }; Task.prototype.annotations.exportDataset.implementation = async function ( @@ -848,29 +809,24 @@ export function implementTask(Task) { return result; }; - Task.prototype.actions.undo.implementation = function (count) { - const result = undoActions(this, count); - return result; + Task.prototype.actions.undo.implementation = async function (count) { + return getHistory(this).undo(count); }; - Task.prototype.actions.redo.implementation = function (count) { - const result = redoActions(this, count); - return result; + Task.prototype.actions.redo.implementation = async function (count) { + return getHistory(this).redo(count); }; Task.prototype.actions.freeze.implementation = function (frozen) { - const result = freezeHistory(this, frozen); - return result; + return getHistory(this).freeze(frozen); }; Task.prototype.actions.clear.implementation = function () { - const result = clearActions(this); - return result; + return getHistory(this).clear(); }; Task.prototype.actions.get.implementation = function () { - const result = getActions(this); - return result; + return getHistory(this).get(); }; Task.prototype.logger.log.implementation = async function (logType, payload, wait) { diff --git a/cvat-core/src/session.ts b/cvat-core/src/session.ts index 7b8b127b551a..94329208b868 100644 --- a/cvat-core/src/session.ts +++ b/cvat-core/src/session.ts @@ -11,7 +11,7 @@ import { import { Storage } from './storage'; import PluginRegistry from './plugins'; -import { ArgumentError } from './exceptions'; +import { ArgumentError, ScriptingError } from './exceptions'; import { Label } from './labels'; import User from './user'; import { FieldUpdateTrigger } from './common'; @@ -308,58 +308,10 @@ function buildDuplicatedAPI(prototype) { }, writable: true, }), - events: Object.freeze({ - value: { - async subscribe(evType, callback) { - const result = await PluginRegistry.apiWrapper.call( - this, - prototype.events.subscribe, - evType, - callback, - ); - return result; - }, - async unsubscribe(evType, callback = null) { - const result = await PluginRegistry.apiWrapper.call( - this, - prototype.events.unsubscribe, - evType, - callback, - ); - return result; - }, - }, - writable: true, - }), }); } -export class Session {} - -export class Job extends Session { - public assignee: User | null; - public stage: JobStage; - public state: JobState; - public readonly id: number; - public readonly startFrame: number; - public readonly stopFrame: number; - public readonly frameCount: number; - public readonly projectId: number | null; - public readonly guideId: number | null; - public readonly taskId: number; - public readonly dimension: DimensionType; - public readonly dataChunkType: ChunkType; - public readonly dataChunkSize: number; - public readonly bugTracker: string | null; - public readonly mode: TaskMode; - public readonly labels: Label[]; - public readonly type: JobType; - public readonly frameSelectionMethod: JobType; - public readonly createdDate: string; - public readonly updatedDate: string; - public readonly sourceStorage: Storage; - public readonly targetStorage: Storage; - +export class Session { public annotations: { get: CallableFunction; put: CallableFunction; @@ -405,6 +357,85 @@ export class Job extends Session { log: CallableFunction; }; + public constructor() { + if (this.constructor === Session) { + throw new ScriptingError('Can not initiate an instance of abstract class'); + } + + // When we call a function, for example: task.annotations.get() + // In the method get we lose the task context + // So, we need return it + this.annotations = { + get: Object.getPrototypeOf(this).annotations.get.bind(this), + put: Object.getPrototypeOf(this).annotations.put.bind(this), + save: Object.getPrototypeOf(this).annotations.save.bind(this), + merge: Object.getPrototypeOf(this).annotations.merge.bind(this), + split: Object.getPrototypeOf(this).annotations.split.bind(this), + group: Object.getPrototypeOf(this).annotations.group.bind(this), + join: Object.getPrototypeOf(this).annotations.join.bind(this), + slice: Object.getPrototypeOf(this).annotations.slice.bind(this), + clear: Object.getPrototypeOf(this).annotations.clear.bind(this), + search: Object.getPrototypeOf(this).annotations.search.bind(this), + searchEmpty: Object.getPrototypeOf(this).annotations.searchEmpty.bind(this), + upload: Object.getPrototypeOf(this).annotations.upload.bind(this), + select: Object.getPrototypeOf(this).annotations.select.bind(this), + import: Object.getPrototypeOf(this).annotations.import.bind(this), + export: Object.getPrototypeOf(this).annotations.export.bind(this), + statistics: Object.getPrototypeOf(this).annotations.statistics.bind(this), + hasUnsavedChanges: Object.getPrototypeOf(this).annotations.hasUnsavedChanges.bind(this), + exportDataset: Object.getPrototypeOf(this).annotations.exportDataset.bind(this), + }; + + this.actions = { + undo: Object.getPrototypeOf(this).actions.undo.bind(this), + redo: Object.getPrototypeOf(this).actions.redo.bind(this), + freeze: Object.getPrototypeOf(this).actions.freeze.bind(this), + clear: Object.getPrototypeOf(this).actions.clear.bind(this), + get: Object.getPrototypeOf(this).actions.get.bind(this), + }; + + this.frames = { + get: Object.getPrototypeOf(this).frames.get.bind(this), + delete: Object.getPrototypeOf(this).frames.delete.bind(this), + restore: Object.getPrototypeOf(this).frames.restore.bind(this), + save: Object.getPrototypeOf(this).frames.save.bind(this), + cachedChunks: Object.getPrototypeOf(this).frames.cachedChunks.bind(this), + preview: Object.getPrototypeOf(this).frames.preview.bind(this), + search: Object.getPrototypeOf(this).frames.search.bind(this), + contextImage: Object.getPrototypeOf(this).frames.contextImage.bind(this), + chunk: Object.getPrototypeOf(this).frames.chunk.bind(this), + }; + + this.logger = { + log: Object.getPrototypeOf(this).logger.log.bind(this), + }; + } +} + +export class Job extends Session { + public assignee: User | null; + public stage: JobStage; + public state: JobState; + public readonly id: number; + public readonly startFrame: number; + public readonly stopFrame: number; + public readonly frameCount: number; + public readonly projectId: number | null; + public readonly guideId: number | null; + public readonly taskId: number; + public readonly dimension: DimensionType; + public readonly dataChunkType: ChunkType; + public readonly dataChunkSize: number; + public readonly bugTracker: string | null; + public readonly mode: TaskMode; + public readonly labels: Label[]; + public readonly type: JobType; + public readonly frameSelectionMethod: JobType; + public readonly createdDate: string; + public readonly updatedDate: string; + public readonly sourceStorage: Storage; + public readonly targetStorage: Storage; + constructor(initialData: Readonly) { super(); const data = { @@ -595,54 +626,6 @@ export class Job extends Session { }, }), ); - - // When we call a function, for example: task.annotations.get() - // In the method get we lose the task context - // So, we need return it - this.annotations = { - get: Object.getPrototypeOf(this).annotations.get.bind(this), - put: Object.getPrototypeOf(this).annotations.put.bind(this), - save: Object.getPrototypeOf(this).annotations.save.bind(this), - merge: Object.getPrototypeOf(this).annotations.merge.bind(this), - split: Object.getPrototypeOf(this).annotations.split.bind(this), - group: Object.getPrototypeOf(this).annotations.group.bind(this), - join: Object.getPrototypeOf(this).annotations.join.bind(this), - slice: Object.getPrototypeOf(this).annotations.slice.bind(this), - clear: Object.getPrototypeOf(this).annotations.clear.bind(this), - search: Object.getPrototypeOf(this).annotations.search.bind(this), - searchEmpty: Object.getPrototypeOf(this).annotations.searchEmpty.bind(this), - upload: Object.getPrototypeOf(this).annotations.upload.bind(this), - select: Object.getPrototypeOf(this).annotations.select.bind(this), - import: Object.getPrototypeOf(this).annotations.import.bind(this), - export: Object.getPrototypeOf(this).annotations.export.bind(this), - statistics: Object.getPrototypeOf(this).annotations.statistics.bind(this), - hasUnsavedChanges: Object.getPrototypeOf(this).annotations.hasUnsavedChanges.bind(this), - exportDataset: Object.getPrototypeOf(this).annotations.exportDataset.bind(this), - }; - - this.actions = { - undo: Object.getPrototypeOf(this).actions.undo.bind(this), - redo: Object.getPrototypeOf(this).actions.redo.bind(this), - freeze: Object.getPrototypeOf(this).actions.freeze.bind(this), - clear: Object.getPrototypeOf(this).actions.clear.bind(this), - get: Object.getPrototypeOf(this).actions.get.bind(this), - }; - - this.frames = { - get: Object.getPrototypeOf(this).frames.get.bind(this), - delete: Object.getPrototypeOf(this).frames.delete.bind(this), - restore: Object.getPrototypeOf(this).frames.restore.bind(this), - save: Object.getPrototypeOf(this).frames.save.bind(this), - cachedChunks: Object.getPrototypeOf(this).frames.cachedChunks.bind(this), - preview: Object.getPrototypeOf(this).frames.preview.bind(this), - search: Object.getPrototypeOf(this).frames.search.bind(this), - contextImage: Object.getPrototypeOf(this).frames.contextImage.bind(this), - chunk: Object.getPrototypeOf(this).frames.chunk.bind(this), - }; - - this.logger = { - log: Object.getPrototypeOf(this).logger.log.bind(this), - }; } async save(additionalData = {}) { @@ -712,51 +695,6 @@ export class Task extends Session { public readonly cloudStorageID: number; public readonly sortingMethod: string; - public annotations: { - get: CallableFunction; - put: CallableFunction; - save: CallableFunction; - merge: CallableFunction; - split: CallableFunction; - group: CallableFunction; - join: CallableFunction; - slice: CallableFunction; - clear: CallableFunction; - search: CallableFunction; - searchEmpty: CallableFunction; - upload: CallableFunction; - select: CallableFunction; - import: CallableFunction; - export: CallableFunction; - statistics: CallableFunction; - hasUnsavedChanges: CallableFunction; - exportDataset: CallableFunction; - }; - - public actions: { - undo: CallableFunction; - redo: CallableFunction; - freeze: CallableFunction; - clear: CallableFunction; - get: CallableFunction; - }; - - public frames: { - get: CallableFunction; - delete: CallableFunction; - restore: CallableFunction; - save: CallableFunction; - cachedChunks: CallableFunction; - preview: CallableFunction; - contextImage: CallableFunction; - search: CallableFunction; - chunk: CallableFunction; - }; - - public logger: { - log: CallableFunction; - }; - constructor(initialData: SerializedTask) { super(); @@ -1134,54 +1072,6 @@ export class Task extends Session { }, }), ); - - // When we call a function, for example: task.annotations.get() - // In the method get we lose the task context - // So, we need return it - this.annotations = { - get: Object.getPrototypeOf(this).annotations.get.bind(this), - put: Object.getPrototypeOf(this).annotations.put.bind(this), - save: Object.getPrototypeOf(this).annotations.save.bind(this), - merge: Object.getPrototypeOf(this).annotations.merge.bind(this), - split: Object.getPrototypeOf(this).annotations.split.bind(this), - group: Object.getPrototypeOf(this).annotations.group.bind(this), - join: Object.getPrototypeOf(this).annotations.join.bind(this), - slice: Object.getPrototypeOf(this).annotations.slice.bind(this), - clear: Object.getPrototypeOf(this).annotations.clear.bind(this), - search: Object.getPrototypeOf(this).annotations.search.bind(this), - searchEmpty: Object.getPrototypeOf(this).annotations.searchEmpty.bind(this), - upload: Object.getPrototypeOf(this).annotations.upload.bind(this), - select: Object.getPrototypeOf(this).annotations.select.bind(this), - import: Object.getPrototypeOf(this).annotations.import.bind(this), - export: Object.getPrototypeOf(this).annotations.export.bind(this), - statistics: Object.getPrototypeOf(this).annotations.statistics.bind(this), - hasUnsavedChanges: Object.getPrototypeOf(this).annotations.hasUnsavedChanges.bind(this), - exportDataset: Object.getPrototypeOf(this).annotations.exportDataset.bind(this), - }; - - this.actions = { - undo: Object.getPrototypeOf(this).actions.undo.bind(this), - redo: Object.getPrototypeOf(this).actions.redo.bind(this), - freeze: Object.getPrototypeOf(this).actions.freeze.bind(this), - clear: Object.getPrototypeOf(this).actions.clear.bind(this), - get: Object.getPrototypeOf(this).actions.get.bind(this), - }; - - this.frames = { - get: Object.getPrototypeOf(this).frames.get.bind(this), - delete: Object.getPrototypeOf(this).frames.delete.bind(this), - restore: Object.getPrototypeOf(this).frames.restore.bind(this), - save: Object.getPrototypeOf(this).frames.save.bind(this), - cachedChunks: Object.getPrototypeOf(this).frames.cachedChunks.bind(this), - preview: Object.getPrototypeOf(this).frames.preview.bind(this), - contextImage: Object.getPrototypeOf(this).frames.contextImage.bind(this), - search: Object.getPrototypeOf(this).frames.search.bind(this), - chunk: Object.getPrototypeOf(this).frames.chunk.bind(this), - }; - - this.logger = { - log: Object.getPrototypeOf(this).logger.log.bind(this), - }; } async close(): Promise { diff --git a/cvat-core/tests/api/annotations.js b/cvat-core/tests/api/annotations.cjs similarity index 70% rename from cvat-core/tests/api/annotations.js rename to cvat-core/tests/api/annotations.cjs index a8bb9ba57154..fc3e9d00fea8 100644 --- a/cvat-core/tests/api/annotations.js +++ b/cvat-core/tests/api/annotations.cjs @@ -1,6 +1,5 @@ // Copyright (C) 2020-2022 Intel Corporation -// Copyright (C) 2022 CVAT.ai Corp -// Copyright (C) 2022 CVAT.ai Corporation +// Copyright (C) 2022-2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -8,28 +7,27 @@ jest.mock('../../src/server-proxy', () => { return { __esModule: true, - default: require('../mocks/server-proxy.mock'), + default: require('../mocks/server-proxy.mock.cjs'), }; }); -// Initialize api -window.cvat = require('../../src/api').default; +const cvat = require('../../src/api').default; const serverProxy = require('../../src/server-proxy').default; // Test cases describe('Feature: get annotations', () => { test('get annotations from a task', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const annotations = await task.annotations.get(0); expect(Array.isArray(annotations)).toBeTruthy(); expect(annotations).toHaveLength(12); for (const state of annotations) { - expect(state).toBeInstanceOf(window.cvat.classes.ObjectState); + expect(state).toBeInstanceOf(cvat.classes.ObjectState); } }); test('get annotations from a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 101 }))[0]; + const job = (await cvat.jobs.get({ jobID: 101 }))[0]; const annotations0 = await job.annotations.get(0); const annotations10 = await job.annotations.get(10); expect(Array.isArray(annotations0)).toBeTruthy(); @@ -37,32 +35,32 @@ describe('Feature: get annotations', () => { expect(annotations0).toHaveLength(2); expect(annotations10).toHaveLength(3); for (const state of annotations0.concat(annotations10)) { - expect(state).toBeInstanceOf(window.cvat.classes.ObjectState); + expect(state).toBeInstanceOf(cvat.classes.ObjectState); } }); test('get annotations for frame out of task', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; // Out of task - expect(task.annotations.get(500)).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(task.annotations.get(500)).rejects.toThrow(cvat.exceptions.ArgumentError); // Out of task - expect(task.annotations.get(-1)).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(task.annotations.get(-1)).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('get annotations for frame out of job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 101 }))[0]; + const job = (await cvat.jobs.get({ jobID: 101 }))[0]; // Out of segment - expect(job.annotations.get(500)).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(job.annotations.get(500)).rejects.toThrow(cvat.exceptions.ArgumentError); // Out of segment - expect(job.annotations.get(-1)).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(job.annotations.get(-1)).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('get only ellipses', async () => { - const job = (await window.cvat.jobs.get({ jobID: 101 }))[0]; + const job = (await cvat.jobs.get({ jobID: 101 }))[0]; const annotations = await job.annotations.get(5, false, JSON.parse('[{"and":[{"==":[{"var":"shape"},"ellipse"]}]}]')); expect(Array.isArray(annotations)).toBeTruthy(); expect(annotations).toHaveLength(1); @@ -70,7 +68,7 @@ describe('Feature: get annotations', () => { }); test('get skeletons with a filter', async () => { - const job = (await window.cvat.jobs.get({ jobID: 40 }))[0]; + const job = (await cvat.jobs.get({ jobID: 40 }))[0]; const annotations = await job.annotations.get(0, false, JSON.parse('[{"and":[{"==":[{"var":"shape"},"skeleton"]}]}]')); expect(Array.isArray(annotations)).toBeTruthy(); expect(annotations).toHaveLength(2); @@ -94,7 +92,7 @@ describe('Feature: get annotations', () => { describe('Feature: get interpolated annotations', () => { test('get interpolated box', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; let annotations = await task.annotations.get(5); expect(Array.isArray(annotations)).toBeTruthy(); expect(annotations).toHaveLength(2); @@ -123,7 +121,7 @@ describe('Feature: get interpolated annotations', () => { }); test('get interpolated ellipse', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; const annotations = await task.annotations.get(5); expect(Array.isArray(annotations)).toBeTruthy(); expect(annotations).toHaveLength(2); @@ -138,14 +136,14 @@ describe('Feature: get interpolated annotations', () => { describe('Feature: put annotations', () => { test('put a shape to a task', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; let annotations = await task.annotations.get(1); const { length } = annotations; - const state = new window.cvat.classes.ObjectState({ + const state = new cvat.classes.ObjectState({ frame: 1, - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.POLYGON, + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.POLYGON, points: [0, 0, 100, 0, 100, 50], occluded: true, label: task.labels[0], @@ -160,14 +158,14 @@ describe('Feature: put annotations', () => { }); test('put a shape to a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 100 }))[0]; + const job = (await cvat.jobs.get({ jobID: 100 }))[0]; let annotations = await job.annotations.get(5); const { length } = annotations; - const state = new window.cvat.classes.ObjectState({ + const state = new cvat.classes.ObjectState({ frame: 5, - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.RECTANGLE, + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.RECTANGLE, points: [0, 0, 100, 100], occluded: false, label: job.labels[0], @@ -182,14 +180,14 @@ describe('Feature: put annotations', () => { }); test('put an ellipse shape to a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 100 }))[0]; + const job = (await cvat.jobs.get({ jobID: 100 }))[0]; let annotations = await job.annotations.get(5); const { length } = annotations; - const state = new window.cvat.classes.ObjectState({ + const state = new cvat.classes.ObjectState({ frame: 5, - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.ELLIPSE, + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.ELLIPSE, points: [500, 500, 800, 100], occluded: true, label: job.labels[0], @@ -204,14 +202,14 @@ describe('Feature: put annotations', () => { }); test('put a track to a task', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; let annotations = await task.annotations.get(1); const { length } = annotations; - const state = new window.cvat.classes.ObjectState({ + const state = new cvat.classes.ObjectState({ frame: 1, - objectType: window.cvat.enums.ObjectType.TRACK, - shapeType: window.cvat.enums.ShapeType.POLYGON, + objectType: cvat.enums.ObjectType.TRACK, + shapeType: cvat.enums.ShapeType.POLYGON, points: [0, 0, 100, 0, 100, 50], occluded: true, label: task.labels[0], @@ -226,14 +224,14 @@ describe('Feature: put annotations', () => { }); test('put a track to a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 100 }))[0]; + const job = (await cvat.jobs.get({ jobID: 100 }))[0]; let annotations = await job.annotations.get(5); const { length } = annotations; - const state = new window.cvat.classes.ObjectState({ + const state = new cvat.classes.ObjectState({ frame: 5, - objectType: window.cvat.enums.ObjectType.TRACK, - shapeType: window.cvat.enums.ShapeType.RECTANGLE, + objectType: cvat.enums.ObjectType.TRACK, + shapeType: cvat.enums.ShapeType.RECTANGLE, points: [0, 0, 100, 100], occluded: false, label: job.labels[0], @@ -248,25 +246,25 @@ describe('Feature: put annotations', () => { }); test('put object without objectType to a task', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; await task.annotations.clear(true); - expect(() => new window.cvat.classes.ObjectState({ + expect(() => new cvat.classes.ObjectState({ frame: 1, - shapeType: window.cvat.enums.ShapeType.POLYGON, + shapeType: cvat.enums.ShapeType.POLYGON, points: [0, 0, 100, 0, 100, 50], occluded: true, label: task.labels[0], zOrder: 0, - })).toThrow(window.cvat.exceptions.ArgumentError); + })).toThrow(cvat.exceptions.ArgumentError); }); test('put shape with bad attributes to a task', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; await task.annotations.clear(true); - const state = new window.cvat.classes.ObjectState({ + const state = new cvat.classes.ObjectState({ frame: 1, - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.POLYGON, + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.POLYGON, points: [0, 0, 100, 0, 100, 50], attributes: { 'bad key': 55 }, occluded: true, @@ -274,16 +272,16 @@ describe('Feature: put annotations', () => { zOrder: 0, }); - expect(task.annotations.put([state])).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(task.annotations.put([state])).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('put shape with bad zOrder to a task', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; await task.annotations.clear(true); - const state = new window.cvat.classes.ObjectState({ + const state = new cvat.classes.ObjectState({ frame: 1, - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.POLYGON, + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.POLYGON, points: [0, 0, 100, 0, 100, 50], attributes: { 'bad key': 55 }, occluded: true, @@ -291,12 +289,12 @@ describe('Feature: put annotations', () => { zOrder: 'bad value', }); - expect(task.annotations.put([state])).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(task.annotations.put([state])).rejects.toThrow(cvat.exceptions.ArgumentError); - const state1 = new window.cvat.classes.ObjectState({ + const state1 = new cvat.classes.ObjectState({ frame: 1, - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.POLYGON, + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.POLYGON, points: [0, 0, 100, 0, 100, 50], attributes: { 'bad key': 55 }, occluded: true, @@ -304,94 +302,94 @@ describe('Feature: put annotations', () => { zOrder: NaN, }); - expect(task.annotations.put([state1])).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(task.annotations.put([state1])).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('put shape without points and with invalid points to a task', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; await task.annotations.clear(true); - const state = new window.cvat.classes.ObjectState({ + const state = new cvat.classes.ObjectState({ frame: 1, - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.POLYGON, + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.POLYGON, occluded: true, label: task.labels[0], zOrder: 0, }); - expect(() => state.points = ['150,50 250,30']).toThrow(window.cvat.exceptions.ArgumentError); + expect(() => state.points = ['150,50 250,30']).toThrow(cvat.exceptions.ArgumentError); delete state.points; - expect(task.annotations.put([state])).rejects.toThrow(window.cvat.exceptions.DataError); + expect(task.annotations.put([state])).rejects.toThrow(cvat.exceptions.DataError); state.points = []; - expect(task.annotations.put([state])).rejects.toThrow(window.cvat.exceptions.DataError); + expect(task.annotations.put([state])).rejects.toThrow(cvat.exceptions.DataError); }); test('put shape without type to a task', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; await task.annotations.clear(true); - const state = new window.cvat.classes.ObjectState({ + const state = new cvat.classes.ObjectState({ frame: 1, - objectType: window.cvat.enums.ObjectType.SHAPE, + objectType: cvat.enums.ObjectType.SHAPE, points: [0, 0, 100, 0, 100, 50], occluded: true, label: task.labels[0], zOrder: 0, }); - expect(task.annotations.put([state])).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(task.annotations.put([state])).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('put shape without label and with bad label to a task', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; await task.annotations.clear(true); const state = { frame: 1, - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.POLYGON, + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.POLYGON, points: [0, 0, 100, 0, 100, 50], occluded: true, zOrder: 0, }; - expect(() => new window.cvat.classes.ObjectState(state)) - .toThrow(window.cvat.exceptions.ArgumentError); - expect(() => new window.cvat.classes.ObjectState({ ...state, label: 'bad label' })) - .toThrow(window.cvat.exceptions.ArgumentError); - expect(() => new window.cvat.classes.ObjectState({ ...state, label: {} })) - .toThrow(window.cvat.exceptions.ArgumentError); + expect(() => new cvat.classes.ObjectState(state)) + .toThrow(cvat.exceptions.ArgumentError); + expect(() => new cvat.classes.ObjectState({ ...state, label: 'bad label' })) + .toThrow(cvat.exceptions.ArgumentError); + expect(() => new cvat.classes.ObjectState({ ...state, label: {} })) + .toThrow(cvat.exceptions.ArgumentError); }); test('put shape with bad frame to a task', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; await task.annotations.clear(true); - expect(() => new window.cvat.classes.ObjectState({ + expect(() => new cvat.classes.ObjectState({ frame: '5', - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.POLYGON, + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.POLYGON, points: [0, 0, 100, 0, 100, 50], occluded: true, label: task.labels[0], zOrder: 0, - })).toThrow(window.cvat.exceptions.ArgumentError); + })).toThrow(cvat.exceptions.ArgumentError); }); test('put a skeleton shape to a job', async() => { - const job = (await window.cvat.jobs.get({ jobID: 40 }))[0]; + const job = (await cvat.jobs.get({ jobID: 40 }))[0]; const label = job.labels[0]; await job.annotations.clear(true); await job.annotations.clear(); - const skeleton = new window.cvat.classes.ObjectState({ + const skeleton = new cvat.classes.ObjectState({ frame: 0, - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.SKELETON, + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.SKELETON, points: [], label, elements: label.structure.sublabels.map((sublabel, idx) => ({ frame: 0, - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.POINTS, + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.POINTS, points: [idx * 10, idx * 10], label: sublabel, })) @@ -400,29 +398,29 @@ describe('Feature: put annotations', () => { await job.annotations.put([skeleton]); const annotations = await job.annotations.get(0); expect(annotations.length).toBe(1); - expect(annotations[0].objectType).toBe(window.cvat.enums.ObjectType.SHAPE); - expect(annotations[0].shapeType).toBe(window.cvat.enums.ShapeType.SKELETON); + expect(annotations[0].objectType).toBe(cvat.enums.ObjectType.SHAPE); + expect(annotations[0].shapeType).toBe(cvat.enums.ShapeType.SKELETON); for (const element of annotations[0].elements) { - expect(element.objectType).toBe(window.cvat.enums.ObjectType.SHAPE); - expect(element.shapeType).toBe(window.cvat.enums.ShapeType.POINTS); + expect(element.objectType).toBe(cvat.enums.ObjectType.SHAPE); + expect(element.shapeType).toBe(cvat.enums.ShapeType.POINTS); } }); test('put a skeleton track to a task', async() => { - const task = (await window.cvat.tasks.get({ id: 40 }))[0]; + const task = (await cvat.tasks.get({ id: 40 }))[0]; const label = task.labels[0]; await task.annotations.clear(true); await task.annotations.clear(); - const skeleton = new window.cvat.classes.ObjectState({ + const skeleton = new cvat.classes.ObjectState({ frame: 0, - objectType: window.cvat.enums.ObjectType.TRACK, - shapeType: window.cvat.enums.ShapeType.SKELETON, + objectType: cvat.enums.ObjectType.TRACK, + shapeType: cvat.enums.ShapeType.SKELETON, points: [], label, elements: label.structure.sublabels.map((sublabel, idx) => ({ frame: 0, - objectType: window.cvat.enums.ObjectType.TRACK, - shapeType: window.cvat.enums.ShapeType.POINTS, + objectType: cvat.enums.ObjectType.TRACK, + shapeType: cvat.enums.ShapeType.POINTS, points: [idx * 10, idx * 10], label: sublabel, })) @@ -431,18 +429,19 @@ describe('Feature: put annotations', () => { await task.annotations.put([skeleton]); const annotations = await task.annotations.get(2); expect(annotations.length).toBe(1); - expect(annotations[0].objectType).toBe(window.cvat.enums.ObjectType.TRACK); - expect(annotations[0].shapeType).toBe(window.cvat.enums.ShapeType.SKELETON); + expect(annotations[0].objectType).toBe(cvat.enums.ObjectType.TRACK); + expect(annotations[0].shapeType).toBe(cvat.enums.ShapeType.SKELETON); for (const element of annotations[0].elements) { - expect(element.objectType).toBe(window.cvat.enums.ObjectType.TRACK); - expect(element.shapeType).toBe(window.cvat.enums.ShapeType.POINTS); + expect(element.objectType).toBe(cvat.enums.ObjectType.TRACK); + expect(element.shapeType).toBe(cvat.enums.ShapeType.POINTS); } }); }); describe('Feature: check unsaved changes', () => { test('check unsaved changes in a task', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; + await task.annotations.get(0); expect(await task.annotations.hasUnsavedChanges()).toBe(false); const annotations = await task.annotations.get(0); @@ -453,7 +452,8 @@ describe('Feature: check unsaved changes', () => { }); test('check unsaved changes in a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 100 }))[0]; + const job = (await cvat.jobs.get({ jobID: 100 }))[0]; + await job.annotations.get(0); expect(await job.annotations.hasUnsavedChanges()).toBe(false); const annotations = await job.annotations.get(0); @@ -466,12 +466,12 @@ describe('Feature: check unsaved changes', () => { describe('Feature: save annotations', () => { test('create, save, undo, save, redo save', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; await task.annotations.get(0); - const state = new window.cvat.classes.ObjectState({ + const state = new cvat.classes.ObjectState({ frame: 0, - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.POLYGON, + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.POLYGON, points: [0, 0, 100, 0, 100, 50], occluded: true, label: task.labels[0], @@ -487,13 +487,13 @@ describe('Feature: save annotations', () => { }); test('create & save annotations for a task', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; let annotations = await task.annotations.get(0); const { length } = annotations; - const state = new window.cvat.classes.ObjectState({ + const state = new cvat.classes.ObjectState({ frame: 0, - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.POLYGON, + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.POLYGON, points: [0, 0, 100, 0, 100, 50], occluded: true, label: task.labels[0], @@ -510,7 +510,7 @@ describe('Feature: save annotations', () => { }); test('update & save annotations for a task', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; const annotations = await task.annotations.get(0); expect(task.annotations.hasUnsavedChanges()).toBe(false); @@ -522,7 +522,7 @@ describe('Feature: save annotations', () => { }); test('delete & save annotations for a task', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; const annotations = await task.annotations.get(0); expect(task.annotations.hasUnsavedChanges()).toBe(false); @@ -533,13 +533,13 @@ describe('Feature: save annotations', () => { }); test('create & save annotations for a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 100 }))[0]; + const job = (await cvat.jobs.get({ jobID: 100 }))[0]; let annotations = await job.annotations.get(0); const { length } = annotations; - const state = new window.cvat.classes.ObjectState({ + const state = new cvat.classes.ObjectState({ frame: 0, - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.POLYGON, + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.POLYGON, points: [0, 0, 100, 0, 100, 50], occluded: true, label: job.labels[0], @@ -556,7 +556,7 @@ describe('Feature: save annotations', () => { }); test('update & save annotations for a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 100 }))[0]; + const job = (await cvat.jobs.get({ jobID: 100 }))[0]; const annotations = await job.annotations.get(0); expect(job.annotations.hasUnsavedChanges()).toBe(false); @@ -568,7 +568,7 @@ describe('Feature: save annotations', () => { }); test('delete & save annotations for a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 100 }))[0]; + const job = (await cvat.jobs.get({ jobID: 100 }))[0]; const annotations = await job.annotations.get(0); expect(job.annotations.hasUnsavedChanges()).toBe(false); @@ -579,7 +579,7 @@ describe('Feature: save annotations', () => { }); test('delete & save annotations for a job when there are a track and a shape with the same id', async () => { - const job = (await window.cvat.jobs.get({ jobID: 112 }))[0]; + const job = (await cvat.jobs.get({ jobID: 112 }))[0]; const annotations = await job.annotations.get(0); let okay = false; @@ -604,16 +604,16 @@ describe('Feature: save annotations', () => { describe('Feature: merge annotations', () => { test('merge annotations in a task', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const annotations0 = await task.annotations.get(0); const annotations1 = await task.annotations.get(1); const states = [annotations0[0], annotations1[0]]; await task.annotations.merge(states); const merged0 = (await task.annotations.get(0)).filter( - (state) => state.objectType === window.cvat.enums.ObjectType.TRACK, + (state) => state.objectType === cvat.enums.ObjectType.TRACK, ); const merged1 = (await task.annotations.get(1)).filter( - (state) => state.objectType === window.cvat.enums.ObjectType.TRACK, + (state) => state.objectType === cvat.enums.ObjectType.TRACK, ); expect(merged0).toHaveLength(1); expect(merged1).toHaveLength(1); @@ -623,16 +623,16 @@ describe('Feature: merge annotations', () => { }); test('merge annotations in a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 100 }))[0]; + const job = (await cvat.jobs.get({ jobID: 100 }))[0]; const annotations0 = await job.annotations.get(0); const annotations1 = await job.annotations.get(1); const states = [annotations0[0], annotations1[0]]; await job.annotations.merge(states); const merged0 = (await job.annotations.get(0)).filter( - (state) => state.objectType === window.cvat.enums.ObjectType.TRACK, + (state) => state.objectType === cvat.enums.ObjectType.TRACK, ); const merged1 = (await job.annotations.get(1)).filter( - (state) => state.objectType === window.cvat.enums.ObjectType.TRACK, + (state) => state.objectType === cvat.enums.ObjectType.TRACK, ); expect(merged0).toHaveLength(1); expect(merged1).toHaveLength(1); @@ -642,74 +642,74 @@ describe('Feature: merge annotations', () => { }); test('trying to merge not object state', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const annotations0 = await task.annotations.get(0); const states = [annotations0[0], {}]; - expect(task.annotations.merge(states)).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(task.annotations.merge(states)).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('trying to merge object state which is not saved in a collection', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const annotations0 = await task.annotations.get(0); - const state = new window.cvat.classes.ObjectState({ + const state = new cvat.classes.ObjectState({ frame: 0, - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.POLYGON, + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.POLYGON, points: [0, 0, 100, 0, 100, 50], occluded: true, label: task.labels[0], }); const states = [annotations0[0], state]; - expect(task.annotations.merge(states)).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(task.annotations.merge(states)).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('trying to merge with bad label', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const annotations0 = await task.annotations.get(0); const annotations1 = await task.annotations.get(1); const states = [annotations0[0], annotations1[0]]; - states[0].label = new window.cvat.classes.Label({ + states[0].label = new cvat.classes.Label({ id: 500, name: 'new_label', attributes: [], }); - expect(task.annotations.merge(states)).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(task.annotations.merge(states)).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('trying to merge with different shape types', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const annotations0 = await task.annotations.get(0); const annotations1 = (await task.annotations.get(1)).filter( - (state) => state.shapeType === window.cvat.enums.ShapeType.POLYGON, + (state) => state.shapeType === cvat.enums.ShapeType.POLYGON, ); const states = [annotations0[0], annotations1[0]]; - expect(task.annotations.merge(states)).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(task.annotations.merge(states)).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('trying to merge with different labels', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const annotations0 = await task.annotations.get(0); const annotations1 = await task.annotations.get(1); const states = [annotations0[0], annotations1[0]]; - states[1].label = new window.cvat.classes.Label({ + states[1].label = new cvat.classes.Label({ id: 500, name: 'new_label', attributes: [], }); await states[1].save(); - expect(task.annotations.merge(states)).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(task.annotations.merge(states)).rejects.toThrow(cvat.exceptions.ArgumentError); }); }); describe('Feature: split annotations', () => { test('split annotations in a task', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; const annotations4 = await task.annotations.get(4); const annotations5 = await task.annotations.get(5); @@ -721,7 +721,7 @@ describe('Feature: split annotations', () => { }); test('split annotations in a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 101 }))[0]; + const job = (await cvat.jobs.get({ jobID: 101 }))[0]; const annotations4 = await job.annotations.get(4); const annotations5 = await job.annotations.get(5); @@ -733,20 +733,20 @@ describe('Feature: split annotations', () => { }); test('split on a bad frame', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; const annotations4 = await task.annotations.get(4); const annotations5 = await task.annotations.get(5); expect(annotations4[0].clientID).toBe(annotations5[0].clientID); expect(task.annotations.split(annotations5[0], 'bad frame')).rejects.toThrow( - window.cvat.exceptions.ArgumentError, + cvat.exceptions.ArgumentError, ); }); }); describe('Feature: group annotations', () => { test('group annotations in a task', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; let annotations = await task.annotations.get(0); const groupID = await task.annotations.group(annotations); expect(typeof groupID).toBe('number'); @@ -757,7 +757,7 @@ describe('Feature: group annotations', () => { }); test('group annotations in a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 100 }))[0]; + const job = (await cvat.jobs.get({ jobID: 100 }))[0]; let annotations = await job.annotations.get(0); const groupID = await job.annotations.group(annotations); expect(typeof groupID).toBe('number'); @@ -768,32 +768,32 @@ describe('Feature: group annotations', () => { }); test('trying to group object state which has not been saved in a collection', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; await task.annotations.clear(true); - const state = new window.cvat.classes.ObjectState({ + const state = new cvat.classes.ObjectState({ frame: 0, - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.POLYGON, + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.POLYGON, points: [0, 0, 100, 0, 100, 50], occluded: true, label: task.labels[0], zOrder: 0, }); - expect(task.annotations.group([state])).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(task.annotations.group([state])).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('trying to group not object state', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const annotations = await task.annotations.get(0); - expect(task.annotations.group(annotations.concat({}))).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(task.annotations.group(annotations.concat({}))).rejects.toThrow(cvat.exceptions.ArgumentError); }); }); describe('Feature: clear annotations', () => { test('clear annotations in a task', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; let annotations = await task.annotations.get(0); expect(annotations).not.toHaveLength(0); await task.annotations.clear(); @@ -802,7 +802,7 @@ describe('Feature: clear annotations', () => { }); test('clear annotations in a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 100 }))[0]; + const job = (await cvat.jobs.get({ jobID: 100 }))[0]; let annotations = await job.annotations.get(0); expect(annotations).not.toHaveLength(0); await job.annotations.clear(); @@ -811,7 +811,7 @@ describe('Feature: clear annotations', () => { }); test('clear annotations with reload in a task', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; let annotations = await task.annotations.get(0); expect(annotations).not.toHaveLength(0); annotations[0].occluded = true; @@ -824,7 +824,7 @@ describe('Feature: clear annotations', () => { }); test('clear annotations with reload in a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 100 }))[0]; + const job = (await cvat.jobs.get({ jobID: 100 }))[0]; let annotations = await job.annotations.get(0); expect(annotations).not.toHaveLength(0); annotations[0].occluded = true; @@ -837,34 +837,34 @@ describe('Feature: clear annotations', () => { }); test('clear annotations with bad reload parameter', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; await task.annotations.clear(true); - expect(task.annotations.clear('reload')).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(task.annotations.clear('reload')).rejects.toThrow(cvat.exceptions.ArgumentError); }); }); describe('Feature: get statistics', () => { test('get statistics from a task', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; await task.annotations.clear(true); const statistics = await task.annotations.statistics(); - expect(statistics).toBeInstanceOf(window.cvat.classes.Statistics); + expect(statistics).toBeInstanceOf(cvat.classes.Statistics); expect(statistics.total.total).toBe(30); }); test('get statistics from a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 101 }))[0]; + const job = (await cvat.jobs.get({ jobID: 101 }))[0]; await job.annotations.clear(true); const statistics = await job.annotations.statistics(); - expect(statistics).toBeInstanceOf(window.cvat.classes.Statistics); + expect(statistics).toBeInstanceOf(cvat.classes.Statistics); expect(statistics.total.total).toBe(1012); }); test('get statistics from a job with skeletons', async () => { - const job = (await window.cvat.jobs.get({ jobID: 40 }))[0]; + const job = (await cvat.jobs.get({ jobID: 40 }))[0]; await job.annotations.clear(true); const statistics = await job.annotations.statistics(); - expect(statistics).toBeInstanceOf(window.cvat.classes.Statistics); + expect(statistics).toBeInstanceOf(cvat.classes.Statistics); expect(statistics.total.total).toBe(30); const labelName = job.labels[0].name; expect(statistics.label[labelName].skeleton.shape).toBe(1); @@ -875,7 +875,7 @@ describe('Feature: get statistics', () => { }); test('get statistics from a job with skeletons', async () => { - const job = (await window.cvat.jobs.get({ jobID: 102 }))[0]; + const job = (await cvat.jobs.get({ jobID: 102 }))[0]; await job.annotations.clear(true); let statistics = await job.annotations.statistics(); expect(statistics.total.manually).toBe(5); @@ -900,61 +900,61 @@ describe('Feature: get statistics', () => { describe('Feature: select object', () => { test('select object in a task', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const annotations = await task.annotations.get(0); let result = await task.annotations.select(annotations, 1430, 765); - expect(result.state.shapeType).toBe(window.cvat.enums.ShapeType.RECTANGLE); + expect(result.state.shapeType).toBe(cvat.enums.ShapeType.RECTANGLE); result = await task.annotations.select(annotations, 1415, 765); - expect(result.state.shapeType).toBe(window.cvat.enums.ShapeType.POLYGON); + expect(result.state.shapeType).toBe(cvat.enums.ShapeType.POLYGON); expect(result.state.points).toHaveLength(10); result = await task.annotations.select(annotations, 1083, 543); - expect(result.state.shapeType).toBe(window.cvat.enums.ShapeType.POINTS); + expect(result.state.shapeType).toBe(cvat.enums.ShapeType.POINTS); expect(result.state.points).toHaveLength(16); result = await task.annotations.select(annotations, 613, 811); - expect(result.state.shapeType).toBe(window.cvat.enums.ShapeType.POLYGON); + expect(result.state.shapeType).toBe(cvat.enums.ShapeType.POLYGON); expect(result.state.points).toHaveLength(94); result = await task.annotations.select(annotations, 600, 900); - expect(result.state.shapeType).toBe(window.cvat.enums.ShapeType.CUBOID); + expect(result.state.shapeType).toBe(cvat.enums.ShapeType.CUBOID); expect(result.state.points).toHaveLength(16); }); test('select object in a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 100 }))[0]; + const job = (await cvat.jobs.get({ jobID: 100 }))[0]; const annotations = await job.annotations.get(0); let result = await job.annotations.select(annotations, 490, 540); - expect(result.state.shapeType).toBe(window.cvat.enums.ShapeType.RECTANGLE); + expect(result.state.shapeType).toBe(cvat.enums.ShapeType.RECTANGLE); result = await job.annotations.select(annotations, 430, 260); - expect(result.state.shapeType).toBe(window.cvat.enums.ShapeType.POLYLINE); + expect(result.state.shapeType).toBe(cvat.enums.ShapeType.POLYLINE); result = await job.annotations.select(annotations, 1473, 250); - expect(result.state.shapeType).toBe(window.cvat.enums.ShapeType.RECTANGLE); + expect(result.state.shapeType).toBe(cvat.enums.ShapeType.RECTANGLE); result = await job.annotations.select(annotations, 1490, 237); - expect(result.state.shapeType).toBe(window.cvat.enums.ShapeType.POLYGON); + expect(result.state.shapeType).toBe(cvat.enums.ShapeType.POLYGON); expect(result.state.points).toHaveLength(94); result = await job.annotations.select(annotations, 600, 900); - expect(result.state.shapeType).toBe(window.cvat.enums.ShapeType.CUBOID); + expect(result.state.shapeType).toBe(cvat.enums.ShapeType.CUBOID); expect(result.state.points).toHaveLength(16); }); test('trying to select from not object states', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const annotations = await task.annotations.get(0); expect(task.annotations.select(annotations.concat({}), 500, 500)).rejects.toThrow( - window.cvat.exceptions.ArgumentError, + cvat.exceptions.ArgumentError, ); }); test('trying to select with invalid coordinates', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const annotations = await task.annotations.get(0); - expect(task.annotations.select(annotations, null, null)).rejects.toThrow(window.cvat.exceptions.ArgumentError); - expect(task.annotations.select(annotations, null, null)).rejects.toThrow(window.cvat.exceptions.ArgumentError); - expect(task.annotations.select(annotations, '5', '10')).rejects.toThrow(window.cvat.exceptions.ArgumentError); + expect(task.annotations.select(annotations, null, null)).rejects.toThrow(cvat.exceptions.ArgumentError); + expect(task.annotations.select(annotations, null, null)).rejects.toThrow(cvat.exceptions.ArgumentError); + expect(task.annotations.select(annotations, '5', '10')).rejects.toThrow(cvat.exceptions.ArgumentError); }); }); describe('Feature: search frame', () => { test('applying different filters', async () => { - const job = (await window.cvat.jobs.get({ jobID: 102 }))[0]; + const job = (await cvat.jobs.get({ jobID: 102 }))[0]; await job.annotations.clear(true); let frame = await job.annotations.search(JSON.parse('[{"and":[{"==":[{"var":"type"},"tag"]}]}]'), 495, 994); expect(frame).toBe(500); diff --git a/cvat-core/tests/api/cloud-storages.js b/cvat-core/tests/api/cloud-storages.cjs similarity index 81% rename from cvat-core/tests/api/cloud-storages.js rename to cvat-core/tests/api/cloud-storages.cjs index a671b0a2072e..881b88d20624 100644 --- a/cvat-core/tests/api/cloud-storages.js +++ b/cvat-core/tests/api/cloud-storages.cjs @@ -1,5 +1,5 @@ // Copyright (C) 2021-2022 Intel Corporation -// Copyright (C) 2022 CVAT.ai Corporation +// Copyright (C) 2022-2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -11,15 +11,13 @@ jest.mock('../../src/server-proxy', () => { }; }); -// Initialize api -window.cvat = require('../../src/api').default; - +const cvat = require('../../src/api').default; const CloudStorage= require('../../src/cloud-storage').default; -const { cloudStoragesDummyData } = require('../mocks/dummy-data.mock'); +const { cloudStoragesDummyData } = require('../mocks/dummy-data.mock.cjs'); describe('Feature: get cloud storages', () => { test('get all cloud storages', async () => { - const result = await window.cvat.cloudStorages.get(); + const result = await cvat.cloudStorages.get(); expect(Array.isArray(result)).toBeTruthy(); expect(result).toHaveLength(cloudStoragesDummyData.count); for (const item of result) { @@ -28,7 +26,7 @@ describe('Feature: get cloud storages', () => { }); test('get cloud storage by id', async () => { - const result = await window.cvat.cloudStorages.get({ + const result = await cvat.cloudStorages.get({ id: 1, }); const cloudStorage = result[0]; @@ -48,7 +46,7 @@ describe('Feature: get cloud storages', () => { }); test('get a cloud storage by an unknown id', async () => { - const result = await window.cvat.cloudStorages.get({ + const result = await cvat.cloudStorages.get({ id: 10, }); expect(Array.isArray(result)).toBeTruthy(); @@ -57,10 +55,10 @@ describe('Feature: get cloud storages', () => { test('get a cloud storage by an invalid id', async () => { expect( - window.cvat.cloudStorages.get({ + cvat.cloudStorages.get({ id: '1', }), - ).rejects.toThrow(window.cvat.exceptions.ArgumentError); + ).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('get cloud storages by filters', async () => { @@ -74,22 +72,22 @@ describe('Feature: get cloud storages', () => { ], }; - const result = await window.cvat.cloudStorages.get({ filter: JSON.stringify(filter) }); + const result = await cvat.cloudStorages.get({ filter: JSON.stringify(filter) }); expect(result).toBeInstanceOf(Array); }); test('get cloud storage by invalid filters', async () => { expect( - window.cvat.cloudStorages.get({ + cvat.cloudStorages.get({ unknown: '5', }), - ).rejects.toThrow(window.cvat.exceptions.ArgumentError); + ).rejects.toThrow(cvat.exceptions.ArgumentError); }); }); describe('Feature: create a cloud storage', () => { test('create new cloud storage without an id', async () => { - const cloudStorage = new window.cvat.classes.CloudStorage({ + const cloudStorage = new cvat.classes.CloudStorage({ display_name: 'new cloud storage', provider_type: 'AZURE_CONTAINER', resource: 'newcontainer', @@ -113,7 +111,7 @@ describe('Feature: update a cloud storage', () => { ['specificAttributes', 'region=eu-west-1'], ]); - let result = await window.cvat.cloudStorages.get({ + let result = await cvat.cloudStorages.get({ id: 1, }); @@ -125,7 +123,7 @@ describe('Feature: update a cloud storage', () => { cloudStorage.save(); - result = await window.cvat.cloudStorages.get({ + result = await cvat.cloudStorages.get({ id: 1, }); [cloudStorage] = result; @@ -141,7 +139,7 @@ describe('Feature: update a cloud storage', () => { 'sub2/manifest.jsonl', ]; - let result = await window.cvat.cloudStorages.get({ + let result = await cvat.cloudStorages.get({ id: 1, }); let [cloudStorage] = result; @@ -149,7 +147,7 @@ describe('Feature: update a cloud storage', () => { cloudStorage.manifests = newManifests; cloudStorage.save(); - result = await window.cvat.cloudStorages.get({ + result = await cvat.cloudStorages.get({ id: 1, }); [cloudStorage] = result; @@ -160,12 +158,12 @@ describe('Feature: update a cloud storage', () => { describe('Feature: delete a cloud storage', () => { test('delete a cloud storage', async () => { - let result = await window.cvat.cloudStorages.get({ + let result = await cvat.cloudStorages.get({ id: 2, }); await result[0].delete(); - result = await window.cvat.cloudStorages.get({ + result = await cvat.cloudStorages.get({ id: 2, }); diff --git a/cvat-core/tests/api/frames.js b/cvat-core/tests/api/frames.cjs similarity index 65% rename from cvat-core/tests/api/frames.js rename to cvat-core/tests/api/frames.cjs index 0ee20eb9fda5..411cd3089916 100644 --- a/cvat-core/tests/api/frames.js +++ b/cvat-core/tests/api/frames.cjs @@ -1,5 +1,5 @@ // Copyright (C) 2020-2022 Intel Corporation -// Copyright (C) 2022 CVAT.ai Corporation +// Copyright (C) 2022-2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -7,48 +7,46 @@ jest.mock('../../src/server-proxy', () => { return { __esModule: true, - default: require('../mocks/server-proxy.mock'), + default: require('../mocks/server-proxy.mock.cjs'), }; }); -// Initialize api -window.cvat = require('../../src/api').default; - +const cvat = require('../../src/api').default; const { FrameData } = require('../../src/frames'); describe('Feature: get frame meta', () => { test('get meta for a task', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const frame = await task.frames.get(0); expect(frame).toBeInstanceOf(FrameData); }); test('get meta for a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 100 }))[0]; + const job = (await cvat.jobs.get({ jobID: 100 }))[0]; const frame = await job.frames.get(0); expect(frame).toBeInstanceOf(FrameData); }); test('pass frame number out of a task', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; - expect(task.frames.get(100)).rejects.toThrow(window.cvat.exceptions.ArgumentError); - expect(task.frames.get(-1)).rejects.toThrow(window.cvat.exceptions.ArgumentError); + const task = (await cvat.tasks.get({ id: 100 }))[0]; + expect(task.frames.get(100)).rejects.toThrow(cvat.exceptions.ArgumentError); + expect(task.frames.get(-1)).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('pass bad frame number', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; - expect(task.frames.get('5')).rejects.toThrow(window.cvat.exceptions.ArgumentError); + const task = (await cvat.tasks.get({ id: 100 }))[0]; + expect(task.frames.get('5')).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('do not pass any frame number', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; - expect(task.frames.get()).rejects.toThrow(window.cvat.exceptions.ArgumentError); + const task = (await cvat.tasks.get({ id: 100 }))[0]; + expect(task.frames.get()).rejects.toThrow(cvat.exceptions.ArgumentError); }); }); describe('Feature: delete/restore frame', () => { test('delete frame from job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 100 }))[0]; + const job = (await cvat.jobs.get({ jobID: 100 }))[0]; await job.annotations.clear(true); let frame = await job.frames.get(0); expect(frame.deleted).toBe(false); @@ -58,7 +56,7 @@ describe('Feature: delete/restore frame', () => { }); test('restore frame from job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 100 }))[0]; + const job = (await cvat.jobs.get({ jobID: 100 }))[0]; await job.annotations.clear(true); let frame = await job.frames.get(8); expect(frame.deleted).toBe(true); @@ -68,7 +66,7 @@ describe('Feature: delete/restore frame', () => { }); test('delete frame from task', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; await task.annotations.clear(true); let frame = await task.frames.get(1); expect(frame.deleted).toBe(false); @@ -78,7 +76,7 @@ describe('Feature: delete/restore frame', () => { }); test('restore frame from task', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; await task.annotations.clear(true); let frame = await task.frames.get(7); expect(frame.deleted).toBe(true); @@ -90,13 +88,13 @@ describe('Feature: delete/restore frame', () => { describe('Feature: get frame preview', () => { test('get frame preview for a task', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const frame = await task.frames.preview(); expect(typeof frame).toBe('string'); }); test('get frame preview for a job', async () => { - const job = (await window.cvat.jobs.get({ jobID: 100 }))[0]; + const job = (await cvat.jobs.get({ jobID: 100 }))[0]; const frame = await job.frames.preview(); expect(typeof frame).toBe('string'); }); diff --git a/cvat-core/tests/api/jobs.js b/cvat-core/tests/api/jobs.cjs similarity index 71% rename from cvat-core/tests/api/jobs.js rename to cvat-core/tests/api/jobs.cjs index 0faf0a3bcf21..b80d12e0e03c 100644 --- a/cvat-core/tests/api/jobs.js +++ b/cvat-core/tests/api/jobs.cjs @@ -1,5 +1,5 @@ // Copyright (C) 2020-2022 Intel Corporation -// Copyright (C) 2022 CVAT.ai Corporation +// Copyright (C) 2022-2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -7,19 +7,17 @@ jest.mock('../../src/server-proxy', () => { return { __esModule: true, - default: require('../mocks/server-proxy.mock'), + default: require('../mocks/server-proxy.mock.cjs'), }; }); -// Initialize api -window.cvat = require('../../src/api').default; - +const cvat = require('../../src/api').default; const { Job } = require('../../src/session'); // Test cases describe('Feature: get a list of jobs', () => { test('get jobs by a task id', async () => { - const result = await window.cvat.jobs.get({ + const result = await cvat.jobs.get({ filter: JSON.stringify({ and: [{ '==': [{ var: 'task_id' }, 3] }] }), }); expect(Array.isArray(result)).toBeTruthy(); @@ -33,7 +31,7 @@ describe('Feature: get a list of jobs', () => { }); test('get jobs by an unknown task id', async () => { - const result = await window.cvat.jobs.get({ + const result = await cvat.jobs.get({ filter: JSON.stringify({ and: [{ '==': [{ var: 'task_id' }, 50] }] }), }); expect(Array.isArray(result)).toBeTruthy(); @@ -41,7 +39,7 @@ describe('Feature: get a list of jobs', () => { }); test('get jobs by a job id', async () => { - const result = await window.cvat.jobs.get({ + const result = await cvat.jobs.get({ jobID: 1, }); expect(Array.isArray(result)).toBeTruthy(); @@ -50,7 +48,7 @@ describe('Feature: get a list of jobs', () => { }); test('get jobs by an unknown job id', async () => { - const result = await window.cvat.jobs.get({ + const result = await cvat.jobs.get({ jobID: 50, }); expect(Array.isArray(result)).toBeTruthy(); @@ -59,41 +57,41 @@ describe('Feature: get a list of jobs', () => { test('get jobs by invalid filter with both taskID and jobID', async () => { expect( - window.cvat.jobs.get({ + cvat.jobs.get({ taskID: 1, jobID: 1, }), - ).rejects.toThrow(window.cvat.exceptions.ArgumentError); + ).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('get jobs by invalid job id', async () => { expect( - window.cvat.jobs.get({ + cvat.jobs.get({ jobID: '1', }), - ).rejects.toThrow(window.cvat.exceptions.ArgumentError); + ).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('get jobs by invalid task id', async () => { expect( - window.cvat.jobs.get({ + cvat.jobs.get({ taskID: '1', }), - ).rejects.toThrow(window.cvat.exceptions.ArgumentError); + ).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('get jobs by unknown filter', async () => { expect( - window.cvat.jobs.get({ + cvat.jobs.get({ unknown: 50, }), - ).rejects.toThrow(window.cvat.exceptions.ArgumentError); + ).rejects.toThrow(cvat.exceptions.ArgumentError); }); }); describe('Feature: save job', () => { test('save stage and state of a job', async () => { - const result = await window.cvat.jobs.get({ jobID: 1 }); + const result = await cvat.jobs.get({ jobID: 1 }); result[0].stage = 'validation'; result[0].state = 'new'; @@ -104,15 +102,15 @@ describe('Feature: save job', () => { }); test('save invalid status of a job', async () => { - const result = await window.cvat.jobs.get({ + const result = await cvat.jobs.get({ jobID: 1, }); expect(() => { result[0].state = 'invalid'; - }).toThrow(window.cvat.exceptions.ArgumentError); + }).toThrow(cvat.exceptions.ArgumentError); expect(() => { result[0].stage = 'invalid'; - }).toThrow(window.cvat.exceptions.ArgumentError); + }).toThrow(cvat.exceptions.ArgumentError); }); }); diff --git a/cvat-core/tests/api/object-state.js b/cvat-core/tests/api/object-state.cjs similarity index 67% rename from cvat-core/tests/api/object-state.js rename to cvat-core/tests/api/object-state.cjs index 65ce7b1ad906..2d6f55593393 100644 --- a/cvat-core/tests/api/object-state.js +++ b/cvat-core/tests/api/object-state.cjs @@ -1,5 +1,5 @@ // Copyright (C) 2020-2022 Intel Corporation -// Copyright (C) 2022 CVAT.ai Corporation +// Copyright (C) 2022-2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -7,19 +7,18 @@ jest.mock('../../src/server-proxy', () => { return { __esModule: true, - default: require('../mocks/server-proxy.mock'), + default: require('../mocks/server-proxy.mock.cjs'), }; }); -// Initialize api -window.cvat = require('../../src/api').default; +const cvat = require('../../src/api').default; describe('Feature: set attributes for an object state', () => { test('set a valid value', () => { - const state = new window.cvat.classes.ObjectState({ - label: new window.cvat.classes.Label({ name: 'test label', id: 1, color: '#000000', attributes: [] }), - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.RECTANGLE, + const state = new cvat.classes.ObjectState({ + label: new cvat.classes.Label({ name: 'test label', id: 1, color: '#000000', attributes: [] }), + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.RECTANGLE, frame: 5, }); @@ -33,36 +32,36 @@ describe('Feature: set attributes for an object state', () => { }); test('trying to set a bad value', () => { - const state = new window.cvat.classes.ObjectState({ - label: new window.cvat.classes.Label({ name: 'test label', id: 1, color: '#000000', attributes: [] }), - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.RECTANGLE, + const state = new cvat.classes.ObjectState({ + label: new cvat.classes.Label({ name: 'test label', id: 1, color: '#000000', attributes: [] }), + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.RECTANGLE, frame: 5, }); let attributes = 'bad attribute'; expect(() => { state.attributes = attributes; - }).toThrow(window.cvat.exceptions.ArgumentError); + }).toThrow(cvat.exceptions.ArgumentError); attributes = 5; expect(() => { state.attributes = attributes; - }).toThrow(window.cvat.exceptions.ArgumentError); + }).toThrow(cvat.exceptions.ArgumentError); attributes = false; expect(() => { state.attributes = attributes; - }).toThrow(window.cvat.exceptions.ArgumentError); + }).toThrow(cvat.exceptions.ArgumentError); }); }); describe('Feature: set points for an object state', () => { test('set a valid value', () => { - const state = new window.cvat.classes.ObjectState({ - label: new window.cvat.classes.Label({ name: 'test label', id: 1, color: '#000000', attributes: [] }), - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.RECTANGLE, + const state = new cvat.classes.ObjectState({ + label: new cvat.classes.Label({ name: 'test label', id: 1, color: '#000000', attributes: [] }), + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.RECTANGLE, frame: 5, }); @@ -72,48 +71,48 @@ describe('Feature: set points for an object state', () => { }); test('trying to set a bad value', () => { - const state = new window.cvat.classes.ObjectState({ - label: new window.cvat.classes.Label({ name: 'test label', id: 1, color: '#000000', attributes: [] }), - objectType: window.cvat.enums.ObjectType.SHAPE, - shapeType: window.cvat.enums.ShapeType.RECTANGLE, + const state = new cvat.classes.ObjectState({ + label: new cvat.classes.Label({ name: 'test label', id: 1, color: '#000000', attributes: [] }), + objectType: cvat.enums.ObjectType.SHAPE, + shapeType: cvat.enums.ShapeType.RECTANGLE, frame: 5, }); let points = 'bad points'; expect(() => { state.points = points; - }).toThrow(window.cvat.exceptions.ArgumentError); + }).toThrow(cvat.exceptions.ArgumentError); points = 5; expect(() => { state.points = points; - }).toThrow(window.cvat.exceptions.ArgumentError); + }).toThrow(cvat.exceptions.ArgumentError); points = false; expect(() => { state.points = points; - }).toThrow(window.cvat.exceptions.ArgumentError); + }).toThrow(cvat.exceptions.ArgumentError); points = {}; expect(() => { state.points = points; - }).toThrow(window.cvat.exceptions.ArgumentError); + }).toThrow(cvat.exceptions.ArgumentError); }); }); describe('Feature: save object from its state', () => { test('save valid values for a shape', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const annotations = await task.annotations.get(0); let state = annotations[0]; - expect(state.objectType).toBe(window.cvat.enums.ObjectType.SHAPE); - expect(state.shapeType).toBe(window.cvat.enums.ShapeType.RECTANGLE); + expect(state.objectType).toBe(cvat.enums.ObjectType.SHAPE); + expect(state.shapeType).toBe(cvat.enums.ShapeType.RECTANGLE); state.points = [0, 0, 100, 100]; state.occluded = true; [, state.label] = task.labels; state.lock = true; state = await state.save(); - expect(state).toBeInstanceOf(window.cvat.classes.ObjectState); + expect(state).toBeInstanceOf(cvat.classes.ObjectState); expect(state.label.id).toBe(task.labels[1].id); expect(state.lock).toBe(true); expect(state.occluded).toBe(true); @@ -121,11 +120,11 @@ describe('Feature: save object from its state', () => { }); test('save valid values for a track', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; const annotations = await task.annotations.get(10); let state = annotations[1]; - expect(state.objectType).toBe(window.cvat.enums.ObjectType.TRACK); - expect(state.shapeType).toBe(window.cvat.enums.ShapeType.RECTANGLE); + expect(state.objectType).toBe(cvat.enums.ObjectType.TRACK); + expect(state.shapeType).toBe(cvat.enums.ShapeType.RECTANGLE); state.occluded = true; state.lock = true; @@ -138,7 +137,7 @@ describe('Feature: save object from its state', () => { }; state = await state.save(); - expect(state).toBeInstanceOf(window.cvat.classes.ObjectState); + expect(state).toBeInstanceOf(cvat.classes.ObjectState); expect(state.lock).toBe(true); expect(state.occluded).toBe(true); expect(state.points).toEqual([100, 200, 200, 400]); @@ -163,63 +162,63 @@ describe('Feature: save object from its state', () => { }); test('save bad values for a shape', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const annotations = await task.annotations.get(0); const state = annotations[0]; state.occluded = 'false'; - await expect(state.save()).rejects.toThrow(window.cvat.exceptions.ArgumentError); + await expect(state.save()).rejects.toThrow(cvat.exceptions.ArgumentError); state.occluded = false; - expect(() => state.points = ['100', '50', '100', {}]).toThrow(window.cvat.exceptions.ArgumentError); + expect(() => state.points = ['100', '50', '100', {}]).toThrow(cvat.exceptions.ArgumentError); state.lock = 'true'; - await expect(state.save()).rejects.toThrow(window.cvat.exceptions.ArgumentError); + await expect(state.save()).rejects.toThrow(cvat.exceptions.ArgumentError); const oldLabel = state.label; state.lock = false; state.label = 1; - await expect(state.save()).rejects.toThrow(window.cvat.exceptions.ArgumentError); + await expect(state.save()).rejects.toThrow(cvat.exceptions.ArgumentError); state.label = oldLabel; state.attributes = { 1: {}, 2: false, 3: () => {} }; - await expect(state.save()).rejects.toThrow(window.cvat.exceptions.ArgumentError); + await expect(state.save()).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('save bad values for a track', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; const annotations = await task.annotations.get(0); const state = annotations[0]; state.occluded = 'false'; - await expect(state.save()).rejects.toThrow(window.cvat.exceptions.ArgumentError); + await expect(state.save()).rejects.toThrow(cvat.exceptions.ArgumentError); state.occluded = false; - expect(() => state.points = ['100', '50', '100', {}]).toThrow(window.cvat.exceptions.ArgumentError); + expect(() => state.points = ['100', '50', '100', {}]).toThrow(cvat.exceptions.ArgumentError); state.lock = 'true'; - await expect(state.save()).rejects.toThrow(window.cvat.exceptions.ArgumentError); + await expect(state.save()).rejects.toThrow(cvat.exceptions.ArgumentError); const oldLabel = state.label; state.lock = false; state.label = 1; - await expect(state.save()).rejects.toThrow(window.cvat.exceptions.ArgumentError); + await expect(state.save()).rejects.toThrow(cvat.exceptions.ArgumentError); state.label = oldLabel; state.outside = 5; - await expect(state.save()).rejects.toThrow(window.cvat.exceptions.ArgumentError); + await expect(state.save()).rejects.toThrow(cvat.exceptions.ArgumentError); state.outside = false; state.keyframe = '10'; - await expect(state.save()).rejects.toThrow(window.cvat.exceptions.ArgumentError); + await expect(state.save()).rejects.toThrow(cvat.exceptions.ArgumentError); state.keyframe = true; state.attributes = { 1: {}, 2: false, 3: () => {} }; - await expect(state.save()).rejects.toThrow(window.cvat.exceptions.ArgumentError); + await expect(state.save()).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('trying to change locked shape', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; const annotations = await task.annotations.get(0); let state = annotations[0]; @@ -233,7 +232,7 @@ describe('Feature: save object from its state', () => { }); test('trying to set too small area of a shape', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; const annotations = await task.annotations.get(0); let state = annotations[0]; @@ -244,7 +243,7 @@ describe('Feature: save object from its state', () => { }); test('trying to set too small area of a track', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; const annotations = await task.annotations.get(0); let state = annotations[0]; @@ -255,7 +254,7 @@ describe('Feature: save object from its state', () => { }); test('trying to set too small length of a shape', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const annotations = await task.annotations.get(0); let state = annotations[8]; @@ -268,7 +267,7 @@ describe('Feature: save object from its state', () => { describe('Feature: delete object', () => { test('delete a shape', async () => { - const task = (await window.cvat.tasks.get({ id: 100 }))[0]; + const task = (await cvat.tasks.get({ id: 100 }))[0]; const annotationsBefore = await task.annotations.get(0); const { length } = annotationsBefore; await annotationsBefore[0].delete(0); @@ -277,7 +276,7 @@ describe('Feature: delete object', () => { }); test('delete a track', async () => { - const task = (await window.cvat.tasks.get({ id: 101 }))[0]; + const task = (await cvat.tasks.get({ id: 101 }))[0]; const annotationsBefore = await task.annotations.get(0); const { length } = annotationsBefore; await annotationsBefore[0].delete(0); @@ -288,7 +287,7 @@ describe('Feature: delete object', () => { describe('Feature: skeletons', () => { test('lock, hide, occluded, outside for skeletons', async () => { - const job = (await window.cvat.jobs.get({ jobID: 40 }))[0]; + const job = (await cvat.jobs.get({ jobID: 40 }))[0]; let [skeleton] = await job.annotations.get(0, false, JSON.parse('[{"and":[{"==":[{"var":"shape"},"skeleton"]}]}]')); expect(skeleton.shapeType).toBe('skeleton'); skeleton.lock = true; diff --git a/cvat-core/tests/api/plugins.js b/cvat-core/tests/api/plugins.js deleted file mode 100644 index 8b791a894558..000000000000 --- a/cvat-core/tests/api/plugins.js +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright (C) 2020-2022 Intel Corporation -// Copyright (C) 2022 CVAT.ai Corporation -// -// SPDX-License-Identifier: MIT - -// Setup mock for a server -jest.mock('../../src/server-proxy', () => { - return { - __esModule: true, - default: require('../mocks/server-proxy.mock'), - }; -}); - -// Initialize api -window.cvat = require('../../src/api').default; - -describe('Feature: dummy feature', () => { - test('dummy test', async () => { - // TODO: Write test after design of plugin system - }); -}); - -/* -const plugin = { - name: 'Example Plugin', - description: 'This example plugin demonstrates how plugin system in CVAT works', - cvat: { - server: { - about: { - async leave(self, result) { - result.plugins = await self.internal.getPlugins(); - return result; - }, - }, - }, - classes: { - Job: { - prototype: { - annotations: { - put: { - enter(self, objects) { - for (const obj of objects) { - if (obj.type !== 'tag') { - const points = obj.position.map((point) => { - const roundPoint = { - x: Math.round(point.x), - y: Math.round(point.y), - }; - return roundPoint; - }); - obj.points = points; - } - } - }, - }, - }, - }, - }, - }, - }, - internal: { - async getPlugins() { - const plugins = await window.cvat.plugins.list(); - return plugins.map((el) => { - const obj = { - name: el.name, - description: el.description, - }; - return obj; - }); - }, - }, -}; - -async function test() { - await window.cvat.plugins.register(plugin); - await window.cvat.server.login('admin', 'nimda760'); - - try { - console.log(JSON.stringify(await window.cvat.server.about())); - console.log(await window.cvat.users.get({ self: false })); - console.log(await window.cvat.users.get({ self: true })); - console.log(JSON.stringify(await window.cvat.jobs.get({ taskID: 8 }))); - console.log(JSON.stringify(await window.cvat.jobs.get({ jobID: 10 }))); - console.log(await window.cvat.tasks.get()); - console.log(await window.cvat.tasks.get({ id: 8 })); - console.log('Done.'); - } catch (exception) { - console.log(exception.constructor.name); - console.log(exception.message); - } -} -*/ diff --git a/cvat-core/tests/api/projects.js b/cvat-core/tests/api/projects.cjs similarity index 79% rename from cvat-core/tests/api/projects.js rename to cvat-core/tests/api/projects.cjs index 33473d9032ae..225c61a9248c 100644 --- a/cvat-core/tests/api/projects.js +++ b/cvat-core/tests/api/projects.cjs @@ -1,5 +1,5 @@ // Copyright (C) 2019-2022 Intel Corporation -// Copyright (C) 2022 CVAT.ai Corporation +// Copyright (C) 2022-2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -7,18 +7,16 @@ jest.mock('../../src/server-proxy', () => { return { __esModule: true, - default: require('../mocks/server-proxy.mock'), + default: require('../mocks/server-proxy.mock.cjs'), }; }); -// Initialize api -window.cvat = require('../../src/api').default; - +const cvat = require('../../src/api').default; const Project = require('../../src/project').default; describe('Feature: get projects', () => { test('get all projects', async () => { - const result = await window.cvat.projects.get(); + const result = await cvat.projects.get(); expect(Array.isArray(result)).toBeTruthy(); expect(result).toHaveLength(2); for (const el of result) { @@ -27,7 +25,7 @@ describe('Feature: get projects', () => { }); test('get project by id', async () => { - const result = await window.cvat.projects.get({ + const result = await cvat.projects.get({ id: 2, }); @@ -38,7 +36,7 @@ describe('Feature: get projects', () => { }); test('get a project by an unknown id', async () => { - const result = await window.cvat.projects.get({ + const result = await cvat.projects.get({ id: 1, }); expect(Array.isArray(result)).toBeTruthy(); @@ -47,14 +45,14 @@ describe('Feature: get projects', () => { test('get a project by an invalid id', async () => { expect( - window.cvat.projects.get({ + cvat.projects.get({ id: '1', }), - ).rejects.toThrow(window.cvat.exceptions.ArgumentError); + ).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('get projects by filters', async () => { - const result = await window.cvat.projects.get({ + const result = await cvat.projects.get({ filter: '{"and":[{"==":[{"var":"status"},"completed"]}]}', }); expect(result).toBeInstanceOf(Array); @@ -62,16 +60,16 @@ describe('Feature: get projects', () => { test('get projects by invalid query', async () => { expect( - window.cvat.projects.get({ + cvat.projects.get({ unknown: '5', }), - ).rejects.toThrow(window.cvat.exceptions.ArgumentError); + ).rejects.toThrow(cvat.exceptions.ArgumentError); }); }); describe('Feature: save a project', () => { test('save some changed fields in a project', async () => { - let result = await window.cvat.projects.get({ + let result = await cvat.projects.get({ id: 2, }); @@ -80,7 +78,7 @@ describe('Feature: save a project', () => { await result[0].save(); - result = await window.cvat.projects.get({ + result = await cvat.projects.get({ id: 2, }); @@ -89,12 +87,12 @@ describe('Feature: save a project', () => { }); test('save some new labels in a project', async () => { - let result = await window.cvat.projects.get({ + let result = await cvat.projects.get({ id: 6, }); const labelsLength = result[0].labels.length; - const newLabel = new window.cvat.classes.Label({ + const newLabel = new cvat.classes.Label({ name: "My boss's car", attributes: [ { @@ -110,7 +108,7 @@ describe('Feature: save a project', () => { result[0].labels = [...result[0].labels, newLabel]; await result[0].save(); - result = await window.cvat.projects.get({ + result = await cvat.projects.get({ id: 6, }); @@ -125,7 +123,7 @@ describe('Feature: save a project', () => { }); test('save new project without an id', async () => { - const project = new window.cvat.classes.Project({ + const project = new cvat.classes.Project({ name: 'New Empty Project', labels: [ { @@ -151,12 +149,12 @@ describe('Feature: save a project', () => { describe('Feature: delete a project', () => { test('delete a project', async () => { - let result = await window.cvat.projects.get({ + let result = await cvat.projects.get({ id: 6, }); await result[0].delete(); - result = await window.cvat.projects.get({ + result = await cvat.projects.get({ id: 6, }); @@ -167,7 +165,7 @@ describe('Feature: delete a project', () => { describe('Feature: delete a label', () => { test('delete a label', async () => { - let result = await window.cvat.projects.get({ + let result = await cvat.projects.get({ id: 2, }); @@ -175,7 +173,7 @@ describe('Feature: delete a label', () => { const deletedLabels = result[0].labels.filter((el) => el.name !== 'bicycle'); result[0].labels = deletedLabels; result[0].save(); - result = await window.cvat.projects.get({ + result = await cvat.projects.get({ id: 2, }); expect(result[0].labels).toHaveLength(labelsLength - 1); diff --git a/cvat-core/tests/api/server.js b/cvat-core/tests/api/server.cjs similarity index 76% rename from cvat-core/tests/api/server.js rename to cvat-core/tests/api/server.cjs index 138388a8a48d..4b1308509033 100644 --- a/cvat-core/tests/api/server.js +++ b/cvat-core/tests/api/server.cjs @@ -1,5 +1,5 @@ // Copyright (C) 2020-2022 Intel Corporation -// Copyright (C) 2022 CVAT.ai Corporation +// Copyright (C) 2022-2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -7,18 +7,17 @@ jest.mock('../../src/server-proxy', () => { return { __esModule: true, - default: require('../mocks/server-proxy.mock'), + default: require('../mocks/server-proxy.mock.cjs'), }; }); -// Initialize api -window.cvat = require('../../src/api').default; +const cvat = require('../../src/api').default; const { AnnotationFormats, Loader, Dumper } = require('../../src/annotation-formats'); // Test cases describe('Feature: get info about cvat', () => { test('get info about server', async () => { - const result = await window.cvat.server.about(); + const result = await cvat.server.about(); expect(result).toBeInstanceOf(Object); expect('name' in result).toBeTruthy(); expect('description' in result).toBeTruthy(); @@ -28,32 +27,32 @@ describe('Feature: get info about cvat', () => { // describe('Feature: get share storage info', () => { // test('get files in a root of a share storage', async () => { -// const result = await window.cvat.server.share(); +// const result = await cvat.server.share(); // expect(Array.isArray(result)).toBeTruthy(); // expect(result).toHaveLength(5); // }); // test('get files in a some dir of a share storage', async () => { -// const result = await window.cvat.server.share('images'); +// const result = await cvat.server.share('images'); // expect(Array.isArray(result)).toBeTruthy(); // expect(result).toHaveLength(8); // }); // test('get files in a some unknown dir of a share storage', async () => { -// expect(window.cvat.server.share('Unknown Directory')).rejects.toThrow(window.cvat.exceptions.ServerError); +// expect(cvat.server.share('Unknown Directory')).rejects.toThrow(cvat.exceptions.ServerError); // }); // }); // describe('Feature: get annotation formats', () => { // test('get annotation formats from a server', async () => { -// const result = await window.cvat.server.formats(); +// const result = await cvat.server.formats(); // expect(result).toBeInstanceOf(AnnotationFormats); // }); // }); // describe('Feature: get annotation loaders', () => { // test('get annotation formats from a server', async () => { -// const result = await window.cvat.server.formats(); +// const result = await cvat.server.formats(); // expect(result).toBeInstanceOf(AnnotationFormats); // const { loaders } = result; // expect(Array.isArray(loaders)).toBeTruthy(); @@ -65,7 +64,7 @@ describe('Feature: get info about cvat', () => { // describe('Feature: get annotation dumpers', () => { // test('get annotation formats from a server', async () => { -// const result = await window.cvat.server.formats(); +// const result = await cvat.server.formats(); // expect(result).toBeInstanceOf(AnnotationFormats); // const { dumpers } = result; // expect(Array.isArray(dumpers)).toBeTruthy(); diff --git a/cvat-core/tests/api/tasks.js b/cvat-core/tests/api/tasks.cjs similarity index 86% rename from cvat-core/tests/api/tasks.js rename to cvat-core/tests/api/tasks.cjs index 02957f1078ec..f82bfaf67e11 100644 --- a/cvat-core/tests/api/tasks.js +++ b/cvat-core/tests/api/tasks.cjs @@ -1,5 +1,5 @@ // Copyright (C) 2020-2022 Intel Corporation -// Copyright (C) 2022 CVAT.ai Corporation +// Copyright (C) 2022-2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -7,19 +7,17 @@ jest.mock('../../src/server-proxy', () => { return { __esModule: true, - default: require('../mocks/server-proxy.mock'), + default: require('../mocks/server-proxy.mock.cjs'), }; }); -// Initialize api -window.cvat = require('../../src/api').default; - +const cvat = require('../../src/api').default; const { Task } = require('../../src/session'); // Test cases describe('Feature: get a list of tasks', () => { test('get all tasks', async () => { - const result = await window.cvat.tasks.get(); + const result = await cvat.tasks.get(); expect(Array.isArray(result)).toBeTruthy(); expect(result).toHaveLength(7); for (const el of result) { @@ -28,7 +26,7 @@ describe('Feature: get a list of tasks', () => { }); test('get a task by an id', async () => { - const result = await window.cvat.tasks.get({ + const result = await cvat.tasks.get({ id: 3, }); expect(Array.isArray(result)).toBeTruthy(); @@ -38,7 +36,7 @@ describe('Feature: get a list of tasks', () => { }); test('get a task with skeletons by an id', async () => { - const result = await window.cvat.tasks.get({ + const result = await cvat.tasks.get({ id: 40, }); @@ -49,7 +47,7 @@ describe('Feature: get a list of tasks', () => { expect(result[0].labels).toBeInstanceOf(Array); for (const label of result[0].labels) { - expect(label).toBeInstanceOf(window.cvat.classes.Label); + expect(label).toBeInstanceOf(cvat.classes.Label); if (label.type === 'skeleton') { expect(label.hasParent).toBe(false); expect(label.structure.sublabels).toBeInstanceOf(Array); @@ -57,7 +55,7 @@ describe('Feature: get a list of tasks', () => { expect(label.structure.svg.length).not.toBe(0); for (const sublabel of label.structure.sublabels) { - expect(sublabel).toBeInstanceOf(window.cvat.classes.Label); + expect(sublabel).toBeInstanceOf(cvat.classes.Label); expect(sublabel.hasParent).toBe(true); } } @@ -65,7 +63,7 @@ describe('Feature: get a list of tasks', () => { }); test('get a task by an unknown id', async () => { - const result = await window.cvat.tasks.get({ + const result = await cvat.tasks.get({ id: 50, }); expect(Array.isArray(result)).toBeTruthy(); @@ -74,14 +72,14 @@ describe('Feature: get a list of tasks', () => { test('get a task by an invalid id', async () => { expect( - window.cvat.tasks.get({ + cvat.tasks.get({ id: '50', }), - ).rejects.toThrow(window.cvat.exceptions.ArgumentError); + ).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('get tasks by filters', async () => { - const result = await window.cvat.tasks.get({ + const result = await cvat.tasks.get({ filter: '{"and":[{"==":[{"var":"filter"},"interpolation"]}]}', }); expect(result).toBeInstanceOf(Array); @@ -89,16 +87,16 @@ describe('Feature: get a list of tasks', () => { test('get tasks by invalid query', async () => { expect( - window.cvat.tasks.get({ + cvat.tasks.get({ unknown: '5', }), - ).rejects.toThrow(window.cvat.exceptions.ArgumentError); + ).rejects.toThrow(cvat.exceptions.ArgumentError); }); }); describe('Feature: save a task', () => { test('save some changed fields in a task', async () => { - let result = await window.cvat.tasks.get({ + let result = await cvat.tasks.get({ id: 2, }); @@ -106,7 +104,7 @@ describe('Feature: save a task', () => { result[0].name = 'New Task Name'; result[0].save(); - result = await window.cvat.tasks.get({ + result = await cvat.tasks.get({ id: 2, }); @@ -115,12 +113,12 @@ describe('Feature: save a task', () => { }); test('save some new labels in a task', async () => { - let result = await window.cvat.tasks.get({ + let result = await cvat.tasks.get({ id: 2, }); const labelsLength = result[0].labels.length; - const newLabel = new window.cvat.classes.Label({ + const newLabel = new cvat.classes.Label({ name: "Another label", attributes: [ { @@ -136,7 +134,7 @@ describe('Feature: save a task', () => { result[0].labels = [...result[0].labels, newLabel]; await result[0].save(); - result = await window.cvat.tasks.get({ + result = await cvat.tasks.get({ id: 2, }); @@ -151,7 +149,7 @@ describe('Feature: save a task', () => { }); test('save new task without an id', async () => { - const task = new window.cvat.classes.Task({ + const task = new cvat.classes.Task({ name: 'New Task', labels: [ { @@ -176,7 +174,7 @@ describe('Feature: save a task', () => { }); test('save new task in project', async () => { - const task = new window.cvat.classes.Task({ + const task = new cvat.classes.Task({ name: 'New Task', project_id: 2, bug_tracker: 'bug tracker value', @@ -201,7 +199,7 @@ describe('Feature: save a task', () => { `; - const task = new window.cvat.classes.Task({ + const task = new cvat.classes.Task({ name: 'task with skeletons', labels: [{ name: 'star skeleton', @@ -240,12 +238,12 @@ describe('Feature: save a task', () => { describe('Feature: delete a task', () => { test('delete a task', async () => { - let result = await window.cvat.tasks.get({ + let result = await cvat.tasks.get({ id: 3, }); await result[0].delete(); - result = await window.cvat.tasks.get({ + result = await cvat.tasks.get({ id: 3, }); @@ -256,7 +254,7 @@ describe('Feature: delete a task', () => { describe('Feature: delete a label', () => { test('delete a label', async () => { - let result = await window.cvat.tasks.get({ + let result = await cvat.tasks.get({ id: 100, }); @@ -264,7 +262,7 @@ describe('Feature: delete a label', () => { const deletedLabels = result[0].labels.filter((el) => el.name !== 'person'); result[0].labels = deletedLabels; result[0].save(); - result = await window.cvat.tasks.get({ + result = await cvat.tasks.get({ id: 100, }); expect(result[0].labels).toHaveLength(labelsLength - 1); diff --git a/cvat-core/tests/api/user.js b/cvat-core/tests/api/user.cjs similarity index 68% rename from cvat-core/tests/api/user.js rename to cvat-core/tests/api/user.cjs index 96e965ffa824..bf47cd072991 100644 --- a/cvat-core/tests/api/user.js +++ b/cvat-core/tests/api/user.cjs @@ -1,5 +1,5 @@ // Copyright (C) 2020-2022 Intel Corporation -// Copyright (C) 2022 CVAT.ai Corporation +// Copyright (C) 2022-2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -7,19 +7,17 @@ jest.mock('../../src/server-proxy', () => { return { __esModule: true, - default: require('../mocks/server-proxy.mock'), + default: require('../mocks/server-proxy.mock.cjs'), }; }); -// Initialize api -window.cvat = require('../../src/api').default; - +const cvat = require('../../src/api').default; const User = require('../../src/user').default; // Test cases describe('Feature: get a list of users', () => { test('get all users', async () => { - const result = await window.cvat.users.get(); + const result = await cvat.users.get(); expect(Array.isArray(result)).toBeTruthy(); expect(result).toHaveLength(2); for (const el of result) { @@ -28,7 +26,7 @@ describe('Feature: get a list of users', () => { }); test('get only self', async () => { - const result = await window.cvat.users.get({ + const result = await cvat.users.get({ self: true, }); expect(Array.isArray(result)).toBeTruthy(); @@ -38,17 +36,17 @@ describe('Feature: get a list of users', () => { test('get users with unknown filter key', async () => { expect( - window.cvat.users.get({ + cvat.users.get({ unknown: '50', }), - ).rejects.toThrow(window.cvat.exceptions.ArgumentError); + ).rejects.toThrow(cvat.exceptions.ArgumentError); }); test('get users with invalid filter key', async () => { expect( - window.cvat.users.get({ + cvat.users.get({ self: 1, }), - ).rejects.toThrow(window.cvat.exceptions.ArgumentError); + ).rejects.toThrow(cvat.exceptions.ArgumentError); }); }); diff --git a/cvat-core/tests/api/webhooks.js b/cvat-core/tests/api/webhooks.cjs similarity index 86% rename from cvat-core/tests/api/webhooks.js rename to cvat-core/tests/api/webhooks.cjs index 9a2c2283958b..45459a00f890 100644 --- a/cvat-core/tests/api/webhooks.js +++ b/cvat-core/tests/api/webhooks.cjs @@ -1,4 +1,4 @@ -// Copyright (C) 2022 CVAT.ai Corporation +// Copyright (C) 2022-2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -10,16 +10,14 @@ jest.mock('../../src/server-proxy', () => { }; }); -// Initialize api -window.cvat = require('../../src/api').default; - +const cvat = require('../../src/api').default; const Webhook = require('../../src/webhook').default; -const { webhooksDummyData, webhooksEventsDummyData } = require('../mocks/dummy-data.mock'); +const { webhooksDummyData, webhooksEventsDummyData } = require('../mocks/dummy-data.mock.cjs'); const { WebhookSourceType } = require('../../src/enums'); describe('Feature: get webhooks', () => { test('get all webhooks', async () => { - const result = await window.cvat.webhooks.get({}); + const result = await cvat.webhooks.get({}); expect(Array.isArray(result)).toBeTruthy(); expect(result).toHaveLength(webhooksDummyData.count); for (const item of result) { @@ -42,7 +40,7 @@ describe('Feature: get webhooks', () => { }); test('get webhook by id', async () => { - const result = await window.cvat.webhooks.get({ + const result = await cvat.webhooks.get({ id: 1, }); const [webhook] = result; @@ -63,7 +61,7 @@ describe('Feature: get webhooks', () => { describe('Feature: create a webhook', () => { test('create new webhook', async () => { - const webhook = new window.cvat.classes.Webhook({ + const webhook = new cvat.classes.Webhook({ description: 'New webhook', target_url: 'https://localhost:3001/hook', content_type: 'application/json', @@ -88,7 +86,7 @@ describe('Feature: update a webhook', () => { ['targetURL', 'https://localhost:3001/new/url'], ]); - let result = await window.cvat.webhooks.get({ + let result = await cvat.webhooks.get({ id: 1, }); let [webhook] = result; @@ -97,7 +95,7 @@ describe('Feature: update a webhook', () => { } webhook.save(); - result = await window.cvat.webhooks.get({ + result = await cvat.webhooks.get({ id: 1, }); [webhook] = result; @@ -109,13 +107,13 @@ describe('Feature: update a webhook', () => { describe('Feature: delete a webhook', () => { test('delete a webhook', async () => { - let result = await window.cvat.webhooks.get({ + let result = await cvat.webhooks.get({ id: 2, }); const [webhook] = result; await webhook.delete(); - result = await window.cvat.webhooks.get({ + result = await cvat.webhooks.get({ id: 2, }); expect(Array.isArray(result)).toBeTruthy(); diff --git a/cvat-core/tests/mocks/dummy-data.mock.js b/cvat-core/tests/mocks/dummy-data.mock.cjs similarity index 100% rename from cvat-core/tests/mocks/dummy-data.mock.js rename to cvat-core/tests/mocks/dummy-data.mock.cjs diff --git a/cvat-core/tests/mocks/server-proxy.mock.js b/cvat-core/tests/mocks/server-proxy.mock.cjs similarity index 99% rename from cvat-core/tests/mocks/server-proxy.mock.js rename to cvat-core/tests/mocks/server-proxy.mock.cjs index 06020c20a840..b2e1f58cb5f8 100644 --- a/cvat-core/tests/mocks/server-proxy.mock.js +++ b/cvat-core/tests/mocks/server-proxy.mock.cjs @@ -19,7 +19,7 @@ const { webhooksDummyData, webhooksEventsDummyData, jobsDummyData, -} = require('./dummy-data.mock'); +} = require('./dummy-data.mock.cjs'); function QueryStringToJSON(query, ignoreList = []) { const pairs = [...new URLSearchParams(query).entries()]; diff --git a/cvat-core/tsconfig.json b/cvat-core/tsconfig.json index ba78d461d1f0..3edfd4579191 100644 --- a/cvat-core/tsconfig.json +++ b/cvat-core/tsconfig.json @@ -1,8 +1,8 @@ { "compilerOptions": { - "target": "es2020", + "target": "ESNext", "allowJs": true, - "module": "commonjs", + "module": "esnext", "moduleResolution": "node", "esModuleInterop": true, "isolatedModules": true, diff --git a/cvat-core/webpack.config.cjs b/cvat-core/webpack.config.cjs new file mode 100644 index 000000000000..7d9190cb3e3d --- /dev/null +++ b/cvat-core/webpack.config.cjs @@ -0,0 +1,59 @@ +// Copyright (C) 2020-2022 Intel Corporation +// Copyright (C) 2023 CVAT.ai Corporation +// +// SPDX-License-Identifier: MIT + +const path = require('path'); +const CopyPlugin = require('copy-webpack-plugin'); + +const webConfig = { + target: 'web', + mode: 'production', + devtool: 'source-map', + entry: { + 'cvat-core': './src/api.ts', + }, + output: { + path: path.resolve(__dirname, 'dist'), + filename: '[name].[contenthash].min.js', + library: 'cvatCore', + libraryTarget: 'window', + }, + resolve: { + extensions: ['.ts', '.js'], + fallback: { + url: false, + }, + }, + module: { + rules: [ + { + test: /.ts?$/, + exclude: /node_modules/, + use: { + loader: 'babel-loader', + options: { + plugins: [ + '@babel/plugin-proposal-class-properties', + '@babel/plugin-proposal-optional-chaining', + ], + presets: ['@babel/preset-env', '@babel/typescript'], + sourceType: 'unambiguous', + }, + }, + }, + ], + }, + plugins: [ + new CopyPlugin({ + patterns: [ + { + from: '../cvat-data/src/ts/3rdparty/avc.wasm', + to: 'assets/3rdparty/', + }, + ], + }), + ], +}; + +module.exports = webConfig; diff --git a/cvat-core/webpack.config.js b/cvat-core/webpack.config.js deleted file mode 100644 index cad51dbb44a1..000000000000 --- a/cvat-core/webpack.config.js +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright (C) 2020-2022 Intel Corporation -// -// SPDX-License-Identifier: MIT - -/* global - __dirname:true -*/ - -const path = require('path'); - -const nodeConfig = { - target: 'node', - mode: 'development', - devtool: 'source-map', - entry: './src/api.ts', - output: { - path: path.resolve(__dirname, 'dist'), - filename: 'cvat-core.node.js', - libraryTarget: 'commonjs', - }, - resolve: { - extensions: ['.ts', '.js'], - }, - module: { - rules: [ - { - test: /.ts?$/, - exclude: /node_modules/, - use: { - loader: 'babel-loader', - options: { - plugins: [ - '@babel/plugin-proposal-class-properties', - '@babel/plugin-proposal-optional-chaining', - ], - presets: ['@babel/preset-env', '@babel/typescript'], - sourceType: 'unambiguous', - }, - }, - }, - ], - }, - stats: { - warnings: false, - }, -}; - -const webConfig = { - target: 'web', - mode: 'production', - devtool: 'source-map', - entry: { - 'cvat-core': './src/api.ts', - }, - output: { - path: path.resolve(__dirname, 'dist'), - filename: '[name].[contenthash].min.js', - library: 'cvat-core.js', - libraryTarget: 'window', - }, - resolve: { - extensions: ['.ts', '.js'], - }, - module: { - rules: [ - { - test: /.ts?$/, - exclude: /node_modules/, - use: { - loader: 'babel-loader', - options: { - plugins: [ - '@babel/plugin-proposal-class-properties', - '@babel/plugin-proposal-optional-chaining', - ], - presets: ['@babel/preset-env', '@babel/typescript'], - sourceType: 'unambiguous', - }, - }, - }, - { - test: /3rdparty\/.*\.worker\.js$/, - use: { - loader: 'worker-loader', - options: { - publicPath: '/static/engine/js/3rdparty/', - filename: '[name].[contenthash].js', - esModule: false, - }, - }, - }, - { - test: /\.worker\.js$/, - exclude: /3rdparty/, - use: { - loader: 'worker-loader', - options: { - publicPath: '/static/engine/js/', - filename: '[name].[contenthash].js', - esModule: false, - }, - }, - }, - ], - }, -}; - -module.exports = [nodeConfig, webConfig]; diff --git a/cvat-data/.eslintrc.js b/cvat-data/.eslintrc.cjs similarity index 86% rename from cvat-data/.eslintrc.js rename to cvat-data/.eslintrc.cjs index 3aa39c7d09a9..84fc650678fd 100644 --- a/cvat-data/.eslintrc.js +++ b/cvat-data/.eslintrc.cjs @@ -1,11 +1,10 @@ // Copyright (C) 2020-2022 Intel Corporation +// Copyright (C) 2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT module.exports = { ignorePatterns: [ - '.eslintrc.js', - 'webpack.config.js', 'src/3rdparty/**', 'node_modules/**', 'dist/**', diff --git a/cvat-data/package.json b/cvat-data/package.json index 375a1f23cee1..693eaea0b261 100644 --- a/cvat-data/package.json +++ b/cvat-data/package.json @@ -1,12 +1,11 @@ { "name": "cvat-data", + "type": "module", "version": "2.0.0", "description": "", "main": "src/ts/cvat-data.ts", "scripts": { - "patch": "cd src/ts && patch --dry-run --forward -p0 < 3rdparty_patch.diff >> /dev/null && patch -p0 < 3rdparty_patch.diff; true", - "build": "yarn run patch; webpack --config ./webpack.config.js", - "server": "yarn run patch; nodemon --watch config --exec 'webpack-dev-server --config ./webpack.config.js --mode=development --open'", + "build": "webpack --config ./webpack.config.cjs", "type-check": "tsc --noEmit", "type-check:watch": "yarn run type-check --watch" }, @@ -14,7 +13,7 @@ "license": "MIT", "browserslist": [ "Chrome >= 63", - "Firefox > 58", + "Firefox > 102", "not IE 11", "> 2%" ], diff --git a/cvat-data/src/ts/3rdparty/Decoder.js b/cvat-data/src/ts/3rdparty/Decoder.js deleted file mode 100644 index cb8519f4f0ad..000000000000 --- a/cvat-data/src/ts/3rdparty/Decoder.js +++ /dev/null @@ -1,888 +0,0 @@ -// universal module definition -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define([], factory); - } else if (typeof exports === 'object') { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(); - } else { - // Browser globals (root is window) - root.Decoder = factory(); - } -}(this, function () { - - var global; - - function initglobal(){ - global = this; - if (!global){ - if (typeof window != "undefined"){ - global = window; - }else if (typeof self != "undefined"){ - global = self; - }; - }; - }; - initglobal(); - - - function error(message) { - console.error(message); - console.trace(); - }; - - - function assert(condition, message) { - if (!condition) { - error(message); - }; - }; - - - - - var getModule = function(par_broadwayOnHeadersDecoded, par_broadwayOnPictureDecoded){ - - - /*var ModuleX = { - 'print': function(text) { console.log('stdout: ' + text); }, - 'printErr': function(text) { console.log('stderr: ' + text); } - };*/ - - - /* - - The reason why this is all packed into one file is that this file can also function as worker. - you can integrate the file into your build system and provide the original file to be loaded into a worker. - - */ - - //var Module = (function(){ - - -var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=true;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var asm2wasmImports={"f64-rem":function(x,y){return x%y},"debugger":function(){}};var functionPointers=new Array(0);var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){err("no native wasm support detected")}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":10,"maximum":10,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;var WASM_PAGE_SIZE=65536;var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var DYNAMIC_BASE=5254064,DYNAMICTOP_PTR=10992;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||104857600;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_TOTAL_MEMORY/WASM_PAGE_SIZE,"maximum":INITIAL_TOTAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_TOTAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw new WebAssembly.RuntimeError(what)}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile="avc.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"env":asmLibraryArg,"wasi_unstable":asmLibraryArg,"global":{"NaN":NaN,Infinity:Infinity},"global.Math":Math,"asm2wasm":asm2wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}Module["asm"]=createWasm;var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};var SYSCALLS={buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function _fd_write(fd,iov,iovcnt,pnum){try{var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function ___wasi_fd_write(){return _fd_write.apply(null,arguments)}function _broadwayOnHeadersDecoded(){par_broadwayOnHeadersDecoded()}Module["_broadwayOnHeadersDecoded"]=_broadwayOnHeadersDecoded;function _broadwayOnPictureDecoded($buffer,width,height){par_broadwayOnPictureDecoded($buffer,width,height)}Module["_broadwayOnPictureDecoded"]=_broadwayOnPictureDecoded;function _emscripten_get_heap_size(){return HEAP8.length}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){abortOnCannotGrowMemory(requestedSize)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}var asmGlobalArg={};var asmLibraryArg={"g":___wasi_fd_write,"__memory_base":1024,"__table_base":0,"f":_broadwayOnHeadersDecoded,"e":_broadwayOnPictureDecoded,"b":_emscripten_get_heap_size,"d":_emscripten_memcpy_big,"a":_emscripten_resize_heap,"c":abort,"memory":wasmMemory,"table":wasmTable};var asm=Module["asm"](asmGlobalArg,asmLibraryArg,buffer);Module["asm"]=asm;var _broadwayCreateStream=Module["_broadwayCreateStream"]=function(){return Module["asm"]["h"].apply(null,arguments)};var _broadwayExit=Module["_broadwayExit"]=function(){return Module["asm"]["i"].apply(null,arguments)};var _broadwayGetMajorVersion=Module["_broadwayGetMajorVersion"]=function(){return Module["asm"]["j"].apply(null,arguments)};var _broadwayGetMinorVersion=Module["_broadwayGetMinorVersion"]=function(){return Module["asm"]["k"].apply(null,arguments)};var _broadwayInit=Module["_broadwayInit"]=function(){return Module["asm"]["l"].apply(null,arguments)};var _broadwayPlayStream=Module["_broadwayPlayStream"]=function(){return Module["asm"]["m"].apply(null,arguments)};Module["asm"]=asm;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); - // return Module; - //})(); - - var resultModule; - if (typeof global !== "undefined"){ - if (global.Module){ - resultModule = global.Module; - }; - }; - if (typeof Module != "undefined"){ - resultModule = Module; - }; - - resultModule._broadwayOnHeadersDecoded = par_broadwayOnHeadersDecoded; - resultModule._broadwayOnPictureDecoded = par_broadwayOnPictureDecoded; - - var moduleIsReady = false; - var cbFun; - var moduleReady = function(){ - moduleIsReady = true; - if (cbFun){ - cbFun(resultModule); - } - }; - - resultModule.onRuntimeInitialized = function(){ - moduleReady(resultModule); - }; - return function(callback){ - if (moduleIsReady){ - callback(resultModule); - }else{ - cbFun = callback; - }; - }; - }; - - return (function(){ - "use strict"; - - - var nowValue = function(){ - return (new Date()).getTime(); - }; - - if (typeof performance != "undefined"){ - if (performance.now){ - nowValue = function(){ - return performance.now(); - }; - }; - }; - - - var Decoder = function(parOptions){ - this.options = parOptions || {}; - - this.now = nowValue; - - var asmInstance; - - var fakeWindow = { - }; - - var toU8Array; - var toU32Array; - - var onPicFun = function ($buffer, width, height) { - var buffer = this.pictureBuffers[$buffer]; - if (!buffer) { - buffer = this.pictureBuffers[$buffer] = toU8Array($buffer, (width * height * 3) / 2); - }; - - var infos; - var doInfo = false; - if (this.infoAr.length){ - doInfo = true; - infos = this.infoAr; - }; - this.infoAr = []; - - if (this.options.rgb){ - if (!asmInstance){ - asmInstance = getAsm(width, height); - }; - asmInstance.inp.set(buffer); - asmInstance.doit(); - - var copyU8 = new Uint8Array(asmInstance.outSize); - copyU8.set( asmInstance.out ); - - if (doInfo){ - infos[0].finishDecoding = nowValue(); - }; - - this.onPictureDecoded(copyU8, width, height, infos); - return; - - }; - - if (doInfo){ - infos[0].finishDecoding = nowValue(); - }; - this.onPictureDecoded(buffer, width, height, infos); - }.bind(this); - - var ignore = false; - - if (this.options.sliceMode){ - onPicFun = function ($buffer, width, height, $sliceInfo) { - if (ignore){ - return; - }; - var buffer = this.pictureBuffers[$buffer]; - if (!buffer) { - buffer = this.pictureBuffers[$buffer] = toU8Array($buffer, (width * height * 3) / 2); - }; - var sliceInfo = this.pictureBuffers[$sliceInfo]; - if (!sliceInfo) { - sliceInfo = this.pictureBuffers[$sliceInfo] = toU32Array($sliceInfo, 18); - }; - - var infos; - var doInfo = false; - if (this.infoAr.length){ - doInfo = true; - infos = this.infoAr; - }; - this.infoAr = []; - - /*if (this.options.rgb){ - - no rgb in slice mode - - };*/ - - infos[0].finishDecoding = nowValue(); - var sliceInfoAr = []; - for (var i = 0; i < 20; ++i){ - sliceInfoAr.push(sliceInfo[i]); - }; - infos[0].sliceInfoAr = sliceInfoAr; - - this.onPictureDecoded(buffer, width, height, infos); - }.bind(this); - }; - - var ModuleCallback = getModule.apply(fakeWindow, [function () { - }, onPicFun]); - - - var MAX_STREAM_BUFFER_LENGTH = 1024 * 1024; - - var instance = this; - this.onPictureDecoded = function (buffer, width, height, infos) { - - }; - - this.onDecoderReady = function(){}; - - var bufferedCalls = []; - this.decode = function decode(typedAr, parInfo, copyDoneFun) { - bufferedCalls.push([typedAr, parInfo, copyDoneFun]); - }; - - ModuleCallback(function(Module){ - var HEAP8 = Module.HEAP8; - var HEAPU8 = Module.HEAPU8; - var HEAP16 = Module.HEAP16; - var HEAP32 = Module.HEAP32; - // from old constructor - Module._broadwayInit(); - - /** - * Creates a typed array from a HEAP8 pointer. - */ - toU8Array = function(ptr, length) { - return HEAPU8.subarray(ptr, ptr + length); - }; - toU32Array = function(ptr, length) { - //var tmp = HEAPU8.subarray(ptr, ptr + (length * 4)); - return new Uint32Array(HEAPU8.buffer, ptr, length); - }; - instance.streamBuffer = toU8Array(Module._broadwayCreateStream(MAX_STREAM_BUFFER_LENGTH), MAX_STREAM_BUFFER_LENGTH); - instance.pictureBuffers = {}; - // collect extra infos that are provided with the nal units - instance.infoAr = []; - - /** - * Decodes a stream buffer. This may be one single (unframed) NAL unit without the - * start code, or a sequence of NAL units with framing start code prefixes. This - * function overwrites stream buffer allocated by the codec with the supplied buffer. - */ - - var sliceNum = 0; - if (instance.options.sliceMode){ - sliceNum = instance.options.sliceNum; - - instance.decode = function decode(typedAr, parInfo, copyDoneFun) { - instance.infoAr.push(parInfo); - parInfo.startDecoding = nowValue(); - var nals = parInfo.nals; - var i; - if (!nals){ - nals = []; - parInfo.nals = nals; - var l = typedAr.length; - var foundSomething = false; - var lastFound = 0; - var lastStart = 0; - for (i = 0; i < l; ++i){ - if (typedAr[i] === 1){ - if ( - typedAr[i - 1] === 0 && - typedAr[i - 2] === 0 - ){ - var startPos = i - 2; - if (typedAr[i - 3] === 0){ - startPos = i - 3; - }; - // its a nal; - if (foundSomething){ - nals.push({ - offset: lastFound, - end: startPos, - type: typedAr[lastStart] & 31 - }); - }; - lastFound = startPos; - lastStart = startPos + 3; - if (typedAr[i - 3] === 0){ - lastStart = startPos + 4; - }; - foundSomething = true; - }; - }; - }; - if (foundSomething){ - nals.push({ - offset: lastFound, - end: i, - type: typedAr[lastStart] & 31 - }); - }; - }; - - var currentSlice = 0; - var playAr; - var offset = 0; - for (i = 0; i < nals.length; ++i){ - if (nals[i].type === 1 || nals[i].type === 5){ - if (currentSlice === sliceNum){ - playAr = typedAr.subarray(nals[i].offset, nals[i].end); - instance.streamBuffer[offset] = 0; - offset += 1; - instance.streamBuffer.set(playAr, offset); - offset += playAr.length; - }; - currentSlice += 1; - }else{ - playAr = typedAr.subarray(nals[i].offset, nals[i].end); - instance.streamBuffer[offset] = 0; - offset += 1; - instance.streamBuffer.set(playAr, offset); - offset += playAr.length; - Module._broadwayPlayStream(offset); - offset = 0; - }; - }; - copyDoneFun(); - Module._broadwayPlayStream(offset); - }; - - }else{ - instance.decode = function decode(typedAr, parInfo) { - // console.info("Decoding: " + buffer.length); - // collect infos - if (parInfo){ - instance.infoAr.push(parInfo); - parInfo.startDecoding = nowValue(); - }; - - instance.streamBuffer.set(typedAr); - Module._broadwayPlayStream(typedAr.length); - }; - }; - - if (bufferedCalls.length){ - var bi = 0; - for (bi = 0; bi < bufferedCalls.length; ++bi){ - instance.decode(bufferedCalls[bi][0], bufferedCalls[bi][1], bufferedCalls[bi][2]); - }; - bufferedCalls = []; - }; - - instance.onDecoderReady(instance); - - }); - - - }; - - - Decoder.prototype = { - - }; - - - - - /* - - asm.js implementation of a yuv to rgb convertor - provided by @soliton4 - - based on - http://www.wordsaretoys.com/2013/10/18/making-yuv-conversion-a-little-faster/ - - */ - - - // factory to create asm.js yuv -> rgb convertor for a given resolution - var asmInstances = {}; - var getAsm = function(parWidth, parHeight){ - var idStr = "" + parWidth + "x" + parHeight; - if (asmInstances[idStr]){ - return asmInstances[idStr]; - }; - - var lumaSize = parWidth * parHeight; - var chromaSize = (lumaSize|0) >> 2; - - var inpSize = lumaSize + chromaSize + chromaSize; - var outSize = parWidth * parHeight * 4; - var cacheSize = Math.pow(2, 24) * 4; - var size = inpSize + outSize + cacheSize; - - var chunkSize = Math.pow(2, 24); - var heapSize = chunkSize; - while (heapSize < size){ - heapSize += chunkSize; - }; - var heap = new ArrayBuffer(heapSize); - - var res = asmFactory(global, {}, heap); - res.init(parWidth, parHeight); - asmInstances[idStr] = res; - - res.heap = heap; - res.out = new Uint8Array(heap, 0, outSize); - res.inp = new Uint8Array(heap, outSize, inpSize); - res.outSize = outSize; - - return res; - }; - - - function asmFactory(stdlib, foreign, heap) { - "use asm"; - - var imul = stdlib.Math.imul; - var min = stdlib.Math.min; - var max = stdlib.Math.max; - var pow = stdlib.Math.pow; - var out = new stdlib.Uint8Array(heap); - var out32 = new stdlib.Uint32Array(heap); - var inp = new stdlib.Uint8Array(heap); - var mem = new stdlib.Uint8Array(heap); - var mem32 = new stdlib.Uint32Array(heap); - - // for double algo - /*var vt = 1.370705; - var gt = 0.698001; - var gt2 = 0.337633; - var bt = 1.732446;*/ - - var width = 0; - var height = 0; - var lumaSize = 0; - var chromaSize = 0; - var inpSize = 0; - var outSize = 0; - - var inpStart = 0; - var outStart = 0; - - var widthFour = 0; - - var cacheStart = 0; - - - function init(parWidth, parHeight){ - parWidth = parWidth|0; - parHeight = parHeight|0; - - var i = 0; - var s = 0; - - width = parWidth; - widthFour = imul(parWidth, 4)|0; - height = parHeight; - lumaSize = imul(width|0, height|0)|0; - chromaSize = (lumaSize|0) >> 2; - outSize = imul(imul(width, height)|0, 4)|0; - inpSize = (((lumaSize + chromaSize)|0) + chromaSize)|0; - - outStart = 0; - inpStart = (outStart + outSize)|0; - cacheStart = (inpStart + inpSize)|0; - - // initializing memory (to be on the safe side) - s = ~~(+pow(+2, +24)); - s = imul(s, 4)|0; - - for (i = 0|0; ((i|0) < (s|0))|0; i = (i + 4)|0){ - mem32[((cacheStart + i)|0) >> 2] = 0; - }; - }; - - function doit(){ - var ystart = 0; - var ustart = 0; - var vstart = 0; - - var y = 0; - var yn = 0; - var u = 0; - var v = 0; - - var o = 0; - - var line = 0; - var col = 0; - - var usave = 0; - var vsave = 0; - - var ostart = 0; - var cacheAdr = 0; - - ostart = outStart|0; - - ystart = inpStart|0; - ustart = (ystart + lumaSize|0)|0; - vstart = (ustart + chromaSize)|0; - - for (line = 0; (line|0) < (height|0); line = (line + 2)|0){ - usave = ustart; - vsave = vstart; - for (col = 0; (col|0) < (width|0); col = (col + 2)|0){ - y = inp[ystart >> 0]|0; - yn = inp[((ystart + width)|0) >> 0]|0; - - u = inp[ustart >> 0]|0; - v = inp[vstart >> 0]|0; - - cacheAdr = (((((y << 16)|0) + ((u << 8)|0))|0) + v)|0; - o = mem32[((cacheStart >> 2) + cacheAdr)|0]|0; - if (o){}else{ - o = yuv2rgbcalc(y,u,v)|0; - mem32[((cacheStart >> 2) + cacheAdr)|0] = o|0; - }; - mem32[ostart >> 2] = o; - - cacheAdr = (((((yn << 16)|0) + ((u << 8)|0))|0) + v)|0; - o = mem32[((cacheStart >> 2) + cacheAdr)|0]|0; - if (o){}else{ - o = yuv2rgbcalc(yn,u,v)|0; - mem32[((cacheStart >> 2) + cacheAdr)|0] = o|0; - }; - mem32[((ostart + widthFour)|0) >> 2] = o; - - //yuv2rgb5(y, u, v, ostart); - //yuv2rgb5(yn, u, v, (ostart + widthFour)|0); - ostart = (ostart + 4)|0; - - // next step only for y. u and v stay the same - ystart = (ystart + 1)|0; - y = inp[ystart >> 0]|0; - yn = inp[((ystart + width)|0) >> 0]|0; - - //yuv2rgb5(y, u, v, ostart); - cacheAdr = (((((y << 16)|0) + ((u << 8)|0))|0) + v)|0; - o = mem32[((cacheStart >> 2) + cacheAdr)|0]|0; - if (o){}else{ - o = yuv2rgbcalc(y,u,v)|0; - mem32[((cacheStart >> 2) + cacheAdr)|0] = o|0; - }; - mem32[ostart >> 2] = o; - - //yuv2rgb5(yn, u, v, (ostart + widthFour)|0); - cacheAdr = (((((yn << 16)|0) + ((u << 8)|0))|0) + v)|0; - o = mem32[((cacheStart >> 2) + cacheAdr)|0]|0; - if (o){}else{ - o = yuv2rgbcalc(yn,u,v)|0; - mem32[((cacheStart >> 2) + cacheAdr)|0] = o|0; - }; - mem32[((ostart + widthFour)|0) >> 2] = o; - ostart = (ostart + 4)|0; - - //all positions inc 1 - - ystart = (ystart + 1)|0; - ustart = (ustart + 1)|0; - vstart = (vstart + 1)|0; - }; - ostart = (ostart + widthFour)|0; - ystart = (ystart + width)|0; - - }; - - }; - - function yuv2rgbcalc(y, u, v){ - y = y|0; - u = u|0; - v = v|0; - - var r = 0; - var g = 0; - var b = 0; - - var o = 0; - - var a0 = 0; - var a1 = 0; - var a2 = 0; - var a3 = 0; - var a4 = 0; - - a0 = imul(1192, (y - 16)|0)|0; - a1 = imul(1634, (v - 128)|0)|0; - a2 = imul(832, (v - 128)|0)|0; - a3 = imul(400, (u - 128)|0)|0; - a4 = imul(2066, (u - 128)|0)|0; - - r = (((a0 + a1)|0) >> 10)|0; - g = (((((a0 - a2)|0) - a3)|0) >> 10)|0; - b = (((a0 + a4)|0) >> 10)|0; - - if ((((r & 255)|0) != (r|0))|0){ - r = min(255, max(0, r|0)|0)|0; - }; - if ((((g & 255)|0) != (g|0))|0){ - g = min(255, max(0, g|0)|0)|0; - }; - if ((((b & 255)|0) != (b|0))|0){ - b = min(255, max(0, b|0)|0)|0; - }; - - o = 255; - o = (o << 8)|0; - o = (o + b)|0; - o = (o << 8)|0; - o = (o + g)|0; - o = (o << 8)|0; - o = (o + r)|0; - - return o|0; - - }; - - - - return { - init: init, - doit: doit - }; - }; - - - /* - potential worker initialization - - */ - - - if (typeof self != "undefined"){ - var isWorker = false; - var decoder; - var reuseMemory = false; - var sliceMode = false; - var sliceNum = 0; - var sliceCnt = 0; - var lastSliceNum = 0; - var sliceInfoAr; - var lastBuf; - var awaiting = 0; - var pile = []; - var startDecoding; - var finishDecoding; - var timeDecoding; - - var memAr = []; - var getMem = function(length){ - if (memAr.length){ - var u = memAr.shift(); - while (u && u.byteLength !== length){ - u = memAr.shift(); - }; - if (u){ - return u; - }; - }; - return new ArrayBuffer(length); - }; - - var copySlice = function(source, target, infoAr, width, height){ - - var length = width * height; - var length4 = length / 4 - var plane2 = length; - var plane3 = length + length4; - - var copy16 = function(parBegin, parEnd){ - var i = 0; - for (i = 0; i < 16; ++i){ - var begin = parBegin + (width * i); - var end = parEnd + (width * i) - target.set(source.subarray(begin, end), begin); - }; - }; - var copy8 = function(parBegin, parEnd){ - var i = 0; - for (i = 0; i < 8; ++i){ - var begin = parBegin + ((width / 2) * i); - var end = parEnd + ((width / 2) * i) - target.set(source.subarray(begin, end), begin); - }; - }; - var copyChunk = function(begin, end){ - target.set(source.subarray(begin, end), begin); - }; - - var begin = infoAr[0]; - var end = infoAr[1]; - if (end > 0){ - copy16(begin, end); - copy8(infoAr[2], infoAr[3]); - copy8(infoAr[4], infoAr[5]); - }; - begin = infoAr[6]; - end = infoAr[7]; - if (end > 0){ - copy16(begin, end); - copy8(infoAr[8], infoAr[9]); - copy8(infoAr[10], infoAr[11]); - }; - - begin = infoAr[12]; - end = infoAr[15]; - if (end > 0){ - copyChunk(begin, end); - copyChunk(infoAr[13], infoAr[16]); - copyChunk(infoAr[14], infoAr[17]); - }; - - }; - - var sliceMsgFun = function(){}; - - var setSliceCnt = function(parSliceCnt){ - sliceCnt = parSliceCnt; - lastSliceNum = sliceCnt - 1; - }; - - - self.addEventListener('message', function(e) { - - if (isWorker){ - if (reuseMemory){ - if (e.data.reuse){ - memAr.push(e.data.reuse); - }; - }; - if (e.data.buf){ - if (sliceMode && awaiting !== 0){ - pile.push(e.data); - }else{ - decoder.decode( - new Uint8Array(e.data.buf, e.data.offset || 0, e.data.length), - e.data.info, - function(){ - if (sliceMode && sliceNum !== lastSliceNum){ - postMessage(e.data, [e.data.buf]); - }; - } - ); - }; - return; - }; - - if (e.data.slice){ - // update ref pic - var copyStart = nowValue(); - copySlice(new Uint8Array(e.data.slice), lastBuf, e.data.infos[0].sliceInfoAr, e.data.width, e.data.height); - // is it the one? then we need to update it - if (e.data.theOne){ - copySlice(lastBuf, new Uint8Array(e.data.slice), sliceInfoAr, e.data.width, e.data.height); - if (timeDecoding > e.data.infos[0].timeDecoding){ - e.data.infos[0].timeDecoding = timeDecoding; - }; - e.data.infos[0].timeCopy += (nowValue() - copyStart); - }; - // move on - postMessage(e.data, [e.data.slice]); - - // next frame in the pipe? - awaiting -= 1; - if (awaiting === 0 && pile.length){ - var data = pile.shift(); - decoder.decode( - new Uint8Array(data.buf, data.offset || 0, data.length), - data.info, - function(){ - if (sliceMode && sliceNum !== lastSliceNum){ - postMessage(data, [data.buf]); - }; - } - ); - }; - return; - }; - - if (e.data.setSliceCnt){ - setSliceCnt(e.data.sliceCnt); - return; - }; - - }else{ - if (e.data && e.data.type === "Broadway.js - Worker init"){ - isWorker = true; - decoder = new Decoder(e.data.options); - - if (e.data.options.sliceMode){ - reuseMemory = true; - sliceMode = true; - sliceNum = e.data.options.sliceNum; - setSliceCnt(e.data.options.sliceCnt); - - decoder.onPictureDecoded = function (buffer, width, height, infos) { - - // buffer needs to be copied because we give up ownership - var copyU8 = new Uint8Array(getMem(buffer.length)); - copySlice(buffer, copyU8, infos[0].sliceInfoAr, width, height); - - startDecoding = infos[0].startDecoding; - finishDecoding = infos[0].finishDecoding; - timeDecoding = finishDecoding - startDecoding; - infos[0].timeDecoding = timeDecoding; - infos[0].timeCopy = 0; - - postMessage({ - slice: copyU8.buffer, - sliceNum: sliceNum, - width: width, - height: height, - infos: infos - }, [copyU8.buffer]); // 2nd parameter is used to indicate transfer of ownership - - awaiting = sliceCnt - 1; - - lastBuf = buffer; - sliceInfoAr = infos[0].sliceInfoAr; - - }; - - }else if (e.data.options.reuseMemory){ - reuseMemory = true; - decoder.onPictureDecoded = function (buffer, width, height, infos) { - - // buffer needs to be copied because we give up ownership - var copyU8 = new Uint8Array(getMem(buffer.length)); - copyU8.set( buffer, 0, buffer.length ); - - postMessage({ - buf: copyU8.buffer, - length: buffer.length, - width: width, - height: height, - infos: infos - }, [copyU8.buffer]); // 2nd parameter is used to indicate transfer of ownership - - }; - - }else{ - decoder.onPictureDecoded = function (buffer, width, height, infos) { - if (buffer) { - buffer = new Uint8Array(buffer); - }; - - // buffer needs to be copied because we give up ownership - var copyU8 = new Uint8Array(buffer.length); - copyU8.set( buffer, 0, buffer.length ); - - postMessage({ - buf: copyU8.buffer, - length: buffer.length, - width: width, - height: height, - infos: infos - }, [copyU8.buffer]); // 2nd parameter is used to indicate transfer of ownership - - }; - }; - postMessage({ consoleLog: "broadway worker initialized" }); - }; - }; - - - }, false); - }; - - Decoder.nowValue = nowValue; - - return Decoder; - - })(); - - -})); - diff --git a/cvat-data/src/ts/3rdparty/Decoder.worker.js b/cvat-data/src/ts/3rdparty/Decoder.worker.js index cb8519f4f0ad..3482e4b42ef3 100644 --- a/cvat-data/src/ts/3rdparty/Decoder.worker.js +++ b/cvat-data/src/ts/3rdparty/Decoder.worker.js @@ -1,888 +1,1464 @@ -// universal module definition -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define([], factory); - } else if (typeof exports === 'object') { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(); - } else { - // Browser globals (root is window) - root.Decoder = factory(); - } -}(this, function () { - +function factory() { var global; - - function initglobal(){ - global = this; - if (!global){ - if (typeof window != "undefined"){ - global = window; - }else if (typeof self != "undefined"){ - global = self; + + function initglobal() { + global = this; + if (!global) { + if (typeof window != "undefined") { + global = window; + } else if (typeof self != "undefined") { + global = self; + }; }; - }; }; initglobal(); - - + function error(message) { - console.error(message); - console.trace(); + console.error(message); + console.trace(); }; - function assert(condition, message) { - if (!condition) { - error(message); - }; + if (!condition) { + error(message); + }; }; - - - - - var getModule = function(par_broadwayOnHeadersDecoded, par_broadwayOnPictureDecoded){ - - - /*var ModuleX = { - 'print': function(text) { console.log('stdout: ' + text); }, - 'printErr': function(text) { console.log('stderr: ' + text); } - };*/ - - - /* - - The reason why this is all packed into one file is that this file can also function as worker. - you can integrate the file into your build system and provide the original file to be loaded into a worker. - - */ - - //var Module = (function(){ - - -var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=true;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var asm2wasmImports={"f64-rem":function(x,y){return x%y},"debugger":function(){}};var functionPointers=new Array(0);var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){err("no native wasm support detected")}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":10,"maximum":10,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;var WASM_PAGE_SIZE=65536;var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var DYNAMIC_BASE=5254064,DYNAMICTOP_PTR=10992;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||104857600;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_TOTAL_MEMORY/WASM_PAGE_SIZE,"maximum":INITIAL_TOTAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_TOTAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw new WebAssembly.RuntimeError(what)}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile="avc.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"env":asmLibraryArg,"wasi_unstable":asmLibraryArg,"global":{"NaN":NaN,Infinity:Infinity},"global.Math":Math,"asm2wasm":asm2wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}Module["asm"]=createWasm;var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};var SYSCALLS={buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function _fd_write(fd,iov,iovcnt,pnum){try{var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function ___wasi_fd_write(){return _fd_write.apply(null,arguments)}function _broadwayOnHeadersDecoded(){par_broadwayOnHeadersDecoded()}Module["_broadwayOnHeadersDecoded"]=_broadwayOnHeadersDecoded;function _broadwayOnPictureDecoded($buffer,width,height){par_broadwayOnPictureDecoded($buffer,width,height)}Module["_broadwayOnPictureDecoded"]=_broadwayOnPictureDecoded;function _emscripten_get_heap_size(){return HEAP8.length}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){abortOnCannotGrowMemory(requestedSize)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}var asmGlobalArg={};var asmLibraryArg={"g":___wasi_fd_write,"__memory_base":1024,"__table_base":0,"f":_broadwayOnHeadersDecoded,"e":_broadwayOnPictureDecoded,"b":_emscripten_get_heap_size,"d":_emscripten_memcpy_big,"a":_emscripten_resize_heap,"c":abort,"memory":wasmMemory,"table":wasmTable};var asm=Module["asm"](asmGlobalArg,asmLibraryArg,buffer);Module["asm"]=asm;var _broadwayCreateStream=Module["_broadwayCreateStream"]=function(){return Module["asm"]["h"].apply(null,arguments)};var _broadwayExit=Module["_broadwayExit"]=function(){return Module["asm"]["i"].apply(null,arguments)};var _broadwayGetMajorVersion=Module["_broadwayGetMajorVersion"]=function(){return Module["asm"]["j"].apply(null,arguments)};var _broadwayGetMinorVersion=Module["_broadwayGetMinorVersion"]=function(){return Module["asm"]["k"].apply(null,arguments)};var _broadwayInit=Module["_broadwayInit"]=function(){return Module["asm"]["l"].apply(null,arguments)};var _broadwayPlayStream=Module["_broadwayPlayStream"]=function(){return Module["asm"]["m"].apply(null,arguments)};Module["asm"]=asm;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); - // return Module; - //})(); - - var resultModule; - if (typeof global !== "undefined"){ - if (global.Module){ - resultModule = global.Module; + + var getModule = function(par_broadwayOnHeadersDecoded, par_broadwayOnPictureDecoded) { + var Module = typeof Module !== "undefined" ? Module : {}; + var moduleOverrides = {}; + var key; + for (key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key] + } + } + var arguments_ = []; + var thisProgram = "./this.program"; + var quit_ = function(status, toThrow) { + throw toThrow }; - }; - if (typeof Module != "undefined"){ - resultModule = Module; - }; - - resultModule._broadwayOnHeadersDecoded = par_broadwayOnHeadersDecoded; - resultModule._broadwayOnPictureDecoded = par_broadwayOnPictureDecoded; - - var moduleIsReady = false; - var cbFun; - var moduleReady = function(){ - moduleIsReady = true; - if (cbFun){ - cbFun(resultModule); - } - }; - - resultModule.onRuntimeInitialized = function(){ - moduleReady(resultModule); - }; - return function(callback){ - if (moduleIsReady){ - callback(resultModule); - }else{ - cbFun = callback; + var ENVIRONMENT_IS_WEB = false; + var ENVIRONMENT_IS_WORKER = true; + var scriptDirectory = ""; + + function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory) + } + return scriptDirectory + path + } + var read_, readAsync, readBinary, setWindowTitle; + if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = self.location.href + } else if (document.currentScript) { + scriptDirectory = document.currentScript.src + } + if (scriptDirectory.indexOf("blob:") !== 0) { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf("/") + 1) + } else { + scriptDirectory = "" + } { + read_ = function shell_read(url) { + var xhr = new XMLHttpRequest; + xhr.open("GET", url, false); + xhr.send(null); + return xhr.responseText + }; + if (ENVIRONMENT_IS_WORKER) { + readBinary = function readBinary(url) { + var xhr = new XMLHttpRequest; + xhr.open("GET", url, false); + xhr.responseType = "arraybuffer"; + xhr.send(null); + return new Uint8Array(xhr.response) + } + } + readAsync = function readAsync(url, onload, onerror) { + var xhr = new XMLHttpRequest; + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = function xhr_onload() { + if (xhr.status == 200 || xhr.status == 0 && xhr.response) { + onload(xhr.response); + return + } + onerror() + }; + xhr.onerror = onerror; + xhr.send(null) + } + } + setWindowTitle = function(title) { + document.title = title + } + } else {} + var out = Module["print"] || console.log.bind(console); + var err = Module["printErr"] || console.warn.bind(console); + for (key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key] + } + } + moduleOverrides = null; + if (Module["arguments"]) arguments_ = Module["arguments"]; + if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; + if (Module["quit"]) quit_ = Module["quit"]; + var asm2wasmImports = { + "f64-rem": function(x, y) { + return x % y + }, + "debugger": function() {} }; - }; - }; + var functionPointers = new Array(0); + var wasmBinary; + if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; + var noExitRuntime; + if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"]; + if (typeof WebAssembly !== "object") { + err("no native wasm support detected") + } + var wasmMemory; + var wasmTable = new WebAssembly.Table({ + "initial": 10, + "maximum": 10, + "element": "anyfunc" + }); + var ABORT = false; + var EXITSTATUS = 0; + var UTF8Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : undefined; + + function UTF8ArrayToString(u8Array, idx, maxBytesToRead) { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + while (u8Array[endPtr] && !(endPtr >= endIdx)) ++endPtr; + if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { + return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)) + } else { + var str = ""; + while (idx < endPtr) { + var u0 = u8Array[idx++]; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue + } + var u1 = u8Array[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode((u0 & 31) << 6 | u1); + continue + } + var u2 = u8Array[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = (u0 & 15) << 12 | u1 << 6 | u2 + } else { + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | u8Array[idx++] & 63 + } + if (u0 < 65536) { + str += String.fromCharCode(u0) + } else { + var ch = u0 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023) + } + } + } + return str + } - return (function(){ - "use strict"; - - - var nowValue = function(){ - return (new Date()).getTime(); - }; - - if (typeof performance != "undefined"){ - if (performance.now){ - nowValue = function(){ - return performance.now(); + function UTF8ToString(ptr, maxBytesToRead) { + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "" + } + var UTF16Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf-16le") : undefined; + var WASM_PAGE_SIZE = 65536; + var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + + function updateGlobalBufferAndViews(buf) { + buffer = buf; + Module["HEAP8"] = HEAP8 = new Int8Array(buf); + Module["HEAP16"] = HEAP16 = new Int16Array(buf); + Module["HEAP32"] = HEAP32 = new Int32Array(buf); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf); + Module["HEAPU16"] = HEAPU16 = new Uint16Array(buf); + Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf); + Module["HEAPF32"] = HEAPF32 = new Float32Array(buf); + Module["HEAPF64"] = HEAPF64 = new Float64Array(buf) + } + var DYNAMIC_BASE = 5254064, + DYNAMICTOP_PTR = 10992; + var INITIAL_TOTAL_MEMORY = Module["TOTAL_MEMORY"] || 104857600; + if (Module["wasmMemory"]) { + wasmMemory = Module["wasmMemory"] + } else { + wasmMemory = new WebAssembly.Memory({ + "initial": INITIAL_TOTAL_MEMORY / WASM_PAGE_SIZE, + "maximum": INITIAL_TOTAL_MEMORY / WASM_PAGE_SIZE + }) + } + if (wasmMemory) { + buffer = wasmMemory.buffer + } + INITIAL_TOTAL_MEMORY = buffer.byteLength; + updateGlobalBufferAndViews(buffer); + HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE; + + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == "function") { + callback(); + continue + } + var func = callback.func; + if (typeof func === "number") { + if (callback.arg === undefined) { + Module["dynCall_v"](func) + } else { + Module["dynCall_vi"](func, callback.arg) + } + } else { + func(callback.arg === undefined ? null : callback.arg) + } + } + } + var __ATPRERUN__ = []; + var __ATINIT__ = []; + var __ATMAIN__ = []; + var __ATPOSTRUN__ = []; + var runtimeInitialized = false; + + function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()) + } + } + callRuntimeCallbacks(__ATPRERUN__) + } + + function initRuntime() { + runtimeInitialized = true; + callRuntimeCallbacks(__ATINIT__) + } + + function preMain() { + callRuntimeCallbacks(__ATMAIN__) + } + + function postRun() { + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()) + } + } + callRuntimeCallbacks(__ATPOSTRUN__) + } + + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb) + } + + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb) + } + var runDependencies = 0; + var runDependencyWatcher = null; + var dependenciesFulfilled = null; + + function addRunDependency(id) { + runDependencies++; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies) + } + } + + function removeRunDependency(id) { + runDependencies--; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies) + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback() + } + } + } + Module["preloadedImages"] = {}; + Module["preloadedAudios"] = {}; + + function abort(what) { + if (Module["onAbort"]) { + Module["onAbort"](what) + } + what += ""; + out(what); + err(what); + ABORT = true; + EXITSTATUS = 1; + what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info."; + throw new WebAssembly.RuntimeError(what) + } + var dataURIPrefix = "data:application/octet-stream;base64,"; + + function isDataURI(filename) { + return String.prototype.startsWith ? filename.startsWith(dataURIPrefix) : filename.indexOf(dataURIPrefix) === 0 + } + var wasmBinaryFile = "3rdparty/avc.wasm"; + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile) + } + + function getBinary() { + try { + if (wasmBinary) { + return new Uint8Array(wasmBinary) + } + if (readBinary) { + return readBinary(wasmBinaryFile) + } else { + throw "both async and sync fetching of the wasm failed" + } + } catch (err) { + abort(err) + } + } + + function getBinaryPromise() { + if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === "function") { + return fetch(wasmBinaryFile, { + credentials: "same-origin" + }).then(function(response) { + if (!response["ok"]) { + throw "failed to load wasm binary file at '" + wasmBinaryFile + "'" + } + return response["arrayBuffer"]() + }).catch(function() { + return getBinary() + }) + } + return new Promise(function(resolve, reject) { + resolve(getBinary()) + }) + } + + function createWasm() { + var info = { + "env": asmLibraryArg, + "wasi_unstable": asmLibraryArg, + "global": { + "NaN": NaN, + Infinity: Infinity + }, + "global.Math": Math, + "asm2wasm": asm2wasmImports + }; + + function receiveInstance(instance, module) { + var exports = instance.exports; + Module["asm"] = exports; + removeRunDependency("wasm-instantiate") + } + addRunDependency("wasm-instantiate"); + + function receiveInstantiatedSource(output) { + receiveInstance(output["instance"]) + } + + function instantiateArrayBuffer(receiver) { + return getBinaryPromise().then(function(binary) { + return WebAssembly.instantiate(binary, info) + }).then(receiver, function(reason) { + err("failed to asynchronously prepare wasm: " + reason); + abort(reason) + }) + } + + function instantiateAsync() { + if (!wasmBinary && typeof WebAssembly.instantiateStreaming === "function" && !isDataURI(wasmBinaryFile) && typeof fetch === "function") { + fetch(wasmBinaryFile, { + credentials: "same-origin" + }).then(function(response) { + var result = WebAssembly.instantiateStreaming(response, info); + return result.then(receiveInstantiatedSource, function(reason) { + err("wasm streaming compile failed: " + reason); + err("falling back to ArrayBuffer instantiation"); + instantiateArrayBuffer(receiveInstantiatedSource) + }) + }) + } else { + return instantiateArrayBuffer(receiveInstantiatedSource) + } + } + if (Module["instantiateWasm"]) { + try { + var exports = Module["instantiateWasm"](info, receiveInstance); + return exports + } catch (e) { + err("Module.instantiateWasm callback failed with error: " + e); + return false + } + } + instantiateAsync(); + return {} + } + Module["asm"] = createWasm; + var PATH = { + splitPath: function(filename) { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1) + }, + normalizeArray: function(parts, allowAboveRoot) { + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === ".") { + parts.splice(i, 1) + } else if (last === "..") { + parts.splice(i, 1); + up++ + } else if (up) { + parts.splice(i, 1); + up-- + } + } + if (allowAboveRoot) { + for (; up; up--) { + parts.unshift("..") + } + } + return parts + }, + normalize: function(path) { + var isAbsolute = path.charAt(0) === "/", + trailingSlash = path.substr(-1) === "/"; + path = PATH.normalizeArray(path.split("/").filter(function(p) { + return !!p + }), !isAbsolute).join("/"); + if (!path && !isAbsolute) { + path = "." + } + if (path && trailingSlash) { + path += "/" + } + return (isAbsolute ? "/" : "") + path + }, + dirname: function(path) { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1]; + if (!root && !dir) { + return "." + } + if (dir) { + dir = dir.substr(0, dir.length - 1) + } + return root + dir + }, + basename: function(path) { + if (path === "/") return "/"; + var lastSlash = path.lastIndexOf("/"); + if (lastSlash === -1) return path; + return path.substr(lastSlash + 1) + }, + extname: function(path) { + return PATH.splitPath(path)[3] + }, + join: function() { + var paths = Array.prototype.slice.call(arguments, 0); + return PATH.normalize(paths.join("/")) + }, + join2: function(l, r) { + return PATH.normalize(l + "/" + r) + } }; - }; - }; - - - var Decoder = function(parOptions){ - this.options = parOptions || {}; - - this.now = nowValue; - - var asmInstance; - - var fakeWindow = { - }; - - var toU8Array; - var toU32Array; - - var onPicFun = function ($buffer, width, height) { - var buffer = this.pictureBuffers[$buffer]; - if (!buffer) { - buffer = this.pictureBuffers[$buffer] = toU8Array($buffer, (width * height * 3) / 2); + var SYSCALLS = { + buffers: [null, [], + [] + ], + printChar: function(stream, curr) { + var buffer = SYSCALLS.buffers[stream]; + if (curr === 0 || curr === 10) { + (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0)); + buffer.length = 0 + } else { + buffer.push(curr) + } + }, + varargs: 0, + get: function(varargs) { + SYSCALLS.varargs += 4; + var ret = HEAP32[SYSCALLS.varargs - 4 >> 2]; + return ret + }, + getStr: function() { + var ret = UTF8ToString(SYSCALLS.get()); + return ret + }, + get64: function() { + var low = SYSCALLS.get(), + high = SYSCALLS.get(); + return low + }, + getZero: function() { + SYSCALLS.get() + } }; - - var infos; - var doInfo = false; - if (this.infoAr.length){ - doInfo = true; - infos = this.infoAr; + + function _fd_write(fd, iov, iovcnt, pnum) { + try { + var num = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[iov + i * 8 >> 2]; + var len = HEAP32[iov + (i * 8 + 4) >> 2]; + for (var j = 0; j < len; j++) { + SYSCALLS.printChar(fd, HEAPU8[ptr + j]) + } + num += len + } + HEAP32[pnum >> 2] = num; + return 0 + } catch (e) { + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno + } + } + + function ___wasi_fd_write() { + return _fd_write.apply(null, arguments) + } + + function _broadwayOnHeadersDecoded() { + par_broadwayOnHeadersDecoded() + } + Module["_broadwayOnHeadersDecoded"] = _broadwayOnHeadersDecoded; + + function _broadwayOnPictureDecoded($buffer, width, height) { + par_broadwayOnPictureDecoded($buffer, width, height) + } + Module["_broadwayOnPictureDecoded"] = _broadwayOnPictureDecoded; + + function _emscripten_get_heap_size() { + return HEAP8.length + } + + function abortOnCannotGrowMemory(requestedSize) { + abort("OOM") + } + + function _emscripten_resize_heap(requestedSize) { + abortOnCannotGrowMemory(requestedSize) + } + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.set(HEAPU8.subarray(src, src + num), dest) + } + var asmGlobalArg = {}; + var asmLibraryArg = { + "g": ___wasi_fd_write, + "__memory_base": 1024, + "__table_base": 0, + "f": _broadwayOnHeadersDecoded, + "e": _broadwayOnPictureDecoded, + "b": _emscripten_get_heap_size, + "d": _emscripten_memcpy_big, + "a": _emscripten_resize_heap, + "c": abort, + "memory": wasmMemory, + "table": wasmTable }; - this.infoAr = []; - - if (this.options.rgb){ - if (!asmInstance){ - asmInstance = getAsm(width, height); - }; - asmInstance.inp.set(buffer); - asmInstance.doit(); - - var copyU8 = new Uint8Array(asmInstance.outSize); - copyU8.set( asmInstance.out ); - - if (doInfo){ - infos[0].finishDecoding = nowValue(); - }; - - this.onPictureDecoded(copyU8, width, height, infos); - return; - + var asm = Module["asm"](asmGlobalArg, asmLibraryArg, buffer); + Module["asm"] = asm; + var _broadwayCreateStream = Module["_broadwayCreateStream"] = function() { + return Module["asm"]["h"].apply(null, arguments) }; - - if (doInfo){ - infos[0].finishDecoding = nowValue(); + var _broadwayExit = Module["_broadwayExit"] = function() { + return Module["asm"]["i"].apply(null, arguments) }; - this.onPictureDecoded(buffer, width, height, infos); - }.bind(this); - - var ignore = false; - - if (this.options.sliceMode){ - onPicFun = function ($buffer, width, height, $sliceInfo) { - if (ignore){ - return; - }; - var buffer = this.pictureBuffers[$buffer]; - if (!buffer) { - buffer = this.pictureBuffers[$buffer] = toU8Array($buffer, (width * height * 3) / 2); - }; - var sliceInfo = this.pictureBuffers[$sliceInfo]; - if (!sliceInfo) { - sliceInfo = this.pictureBuffers[$sliceInfo] = toU32Array($sliceInfo, 18); - }; - - var infos; - var doInfo = false; - if (this.infoAr.length){ - doInfo = true; - infos = this.infoAr; - }; - this.infoAr = []; - - /*if (this.options.rgb){ - - no rgb in slice mode - - };*/ - - infos[0].finishDecoding = nowValue(); - var sliceInfoAr = []; - for (var i = 0; i < 20; ++i){ - sliceInfoAr.push(sliceInfo[i]); - }; - infos[0].sliceInfoAr = sliceInfoAr; - - this.onPictureDecoded(buffer, width, height, infos); - }.bind(this); - }; - - var ModuleCallback = getModule.apply(fakeWindow, [function () { - }, onPicFun]); - - - var MAX_STREAM_BUFFER_LENGTH = 1024 * 1024; - - var instance = this; - this.onPictureDecoded = function (buffer, width, height, infos) { - - }; - - this.onDecoderReady = function(){}; - - var bufferedCalls = []; - this.decode = function decode(typedAr, parInfo, copyDoneFun) { - bufferedCalls.push([typedAr, parInfo, copyDoneFun]); - }; - - ModuleCallback(function(Module){ - var HEAP8 = Module.HEAP8; - var HEAPU8 = Module.HEAPU8; - var HEAP16 = Module.HEAP16; - var HEAP32 = Module.HEAP32; - // from old constructor - Module._broadwayInit(); - - /** - * Creates a typed array from a HEAP8 pointer. - */ - toU8Array = function(ptr, length) { - return HEAPU8.subarray(ptr, ptr + length); + var _broadwayGetMajorVersion = Module["_broadwayGetMajorVersion"] = function() { + return Module["asm"]["j"].apply(null, arguments) }; - toU32Array = function(ptr, length) { - //var tmp = HEAPU8.subarray(ptr, ptr + (length * 4)); - return new Uint32Array(HEAPU8.buffer, ptr, length); + var _broadwayGetMinorVersion = Module["_broadwayGetMinorVersion"] = function() { + return Module["asm"]["k"].apply(null, arguments) + }; + var _broadwayInit = Module["_broadwayInit"] = function() { + return Module["asm"]["l"].apply(null, arguments) + }; + var _broadwayPlayStream = Module["_broadwayPlayStream"] = function() { + return Module["asm"]["m"].apply(null, arguments) + }; + Module["asm"] = asm; + var calledRun; + dependenciesFulfilled = function runCaller() { + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller }; - instance.streamBuffer = toU8Array(Module._broadwayCreateStream(MAX_STREAM_BUFFER_LENGTH), MAX_STREAM_BUFFER_LENGTH); - instance.pictureBuffers = {}; - // collect extra infos that are provided with the nal units - instance.infoAr = []; - - /** - * Decodes a stream buffer. This may be one single (unframed) NAL unit without the - * start code, or a sequence of NAL units with framing start code prefixes. This - * function overwrites stream buffer allocated by the codec with the supplied buffer. - */ - - var sliceNum = 0; - if (instance.options.sliceMode){ - sliceNum = instance.options.sliceNum; - - instance.decode = function decode(typedAr, parInfo, copyDoneFun) { - instance.infoAr.push(parInfo); - parInfo.startDecoding = nowValue(); - var nals = parInfo.nals; - var i; - if (!nals){ - nals = []; - parInfo.nals = nals; - var l = typedAr.length; - var foundSomething = false; - var lastFound = 0; - var lastStart = 0; - for (i = 0; i < l; ++i){ - if (typedAr[i] === 1){ - if ( - typedAr[i - 1] === 0 && - typedAr[i - 2] === 0 - ){ - var startPos = i - 2; - if (typedAr[i - 3] === 0){ - startPos = i - 3; - }; - // its a nal; - if (foundSomething){ - nals.push({ - offset: lastFound, - end: startPos, - type: typedAr[lastStart] & 31 - }); - }; - lastFound = startPos; - lastStart = startPos + 3; - if (typedAr[i - 3] === 0){ - lastStart = startPos + 4; - }; - foundSomething = true; - }; - }; - }; - if (foundSomething){ - nals.push({ - offset: lastFound, - end: i, - type: typedAr[lastStart] & 31 - }); - }; - }; - var currentSlice = 0; - var playAr; - var offset = 0; - for (i = 0; i < nals.length; ++i){ - if (nals[i].type === 1 || nals[i].type === 5){ - if (currentSlice === sliceNum){ - playAr = typedAr.subarray(nals[i].offset, nals[i].end); - instance.streamBuffer[offset] = 0; - offset += 1; - instance.streamBuffer.set(playAr, offset); - offset += playAr.length; - }; - currentSlice += 1; - }else{ - playAr = typedAr.subarray(nals[i].offset, nals[i].end); - instance.streamBuffer[offset] = 0; - offset += 1; - instance.streamBuffer.set(playAr, offset); - offset += playAr.length; - Module._broadwayPlayStream(offset); - offset = 0; - }; - }; - copyDoneFun(); - Module._broadwayPlayStream(offset); - }; - - }else{ - instance.decode = function decode(typedAr, parInfo) { - // console.info("Decoding: " + buffer.length); - // collect infos - if (parInfo){ - instance.infoAr.push(parInfo); - parInfo.startDecoding = nowValue(); + function run(args) { + args = args || arguments_; + if (runDependencies > 0) { + return + } + preRun(); + if (runDependencies > 0) return; + + function doRun() { + if (calledRun) return; + calledRun = true; + if (ABORT) return; + initRuntime(); + preMain(); + if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); + postRun() + } + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(function() { + setTimeout(function() { + Module["setStatus"]("") + }, 1); + doRun() + }, 1) + } else { + doRun() + } + } + Module["run"] = run; + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()() + } + } + noExitRuntime = true; + run(); + // return Module; + //})(); + + var resultModule; + if (typeof global !== "undefined") { + if (global.Module) { + resultModule = global.Module; }; - - instance.streamBuffer.set(typedAr); - Module._broadwayPlayStream(typedAr.length); - }; }; - - if (bufferedCalls.length){ - var bi = 0; - for (bi = 0; bi < bufferedCalls.length; ++bi){ - instance.decode(bufferedCalls[bi][0], bufferedCalls[bi][1], bufferedCalls[bi][2]); - }; - bufferedCalls = []; + if (typeof Module != "undefined") { + resultModule = Module; }; - - instance.onDecoderReady(instance); - }); - + resultModule._broadwayOnHeadersDecoded = par_broadwayOnHeadersDecoded; + resultModule._broadwayOnPictureDecoded = par_broadwayOnPictureDecoded; - }; + var moduleIsReady = false; + var cbFun; + var moduleReady = function() { + moduleIsReady = true; + if (cbFun) { + cbFun(resultModule); + } + }; - - Decoder.prototype = { - - }; - - - - - /* - - asm.js implementation of a yuv to rgb convertor - provided by @soliton4 - - based on - http://www.wordsaretoys.com/2013/10/18/making-yuv-conversion-a-little-faster/ - - */ - - - // factory to create asm.js yuv -> rgb convertor for a given resolution - var asmInstances = {}; - var getAsm = function(parWidth, parHeight){ - var idStr = "" + parWidth + "x" + parHeight; - if (asmInstances[idStr]){ - return asmInstances[idStr]; - }; - - var lumaSize = parWidth * parHeight; - var chromaSize = (lumaSize|0) >> 2; - - var inpSize = lumaSize + chromaSize + chromaSize; - var outSize = parWidth * parHeight * 4; - var cacheSize = Math.pow(2, 24) * 4; - var size = inpSize + outSize + cacheSize; - - var chunkSize = Math.pow(2, 24); - var heapSize = chunkSize; - while (heapSize < size){ - heapSize += chunkSize; - }; - var heap = new ArrayBuffer(heapSize); - - var res = asmFactory(global, {}, heap); - res.init(parWidth, parHeight); - asmInstances[idStr] = res; - - res.heap = heap; - res.out = new Uint8Array(heap, 0, outSize); - res.inp = new Uint8Array(heap, outSize, inpSize); - res.outSize = outSize; - - return res; + resultModule.onRuntimeInitialized = function() { + moduleReady(resultModule); + }; + return function(callback) { + if (moduleIsReady) { + callback(resultModule); + } else { + cbFun = callback; + }; + }; }; + return (function() { + "use strict"; - function asmFactory(stdlib, foreign, heap) { - "use asm"; - var imul = stdlib.Math.imul; - var min = stdlib.Math.min; - var max = stdlib.Math.max; - var pow = stdlib.Math.pow; - var out = new stdlib.Uint8Array(heap); - var out32 = new stdlib.Uint32Array(heap); - var inp = new stdlib.Uint8Array(heap); - var mem = new stdlib.Uint8Array(heap); - var mem32 = new stdlib.Uint32Array(heap); + var nowValue = function() { + return (new Date()).getTime(); + }; - // for double algo - /*var vt = 1.370705; - var gt = 0.698001; - var gt2 = 0.337633; - var bt = 1.732446;*/ + if (typeof performance != "undefined") { + if (performance.now) { + nowValue = function() { + return performance.now(); + }; + }; + }; - var width = 0; - var height = 0; - var lumaSize = 0; - var chromaSize = 0; - var inpSize = 0; - var outSize = 0; - var inpStart = 0; - var outStart = 0; + var Decoder = function(parOptions) { + this.options = parOptions || {}; - var widthFour = 0; + this.now = nowValue; - var cacheStart = 0; + var asmInstance; + var fakeWindow = {}; - function init(parWidth, parHeight){ - parWidth = parWidth|0; - parHeight = parHeight|0; + var toU8Array; + var toU32Array; - var i = 0; - var s = 0; + var onPicFun = function($buffer, width, height) { + var buffer = this.pictureBuffers[$buffer]; + if (!buffer) { + buffer = this.pictureBuffers[$buffer] = toU8Array($buffer, (width * height * 3) / 2); + }; - width = parWidth; - widthFour = imul(parWidth, 4)|0; - height = parHeight; - lumaSize = imul(width|0, height|0)|0; - chromaSize = (lumaSize|0) >> 2; - outSize = imul(imul(width, height)|0, 4)|0; - inpSize = (((lumaSize + chromaSize)|0) + chromaSize)|0; + var infos; + var doInfo = false; + if (this.infoAr.length) { + doInfo = true; + infos = this.infoAr; + }; + this.infoAr = []; - outStart = 0; - inpStart = (outStart + outSize)|0; - cacheStart = (inpStart + inpSize)|0; + if (this.options.rgb) { + if (!asmInstance) { + asmInstance = getAsm(width, height); + }; + asmInstance.inp.set(buffer); + asmInstance.doit(); - // initializing memory (to be on the safe side) - s = ~~(+pow(+2, +24)); - s = imul(s, 4)|0; + var copyU8 = new Uint8Array(asmInstance.outSize); + copyU8.set(asmInstance.out); - for (i = 0|0; ((i|0) < (s|0))|0; i = (i + 4)|0){ - mem32[((cacheStart + i)|0) >> 2] = 0; - }; - }; + if (doInfo) { + infos[0].finishDecoding = nowValue(); + }; - function doit(){ - var ystart = 0; - var ustart = 0; - var vstart = 0; + this.onPictureDecoded(copyU8, width, height, infos); + return; - var y = 0; - var yn = 0; - var u = 0; - var v = 0; + }; - var o = 0; + if (doInfo) { + infos[0].finishDecoding = nowValue(); + }; + this.onPictureDecoded(buffer, width, height, infos); + }.bind(this); - var line = 0; - var col = 0; + var ignore = false; - var usave = 0; - var vsave = 0; + if (this.options.sliceMode) { + onPicFun = function($buffer, width, height, $sliceInfo) { + if (ignore) { + return; + }; + var buffer = this.pictureBuffers[$buffer]; + if (!buffer) { + buffer = this.pictureBuffers[$buffer] = toU8Array($buffer, (width * height * 3) / 2); + }; + var sliceInfo = this.pictureBuffers[$sliceInfo]; + if (!sliceInfo) { + sliceInfo = this.pictureBuffers[$sliceInfo] = toU32Array($sliceInfo, 18); + }; - var ostart = 0; - var cacheAdr = 0; + var infos; + var doInfo = false; + if (this.infoAr.length) { + doInfo = true; + infos = this.infoAr; + }; + this.infoAr = []; - ostart = outStart|0; + /*if (this.options.rgb){ - ystart = inpStart|0; - ustart = (ystart + lumaSize|0)|0; - vstart = (ustart + chromaSize)|0; + no rgb in slice mode - for (line = 0; (line|0) < (height|0); line = (line + 2)|0){ - usave = ustart; - vsave = vstart; - for (col = 0; (col|0) < (width|0); col = (col + 2)|0){ - y = inp[ystart >> 0]|0; - yn = inp[((ystart + width)|0) >> 0]|0; + };*/ - u = inp[ustart >> 0]|0; - v = inp[vstart >> 0]|0; + infos[0].finishDecoding = nowValue(); + var sliceInfoAr = []; + for (var i = 0; i < 20; ++i) { + sliceInfoAr.push(sliceInfo[i]); + }; + infos[0].sliceInfoAr = sliceInfoAr; - cacheAdr = (((((y << 16)|0) + ((u << 8)|0))|0) + v)|0; - o = mem32[((cacheStart >> 2) + cacheAdr)|0]|0; - if (o){}else{ - o = yuv2rgbcalc(y,u,v)|0; - mem32[((cacheStart >> 2) + cacheAdr)|0] = o|0; + this.onPictureDecoded(buffer, width, height, infos); + }.bind(this); }; - mem32[ostart >> 2] = o; - cacheAdr = (((((yn << 16)|0) + ((u << 8)|0))|0) + v)|0; - o = mem32[((cacheStart >> 2) + cacheAdr)|0]|0; - if (o){}else{ - o = yuv2rgbcalc(yn,u,v)|0; - mem32[((cacheStart >> 2) + cacheAdr)|0] = o|0; - }; - mem32[((ostart + widthFour)|0) >> 2] = o; - - //yuv2rgb5(y, u, v, ostart); - //yuv2rgb5(yn, u, v, (ostart + widthFour)|0); - ostart = (ostart + 4)|0; - - // next step only for y. u and v stay the same - ystart = (ystart + 1)|0; - y = inp[ystart >> 0]|0; - yn = inp[((ystart + width)|0) >> 0]|0; - - //yuv2rgb5(y, u, v, ostart); - cacheAdr = (((((y << 16)|0) + ((u << 8)|0))|0) + v)|0; - o = mem32[((cacheStart >> 2) + cacheAdr)|0]|0; - if (o){}else{ - o = yuv2rgbcalc(y,u,v)|0; - mem32[((cacheStart >> 2) + cacheAdr)|0] = o|0; + var ModuleCallback = getModule.apply(fakeWindow, [function() {}, onPicFun]); + + + var MAX_STREAM_BUFFER_LENGTH = 1024 * 1024; + + var instance = this; + this.onPictureDecoded = function(buffer, width, height, infos) { + }; - mem32[ostart >> 2] = o; - - //yuv2rgb5(yn, u, v, (ostart + widthFour)|0); - cacheAdr = (((((yn << 16)|0) + ((u << 8)|0))|0) + v)|0; - o = mem32[((cacheStart >> 2) + cacheAdr)|0]|0; - if (o){}else{ - o = yuv2rgbcalc(yn,u,v)|0; - mem32[((cacheStart >> 2) + cacheAdr)|0] = o|0; + + this.onDecoderReady = function() {}; + + var bufferedCalls = []; + this.decode = function decode(typedAr, parInfo, copyDoneFun) { + bufferedCalls.push([typedAr, parInfo, copyDoneFun]); }; - mem32[((ostart + widthFour)|0) >> 2] = o; - ostart = (ostart + 4)|0; - //all positions inc 1 + ModuleCallback(function(Module) { + var HEAP8 = Module.HEAP8; + var HEAPU8 = Module.HEAPU8; + var HEAP16 = Module.HEAP16; + var HEAP32 = Module.HEAP32; + // from old constructor + Module._broadwayInit(); + + /** + * Creates a typed array from a HEAP8 pointer. + */ + toU8Array = function(ptr, length) { + return HEAPU8.subarray(ptr, ptr + length); + }; + toU32Array = function(ptr, length) { + //var tmp = HEAPU8.subarray(ptr, ptr + (length * 4)); + return new Uint32Array(HEAPU8.buffer, ptr, length); + }; + instance.streamBuffer = toU8Array(Module._broadwayCreateStream(MAX_STREAM_BUFFER_LENGTH), MAX_STREAM_BUFFER_LENGTH); + instance.pictureBuffers = {}; + // collect extra infos that are provided with the nal units + instance.infoAr = []; + + /** + * Decodes a stream buffer. This may be one single (unframed) NAL unit without the + * start code, or a sequence of NAL units with framing start code prefixes. This + * function overwrites stream buffer allocated by the codec with the supplied buffer. + */ + + var sliceNum = 0; + if (instance.options.sliceMode) { + sliceNum = instance.options.sliceNum; + + instance.decode = function decode(typedAr, parInfo, copyDoneFun) { + instance.infoAr.push(parInfo); + parInfo.startDecoding = nowValue(); + var nals = parInfo.nals; + var i; + if (!nals) { + nals = []; + parInfo.nals = nals; + var l = typedAr.length; + var foundSomething = false; + var lastFound = 0; + var lastStart = 0; + for (i = 0; i < l; ++i) { + if (typedAr[i] === 1) { + if ( + typedAr[i - 1] === 0 && + typedAr[i - 2] === 0 + ) { + var startPos = i - 2; + if (typedAr[i - 3] === 0) { + startPos = i - 3; + }; + // its a nal; + if (foundSomething) { + nals.push({ + offset: lastFound, + end: startPos, + type: typedAr[lastStart] & 31 + }); + }; + lastFound = startPos; + lastStart = startPos + 3; + if (typedAr[i - 3] === 0) { + lastStart = startPos + 4; + }; + foundSomething = true; + }; + }; + }; + if (foundSomething) { + nals.push({ + offset: lastFound, + end: i, + type: typedAr[lastStart] & 31 + }); + }; + }; + + var currentSlice = 0; + var playAr; + var offset = 0; + for (i = 0; i < nals.length; ++i) { + if (nals[i].type === 1 || nals[i].type === 5) { + if (currentSlice === sliceNum) { + playAr = typedAr.subarray(nals[i].offset, nals[i].end); + instance.streamBuffer[offset] = 0; + offset += 1; + instance.streamBuffer.set(playAr, offset); + offset += playAr.length; + }; + currentSlice += 1; + } else { + playAr = typedAr.subarray(nals[i].offset, nals[i].end); + instance.streamBuffer[offset] = 0; + offset += 1; + instance.streamBuffer.set(playAr, offset); + offset += playAr.length; + Module._broadwayPlayStream(offset); + offset = 0; + }; + }; + copyDoneFun(); + Module._broadwayPlayStream(offset); + }; + + } else { + instance.decode = function decode(typedAr, parInfo) { + // console.info("Decoding: " + buffer.length); + // collect infos + if (parInfo) { + instance.infoAr.push(parInfo); + parInfo.startDecoding = nowValue(); + }; + + instance.streamBuffer.set(typedAr); + Module._broadwayPlayStream(typedAr.length); + }; + }; + + if (bufferedCalls.length) { + var bi = 0; + for (bi = 0; bi < bufferedCalls.length; ++bi) { + instance.decode(bufferedCalls[bi][0], bufferedCalls[bi][1], bufferedCalls[bi][2]); + }; + bufferedCalls = []; + }; + + instance.onDecoderReady(instance); + + }); - ystart = (ystart + 1)|0; - ustart = (ustart + 1)|0; - vstart = (vstart + 1)|0; - }; - ostart = (ostart + widthFour)|0; - ystart = (ystart + width)|0; }; - }; - function yuv2rgbcalc(y, u, v){ - y = y|0; - u = u|0; - v = v|0; + Decoder.prototype = { - var r = 0; - var g = 0; - var b = 0; + }; - var o = 0; - var a0 = 0; - var a1 = 0; - var a2 = 0; - var a3 = 0; - var a4 = 0; - a0 = imul(1192, (y - 16)|0)|0; - a1 = imul(1634, (v - 128)|0)|0; - a2 = imul(832, (v - 128)|0)|0; - a3 = imul(400, (u - 128)|0)|0; - a4 = imul(2066, (u - 128)|0)|0; - r = (((a0 + a1)|0) >> 10)|0; - g = (((((a0 - a2)|0) - a3)|0) >> 10)|0; - b = (((a0 + a4)|0) >> 10)|0; + /* - if ((((r & 255)|0) != (r|0))|0){ - r = min(255, max(0, r|0)|0)|0; - }; - if ((((g & 255)|0) != (g|0))|0){ - g = min(255, max(0, g|0)|0)|0; - }; - if ((((b & 255)|0) != (b|0))|0){ - b = min(255, max(0, b|0)|0)|0; - }; + asm.js implementation of a yuv to rgb convertor + provided by @soliton4 - o = 255; - o = (o << 8)|0; - o = (o + b)|0; - o = (o << 8)|0; - o = (o + g)|0; - o = (o << 8)|0; - o = (o + r)|0; + based on + http://www.wordsaretoys.com/2013/10/18/making-yuv-conversion-a-little-faster/ - return o|0; + */ - }; + // factory to create asm.js yuv -> rgb convertor for a given resolution + var asmInstances = {}; + var getAsm = function(parWidth, parHeight) { + var idStr = "" + parWidth + "x" + parHeight; + if (asmInstances[idStr]) { + return asmInstances[idStr]; + }; + var lumaSize = parWidth * parHeight; + var chromaSize = (lumaSize | 0) >> 2; - return { - init: init, - doit: doit - }; - }; + var inpSize = lumaSize + chromaSize + chromaSize; + var outSize = parWidth * parHeight * 4; + var cacheSize = Math.pow(2, 24) * 4; + var size = inpSize + outSize + cacheSize; - - /* - potential worker initialization - - */ - - - if (typeof self != "undefined"){ - var isWorker = false; - var decoder; - var reuseMemory = false; - var sliceMode = false; - var sliceNum = 0; - var sliceCnt = 0; - var lastSliceNum = 0; - var sliceInfoAr; - var lastBuf; - var awaiting = 0; - var pile = []; - var startDecoding; - var finishDecoding; - var timeDecoding; - - var memAr = []; - var getMem = function(length){ - if (memAr.length){ - var u = memAr.shift(); - while (u && u.byteLength !== length){ - u = memAr.shift(); - }; - if (u){ - return u; - }; - }; - return new ArrayBuffer(length); - }; - - var copySlice = function(source, target, infoAr, width, height){ - - var length = width * height; - var length4 = length / 4 - var plane2 = length; - var plane3 = length + length4; - - var copy16 = function(parBegin, parEnd){ - var i = 0; - for (i = 0; i < 16; ++i){ - var begin = parBegin + (width * i); - var end = parEnd + (width * i) - target.set(source.subarray(begin, end), begin); - }; - }; - var copy8 = function(parBegin, parEnd){ - var i = 0; - for (i = 0; i < 8; ++i){ - var begin = parBegin + ((width / 2) * i); - var end = parEnd + ((width / 2) * i) - target.set(source.subarray(begin, end), begin); - }; - }; - var copyChunk = function(begin, end){ - target.set(source.subarray(begin, end), begin); - }; - - var begin = infoAr[0]; - var end = infoAr[1]; - if (end > 0){ - copy16(begin, end); - copy8(infoAr[2], infoAr[3]); - copy8(infoAr[4], infoAr[5]); - }; - begin = infoAr[6]; - end = infoAr[7]; - if (end > 0){ - copy16(begin, end); - copy8(infoAr[8], infoAr[9]); - copy8(infoAr[10], infoAr[11]); - }; - - begin = infoAr[12]; - end = infoAr[15]; - if (end > 0){ - copyChunk(begin, end); - copyChunk(infoAr[13], infoAr[16]); - copyChunk(infoAr[14], infoAr[17]); + var chunkSize = Math.pow(2, 24); + var heapSize = chunkSize; + while (heapSize < size) { + heapSize += chunkSize; + }; + var heap = new ArrayBuffer(heapSize); + + var res = asmFactory(global, {}, heap); + res.init(parWidth, parHeight); + asmInstances[idStr] = res; + + res.heap = heap; + res.out = new Uint8Array(heap, 0, outSize); + res.inp = new Uint8Array(heap, outSize, inpSize); + res.outSize = outSize; + + return res; }; - - }; - - var sliceMsgFun = function(){}; - - var setSliceCnt = function(parSliceCnt){ - sliceCnt = parSliceCnt; - lastSliceNum = sliceCnt - 1; - }; - - - self.addEventListener('message', function(e) { - - if (isWorker){ - if (reuseMemory){ - if (e.data.reuse){ - memAr.push(e.data.reuse); + + + function asmFactory(stdlib, foreign, heap) { + "use asm"; + + var imul = stdlib.Math.imul; + var min = stdlib.Math.min; + var max = stdlib.Math.max; + var pow = stdlib.Math.pow; + var out = new stdlib.Uint8Array(heap); + var out32 = new stdlib.Uint32Array(heap); + var inp = new stdlib.Uint8Array(heap); + var mem = new stdlib.Uint8Array(heap); + var mem32 = new stdlib.Uint32Array(heap); + + // for double algo + /*var vt = 1.370705; + var gt = 0.698001; + var gt2 = 0.337633; + var bt = 1.732446;*/ + + var width = 0; + var height = 0; + var lumaSize = 0; + var chromaSize = 0; + var inpSize = 0; + var outSize = 0; + + var inpStart = 0; + var outStart = 0; + + var widthFour = 0; + + var cacheStart = 0; + + + function init(parWidth, parHeight) { + parWidth = parWidth | 0; + parHeight = parHeight | 0; + + var i = 0; + var s = 0; + + width = parWidth; + widthFour = imul(parWidth, 4) | 0; + height = parHeight; + lumaSize = imul(width | 0, height | 0) | 0; + chromaSize = (lumaSize | 0) >> 2; + outSize = imul(imul(width, height) | 0, 4) | 0; + inpSize = (((lumaSize + chromaSize) | 0) + chromaSize) | 0; + + outStart = 0; + inpStart = (outStart + outSize) | 0; + cacheStart = (inpStart + inpSize) | 0; + + // initializing memory (to be on the safe side) + s = ~~(+pow(+2, +24)); + s = imul(s, 4) | 0; + + for (i = 0 | 0; + ((i | 0) < (s | 0)) | 0; i = (i + 4) | 0) { + mem32[((cacheStart + i) | 0) >> 2] = 0; + }; }; - }; - if (e.data.buf){ - if (sliceMode && awaiting !== 0){ - pile.push(e.data); - }else{ - decoder.decode( - new Uint8Array(e.data.buf, e.data.offset || 0, e.data.length), - e.data.info, - function(){ - if (sliceMode && sliceNum !== lastSliceNum){ - postMessage(e.data, [e.data.buf]); - }; - } - ); + + function doit() { + var ystart = 0; + var ustart = 0; + var vstart = 0; + + var y = 0; + var yn = 0; + var u = 0; + var v = 0; + + var o = 0; + + var line = 0; + var col = 0; + + var usave = 0; + var vsave = 0; + + var ostart = 0; + var cacheAdr = 0; + + ostart = outStart | 0; + + ystart = inpStart | 0; + ustart = (ystart + lumaSize | 0) | 0; + vstart = (ustart + chromaSize) | 0; + + for (line = 0; + (line | 0) < (height | 0); line = (line + 2) | 0) { + usave = ustart; + vsave = vstart; + for (col = 0; + (col | 0) < (width | 0); col = (col + 2) | 0) { + y = inp[ystart >> 0] | 0; + yn = inp[((ystart + width) | 0) >> 0] | 0; + + u = inp[ustart >> 0] | 0; + v = inp[vstart >> 0] | 0; + + cacheAdr = (((((y << 16) | 0) + ((u << 8) | 0)) | 0) + v) | 0; + o = mem32[((cacheStart >> 2) + cacheAdr) | 0] | 0; + if (o) {} else { + o = yuv2rgbcalc(y, u, v) | 0; + mem32[((cacheStart >> 2) + cacheAdr) | 0] = o | 0; + }; + mem32[ostart >> 2] = o; + + cacheAdr = (((((yn << 16) | 0) + ((u << 8) | 0)) | 0) + v) | 0; + o = mem32[((cacheStart >> 2) + cacheAdr) | 0] | 0; + if (o) {} else { + o = yuv2rgbcalc(yn, u, v) | 0; + mem32[((cacheStart >> 2) + cacheAdr) | 0] = o | 0; + }; + mem32[((ostart + widthFour) | 0) >> 2] = o; + + //yuv2rgb5(y, u, v, ostart); + //yuv2rgb5(yn, u, v, (ostart + widthFour)|0); + ostart = (ostart + 4) | 0; + + // next step only for y. u and v stay the same + ystart = (ystart + 1) | 0; + y = inp[ystart >> 0] | 0; + yn = inp[((ystart + width) | 0) >> 0] | 0; + + //yuv2rgb5(y, u, v, ostart); + cacheAdr = (((((y << 16) | 0) + ((u << 8) | 0)) | 0) + v) | 0; + o = mem32[((cacheStart >> 2) + cacheAdr) | 0] | 0; + if (o) {} else { + o = yuv2rgbcalc(y, u, v) | 0; + mem32[((cacheStart >> 2) + cacheAdr) | 0] = o | 0; + }; + mem32[ostart >> 2] = o; + + //yuv2rgb5(yn, u, v, (ostart + widthFour)|0); + cacheAdr = (((((yn << 16) | 0) + ((u << 8) | 0)) | 0) + v) | 0; + o = mem32[((cacheStart >> 2) + cacheAdr) | 0] | 0; + if (o) {} else { + o = yuv2rgbcalc(yn, u, v) | 0; + mem32[((cacheStart >> 2) + cacheAdr) | 0] = o | 0; + }; + mem32[((ostart + widthFour) | 0) >> 2] = o; + ostart = (ostart + 4) | 0; + + //all positions inc 1 + + ystart = (ystart + 1) | 0; + ustart = (ustart + 1) | 0; + vstart = (vstart + 1) | 0; + }; + ostart = (ostart + widthFour) | 0; + ystart = (ystart + width) | 0; + + }; + + }; + + function yuv2rgbcalc(y, u, v) { + y = y | 0; + u = u | 0; + v = v | 0; + + var r = 0; + var g = 0; + var b = 0; + + var o = 0; + + var a0 = 0; + var a1 = 0; + var a2 = 0; + var a3 = 0; + var a4 = 0; + + a0 = imul(1192, (y - 16) | 0) | 0; + a1 = imul(1634, (v - 128) | 0) | 0; + a2 = imul(832, (v - 128) | 0) | 0; + a3 = imul(400, (u - 128) | 0) | 0; + a4 = imul(2066, (u - 128) | 0) | 0; + + r = (((a0 + a1) | 0) >> 10) | 0; + g = (((((a0 - a2) | 0) - a3) | 0) >> 10) | 0; + b = (((a0 + a4) | 0) >> 10) | 0; + + if ((((r & 255) | 0) != (r | 0)) | 0) { + r = min(255, max(0, r | 0) | 0) | 0; + }; + if ((((g & 255) | 0) != (g | 0)) | 0) { + g = min(255, max(0, g | 0) | 0) | 0; + }; + if ((((b & 255) | 0) != (b | 0)) | 0) { + b = min(255, max(0, b | 0) | 0) | 0; + }; + + o = 255; + o = (o << 8) | 0; + o = (o + b) | 0; + o = (o << 8) | 0; + o = (o + g) | 0; + o = (o << 8) | 0; + o = (o + r) | 0; + + return o | 0; + }; - return; - }; - - if (e.data.slice){ - // update ref pic - var copyStart = nowValue(); - copySlice(new Uint8Array(e.data.slice), lastBuf, e.data.infos[0].sliceInfoAr, e.data.width, e.data.height); - // is it the one? then we need to update it - if (e.data.theOne){ - copySlice(lastBuf, new Uint8Array(e.data.slice), sliceInfoAr, e.data.width, e.data.height); - if (timeDecoding > e.data.infos[0].timeDecoding){ - e.data.infos[0].timeDecoding = timeDecoding; - }; - e.data.infos[0].timeCopy += (nowValue() - copyStart); + + + + return { + init: init, + doit: doit }; - // move on - postMessage(e.data, [e.data.slice]); - - // next frame in the pipe? - awaiting -= 1; - if (awaiting === 0 && pile.length){ - var data = pile.shift(); - decoder.decode( - new Uint8Array(data.buf, data.offset || 0, data.length), - data.info, - function(){ - if (sliceMode && sliceNum !== lastSliceNum){ - postMessage(data, [data.buf]); - }; - } - ); + }; + + + /* + potential worker initialization + + */ + + + if (typeof self != "undefined") { + var isWorker = false; + var decoder; + var reuseMemory = false; + var sliceMode = false; + var sliceNum = 0; + var sliceCnt = 0; + var lastSliceNum = 0; + var sliceInfoAr; + var lastBuf; + var awaiting = 0; + var pile = []; + var startDecoding; + var finishDecoding; + var timeDecoding; + + var memAr = []; + var getMem = function(length) { + if (memAr.length) { + var u = memAr.shift(); + while (u && u.byteLength !== length) { + u = memAr.shift(); + }; + if (u) { + return u; + }; + }; + return new ArrayBuffer(length); }; - return; - }; - - if (e.data.setSliceCnt){ - setSliceCnt(e.data.sliceCnt); - return; - }; - - }else{ - if (e.data && e.data.type === "Broadway.js - Worker init"){ - isWorker = true; - decoder = new Decoder(e.data.options); - - if (e.data.options.sliceMode){ - reuseMemory = true; - sliceMode = true; - sliceNum = e.data.options.sliceNum; - setSliceCnt(e.data.options.sliceCnt); - - decoder.onPictureDecoded = function (buffer, width, height, infos) { - - // buffer needs to be copied because we give up ownership - var copyU8 = new Uint8Array(getMem(buffer.length)); - copySlice(buffer, copyU8, infos[0].sliceInfoAr, width, height); - - startDecoding = infos[0].startDecoding; - finishDecoding = infos[0].finishDecoding; - timeDecoding = finishDecoding - startDecoding; - infos[0].timeDecoding = timeDecoding; - infos[0].timeCopy = 0; - - postMessage({ - slice: copyU8.buffer, - sliceNum: sliceNum, - width: width, - height: height, - infos: infos - }, [copyU8.buffer]); // 2nd parameter is used to indicate transfer of ownership - - awaiting = sliceCnt - 1; - - lastBuf = buffer; - sliceInfoAr = infos[0].sliceInfoAr; - - }; - - }else if (e.data.options.reuseMemory){ - reuseMemory = true; - decoder.onPictureDecoded = function (buffer, width, height, infos) { - - // buffer needs to be copied because we give up ownership - var copyU8 = new Uint8Array(getMem(buffer.length)); - copyU8.set( buffer, 0, buffer.length ); - - postMessage({ - buf: copyU8.buffer, - length: buffer.length, - width: width, - height: height, - infos: infos - }, [copyU8.buffer]); // 2nd parameter is used to indicate transfer of ownership - - }; - - }else{ - decoder.onPictureDecoded = function (buffer, width, height, infos) { - if (buffer) { - buffer = new Uint8Array(buffer); + + var copySlice = function(source, target, infoAr, width, height) { + + var length = width * height; + var length4 = length / 4 + var plane2 = length; + var plane3 = length + length4; + + var copy16 = function(parBegin, parEnd) { + var i = 0; + for (i = 0; i < 16; ++i) { + var begin = parBegin + (width * i); + var end = parEnd + (width * i) + target.set(source.subarray(begin, end), begin); + }; + }; + var copy8 = function(parBegin, parEnd) { + var i = 0; + for (i = 0; i < 8; ++i) { + var begin = parBegin + ((width / 2) * i); + var end = parEnd + ((width / 2) * i) + target.set(source.subarray(begin, end), begin); + }; + }; + var copyChunk = function(begin, end) { + target.set(source.subarray(begin, end), begin); + }; + + var begin = infoAr[0]; + var end = infoAr[1]; + if (end > 0) { + copy16(begin, end); + copy8(infoAr[2], infoAr[3]); + copy8(infoAr[4], infoAr[5]); + }; + begin = infoAr[6]; + end = infoAr[7]; + if (end > 0) { + copy16(begin, end); + copy8(infoAr[8], infoAr[9]); + copy8(infoAr[10], infoAr[11]); }; - // buffer needs to be copied because we give up ownership - var copyU8 = new Uint8Array(buffer.length); - copyU8.set( buffer, 0, buffer.length ); + begin = infoAr[12]; + end = infoAr[15]; + if (end > 0) { + copyChunk(begin, end); + copyChunk(infoAr[13], infoAr[16]); + copyChunk(infoAr[14], infoAr[17]); + }; - postMessage({ - buf: copyU8.buffer, - length: buffer.length, - width: width, - height: height, - infos: infos - }, [copyU8.buffer]); // 2nd parameter is used to indicate transfer of ownership + }; - }; + var sliceMsgFun = function() {}; + + var setSliceCnt = function(parSliceCnt) { + sliceCnt = parSliceCnt; + lastSliceNum = sliceCnt - 1; }; - postMessage({ consoleLog: "broadway worker initialized" }); - }; + + + self.addEventListener('message', function(e) { + + if (isWorker) { + if (reuseMemory) { + if (e.data.reuse) { + memAr.push(e.data.reuse); + }; + }; + if (e.data.buf) { + if (sliceMode && awaiting !== 0) { + pile.push(e.data); + } else { + decoder.decode( + new Uint8Array(e.data.buf, e.data.offset || 0, e.data.length), + e.data.info, + function() { + if (sliceMode && sliceNum !== lastSliceNum) { + postMessage(e.data, [e.data.buf]); + }; + } + ); + }; + return; + }; + + if (e.data.slice) { + // update ref pic + var copyStart = nowValue(); + copySlice(new Uint8Array(e.data.slice), lastBuf, e.data.infos[0].sliceInfoAr, e.data.width, e.data.height); + // is it the one? then we need to update it + if (e.data.theOne) { + copySlice(lastBuf, new Uint8Array(e.data.slice), sliceInfoAr, e.data.width, e.data.height); + if (timeDecoding > e.data.infos[0].timeDecoding) { + e.data.infos[0].timeDecoding = timeDecoding; + }; + e.data.infos[0].timeCopy += (nowValue() - copyStart); + }; + // move on + postMessage(e.data, [e.data.slice]); + + // next frame in the pipe? + awaiting -= 1; + if (awaiting === 0 && pile.length) { + var data = pile.shift(); + decoder.decode( + new Uint8Array(data.buf, data.offset || 0, data.length), + data.info, + function() { + if (sliceMode && sliceNum !== lastSliceNum) { + postMessage(data, [data.buf]); + }; + } + ); + }; + return; + }; + + if (e.data.setSliceCnt) { + setSliceCnt(e.data.sliceCnt); + return; + }; + + } else { + if (e.data && e.data.type === "Broadway.js - Worker init") { + isWorker = true; + decoder = new Decoder(e.data.options); + + if (e.data.options.sliceMode) { + reuseMemory = true; + sliceMode = true; + sliceNum = e.data.options.sliceNum; + setSliceCnt(e.data.options.sliceCnt); + + decoder.onPictureDecoded = function(buffer, width, height, infos) { + + // buffer needs to be copied because we give up ownership + var copyU8 = new Uint8Array(getMem(buffer.length)); + copySlice(buffer, copyU8, infos[0].sliceInfoAr, width, height); + + startDecoding = infos[0].startDecoding; + finishDecoding = infos[0].finishDecoding; + timeDecoding = finishDecoding - startDecoding; + infos[0].timeDecoding = timeDecoding; + infos[0].timeCopy = 0; + + postMessage({ + slice: copyU8.buffer, + sliceNum: sliceNum, + width: width, + height: height, + infos: infos + }, [copyU8.buffer]); // 2nd parameter is used to indicate transfer of ownership + + awaiting = sliceCnt - 1; + + lastBuf = buffer; + sliceInfoAr = infos[0].sliceInfoAr; + + }; + + } else if (e.data.options.reuseMemory) { + reuseMemory = true; + decoder.onPictureDecoded = function(buffer, width, height, infos) { + + // buffer needs to be copied because we give up ownership + var copyU8 = new Uint8Array(getMem(buffer.length)); + copyU8.set(buffer, 0, buffer.length); + + postMessage({ + buf: copyU8.buffer, + length: buffer.length, + width: width, + height: height, + infos: infos + }, [copyU8.buffer]); // 2nd parameter is used to indicate transfer of ownership + + }; + + } else { + decoder.onPictureDecoded = function(buffer, width, height, infos) { + if (buffer) { + buffer = new Uint8Array(buffer); + }; + + // buffer needs to be copied because we give up ownership + var copyU8 = new Uint8Array(buffer.length); + copyU8.set(buffer, 0, buffer.length); + + postMessage({ + buf: copyU8.buffer, + length: buffer.length, + width: width, + height: height, + infos: infos + }, [copyU8.buffer]); // 2nd parameter is used to indicate transfer of ownership + + }; + }; + postMessage({ + consoleLog: "broadway worker initialized" + }); + }; + }; + + + }, false); }; + Decoder.nowValue = nowValue; + + return Decoder; - }, false); - }; - - Decoder.nowValue = nowValue; - - return Decoder; - })(); - - -})); +} +factory(); diff --git a/cvat-data/src/ts/3rdparty/README.md b/cvat-data/src/ts/3rdparty/README.md index 622e187f882c..1da6b3bb3eb4 100644 --- a/cvat-data/src/ts/3rdparty/README.md +++ b/cvat-data/src/ts/3rdparty/README.md @@ -1,7 +1,7 @@ ## 3rdparty components These files are from the [Broadway.js](https://github.com/mbebenita/Broadway) repository: -- Decoder.js +- Decoder.cjs - mp4.js - avc.wasm @@ -16,7 +16,7 @@ For example there are issues with canvas using (webpack doesn't work with binary So, we have solved to write patch file for this library. It modifies source code a little to support our scenario of using. -### How to build awc.wasm and Decoder.js +### How to build awc.wasm and Decoder.cjs 1. Clone Emscripten SDK, install and activate the latest fastcomp SDK: ```sh git clone https://github.com/emscripten-core/emsdk.git && cd emsdk @@ -58,7 +58,7 @@ It modifies source code a little to support our scenario of using. cd .. ``` ```sh - cp Player/avc.wasm Player/Decoder.js Player/mp4.js /cvat-data/src/ + cp Player/avc.wasm Player/Decoder.cjs Player/mp4.js /cvat-data/src/ ``` ```sh js/3rdparty diff --git a/cvat-data/src/ts/3rdparty/mp4.js b/cvat-data/src/ts/3rdparty/mp4.js index 39983071e7f2..bc233e055ffb 100644 --- a/cvat-data/src/ts/3rdparty/mp4.js +++ b/cvat-data/src/ts/3rdparty/mp4.js @@ -1,15 +1,9 @@ -module.exports = (function(){ - -'use strict'; - - function assert(condition, message) { if (!condition) { error(message); } }; - /** * Represents a 2-dimensional size value. */ @@ -964,14 +958,11 @@ var Broadway = (function broadway() { return constructor; })(); - -return { +export { Size, Track, MP4Reader, MP4Player, Bytestream, Broadway, -} - -})(); \ No newline at end of file +}; diff --git a/cvat-data/src/ts/3rdparty_patch.diff b/cvat-data/src/ts/3rdparty_patch.diff deleted file mode 100644 index 540a15136d73..000000000000 --- a/cvat-data/src/ts/3rdparty_patch.diff +++ /dev/null @@ -1,162 +0,0 @@ -Binary files 3rdparty/avc.wasm and 3rdparty_edited/avc.wasm differ -diff -u 3rdparty/Decoder.js 3rdparty_edited/Decoder.js ---- 3rdparty/Decoder.js 2019-12-16 13:01:04.315399742 +0300 -+++ 3rdparty_edited/Decoder.js 2019-12-16 12:48:52.995423455 +0300 -@@ -63,10 +63,7 @@ - //var Module = (function(){ - - --var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=(function(status,toThrow){throw toThrow});Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("Module['ENVIRONMENT'] value is not valid. must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof null==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=(null)("fs");if(!nodePath)nodePath=(null)("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process["on"]("unhandledRejection",(function(reason,p){process["exit"](1)}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){return read(f)}}Module["readBinary"]=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module["setWindowTitle"]=(function(title){document.title=title})}else{throw new Error("not compiled for this environment")}Module["print"]=typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null;Module["printErr"]=typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||Module["print"];Module.print=Module["print"];Module.printErr=Module["printErr"];for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){assert(!staticSealed);var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}var asm2wasmImports={"f64-rem":(function(x,y){return x%y}),"debugger":(function(){debugger})};var functionPointers=new Array(0);var GLOBAL_BASE=1024;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf}function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||52428800;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_max=Math.max;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}function integrateWasmJS(){var wasmTextFile="avc.wast";var wasmBinaryFile="avc.wasm";var asmjsCodeFile="avc.temp.asm.js";if(typeof Module["locateFile"]==="function"){if(!isDataURI(wasmTextFile)){wasmTextFile=Module["locateFile"](wasmTextFile)}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=Module["locateFile"](wasmBinaryFile)}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=Module["locateFile"](asmjsCodeFile)}}var wasmPageSize=64*1024;var info={"global":null,"env":null,"asm2wasm":asm2wasmImports,"parent":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module["buffer"];if(newBuffer.byteLength>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?Module["print"]:Module["printErr"])(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=value;return value}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module["wasmTableSize"]=10;Module["wasmMaxTableSize"]=10;Module.asmGlobalArg={};Module.asmLibraryArg={"abort":abort,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"___setErrNo":___setErrNo,"___syscall140":___syscall140,"___syscall146":___syscall146,"___syscall54":___syscall54,"___syscall6":___syscall6,"_broadwayOnHeadersDecoded":_broadwayOnHeadersDecoded,"_broadwayOnPictureDecoded":_broadwayOnPictureDecoded,"_emscripten_memcpy_big":_emscripten_memcpy_big,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"STACKTOP":STACKTOP};var asm=Module["asm"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module["asm"]=asm;var _broadwayCreateStream=Module["_broadwayCreateStream"]=(function(){return Module["asm"]["_broadwayCreateStream"].apply(null,arguments)});var _broadwayExit=Module["_broadwayExit"]=(function(){return Module["asm"]["_broadwayExit"].apply(null,arguments)});var _broadwayGetMajorVersion=Module["_broadwayGetMajorVersion"]=(function(){return Module["asm"]["_broadwayGetMajorVersion"].apply(null,arguments)});var _broadwayGetMinorVersion=Module["_broadwayGetMinorVersion"]=(function(){return Module["asm"]["_broadwayGetMinorVersion"].apply(null,arguments)});var _broadwayInit=Module["_broadwayInit"]=(function(){return Module["asm"]["_broadwayInit"].apply(null,arguments)});var _broadwayPlayStream=Module["_broadwayPlayStream"]=(function(){return Module["asm"]["_broadwayPlayStream"].apply(null,arguments)});Module["asm"]=asm;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};function run(args){args=args||Module["arguments"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]&&status===0){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=exit;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}Module["noExitRuntime"]=true;run() -- -- -- -+var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=true;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var asm2wasmImports={"f64-rem":function(x,y){return x%y},"debugger":function(){}};var functionPointers=new Array(0);var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){err("no native wasm support detected")}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":10,"maximum":10,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;var WASM_PAGE_SIZE=65536;var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var DYNAMIC_BASE=5254064,DYNAMICTOP_PTR=10992;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||104857600;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_TOTAL_MEMORY/WASM_PAGE_SIZE,"maximum":INITIAL_TOTAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_TOTAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw new WebAssembly.RuntimeError(what)}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile="avc.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"env":asmLibraryArg,"wasi_unstable":asmLibraryArg,"global":{"NaN":NaN,Infinity:Infinity},"global.Math":Math,"asm2wasm":asm2wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}Module["asm"]=createWasm;var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};var SYSCALLS={buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function _fd_write(fd,iov,iovcnt,pnum){try{var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function ___wasi_fd_write(){return _fd_write.apply(null,arguments)}function _broadwayOnHeadersDecoded(){par_broadwayOnHeadersDecoded()}Module["_broadwayOnHeadersDecoded"]=_broadwayOnHeadersDecoded;function _broadwayOnPictureDecoded($buffer,width,height){par_broadwayOnPictureDecoded($buffer,width,height)}Module["_broadwayOnPictureDecoded"]=_broadwayOnPictureDecoded;function _emscripten_get_heap_size(){return HEAP8.length}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){abortOnCannotGrowMemory(requestedSize)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}var asmGlobalArg={};var asmLibraryArg={"g":___wasi_fd_write,"__memory_base":1024,"__table_base":0,"f":_broadwayOnHeadersDecoded,"e":_broadwayOnPictureDecoded,"b":_emscripten_get_heap_size,"d":_emscripten_memcpy_big,"a":_emscripten_resize_heap,"c":abort,"memory":wasmMemory,"table":wasmTable};var asm=Module["asm"](asmGlobalArg,asmLibraryArg,buffer);Module["asm"]=asm;var _broadwayCreateStream=Module["_broadwayCreateStream"]=function(){return Module["asm"]["h"].apply(null,arguments)};var _broadwayExit=Module["_broadwayExit"]=function(){return Module["asm"]["i"].apply(null,arguments)};var _broadwayGetMajorVersion=Module["_broadwayGetMajorVersion"]=function(){return Module["asm"]["j"].apply(null,arguments)};var _broadwayGetMinorVersion=Module["_broadwayGetMinorVersion"]=function(){return Module["asm"]["k"].apply(null,arguments)};var _broadwayInit=Module["_broadwayInit"]=function(){return Module["asm"]["l"].apply(null,arguments)};var _broadwayPlayStream=Module["_broadwayPlayStream"]=function(){return Module["asm"]["m"].apply(null,arguments)};Module["asm"]=asm;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); - // return Module; - //})(); - -@@ -471,7 +468,7 @@ - lumaSize = imul(width|0, height|0)|0; - chromaSize = (lumaSize|0) >> 2; - outSize = imul(imul(width, height)|0, 4)|0; -- inpSize = ((lumaSize + chromaSize)|0 + chromaSize)|0; -+ inpSize = (((lumaSize + chromaSize)|0) + chromaSize)|0; - - outStart = 0; - inpStart = (outStart + outSize)|0; -@@ -524,18 +521,18 @@ - v = inp[vstart >> 0]|0; - - cacheAdr = (((((y << 16)|0) + ((u << 8)|0))|0) + v)|0; -- o = mem32[((cacheStart + cacheAdr)|0) >> 2]|0; -+ o = mem32[((cacheStart >> 2) + cacheAdr)|0]|0; - if (o){}else{ - o = yuv2rgbcalc(y,u,v)|0; -- mem32[((cacheStart + cacheAdr)|0) >> 2] = o|0; -+ mem32[((cacheStart >> 2) + cacheAdr)|0] = o|0; - }; - mem32[ostart >> 2] = o; - - cacheAdr = (((((yn << 16)|0) + ((u << 8)|0))|0) + v)|0; -- o = mem32[((cacheStart + cacheAdr)|0) >> 2]|0; -+ o = mem32[((cacheStart >> 2) + cacheAdr)|0]|0; - if (o){}else{ - o = yuv2rgbcalc(yn,u,v)|0; -- mem32[((cacheStart + cacheAdr)|0) >> 2] = o|0; -+ mem32[((cacheStart >> 2) + cacheAdr)|0] = o|0; - }; - mem32[((ostart + widthFour)|0) >> 2] = o; - -@@ -550,19 +547,19 @@ - - //yuv2rgb5(y, u, v, ostart); - cacheAdr = (((((y << 16)|0) + ((u << 8)|0))|0) + v)|0; -- o = mem32[((cacheStart + cacheAdr)|0) >> 2]|0; -+ o = mem32[((cacheStart >> 2) + cacheAdr)|0]|0; - if (o){}else{ - o = yuv2rgbcalc(y,u,v)|0; -- mem32[((cacheStart + cacheAdr)|0) >> 2] = o|0; -+ mem32[((cacheStart >> 2) + cacheAdr)|0] = o|0; - }; - mem32[ostart >> 2] = o; - - //yuv2rgb5(yn, u, v, (ostart + widthFour)|0); - cacheAdr = (((((yn << 16)|0) + ((u << 8)|0))|0) + v)|0; -- o = mem32[((cacheStart + cacheAdr)|0) >> 2]|0; -+ o = mem32[((cacheStart >> 2) + cacheAdr)|0]|0; - if (o){}else{ - o = yuv2rgbcalc(yn,u,v)|0; -- mem32[((cacheStart + cacheAdr)|0) >> 2] = o|0; -+ mem32[((cacheStart >> 2) + cacheAdr)|0] = o|0; - }; - mem32[((ostart + widthFour)|0) >> 2] = o; - ostart = (ostart + 4)|0; -diff -u 3rdparty/mp4.js 3rdparty_edited/mp4.js ---- 3rdparty/mp4.js 2019-11-18 16:46:21.009764774 +0300 -+++ 3rdparty_edited/mp4.js 2019-12-16 12:48:52.995423455 +0300 -@@ -1,3 +1,5 @@ -+module.exports = (function(){ -+ - 'use strict'; - - -@@ -9,7 +11,7 @@ - - - /** -- * Represents a 2-dimensional size value. -+ * Represents a 2-dimensional size value. - */ - var Size = (function size() { - function constructor(w, h) { -@@ -791,14 +793,14 @@ - height: 368 - } - }); -- -+ - this.webgl = this.avc.webgl; -- -+ - var self = this; - this.avc.onPictureDecoded = function(){ - updateStatistics.call(self); - }; -- -+ - this.canvas = this.avc.canvas; - } - -@@ -897,10 +899,10 @@ - this.info.setAttribute('style', "font-size: 14px; font-weight: bold; padding: 6px; color: lime;"); - controls.appendChild(this.info); - div.appendChild(controls); -- -+ - var useWorkers = div.attributes.workers ? div.attributes.workers.value == "true" : false; - var render = div.attributes.render ? div.attributes.render.value == "true" : false; -- -+ - var webgl = "auto"; - if (div.attributes.webgl){ - if (div.attributes.webgl.value == "true"){ -@@ -910,7 +912,7 @@ - webgl = false; - }; - }; -- -+ - var infoStrPre = "Click canvas to load and play - "; - var infoStr = ""; - if (useWorkers){ -@@ -925,11 +927,11 @@ - this.play(); - }.bind(this); - div.appendChild(this.canvas); -- -- -+ -+ - infoStr += " - webgl: " + this.player.webgl; - this.info.innerHTML = infoStrPre + infoStr; -- -+ - - this.score = null; - this.player.onStatisticsUpdated = function (statistics) { -@@ -961,3 +963,15 @@ - }; - return constructor; - })(); -+ -+ -+return { -+ Size, -+ Track, -+ MP4Reader, -+ MP4Player, -+ Bytestream, -+ Broadway, -+} -+ -+})(); -\ No newline at end of file diff --git a/cvat-data/src/ts/cvat-data.ts b/cvat-data/src/ts/cvat-data.ts index 64000196e1a9..105e0adc3c1b 100644 --- a/cvat-data/src/ts/cvat-data.ts +++ b/cvat-data/src/ts/cvat-data.ts @@ -5,8 +5,6 @@ import { Mutex } from 'async-mutex'; import { MP4Reader, Bytestream } from './3rdparty/mp4'; -import ZipDecoder from './unzip_imgs.worker'; -import H264Decoder from './3rdparty/Decoder.worker'; export class RequestOutdatedError extends Error {} @@ -28,7 +26,9 @@ export enum DimensionType { export function decodeContextImages( block: any, start: number, end: number, ): Promise> { - const decodeZipWorker = ((decodeContextImages as any).zipWorker || new (ZipDecoder as any)()) as Worker; + const decodeZipWorker = (decodeContextImages as any).zipWorker || new Worker( + new URL('./unzip_imgs.worker', import.meta.url), + ); (decodeContextImages as any).zipWorker = decodeZipWorker; return new Promise((resolve, reject) => { decodeContextImages.mutex.acquire().then((release) => { @@ -221,7 +221,9 @@ export class FrameDecoder { this.requestedChunkToDecode = null; if (this.blockType === BlockType.MP4VIDEO) { - const worker = new H264Decoder() as any as Worker; + const worker = new Worker( + new URL('./3rdparty/Decoder.worker', import.meta.url), + ); let index = start; worker.onmessage = (e) => { @@ -286,7 +288,9 @@ export class FrameDecoder { }); } } else { - this.zipWorker = this.zipWorker || new (ZipDecoder as any)() as any as Worker; + this.zipWorker = this.zipWorker || new Worker( + new URL('./unzip_imgs.worker', import.meta.url), + ); let index = start; this.zipWorker.onmessage = async (event) => { diff --git a/cvat-data/src/ts/unzip_imgs.worker.js b/cvat-data/src/ts/unzip_imgs.worker.ts similarity index 94% rename from cvat-data/src/ts/unzip_imgs.worker.js rename to cvat-data/src/ts/unzip_imgs.worker.ts index ac4005a66962..70d8299e7c38 100644 --- a/cvat-data/src/ts/unzip_imgs.worker.js +++ b/cvat-data/src/ts/unzip_imgs.worker.ts @@ -3,12 +3,11 @@ // // SPDX-License-Identifier: MIT -// eslint-disable-next-line @typescript-eslint/no-var-requires -const JSZip = require('jszip'); +import JSZip from 'jszip'; onmessage = (e) => { let errored = false; - function handleError(error) { + function handleError(error): void { try { if (!errored) { postMessage({ error }); diff --git a/cvat-data/tsconfig.json b/cvat-data/tsconfig.json index 0091ff8d4a1a..59a8ebc9d057 100644 --- a/cvat-data/tsconfig.json +++ b/cvat-data/tsconfig.json @@ -1,8 +1,8 @@ { "compilerOptions": { - "target": "es2020", + "target": "ESNext", "allowJs": true, - "module": "commonjs", + "module": "esnext", "moduleResolution": "node", "esModuleInterop": true, "isolatedModules": true, diff --git a/cvat-data/webpack.config.js b/cvat-data/webpack.config.cjs similarity index 58% rename from cvat-data/webpack.config.js rename to cvat-data/webpack.config.cjs index c90d0f3d6f54..4383f3e41d93 100644 --- a/cvat-data/webpack.config.js +++ b/cvat-data/webpack.config.cjs @@ -1,11 +1,8 @@ // Copyright (C) 2020-2022 Intel Corporation +// Copyright (C) 2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT -/* global - __dirname:true -*/ - const path = require('path'); const CopyPlugin = require('copy-webpack-plugin'); @@ -41,32 +38,18 @@ const cvatData = { }, }, }, - { - test: /\.worker\.js$/, - exclude: /3rdparty/, - use: { - loader: 'worker-loader', - options: { - publicPath: '/', - filename: '[name].[contenthash].js', - esModule: false, - }, - }, - }, - { - test: /3rdparty\/.*\.worker\.js$/, - use: { - loader: 'worker-loader', - options: { - publicPath: '/3rdparty/', - filename: '3rdparty/[name].[contenthash].js', - esModule: false, - }, - }, - }, ], }, - plugins: [new CopyPlugin({ patterns: ['./src/ts/3rdparty/avc.wasm'] })], + plugins: [ + new CopyPlugin({ + patterns: [ + { + from: '../cvat-data/src/ts/3rdparty/avc.wasm', + to: 'assets/3rdparty/', + }, + ], + }), + ], }; module.exports = cvatData; diff --git a/cvat-ui/.eslintrc.js b/cvat-ui/.eslintrc.cjs similarity index 68% rename from cvat-ui/.eslintrc.js rename to cvat-ui/.eslintrc.cjs index d9115bc29384..047353d3299e 100644 --- a/cvat-ui/.eslintrc.js +++ b/cvat-ui/.eslintrc.cjs @@ -3,7 +3,7 @@ // // SPDX-License-Identifier: MIT -const globalConfig = require('../.eslintrc.js'); +const globalConfig = require('../.eslintrc.cjs'); const { join } = require('path'); module.exports = { @@ -12,25 +12,26 @@ module.exports = { tsconfigRootDir: __dirname, }, ignorePatterns: [ - '.eslintrc.js', + '.eslintrc.cjs', 'webpack.config.js', 'src/assets/opencv*.js', 'node_modules/**', 'dist/**', ], - extends: ['airbnb-typescript'], + extends: ['airbnb', 'airbnb-typescript'], rules: { ...globalConfig.rules, // need to import rules again because they've been redefined by "airbnb-typescript" + 'jsx-a11y/control-has-associated-label': 0, // new rule, conflicts with existing code + 'react/no-unused-class-component-methods': 0, // new rule, gives often false positives + 'react/no-unstable-nested-components': 0, // new rule, we have a lot of code conflicting with this 'react/no-did-update-set-state': 0, // https://github.com/airbnb/javascript/issues/1875 'react/require-default-props': 'off', 'react/no-unused-prop-types': 'off', 'react/no-array-index-key': 'off', - 'react/static-property-placement': ['error', 'static public field'], - 'react/jsx-indent': ['warn', 4], - 'react/jsx-indent-props': ['warn', 4], 'react/jsx-props-no-spreading': 0, 'jsx-quotes': ['error', 'prefer-single'], + 'react/static-property-placement': ['warn', 'static public field'], 'import/no-extraneous-dependencies': [ 'error', { diff --git a/cvat-ui/index.d.ts b/cvat-ui/index.d.ts index 7180b9700fe9..b9d09fb363b5 100644 --- a/cvat-ui/index.d.ts +++ b/cvat-ui/index.d.ts @@ -6,4 +6,3 @@ import 'redux-thunk/extend-redux'; declare module '*.svg'; -declare module 'cvat-core/src/api'; diff --git a/cvat-ui/package.json b/cvat-ui/package.json index 8994edd355f7..3044dac0a0f8 100644 --- a/cvat-ui/package.json +++ b/cvat-ui/package.json @@ -1,6 +1,6 @@ { "name": "cvat-ui", - "version": "1.59.1", + "version": "1.60.0", "description": "CVAT single-page application", "main": "src/index.tsx", "scripts": { @@ -13,7 +13,7 @@ }, "browserslist": [ "Chrome >= 63", - "Firefox > 58", + "Firefox > 102", "not IE 11", "> 2%" ], diff --git a/cvat-ui/src/components/analytics-page/quality/issues.tsx b/cvat-ui/src/components/analytics-page/quality/issues.tsx index 6d545411f098..178237cab306 100644 --- a/cvat-ui/src/components/analytics-page/quality/issues.tsx +++ b/cvat-ui/src/components/analytics-page/quality/issues.tsx @@ -44,14 +44,12 @@ function Issues(props: Props): JSX.Element { }, []); const bottomElement = ( - <> - - Resolved: - {' '} - {clampValue(resolvedIssues)} - {resolvedIssues ? ` (${percent(resolvedIssues, issuesCount)})` : ''} - - + + Resolved: + {' '} + {clampValue(resolvedIssues)} + {resolvedIssues ? ` (${percent(resolvedIssues, issuesCount)})` : ''} + ); return ( diff --git a/cvat-ui/src/components/annotation-page/annotations-actions/annotations-actions-modal.tsx b/cvat-ui/src/components/annotation-page/annotations-actions/annotations-actions-modal.tsx new file mode 100644 index 000000000000..5c73e64c620c --- /dev/null +++ b/cvat-ui/src/components/annotation-page/annotations-actions/annotations-actions-modal.tsx @@ -0,0 +1,581 @@ +// Copyright (C) 2023 CVAT.ai Corporation +// +// SPDX-License-Identifier: MIT + +import './styles.scss'; + +import React, { + useEffect, useReducer, useRef, useState, +} from 'react'; +import Button from 'antd/lib/button'; +import { Col, Row } from 'antd/lib/grid'; +import Progress from 'antd/lib/progress'; +import Select from 'antd/lib/select'; +import notification from 'antd/lib/notification'; +import Text from 'antd/lib/typography/Text'; +import Modal from 'antd/lib/modal'; + +import { useIsMounted } from 'utils/hooks'; +import { createAction, ActionUnion } from 'utils/redux'; +import { getCVATStore } from 'cvat-store'; +import { BaseSingleFrameAction, Job, getCore } from 'cvat-core-wrapper'; +import { Canvas } from 'cvat-canvas-wrapper'; +import { fetchAnnotationsAsync, saveAnnotationsAsync } from 'actions/annotation-actions'; +import { switchAutoSave } from 'actions/settings-actions'; +import { Alert, InputNumber } from 'antd'; +import { clamp } from 'utils/math'; + +const core = getCore(); + +interface State { + actions: BaseSingleFrameAction[]; + activeAction: BaseSingleFrameAction | null; + fetching: boolean; + progress: number | null; + progressMessage: string | null; + cancelled: boolean; + autoSaveEnabled: boolean; + jobHasBeenSaved: boolean; + frameFrom: number; + frameTo: number; + actionParameters: Record; + modalVisible: boolean; +} + +enum ReducerActionType { + SET_ANNOTATIONS_ACTIONS = 'SET_ANNOTATIONS_ACTIONS', + SET_ACTIVE_ANNOTATIONS_ACTION = 'SET_ACTIVE_ANNOTATIONS_ACTION', + UPDATE_PROGRESS = 'UPDATE_PROGRESS', + RESET_BEFORE_RUN = 'RESET_BEFORE_RUN', + RESET_AFTER_RUN = 'RESET_AFTER_RUN', + CANCEL_ACTION = 'CANCEL_ACTION', + SET_AUTOSAVE_DISABLED_FLAG = 'SET_AUTOSAVE_DISABLED_FLAG', + SET_JOB_WAS_SAVED_FLAG = 'SET_JOB_WAS_SAVED_FLAG', + UPDATE_FRAME_FROM = 'UPDATE_FRAME_FROM', + UPDATE_FRAME_TO = 'UPDATE_FRAME_TO', + UPDATE_ACTION_PARAMETER = 'UPDATE_ACTION_PARAMETER', + SET_VISIBLE = 'SET_VISIBLE', +} + +export const reducerActions = { + setAnnotationsActions: (actions: BaseSingleFrameAction[]) => ( + createAction(ReducerActionType.SET_ANNOTATIONS_ACTIONS, { actions }) + ), + setActiveAnnotationsAction: (activeAction: BaseSingleFrameAction) => ( + createAction(ReducerActionType.SET_ACTIVE_ANNOTATIONS_ACTION, { activeAction }) + ), + updateProgress: (progress: number | null, progressMessage: string | null) => ( + createAction(ReducerActionType.UPDATE_PROGRESS, { progress, progressMessage }) + ), + resetBeforeRun: () => ( + createAction(ReducerActionType.RESET_BEFORE_RUN) + ), + resetAfterRun: () => ( + createAction(ReducerActionType.RESET_AFTER_RUN) + ), + cancelAction: () => ( + createAction(ReducerActionType.CANCEL_ACTION) + ), + setAutoSaveDisabledFlag: () => ( + createAction(ReducerActionType.SET_AUTOSAVE_DISABLED_FLAG) + ), + setJobSavedFlag: (jobHasBeenSaved: boolean) => ( + createAction(ReducerActionType.SET_JOB_WAS_SAVED_FLAG, { jobHasBeenSaved }) + ), + updateFrameFrom: (frameFrom: number) => ( + createAction(ReducerActionType.UPDATE_FRAME_FROM, { frameFrom }) + ), + updateFrameTo: (frameTo: number) => ( + createAction(ReducerActionType.UPDATE_FRAME_TO, { frameTo }) + ), + updateActionParameter: (name: string, value: string) => ( + createAction(ReducerActionType.UPDATE_ACTION_PARAMETER, { name, value }) + ), + setVisible: (visible: boolean) => ( + createAction(ReducerActionType.SET_VISIBLE, { visible }) + ), +}; + +const reducer = (state: State, action: ActionUnion): State => { + if (action.type === ReducerActionType.SET_ANNOTATIONS_ACTIONS) { + return { + ...state, + actions: action.payload.actions, + activeAction: action.payload.actions[0] || null, + actionParameters: {}, + }; + } + + if (action.type === ReducerActionType.SET_ACTIVE_ANNOTATIONS_ACTION) { + return { + ...state, + activeAction: action.payload.activeAction, + actionParameters: {}, + }; + } + + if (action.type === ReducerActionType.UPDATE_PROGRESS) { + return { + ...state, + progress: action.payload.progress, + progressMessage: action.payload.progressMessage, + }; + } + + if (action.type === ReducerActionType.RESET_BEFORE_RUN) { + return { + ...state, + fetching: true, + cancelled: false, + }; + } + + if (action.type === ReducerActionType.RESET_AFTER_RUN) { + return { + ...state, + fetching: false, + cancelled: false, + progress: null, + progressMessage: null, + }; + } + + if (action.type === ReducerActionType.CANCEL_ACTION) { + return { + ...state, + cancelled: true, + }; + } + + if (action.type === ReducerActionType.SET_AUTOSAVE_DISABLED_FLAG) { + return { + ...state, + autoSaveEnabled: false, + }; + } + + if (action.type === ReducerActionType.SET_JOB_WAS_SAVED_FLAG) { + return { + ...state, + jobHasBeenSaved: action.payload.jobHasBeenSaved, + }; + } + + if (action.type === ReducerActionType.UPDATE_FRAME_FROM) { + return { + ...state, + frameFrom: action.payload.frameFrom, + frameTo: Math.max(state.frameTo, action.payload.frameFrom), + }; + } + + if (action.type === ReducerActionType.UPDATE_FRAME_TO) { + return { + ...state, + frameFrom: Math.min(state.frameFrom, action.payload.frameTo), + frameTo: action.payload.frameTo, + }; + } + + if (action.type === ReducerActionType.UPDATE_ACTION_PARAMETER) { + return { + ...state, + actionParameters: { + ...state.actionParameters, + [action.payload.name]: action.payload.value, + }, + }; + } + + if (action.type === ReducerActionType.SET_VISIBLE) { + return { + ...state, + modalVisible: action.payload.visible, + }; + } + + return state; +}; + +type Props = NonNullable[keyof BaseSingleFrameAction['parameters']]; + +function ActionParameterComponent(props: Props & { onChange: (value: string) => void }): JSX.Element { + const { + defaultValue, type, values, onChange, + } = props; + const [value, setValue] = useState(defaultValue); + + useEffect(() => { + onChange(value); + }, [value]); + + if (type === 'select') { + return ( + + ); + } + + const [min, max, step] = values.map((val) => +val); + return ( + { + if (typeof _value === 'number') { + if (Number.isInteger(step)) { + const updated = _value - (_value % step); + setValue(`${clamp(updated, min, max)}`); + } else { + setValue(`${clamp(_value, min, max)}`); + } + } + }} + /> + ); +} + +function AnnotationsActionsModalContent(props: { onClose: () => void; }): JSX.Element { + const { onClose } = props; + const isMounted = useIsMounted(); + const storage = getCVATStore(); + const cancellationRef = useRef(false); + const jobInstance = storage.getState().annotation.job.instance as Job; + + const [state, dispatch] = useReducer(reducer, { + actions: [], + fetching: false, + activeAction: null, + progress: null, + progressMessage: null, + cancelled: false, + autoSaveEnabled: storage.getState().settings.workspace.autoSave, + jobHasBeenSaved: true, + frameFrom: jobInstance.startFrame, + frameTo: jobInstance.stopFrame, + actionParameters: {}, + modalVisible: true, + }); + + useEffect(() => { + core.actions.list().then((list: BaseSingleFrameAction[]) => { + if (isMounted()) { + dispatch(reducerActions.setJobSavedFlag(!jobInstance.annotations.hasUnsavedChanges())); + dispatch(reducerActions.setAnnotationsActions(list)); + } + }); + }, []); + + const { + actions, activeAction, fetching, autoSaveEnabled, jobHasBeenSaved, + progress, progressMessage, frameFrom, frameTo, actionParameters, modalVisible, + } = state; + + return ( + + + + + Actions allow executing certain algorithms on + filtered + annotations. + It affects only the local browser state. + Once an action has finished, + it cannot be reverted. + You may reload the page to get annotations from the server + + )} + type='info' + showIcon + /> + + + {!jobHasBeenSaved ? ( + + + Recommendation: + + + )} + type='warning' + showIcon + /> + + ) : null} + + {autoSaveEnabled ? ( + + + Recommendation: + + + )} + type='warning' + showIcon + /> + + ) : null} + + + + + 1. Select action +
+ + + + +
+ + + {activeAction ? ( + <> + + + + 2. Specify frames to apply the action +
+ + + Starting from frame + { + if (typeof value === 'number') { + dispatch(reducerActions.updateFrameFrom( + clamp(Math.round(value), (jobInstance as Job).startFrame, frameTo), + )); + } + }} + /> + up to frame + { + if (typeof value === 'number') { + dispatch(reducerActions.updateFrameTo( + clamp(Math.round(value), frameFrom, (jobInstance as Job).stopFrame), + )); + } + }} + /> + +
+ + + + + Or choose one of predefined options +
+ + + + + + + +
+ + + ) : null} + + {activeAction?.parameters ? ( + + + + 3. Setup action parameters +
+ + {Object.entries(activeAction.parameters) + .map(([name, { defaultValue, type, values }], idx) => ( + + {name} + { + dispatch(reducerActions.updateActionParameter(name, value)); + }} + defaultValue={defaultValue} + type={type} + values={values} + /> + + ))} +
+ + ) : null} + + {fetching && typeof progress === 'number' && ( + + + { progressMessage ? ( + {progressMessage} + ) : null } + + + )} + + + + + +
+
+ ); +} + +export default React.memo(AnnotationsActionsModalContent); diff --git a/cvat-ui/src/components/annotation-page/annotations-actions/styles.scss b/cvat-ui/src/components/annotation-page/annotations-actions/styles.scss new file mode 100644 index 000000000000..648f915f790f --- /dev/null +++ b/cvat-ui/src/components/annotation-page/annotations-actions/styles.scss @@ -0,0 +1,63 @@ +// Copyright (C) 2023 CVAT.ai Corporation +// +// SPDX-License-Identifier: MIT + +@import 'base'; + +.cvat-action-runner-list, +.cvat-action-runner-frames, +.cvat-action-runner-frames-predefined, +.cvat-action-runner-buttons, +.cvat-action-runner-action-parameters { + margin-top: $grid-unit-size * 3; +} + +.cvat-action-runner-info:not(:first-child) { + margin-top: $grid-unit-size * 2; +} + +.cvat-action-runner-info { + .ant-alert { + text-align: justify; + } + + .ant-btn { + padding-left: 0; + } +} + +.cvat-action-runner-list { + .ant-select { + width: 100%; + } +} + +.cvat-action-runner-frames-predefined { + .ant-btn:not(:first-child) { + margin-left: $grid-unit-size; + } +} + +.cvat-action-runner-action-parameters { + .cvat-action-runner-action-parameter { + margin-top: $grid-unit-size; + + > span:first-child { + margin-right: $grid-unit-size; + } + } +} + +.cvat-action-runner-progress-message { + display: block; + text-align: center; +} + +.cvat-action-runner-buttons { + display: flex; + justify-content: flex-end; + + > .cvat-action-runner-cancel-btn { + margin-right: $grid-unit-size; + } +} diff --git a/cvat-ui/src/components/annotation-page/canvas/grid-layout/canvas-layout.tsx b/cvat-ui/src/components/annotation-page/canvas/grid-layout/canvas-layout.tsx index 3e8ccd71718f..4c19933ab263 100644 --- a/cvat-ui/src/components/annotation-page/canvas/grid-layout/canvas-layout.tsx +++ b/cvat-ui/src/components/annotation-page/canvas/grid-layout/canvas-layout.tsx @@ -122,15 +122,13 @@ const fitLayout = (type: DimensionType, layoutConfig: ItemLayout[]): ItemLayout[ y: config.CANVAS_WORKSPACE_ROWS, w: Math.ceil(widthAvail / 3), h: helpfulCanvasViewHeight, - }, - { + }, { ...side, x: Math.ceil(widthAvail / 3), y: config.CANVAS_WORKSPACE_ROWS, w: Math.ceil(widthAvail / 3), h: helpfulCanvasViewHeight, - }, - { + }, { ...front, x: Math.ceil(widthAvail / 3) * 2, y: config.CANVAS_WORKSPACE_ROWS, diff --git a/cvat-ui/src/components/annotation-page/canvas/views/canvas2d/canvas-wrapper.tsx b/cvat-ui/src/components/annotation-page/canvas/views/canvas2d/canvas-wrapper.tsx index 0fd1326d61b8..9a5cfd0c0274 100644 --- a/cvat-ui/src/components/annotation-page/canvas/views/canvas2d/canvas-wrapper.tsx +++ b/cvat-ui/src/components/annotation-page/canvas/views/canvas2d/canvas-wrapper.tsx @@ -613,7 +613,7 @@ class CanvasWrapperComponent extends React.PureComponent { private onCanvasMessage = (event: CustomEvent<{ messages: CanvasHint[] | null, topic: string }>): void => { const { messages, topic } = event.detail; this.canvasTipsRef.current?.update(messages, topic); - } + }; private onCanvasShapeDrawn = (event: any): void => { const { diff --git a/cvat-ui/src/components/annotation-page/canvas/views/canvas3d/canvas-wrapper3D.tsx b/cvat-ui/src/components/annotation-page/canvas/views/canvas3d/canvas-wrapper3D.tsx index d1fe497da623..bb3977d28b38 100644 --- a/cvat-ui/src/components/annotation-page/canvas/views/canvas3d/canvas-wrapper3D.tsx +++ b/cvat-ui/src/components/annotation-page/canvas/views/canvas3d/canvas-wrapper3D.tsx @@ -4,9 +4,7 @@ // SPDX-License-Identifier: MIT import './styles.scss'; -import React, { - ReactElement, useEffect, useRef, -} from 'react'; +import React, { useEffect, useRef } from 'react'; import { connect, useSelector } from 'react-redux'; import { ArrowDownOutlined, ArrowLeftOutlined, ArrowRightOutlined, ArrowUpOutlined, @@ -211,110 +209,114 @@ export const PerspectiveViewComponent = React.memo( ZOOM_OUT: () => {}, }; - const ArrowGroup = (): ReactElement => ( -
-
- + function ArrowGroup(): JSX.Element { + return ( +
+
+ + + +
+
+ + + + + + + + + +
+
+ ); + } + + function ControlGroup(): JSX.Element { + return ( + + -
-
- + - + - +
+ -
-
- ); - - const ControlGroup = (): ReactElement => ( - - - - - - - - - - -
- - - - - - - - - -
- ); + + + + + + + + ); + } useEffect(() => { if (ref.current) { @@ -412,7 +414,7 @@ export const FrontViewComponent = React.memo( }, ); -const Canvas3DWrapperComponent = React.memo((props: Props): ReactElement => { +const Canvas3DWrapperComponent = React.memo((props: Props): null => { const animateId = useRef(0); const { @@ -639,7 +641,7 @@ const Canvas3DWrapperComponent = React.memo((props: Props): ReactElement => { }; }, [frameData, annotations, activeLabelID, contextMenuVisibility, activeObjectType]); - return <>; + return null; }); export default connect(mapStateToProps, mapDispatchToProps)(Canvas3DWrapperComponent); diff --git a/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/control-visibility-observer.tsx b/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/control-visibility-observer.tsx index 1f0bb7e499ca..792f29940162 100644 --- a/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/control-visibility-observer.tsx +++ b/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/control-visibility-observer.tsx @@ -56,7 +56,7 @@ export default function ControlVisibilityObserver

( ): React.FunctionComponent

{ let visibilityHeightThreshold = 0; // minimum value of height when element can be pushed to main panel - return (props: P): JSX.Element | null => { + return function (props: P): JSX.Element | null { const ref = useRef(null); const [visible, setVisible] = useState(true); diff --git a/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/handle-popover-visibility.tsx b/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/handle-popover-visibility.tsx index 2833e32ef00c..f3ff680b5d26 100644 --- a/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/handle-popover-visibility.tsx +++ b/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/handle-popover-visibility.tsx @@ -11,7 +11,7 @@ interface OwnProps { } export default function withVisibilityHandling(WrappedComponent: typeof Popover, popoverType: string) { - return (props: OwnProps & PopoverProps): JSX.Element => { + return function (props: OwnProps & PopoverProps): JSX.Element { const [visible, setVisible] = useState(false); const { overlayClassName, onVisibleChange, ...rest } = props; const overlayClassNames = typeof overlayClassName === 'string' ? overlayClassName.split(/\s+/) : []; diff --git a/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/opencv-control.tsx b/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/opencv-control.tsx index 83ba8e1f0c01..2fac98218dc8 100644 --- a/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/opencv-control.tsx +++ b/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/opencv-control.tsx @@ -737,33 +737,31 @@ class OpenCVControlComponent extends React.PureComponent ) : ( - <> - + + + { + initializationProgress >= 0 ? + OpenCV is loading : ( + + ) + } + + {initializationProgress >= 0 && ( - { - initializationProgress >= 0 ? - OpenCV is loading : ( - - ) - } + - {initializationProgress >= 0 && ( - - - - )} - - + )} + )} ); diff --git a/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/tools-control.tsx b/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/tools-control.tsx index b6b5d2dbe42c..294a1754f364 100644 --- a/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/tools-control.tsx +++ b/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/tools-control.tsx @@ -374,8 +374,11 @@ export class ToolsControlComponent extends React.PureComponent { try { // run server request this.setState({ fetching: true }); - const response = await core.lambda.call(jobInstance.taskId, interactor, - { ...data, job: jobInstance.id }); + const response = await core.lambda.call( + jobInstance.taskId, + interactor, + { ...data, job: jobInstance.id }, + ); // if only mask presented, let's receive points if (response.mask && !response.points) { @@ -1405,14 +1408,12 @@ export class ToolsControlComponent extends React.PureComponent { const showDetectionContent = fetching && mode === 'detection'; const interactionContent: JSX.Element | null = showInteractionContent ? ( - <> - { - this.setState({ approxPolyAccuracy: value }); - }} - /> - + { + this.setState({ approxPolyAccuracy: value }); + }} + /> ) : null; const detectionContent: JSX.Element | null = showDetectionContent ? ( diff --git a/cvat-ui/src/components/annotation-page/standard-workspace/remove-confirm.tsx b/cvat-ui/src/components/annotation-page/standard-workspace/remove-confirm.tsx index c86d11c0266b..d0e8c2b3ec51 100644 --- a/cvat-ui/src/components/annotation-page/standard-workspace/remove-confirm.tsx +++ b/cvat-ui/src/components/annotation-page/standard-workspace/remove-confirm.tsx @@ -1,5 +1,5 @@ // Copyright (C) 2022 Intel Corporation -// Copyright (C) CVAT.ai corp +// Copyright (C) 2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -15,7 +15,7 @@ import { removeObjectAsync, removeObject as removeObjectAction } from 'actions/a export default function RemoveConfirmComponent(): JSX.Element | null { const [visible, setVisible] = useState(false); const [title, setTitle] = useState(''); - const [description, setDescription] = useState(<>); + const [description, setDescription] = useState(''); const objectState = useSelector((state: CombinedState) => state.annotation.remove.objectState); const force = useSelector((state: CombinedState) => state.annotation.remove.force); const jobInstance = useSelector((state: CombinedState) => state.annotation.job.instance); diff --git a/cvat-ui/src/components/annotation-page/tag-annotation-workspace/tag-annotation-sidebar/shortcuts-select.tsx b/cvat-ui/src/components/annotation-page/tag-annotation-workspace/tag-annotation-sidebar/shortcuts-select.tsx index 8602a38c8f97..48ecbb119d0a 100644 --- a/cvat-ui/src/components/annotation-page/tag-annotation-workspace/tag-annotation-sidebar/shortcuts-select.tsx +++ b/cvat-ui/src/components/annotation-page/tag-annotation-workspace/tag-annotation-sidebar/shortcuts-select.tsx @@ -1,5 +1,5 @@ // Copyright (C) 2020-2022 Intel Corporation -// Copyright (C) 2022 CVAT.ai Corporation +// Copyright (C) 2022-2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -34,7 +34,7 @@ const defaultShortcutLabelMap = { 0: '', } as ShortcutLabelMap; -const ShortcutsSelect = (props: Props): JSX.Element => { +function ShortcutsSelect(props: Props): JSX.Element { const { labels, onShortcutPress } = props; const [shortcutLabelMap, setShortcutLabelMap] = useState(defaultShortcutLabelMap); @@ -115,6 +115,6 @@ const ShortcutsSelect = (props: Props): JSX.Element => { ))} ); -}; +} export default ShortcutsSelect; diff --git a/cvat-ui/src/components/annotation-page/top-bar/annotation-menu.tsx b/cvat-ui/src/components/annotation-page/top-bar/annotation-menu.tsx index d187f78e7b4b..b9110f3605e0 100644 --- a/cvat-ui/src/components/annotation-page/top-bar/annotation-menu.tsx +++ b/cvat-ui/src/components/annotation-page/top-bar/annotation-menu.tsx @@ -4,6 +4,7 @@ // SPDX-License-Identifier: MIT import React from 'react'; +import ReactDOM from 'react-dom'; import { withRouter, RouteComponentProps } from 'react-router'; import Menu from 'antd/lib/menu'; @@ -17,6 +18,7 @@ import Collapse from 'antd/lib/collapse'; import { MenuInfo } from 'rc-menu/lib/interface'; import CVATTooltip from 'components/common/cvat-tooltip'; import { getCore, JobStage } from 'cvat-core-wrapper'; +import AnnotationsActionsModalContent from '../annotations-actions/annotations-actions-modal'; const core = getCore(); @@ -25,7 +27,7 @@ interface Props { jobInstance: any; onClickMenu(params: MenuInfo): void; stopFrame: number; - removeAnnotations(startnumber: number, endnumber: number, delTrackKeyframesOnly:boolean): void; + removeAnnotations(startnumber: number | null, endnumber: number | null, delTrackKeyframesOnly: boolean): void; setForceExitAnnotationFlag(forceExit: boolean): void; saveAnnotations(jobInstance: any, afterSave?: () => void): void; } @@ -33,7 +35,8 @@ interface Props { export enum Actions { LOAD_JOB_ANNO = 'load_job_anno', EXPORT_JOB_DATASET = 'export_job_dataset', - REMOVE_ANNO = 'remove_anno', + REMOVE_ANNOTATIONS = 'remove_annotations', + RUN_ACTIONS = 'run_actions', OPEN_TASK = 'open_task', FINISH_JOB = 'finish_job', RENEW_JOB = 'renew_job', @@ -84,9 +87,9 @@ function AnnotationMenuComponent(props: Props & RouteComponentProps): JSX.Elemen } } - if (params.key === Actions.REMOVE_ANNO) { - let removeFrom: number; - let removeUpTo: number; + if (params.key === Actions.REMOVE_ANNOTATIONS) { + let removeFrom: number | null; + let removeUpTo: number | null; let removeOnlyKeyframes = false; const { Panel } = Collapse; Modal.confirm({ @@ -111,7 +114,9 @@ function AnnotationMenuComponent(props: Props & RouteComponentProps): JSX.Elemen { removeUpTo = value; }} + onChange={(value) => { + removeUpTo = value; + }} />
@@ -185,7 +190,19 @@ function AnnotationMenuComponent(props: Props & RouteComponentProps): JSX.Elemen

onClickMenuWrapper(params)} className='cvat-annotation-menu' selectable={false}> Upload annotations Export job dataset - Remove annotations + Remove annotations + { + const div = window.document.createElement('div'); + window.document.body.append(div); + ReactDOM.render( + div.remove()} />, div, + ); + }} + > + Run actions + - - + ), }); } catch (error: any) { diff --git a/cvat-ui/src/components/create-cloud-storage-page/cloud-storage-form.tsx b/cvat-ui/src/components/create-cloud-storage-page/cloud-storage-form.tsx index 2cc4240220e4..0f08ba8a85fc 100644 --- a/cvat-ui/src/components/create-cloud-storage-page/cloud-storage-form.tsx +++ b/cvat-ui/src/components/create-cloud-storage-page/cloud-storage-form.tsx @@ -1,4 +1,5 @@ // Copyright (C) 2021-2022 Intel Corporation +// Copyright (C) 2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -321,7 +322,7 @@ export default function CreateCloudStorageForm(props: Props): JSX.Element { className: 'cvat-cloud-storage-form-item', }; - const credentialsBlok = (): JSX.Element => { + const credentialsBlok = (): JSX.Element | null => { const internalCommonProps = { ...commonProps, labelCol: { span: 8, offset: 2 }, @@ -404,40 +405,36 @@ export default function CreateCloudStorageForm(props: Props): JSX.Element { if (providerType === ProviderType.AZURE_CONTAINER && credentialsType === CredentialsType.ANONYMOUS_ACCESS) { return ( - <> - - setAccountNameVisibility(true)} - /> - - + + setAccountNameVisibility(true)} + /> + ); } if (providerType === ProviderType.AZURE_CONTAINER && credentialsType === CredentialsType.CONNECTION_STRING) { return ( - <> - - setConnectionStringVisibility(true)} - /> - - + + setConnectionStringVisibility(true)} + /> + ); } @@ -489,10 +486,10 @@ export default function CreateCloudStorageForm(props: Props): JSX.Element { ); } - return <>; + return null; }; - const AWSS3Configuration = (): JSX.Element => { + const awsS3Configuration = (): JSX.Element => { const internalCommonProps = { ...commonProps, labelCol: { offset: 1 }, @@ -540,7 +537,7 @@ export default function CreateCloudStorageForm(props: Props): JSX.Element { ); }; - const AzureBlobStorageConfiguration = (): JSX.Element => { + const azureBlobStorageConfiguration = (): JSX.Element => { const internalCommonProps = { ...commonProps, labelCol: { offset: 1 }, @@ -577,7 +574,7 @@ export default function CreateCloudStorageForm(props: Props): JSX.Element { ); }; - const GoogleCloudStorageConfiguration = (): JSX.Element => { + const googleCloudStorageConfiguration = (): JSX.Element => { const internalCommonProps = { ...commonProps, labelCol: { span: 6, offset: 1 }, @@ -677,9 +674,9 @@ export default function CreateCloudStorageForm(props: Props): JSX.Element { - {providerType === ProviderType.AWS_S3_BUCKET && AWSS3Configuration()} - {providerType === ProviderType.AZURE_CONTAINER && AzureBlobStorageConfiguration()} - {providerType === ProviderType.GOOGLE_CLOUD_STORAGE && GoogleCloudStorageConfiguration()} + {providerType === ProviderType.AWS_S3_BUCKET && awsS3Configuration()} + {providerType === ProviderType.AZURE_CONTAINER && azureBlobStorageConfiguration()} + {providerType === ProviderType.GOOGLE_CLOUD_STORAGE && googleCloudStorageConfiguration()} diff --git a/cvat-ui/src/components/file-manager/file-manager.tsx b/cvat-ui/src/components/file-manager/file-manager.tsx index b8f8aae2cea1..e0ef3d0a53d7 100644 --- a/cvat-ui/src/components/file-manager/file-manager.tsx +++ b/cvat-ui/src/components/file-manager/file-manager.tsx @@ -210,24 +210,22 @@ export class FileManager extends React.PureComponent { const { active } = this.state; return ( - <> - { - onChangeActiveKey(activeKey); - this.setState({ - active: activeKey as any, - }); - }} - > - {this.renderLocalSelector()} - {this.renderShareSelector()} - {this.renderRemoteSelector()} - {this.renderCloudStorageSelector()} - - + { + onChangeActiveKey(activeKey); + this.setState({ + active: activeKey as any, + }); + }} + > + {this.renderLocalSelector()} + {this.renderShareSelector()} + {this.renderRemoteSelector()} + {this.renderCloudStorageSelector()} + ); } } diff --git a/cvat-ui/src/components/file-manager/remote-browser.tsx b/cvat-ui/src/components/file-manager/remote-browser.tsx index 5a66aa435db5..96ea9cd84579 100644 --- a/cvat-ui/src/components/file-manager/remote-browser.tsx +++ b/cvat-ui/src/components/file-manager/remote-browser.tsx @@ -297,18 +297,16 @@ function RemoteBrowser(props: Props): JSX.Element { render: (name: string, node: Node) => { if (node.type === 'DIR') { return ( - <> - - + ); } diff --git a/cvat-ui/src/components/header/settings-modal/settings-modal.tsx b/cvat-ui/src/components/header/settings-modal/settings-modal.tsx index b48a8a79f34e..0ee402f162c4 100644 --- a/cvat-ui/src/components/header/settings-modal/settings-modal.tsx +++ b/cvat-ui/src/components/header/settings-modal/settings-modal.tsx @@ -25,7 +25,7 @@ interface SettingsModalProps { onClose(): void; } -const SettingsModal = (props: SettingsModalProps): JSX.Element => { +function SettingsModal(props: SettingsModalProps): JSX.Element { const { visible, onClose } = props; const settings = useSelector((state: CombinedState) => state.settings); @@ -120,6 +120,6 @@ const SettingsModal = (props: SettingsModalProps): JSX.Element => { ); -}; +} export default React.memo(SettingsModal); diff --git a/cvat-ui/src/components/import-backup/import-backup-modal.tsx b/cvat-ui/src/components/import-backup/import-backup-modal.tsx index 4d80c6b7cf8a..3bd8f1ab681a 100644 --- a/cvat-ui/src/components/import-backup/import-backup-modal.tsx +++ b/cvat-ui/src/components/import-backup/import-backup-modal.tsx @@ -1,4 +1,5 @@ // Copyright (C) 2022 CVAT.ai Corporation +// Copyright (C) 2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -138,42 +139,40 @@ function ImportBackupModal(): JSX.Element { ); return ( - <> - - {`Create ${instanceType} from backup`} - - )} - visible={modalVisible} - onCancel={closeModal} - onOk={() => form.submit()} - className='cvat-modal-import-backup' + + {`Create ${instanceType} from backup`} + + )} + visible={modalVisible} + onCancel={closeModal} + onOk={() => form.submit()} + className='cvat-modal-import-backup' + > +
- - setSelectedSourceStorage(new Storage(value))} - onChangeLocationValue={(value: StorageLocation) => { - setSelectedSourceStorage({ - location: value, - }); - }} - - /> - {selectedSourceStorage?.location === StorageLocation.CLOUD_STORAGE && renderCustomName()} - {selectedSourceStorage?.location === StorageLocation.LOCAL && uploadLocalFile()} - -
- + setSelectedSourceStorage(new Storage(value))} + onChangeLocationValue={(value: StorageLocation) => { + setSelectedSourceStorage({ + location: value, + }); + }} + + /> + {selectedSourceStorage?.location === StorageLocation.CLOUD_STORAGE && renderCustomName()} + {selectedSourceStorage?.location === StorageLocation.LOCAL && uploadLocalFile()} + +
); } diff --git a/cvat-ui/src/components/import-dataset/import-dataset-modal.tsx b/cvat-ui/src/components/import-dataset/import-dataset-modal.tsx index 81310d4c47bd..6a97fbc28b1e 100644 --- a/cvat-ui/src/components/import-dataset/import-dataset-modal.tsx +++ b/cvat-ui/src/components/import-dataset/import-dataset-modal.tsx @@ -1,5 +1,5 @@ // Copyright (C) 2021-2022 Intel Corporation -// Copyright (C) 2022 CVAT.ai Corporation +// Copyright (C) 2022-2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -234,12 +234,15 @@ function ImportDatasetModal(props: StateToProps): JSX.Element { const onUpload = (): void => { if (uploadParams && uploadParams.resource) { - dispatch(importDatasetAsync( - instance, uploadParams.selectedFormat as string, - uploadParams.useDefaultSettings, uploadParams.sourceStorage, - uploadParams.file || uploadParams.fileName as string, - uploadParams.convMaskToPoly, - ) as any); + dispatch( + importDatasetAsync( + instance, + uploadParams.selectedFormat as string, + uploadParams.useDefaultSettings, + uploadParams.sourceStorage, + uploadParams.file || uploadParams.fileName as string, + uploadParams.convMaskToPoly, + ) as any); const resToPrint = uploadParams.resource.charAt(0).toUpperCase() + uploadParams.resource.slice(1); Notification.info({ message: `${resToPrint} import started`, diff --git a/cvat-ui/src/components/labels-editor/constructor-viewer-item.tsx b/cvat-ui/src/components/labels-editor/constructor-viewer-item.tsx index 5d055db71d3e..2b348a4e6a55 100644 --- a/cvat-ui/src/components/labels-editor/constructor-viewer-item.tsx +++ b/cvat-ui/src/components/labels-editor/constructor-viewer-item.tsx @@ -1,4 +1,5 @@ // Copyright (C) 2020-2022 Intel Corporation +// Copyright (C) 2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT diff --git a/cvat-ui/src/components/login-page/login-form.tsx b/cvat-ui/src/components/login-page/login-form.tsx index 7db6de7471ff..f7ef0ceb77d3 100644 --- a/cvat-ui/src/components/login-page/login-form.tsx +++ b/cvat-ui/src/components/login-page/login-form.tsx @@ -40,7 +40,8 @@ function LoginFormComponent(props: Props): JSX.Element { const [credential, setCredential] = useState(''); const pluginsToRender = usePlugins( (state: CombinedState) => state.plugins.components.loginPage.loginForm, - props, { credential }, + props, + { credential }, ); const forgotPasswordLink = ( diff --git a/cvat-ui/src/components/model-runner-modal/detector-runner.tsx b/cvat-ui/src/components/model-runner-modal/detector-runner.tsx index 0cb1a533f397..e4097d8c4b8d 100644 --- a/cvat-ui/src/components/model-runner-modal/detector-runner.tsx +++ b/cvat-ui/src/components/model-runner-modal/detector-runner.tsx @@ -143,16 +143,14 @@ function DetectorRunner(props: Props): JSX.Element { {labelsMappingVisible && ( - <> - - setMapping(_mapping)} - modelLabels={modelLabels} - taskLabels={taskLabels} - /> - - + + setMapping(_mapping)} + modelLabels={modelLabels} + taskLabels={taskLabels} + /> + )} {convertMasks2PolygonVisible && (
diff --git a/cvat-ui/src/components/plugins-entrypoint.tsx b/cvat-ui/src/components/plugins-entrypoint.tsx index 76dc92f1e461..eda58d85a6dd 100644 --- a/cvat-ui/src/components/plugins-entrypoint.tsx +++ b/cvat-ui/src/components/plugins-entrypoint.tsx @@ -7,7 +7,7 @@ import { Dispatch, AnyAction } from 'redux'; import { useDispatch } from 'react-redux'; import { PluginsActionTypes, pluginActions } from 'actions/plugins-actions'; -import { getCore, APIWrapperEnterOptions } from 'cvat-core-wrapper'; +import { getCore, CVATCore, APIWrapperEnterOptions } from 'cvat-core-wrapper'; import { modelsActions } from 'actions/models-actions'; const core = getCore(); @@ -27,7 +27,7 @@ export type ComponentBuilder = ({ REGISTER_ACTION: PluginsActionTypes.ADD_UI_COMPONENT, REMOVE_ACTION: PluginsActionTypes.REMOVE_UI_COMPONENT, actionCreators: PluginActionCreators, - core: any, + core: CVATCore, }) => { name: string; destructor: CallableFunction; diff --git a/cvat-ui/src/components/storage/storage-with-switch-field.tsx b/cvat-ui/src/components/storage/storage-with-switch-field.tsx index 982d3205562e..f1b9c228473b 100644 --- a/cvat-ui/src/components/storage/storage-with-switch-field.tsx +++ b/cvat-ui/src/components/storage/storage-with-switch-field.tsx @@ -1,4 +1,4 @@ -// Copyright (C) 2022 CVAT.ai Corporation +// Copyright (C) 2022-2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -77,16 +77,14 @@ export default function StorageWithSwitchField(props: Props): JSX.Element { (!instanceId || !useDefaultStorage) && ( - - {storageLabel} - - - - - + + {storageLabel} + + + + )} > - - -
- - {((): JSX.Element => { - if (activeInference.status === RQStatus.QUEUED) { - return ( - <> - Automatic annotation request queued - - - ); - } + + +
+ + {((): JSX.Element => { + if (activeInference.status === RQStatus.QUEUED) { + return ( + <> + Automatic annotation request queued + + + ); + } - if (activeInference.status === RQStatus.STARTED) { - return ( - <> - Automatic annotation is in progress - - - ); - } + if (activeInference.status === RQStatus.STARTED) { + return ( + <> + Automatic annotation is in progress + + + ); + } - if (activeInference.status === RQStatus.FAILED) { - return (<>Automatic annotation failed); - } + if (activeInference.status === RQStatus.FAILED) { + return (<>Automatic annotation failed); + } - if (activeInference.status === RQStatus.UNKNOWN) { - return (<>Unknown status received); - } + if (activeInference.status === RQStatus.UNKNOWN) { + return (<>Unknown status received); + } - return <>Automatic annotation accomplisted; - })()} - -
- - - - { activeInference.status !== RQStatus.FAILED && ( - - { - Modal.confirm({ - title: 'You are going to cancel automatic annotation?', - content: 'Reached progress will be lost. Continue?', - okButtonProps: { - type: 'primary', - danger: true, - }, - onOk() { - cancelAutoAnnotation(); - }, - }); - }} - /> - - )} - -
- + return <>Automatic annotation accomplisted; + })()} +
+
+ + + + { activeInference.status !== RQStatus.FAILED && ( + + { + Modal.confirm({ + title: 'You are going to cancel automatic annotation?', + content: 'Reached progress will be lost. Continue?', + okButtonProps: { + type: 'primary', + danger: true, + }, + onOk() { + cancelAutoAnnotation(); + }, + }); + }} + /> + + )} + +
); } diff --git a/cvat-ui/src/components/webhooks-page/empty-list.tsx b/cvat-ui/src/components/webhooks-page/empty-list.tsx index a1ffbd1dfe10..7379e39d1dd7 100644 --- a/cvat-ui/src/components/webhooks-page/empty-list.tsx +++ b/cvat-ui/src/components/webhooks-page/empty-list.tsx @@ -19,13 +19,11 @@ function EmptyWebhooksListComponent(props: Props): JSX.Element { return (
- - - No webhooks created yet ... - - - + + + No webhooks created yet ... + + ) : (No results matched your search)} />
diff --git a/cvat-ui/src/containers/annotation-page/standard-workspace/controls-side-bar/draw-shape-popover.tsx b/cvat-ui/src/containers/annotation-page/standard-workspace/controls-side-bar/draw-shape-popover.tsx index 33bf06932332..45325a7ec6ac 100644 --- a/cvat-ui/src/containers/annotation-page/standard-workspace/controls-side-bar/draw-shape-popover.tsx +++ b/cvat-ui/src/containers/annotation-page/standard-workspace/controls-side-bar/draw-shape-popover.tsx @@ -1,4 +1,5 @@ // Copyright (C) 2020-2022 Intel Corporation +// Copyright (C) 2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -146,8 +147,12 @@ class DrawShapePopoverContainer extends React.PureComponent { }); onDrawStart( - shapeType, selectedLabel.id, objectType, - numberOfPoints, rectDrawingMethod, cuboidDrawingMethod, + shapeType, + selectedLabel.id, + objectType, + numberOfPoints, + rectDrawingMethod, + cuboidDrawingMethod, ); } } diff --git a/cvat-ui/src/containers/annotation-page/standard-workspace/objects-side-bar/object-item.tsx b/cvat-ui/src/containers/annotation-page/standard-workspace/objects-side-bar/object-item.tsx index 072e05bfb828..1bda80f1f457 100644 --- a/cvat-ui/src/containers/annotation-page/standard-workspace/objects-side-bar/object-item.tsx +++ b/cvat-ui/src/containers/annotation-page/standard-workspace/objects-side-bar/object-item.tsx @@ -194,7 +194,7 @@ class ObjectItemContainer extends React.PureComponent { updateActiveControl(ActiveControl.EDIT); canvasInstance.edit({ enabled: true, state: objectState }); } - } + }; private slice = async (): Promise => { const { @@ -215,7 +215,7 @@ class ObjectItemContainer extends React.PureComponent { clientID: objectState.clientID as number, }); } - } + }; private remove = (): void => { const { diff --git a/cvat-ui/src/containers/annotation-page/standard-workspace/objects-side-bar/objects-list.tsx b/cvat-ui/src/containers/annotation-page/standard-workspace/objects-side-bar/objects-list.tsx index 010681f00f5a..98bbb911c959 100644 --- a/cvat-ui/src/containers/annotation-page/standard-workspace/objects-side-bar/objects-list.tsx +++ b/cvat-ui/src/containers/annotation-page/standard-workspace/objects-side-bar/objects-list.tsx @@ -240,7 +240,7 @@ class ObjectsListContainer extends React.PureComponent { filteredStates, sortedStatesID: sortAndMap(filteredStates, statesOrdering), }); - } + }; private onChangeStatesOrdering = (statesOrdering: StatesOrdering): void => { const { filteredStates } = this.state; diff --git a/cvat-ui/src/cvat-core-wrapper.ts b/cvat-ui/src/cvat-core-wrapper.ts index 00df7b61c1c1..e8608c9baca0 100644 --- a/cvat-ui/src/cvat-core-wrapper.ts +++ b/cvat-ui/src/cvat-core-wrapper.ts @@ -3,7 +3,9 @@ // // SPDX-License-Identifier: MIT +import CVATCore from 'cvat-core/src'; import _cvat from 'cvat-core/src/api'; + import ObjectState from 'cvat-core/src/object-state'; import Webhook from 'cvat-core/src/webhook'; import MLModel from 'cvat-core/src/ml-model'; @@ -18,10 +20,11 @@ import Project from 'cvat-core/src/project'; import QualityReport, { QualitySummary } from 'cvat-core/src/quality-report'; import QualityConflict, { AnnotationConflict, ConflictSeverity } from 'cvat-core/src/quality-conflict'; import QualitySettings from 'cvat-core/src/quality-settings'; -import { FramesMetaData } from 'cvat-core/src/frames'; +import { FramesMetaData, FrameData } from 'cvat-core/src/frames'; import { ServerError } from 'cvat-core/src/exceptions'; import { - ShapeType, LabelType, ModelKind, ModelProviders, ModelReturnType, DimensionType, JobType, + ShapeType, LabelType, ModelKind, ModelProviders, + ModelReturnType, DimensionType, JobType, JobStage, JobState, RQStatus, } from 'cvat-core/src/enums'; import { Storage, StorageData } from 'cvat-core/src/storage'; @@ -34,8 +37,9 @@ import AnalyticsReport, { AnalyticsEntryViewType, AnalyticsEntry } from 'cvat-co import { Dumper } from 'cvat-core/src/annotation-formats'; import { EventLogger } from 'cvat-core/src/log'; import { APIWrapperEnterOptions } from 'cvat-core/src/plugins'; +import BaseSingleFrameAction, { ActionParameterType } from 'cvat-core/src/annotations-actions'; -const cvat: any = _cvat; +const cvat: CVATCore = _cvat; cvat.config.backendAPI = '/api'; cvat.config.origin = window.location.origin; @@ -44,7 +48,7 @@ cvat.config.origin = window.location.origin; cvat.config.uploadChunkSize = 2; (globalThis as any).cvat = cvat; -function getCore(): any { +function getCore(): typeof cvat { return cvat; } @@ -78,6 +82,7 @@ export { JobStage, JobState, RQStatus, + BaseSingleFrameAction, QualityReport, QualityConflict, QualitySettings, @@ -89,6 +94,8 @@ export { AnalyticsEntryViewType, ServerError, EventLogger, + FrameData, + ActionParameterType, }; export type { @@ -98,4 +105,5 @@ export type { ModelProvider, APIWrapperEnterOptions, QualitySummary, + CVATCore, }; diff --git a/cvat-ui/src/index.tsx b/cvat-ui/src/index.tsx index c3b926730dd0..701635463aaa 100644 --- a/cvat-ui/src/index.tsx +++ b/cvat-ui/src/index.tsx @@ -147,7 +147,7 @@ window.addEventListener('error', (errorEvent: ErrorEvent) => { const store = getCVATStore(); const state: CombinedState = store.getState(); const { pathname } = window.location; - const re = RegExp(/\/tasks\/[0-9]+\/jobs\/[0-9]+$/); + const re = /\/tasks\/[0-9]+\/jobs\/[0-9]+$/; const { instance: job } = state.annotation.job; if (re.test(pathname) && job) { job.logger.log(LogType.exception, logPayload); diff --git a/cvat-ui/src/utils/mousetrap-react.tsx b/cvat-ui/src/utils/mousetrap-react.tsx index b87a98aa7524..1294fdacc94a 100644 --- a/cvat-ui/src/utils/mousetrap-react.tsx +++ b/cvat-ui/src/utils/mousetrap-react.tsx @@ -49,6 +49,7 @@ export default function GlobalHotKeys(props: Props): JSX.Element { }; }); + // eslint-disable-next-line react/jsx-no-useless-fragment return children || <>; } diff --git a/cvat-ui/src/utils/opencv-wrapper/histogram-equalization.ts b/cvat-ui/src/utils/opencv-wrapper/histogram-equalization.ts index 365e1a97c56e..72fa1c39a120 100644 --- a/cvat-ui/src/utils/opencv-wrapper/histogram-equalization.ts +++ b/cvat-ui/src/utils/opencv-wrapper/histogram-equalization.ts @@ -5,7 +5,7 @@ import { BaseImageFilter, ImageProcessing } from 'utils/image-processing'; -export interface HistogramEqualization extends ImageProcessing{ +export interface HistogramEqualization extends ImageProcessing { processImage: (src: ImageData, frameNumber: number) => ImageData; } diff --git a/cvat-ui/src/utils/opencv-wrapper/opencv-wrapper.ts b/cvat-ui/src/utils/opencv-wrapper/opencv-wrapper.ts index b526fc7aad11..7ef61a24ced6 100644 --- a/cvat-ui/src/utils/opencv-wrapper/opencv-wrapper.ts +++ b/cvat-ui/src/utils/opencv-wrapper/opencv-wrapper.ts @@ -57,7 +57,7 @@ export class OpenCVWrapper { this.injectionProcess = null; } - private checkInitialization() { + private checkInitialization(): void { if (!this.initialized) { throw new Error('Need to initialize OpenCV first'); } @@ -189,8 +189,12 @@ export class OpenCVWrapper { cv.copyMakeBorder(src, expanded, 1, 1, 1, 1, cv.BORDER_CONSTANT); // morpth transform to get better contour including all the pixels cv.dilate( - expanded, expanded, kernel, - anchor, 1, cv.BORDER_CONSTANT, + expanded, + expanded, + kernel, + anchor, + 1, + cv.BORDER_CONSTANT, cv.morphologyDefaultBorderValue(), ); cv.findContours(expanded, contours, hierarchy, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_NONE); @@ -276,12 +280,12 @@ export class OpenCVWrapper { } throw new Error(`Not implemented getContour for ${state.shapeType}`); - } + }; public getContourFromState = async (state: ObjectState): Promise => { const contours = await this.getContoursFromState(state); return contours.length > 1 ? this.contours.convexHull(contours) : contours[0]; - } + }; public get segmentation(): Segmentation { this.checkInitialization(); diff --git a/cvat-ui/tsconfig.json b/cvat-ui/tsconfig.json index 28d27324cb4d..42dbb5dd2e1a 100644 --- a/cvat-ui/tsconfig.json +++ b/cvat-ui/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es2020", + "target": "ESNext", "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, diff --git a/cvat-ui/webpack.config.js b/cvat-ui/webpack.config.js index 03cef938ce5b..273d8427c707 100644 --- a/cvat-ui/webpack.config.js +++ b/cvat-ui/webpack.config.js @@ -161,29 +161,6 @@ module.exports = (env) => { test: /\.(png|jpg|jpeg|gif)$/i, type: 'asset/resource', }, - { - test: /3rdparty\/.*\.worker\.js$/, - use: { - loader: 'worker-loader', - options: { - publicPath: '/', - filename: 'assets/3rdparty/[name].[contenthash].js', - esModule: false, - }, - }, - }, - { - test: /\.worker\.js$/, - exclude: /3rdparty/, - use: { - loader: 'worker-loader', - options: { - publicPath: '/', - filename: 'assets/[name].[contenthash].js', - esModule: false, - }, - }, - }, ], parser: { javascript: { diff --git a/lint-staged.config.js b/lint-staged.config.js index e2e443718d1c..58e387f7976c 100644 --- a/lint-staged.config.js +++ b/lint-staged.config.js @@ -26,12 +26,12 @@ module.exports = (stagedFiles) => { const mapping = {}; const commands = []; mapping['npx stylelint --fix '] = scssFiles.join(' '); - mapping['yarn run precommit:cvat-tests -- '] = tests.join(' '); - mapping['yarn run precommit:cvat-ui -- '] = cvatUI.join(' '); - mapping['yarn run precommit:cvat-data -- '] = cvatData.join(' '); - mapping['yarn run precommit:cvat-core -- '] = cvatCore.join(' '); - mapping['yarn run precommit:cvat-canvas -- '] = cvatCanvas.join(' '); - mapping['yarn run precommit:cvat-canvas3d -- '] = cvatCanvas3d.join(' '); + mapping['yarn run precommit:cvat-tests '] = tests.join(' '); + mapping['yarn run precommit:cvat-ui '] = cvatUI.join(' '); + mapping['yarn run precommit:cvat-data '] = cvatData.join(' '); + mapping['yarn run precommit:cvat-core '] = cvatCore.join(' '); + mapping['yarn run precommit:cvat-canvas '] = cvatCanvas.join(' '); + mapping['yarn run precommit:cvat-canvas3d '] = cvatCanvas3d.join(' '); for (const command of Object.keys(mapping)) { const files = mapping[command]; diff --git a/package.json b/package.json index a7f0014ee078..5c03422a0634 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "cvat", "version": "1.0.0", "description": "Eslint && remarklint dependencies", - "main": ".eslintrc.js", + "main": ".eslintrc.cjs", "private": true, "directories": { "test": "tests" @@ -17,6 +17,7 @@ "devDependencies": { "@babel/cli": "^7.13.16", "@babel/core": "^7.6.0", + "@babel/eslint-parser": "^7.23.3", "@babel/plugin-proposal-class-properties": "^7.8.3", "@babel/plugin-proposal-optional-chaining": "^7.11.0", "@babel/preset-env": "^7.6.0", @@ -26,27 +27,26 @@ "@istanbuljs/nyc-config-babel": "^3.0.0", "@types/mousetrap": "^1.6.5", "@types/node": "^18.0.3", - "@typescript-eslint/eslint-plugin": "^5.30.5", - "@typescript-eslint/parser": "^5.30.5", + "@typescript-eslint/eslint-plugin": "^6.13.1", + "@typescript-eslint/parser": "^6.13.1", "airbnb": "0.0.2", - "babel-eslint": "^10.0.1", "babel-loader": "^8.0.6", "babel-plugin-import": "^1.12.2", "babel-plugin-istanbul": "^6.0.0", "bundle-declarations-webpack-plugin": "^3.1.0", "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.8.1", - "eslint": "^7.11.0", - "eslint-config-airbnb": "^18.0.1", + "eslint": "^8.54.0", + "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-base": "14.2.1", - "eslint-config-airbnb-typescript": "^12.0.0", + "eslint-config-airbnb-typescript": "^17.1.0", "eslint-plugin-cypress": "^2.11.2", "eslint-plugin-import": "^2.22.1", "eslint-plugin-jest": "^26.5.3", "eslint-plugin-jsx-a11y": "^6.3.1", "eslint-plugin-no-unsanitized": "^3.0.2", - "eslint-plugin-react": "^7.21.5", - "eslint-plugin-react-hooks": "^4.2.0", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-security": "^1.4.0", "html-webpack-plugin": "^5.5.0", "husky": "^6.0.0", @@ -79,12 +79,11 @@ "style-loader": "^1.0.0", "stylelint": "^15.10.2", "stylelint-config-standard-scss": "^10.0.0", - "typescript": "^5.0.2", + "typescript": "5.0.2", "vfile-reporter-json": "^2.0.2", "webpack": "^5.76.0", - "webpack-cli": "^4.9.2", - "webpack-dev-server": "4.9", - "worker-loader": "^3.0.8" + "webpack-cli": "^5.1.4", + "webpack-dev-server": "4.15.1" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", diff --git a/tests/.eslintrc.js b/tests/.eslintrc.js index 5805283e67ea..b35a1c101584 100644 --- a/tests/.eslintrc.js +++ b/tests/.eslintrc.js @@ -2,12 +2,12 @@ // // SPDX-License-Identifier: MIT -const globalConfig = require('../.eslintrc.js'); +const globalConfig = require('../.eslintrc.cjs'); module.exports = { root: true, parserOptions: { - parser: 'babel-eslint', + parser: '@babel/eslint-parser', sourceType: 'module', }, ignorePatterns: [ diff --git a/yarn.lock b/yarn.lock index 1e336c2d1a34..facbf1a72eb7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,12 +2,17 @@ # yarn lockfile v1 -"@ampproject/remapping@^2.1.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== dependencies: - "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" "@ant-design/colors@^6.0.0": @@ -17,20 +22,21 @@ dependencies: "@ctrl/tinycolor" "^3.4.0" -"@ant-design/icons-svg@^4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz#8630da8eb4471a4aabdaed7d1ff6a97dcb2cf05a" - integrity sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw== +"@ant-design/icons-svg@^4.3.0": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@ant-design/icons-svg/-/icons-svg-4.3.1.tgz#4b2f65a17d4d32b526baa6414aca2117382bf8da" + integrity sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g== "@ant-design/icons@^4.6.3", "@ant-design/icons@^4.7.0": - version "4.8.0" - resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-4.8.0.tgz#3084e2bb494cac3dad6c0392f77c1efc90ee1fa4" - integrity sha512-T89P2jG2vM7OJ0IfGx2+9FC5sQjtTzRSz+mCHTXkFn/ELZc2YpfStmYHmqzq2Jx55J0F7+O6i5/ZKFSVNWCKNg== + version "4.8.1" + resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-4.8.1.tgz#44f6c81f609811d68d48a123eb5dcc477f8fbcb7" + integrity sha512-JRAuiqllnMsiZIO8OvBOeFconprC3cnMpJ9MvXrHh+H5co9rlg8/aSHQfLf5jKKe18lUgRaIwC2pz8YxH9VuCA== dependencies: "@ant-design/colors" "^6.0.0" - "@ant-design/icons-svg" "^4.2.1" + "@ant-design/icons-svg" "^4.3.0" "@babel/runtime" "^7.11.2" classnames "^2.2.6" + lodash "^4.17.15" rc-util "^5.9.4" "@ant-design/react-slick@~0.28.1": @@ -45,13 +51,13 @@ resize-observer-polyfill "^1.5.0" "@babel/cli@^7.13.16": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.20.7.tgz#8fc12e85c744a1a617680eacb488fab1fcd35b7c" - integrity sha512-WylgcELHB66WwQqItxNILsMlaTd8/SO6SgTTjMp4uCI7P4QyH1r3nqgFmO3BfM4AtfniHgFMH3EpYFj/zynBkQ== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.23.4.tgz#f5cc90487278065fa0c3b1267cf0c1d44ddf85a7" + integrity sha512-j3luA9xGKCXVyCa5R7lJvOMM+Kc2JEnAEIgz2ggtjQ/j5YUVgfsg/WsG95bbsgq7YLHuiCOzMnoSasuY16qiCw== dependencies: - "@jridgewell/trace-mapping" "^0.3.8" + "@jridgewell/trace-mapping" "^0.3.17" commander "^4.0.1" - convert-source-map "^1.1.0" + convert-source-map "^2.0.0" fs-readdir-recursive "^1.1.0" glob "^7.2.0" make-dir "^2.1.0" @@ -60,159 +66,125 @@ "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/code-frame@^7.22.13": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== dependencies: - "@babel/highlight" "^7.22.13" + "@babel/highlight" "^7.23.4" chalk "^2.4.2" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5": - version "7.20.10" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" - integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.4.5", "@babel/core@^7.6.0", "@babel/core@^7.7.5": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" - integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helpers" "^7.20.7" - "@babel/parser" "^7.20.7" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.12" - "@babel/types" "^7.20.7" - convert-source-map "^1.7.0" + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.5.tgz#6e23f2acbcb77ad283c5ed141f824fd9f70101c7" + integrity sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.5" + "@babel/parser" "^7.23.5" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.5" + "@babel/types" "^7.23.5" + convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" + json5 "^2.2.3" + semver "^6.3.1" -"@babel/generator@^7.20.7", "@babel/generator@^7.7.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" - integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== +"@babel/eslint-parser@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.23.3.tgz#7bf0db1c53b54da0c8a12627373554a0828479ca" + integrity sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw== dependencies: - "@babel/types" "^7.20.7" - "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.1" -"@babel/generator@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" - integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== +"@babel/generator@^7.23.5", "@babel/generator@^7.7.2": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755" + integrity sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA== dependencies: - "@babel/types" "^7.23.0" + "@babel/types" "^7.23.5" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.22.5" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" - integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== dependencies: - "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.9" + "@babel/types" "^7.22.15" -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" - integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.15" + browserslist "^4.21.9" lru-cache "^5.1.1" - semver "^6.3.0" + semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.5", "@babel/helper-create-class-features-plugin@^7.20.7": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz#4349b928e79be05ed2d1643b20b99bb87c503819" - integrity sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-member-expression-to-functions" "^7.20.7" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/helper-split-export-declaration" "^7.18.6" +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz#2a8792357008ae9ce8c0f2b78b9f646ac96b314b" + integrity sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-member-expression-to-functions" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz#5ea79b59962a09ec2acf20a963a01ab4d076ccca" - integrity sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.2.1" + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" - integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== +"@babel/helper-define-polyfill-provider@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz#a71c10f7146d809f4a256c373f462d9bba8cf6ba" + integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== dependencies: - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== "@babel/helper-environment-visitor@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@babel/helper-explode-assignable-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" - integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" - integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== - dependencies: - "@babel/template" "^7.18.10" - "@babel/types" "^7.19.0" - -"@babel/helper-function-name@^7.23.0": +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== @@ -220,13 +192,6 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.23.0" -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" @@ -234,88 +199,74 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz#a6f26e919582275a93c3aa6594756d71b0bb7f05" - integrity sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw== +"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== dependencies: - "@babel/types" "^7.20.7" + "@babel/types" "^7.23.0" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" - integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.10" - "@babel/types" "^7.20.7" +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" - integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== - -"@babel/helper-remap-async-to-generator@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" - integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-wrap-function" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" - integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.20.7" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" - "@babel/types" "^7.20.7" +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-simple-access@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" - integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== +"@babel/helper-remap-async-to-generator@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" + integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== dependencies: - "@babel/types" "^7.20.2" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-wrap-function" "^7.22.20" -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" - integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== +"@babel/helper-replace-supers@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== dependencies: - "@babel/types" "^7.20.0" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.22.5" "@babel/helper-split-export-declaration@^7.22.6": version "7.22.6" @@ -324,105 +275,78 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-string-parser@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" - integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== - -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== - -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== - -"@babel/helper-wrap-function@^7.18.9": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" - integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== - dependencies: - "@babel/helper-function-name" "^7.19.0" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.5" - "@babel/types" "^7.20.5" +"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== -"@babel/helpers@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce" - integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA== +"@babel/helper-wrap-function@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" + integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" - "@babel/types" "^7.20.7" + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.19" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== +"@babel/helpers@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.5.tgz#52f522840df8f1a848d06ea6a79b79eefa72401e" + integrity sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg== dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.5" + "@babel/types" "^7.23.5" -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== dependencies: "@babel/helper-validator-identifier" "^7.22.20" chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.7.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" - integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" + integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ== -"@babel/parser@^7.22.15", "@babel/parser@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" - integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" - integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" + integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" - integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" + integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.23.3" -"@babel/plugin-proposal-async-generator-functions@^7.20.1": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" - integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098" + integrity sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w== dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-proposal-class-properties@^7.18.6", "@babel/plugin-proposal-class-properties@^7.8.3": +"@babel/plugin-proposal-class-properties@^7.8.3": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== @@ -430,116 +354,19 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-class-static-block@^7.18.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz#92592e9029b13b15be0f7ce6a7aedc2879ca45a7" - integrity sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" - integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" - integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.20.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - -"@babel/plugin-proposal-optional-catch-binding@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.11.0", "@babel/plugin-proposal-optional-chaining@^7.18.9", "@babel/plugin-proposal-optional-chaining@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz#49f2b372519ab31728cc14115bb0998b15bfda55" - integrity sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ== +"@babel/plugin-proposal-optional-chaining@^7.11.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" + integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== dependencies: "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" - integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-private-property-in-object@^7.18.6": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz#309c7668f2263f1c711aa399b5a9a6291eef6135" - integrity sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.20.5" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -583,14 +410,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-import-assertions@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" - integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== +"@babel/plugin-syntax-import-assertions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" + integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-attributes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" + integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -604,12 +438,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.7.2": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" - integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== +"@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.23.3", "@babel/plugin-syntax-jsx@^7.7.2": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" @@ -667,338 +501,473 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" - integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== +"@babel/plugin-syntax-typescript@^7.23.3", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" + integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-arrow-functions@^7.18.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" - integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-async-to-generator@^7.18.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" - integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== +"@babel/plugin-transform-arrow-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" + integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoped-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" - integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== +"@babel/plugin-transform-async-generator-functions@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" + integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-block-scoping@^7.20.2": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz#9f5a3424bd112a3f32fe0cf9364fbb155cff262a" - integrity sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw== +"@babel/plugin-transform-async-to-generator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" + integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" -"@babel/plugin-transform-classes@^7.20.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz#f438216f094f6bb31dc266ebfab8ff05aecad073" - integrity sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ== +"@babel/plugin-transform-block-scoped-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" + integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-block-scoping@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" + integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" + integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-static-block@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" + integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2" + integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" - integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== +"@babel/plugin-transform-computed-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" + integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/template" "^7.20.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.15" -"@babel/plugin-transform-destructuring@^7.20.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz#8bda578f71620c7de7c93af590154ba331415454" - integrity sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA== +"@babel/plugin-transform-destructuring@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" + integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" - integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== +"@babel/plugin-transform-dotall-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" + integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-duplicate-keys@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" - integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== +"@babel/plugin-transform-duplicate-keys@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" + integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-exponentiation-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" - integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== +"@babel/plugin-transform-dynamic-import@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" + integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-transform-for-of@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" - integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== +"@babel/plugin-transform-exponentiation-operator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" + integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" - integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== +"@babel/plugin-transform-export-namespace-from@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" + integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== dependencies: - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" - integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== +"@babel/plugin-transform-for-of@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz#afe115ff0fbce735e02868d41489093c63e15559" + integrity sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-member-expression-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" - integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== +"@babel/plugin-transform-function-name@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" + integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.19.6": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" - integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== +"@babel/plugin-transform-json-strings@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" + integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== dependencies: - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-modules-commonjs@^7.19.6": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz#8cb23010869bf7669fd4b3098598b6b2be6dc607" - integrity sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw== +"@babel/plugin-transform-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" + integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== dependencies: - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.19.6": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" - integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== +"@babel/plugin-transform-logical-assignment-operators@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" + integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== dependencies: - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-modules-umd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" - integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== +"@babel/plugin-transform-member-expression-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" + integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" - integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== +"@babel/plugin-transform-modules-amd@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" + integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.20.5" - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-new-target@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" - integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== +"@babel/plugin-transform-modules-commonjs@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" + integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-object-super@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" - integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== +"@babel/plugin-transform-modules-systemjs@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz#fa7e62248931cb15b9404f8052581c302dd9de81" + integrity sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" -"@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz#0ee349e9d1bc96e78e3b37a7af423a4078a7083f" - integrity sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA== +"@babel/plugin-transform-modules-umd@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" + integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-property-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" - integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-display-name@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415" - integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA== +"@babel/plugin-transform-new-target@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" + integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-jsx-development@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" - integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA== +"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" + integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== dependencies: - "@babel/plugin-transform-react-jsx" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-react-jsx@^7.18.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.7.tgz#025d85a1935fd7e19dfdcb1b1d4df34d4da484f7" - integrity sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ== +"@babel/plugin-transform-numeric-separator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" + integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-jsx" "^7.18.6" - "@babel/types" "^7.20.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-react-pure-annotations@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844" - integrity sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ== +"@babel/plugin-transform-object-rest-spread@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" + integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/compat-data" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.23.3" -"@babel/plugin-transform-regenerator@^7.18.6": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" - integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== +"@babel/plugin-transform-object-super@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" + integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - regenerator-transform "^0.15.1" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" -"@babel/plugin-transform-reserved-words@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" - integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== +"@babel/plugin-transform-optional-catch-binding@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" + integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-shorthand-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" - integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== +"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" + integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-spread@^7.19.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" - integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== +"@babel/plugin-transform-parameters@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" + integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-sticky-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" - integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== +"@babel/plugin-transform-private-methods@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" + integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-template-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" - integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== +"@babel/plugin-transform-private-property-in-object@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" + integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-typeof-symbol@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" - integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== +"@babel/plugin-transform-property-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" + integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typescript@^7.18.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.7.tgz#673f49499cd810ae32a1ea5f3f8fab370987e055" - integrity sha512-m3wVKEvf6SoszD8pu4NZz3PvfKRCMgk6D6d0Qi9hNnlM5M6CFS92EgF4EiHVLKbU0r/r7ty1hg7NPZwE7WRbYw== +"@babel/plugin-transform-react-display-name@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz#70529f034dd1e561045ad3c8152a267f0d7b6200" + integrity sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-typescript" "^7.20.0" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-escapes@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" - integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== +"@babel/plugin-transform-react-jsx-development@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" + integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-transform-react-jsx" "^7.22.5" -"@babel/plugin-transform-unicode-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" - integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== +"@babel/plugin-transform-react-jsx@^7.22.15", "@babel/plugin-transform-react-jsx@^7.22.5": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312" + integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/types" "^7.23.4" -"@babel/preset-env@^7.6.0": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506" - integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg== +"@babel/plugin-transform-react-pure-annotations@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz#fabedbdb8ee40edf5da96f3ecfc6958e3783b93c" + integrity sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ== dependencies: - "@babel/compat-data" "^7.20.1" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-async-generator-functions" "^7.20.1" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.18.6" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.2" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.18.6" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-regenerator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" + integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" + integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-shorthand-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" + integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-spread@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" + integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-sticky-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" + integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-template-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" + integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typeof-symbol@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" + integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typescript@^7.23.3": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.5.tgz#83da13ef62a1ebddf2872487527094b31c9adb84" + integrity sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.23.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.23.3" + +"@babel/plugin-transform-unicode-escapes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" + integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-property-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" + integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" + integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-sets-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" + integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/preset-env@^7.6.0": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.5.tgz#350a3aedfa9f119ad045b068886457e895ba0ca1" + integrity sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.3" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/plugin-syntax-import-assertions" "^7.23.3" + "@babel/plugin-syntax-import-attributes" "^7.23.3" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -1008,82 +977,98 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.18.6" - "@babel/plugin-transform-async-to-generator" "^7.18.6" - "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.20.2" - "@babel/plugin-transform-classes" "^7.20.2" - "@babel/plugin-transform-computed-properties" "^7.18.9" - "@babel/plugin-transform-destructuring" "^7.20.2" - "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.9" - "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.18.8" - "@babel/plugin-transform-function-name" "^7.18.9" - "@babel/plugin-transform-literals" "^7.18.9" - "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.19.6" - "@babel/plugin-transform-modules-commonjs" "^7.19.6" - "@babel/plugin-transform-modules-systemjs" "^7.19.6" - "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" - "@babel/plugin-transform-new-target" "^7.18.6" - "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.20.1" - "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.18.6" - "@babel/plugin-transform-reserved-words" "^7.18.6" - "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.19.0" - "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.9" - "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.18.10" - "@babel/plugin-transform-unicode-regex" "^7.18.6" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.20.2" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - core-js-compat "^3.25.1" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.23.3" + "@babel/plugin-transform-async-generator-functions" "^7.23.4" + "@babel/plugin-transform-async-to-generator" "^7.23.3" + "@babel/plugin-transform-block-scoped-functions" "^7.23.3" + "@babel/plugin-transform-block-scoping" "^7.23.4" + "@babel/plugin-transform-class-properties" "^7.23.3" + "@babel/plugin-transform-class-static-block" "^7.23.4" + "@babel/plugin-transform-classes" "^7.23.5" + "@babel/plugin-transform-computed-properties" "^7.23.3" + "@babel/plugin-transform-destructuring" "^7.23.3" + "@babel/plugin-transform-dotall-regex" "^7.23.3" + "@babel/plugin-transform-duplicate-keys" "^7.23.3" + "@babel/plugin-transform-dynamic-import" "^7.23.4" + "@babel/plugin-transform-exponentiation-operator" "^7.23.3" + "@babel/plugin-transform-export-namespace-from" "^7.23.4" + "@babel/plugin-transform-for-of" "^7.23.3" + "@babel/plugin-transform-function-name" "^7.23.3" + "@babel/plugin-transform-json-strings" "^7.23.4" + "@babel/plugin-transform-literals" "^7.23.3" + "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" + "@babel/plugin-transform-member-expression-literals" "^7.23.3" + "@babel/plugin-transform-modules-amd" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-modules-systemjs" "^7.23.3" + "@babel/plugin-transform-modules-umd" "^7.23.3" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" + "@babel/plugin-transform-numeric-separator" "^7.23.4" + "@babel/plugin-transform-object-rest-spread" "^7.23.4" + "@babel/plugin-transform-object-super" "^7.23.3" + "@babel/plugin-transform-optional-catch-binding" "^7.23.4" + "@babel/plugin-transform-optional-chaining" "^7.23.4" + "@babel/plugin-transform-parameters" "^7.23.3" + "@babel/plugin-transform-private-methods" "^7.23.3" + "@babel/plugin-transform-private-property-in-object" "^7.23.4" + "@babel/plugin-transform-property-literals" "^7.23.3" + "@babel/plugin-transform-regenerator" "^7.23.3" + "@babel/plugin-transform-reserved-words" "^7.23.3" + "@babel/plugin-transform-shorthand-properties" "^7.23.3" + "@babel/plugin-transform-spread" "^7.23.3" + "@babel/plugin-transform-sticky-regex" "^7.23.3" + "@babel/plugin-transform-template-literals" "^7.23.3" + "@babel/plugin-transform-typeof-symbol" "^7.23.3" + "@babel/plugin-transform-unicode-escapes" "^7.23.3" + "@babel/plugin-transform-unicode-property-regex" "^7.23.3" + "@babel/plugin-transform-unicode-regex" "^7.23.3" + "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.6" + babel-plugin-polyfill-corejs3 "^0.8.5" + babel-plugin-polyfill-regenerator "^0.5.3" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" esutils "^2.0.2" "@babel/preset-react@^7.0.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" - integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-transform-react-display-name" "^7.18.6" - "@babel/plugin-transform-react-jsx" "^7.18.6" - "@babel/plugin-transform-react-jsx-development" "^7.18.6" - "@babel/plugin-transform-react-pure-annotations" "^7.18.6" - -"@babel/preset-typescript@^7.6.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz#ce64be3e63eddc44240c6358daefac17b3186399" - integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-transform-typescript" "^7.18.6" + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.23.3.tgz#f73ca07e7590f977db07eb54dbe46538cc015709" + integrity sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-transform-react-display-name" "^7.23.3" + "@babel/plugin-transform-react-jsx" "^7.22.15" + "@babel/plugin-transform-react-jsx-development" "^7.22.5" + "@babel/plugin-transform-react-pure-annotations" "^7.23.3" + +"@babel/preset-typescript@^7.23.3", "@babel/preset-typescript@^7.6.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz#14534b34ed5b6d435aa05f1ae1c5e7adcc01d913" + integrity sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-typescript" "^7.23.3" "@babel/register@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.22.5.tgz#e4d8d0f615ea3233a27b5c6ada6750ee59559939" - integrity sha512-vV6pm/4CijSQ8Y47RH5SopXzursN35RQINfGJkmOlcpAtGuf94miFvIPhCKGQN7WGIcsgG1BHEX2KVdTYwTwUQ== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.22.15.tgz#c2c294a361d59f5fa7bcc8b97ef7319c32ecaec7" + integrity sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg== dependencies: clone-deep "^4.0.1" find-cache-dir "^2.0.0" @@ -1091,37 +1076,19 @@ pirates "^4.0.5" source-map-support "^0.5.16" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd" - integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ== - dependencies: - regenerator-runtime "^0.13.11" +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.14.6", "@babel/runtime@^7.17.2": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" - integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q== - dependencies: - regenerator-runtime "^0.13.11" - -"@babel/runtime@^7.15.4", "@babel/runtime@^7.18.0": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.11.tgz#7a9ba3bbe406ad6f9e8dd4da2ece453eb23a77a4" - integrity sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA== +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.23.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.5.tgz#11edb98f8aeec529b82b211028177679144242db" + integrity sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/template@^7.22.15": +"@babel/template@^7.22.15", "@babel/template@^7.3.3", "@babel/template@^7.4.4": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== @@ -1130,37 +1097,28 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" - integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== +"@babel/traverse@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec" + integrity sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w== dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.5" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.0" - "@babel/types" "^7.23.0" + "@babel/parser" "^7.23.5" + "@babel/types" "^7.23.5" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" - integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" - integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602" + integrity sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w== dependencies: - "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" @@ -1169,95 +1127,80 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@csstools/cascade-layer-name-parser@^1.0.3", "@csstools/cascade-layer-name-parser@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.4.tgz#3ff490b84660dc0592b4315029f22908f3de0577" - integrity sha512-zXMGsJetbLoXe+gjEES07MEGjL0Uy3hMxmnGtVBrRpVKr5KV9OgCB09zr/vLrsEtoVQTgJFewxaU8IYSAE4tjg== - -"@csstools/color-helpers@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-3.0.0.tgz#b64a9d86663b6d843b169f5da300f78c0242efc2" - integrity sha512-rBODd1rY01QcenD34QxbQxLc1g+Uh7z1X/uzTHNQzJUnFCT9/EZYI7KWq+j0YfWMXJsRJ8lVkqBcB0R/qLr+yg== - -"@csstools/css-calc@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-1.1.3.tgz#75e07eec075f1f3df0ce25575dab3d63da2bd680" - integrity sha512-7mJZ8gGRtSQfQKBQFi5N0Z+jzNC0q8bIkwojP1W0w+APzEqHu5wJoGVsvKxVnVklu9F8tW1PikbBRseYnAdv+g== - -"@csstools/css-color-parser@^1.2.2": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-1.2.3.tgz#0cd0f72c50894a623ae09f19e30bbfb298769f59" - integrity sha512-YaEnCoPTdhE4lPQFH3dU4IEk8S+yCnxS88wMv45JzlnMfZp57hpqA6qf2gX8uv7IJTJ/43u6pTQmhy7hCjlz7g== - dependencies: - "@csstools/color-helpers" "^3.0.0" - "@csstools/css-calc" "^1.1.3" +"@csstools/cascade-layer-name-parser@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.5.tgz#c4d276e32787651df0007af22c9fa70d9c9ca3c2" + integrity sha512-v/5ODKNBMfBl0us/WQjlfsvSlYxfZLhNMVIsuCPib2ulTwGKYbKJbwqw671+qH9Y4wvWVnu7LBChvml/wBKjFg== -"@csstools/css-parser-algorithms@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.0.tgz#0cc3a656dc2d638370ecf6f98358973bfbd00141" - integrity sha512-dTKSIHHWc0zPvcS5cqGP+/TPFUJB0ekJ9dGKvMAFoNuBFhDPBt9OMGNZiIA5vTiNdGHHBeScYPXIGBMnVOahsA== +"@csstools/color-helpers@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-3.0.2.tgz#6571d289af8bfcc3a8d75357b35e6d17a8ba6848" + integrity sha512-NMVs/l7Y9eIKL5XjbCHEgGcG8LOUT2qVcRjX6EzkCdlvftHVKr2tHIPzHavfrULRZ5Q2gxrJ9f44dAlj6fX97Q== -"@csstools/css-parser-algorithms@^2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz#ec4fc764ba45d2bb7ee2774667e056aa95003f3a" - integrity sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA== +"@csstools/css-calc@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-1.1.4.tgz#70bf4c5b379cdc256d3936bf4a21e3a3454a3d68" + integrity sha512-ZV1TSmToiNcQL1P3hfzlzZzA02mmVkVmXGaUDUqpYUG84PmLhVSZpKX+KfxAuOcK7de04UXSQPBrAvaya6iiGg== -"@csstools/css-tokenizer@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz#07ae11a0a06365d7ec686549db7b729bc036528e" - integrity sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA== +"@csstools/css-color-parser@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-1.4.0.tgz#c8517457dcb6ad080848b1583aa029ab61221ce8" + integrity sha512-SlGd8E6ron24JYQPQAIzu5tvmWi1H4sDKTdA7UDnwF45oJv7AVESbOlOO1YjfBhrQFuvLWUgKiOY9DwGoAxwTA== + dependencies: + "@csstools/color-helpers" "^3.0.2" + "@csstools/css-calc" "^1.1.4" -"@csstools/css-tokenizer@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.0.tgz#9d70e6dcbe94e44c7400a2929928db35c4de32b5" - integrity sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA== +"@csstools/css-parser-algorithms@2.3.2", "@csstools/css-parser-algorithms@^2.3.1", "@csstools/css-parser-algorithms@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz#1e0d581dbf4518cb3e939c3b863cb7180c8cedad" + integrity sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA== -"@csstools/media-query-list-parser@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.2.tgz#6ef642b728d30c1009bfbba3211c7e4c11302728" - integrity sha512-M8cFGGwl866o6++vIY7j1AKuq9v57cf+dGepScwCcbut9ypJNr4Cj+LLTWligYUZ0uyhEoJDKt5lvyBfh2L3ZQ== +"@csstools/css-tokenizer@^2.2.0", "@csstools/css-tokenizer@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.1.tgz#9dc431c9a5f61087af626e41ac2a79cce7bb253d" + integrity sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg== -"@csstools/media-query-list-parser@^2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.3.tgz#4471ebd436a22019378fe9c8ac8c0f30c4fbb796" - integrity sha512-ATul1u+pic4aVpstgueqxEv4MsObEbszAxfTXpx9LHaeD3LAh+wFqdCteyegWmjk0k5rkSCAvIOaJe9U3DD09w== +"@csstools/media-query-list-parser@^2.1.4", "@csstools/media-query-list-parser@^2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.5.tgz#94bc8b3c3fd7112a40b7bf0b483e91eba0654a0f" + integrity sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ== -"@csstools/postcss-cascade-layers@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-4.0.0.tgz#21f8556de640f9f9ccfb950c49a886280fe5497e" - integrity sha512-dVPVVqQG0FixjM9CG/+8eHTsCAxRKqmNh6H69IpruolPlnEF1611f2AoLK8TijTSAsqBSclKd4WHs1KUb/LdJw== +"@csstools/postcss-cascade-layers@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-4.0.1.tgz#43d12cb0ffe9ab461bc41143dc554c6e1cb633e6" + integrity sha512-UYFuFL9GgVnftg9v7tBvVEBRLaBeAD66euD+yYy5fYCUld9ZIWTJNCE30hm6STMEdt6FL5xzeVw1lAZ1tpvUEg== dependencies: "@csstools/selector-specificity" "^3.0.0" postcss-selector-parser "^6.0.13" -"@csstools/postcss-color-function@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-3.0.1.tgz#2f688783f9e8b2496bd0df6edbfb47b8300f01af" - integrity sha512-+vrvCQeUifpMeyd42VQ3JPWGQ8cO19+TnGbtfq1SDSgZzRapCQO4aK9h/jhMOKPnxGzbA57oS0aHgP/12N9gSQ== +"@csstools/postcss-color-function@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-3.0.7.tgz#646b0c3e3805e4bb9c1e240bce807f1cc6ccdfea" + integrity sha512-/PIB20G1TPCXmQlaJLWIYzTZRZpj6csT4ijgnshIj/kcmniIRroAfDa0xSWnfuO1eNo0NptIaPU7jzUukWn55Q== dependencies: - "@csstools/css-color-parser" "^1.2.2" - "@csstools/css-parser-algorithms" "^2.3.1" - "@csstools/css-tokenizer" "^2.2.0" - "@csstools/postcss-progressive-custom-properties" "^3.0.0" + "@csstools/css-color-parser" "^1.4.0" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" + "@csstools/postcss-progressive-custom-properties" "^3.0.2" -"@csstools/postcss-color-mix-function@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.1.tgz#51c5656bcbee9d02d00d10ddcdb0a55486573fd4" - integrity sha512-Z5cXkLiccKIVcUTe+fAfjUD7ZUv0j8rq3dSoBpM6I49dcw+50318eYrwUZa3nyb4xNx7ntNNUPmesAc87kPE2Q== +"@csstools/postcss-color-mix-function@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.7.tgz#0fc9b638bd6b9578a52a50e3af66109ae52dc2b6" + integrity sha512-57/g8aGo5eKFjEeJMiRKh8Qq43K2rCyk5ZZTvJ34TNl4zUtYU5DvLkIkOnhCtL8/a4z9oMA42aOnFPddRrScUQ== dependencies: - "@csstools/css-color-parser" "^1.2.2" - "@csstools/css-parser-algorithms" "^2.3.1" - "@csstools/css-tokenizer" "^2.2.0" - "@csstools/postcss-progressive-custom-properties" "^3.0.0" + "@csstools/css-color-parser" "^1.4.0" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" + "@csstools/postcss-progressive-custom-properties" "^3.0.2" -"@csstools/postcss-exponential-functions@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.0.tgz#2e558ad2856e0c737d9cb98a5d91cfe8d785c9f6" - integrity sha512-FPndJ/7oGlML7/4EhLi902wGOukO0Nn37PjwOQGc0BhhjQPy3np3By4d3M8s9Cfmp9EHEKgUHRN2DQ5HLT/hTw== +"@csstools/postcss-exponential-functions@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.1.tgz#0d938f58ba5ac5c362e09ad22b5768b04ee82650" + integrity sha512-ZLK2iSK4DUxeypGce2PnQSdYugUqDTwxnhNiq1o6OyKMNYgYs4eKbvEhFG8JKr1sJWbeqBi5jRr0017l2EWVvg== dependencies: - "@csstools/css-calc" "^1.1.3" - "@csstools/css-parser-algorithms" "^2.3.1" - "@csstools/css-tokenizer" "^2.2.0" + "@csstools/css-calc" "^1.1.4" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" "@csstools/postcss-font-format-keywords@^3.0.0": version "3.0.0" @@ -1266,37 +1209,51 @@ dependencies: postcss-value-parser "^4.2.0" -"@csstools/postcss-gradients-interpolation-method@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.1.tgz#abbe5ec9992b850c4330da2f1b57e73d2f5f5086" - integrity sha512-IHeFIcksjI8xKX7PWLzAyigM3UvJdZ4btejeNa7y/wXxqD5dyPPZuY55y8HGTrS6ETVTRqfIznoCPtTzIX7ygQ== +"@csstools/postcss-gamut-mapping@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-1.0.0.tgz#a23d2c4bd2bd89b2ed3c5d2e062c069ad18745e0" + integrity sha512-6UQyK8l9YaG5Ao5rBDcCnKHrLsHiQ1E0zeFQuqDJqEtinVzAPb/MwSw3TenZXL1Rnd7th3tb+4CBFHBXdW5tbQ== dependencies: - "@csstools/css-color-parser" "^1.2.2" - "@csstools/css-parser-algorithms" "^2.3.1" - "@csstools/css-tokenizer" "^2.2.0" - "@csstools/postcss-progressive-custom-properties" "^3.0.0" + "@csstools/css-color-parser" "^1.4.0" + "@csstools/css-parser-algorithms" "2.3.2" + "@csstools/css-tokenizer" "^2.2.1" -"@csstools/postcss-hwb-function@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.1.tgz#72f47fae09e0dc48be4bd94cab15e6e98cc6de00" - integrity sha512-FYe2K8EOYlL1BUm2HTXVBo6bWAj0xl4khOk6EFhQHy/C5p3rlr8OcetzQuwMeNQ3v25nB06QTgqUHoOUwoEqhA== +"@csstools/postcss-gradients-interpolation-method@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.7.tgz#e5c2628157fb9dea9aa8cd9c84fdcc2a842af91b" + integrity sha512-GT1CzE/Tyr/ei4j5BwKESkHAgg+Gzys/0mAY7W+UiR+XrcYk5hDbOrE/YJIx1rflfO/7La1bDoZtA0YnLl4qNA== dependencies: - "@csstools/css-color-parser" "^1.2.2" - "@csstools/css-parser-algorithms" "^2.3.1" - "@csstools/css-tokenizer" "^2.2.0" + "@csstools/css-color-parser" "^1.4.0" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" + "@csstools/postcss-progressive-custom-properties" "^3.0.2" -"@csstools/postcss-ic-unit@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-3.0.0.tgz#bbc55170d880daa3cc096ee160e8f2492a48e881" - integrity sha512-FH3+zfOfsgtX332IIkRDxiYLmgwyNk49tfltpC6dsZaO4RV2zWY6x9VMIC5cjvmjlDO7DIThpzqaqw2icT8RbQ== +"@csstools/postcss-hwb-function@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.6.tgz#7d56583c6c8607352718a802f87e51edf4f9365e" + integrity sha512-uQgWt2Ho2yy2S6qthWY7mD5v57NKxi6dD1NB8nAybU5bJSsm+hLXRGm3/zbOH4xNrqO3Cl60DFSNlSrUME3Xjg== dependencies: - "@csstools/postcss-progressive-custom-properties" "^3.0.0" + "@csstools/css-color-parser" "^1.4.0" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" + +"@csstools/postcss-ic-unit@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-3.0.2.tgz#08b62de51a3636ba40ba8e77cef4619a6e636aac" + integrity sha512-n28Er7W9qc48zNjJnvTKuVHY26/+6YlA9WzJRksIHiAWOMxSH5IksXkw7FpkIOd+jLi59BMrX/BWrZMgjkLBHg== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^3.0.2" postcss-value-parser "^4.2.0" -"@csstools/postcss-is-pseudo-class@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-4.0.0.tgz#954c489cf207a7cfeaf4d96d39fac50757dc48cf" - integrity sha512-0I6siRcDymG3RrkNTSvHDMxTQ6mDyYE8awkcaHNgtYacd43msl+4ZWDfQ1yZQ/viczVWjqJkLmPiRHSgxn5nZA== +"@csstools/postcss-initial@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-initial/-/postcss-initial-1.0.0.tgz#e35ec12143a654b384fb81623970deeacedb0769" + integrity sha512-1l7iHHjIl5qmVeGItugr4ZOlCREDP71mNKqoEyxlosIoiu3Os1nPWMHpuCvDLCLiWI/ONTOg3nzJh7gwHOrqUA== + +"@csstools/postcss-is-pseudo-class@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-4.0.3.tgz#d8b04ff5eefb1a9bc8f1ab99b8f3b6b04b704480" + integrity sha512-/dt5M9Ty/x3Yiq0Nm/5PJJzwkVFchJgdjKVnryBPtoMCb9ohb/nDIJOwr/Wr3hK3FDs1EA1GE6PyRYsUmQPS8Q== dependencies: "@csstools/selector-specificity" "^3.0.0" postcss-selector-parser "^6.0.13" @@ -1306,6 +1263,16 @@ resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-2.0.0.tgz#15e1b5d16dce01ad1e676167d0909e3958234eb5" integrity sha512-Wki4vxsF6icRvRz8eF9bPpAvwaAt0RHwhVOyzfoFg52XiIMjb6jcbHkGxwpJXP4DVrnFEwpwmrz5aTRqOW82kg== +"@csstools/postcss-logical-overflow@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-1.0.0.tgz#dbc18226f6cc6a83981184564ed9229a860f6033" + integrity sha512-cIrZ8f7bGGvr+W53nEuMspcwaeaI2YTmz6LZ4yiAO5z14/PQgOOv+Pn+qjvPOPoadeY2BmpaoTzZKvdAQuM17w== + +"@csstools/postcss-logical-overscroll-behavior@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-1.0.0.tgz#93f60a71f75dab89b471166e6c3d44c8ef1b76b8" + integrity sha512-e89S2LWjnxf0SB2wNUAbqDyFb/Fow/tlOe1XqOLbNx4rf3LrQokM9qldVx7sarnddml3ORE5LDUmlKpPOOeJTA== + "@csstools/postcss-logical-resize@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-resize/-/postcss-logical-resize-2.0.0.tgz#751bd5aab335c9973e346e3edacb2a0a16fa8296" @@ -1313,31 +1280,31 @@ dependencies: postcss-value-parser "^4.2.0" -"@csstools/postcss-logical-viewport-units@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.1.tgz#2921034d11d60ea7340ebe795bb4fe60f32ebbae" - integrity sha512-R5s19SscS7CHoxvdYNMu2Y3WDwG4JjdhsejqjunDB1GqfzhtHSvL7b5XxCkUWqm2KRl35hI6kJ4HEaCDd/3BXg== +"@csstools/postcss-logical-viewport-units@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.3.tgz#95e7195660bb8b05cd46f13d0495fe427e2db988" + integrity sha512-xeVxqND5rlQyqLGdH7rX34sIm/JbbQKxpKQP8oD1YQqUHHCLQR9NUS57WqJKajxKN6AcNAMWJhb5LUH5RfPcyA== dependencies: - "@csstools/css-tokenizer" "^2.2.0" + "@csstools/css-tokenizer" "^2.2.1" -"@csstools/postcss-media-minmax@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.0.6.tgz#ed4cac86640c2dd4c3aa2ec491afc28527a10151" - integrity sha512-BmwKkqEzzQz6D+5ctoacsiGrq4kVgd1PMEPwkwdR0qFaL2C2nguGsWG87xEw+HIts/2yxhIPTm7Jp3DQq+wn3Q== +"@csstools/postcss-media-minmax@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.0.tgz#8d46317b6686cd49e05870ae3c8993e49a54149c" + integrity sha512-t5Li/DPC5QmW/6VFLfUvsw/4dNYYseWR0tOXDeJg/9EKUodBgNawz5tuk5vYKtNvoj+Q08odMuXcpS5YJj0AFA== dependencies: - "@csstools/css-calc" "^1.1.3" - "@csstools/css-parser-algorithms" "^2.3.1" - "@csstools/css-tokenizer" "^2.2.0" - "@csstools/media-query-list-parser" "^2.1.3" + "@csstools/css-calc" "^1.1.4" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" + "@csstools/media-query-list-parser" "^2.1.5" -"@csstools/postcss-media-queries-aspect-ratio-number-values@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.1.tgz#00d30e83e0b1e82a09ab890dcef80cc41be1ab8c" - integrity sha512-UvMYxXT3R011whbxzRwLx7d7eNGyVsnZo7waAmf10ZGnT34XidY+rsdFnk6OdFwuG6FYqw3/tptQEAZOmUgvLw== +"@csstools/postcss-media-queries-aspect-ratio-number-values@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.3.tgz#a74355c828a13ede8e8390bcf2701a34a60696b3" + integrity sha512-IPL8AvnwMYW+cWtp+j8cW3MFN0RyXNT4hLOvs6Rf2N+NcbvXhSyKxZuE3W9Cv4KjaNoNoGx1d0UhT6tktq6tUw== dependencies: - "@csstools/css-parser-algorithms" "^2.3.1" - "@csstools/css-tokenizer" "^2.2.0" - "@csstools/media-query-list-parser" "^2.1.3" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" + "@csstools/media-query-list-parser" "^2.1.5" "@csstools/postcss-nested-calc@^3.0.0": version "3.0.0" @@ -1346,39 +1313,39 @@ dependencies: postcss-value-parser "^4.2.0" -"@csstools/postcss-normalize-display-values@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-3.0.0.tgz#de995eeafe217ac1854a7135b1db44c57487e9ea" - integrity sha512-6Nw55PRXEKEVqn3bzA8gRRPYxr5tf5PssvcE5DRA/nAxKgKtgNZMCHCSd1uxTCWeyLnkf6h5tYRSB0P1Vh/K/A== +"@csstools/postcss-normalize-display-values@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-3.0.1.tgz#8bacd4fa20434de67a7b1f4f64f6e4476922a98d" + integrity sha512-nUvRxI+ALJwkxZdPU4EDyuM380vP91sAGvI3jAOHs/sr3jfcCOzLkY6xKI1Mr526kZ3RivmMoYM/xq+XFyE/bw== dependencies: postcss-value-parser "^4.2.0" -"@csstools/postcss-oklab-function@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.1.tgz#2e33ed1761ce78d59a9156f1201a52fda7c75899" - integrity sha512-3TIz+dCPlQPzz4yAEYXchUpfuU2gRYK4u1J+1xatNX85Isg4V+IbLyppblWLV4Vb6npFF8qsHN17rNuxOIy/6w== +"@csstools/postcss-oklab-function@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.7.tgz#4daff9e85b7f68ea744f2898f73e81d6fe47c0d7" + integrity sha512-vBFTQD3CARB3u/XIGO44wWbcO7xG/4GsYqJlcPuUGRSK8mtxes6n4vvNFlIByyAZy2k4d4RY63nyvTbMpeNTaQ== dependencies: - "@csstools/css-color-parser" "^1.2.2" - "@csstools/css-parser-algorithms" "^2.3.1" - "@csstools/css-tokenizer" "^2.2.0" - "@csstools/postcss-progressive-custom-properties" "^3.0.0" + "@csstools/css-color-parser" "^1.4.0" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" + "@csstools/postcss-progressive-custom-properties" "^3.0.2" -"@csstools/postcss-progressive-custom-properties@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-3.0.0.tgz#bb86ae4bb7f2206b0cf6e9b8f0bfc191f67271d8" - integrity sha512-2/D3CCL9DN2xhuUTP8OKvKnaqJ1j4yZUxuGLsCUOQ16wnDAuMLKLkflOmZF5tsPh/02VPeXRmqIN+U595WAulw== +"@csstools/postcss-progressive-custom-properties@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-3.0.2.tgz#0c18152160a425950cb69a12a9add55af4f688e7" + integrity sha512-YEvTozk1SxnV/PGL5DllBVDuLQ+jiQhyCSQiZJ6CwBMU5JQ9hFde3i1qqzZHuclZfptjrU0JjlX4ePsOhxNzHw== dependencies: postcss-value-parser "^4.2.0" -"@csstools/postcss-relative-color-syntax@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.1.tgz#b7e928fdef9366e1060e2bf4d95cab605855446b" - integrity sha512-9B8br/7q0bjD1fV3yE22izjc7Oy5hDbDgwdFEz207cdJHYC9yQneJzP3H+/w3RgC7uyfEVhyyhkGRx5YAfJtmg== +"@csstools/postcss-relative-color-syntax@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.7.tgz#1d017aa25e3cda513cf00401a91899e9d3b83659" + integrity sha512-2AiFbJSVF4EyymLxme4JzSrbXykHolx8DdZECHjYKMhoulhKLltx5ccYgtrK3BmXGd3v3nJrWFCc8JM8bjuiOg== dependencies: - "@csstools/css-color-parser" "^1.2.2" - "@csstools/css-parser-algorithms" "^2.3.1" - "@csstools/css-tokenizer" "^2.2.0" - "@csstools/postcss-progressive-custom-properties" "^3.0.0" + "@csstools/css-color-parser" "^1.4.0" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" + "@csstools/postcss-progressive-custom-properties" "^3.0.2" "@csstools/postcss-scope-pseudo-class@^3.0.0": version "3.0.0" @@ -1387,31 +1354,31 @@ dependencies: postcss-selector-parser "^6.0.13" -"@csstools/postcss-stepped-value-functions@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.1.tgz#c337a8ae09bec13cdf6c95f63a58b407f6965557" - integrity sha512-y1sykToXorFE+5cjtp//xAMWEAEple0kcZn2QhzEFIZDDNvGOCp5JvvmmPGsC3eDlj6yQp70l9uXZNLnimEYfA== +"@csstools/postcss-stepped-value-functions@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.2.tgz#a902395efbf9c5c30a6d902a7c65549fb3f49309" + integrity sha512-I3wX44MZVv+tDuWfrd3BTvRB/YRIM2F5v1MBtTI89sxpFn47mNpTwpPYUOGPVCgKlRDfZSlxIUYhUQmqRQZZFQ== dependencies: - "@csstools/css-calc" "^1.1.3" - "@csstools/css-parser-algorithms" "^2.3.1" - "@csstools/css-tokenizer" "^2.2.0" + "@csstools/css-calc" "^1.1.4" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" -"@csstools/postcss-text-decoration-shorthand@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-3.0.0.tgz#468800a47fcb4760df8c60bbf1ba7999f44b4dd4" - integrity sha512-BAa1MIMJmEZlJ+UkPrkyoz3DC7kLlIl2oDya5yXgvUrelpwxddgz8iMp69qBStdXwuMyfPx46oZcSNx8Z0T2eA== +"@csstools/postcss-text-decoration-shorthand@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-3.0.3.tgz#e0708cf41f94013837edca1c6db23d5d6dd3c10e" + integrity sha512-d5J9m49HhqXRcw1S6vTZuviHi/iknUKGjBpChiNK1ARg9sSa3b8m5lsWz5Izs8ISORZdv2bZRwbw5Z2R6gQ9kQ== dependencies: - "@csstools/color-helpers" "^3.0.0" + "@csstools/color-helpers" "^3.0.2" postcss-value-parser "^4.2.0" -"@csstools/postcss-trigonometric-functions@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.1.tgz#06148aa8624b69a6573adb40ed27d3d019875caa" - integrity sha512-hW+JPv0MPQfWC1KARgvJI6bisEUFAZWSvUNq/khGCupYV/h6Z9R2ZFz0Xc633LXBst0ezbXpy7NpnPurSx5Klw== +"@csstools/postcss-trigonometric-functions@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.2.tgz#b03d045015fc6e16d81e36e5783c545b5590a2f2" + integrity sha512-AwzNhF4QOKaLOKvMljwwFkeYXwufhRO15G+kKohHkyoNOL75xWkN+W2Y9ik9tSeAyDv+cYNlYaF+o/a79WjVjg== dependencies: - "@csstools/css-calc" "^1.1.3" - "@csstools/css-parser-algorithms" "^2.3.1" - "@csstools/css-tokenizer" "^2.2.0" + "@csstools/css-calc" "^1.1.4" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" "@csstools/postcss-unset-value@^3.0.0": version "3.0.0" @@ -1424,43 +1391,65 @@ integrity sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g== "@ctrl/tinycolor@^3.4.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@ctrl/tinycolor/-/tinycolor-3.5.0.tgz#6e52b3d1c38d13130101771821e09cdd414a16bc" - integrity sha512-tlJpwF40DEQcfR/QF+wNMVyGMaO9FQp6Z1Wahj4Gk3CJQYHwA2xVG7iKDFdW6zuxZY9XWOpGcfNCTsX4McOsOg== + version "3.6.1" + resolved "https://registry.yarnpkg.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz#b6c75a56a1947cc916ea058772d666a2c8932f31" + integrity sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA== "@discoveryjs/json-ext@^0.5.0": version "0.5.7" resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + +"@eslint/eslintrc@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" + integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== dependencies: ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^13.9.0" - ignore "^4.0.6" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" import-fresh "^3.2.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" + js-yaml "^4.1.0" + minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== +"@eslint/js@8.54.0": + version "8.54.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" + integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== + +"@humanwhocodes/config-array@^0.11.13": + version "0.11.13" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" + integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== dependencies: - "@humanwhocodes/object-schema" "^1.2.0" + "@humanwhocodes/object-schema" "^2.0.1" debug "^4.1.1" - minimatch "^3.0.4" + minimatch "^3.0.5" -"@humanwhocodes/object-schema@^1.2.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" + integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== "@icons/material@^0.2.4": version "0.2.4" @@ -1488,110 +1477,110 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.5.0.tgz#593a6c5c0d3f75689835f1b3b4688c4f8544cb57" - integrity sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ== +"@jest/console@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" + integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" slash "^3.0.0" -"@jest/core@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03" - integrity sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ== +"@jest/core@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" + integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== dependencies: - "@jest/console" "^29.5.0" - "@jest/reporters" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/console" "^29.7.0" + "@jest/reporters" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.5.0" - jest-config "^29.5.0" - jest-haste-map "^29.5.0" - jest-message-util "^29.5.0" - jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-resolve-dependencies "^29.5.0" - jest-runner "^29.5.0" - jest-runtime "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" - jest-watcher "^29.5.0" + jest-changed-files "^29.7.0" + jest-config "^29.7.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-resolve-dependencies "^29.7.0" + jest-runner "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + jest-watcher "^29.7.0" micromatch "^4.0.4" - pretty-format "^29.5.0" + pretty-format "^29.7.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65" - integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ== +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== dependencies: - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-mock "^29.5.0" + jest-mock "^29.7.0" -"@jest/expect-utils@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" - integrity sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg== +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== dependencies: - jest-get-type "^29.4.3" + jest-get-type "^29.6.3" -"@jest/expect@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba" - integrity sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g== +"@jest/expect@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" + integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== dependencies: - expect "^29.5.0" - jest-snapshot "^29.5.0" + expect "^29.7.0" + jest-snapshot "^29.7.0" -"@jest/fake-timers@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c" - integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg== +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.3" "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.5.0" - jest-mock "^29.5.0" - jest-util "^29.5.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" -"@jest/globals@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298" - integrity sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ== +"@jest/globals@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" + integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== dependencies: - "@jest/environment" "^29.5.0" - "@jest/expect" "^29.5.0" - "@jest/types" "^29.5.0" - jest-mock "^29.5.0" + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/types" "^29.6.3" + jest-mock "^29.7.0" -"@jest/reporters@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b" - integrity sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA== +"@jest/reporters@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" + integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@jridgewell/trace-mapping" "^0.3.15" + "@jest/console" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" @@ -1599,70 +1588,70 @@ glob "^7.1.3" graceful-fs "^4.2.9" istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" + istanbul-lib-instrument "^6.0.0" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.5.0" - jest-util "^29.5.0" - jest-worker "^29.5.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" - integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== dependencies: - "@sinclair/typebox" "^0.25.16" + "@sinclair/typebox" "^0.27.8" -"@jest/source-map@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.3.tgz#ff8d05cbfff875d4a791ab679b4333df47951d20" - integrity sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w== +"@jest/source-map@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" + integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== dependencies: - "@jridgewell/trace-mapping" "^0.3.15" + "@jridgewell/trace-mapping" "^0.3.18" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.5.0.tgz#7c856a6ca84f45cc36926a4e9c6b57f1973f1408" - integrity sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ== +"@jest/test-result@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" + integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== dependencies: - "@jest/console" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/console" "^29.7.0" + "@jest/types" "^29.6.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz#34d7d82d3081abd523dbddc038a3ddcb9f6d3cc4" - integrity sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ== +"@jest/test-sequencer@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" + integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== dependencies: - "@jest/test-result" "^29.5.0" + "@jest/test-result" "^29.7.0" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" + jest-haste-map "^29.7.0" slash "^3.0.0" -"@jest/transform@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9" - integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw== +"@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.5.0" - "@jridgewell/trace-mapping" "^0.3.15" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" - jest-regex-util "^29.4.3" - jest-util "^29.5.0" + jest-haste-map "^29.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -1677,77 +1666,51 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" -"@jest/types@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" - integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== dependencies: - "@jest/schemas" "^29.4.3" + "@jest/schemas" "^29.6.3" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== dependencies: "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - "@jridgewell/resolve-uri@^3.1.0": version "3.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": +"@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== +"@jridgewell/source-map@^0.3.3": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" + integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== dependencies: "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/sourcemap-codec@^1.4.14": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.8", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@jridgewell/trace-mapping@^0.3.17": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": version "0.3.20" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== @@ -1766,9 +1729,9 @@ integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== "@mapbox/node-pre-gyp@^1.0.0": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz#8e6735ccebbb1581e5a7e652244cadc8a844d03c" - integrity sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA== + version "1.0.11" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa" + integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== dependencies: detect-libc "^2.0.0" https-proxy-agent "^5.0.0" @@ -1785,6 +1748,13 @@ resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" + integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== + dependencies: + eslint-scope "5.1.1" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1798,7 +1768,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3": +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -1869,32 +1839,31 @@ rc-util "^5.24.4" "@rc-component/trigger@^1.5.0": - version "1.15.6" - resolved "https://registry.yarnpkg.com/@rc-component/trigger/-/trigger-1.15.6.tgz#ccb71f16229e832e15b3869817cbe24f5e59b54c" - integrity sha512-Tl19KaGsShf4yzqxumsXVT4c7j0l20Dxe5hgP5S0HmxyhCg3oKen28ntGavRCIPW7cl7wgsGotntqcIokgDHzg== + version "1.18.2" + resolved "https://registry.yarnpkg.com/@rc-component/trigger/-/trigger-1.18.2.tgz#dc52c4c66fa8aaccaf0710498f2429fc05454e3b" + integrity sha512-jRLYgFgjLEPq3MvS87fIhcfuywFSRDaDrYw1FLku7Cm4esszvzTbA0JBsyacAyLrK9rF3TiHFcvoEDMzoD3CTA== dependencies: - "@babel/runtime" "^7.18.3" + "@babel/runtime" "^7.23.2" "@rc-component/portal" "^1.1.0" classnames "^2.3.2" - rc-align "^4.0.0" rc-motion "^2.0.0" rc-resize-observer "^1.3.1" - rc-util "^5.33.0" + rc-util "^5.38.0" "@react-awesome-query-builder/antd@^6.2.1": - version "6.4.1" - resolved "https://registry.yarnpkg.com/@react-awesome-query-builder/antd/-/antd-6.4.1.tgz#4894ae84fe318f9926f5bec6de559ff339a74eef" - integrity sha512-CGcIxd7v3j6AlX/kWGVwbzN3fQYZjMPoXRDoBHsKnQx13SRkaYGZjPfdVTSnVwRZDYDKy82PqGlULzA9aKfwvg== + version "6.4.2" + resolved "https://registry.yarnpkg.com/@react-awesome-query-builder/antd/-/antd-6.4.2.tgz#639540c34cd17355de89a4fb16e6291673e5ba40" + integrity sha512-eG1izM1YMR1sY8xOn0pPGlHOIb4kw3mHnI8opfpfxex/B3k++Yrar+lu6zKcEKZSFMkzO82uL3ZiovIZys2vlg== dependencies: - "@react-awesome-query-builder/ui" "^6.4.1" + "@react-awesome-query-builder/ui" "^6.4.2" lodash "^4.17.21" prop-types "^15.7.2" rc-picker "^3.1.4" -"@react-awesome-query-builder/core@^6.4.1": - version "6.4.1" - resolved "https://registry.yarnpkg.com/@react-awesome-query-builder/core/-/core-6.4.1.tgz#d3cd91ff589841f1ce2fcbe37309464b1cc619a8" - integrity sha512-Y3i5Yhr+QLWZkGD/Gz669WpQ7NQ6xPQJbi/dQ7LsCbb/zjL+5ivuM9AHRUq+dWsA/EmygIvolJSoLxjWpB6vRA== +"@react-awesome-query-builder/core@^6.4.2": + version "6.4.2" + resolved "https://registry.yarnpkg.com/@react-awesome-query-builder/core/-/core-6.4.2.tgz#0f953964beeb8c7a0143fc91ec504dda236935f2" + integrity sha512-QPPgvYwY6mjmHVsvb05hPIRx3jxySLayfCI++++Rl8bTvbwOHz6yXn6KgipgvGBLzeiiT6NZ7glknL5/uYV73w== dependencies: clone "^2.1.2" immutable "^3.8.2" @@ -1904,41 +1873,41 @@ spel2js "^0.2.8" sqlstring "^2.3.3" -"@react-awesome-query-builder/ui@^6.4.1": - version "6.4.1" - resolved "https://registry.yarnpkg.com/@react-awesome-query-builder/ui/-/ui-6.4.1.tgz#e7f85bff76b60bf0705e19778b374efea538b85c" - integrity sha512-vXoVk6b6tKaXul0iu4r0c6JtbQV9prVNQjgIsso9oU7C6VfXVJ+5gf05QSckrUBgwKql1XztlWDLWqReRkWmyA== +"@react-awesome-query-builder/ui@^6.4.2": + version "6.4.2" + resolved "https://registry.yarnpkg.com/@react-awesome-query-builder/ui/-/ui-6.4.2.tgz#2e24d8eb5b4826359de240fba1b742a4ecd24f77" + integrity sha512-rjK/5EKQikMVPX9I5T6Pr+7sKetiKTKvTB15TTyOR+6P9SxVTAQ/wt46zBO/yw5Tu4XcvpFxGdbV0RDy5yw+gQ== dependencies: - "@react-awesome-query-builder/core" "^6.4.1" + "@react-awesome-query-builder/core" "^6.4.2" classnames "^2.3.1" lodash "^4.17.21" prop-types "^15.7.2" react-redux "^7.2.2" redux "^4.2.0" -"@sinclair/typebox@^0.25.16": - version "0.25.24" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" - integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== -"@sinonjs/commons@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" - integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== +"@sinonjs/commons@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.0.tgz#beb434fe875d965265e04722ccfc21df7f755d72" + integrity sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA== dependencies: type-detect "4.0.8" "@sinonjs/fake-timers@^10.0.2": - version "10.0.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" - integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== + version "10.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== dependencies: - "@sinonjs/commons" "^2.0.0" + "@sinonjs/commons" "^3.0.0" "@szmarczak/http-timer@^1.1.2": version "1.1.2" @@ -1953,65 +1922,65 @@ integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== "@types/babel__core@^7.1.14": - version "7.1.20" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.20.tgz#e168cdd612c92a2d335029ed62ac94c95b362359" - integrity sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" "@types/babel__generator" "*" "@types/babel__template" "*" "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + version "7.6.7" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.7.tgz#a7aebf15c7bc0eb9abd638bdb5c0b8700399c9d0" + integrity sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.18.3" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" - integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== + version "7.20.4" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz#ec2c06fed6549df8bc0eb4615b683749a4a92e1b" + integrity sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA== dependencies: - "@babel/types" "^7.3.0" + "@babel/types" "^7.20.7" "@types/body-parser@*": - version "1.19.2" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + version "1.19.5" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== dependencies: "@types/connect" "*" "@types/node" "*" "@types/bonjour@^3.5.9": - version "3.5.10" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" - integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== + version "3.5.13" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== dependencies: "@types/node" "*" "@types/connect-history-api-fallback@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" - integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== dependencies: "@types/express-serve-static-core" "*" "@types/node" "*" "@types/connect@*": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== dependencies: "@types/node" "*" @@ -2021,54 +1990,50 @@ integrity sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow== "@types/debug@^4.0.0": - version "4.1.7" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" - integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== dependencies: "@types/ms" "*" "@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "8.4.10" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.10.tgz#19731b9685c19ed1552da7052b6f668ed7eb64bb" - integrity sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw== + version "8.44.7" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.7.tgz#430b3cc96db70c81f405e6a08aebdb13869198f5" + integrity sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== - -"@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.31": - version "4.17.32" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz#93dda387f5516af616d8d3f05f2c4c79d81e1b82" - integrity sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA== +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": + version "4.17.41" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz#5077defa630c2e8d28aa9ffc2c01c157c305bef6" + integrity sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" + "@types/send" "*" "@types/express@*", "@types/express@^4.17.13": - version "4.17.15" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.15.tgz#9290e983ec8b054b65a5abccb610411953d417ff" - integrity sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ== + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== dependencies: "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.31" + "@types/express-serve-static-core" "^4.17.33" "@types/qs" "*" "@types/serve-static" "*" @@ -2078,18 +2043,18 @@ integrity sha512-cjrHhi6R62rFtfqSopPoUEvnidhMngXBaDs6adrVIkY92o3bjWIIQ2InV0vaD262N/GurDrzJS2ih4TgY9gGAQ== "@types/graceful-fs@^4.1.3": - version "4.1.6" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" - integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== dependencies: "@types/node" "*" "@types/hast@^2.0.0": - version "2.3.4" - resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc" - integrity sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g== + version "2.3.8" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.8.tgz#4ac5caf38b262b7bd5ca3202dda71f0271635660" + integrity sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ== dependencies: - "@types/unist" "*" + "@types/unist" "^2" "@types/history@^4.7.11": version "4.7.11" @@ -2097,9 +2062,9 @@ integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA== "@types/hoist-non-react-statics@^3.0.1", "@types/hoist-non-react-statics@^3.3.0", "@types/hoist-non-react-statics@^3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" - integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== + version "3.3.5" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz#dab7867ef789d87e2b4b0003c9d65c49cc44a494" + integrity sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg== dependencies: "@types/react" "*" hoist-non-react-statics "^3.3.0" @@ -2109,22 +2074,27 @@ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== +"@types/http-errors@*": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + "@types/http-proxy@^1.17.8": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.9.tgz#7f0e7931343761efde1e2bf48c40f02f3f75705a" - integrity sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw== + version "1.17.14" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec" + integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== dependencies: "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== "@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== dependencies: "@types/istanbul-lib-coverage" "*" @@ -2137,9 +2107,9 @@ "@types/istanbul-lib-report" "*" "@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== dependencies: "@types/istanbul-lib-report" "*" @@ -2153,14 +2123,14 @@ parse5 "^7.0.0" "@types/json-logic-js@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/json-logic-js/-/json-logic-js-2.0.2.tgz#f22ae63b1ff529db77368e78dab196730a2f1527" - integrity sha512-kM5tSI/HWDqlxpYTgISwaU93OdQ+fWzYliYOAn3QaVSCT1S6l0nm8jK2RZXRlD+Sx8s6RYhovZSxookkw6Wk7w== + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/json-logic-js/-/json-logic-js-2.0.6.tgz#ceb090bcaf7ec4d5c7c4c3b5225cf53733e76624" + integrity sha512-X8f94UmgbRE9kRs83J/Jf+fndEVbBGuZLIeLHBOKYGxAX2g8dMAV41RqwkvoMdybRZ3vZoHEdnMnF8VPiP0OOA== -"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== +"@types/json-schema@*", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/json5@^0.0.29": version "0.0.29" @@ -2168,9 +2138,9 @@ integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/lodash@^4.14.172", "@types/lodash@^4.14.191": - version "4.14.191" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" - integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== + version "4.14.202" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.202.tgz#f09dbd2fb082d507178b2f2a5c7e74bd72ff98f8" + integrity sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ== "@types/long@^4.0.1": version "4.0.2" @@ -2185,46 +2155,62 @@ lru-cache "*" "@types/mdast@^3.0.0": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" - integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== + version "3.0.15" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.15.tgz#49c524a263f30ffa28b71ae282f813ed000ab9f5" + integrity sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ== dependencies: - "@types/unist" "*" + "@types/unist" "^2" "@types/mime@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" - integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45" + integrity sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw== + +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== "@types/minimist@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== "@types/mousetrap@^1.6.5": - version "1.6.11" - resolved "https://registry.yarnpkg.com/@types/mousetrap/-/mousetrap-1.6.11.tgz#ef9620160fdcefcb85bccda8aaa3e84d7429376d" - integrity sha512-F0oAily9Q9QQpv9JKxKn0zMKfOo36KHCW7myYsmUyf2t0g+sBTbG3UleTPoguHdE1z3GLFr3p7/wiOio52QFjQ== + version "1.6.15" + resolved "https://registry.yarnpkg.com/@types/mousetrap/-/mousetrap-1.6.15.tgz#f144a0c539a4cef553a631824651d48267e53c86" + integrity sha512-qL0hyIMNPow317QWW/63RvL1x5MVMV+Ru3NaY9f/CuEpCqrmb7WeuK2071ZY5hczOnm38qExWM2i2WtkXLSqFw== "@types/ms@*": - version "0.7.31" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" - integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + version "0.7.34" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" + integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== + +"@types/node-forge@^1.3.0": + version "1.3.10" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.10.tgz#62a19d4f75a8b03290578c2b04f294b1a5a71b07" + integrity sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw== + dependencies: + "@types/node" "*" -"@types/node@*", "@types/node@^18.0.3": - version "18.11.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" - integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== +"@types/node@*", "@types/node@>=13.7.0": + version "20.10.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.0.tgz#16ddf9c0a72b832ec4fcce35b8249cf149214617" + integrity sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ== + dependencies: + undici-types "~5.26.4" -"@types/node@>=13.7.0": - version "18.15.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" - integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== +"@types/node@^18.0.3": + version "18.18.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.13.tgz#ae0f76c0bfe79d8fad0f910b78ae3e59b333c6e8" + integrity sha512-vXYZGRrSCreZmq1rEjMRLXJhiy8MrIeVasx+PCVlP414N7CJLHnMf+juVvjdprHyH+XRy3zKZLHeNueOpJCn0g== + dependencies: + undici-types "~5.26.4" "@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== "@types/parse5@^6.0.0": version "6.0.3" @@ -2232,71 +2218,71 @@ integrity sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g== "@types/platform@^1.3.4": - version "1.3.4" - resolved "https://registry.yarnpkg.com/@types/platform/-/platform-1.3.4.tgz#0d3a4254863afaa89d6f02d73c2806271d13415d" - integrity sha512-U0o4K+GNiK0PNxoDwd8xRnvLVe4kzei6opn3/FCjAriqaP+rfrDdSl1kP/hLL6Y3/Y3hhGnBwD4dCkkAqs1W/Q== + version "1.3.6" + resolved "https://registry.yarnpkg.com/@types/platform/-/platform-1.3.6.tgz#23ec79503857be56a9de213c763257876a710730" + integrity sha512-ZmSaqHuvzv+jC232cFoz2QqPUkaj6EvMmCrWcx3WRr7xTPVFCMUOTcOq8m2d+Zw1iKRc1kDiaA+jtNrV0hkVew== "@types/polylabel@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/polylabel/-/polylabel-1.0.5.tgz#9262f269de36f1e9248aeb9dee0ee9d10065e043" - integrity sha512-gnaNmo1OJiYNBFAZMZdqLZ3hKx2ee4ksAzqhKWBxuQ61PmhINHMcvIqsGmyCD1WFKCkwRt9NFhMSmKE6AgYY+w== + version "1.1.3" + resolved "https://registry.yarnpkg.com/@types/polylabel/-/polylabel-1.1.3.tgz#15aba4277b03ac0ab60a0dea75a13bde45dcfc01" + integrity sha512-9Zw2KoDpi+T4PZz2G6pO2xArE0m/GSMTW1MIxF2s8ZY8x9XDO6fv9um0ydRGvcbkFLlaq8yNK6eZxnmMZtDgWQ== -"@types/prettier@2.4.1", "@types/prettier@^2.1.5": +"@types/prettier@2.4.1": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.1.tgz#e1303048d5389563e130f5bdd89d37a99acb75eb" integrity sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw== "@types/prismjs@^1.0.0": - version "1.26.0" - resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.0.tgz#a1c3809b0ad61c62cac6d4e0c56d610c910b7654" - integrity sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ== + version "1.26.3" + resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.3.tgz#47fe8e784c2dee24fe636cab82e090d3da9b7dec" + integrity sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw== "@types/prop-types@*", "@types/prop-types@^15.0.0": - version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + version "15.7.11" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.11.tgz#2596fb352ee96a1379c657734d4b913a613ad563" + integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== "@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== + version "1.5.8" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.8.tgz#95f6c6a08f2ad868ba230ead1d2d7f7be3db3837" + integrity sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw== "@types/qs@*": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + version "6.9.10" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.10.tgz#0af26845b5067e1c9a622658a51f60a3934d51e8" + integrity sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw== "@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== "@types/react-color@^3.0.5": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/react-color/-/react-color-3.0.6.tgz#602fed023802b2424e7cd6ff3594ccd3d5055f9a" - integrity sha512-OzPIO5AyRmLA7PlOyISlgabpYUa3En74LP8mTMa0veCA719SvYQov4WLMsHvCgXP+L+KI9yGhYnqZafVGG0P4w== + version "3.0.10" + resolved "https://registry.yarnpkg.com/@types/react-color/-/react-color-3.0.10.tgz#f869ab3a46938fb97a5c2ee568bc6469f82b14dd" + integrity sha512-6K5BAn3zyd8lW8UbckIAVeXGxR82Za9jyGD2DBEynsa7fKaguLDVtjfypzs7fgEV7bULgs7uhds8A8v1wABTvQ== dependencies: "@types/react" "*" "@types/reactcss" "*" "@types/react-dom@^16.9.14", "@types/react-dom@^18.0.5": - version "18.2.15" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.15.tgz#921af67f9ee023ac37ea84b1bc0cc40b898ea522" - integrity sha512-HWMdW+7r7MR5+PZqJF6YFNSCtjz1T0dsvo/f1BV6HkV+6erD/nA7wd9NM00KVG83zf2nJ7uATPO9ttdIPvi3gg== + version "18.2.17" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.17.tgz#375c55fab4ae671bd98448dcfa153268d01d6f64" + integrity sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg== dependencies: "@types/react" "*" "@types/react-grid-layout@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/react-grid-layout/-/react-grid-layout-1.3.2.tgz#9f195666a018a5ae2b773887e3b552cb4378d67f" - integrity sha512-ZzpBEOC1JTQ7MGe1h1cPKSLP4jSWuxc+yvT4TsAlEW9+EFPzAf8nxQfFd7ea9gL17Em7PbwJZAsiwfQQBUklZQ== + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/react-grid-layout/-/react-grid-layout-1.3.5.tgz#f4b52bf27775290ee0523214be0987be14e66823" + integrity sha512-WH/po1gcEcoR6y857yAnPGug+ZhkF4PaTUxgAbwfeSH/QOgVSakKHBXoPGad/sEznmkiaK3pqHk+etdWisoeBQ== dependencies: "@types/react" "*" "@types/react-redux@^7.1.18", "@types/react-redux@^7.1.20", "@types/react-redux@^7.1.24": - version "7.1.30" - resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.30.tgz#4f9731cc987eb6285fe2b472231fb42120efc22c" - integrity sha512-i2kqM6YaUwFKduamV6QM/uHbb0eCP8f8ZQ/0yWf+BsAVVsZPRYJ9eeGWZ3uxLfWwwA0SrPRMTPTqsPFkY3HZdA== + version "7.1.31" + resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.31.tgz#ff914f80401488bb31d064b1d84ae525dad41b23" + integrity sha512-merF9AH72krBUekQY6uObXnMsEo1xTeZy9NONNRnqSwvwVe3HtLeRvNIPaKmPDIOWPsSFE51rc2WGpPMqmuCWg== dependencies: "@types/hoist-non-react-statics" "^3.3.0" "@types/react" "*" @@ -2321,32 +2307,32 @@ "@types/react" "*" "@types/react@*", "@types/react@^16.14.15", "@types/react@^17.0.30": - version "17.0.70" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.70.tgz#35301a9cb94ba1a65dc306b7ce169a2c4fda1986" - integrity sha512-yqYMK49/cnqw+T8R9/C+RNjRddYmPDGI5lKHi3bOYceQCBAh8X2ngSbZP0gnVeyvHr0T7wEgIIGKT1usNol08w== + version "17.0.71" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.71.tgz#3673d446ad482b1564e44bf853b3ab5bcbc942c4" + integrity sha512-lfqOu9mp16nmaGRrS8deS2Taqhd5Ih0o92Te5Ws6I1py4ytHBcXLqh0YIqVsViqwVI5f+haiFM6hju814BzcmA== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" csstype "^3.0.2" "@types/reactcss@*": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@types/reactcss/-/reactcss-1.2.6.tgz#133c1e7e896f2726370d1d5a26bf06a30a038bcc" - integrity sha512-qaIzpCuXNWomGR1Xq8SCFTtF4v8V27Y6f+b9+bzHiv087MylI/nTCqqdChNeWS7tslgROmYB7yeiruWX7WnqNg== + version "1.2.10" + resolved "https://registry.yarnpkg.com/@types/reactcss/-/reactcss-1.2.10.tgz#89feb81e913ccf68ff599dbabcc823e1b49c4f7c" + integrity sha512-gf5qJ1wOYP8N5q9H8/5c3QZHQzu8ltPClhM0vEWuBu9SGg4KSzgpJd2TShEsQDwsYn+mtnJ1xHUdJyzj/r9WrA== dependencies: "@types/react" "*" "@types/redux-logger@^3.0.9": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@types/redux-logger/-/redux-logger-3.0.9.tgz#9193b3d51bb6ab98d25514ba7764e4f98a64d3ec" - integrity sha512-cwYhVbYNgH01aepeMwhd0ABX6fhVB2rcQ9m80u8Fl50ZODhsZ8RhQArnLTkE7/Zrfq4Sz/taNoF7DQy9pCZSKg== + version "3.0.12" + resolved "https://registry.yarnpkg.com/@types/redux-logger/-/redux-logger-3.0.12.tgz#d60a2c6904ae3c8b36f6c5d5012fb74e15cb15b4" + integrity sha512-5vAlwokZi/Unb1eGoZfVVzIBTPNDflwXiDzPLT1SynP6hdJfsOEf+w6ZOySOyboLWciCRYeE5DGYUnwVCq+Uyg== dependencies: redux "^4.0.0" "@types/resize-observer-browser@^0.1.6": - version "0.1.7" - resolved "https://registry.yarnpkg.com/@types/resize-observer-browser/-/resize-observer-browser-0.1.7.tgz#294aaadf24ac6580b8fbd1fe3ab7b59fe85f9ef3" - integrity sha512-G9eN0Sn0ii9PWQ3Vl72jDPgeJwRWhv2Qk/nQkJuWmRmOB4HX3/BhD5SE1dZs/hzPZL/WKnvF0RHdTSG54QJFyg== + version "0.1.11" + resolved "https://registry.yarnpkg.com/@types/resize-observer-browser/-/resize-observer-browser-0.1.11.tgz#d3c98d788489d8376b7beac23863b1eebdd3c13c" + integrity sha512-cNw5iH8JkMkb3QkCoe7DaZiawbDQEUX8t7iuQaRTyLOyQCR2h+ibBD4GJt7p5yhUHrlOeL7ZtbxNHeipqNsBzQ== "@types/retry@0.12.0": version "0.12.0" @@ -2354,46 +2340,55 @@ integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== "@types/scheduler@*": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" - integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + version "0.16.8" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" + integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== -"@types/semver@^7.3.12": - version "7.3.13" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" - integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== +"@types/semver@^7.3.12", "@types/semver@^7.5.0": + version "7.5.6" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" + integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== + +"@types/send@*": + version "0.17.4" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + dependencies: + "@types/mime" "^1" + "@types/node" "*" "@types/serve-index@^1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" - integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== + version "1.9.4" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== dependencies: "@types/express" "*" "@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.0" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" - integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== + version "1.15.5" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.5.tgz#15e67500ec40789a1e8c9defc2d32a896f05b033" + integrity sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ== dependencies: + "@types/http-errors" "*" "@types/mime" "*" "@types/node" "*" "@types/sockjs@^0.3.33": - version "0.3.33" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" - integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== + version "0.3.36" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== dependencies: "@types/node" "*" "@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== "@types/stats.js@*": - version "0.17.0" - resolved "https://registry.yarnpkg.com/@types/stats.js/-/stats.js-0.17.0.tgz#0ed81d48e03b590c24da85540c1d952077a9fe20" - integrity sha512-9w+a7bR8PeB0dCT/HBULU2fMqf6BAzvKbxFboYhmDtDkKPiyXYbjoe2auwsXlEFI7CFNMF1dCv3dFH5Poy9R1w== + version "0.17.3" + resolved "https://registry.yarnpkg.com/@types/stats.js/-/stats.js-0.17.3.tgz#705446e12ce0fad618557dd88236f51148b7a935" + integrity sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ== "@types/three@^0.156.0": version "0.156.0" @@ -2406,14 +2401,14 @@ meshoptimizer "~0.18.1" "@types/tough-cookie@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" - integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw== + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" + integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== -"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" - integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== +"@types/unist@^2", "@types/unist@^2.0.0", "@types/unist@^2.0.2": + version "2.0.10" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.10.tgz#04ffa7f406ab628f7f7e97ca23e290cd8ab15efc" + integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA== "@types/use-sync-external-store@^0.0.3": version "0.0.3" @@ -2421,21 +2416,21 @@ integrity sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA== "@types/webxr@*": - version "0.5.4" - resolved "https://registry.yarnpkg.com/@types/webxr/-/webxr-0.5.4.tgz#3d55a6427f9281d456843d754c99bf7804657fe3" - integrity sha512-41gfGLTtqXZhcmoDlLDHqMJDuwAMwhHwXf9Q2job3TUBsvkNfPNI/3IWVEtLH4tyY1ElWtfwIaoNeqeEX238/Q== + version "0.5.10" + resolved "https://registry.yarnpkg.com/@types/webxr/-/webxr-0.5.10.tgz#19c76208ec015ca3f139505e14d94d6b740f518a" + integrity sha512-n3u5sqXQJhf1CS68mw3Wf16FQ4cRPNBBwdYLFzq3UddiADOim1Pn3Y6PBdDilz1vOJF3ybLxJ8ZEDlLIzrOQZg== -"@types/ws@^8.5.1": - version "8.5.4" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" - integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== +"@types/ws@^8.5.5": + version "8.5.10" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" + integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== dependencies: "@types/node" "*" "@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^13.0.0": version "13.0.12" @@ -2445,148 +2440,154 @@ "@types/yargs-parser" "*" "@types/yargs@^17.0.8": - version "17.0.19" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.19.tgz#8dbecdc9ab48bee0cb74f6e3327de3fa0d0c98ae" - integrity sha512-cAx3qamwaYX9R0fzOIZAlFpo4A+1uBVCxqpKz9D26uTF4srRXaGTTsikQmaotCtNdbhzyUH7ft6p9ktz9s6UNQ== + version "17.0.32" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.30.5": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz#112e6ae1e23a1dc8333ce82bb9c65c2608b4d8a3" - integrity sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg== +"@typescript-eslint/eslint-plugin@^6.13.1": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.1.tgz#f98bd887bf95551203c917e734d113bf8d527a0c" + integrity sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA== dependencies: - "@typescript-eslint/scope-manager" "5.48.2" - "@typescript-eslint/type-utils" "5.48.2" - "@typescript-eslint/utils" "5.48.2" + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.13.1" + "@typescript-eslint/type-utils" "6.13.1" + "@typescript-eslint/utils" "6.13.1" + "@typescript-eslint/visitor-keys" "6.13.1" debug "^4.3.4" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - regexpp "^3.2.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@^4.4.1": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" - integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== - dependencies: - "@typescript-eslint/scope-manager" "4.33.0" - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/typescript-estree" "4.33.0" - debug "^4.3.1" - -"@typescript-eslint/parser@^5.30.5": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.2.tgz#c9edef2a0922d26a37dba03be20c5fff378313b3" - integrity sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw== - dependencies: - "@typescript-eslint/scope-manager" "5.48.2" - "@typescript-eslint/types" "5.48.2" - "@typescript-eslint/typescript-estree" "5.48.2" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/parser@^6.13.1": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.13.1.tgz#29d6d4e5fab4669e58bc15f6904b67da65567487" + integrity sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ== + dependencies: + "@typescript-eslint/scope-manager" "6.13.1" + "@typescript-eslint/types" "6.13.1" + "@typescript-eslint/typescript-estree" "6.13.1" + "@typescript-eslint/visitor-keys" "6.13.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" - integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== +"@typescript-eslint/scope-manager@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" + integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/scope-manager@5.48.2": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz#bb7676cb78f1e94921eaab637a4b5d596f838abc" - integrity sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw== +"@typescript-eslint/scope-manager@6.13.1": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.13.1.tgz#58c7c37c6a957d3d9f59bc4f64c2888e0cac1d70" + integrity sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ== dependencies: - "@typescript-eslint/types" "5.48.2" - "@typescript-eslint/visitor-keys" "5.48.2" + "@typescript-eslint/types" "6.13.1" + "@typescript-eslint/visitor-keys" "6.13.1" -"@typescript-eslint/type-utils@5.48.2": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz#7d3aeca9fa37a7ab7e3d9056a99b42f342c48ad7" - integrity sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew== +"@typescript-eslint/type-utils@6.13.1": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.13.1.tgz#e6e5885e387841cae9c38fc0638fd8b7561973d6" + integrity sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ== dependencies: - "@typescript-eslint/typescript-estree" "5.48.2" - "@typescript-eslint/utils" "5.48.2" + "@typescript-eslint/typescript-estree" "6.13.1" + "@typescript-eslint/utils" "6.13.1" debug "^4.3.4" - tsutils "^3.21.0" + ts-api-utils "^1.0.1" -"@typescript-eslint/types@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" - integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== - -"@typescript-eslint/types@5.48.2": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.2.tgz#635706abb1ec164137f92148f06f794438c97b8e" - integrity sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA== - -"@typescript-eslint/typescript-estree@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" - integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== - dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" - semver "^7.3.5" - tsutils "^3.21.0" +"@typescript-eslint/types@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" + integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== -"@typescript-eslint/typescript-estree@5.48.2": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz#6e206b462942b32383582a6c9251c05021cc21b0" - integrity sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg== +"@typescript-eslint/types@6.13.1": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.13.1.tgz#b56f26130e7eb8fa1e429c75fb969cae6ad7bb5c" + integrity sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg== + +"@typescript-eslint/typescript-estree@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" + integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== dependencies: - "@typescript-eslint/types" "5.48.2" - "@typescript-eslint/visitor-keys" "5.48.2" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.48.2", "@typescript-eslint/utils@^5.10.0": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.2.tgz#3777a91dcb22b8499a25519e06eef2e9569295a3" - integrity sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow== +"@typescript-eslint/typescript-estree@6.13.1": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.1.tgz#d01dda78d2487434d1c503853fa00291c566efa4" + integrity sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ== dependencies: + "@typescript-eslint/types" "6.13.1" + "@typescript-eslint/visitor-keys" "6.13.1" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/utils@6.13.1": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.13.1.tgz#925b3a2453a71ada914ae329b7bb7e7d96634b2f" + integrity sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.13.1" + "@typescript-eslint/types" "6.13.1" + "@typescript-eslint/typescript-estree" "6.13.1" + semver "^7.5.4" + +"@typescript-eslint/utils@^5.10.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" + integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.48.2" - "@typescript-eslint/types" "5.48.2" - "@typescript-eslint/typescript-estree" "5.48.2" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" eslint-scope "^5.1.1" - eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" - integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== +"@typescript-eslint/visitor-keys@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" + integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== dependencies: - "@typescript-eslint/types" "4.33.0" - eslint-visitor-keys "^2.0.0" + "@typescript-eslint/types" "5.62.0" + eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@5.48.2": - version "5.48.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz#c247582a0bcce467461d7b696513bf9455000060" - integrity sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ== +"@typescript-eslint/visitor-keys@6.13.1": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.1.tgz#c4b692dcc23a4fc60685b718f10fde789d65a540" + integrity sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ== dependencies: - "@typescript-eslint/types" "5.48.2" - eslint-visitor-keys "^3.3.0" + "@typescript-eslint/types" "6.13.1" + eslint-visitor-keys "^3.4.1" "@uiw/copy-to-clipboard@~1.0.12": - version "1.0.14" - resolved "https://registry.yarnpkg.com/@uiw/copy-to-clipboard/-/copy-to-clipboard-1.0.14.tgz#54fb8e7f43962fb57c48bb49631bac974a3e9e0b" - integrity sha512-6szYjEU4xMkIqi4LPJLQIHBBBxazNxH0/slF1Ph4xtDtyeiJkIiNgr/PQxJX/REyWWLWllWTiCN491tnLWCOdA== + version "1.0.16" + resolved "https://registry.yarnpkg.com/@uiw/copy-to-clipboard/-/copy-to-clipboard-1.0.16.tgz#38f7689be319b1f35dbf24254ec8eaec7158dcff" + integrity sha512-IXR+N363nLTR3ilklmM+B0nk774jVE/muOrBYt4Rdww/Pf3uP9XHyv2x6YZrbDh29F7w9BkzQyB8QF6WDShmJA== -"@uiw/react-markdown-preview@^4.1.5": - version "4.1.13" - resolved "https://registry.yarnpkg.com/@uiw/react-markdown-preview/-/react-markdown-preview-4.1.13.tgz#4882dda5d767b54aae9455e3159339c6989b36df" - integrity sha512-fmIGvBpK6HJyDFf7EokjZSIS0713Bq5KwhOsZ8IkbCMYDcDThFlmMkTTqyzGjL3phrkP9ED5O63WSILzefqe6A== +"@uiw/react-markdown-preview@^4.2.1": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@uiw/react-markdown-preview/-/react-markdown-preview-4.2.2.tgz#5ea697ff91c875caf70e9b81fb428d72380fdd2c" + integrity sha512-Jy3GtAqcF2pKgvFtgLUEwR8u2t0Yk/DAnLTl6cf1RzhNYcAxm1auDs3KndZRBDP01xhmYLX4KiOcOg/qv+Jc0A== dependencies: "@babel/runtime" "^7.17.2" "@uiw/copy-to-clipboard" "~1.0.12" @@ -2594,7 +2595,7 @@ rehype-attr "~2.1.0" rehype-autolink-headings "~6.1.1" rehype-ignore "^1.0.1" - rehype-prism-plus "~1.5.0" + rehype-prism-plus "1.6.3" rehype-raw "^6.1.1" rehype-rewrite "~3.0.6" rehype-slug "~5.1.0" @@ -2602,151 +2603,155 @@ unist-util-visit "^4.1.0" "@uiw/react-md-editor@^3.22.0": - version "3.22.0" - resolved "https://registry.yarnpkg.com/@uiw/react-md-editor/-/react-md-editor-3.22.0.tgz#0f9af92dcd65d8a34bc5563045eb2e4697952236" - integrity sha512-7ghrr1piyPaRHH8SyhSYWoLUz6xCPRzMNzNR1ZQKOAcG9W7fua41LobTH+z2ngUEOeZFVZx6YB9JxgHqy2mnAg== + version "3.25.6" + resolved "https://registry.yarnpkg.com/@uiw/react-md-editor/-/react-md-editor-3.25.6.tgz#76af93ab42280cb3f942e6b3f87ee8680ceb8828" + integrity sha512-YuDv5KiM931WFYBDCyk9/HvtLdIWk9DXvzC6d1riaLufvchM7IUHkqTkSl3HqmTod1exSN+5ZsUtKZ+S+GAsug== dependencies: "@babel/runtime" "^7.14.6" - "@uiw/react-markdown-preview" "^4.1.5" + "@uiw/react-markdown-preview" "^4.2.1" rehype "~12.0.1" + rehype-prism-plus "~1.6.1" -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== - -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== - -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== - -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" + integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" + integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== -"@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== +"@webassemblyjs/helper-wasm-section@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" + integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" -"@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== - -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/helper-wasm-section" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-opt" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wast-printer" "1.11.1" - -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - -"@webassemblyjs/wasm-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== - dependencies: - "@webassemblyjs/ast" "1.11.1" +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" + integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" + +"@webassemblyjs/wasm-gen@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" + integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" + integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" + integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" + integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== + dependencies: + "@webassemblyjs/ast" "1.11.6" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" - integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== +"@webpack-cli/configtest@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" + integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== -"@webpack-cli/info@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" - integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== - dependencies: - envinfo "^7.7.3" +"@webpack-cli/info@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" + integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== -"@webpack-cli/serve@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" - integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== +"@webpack-cli/serve@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" + integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -2792,12 +2797,12 @@ acorn-globals@^7.0.0: acorn "^8.1.0" acorn-walk "^8.0.2" -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== -acorn-jsx@^5.3.1: +acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== @@ -2808,24 +2813,19 @@ acorn-walk@^7.1.1: integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== acorn-walk@^8.0.2: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + version "8.3.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.0.tgz#2097665af50fd0cf7a2dfccd2b9368964e66540f" + integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA== -acorn@^7.1.1, acorn@^7.4.0: +acorn@^7.1.1: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.1.0, acorn@^8.8.1: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - -acorn@^8.5.0, acorn@^8.7.1: - version "8.8.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" - integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== +acorn@^8.1.0, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0: + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== agent-base@6: version "6.0.2" @@ -2861,14 +2861,14 @@ ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv-keywords@^5.0.0: +ajv-keywords@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== dependencies: fast-deep-equal "^3.1.3" -ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2878,7 +2878,7 @@ ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.0.1, ajv@^8.8.0: +ajv@^8.0.0, ajv@^8.0.1, ajv@^8.9.0: version "8.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -2888,18 +2888,20 @@ ajv@^8.0.0, ajv@^8.0.1, ajv@^8.8.0: require-from-string "^2.0.2" uri-js "^4.2.2" -ansi-colors@^4.1.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: +ansi-escapes@^4.2.1: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" +ansi-escapes@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz#b6a0caf0eef0c41af190e9a749e0c00ec04bb2a6" + integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== + dependencies: + type-fest "^1.0.2" + ansi-html-community@^0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" @@ -2944,7 +2946,7 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-styles@^6.0.0: +ansi-styles@^6.0.0, ansi-styles@^6.1.0: version "6.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== @@ -3042,12 +3044,20 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -aria-query@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" - integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== +aria-query@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== dependencies: - deep-equal "^2.0.5" + call-bind "^1.0.2" + is-array-buffer "^3.0.1" array-flatten@1.1.1: version "1.1.1" @@ -3059,15 +3069,15 @@ array-flatten@^2.1.2: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.1.5, array-includes@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" - integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== +array-includes@^3.1.6, array-includes@^3.1.7: + version "3.1.7" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" is-string "^1.0.7" array-tree-filter@^2.1.0: @@ -3080,57 +3090,81 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.flat@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" - integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== +array.prototype.findlastindex@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" + integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" + get-intrinsic "^1.2.1" -array.prototype.flatmap@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" - integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== +array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.reduce@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" - integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q== +array.prototype.flatmap@^1.3.1, array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.reduce@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz#63149931808c5fc1e1354814923d92d45f7d96d5" + integrity sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-array-method-boxes-properly "^1.0.0" is-string "^1.0.7" array.prototype.tosorted@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" - integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz#620eff7442503d66c799d95503f82b475745cefd" + integrity sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.2.1" + +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== dependencies: + array-buffer-byte-length "^1.0.0" call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== -ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== +ast-types-flow@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" + integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== astral-regex@^2.0.0: version "2.0.0" @@ -3149,19 +3183,26 @@ async-validator@^4.0.2: resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-4.2.5.tgz#c96ea3332a521699d0afaaceed510a54656c6339" integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== +asynciterator.prototype@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62" + integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg== + dependencies: + has-symbols "^1.0.3" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -autoprefixer@^10.4.14: - version "10.4.14" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" - integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== +autoprefixer@^10.4.16: + version "10.4.16" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" + integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ== dependencies: - browserslist "^4.21.5" - caniuse-lite "^1.0.30001464" - fraction.js "^4.2.0" + browserslist "^4.21.10" + caniuse-lite "^1.0.30001538" + fraction.js "^4.3.6" normalize-range "^0.1.2" picocolors "^1.0.0" postcss-value-parser "^4.2.0" @@ -3171,48 +3212,36 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -axe-core@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.2.tgz#6e566ab2a3d29e415f5115bc0fd2597a5eb3e5e3" - integrity sha512-b1WlTV8+XKLj9gZy2DZXgQiyDp9xkkoe2a6U6UbYccScq2wgH/YwCeI2/Jq2mgo0HzQxqJOjWZBLeA/mqsk5Mg== +axe-core@=4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.0.tgz#34ba5a48a8b564f67e103f0aa5768d76e15bbbbf" + integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== axios@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.0.tgz#f1e5292f26b2fd5c2e66876adc5b06cdbd7d2102" - integrity sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg== + version "1.6.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" + integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" proxy-from-env "^1.1.0" -axobject-query@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" - integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== +axobject-query@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" + integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== dependencies: - deep-equal "^2.0.5" + dequal "^2.0.3" -babel-eslint@^10.0.1: - version "10.1.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" - integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== +babel-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - eslint-visitor-keys "^1.0.0" - resolve "^1.12.0" - -babel-jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" - integrity sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q== - dependencies: - "@jest/transform" "^29.5.0" + "@jest/transform" "^29.7.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.5.0" + babel-preset-jest "^29.6.3" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -3228,9 +3257,9 @@ babel-loader@^8.0.6: schema-utils "^2.6.5" babel-plugin-import@^1.12.2: - version "1.13.6" - resolved "https://registry.yarnpkg.com/babel-plugin-import/-/babel-plugin-import-1.13.6.tgz#4ff2aa3b9759e6a4458ce59890da3684fe3dda9d" - integrity sha512-N7FYnGh0DFsvDRkAPsvFq/metVfVD7P2h1rokOPpEH4cZbdRHCW+2jbXt0nnuqowkm/xhh2ww1anIdEpfYa7ZA== + version "1.13.8" + resolved "https://registry.yarnpkg.com/babel-plugin-import/-/babel-plugin-import-1.13.8.tgz#782c517f6bbf2de3b1f75aaafd6d20a491c4878c" + integrity sha512-36babpjra5m3gca44V6tSTomeBlPA7cHUynrE2WiQIm3rEGD9xy28MKsx5IdO45EbnpJY7Jrgd00C6Dwt/l/2Q== dependencies: "@babel/helper-module-imports" "^7.0.0" @@ -3245,45 +3274,53 @@ babel-plugin-istanbul@^6.0.0, babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a" - integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w== +babel-plugin-jest-hoist@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" + integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" -babel-plugin-polyfill-corejs2@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" - integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== +babel-plugin-polyfill-corejs2@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz#b2df0251d8e99f229a8e60fc4efa9a68b41c8313" + integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.3" - semver "^6.1.1" + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.4.3" + semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" - integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== +babel-plugin-polyfill-corejs3@^0.8.5: + version "0.8.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz#25c2d20002da91fe328ff89095c85a391d6856cf" + integrity sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - core-js-compat "^3.25.1" + "@babel/helper-define-polyfill-provider" "^0.4.3" + core-js-compat "^3.33.1" -babel-plugin-polyfill-regenerator@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" - integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== +babel-plugin-polyfill-regenerator@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz#d4c49e4b44614607c13fb769bcd85c72bb26a4a5" + integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" + "@babel/helper-define-polyfill-provider" "^0.4.3" babel-plugin-react-svg@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/babel-plugin-react-svg/-/babel-plugin-react-svg-3.0.3.tgz#7da46a0bd8319f49ac85523d259f145ce5d78321" integrity sha512-Pst1RWjUIiV0Ykv1ODSeceCBsFOP2Y4dusjq7/XkjuzJdvS9CjpkPMUIoO4MLlvp5PiLCeMlsOC7faEUA0gm3Q== +babel-plugin-transform-import-meta@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-import-meta/-/babel-plugin-transform-import-meta-2.2.1.tgz#eb5b79019ff0a9157b94d8280955121189a2964b" + integrity sha512-AxNh27Pcg8Kt112RGa3Vod2QS2YXKKJ6+nSvRtv7qQTJAdx0MZa4UHZ4lnxHUWA2MNbLuZQv5FVab4P1CoLOWw== + dependencies: + "@babel/template" "^7.4.4" + tslib "^2.4.0" + babel-preset-current-node-syntax@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" @@ -3302,12 +3339,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" - integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg== +babel-preset-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" + integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== dependencies: - babel-plugin-jest-hoist "^29.5.0" + babel-plugin-jest-hoist "^29.6.3" babel-preset-current-node-syntax "^1.0.0" bail@^1.0.0: @@ -3369,9 +3406,9 @@ body-parser@1.20.1: unpipe "1.0.0" bonjour-service@^1.0.11: - version "1.1.0" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.0.tgz#424170268d68af26ff83a5c640b95def01803a13" - integrity sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q== + version "1.1.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.1.tgz#960948fa0e0153f5d26743ab15baf8e33752c135" + integrity sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg== dependencies: array-flatten "^2.1.2" dns-equal "^1.0.0" @@ -3403,32 +3440,15 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.4: - version "4.21.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== - dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" - -browserslist@^4.21.5, browserslist@^4.21.9: - version "4.21.9" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" - integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== - dependencies: - caniuse-lite "^1.0.30001503" - electron-to-chromium "^1.4.431" - node-releases "^2.0.12" - update-browserslist-db "^1.0.11" - -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== +browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.9, browserslist@^4.22.1: + version "4.22.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" + integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== dependencies: - fast-json-stable-stringify "2.x" + caniuse-lite "^1.0.30001541" + electron-to-chromium "^1.4.535" + node-releases "^2.0.13" + update-browserslist-db "^1.0.13" bser@2.1.1: version "2.1.1" @@ -3482,13 +3502,14 @@ caching-transform@^4.0.0: package-hash "^4.0.0" write-file-atomic "^3.0.0" -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" callsites@^3.0.0: version "3.1.0" @@ -3524,24 +3545,19 @@ camelcase@^6.2.0, camelcase@^6.3.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== camera-controls@^1.25.3: - version "1.37.5" - resolved "https://registry.yarnpkg.com/camera-controls/-/camera-controls-1.37.5.tgz#e5499840ee0beebf5c61dab03ed6386a11c8708e" - integrity sha512-QpSJnPkNyfMchXP589laVcc/STHTWpDo546MGRJk5eFoBXAa5sWkTXGGdTvZ+WqfXZDVKaRiDUv1dFBES2dxiw== - -caniuse-lite@^1.0.30001400: - version "1.0.30001445" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001445.tgz#cf2d4eb93f2bcdf0310de9dd6d18be271bc0b447" - integrity sha512-8sdQIdMztYmzfTMO6KfLny878Ln9c2M0fc7EH60IjlP4Dc4PiCy7K2Vl3ITmWgOyPgVQKa5x+UP/KqFsxj4mBg== + version "1.38.2" + resolved "https://registry.yarnpkg.com/camera-controls/-/camera-controls-1.38.2.tgz#3289013e6de05cee51dc98af87d3fc7c1a7df585" + integrity sha512-EfzbovxLssyWpJVG9uKcazSDDIEcd1hUsPhPF/OWWnICsKY9WbLY/2S4UPW73HHbvnVeR/Z9wsWaQKtANy/2Yg== -caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001503: - version "1.0.30001517" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz#90fabae294215c3495807eb24fc809e11dc2f0a8" - integrity sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA== +caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001541: + version "1.0.30001565" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001565.tgz#a528b253c8a2d95d2b415e11d8b9942acc100c4f" + integrity sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w== canvas@^2.8.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/canvas/-/canvas-2.11.0.tgz#7f0c3e9ae94cf469269b5d3a7963a7f3a9936434" - integrity sha512-bdTjFexjKJEwtIo0oRx8eD4G2yWoUOXP9lj279jmQ2zMnTQhT8C3512OKz3s+ZOaQlLbE7TuVvRDYDB3Llyy5g== + version "2.11.2" + resolved "https://registry.yarnpkg.com/canvas/-/canvas-2.11.2.tgz#553d87b1e0228c7ac0fc72887c3adbac4abbd860" + integrity sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw== dependencies: "@mapbox/node-pre-gyp" "^1.0.0" nan "^2.17.0" @@ -3557,7 +3573,12 @@ ccount@^2.0.0: resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: +chalk@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -3623,9 +3644,9 @@ character-reference-invalid@^2.0.0: integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== chart.js@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.3.0.tgz#ac363030ab3fec572850d2d872956f32a46326a1" - integrity sha512-ynG0E79xGfMaV2xAHdbhwiPLczxnNNnasrmPEXriXsPJGjmhOBYzFVEsB65w2qMDz+CaBJJuJD0inE/ab/h36g== + version "4.4.0" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.4.0.tgz#df843fdd9ec6bd88d7f07e2b95348d221bd2698c" + integrity sha512-vQEj6d+z0dcsKLlQvbKIMYFHd3t8W/7L2vfJIbYcfyPcRx92CsHqECpueN8qVGNlKyDcr5wBrYAYKnfu/9Q1hQ== dependencies: "@kurkle/color" "^0.3.0" @@ -3665,14 +3686,14 @@ chrome-trace-event@^1.0.2: integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== ci-info@^3.2.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.1.tgz#708a6cdae38915d597afdf3b145f2f8e1ff55f3f" - integrity sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w== + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + version "1.2.3" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" + integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== classnames@2.x, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1, classnames@^2.3.2: version "2.3.2" @@ -3680,9 +3701,9 @@ classnames@2.x, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.5, classna integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== clean-css@^5.2.2: - version "5.3.1" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.1.tgz#d0610b0b90d125196a2894d35366f734e5d7aa32" - integrity sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg== + version "5.3.2" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" + integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== dependencies: source-map "~0.6.0" @@ -3691,20 +3712,12 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" + restore-cursor "^4.0.0" cli-truncate@^3.1.0: version "3.1.0" @@ -3758,6 +3771,11 @@ clsx@^1.1.1: resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== +clsx@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b" + integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q== + co@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78" @@ -3783,9 +3801,9 @@ collapse-white-space@^1.0.4: integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + version "1.0.2" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== color-convert@^1.9.0: version "1.9.3" @@ -3821,10 +3839,10 @@ colord@^2.9.3: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== -colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.19: - version "2.0.19" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" - integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== +colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== combine-errors@^3.0.3: version "3.0.3" @@ -3846,6 +3864,16 @@ comma-separated-tokens@^2.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== +commander@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.0.0.tgz#43e19c25dbedc8256203538e8d7e9346877a6f67" + integrity sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ== + +commander@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -3856,21 +3884,11 @@ commander@^4.0.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -commander@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - commander@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== -commander@^9.4.1: - version "9.5.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" - integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== - commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -3939,11 +3957,11 @@ content-disposition@0.5.4: safe-buffer "5.2.1" content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -convert-source-map@^1.1.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== @@ -3987,12 +4005,12 @@ copy-webpack-plugin@^11.0.0: schema-utils "^4.0.0" serialize-javascript "^6.0.0" -core-js-compat@^3.25.1: - version "3.27.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.27.1.tgz#b5695eb25c602d72b1d30cbfba3cb7e5e4cf0a67" - integrity sha512-Dg91JFeCDA17FKnneN7oCMz4BkQ4TcffkgHP4OWwp9yx3pi7ubqMDXXSacfNak1PQqjc95skyt+YBLHQJnkJwA== +core-js-compat@^3.31.0, core-js-compat@^3.33.1: + version "3.33.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.3.tgz#ec678b772c5a2d8a7c60a91c3a81869aa704ae01" + integrity sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow== dependencies: - browserslist "^4.21.4" + browserslist "^4.22.1" core-util-is@~1.0.0: version "1.0.3" @@ -4000,15 +4018,28 @@ core-util-is@~1.0.0: integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cosmiconfig@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" - integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== dependencies: - import-fresh "^3.2.1" + import-fresh "^3.3.0" js-yaml "^4.1.0" - parse-json "^5.0.0" + parse-json "^5.2.0" path-type "^4.0.0" +create-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" + integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-config "^29.7.0" + jest-util "^29.7.0" + prompts "^2.0.1" + cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -4025,10 +4056,10 @@ css-blank-pseudo@^6.0.0: dependencies: postcss-selector-parser "^6.0.13" -css-functions-list@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.2.0.tgz#8290b7d064bf483f48d6559c10e98dc4d1ad19ee" - integrity sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg== +css-functions-list@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.2.1.tgz#2eb205d8ce9f9ce74c5c1d7490b66b77c45ce3ea" + integrity sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ== css-has-pseudo@^6.0.0: version "6.0.0" @@ -4123,10 +4154,10 @@ css-what@^6.0.1: resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== -cssdb@^7.7.0: - version "7.7.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.7.0.tgz#8a62f1c825c019134e7830729f050c29e3eca95e" - integrity sha512-1hN+I3r4VqSNQ+OmMXxYexnumbOONkSil0TWMebVXHtzYW4tRRPovUNHPHj2d4nrgOuYJ8Vs3XwvywsuwwXNNA== +cssdb@^7.9.0: + version "7.9.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.9.0.tgz#d42d8269ff3d3e1c366280ab1f9f6207057b262c" + integrity sha512-WPMT9seTQq6fPAa1yN4zjgZZeoTriSN2LqW9C+otjar12DQIWA4LuSfFrvFJiKp4oD0xIk1vumDLw8K9ur4NBw== cssesc@^3.0.0: version "3.0.0" @@ -4158,9 +4189,9 @@ cssstyle@^2.3.0: cssom "~0.3.6" csstype@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" - integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== custom-error-instance@2.1.1: version "2.1.1" @@ -4168,7 +4199,7 @@ custom-error-instance@2.1.1: integrity sha512-p6JFxJc3M4OTD2li2qaHkDCw9SfMw82Ldr6OC9Je1aXiGfhx2W8p3GaoeaGrPJTUN9NirTM/KTxHWMUdR1rsUg== "cvat-canvas3d@link:./cvat-canvas3d": - version "0.0.9" + version "0.0.10" dependencies: "@types/three" "^0.156.0" camera-controls "^1.25.3" @@ -4176,7 +4207,7 @@ custom-error-instance@2.1.1: three "^0.156.1" "cvat-canvas@link:./cvat-canvas": - version "2.18.1" + version "2.19.0" dependencies: "@types/polylabel" "^1.0.5" polylabel "^1.1.0" @@ -4187,7 +4218,7 @@ custom-error-instance@2.1.1: svg.select.js "3.0.1" "cvat-core@link:./cvat-core": - version "12.0.0" + version "12.2.0" dependencies: "@types/lodash" "^4.14.191" axios "^1.6.0" @@ -4224,14 +4255,16 @@ data-urls@^3.0.1, data-urls@^3.0.2: whatwg-url "^11.0.0" date-fns@2.x: - version "2.29.3" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" - integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== + version "2.30.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" dayjs@1.x: - version "1.11.7" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" - integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== + version "1.11.10" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" + integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== debug@2.6.9: version "2.6.9" @@ -4240,7 +4273,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4: +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -4298,48 +4331,25 @@ decompress-response@^4.2.0: dependencies: mimic-response "^2.0.0" -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== +dedent@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" + integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== deep-diff@^0.3.5: version "0.3.8" resolved "https://registry.yarnpkg.com/deep-diff/-/deep-diff-0.3.8.tgz#c01de63efb0eec9798801d40c7e0dae25b582c84" integrity sha512-yVn6RZmHiGnxRKR9sJb3iVV2XTF1Ghh2DiWRZ3dMnGc43yUdWWF/kX6lQyk3+P84iprfWKU/8zFTrlkvtFm1ug== -deep-equal@^2.0.5: - version "2.2.0" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6" - integrity sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw== - dependencies: - call-bind "^1.0.2" - es-get-iterator "^1.1.2" - get-intrinsic "^1.1.3" - is-arguments "^1.1.1" - is-array-buffer "^3.0.1" - is-date-object "^1.0.5" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - isarray "^2.0.5" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - side-channel "^1.0.4" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" - -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== default-gateway@^6.0.3: version "6.0.3" @@ -4360,16 +4370,26 @@ defer-to-connect@^1.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +define-data-property@^1.0.1, define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.3, define-properties@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: + define-data-property "^1.0.1" has-property-descriptors "^1.0.0" object-keys "^1.1.1" @@ -4393,7 +4413,7 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -dequal@^2.0.0: +dequal@^2.0.0, dequal@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== @@ -4409,9 +4429,9 @@ detect-browser@^5.2.1: integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== detect-libc@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" - integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + version "2.0.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" + integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== detect-newline@^3.0.0: version "3.1.0" @@ -4423,10 +4443,10 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -diff-sequences@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" - integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== diff@^5.0.0: version "5.1.0" @@ -4451,9 +4471,9 @@ dns-equal@^1.0.0: integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== dns-packet@^5.2.2, dns-packet@^5.2.4: - version "5.4.0" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.4.0.tgz#1f88477cf9f27e78a213fb6d118ae38e759a879b" - integrity sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g== + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== dependencies: "@leichtgewicht/ip-codec" "^2.0.1" @@ -4598,15 +4618,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.251: - version "1.4.284" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" - integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== - -electron-to-chromium@^1.4.431: - version "1.4.470" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.470.tgz#0e932816be8d5f2b491ad2aa449ea47db4785398" - integrity sha512-zZM48Lmy2FKWgqyvsX9XK+J6FfP7aCDUFLmgooLJzA7v1agCs/sxSoBpTIwDLhmbhpx9yJIxj2INig/ncjJRqg== +electron-to-chromium@^1.4.535: + version "1.4.596" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.596.tgz#6752d1aa795d942d49dfc5d3764d6ea283fab1d7" + integrity sha512-zW3zbZ40Icb2BCWjm47nxwcFGYlIgdXkAx85XDO7cyky9J4QQfq8t0W19/TLZqq3JPQXtlv8BPIGmfa9Jb4scg== emittery@^0.13.1: version "0.13.1" @@ -4640,35 +4655,28 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^5.10.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" - integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== +enhanced-resolve@^5.15.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - entities@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== entities@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" - integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== envinfo@^7.7.3: - version "7.8.1" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" - integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + version "7.11.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.11.0.tgz#c3793f44284a55ff8c82faf1ffd91bc6478ea01f" + integrity sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg== error-ex@^1.3.1: version "1.3.2" @@ -4684,85 +4692,96 @@ error-stack-parser@^2.0.2, error-stack-parser@^2.0.6: dependencies: stackframe "^1.3.4" -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.21.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.1.tgz#e6105a099967c08377830a0c9cb589d570dd86c6" - integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== +es-abstract@^1.17.2, es-abstract@^1.22.1: + version "1.22.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" + integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== dependencies: + array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.2" available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + call-bind "^1.0.5" es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" - function-bind "^1.1.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.1.3" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.2" get-symbol-description "^1.0.0" globalthis "^1.0.3" gopd "^1.0.1" - has "^1.0.3" has-property-descriptors "^1.0.0" has-proto "^1.0.1" has-symbols "^1.0.3" - internal-slot "^1.0.4" - is-array-buffer "^3.0.1" + hasown "^2.0.0" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" - is-typed-array "^1.1.10" + is-typed-array "^1.1.12" is-weakref "^1.0.2" - object-inspect "^1.12.2" + object-inspect "^1.13.1" object-keys "^1.1.1" object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" safe-regex-test "^1.0.0" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" typed-array-length "^1.0.4" unbox-primitive "^1.0.2" - which-typed-array "^1.1.9" + which-typed-array "^1.1.13" es-array-method-boxes-properly@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== -es-get-iterator@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" - integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== +es-iterator-helpers@^1.0.12, es-iterator-helpers@^1.0.15: + version "1.0.15" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" + integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== dependencies: + asynciterator.prototype "^1.0.0" call-bind "^1.0.2" - get-intrinsic "^1.1.3" + define-properties "^1.2.1" + es-abstract "^1.22.1" + es-set-tostringtag "^2.0.1" + function-bind "^1.1.1" + get-intrinsic "^1.2.1" + globalthis "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" has-symbols "^1.0.3" - is-arguments "^1.1.1" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.7" - isarray "^2.0.5" - stop-iteration-iterator "^1.0.0" + internal-slot "^1.0.5" + iterator.prototype "^1.1.2" + safe-array-concat "^1.0.1" -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== +es-module-lexer@^1.2.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5" + integrity sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w== es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" + integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" + get-intrinsic "^1.2.2" has-tostringtag "^1.0.0" + hasown "^2.0.0" es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== dependencies: - has "^1.0.3" + hasown "^2.0.0" es-to-primitive@^1.2.1: version "1.2.1" @@ -4809,18 +4828,17 @@ escape-string-regexp@^5.0.0: integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + version "2.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== dependencies: esprima "^4.0.1" estraverse "^5.2.0" esutils "^2.0.2" - optionator "^0.8.1" optionalDependencies: source-map "~0.6.1" -eslint-config-airbnb-base@14.2.1, eslint-config-airbnb-base@^14.2.0, eslint-config-airbnb-base@^14.2.1: +eslint-config-airbnb-base@14.2.1: version "14.2.1" resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e" integrity sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== @@ -4829,67 +4847,77 @@ eslint-config-airbnb-base@14.2.1, eslint-config-airbnb-base@^14.2.0, eslint-conf object.assign "^4.1.2" object.entries "^1.1.2" -eslint-config-airbnb-typescript@^12.0.0: - version "12.3.1" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-12.3.1.tgz#83ab40d76402c208eb08516260d1d6fac8f8acbc" - integrity sha512-ql/Pe6/hppYuRp4m3iPaHJqkBB7dgeEmGPQ6X0UNmrQOfTF+dXw29/ZjU2kQ6RDoLxaxOA+Xqv07Vbef6oVTWw== +eslint-config-airbnb-base@^15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236" + integrity sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig== + dependencies: + confusing-browser-globals "^1.0.10" + object.assign "^4.1.2" + object.entries "^1.1.5" + semver "^6.3.0" + +eslint-config-airbnb-typescript@^17.1.0: + version "17.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.1.0.tgz#fda960eee4a510f092a9a1c139035ac588937ddc" + integrity sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig== dependencies: - "@typescript-eslint/parser" "^4.4.1" - eslint-config-airbnb "^18.2.0" - eslint-config-airbnb-base "^14.2.0" + eslint-config-airbnb-base "^15.0.0" -eslint-config-airbnb@^18.0.1, eslint-config-airbnb@^18.2.0: - version "18.2.1" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.2.1.tgz#b7fe2b42f9f8173e825b73c8014b592e449c98d9" - integrity sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg== +eslint-config-airbnb@^19.0.4: + version "19.0.4" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz#84d4c3490ad70a0ffa571138ebcdea6ab085fdc3" + integrity sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew== dependencies: - eslint-config-airbnb-base "^14.2.1" + eslint-config-airbnb-base "^15.0.0" object.assign "^4.1.2" - object.entries "^1.1.2" + object.entries "^1.1.5" -eslint-import-resolver-node@^0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" - integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" - is-core-module "^2.11.0" - resolve "^1.22.1" + is-core-module "^2.13.0" + resolve "^1.22.4" -eslint-module-utils@^2.7.4: - version "2.7.4" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" - integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== +eslint-module-utils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" eslint-plugin-cypress@^2.11.2: - version "2.12.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.12.1.tgz#9aeee700708ca8c058e00cdafe215199918c2632" - integrity sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA== + version "2.15.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.1.tgz#336afa7e8e27451afaf65aa359c9509e0a4f3a7b" + integrity sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w== dependencies: - globals "^11.12.0" + globals "^13.20.0" eslint-plugin-import@^2.22.1: - version "2.27.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" - integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== - dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" + version "2.29.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" + integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== + dependencies: + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" - has "^1.0.3" - is-core-module "^2.11.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" is-glob "^4.0.3" minimatch "^3.1.2" - object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.14.2" eslint-plugin-jest@^26.5.3: version "26.9.0" @@ -4899,46 +4927,47 @@ eslint-plugin-jest@^26.5.3: "@typescript-eslint/utils" "^5.10.0" eslint-plugin-jsx-a11y@^6.3.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" - integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== - dependencies: - "@babel/runtime" "^7.20.7" - aria-query "^5.1.3" - array-includes "^3.1.6" - array.prototype.flatmap "^1.3.1" - ast-types-flow "^0.0.7" - axe-core "^4.6.2" - axobject-query "^3.1.1" + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz#2fa9c701d44fcd722b7c771ec322432857fcbad2" + integrity sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA== + dependencies: + "@babel/runtime" "^7.23.2" + aria-query "^5.3.0" + array-includes "^3.1.7" + array.prototype.flatmap "^1.3.2" + ast-types-flow "^0.0.8" + axe-core "=4.7.0" + axobject-query "^3.2.1" damerau-levenshtein "^1.0.8" emoji-regex "^9.2.2" - has "^1.0.3" - jsx-ast-utils "^3.3.3" - language-tags "=1.0.5" + es-iterator-helpers "^1.0.15" + hasown "^2.0.0" + jsx-ast-utils "^3.3.5" + language-tags "^1.0.9" minimatch "^3.1.2" - object.entries "^1.1.6" - object.fromentries "^2.0.6" - semver "^6.3.0" + object.entries "^1.1.7" + object.fromentries "^2.0.7" eslint-plugin-no-unsanitized@^3.0.2: version "3.2.0" resolved "https://registry.yarnpkg.com/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-3.2.0.tgz#a74239ae51363a5edbe6920eb34fe09aab925a9c" integrity sha512-92opuXbjWmXcod94EyCKhp36V1QHLM/ArAST2ssgKOojALne0eZvSPfrg4oyr0EwTXvy0RJNe/Tkm33VkDUrKQ== -eslint-plugin-react-hooks@^4.2.0: +eslint-plugin-react-hooks@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== -eslint-plugin-react@^7.21.5: - version "7.32.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.1.tgz#88cdeb4065da8ca0b64e1274404f53a0f9890200" - integrity sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www== +eslint-plugin-react@^7.33.2: + version "7.33.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608" + integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" array.prototype.tosorted "^1.1.1" doctrine "^2.1.0" + es-iterator-helpers "^1.0.12" estraverse "^5.3.0" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" @@ -4948,13 +4977,13 @@ eslint-plugin-react@^7.21.5: object.values "^1.1.6" prop-types "^15.8.1" resolve "^2.0.0-next.4" - semver "^6.3.0" + semver "^6.3.1" string.prototype.matchall "^4.0.8" eslint-plugin-security@^1.4.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-security/-/eslint-plugin-security-1.6.0.tgz#c3882111daf8bc4fc406b7d5699e162b437f7cb1" - integrity sha512-SGvyejbhW/dziRbzOroKX5bj8z/qtBOw7Q95C9CBbJQqBtFB2o4OxSM3MCO2u9noPp7B6DDaFGtXTx8ImPiO/A== + version "1.7.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz#0e9c4a471f6e4d3ca16413c7a4a51f3966ba16e4" + integrity sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ== dependencies: safe-regex "^2.1.1" @@ -4966,99 +4995,86 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + esrecurse "^4.3.0" + estraverse "^5.2.0" -eslint-visitor-keys@^2.0.0: +eslint-visitor-keys@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint@^7.11.0: - version "7.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" - integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== - dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.3" - "@humanwhocodes/config-array" "^0.5.0" - ajv "^6.10.0" +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.54.0: + version "8.54.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" + integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.3" + "@eslint/js" "8.54.0" + "@humanwhocodes/config-array" "^0.11.13" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" - debug "^4.0.1" + debug "^4.3.2" doctrine "^3.0.0" - enquirer "^2.3.5" escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" - esquery "^1.4.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" - globals "^13.6.0" - ignore "^4.0.6" - import-fresh "^3.0.0" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - js-yaml "^3.13.1" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" - minimatch "^3.0.4" + minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^6.0.9" + optionator "^0.9.3" + strip-ansi "^6.0.1" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" @@ -5094,11 +5110,31 @@ eventemitter3@^4.0.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +execa@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" + integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^4.3.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -5114,36 +5150,21 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" - integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^3.0.1" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" - integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== +expect@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== dependencies: - "@jest/expect-utils" "^29.5.0" - jest-get-type "^29.4.3" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" express@^4.17.3: version "4.18.2" @@ -5200,10 +5221,15 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" - integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== +fast-equals@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-4.0.3.tgz#72884cc805ec3c6679b99875f6b7654f39f0e8c7" + integrity sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg== + +fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -5211,12 +5237,12 @@ fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== @@ -5278,6 +5304,13 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" +file-entry-cache@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-7.0.2.tgz#2d61bb70ba89b9548e3035b7c9173fe91deafff0" + integrity sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g== + dependencies: + flat-cache "^3.2.0" + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -5339,23 +5372,29 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== +flat-cache@^3.0.4, flat-cache@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: - flatted "^3.1.0" + flatted "^3.2.9" + keyv "^4.5.3" rimraf "^3.0.2" +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + flatbuffers@^1.12.0: version "1.12.0" resolved "https://registry.yarnpkg.com/flatbuffers/-/flatbuffers-1.12.0.tgz#72e87d1726cb1b216e839ef02658aa87dcef68aa" integrity sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ== -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flatted@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== follow-redirects@^1.0.0, follow-redirects@^1.15.0: version "1.15.3" @@ -5396,10 +5435,10 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fraction.js@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" - integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== +fraction.js@^4.3.6: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== fresh@0.5.2: version "0.5.2" @@ -5418,10 +5457,10 @@ fs-minipass@^2.0.0: dependencies: minipass "^3.0.0" -fs-monkey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" - integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== +fs-monkey@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.5.tgz#fe450175f0db0d7ea758102e1d84096acb925788" + integrity sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew== fs-readdir-recursive@^1.1.0: version "1.1.0" @@ -5434,31 +5473,26 @@ fs.realpath@^1.0.0: integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@^2.3.2, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.1, function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== +function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" -functions-have-names@^1.2.2: +functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== @@ -5488,14 +5522,15 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + function-bind "^1.1.2" + has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" get-package-type@^0.1.0: version "0.1.0" @@ -5541,7 +5576,7 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1: +glob-parent@^6.0.1, glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== @@ -5581,15 +5616,15 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" -globals@^11.1.0, globals@^11.12.0: +globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.6.0, globals@^13.9.0: - version "13.19.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" - integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== +globals@^13.19.0, globals@^13.20.0: + version "13.23.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" + integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== dependencies: type-fest "^0.20.2" @@ -5600,7 +5635,7 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@^11.0.3, globby@^11.1.0: +globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -5613,13 +5648,13 @@ globby@^11.0.3, globby@^11.1.0: slash "^3.0.0" globby@^13.1.1: - version "13.1.3" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.3.tgz#f62baf5720bcb2c1330c8d4ef222ee12318563ff" - integrity sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw== + version "13.2.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" + integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== dependencies: dir-glob "^3.0.1" - fast-glob "^3.2.11" - ignore "^5.2.0" + fast-glob "^3.3.0" + ignore "^5.2.4" merge2 "^1.4.1" slash "^4.0.0" @@ -5653,9 +5688,14 @@ got@^9.6.0: url-parse-lax "^3.0.0" graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== guid-typescript@^1.0.9: version "1.0.9" @@ -5688,11 +5728,11 @@ has-flag@^4.0.0: integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" + integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== dependencies: - get-intrinsic "^1.1.1" + get-intrinsic "^1.2.2" has-proto@^1.0.1: version "1.0.1" @@ -5716,13 +5756,6 @@ has-unicode@^2.0.1: resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - hasha@^5.0.0: version "5.2.2" resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" @@ -5731,6 +5764,13 @@ hasha@^5.0.0: is-stream "^2.0.0" type-fest "^0.8.0" +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + hast-util-from-parse5@^7.0.0: version "7.1.2" resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz#aecfef73e3ceafdfa4550716443e4eb7b02e22b0" @@ -5910,9 +5950,9 @@ html-encoding-sniffer@^3.0.0: whatwg-encoding "^2.0.0" html-entities@^2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" - integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== + version "2.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.4.0.tgz#edd0cee70402584c8c76cc2c0556db09d1f45061" + integrity sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ== html-escaper@^2.0.0: version "2.0.2" @@ -5943,9 +5983,9 @@ html-void-elements@^2.0.0: integrity sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A== html-webpack-plugin@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz#c3911936f57681c1f9f4d8b68c158cd9dfe52f50" - integrity sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw== + version "5.5.3" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz#72270f4a78e222b5825b296e5e3e1328ad525a3e" + integrity sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg== dependencies: "@types/html-minifier-terser" "^6.0.0" html-minifier-terser "^6.0.2" @@ -6041,10 +6081,10 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -human-signals@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" - integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== +human-signals@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== husky@^6.0.0: version "6.0.0" @@ -6075,15 +6115,10 @@ ignore-by-default@^1.0.1: resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - ignore@^5.0.0, ignore@^5.2.0, ignore@^5.2.4: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== immediate@~3.0.5: version "3.0.6" @@ -6096,11 +6131,11 @@ immutable@^3.8.2: integrity sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg== immutable@^4.0.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.2.tgz#2da9ff4384a4330c36d4d1bc88e90f9e0b0ccd16" - integrity sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og== + version "4.3.4" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" + integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -6164,19 +6199,19 @@ inline-style-parser@0.1.1: resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== -internal-slot@^1.0.3, internal-slot@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" - integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== +internal-slot@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" + integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" + get-intrinsic "^1.2.2" + hasown "^2.0.0" side-channel "^1.0.4" -interpret@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" - integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== invariant@^2.2.4: version "2.2.4" @@ -6196,9 +6231,9 @@ ipaddr.js@1.9.1: integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== ipaddr.js@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" - integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== + version "2.1.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" + integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== is-absolute-url@^2.0.0: version "2.1.0" @@ -6231,21 +6266,13 @@ is-alphanumerical@^2.0.0: is-alphabetical "^2.0.0" is-decimal "^2.0.0" -is-arguments@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-array-buffer@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a" - integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ== +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.1.3" + get-intrinsic "^1.2.0" is-typed-array "^1.1.10" is-arrayish@^0.2.1: @@ -6253,6 +6280,13 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -6285,12 +6319,12 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== +is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: - has "^1.0.3" + hasown "^2.0.0" is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" @@ -6324,6 +6358,13 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== +is-finalizationregistry@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" + integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== + dependencies: + call-bind "^1.0.2" + is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -6339,6 +6380,13 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== +is-generator-function@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -6363,7 +6411,7 @@ is-ip@^3.1.0: dependencies: ip-regex "^4.0.0" -is-map@^2.0.1, is-map@^2.0.2: +is-map@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== @@ -6395,6 +6443,11 @@ is-online@^8.2.1: p-timeout "^3.0.0" public-ip "^4.0.1" +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -6447,7 +6500,7 @@ is-relative-url@^2.0.0: dependencies: is-absolute-url "^2.0.0" -is-set@^2.0.1, is-set@^2.0.2: +is-set@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== @@ -6483,16 +6536,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.9: - version "1.1.10" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" + which-typed-array "^1.1.11" is-typedarray@^1.0.0: version "1.0.0" @@ -6557,9 +6606,9 @@ isobject@^3.0.1: integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== istanbul-lib-hook@^3.0.0: version "3.0.0" @@ -6578,7 +6627,7 @@ istanbul-lib-instrument@^4.0.0: istanbul-lib-coverage "^3.0.0" semver "^6.3.0" -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: +istanbul-lib-instrument@^5.0.4: version "5.2.1" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== @@ -6589,6 +6638,17 @@ istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: istanbul-lib-coverage "^3.2.0" semver "^6.3.0" +istanbul-lib-instrument@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz#71e87707e8041428732518c6fb5211761753fbdf" + integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + istanbul-lib-processinfo@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz#366d454cd0dcb7eb6e0e419378e60072c8626169" @@ -6602,12 +6662,12 @@ istanbul-lib-processinfo@^2.0.2: uuid "^8.3.2" istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== dependencies: istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" + make-dir "^4.0.0" supports-color "^7.1.0" istanbul-lib-source-maps@^4.0.0: @@ -6620,171 +6680,182 @@ istanbul-lib-source-maps@^4.0.0: source-map "^0.6.1" istanbul-reports@^3.0.2, istanbul-reports@^3.1.3: - version "3.1.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + version "3.1.6" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" + integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e" - integrity sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag== +iterator.prototype@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" + integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== + dependencies: + define-properties "^1.2.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" + +jest-changed-files@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" + integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== dependencies: execa "^5.0.0" + jest-util "^29.7.0" p-limit "^3.1.0" -jest-circus@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.5.0.tgz#b5926989449e75bff0d59944bae083c9d7fb7317" - integrity sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA== +jest-circus@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" + integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== dependencies: - "@jest/environment" "^29.5.0" - "@jest/expect" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - dedent "^0.7.0" + dedent "^1.0.0" is-generator-fn "^2.0.0" - jest-each "^29.5.0" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-runtime "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" + jest-each "^29.7.0" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" p-limit "^3.1.0" - pretty-format "^29.5.0" + pretty-format "^29.7.0" pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67" - integrity sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw== +jest-cli@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" + integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== dependencies: - "@jest/core" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/core" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" chalk "^4.0.0" + create-jest "^29.7.0" exit "^0.1.2" - graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" - prompts "^2.0.1" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" yargs "^17.3.1" -jest-config@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.5.0.tgz#3cc972faec8c8aaea9ae158c694541b79f3748da" - integrity sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA== +jest-config@^29.5.0, jest-config@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" + integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.5.0" - "@jest/types" "^29.5.0" - babel-jest "^29.5.0" + "@jest/test-sequencer" "^29.7.0" + "@jest/types" "^29.6.3" + babel-jest "^29.7.0" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.5.0" - jest-environment-node "^29.5.0" - jest-get-type "^29.4.3" - jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-runner "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" + jest-circus "^29.7.0" + jest-environment-node "^29.7.0" + jest-get-type "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-runner "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.5.0" + pretty-format "^29.7.0" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63" - integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw== +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== dependencies: chalk "^4.0.0" - diff-sequences "^29.4.3" - jest-get-type "^29.4.3" - pretty-format "^29.5.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" -jest-docblock@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.3.tgz#90505aa89514a1c7dceeac1123df79e414636ea8" - integrity sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg== +jest-docblock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" + integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== dependencies: detect-newline "^3.0.0" -jest-each@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.5.0.tgz#fc6e7014f83eac68e22b7195598de8554c2e5c06" - integrity sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA== +jest-each@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" + integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.3" chalk "^4.0.0" - jest-get-type "^29.4.3" - jest-util "^29.5.0" - pretty-format "^29.5.0" + jest-get-type "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" jest-environment-jsdom@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.5.0.tgz#cfe86ebaf1453f3297b5ff3470fbe94739c960cb" - integrity sha512-/KG8yEK4aN8ak56yFVdqFDzKNHgF4BAymCx2LbPNPsUshUlfAl0eX402Xm1pt+eoG9SLZEUVifqXtX8SK74KCw== + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f" + integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA== dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.5.0" - jest-util "^29.5.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" jsdom "^20.0.0" -jest-environment-node@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967" - integrity sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw== +jest-environment-node@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-mock "^29.5.0" - jest-util "^29.5.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" jest-get-type@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== -jest-get-type@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" - integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== -jest-haste-map@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de" - integrity sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA== +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.3" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^29.4.3" - jest-util "^29.5.0" - jest-worker "^29.5.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: @@ -6800,171 +6871,168 @@ jest-junit@^6.4.0: strip-ansi "^4.0.0" xml "^1.0.1" -jest-leak-detector@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz#cf4bdea9615c72bac4a3a7ba7e7930f9c0610c8c" - integrity sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow== +jest-leak-detector@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" + integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== dependencies: - jest-get-type "^29.4.3" - pretty-format "^29.5.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" -jest-matcher-utils@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" - integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw== +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== dependencies: chalk "^4.0.0" - jest-diff "^29.5.0" - jest-get-type "^29.4.3" - pretty-format "^29.5.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" -jest-message-util@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" - integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA== +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.3" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.5.0" + pretty-format "^29.7.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed" - integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw== +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-util "^29.5.0" + jest-util "^29.7.0" jest-pnp-resolver@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== -jest-regex-util@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" - integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== -jest-resolve-dependencies@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz#f0ea29955996f49788bf70996052aa98e7befee4" - integrity sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg== +jest-resolve-dependencies@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" + integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== dependencies: - jest-regex-util "^29.4.3" - jest-snapshot "^29.5.0" + jest-regex-util "^29.6.3" + jest-snapshot "^29.7.0" -jest-resolve@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.5.0.tgz#b053cc95ad1d5f6327f0ac8aae9f98795475ecdc" - integrity sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w== +jest-resolve@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" + integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" + jest-haste-map "^29.7.0" jest-pnp-resolver "^1.2.2" - jest-util "^29.5.0" - jest-validate "^29.5.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.5.0.tgz#6a57c282eb0ef749778d444c1d758c6a7693b6f8" - integrity sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ== +jest-runner@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" + integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== dependencies: - "@jest/console" "^29.5.0" - "@jest/environment" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/console" "^29.7.0" + "@jest/environment" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^29.4.3" - jest-environment-node "^29.5.0" - jest-haste-map "^29.5.0" - jest-leak-detector "^29.5.0" - jest-message-util "^29.5.0" - jest-resolve "^29.5.0" - jest-runtime "^29.5.0" - jest-util "^29.5.0" - jest-watcher "^29.5.0" - jest-worker "^29.5.0" + jest-docblock "^29.7.0" + jest-environment-node "^29.7.0" + jest-haste-map "^29.7.0" + jest-leak-detector "^29.7.0" + jest-message-util "^29.7.0" + jest-resolve "^29.7.0" + jest-runtime "^29.7.0" + jest-util "^29.7.0" + jest-watcher "^29.7.0" + jest-worker "^29.7.0" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.5.0.tgz#c83f943ee0c1da7eb91fa181b0811ebd59b03420" - integrity sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw== - dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/globals" "^29.5.0" - "@jest/source-map" "^29.4.3" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" +jest-runtime@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" + integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/globals" "^29.7.0" + "@jest/source-map" "^29.6.3" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" - jest-message-util "^29.5.0" - jest-mock "^29.5.0" - jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce" - integrity sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g== +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-jsx" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.5.0" + expect "^29.7.0" graceful-fs "^4.2.9" - jest-diff "^29.5.0" - jest-get-type "^29.4.3" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" natural-compare "^1.4.0" - pretty-format "^29.5.0" - semver "^7.3.5" + pretty-format "^29.7.0" + semver "^7.5.3" -jest-util@^29.0.0, jest-util@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" - integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" @@ -6983,30 +7051,30 @@ jest-validate@^24.0.0: leven "^3.1.0" pretty-format "^24.9.0" -jest-validate@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.5.0.tgz#8e5a8f36178d40e47138dc00866a5f3bd9916ffc" - integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ== +jest-validate@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.3" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^29.4.3" + jest-get-type "^29.6.3" leven "^3.1.0" - pretty-format "^29.5.0" + pretty-format "^29.7.0" -jest-watcher@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.5.0.tgz#cf7f0f949828ba65ddbbb45c743a382a4d911363" - integrity sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA== +jest-watcher@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" + integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== dependencies: - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.5.0" + jest-util "^29.7.0" string-length "^4.0.1" jest-worker@^27.4.5: @@ -7018,40 +7086,40 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" - integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== dependencies: "@types/node" "*" - jest-util "^29.5.0" + jest-util "^29.7.0" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e" - integrity sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ== + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" + integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== dependencies: - "@jest/core" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/core" "^29.7.0" + "@jest/types" "^29.6.3" import-local "^3.0.2" - jest-cli "^29.5.0" + jest-cli "^29.7.0" jiti@^1.18.2: - version "1.19.1" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.1.tgz#fa99e4b76a23053e0e7cde098efe1704a14c16f1" - integrity sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg== + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== js-base64@^3.7.2: - version "3.7.4" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.4.tgz#af95b20f23efc8034afd2d1cc5b9d0adf7419037" - integrity sha512-wpM/wi20Tl+3ifTyi0RdDckS4YTD4Lf953mBRrpG8547T7hInHNPEj8+ck4gB8VDcGyeAWFK++Wb/fU1BeavKQ== + version "3.7.5" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" + integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== js-cookie@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.1.tgz#9e39b4c6c2f56563708d7d31f6f5f21873a92414" - integrity sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw== + version "3.0.5" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.5.tgz#0b7e2fd0c01552c58ba86e0841f94dc2557dcdbc" + integrity sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -7153,6 +7221,11 @@ json-buffer@3.0.0: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-logic-js@^2.0.1, json-logic-js@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/json-logic-js/-/json-logic-js-2.0.2.tgz#b613e095f5e598cb78f7b9a2bbf638e74cf98158" @@ -7185,25 +7258,27 @@ json2mq@^0.2.0: dependencies: string-convert "^0.2.0" -json5@^1.0.1: +json5@^1.0.1, json5@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" -json5@^2.0.0, json5@^2.1.2, json5@^2.2.2, json5@^2.2.3: +json5@^2.0.0, json5@^2.1.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" - integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== dependencies: - array-includes "^3.1.5" - object.assign "^4.1.3" + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" jszip@3.10.1: version "3.10.1" @@ -7222,6 +7297,13 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + kind-of@^6.0.2, kind-of@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -7242,22 +7324,30 @@ klona@^2.0.4: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== -known-css-properties@^0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.27.0.tgz#82a9358dda5fe7f7bd12b5e7142c0a205393c0c5" - integrity sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg== +known-css-properties@^0.29.0: + version "0.29.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.29.0.tgz#e8ba024fb03886f23cb882e806929f32d814158f" + integrity sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ== -language-subtag-registry@~0.3.2: +language-subtag-registry@^0.3.20: version "0.3.22" resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== -language-tags@=1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" - integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== +language-tags@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777" + integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== dependencies: - language-subtag-registry "~0.3.2" + language-subtag-registry "^0.3.20" + +launch-editor@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.1.tgz#f259c9ef95cbc9425620bbbd14b468fcdb4ffe3c" + integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.8.1" leven@^3.1.0: version "3.1.0" @@ -7272,14 +7362,6 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - libnpmconfig@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz#c0c2f793a74e67d4825e5039e7a02a0044dfcbc0" @@ -7296,10 +7378,10 @@ lie@~3.3.0: dependencies: immediate "~3.0.5" -lilconfig@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" - integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== +lilconfig@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== lines-and-columns@^1.1.6: version "1.2.4" @@ -7307,37 +7389,32 @@ lines-and-columns@^1.1.6: integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== lint-staged@^13.0.3: - version "13.1.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.0.tgz#d4c61aec939e789e489fa51987ec5207b50fd37e" - integrity sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ== + version "13.3.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.3.0.tgz#7965d72a8d6a6c932f85e9c13ccf3596782d28a5" + integrity sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ== + dependencies: + chalk "5.3.0" + commander "11.0.0" + debug "4.3.4" + execa "7.2.0" + lilconfig "2.1.0" + listr2 "6.6.1" + micromatch "4.0.5" + pidtree "0.6.0" + string-argv "0.3.2" + yaml "2.3.1" + +listr2@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-6.6.1.tgz#08b2329e7e8ba6298481464937099f4a2cd7f95d" + integrity sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg== dependencies: cli-truncate "^3.1.0" - colorette "^2.0.19" - commander "^9.4.1" - debug "^4.3.4" - execa "^6.1.0" - lilconfig "2.0.6" - listr2 "^5.0.5" - micromatch "^4.0.5" - normalize-path "^3.0.0" - object-inspect "^1.12.2" - pidtree "^0.6.0" - string-argv "^0.3.1" - yaml "^2.1.3" - -listr2@^5.0.5: - version "5.0.6" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.6.tgz#3c61153383869ffaad08a8908d63edfde481dff8" - integrity sha512-u60KxKBy1BR2uLJNTWNptzWQ1ob/gjMzIJPZffAENzpZqbMZ/5PrXXOomDcevIS/+IB7s1mmCEtSlT2qHWMqag== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.19" - log-update "^4.0.0" - p-map "^4.0.0" + colorette "^2.0.20" + eventemitter3 "^5.0.1" + log-update "^5.0.1" rfdc "^1.3.0" - rxjs "^7.5.7" - through "^2.3.8" - wrap-ansi "^7.0.0" + wrap-ansi "^8.1.0" load-plugin@^3.0.0: version "3.0.0" @@ -7449,21 +7526,11 @@ lodash.flattendeep@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== -lodash.isequal@^4.0.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== - lodash.isplainobject@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== -lodash.memoize@4.x: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -7492,15 +7559,16 @@ lodash@^4.0.1, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== +log-update@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-5.0.1.tgz#9e928bf70cb183c1f0c9e91d9e6b7115d597ce09" + integrity sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw== dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" + ansi-escapes "^5.0.0" + cli-cursor "^4.0.0" + slice-ansi "^5.0.0" + strip-ansi "^7.0.1" + wrap-ansi "^8.0.1" long@^4.0.0: version "4.0.0" @@ -7541,10 +7609,10 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lru-cache@*, lru-cache@^9.1.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.1.tgz#c58a93de58630b688de39ad04ef02ef26f1902f1" - integrity sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A== +lru-cache@*: + version "10.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== lru-cache@^5.1.1: version "5.1.1" @@ -7560,6 +7628,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-cache@^9.1.1: + version "9.1.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.2.tgz#255fdbc14b75589d6d0e73644ca167a8db506835" + integrity sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ== + make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -7575,10 +7648,12 @@ make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" -make-error@1.x: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" makeerror@1.0.12: version "1.0.12" @@ -7637,9 +7712,9 @@ mdast-comment-marker@^1.0.0: integrity sha512-vTFXtmbbF3rgnTh3Zl3irso4LtvwUq/jaDvT2D1JqTGAwaipcS7RpTxzi6KjoRqI9n2yuAhzLDAC8xVTF3XYVQ== mdast-util-definitions@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz#2c1d684b28e53f84938bb06317944bee8efa79db" - integrity sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ== + version "5.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz#9910abb60ac5d7115d6819b57ae0bcef07a3f7a7" + integrity sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" @@ -7676,9 +7751,9 @@ mdast-util-from-markdown@^0.8.0: unist-util-stringify-position "^2.0.0" mdast-util-from-markdown@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz#84df2924ccc6c995dec1e2368b2b208ad0a76268" - integrity sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q== + version "1.3.1" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0" + integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" @@ -7814,16 +7889,15 @@ mdast-util-phrasing@^3.0.0: unist-util-is "^5.0.0" mdast-util-to-hast@^12.1.0: - version "12.2.5" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.2.5.tgz#91532ebd929a7def21585034f7901eb367d2d272" - integrity sha512-EFNhT35ZR/VZ85/EedDdCNTq0oFM+NM/+qBomVGQ0+Lcg0nhI8xIwmdCzNMlVlCJNXRprpobtKP/IUh8cfz6zQ== + version "12.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz#045d2825fb04374e59970f5b3f279b5700f6fb49" + integrity sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw== dependencies: "@types/hast" "^2.0.0" "@types/mdast" "^3.0.0" mdast-util-definitions "^5.0.0" micromark-util-sanitize-uri "^1.1.0" trim-lines "^3.0.0" - unist-builder "^3.0.0" unist-util-generated "^2.0.0" unist-util-position "^4.0.0" unist-util-visit "^4.0.0" @@ -7864,18 +7938,13 @@ mdast-util-to-string@^2.0.0: resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== -mdast-util-to-string@^3.0.0: +mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789" integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== dependencies: "@types/mdast" "^3.0.0" -mdast-util-to-string@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz#56c506d065fbf769515235e577b5a261552d56e9" - integrity sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA== - mdn-data@2.0.14: version "2.0.14" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" @@ -7906,11 +7975,11 @@ mem@^4.0.0: p-is-promise "^2.0.0" memfs@^3.4.3: - version "3.4.13" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.13.tgz#248a8bd239b3c240175cd5ec548de5227fc4f345" - integrity sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg== + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== dependencies: - fs-monkey "^1.0.3" + fs-monkey "^1.0.4" memoize-one@^6.0.0: version "6.0.0" @@ -7961,9 +8030,9 @@ methods@~1.1.2: integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz#edff4c72e5993d93724a3c206970f5a15b0585ad" - integrity sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8" + integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw== dependencies: decode-named-character-reference "^1.0.0" micromark-factory-destination "^1.0.0" @@ -7990,9 +8059,9 @@ micromark-extension-frontmatter@^0.2.0: fault "^1.0.0" micromark-extension-gfm-autolink-literal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.4.tgz#3a8af48264be47138654ab0b8700a8e22785ef07" - integrity sha512-WCssN+M9rUyfHN5zPBn3/f0mIA7tqArHL/EKbv3CZK+LT2rG77FEikIQEqBkv46fOqXQK4NEW/Pc7Z27gshpeg== + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz#5853f0e579bbd8ef9e39a7c0f0f27c5a063a66e7" + integrity sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg== dependencies: micromark-util-character "^1.0.0" micromark-util-sanitize-uri "^1.0.0" @@ -8007,9 +8076,9 @@ micromark-extension-gfm-autolink-literal@~0.5.0: micromark "~2.11.3" micromark-extension-gfm-footnote@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.0.tgz#73e3db823db9defef25f68074cb4cf4bb9cf6a8c" - integrity sha512-RWYce7j8+c0n7Djzv5NzGEGitNNYO3uj+h/XYMdS/JinH1Go+/Qkomg/rfxExFzYTiydaV6GLeffGO5qcJbMPA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz#05e13034d68f95ca53c99679040bc88a6f92fe2e" + integrity sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q== dependencies: micromark-core-commonmark "^1.0.0" micromark-factory-space "^1.0.0" @@ -8021,9 +8090,9 @@ micromark-extension-gfm-footnote@^1.0.0: uvu "^0.5.0" micromark-extension-gfm-strikethrough@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.5.tgz#4db40b87d674a6fe1d00d59ac91118e4f5960f12" - integrity sha512-X0oI5eYYQVARhiNfbETy7BfLSmSilzN1eOuoRnrf9oUNsPRrWOAe9UqSizgw1vNxQBfOwL+n2610S3bYjVNi7w== + version "1.0.7" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz#c8212c9a616fa3bf47cb5c711da77f4fdc2f80af" + integrity sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw== dependencies: micromark-util-chunked "^1.0.0" micromark-util-classify-character "^1.0.0" @@ -8040,9 +8109,9 @@ micromark-extension-gfm-strikethrough@~0.6.5: micromark "~2.11.0" micromark-extension-gfm-table@^1.0.0: - version "1.0.6" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.6.tgz#22b2b18dff9db39bdb29d6017e53bdd370672c8e" - integrity sha512-92pq7Q+T+4kXH4M6kL+pc8WU23Z9iuhcqmtYFWdFWjm73ZscFpH2xE28+XFpGWlvgq3LUwcN0XC0PGCicYFpgA== + version "1.0.7" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz#dcb46074b0c6254c3fc9cc1f6f5002c162968008" + integrity sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw== dependencies: micromark-factory-space "^1.0.0" micromark-util-character "^1.0.0" @@ -8070,9 +8139,9 @@ micromark-extension-gfm-tagfilter@~0.3.0: integrity sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q== micromark-extension-gfm-task-list-item@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.4.tgz#4b66d87847de40cef2b5ceddb9f9629a6dfe7472" - integrity sha512-9XlIUUVnYXHsFF2HZ9jby4h3npfX10S1coXTnV035QGPgrtNYQq3J6IfIvcCIUAJrrqBVi5BqA/LmaOMJqPwMQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz#b52ce498dc4c69b6a9975abafc18f275b9dde9f4" + integrity sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ== dependencies: micromark-factory-space "^1.0.0" micromark-util-character "^1.0.0" @@ -8114,18 +8183,18 @@ micromark-extension-gfm@^2.0.0: micromark-util-types "^1.0.0" micromark-factory-destination@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz#fef1cb59ad4997c496f887b6977aa3034a5a277e" - integrity sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f" + integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg== dependencies: micromark-util-character "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" micromark-factory-label@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz#6be2551fa8d13542fcbbac478258fb7a20047137" - integrity sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68" + integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w== dependencies: micromark-util-character "^1.0.0" micromark-util-symbol "^1.0.0" @@ -8133,28 +8202,27 @@ micromark-factory-label@^1.0.0: uvu "^0.5.0" micromark-factory-space@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz#cebff49968f2b9616c0fcb239e96685cb9497633" - integrity sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" + integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== dependencies: micromark-util-character "^1.0.0" micromark-util-types "^1.0.0" micromark-factory-title@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz#7e09287c3748ff1693930f176e1c4a328382494f" - integrity sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1" + integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ== dependencies: micromark-factory-space "^1.0.0" micromark-util-character "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" - uvu "^0.5.0" micromark-factory-whitespace@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz#e991e043ad376c1ba52f4e49858ce0794678621c" - integrity sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705" + integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ== dependencies: micromark-factory-space "^1.0.0" micromark-util-character "^1.0.0" @@ -8162,48 +8230,48 @@ micromark-factory-whitespace@^1.0.0: micromark-util-types "^1.0.0" micromark-util-character@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.1.0.tgz#d97c54d5742a0d9611a68ca0cd4124331f264d86" - integrity sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg== + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" + integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== dependencies: micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" micromark-util-chunked@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz#5b40d83f3d53b84c4c6bce30ed4257e9a4c79d06" - integrity sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b" + integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ== dependencies: micromark-util-symbol "^1.0.0" micromark-util-classify-character@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz#cbd7b447cb79ee6997dd274a46fc4eb806460a20" - integrity sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d" + integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw== dependencies: micromark-util-character "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" micromark-util-combine-extensions@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz#91418e1e74fb893e3628b8d496085639124ff3d5" - integrity sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84" + integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA== dependencies: micromark-util-chunked "^1.0.0" micromark-util-types "^1.0.0" micromark-util-decode-numeric-character-reference@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz#dcc85f13b5bd93ff8d2868c3dba28039d490b946" - integrity sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6" + integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw== dependencies: micromark-util-symbol "^1.0.0" micromark-util-decode-string@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz#942252ab7a76dec2dbf089cc32505ee2bc3acf02" - integrity sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c" + integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ== dependencies: decode-named-character-reference "^1.0.0" micromark-util-character "^1.0.0" @@ -8211,42 +8279,42 @@ micromark-util-decode-string@^1.0.0: micromark-util-symbol "^1.0.0" micromark-util-encode@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz#2c1c22d3800870ad770ece5686ebca5920353383" - integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5" + integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== micromark-util-html-tag-name@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz#eb227118befd51f48858e879b7a419fc0df20497" - integrity sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA== + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588" + integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== micromark-util-normalize-identifier@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz#4a3539cb8db954bbec5203952bfe8cedadae7828" - integrity sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7" + integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q== dependencies: micromark-util-symbol "^1.0.0" micromark-util-resolve-all@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz#a7c363f49a0162e931960c44f3127ab58f031d88" - integrity sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188" + integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA== dependencies: micromark-util-types "^1.0.0" micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz#f12e07a85106b902645e0364feb07cf253a85aee" - integrity sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg== + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d" + integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== dependencies: micromark-util-character "^1.0.0" micromark-util-encode "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-subtokenize@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz#ff6f1af6ac836f8bfdbf9b02f40431760ad89105" - integrity sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1" + integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A== dependencies: micromark-util-chunked "^1.0.0" micromark-util-symbol "^1.0.0" @@ -8254,14 +8322,14 @@ micromark-util-subtokenize@^1.0.0: uvu "^0.5.0" micromark-util-symbol@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz#b90344db62042ce454f351cf0bebcc0a6da4920e" - integrity sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" + integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.0.2.tgz#f4220fdb319205812f99c40f8c87a9be83eded20" - integrity sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" + integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== micromark@^2.11.3, micromark@~2.11.0, micromark@~2.11.3: version "2.11.4" @@ -8272,9 +8340,9 @@ micromark@^2.11.3, micromark@~2.11.0, micromark@~2.11.3: parse-entities "^2.0.0" micromark@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.1.0.tgz#eeba0fe0ac1c9aaef675157b52c166f125e89f62" - integrity sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA== + version "3.2.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9" + integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== dependencies: "@types/debug" "^4.0.0" debug "^4.0.0" @@ -8294,7 +8362,7 @@ micromark@^3.0.0: micromark-util-types "^1.0.1" uvu "^0.5.0" -micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: +micromatch@4.0.5, micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -8354,7 +8422,7 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -8371,9 +8439,9 @@ minimist-options@4.1.0: kind-of "^6.0.3" minimist@^1.2.0, minimist@^1.2.6: - version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== minipass@^3.0.0: version "3.3.6" @@ -8382,12 +8450,10 @@ minipass@^3.0.0: dependencies: yallist "^4.0.0" -minipass@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.0.0.tgz#7cebb0f9fa7d56f0c5b17853cbe28838a8dbbd3b" - integrity sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw== - dependencies: - yallist "^4.0.0" +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== minizlib@^2.1.1: version "2.1.2" @@ -8448,19 +8514,14 @@ multicast-dns@^7.2.5: thunky "^1.0.2" nan@^2.17.0: - version "2.17.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" - integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== + version "2.18.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" + integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== nanoid@^3.3.6: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== - -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== natural-compare@^1.4.0: version "1.4.0" @@ -8486,9 +8547,9 @@ no-case@^3.0.4: tslib "^2.0.3" node-fetch@^2.6.7: - version "2.6.8" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.8.tgz#a68d30b162bc1d8fd71a367e81b997e1f4d4937e" - integrity sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg== + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" @@ -8509,16 +8570,11 @@ node-preload@^0.2.1: dependencies: process-on-spawn "^1.0.0" -node-releases@^2.0.12: +node-releases@^2.0.13: version "2.0.13" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== -node-releases@^2.0.6: - version "2.0.8" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" - integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== - nodemon@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.0.1.tgz#affe822a2c5f21354466b2fc8ae83277d27dadc7" @@ -8618,9 +8674,9 @@ nth-check@^2.0.0, nth-check@^2.0.1: boolbase "^1.0.0" nwsapi@^2.2.0, nwsapi@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" - integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== + version "2.2.7" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" + integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== nyc@^15.1.0: version "15.1.0" @@ -8660,25 +8716,17 @@ object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.12.2, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" +object-inspect@^1.13.1, object-inspect@^1.9.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.2, object.assign@^4.1.3, object.assign@^4.1.4: +object.assign@^4.1.2, object.assign@^4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== @@ -8688,50 +8736,61 @@ object.assign@^4.1.2, object.assign@^4.1.3, object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.2, object.entries@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" - integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== +object.entries@^1.1.2, object.entries@^1.1.5, object.entries@^1.1.6, object.entries@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" + integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -object.fromentries@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" - integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== +object.fromentries@^2.0.6, object.fromentries@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" object.getownpropertydescriptors@^2.1.0: - version "2.1.5" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz#db5a9002489b64eef903df81d6623c07e5b4b4d3" - integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw== + version "2.1.7" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz#7a466a356cd7da4ba8b9e94ff6d35c3eeab5d56a" + integrity sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g== dependencies: - array.prototype.reduce "^1.0.5" + array.prototype.reduce "^1.0.6" call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" + safe-array-concat "^1.0.0" + +object.groupby@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" + integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" object.hasown@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" - integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.3.tgz#6a5f2897bb4d3668b8e79364f98ccf971bda55ae" + integrity sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA== dependencies: - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -object.values@^1.1.0, object.values@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" - integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== +object.values@^1.1.0, object.values@^1.1.6, object.values@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" @@ -8796,37 +8855,25 @@ onnxruntime-web@1.14.0: platform "^1.3.6" open@^8.0.9: - version "8.4.0" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" - integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== dependencies: define-lazy-prop "^2.0.0" is-docker "^2.1.1" is-wsl "^2.2.0" -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.3" p-any@^2.0.0: version "2.1.0" @@ -8909,13 +8956,6 @@ p-map@^3.0.0: dependencies: aggregate-error "^3.0.0" -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - p-memoize@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-memoize/-/p-memoize-2.1.0.tgz#9ac80c8cf9373c52dfece6aae1fd2e300602898a" @@ -9105,7 +9145,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pidtree@^0.6.0: +pidtree@0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== @@ -9115,12 +9155,7 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - -pirates@^4.0.5: +pirates@^4.0.4, pirates@^4.0.5: version "4.0.6" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== @@ -9170,12 +9205,12 @@ postcss-clamp@^4.1.0: dependencies: postcss-value-parser "^4.2.0" -postcss-color-functional-notation@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.0.tgz#dcc1b8b6273099c597a790dc484d89e2573f5f17" - integrity sha512-kaWTgnhRKFtfMF8H0+NQBFxgr5CGg05WGe07Mc1ld6XHwwRWlqSbHOW0zwf+BtkBQpsdVUu7+gl9dtdvhWMedw== +postcss-color-functional-notation@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.2.tgz#5fa38d36cd0e2ea9db7fd6f2f2a1ffb2c0796a8d" + integrity sha512-FsjSmlSufuiFBsIqQ++VxFmvX7zKndZpBkHmfXr4wqhvzM92FTEkAh703iqWTl1U3faTgqioIqCbfqdWiFVwtw== dependencies: - "@csstools/postcss-progressive-custom-properties" "^3.0.0" + "@csstools/postcss-progressive-custom-properties" "^3.0.2" postcss-value-parser "^4.2.0" postcss-color-hex-alpha@^9.0.2: @@ -9185,41 +9220,41 @@ postcss-color-hex-alpha@^9.0.2: dependencies: postcss-value-parser "^4.2.0" -postcss-color-rebeccapurple@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-9.0.0.tgz#317bf718962c70b779efacf3dc040c56f05d03ce" - integrity sha512-RmUFL+foS05AKglkEoqfx+KFdKRVmqUAxlHNz4jLqIi7046drIPyerdl4B6j/RA2BSP8FI8gJcHmLRrwJOMnHw== +postcss-color-rebeccapurple@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-9.0.1.tgz#d1266b9a9571ca478c8ce7ad97a15727eac3c6b2" + integrity sha512-ds4cq5BjRieizVb2PnvbJ0omg9VCo2/KzluvoFZbxuGpsGJ5BQSD93CHBooinEtangCM5YqUOerGDl4xGmOb6Q== dependencies: postcss-value-parser "^4.2.0" -postcss-custom-media@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-10.0.0.tgz#299781f67d043de7d3eaa13923c26c586d9cd57a" - integrity sha512-NxDn7C6GJ7X8TsWOa8MbCdq9rLERRLcPfQSp856k1jzMreL8X9M6iWk35JjPRIb9IfRnVohmxAylDRx7n4Rv4g== - dependencies: - "@csstools/cascade-layer-name-parser" "^1.0.3" - "@csstools/css-parser-algorithms" "^2.3.0" - "@csstools/css-tokenizer" "^2.1.1" - "@csstools/media-query-list-parser" "^2.1.2" - -postcss-custom-properties@^13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-13.3.0.tgz#53361280a9ec57c2ac448c0877ba25c4978241ee" - integrity sha512-q4VgtIKSy5+KcUvQ0WxTjDy9DZjQ5VCXAZ9+tT9+aPMbA0z6s2t1nMw0QHszru1ib5ElkXl9JUpYYU37VVUs7g== - dependencies: - "@csstools/cascade-layer-name-parser" "^1.0.4" - "@csstools/css-parser-algorithms" "^2.3.1" - "@csstools/css-tokenizer" "^2.2.0" +postcss-custom-media@^10.0.2: + version "10.0.2" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-10.0.2.tgz#70a244bbc59fc953ab6573e4e2c9624639aef08a" + integrity sha512-zcEFNRmDm2fZvTPdI1pIW3W//UruMcLosmMiCdpQnrCsTRzWlKQPYMa1ud9auL0BmrryKK1+JjIGn19K0UjO/w== + dependencies: + "@csstools/cascade-layer-name-parser" "^1.0.5" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" + "@csstools/media-query-list-parser" "^2.1.5" + +postcss-custom-properties@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-13.3.2.tgz#88952f883003d897ade5c836e1e005b09a12f02b" + integrity sha512-2Coszybpo8lpLY24vy2CYv9AasiZ39/bs8Imv0pWMq55Gl8NWzfc24OAo3zIX7rc6uUJAqESnVOMZ6V6lpMjJA== + dependencies: + "@csstools/cascade-layer-name-parser" "^1.0.5" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" postcss-value-parser "^4.2.0" -postcss-custom-selectors@^7.1.4: - version "7.1.4" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-7.1.4.tgz#5980972353119af0d9725bdcccad46be8cfc9011" - integrity sha512-TU2xyUUBTlpiLnwyE2ZYMUIYB41MKMkBZ8X8ntkqRDQ8sdBLhFFsPgNcOliBd5+/zcK51C9hRnSE7hKUJMxQSw== +postcss-custom-selectors@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-7.1.6.tgz#6d28812998dcd48f61a6a538141fc16cf2c42123" + integrity sha512-svsjWRaxqL3vAzv71dV0/65P24/FB8TbPX+lWyyf9SZ7aZm4S4NhCn7N3Bg+Z5sZunG3FS8xQ80LrCU9hb37cw== dependencies: - "@csstools/cascade-layer-name-parser" "^1.0.3" - "@csstools/css-parser-algorithms" "^2.3.0" - "@csstools/css-tokenizer" "^2.1.1" + "@csstools/cascade-layer-name-parser" "^1.0.5" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" postcss-selector-parser "^6.0.13" postcss-dir-pseudo-class@^8.0.0: @@ -9229,12 +9264,12 @@ postcss-dir-pseudo-class@^8.0.0: dependencies: postcss-selector-parser "^6.0.13" -postcss-double-position-gradients@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-5.0.0.tgz#cdc11e1210c3fbd3f7bc242a5ee83e5b9d7db8fa" - integrity sha512-wR8npIkrIVUTicUpCWSSo1f/g7gAEIH70FMqCugY4m4j6TX4E0T2Q5rhfO0gqv00biBZdLyb+HkW8x6as+iJNQ== +postcss-double-position-gradients@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-5.0.2.tgz#a55ed4d6a395f324aa5535ea8c42c74e8ace2651" + integrity sha512-KTbvdOOy8z8zb0BTkEg4/1vqlRlApdvjw8/pFoehgQl0WVO+fezDGlvo0B8xRA+XccA7ohkQCULKNsiNOx70Cw== dependencies: - "@csstools/postcss-progressive-custom-properties" "^3.0.0" + "@csstools/postcss-progressive-custom-properties" "^3.0.2" postcss-value-parser "^4.2.0" postcss-focus-visible@^9.0.0: @@ -9261,27 +9296,22 @@ postcss-gap-properties@^5.0.0: resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-5.0.0.tgz#3bd77f3d51facb1da404b4edd72b8203929385a5" integrity sha512-YjsEEL6890P7MCv6fch6Am1yq0EhQCJMXyT4LBohiu87+4/WqR7y5W3RIv53WdA901hhytgRvjlrAhibhW4qsA== -postcss-image-set-function@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-6.0.0.tgz#a5aba4a805ae903ab8200b584242149c48c481fb" - integrity sha512-bg58QnJexFpPBU4IGPAugAPKV0FuFtX5rHYNSKVaV91TpHN7iwyEzz1bkIPCiSU5+BUN00e+3fV5KFrwIgRocw== +postcss-image-set-function@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-6.0.1.tgz#e2bba0a0536a0c70f63933f7c5df68742e9615ca" + integrity sha512-VlZncC9hhZ5tg0JllY4g6Z28BeoPO8DIkelioEEkXL0AA0IORlqYpTi2L8TUnl4YQrlwvBgxVy+mdZJw5R/cIQ== dependencies: postcss-value-parser "^4.2.0" -postcss-initial@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42" - integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== - -postcss-lab-function@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-6.0.1.tgz#46dc530a242972d47018c6627128d8e9e96b82c8" - integrity sha512-/Xl6JitDh7jWkcOLxrHcAlEaqkxyaG3g4iDMy5RyhNaiQPJ9Egf2+Mxp1W2qnH5jB2bj59f3RbdKmC6qx1IcXA== +postcss-lab-function@^6.0.7: + version "6.0.7" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-6.0.7.tgz#b1dd0ad5a4c993b7695614239754b9be48f3b24b" + integrity sha512-4d1lhDVPukHFqkMv4G5vVcK+tgY52vwb5uR1SWKOaO5389r2q8fMxBWuXSW+YtbCOEGP0/X9KERi9E9le2pJuw== dependencies: - "@csstools/css-color-parser" "^1.2.2" - "@csstools/css-parser-algorithms" "^2.3.1" - "@csstools/css-tokenizer" "^2.2.0" - "@csstools/postcss-progressive-custom-properties" "^3.0.0" + "@csstools/css-color-parser" "^1.4.0" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" + "@csstools/postcss-progressive-custom-properties" "^3.0.2" postcss-loader@^7.3.3: version "7.3.3" @@ -9332,10 +9362,10 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-nesting@^12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-12.0.0.tgz#729932293b925ac5bffcb6df1e2620faa0447554" - integrity sha512-knqwW65kxssmyIFadRSimaiRyLVRd0MdwfabesKw6XvGLwSOCJ+4zfvNQQCOOYij5obwpZzDpODuGRv2PCyiUw== +postcss-nesting@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-12.0.1.tgz#abb76d15dfd59a9f7d03b4464f53b60a4d3795c4" + integrity sha512-6LCqCWP9pqwXw/njMvNK0hGY44Fxc4B2EsGbn6xDcxbNRzP8GYoxT7yabVVMLrX3quqOJ9hg2jYMsnkedOf8pA== dependencies: "@csstools/selector-specificity" "^3.0.0" postcss-selector-parser "^6.0.13" @@ -9365,59 +9395,62 @@ postcss-place@^9.0.0: postcss-value-parser "^4.2.0" postcss-preset-env@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-9.1.0.tgz#3e996fc261f69423a18830f7c301cb286c030d4a" - integrity sha512-G+x9BD7jb9uHBB7o720emXV00CP+VdWeirJsHC5ERSpbTd2e6Xg7vHzT+a6UkxFyddALuV+Q8wJMgeTKaau+Pg== - dependencies: - "@csstools/postcss-cascade-layers" "^4.0.0" - "@csstools/postcss-color-function" "^3.0.1" - "@csstools/postcss-color-mix-function" "^2.0.1" - "@csstools/postcss-exponential-functions" "^1.0.0" + version "9.3.0" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-9.3.0.tgz#58f296087cf3dc18cb75af11954c6c5822220327" + integrity sha512-ycw6doPrqV6QxDCtgiyGDef61bEfiSc59HGM4gOw/wxQxmKnhuEery61oOC/5ViENz/ycpRsuhTexs1kUBTvVw== + dependencies: + "@csstools/postcss-cascade-layers" "^4.0.1" + "@csstools/postcss-color-function" "^3.0.7" + "@csstools/postcss-color-mix-function" "^2.0.7" + "@csstools/postcss-exponential-functions" "^1.0.1" "@csstools/postcss-font-format-keywords" "^3.0.0" - "@csstools/postcss-gradients-interpolation-method" "^4.0.1" - "@csstools/postcss-hwb-function" "^3.0.1" - "@csstools/postcss-ic-unit" "^3.0.0" - "@csstools/postcss-is-pseudo-class" "^4.0.0" + "@csstools/postcss-gamut-mapping" "^1.0.0" + "@csstools/postcss-gradients-interpolation-method" "^4.0.7" + "@csstools/postcss-hwb-function" "^3.0.6" + "@csstools/postcss-ic-unit" "^3.0.2" + "@csstools/postcss-initial" "^1.0.0" + "@csstools/postcss-is-pseudo-class" "^4.0.3" "@csstools/postcss-logical-float-and-clear" "^2.0.0" + "@csstools/postcss-logical-overflow" "^1.0.0" + "@csstools/postcss-logical-overscroll-behavior" "^1.0.0" "@csstools/postcss-logical-resize" "^2.0.0" - "@csstools/postcss-logical-viewport-units" "^2.0.1" - "@csstools/postcss-media-minmax" "^1.0.6" - "@csstools/postcss-media-queries-aspect-ratio-number-values" "^2.0.1" + "@csstools/postcss-logical-viewport-units" "^2.0.3" + "@csstools/postcss-media-minmax" "^1.1.0" + "@csstools/postcss-media-queries-aspect-ratio-number-values" "^2.0.3" "@csstools/postcss-nested-calc" "^3.0.0" - "@csstools/postcss-normalize-display-values" "^3.0.0" - "@csstools/postcss-oklab-function" "^3.0.1" - "@csstools/postcss-progressive-custom-properties" "^3.0.0" - "@csstools/postcss-relative-color-syntax" "^2.0.1" + "@csstools/postcss-normalize-display-values" "^3.0.1" + "@csstools/postcss-oklab-function" "^3.0.7" + "@csstools/postcss-progressive-custom-properties" "^3.0.2" + "@csstools/postcss-relative-color-syntax" "^2.0.7" "@csstools/postcss-scope-pseudo-class" "^3.0.0" - "@csstools/postcss-stepped-value-functions" "^3.0.1" - "@csstools/postcss-text-decoration-shorthand" "^3.0.0" - "@csstools/postcss-trigonometric-functions" "^3.0.1" + "@csstools/postcss-stepped-value-functions" "^3.0.2" + "@csstools/postcss-text-decoration-shorthand" "^3.0.3" + "@csstools/postcss-trigonometric-functions" "^3.0.2" "@csstools/postcss-unset-value" "^3.0.0" - autoprefixer "^10.4.14" - browserslist "^4.21.9" + autoprefixer "^10.4.16" + browserslist "^4.22.1" css-blank-pseudo "^6.0.0" css-has-pseudo "^6.0.0" css-prefers-color-scheme "^9.0.0" - cssdb "^7.7.0" + cssdb "^7.9.0" postcss-attribute-case-insensitive "^6.0.2" postcss-clamp "^4.1.0" - postcss-color-functional-notation "^6.0.0" + postcss-color-functional-notation "^6.0.2" postcss-color-hex-alpha "^9.0.2" - postcss-color-rebeccapurple "^9.0.0" - postcss-custom-media "^10.0.0" - postcss-custom-properties "^13.3.0" - postcss-custom-selectors "^7.1.4" + postcss-color-rebeccapurple "^9.0.1" + postcss-custom-media "^10.0.2" + postcss-custom-properties "^13.3.2" + postcss-custom-selectors "^7.1.6" postcss-dir-pseudo-class "^8.0.0" - postcss-double-position-gradients "^5.0.0" + postcss-double-position-gradients "^5.0.2" postcss-focus-visible "^9.0.0" postcss-focus-within "^8.0.0" postcss-font-variant "^5.0.0" postcss-gap-properties "^5.0.0" - postcss-image-set-function "^6.0.0" - postcss-initial "^4.0.1" - postcss-lab-function "^6.0.1" + postcss-image-set-function "^6.0.1" + postcss-lab-function "^6.0.7" postcss-logical "^7.0.0" - postcss-nesting "^12.0.0" + postcss-nesting "^12.0.1" postcss-opacity-percentage "^2.0.0" postcss-overflow-shorthand "^5.0.0" postcss-page-break "^3.0.4" @@ -9450,9 +9483,9 @@ postcss-safe-parser@^6.0.0: integrity sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ== postcss-scss@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.6.tgz#5d62a574b950a6ae12f2aa89b60d63d9e4432bfd" - integrity sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ== + version "4.0.9" + resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.9.tgz#a03c773cd4c9623cb04ce142a52afcec74806685" + integrity sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A== postcss-selector-not@^7.0.1: version "7.0.1" @@ -9474,7 +9507,7 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@8, postcss@^8.4.21, postcss@^8.4.25: +postcss@8, postcss@^8.4.21, postcss@^8.4.28: version "8.4.31" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== @@ -9488,11 +9521,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" @@ -9516,12 +9544,12 @@ pretty-format@^24.9.0: ansi-styles "^3.2.0" react-is "^16.8.4" -pretty-format@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" - integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw== +pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== dependencies: - "@jest/schemas" "^29.4.3" + "@jest/schemas" "^29.6.3" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -9537,11 +9565,6 @@ process-on-spawn@^1.0.0: dependencies: fromentries "^1.2.0" -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - prompts@^2.0.1: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" @@ -9569,9 +9592,9 @@ proper-lockfile@^4.1.2: signal-exit "^3.0.2" property-information@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.2.0.tgz#b74f522c31c097b5149e3c3cb8d7f3defd986a1d" - integrity sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg== + version "6.4.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.4.0.tgz#6bc4c618b0c2d68b3bb8b552cbb97f8e300a0f82" + integrity sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ== protobufjs@^6.8.8: version "6.11.4" @@ -9633,14 +9656,14 @@ pump@^3.0.0: once "^1.3.1" punycode@^2.1.0, punycode@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.2.0.tgz#2092cc57cd2582c38e4e7e8bb869dc8d3148bc74" - integrity sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== pure-rand@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.1.tgz#31207dddd15d43f299fdcdb2f572df65030c19af" - integrity sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg== + version "6.0.4" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" + integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== q@^1.1.2: version "1.5.1" @@ -9843,9 +9866,9 @@ rc-menu@~9.3.2: shallowequal "^1.1.0" rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.2.0, rc-motion@^2.3.0, rc-motion@^2.3.4, rc-motion@^2.4.3, rc-motion@^2.4.4: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rc-motion/-/rc-motion-2.6.3.tgz#e6d8ca06591c2c1bcd3391a8e7a822ebc4d94e9c" - integrity sha512-xFLkes3/7VL/J+ah9jJruEW/Akbx5F6jVa2wG5o/ApGKQKSOd5FR3rseHLL9+xtJg4PmCwo6/1tqhDO/T+jFHA== + version "2.9.0" + resolved "https://registry.yarnpkg.com/rc-motion/-/rc-motion-2.9.0.tgz#9e18a1b8d61e528a97369cf9a7601e9b29205710" + integrity sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ== dependencies: "@babel/runtime" "^7.11.1" classnames "^2.2.1" @@ -9862,14 +9885,14 @@ rc-notification@~4.5.7: rc-util "^5.0.1" rc-overflow@^1.0.0, rc-overflow@^1.2.0: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc-overflow/-/rc-overflow-1.2.8.tgz#40f140fabc244118543e627cdd1ef750d9481a88" - integrity sha512-QJ0UItckWPQ37ZL1dMEBAdY1dhfTXFL9k6oTTcyydVwoUNMnMqCGqnRNA98axSr/OeDKqR6DVFyi8eA5RQI/uQ== + version "1.3.2" + resolved "https://registry.yarnpkg.com/rc-overflow/-/rc-overflow-1.3.2.tgz#72ee49e85a1308d8d4e3bd53285dc1f3e0bcce2c" + integrity sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw== dependencies: "@babel/runtime" "^7.11.1" classnames "^2.2.1" rc-resize-observer "^1.0.0" - rc-util "^5.19.2" + rc-util "^5.37.0" rc-pagination@~3.1.9: version "3.1.17" @@ -9880,9 +9903,9 @@ rc-pagination@~3.1.9: classnames "^2.2.1" rc-picker@^3.1.4: - version "3.13.1" - resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-3.13.1.tgz#06adc7b1ccbcfa05ff1ac9aae0c696fb5546f20d" - integrity sha512-211SrinX5IXZ9FMMDUMyPLuGOdfftUtd8zj4lqudpFxlMdtgV5+hXUJMBKb26xmDsleOm5iySK6KIHgiaI+U4w== + version "3.14.6" + resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-3.14.6.tgz#60fc34f9883272e10f6c593fa6d82e7e7a70781b" + integrity sha512-AdKKW0AqMwZsKvIpwUWDUnpuGKZVrbxVTZTNjcO+pViGkjC1EBcjMgxVe8tomOEaIHJL5Gd13vS8Rr3zzxWmag== dependencies: "@babel/runtime" "^7.10.1" "@rc-component/trigger" "^1.5.0" @@ -9913,32 +9936,22 @@ rc-progress@~3.2.1: rc-util "^5.16.1" rc-rate@~2.9.0: - version "2.9.2" - resolved "https://registry.yarnpkg.com/rc-rate/-/rc-rate-2.9.2.tgz#4a58965d1ecf91896ebae01d458b59056df0b4ea" - integrity sha512-SaiZFyN8pe0Fgphv8t3+kidlej+cq/EALkAJAc3A0w0XcPaH2L1aggM8bhe1u6GAGuQNAoFvTLjw4qLPGRKV5g== + version "2.9.3" + resolved "https://registry.yarnpkg.com/rc-rate/-/rc-rate-2.9.3.tgz#b30a8043ffcb327bab053cd78508e07015d8a483" + integrity sha512-2THssUSnRhtqIouQIIXqsZGzRczvp4WsH4WvGuhiwm+LG2fVpDUJliP9O1zeDOZvYfBE/Bup4SgHun/eCkbjgQ== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.2.5" rc-util "^5.0.1" -rc-resize-observer@^1.0.0, rc-resize-observer@^1.1.0, rc-resize-observer@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/rc-resize-observer/-/rc-resize-observer-1.2.1.tgz#7f9715b5d1afe126ade3c107aafd2cebf8a57a99" - integrity sha512-g53PnWLeVOmt4XWkt2x+QlIdf/PhJSd7JqHhtMrUY370e7wJ+kxbgXicYqvENUcgFiiOiMCd07YsC2GNsoSbnA== - dependencies: - "@babel/runtime" "^7.20.7" - classnames "^2.2.1" - rc-util "^5.27.0" - resize-observer-polyfill "^1.5.1" - -rc-resize-observer@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/rc-resize-observer/-/rc-resize-observer-1.3.1.tgz#b61b9f27048001243617b81f95e53d7d7d7a6a3d" - integrity sha512-iFUdt3NNhflbY3mwySv5CA1TC06zdJ+pfo0oc27xpf4PIOvfZwZGtD9Kz41wGYqC4SLio93RVAirSSpYlV/uYg== +rc-resize-observer@^1.0.0, rc-resize-observer@^1.1.0, rc-resize-observer@^1.2.0, rc-resize-observer@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz#7bba61e6b3c604834980647cce6451914750d0cc" + integrity sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q== dependencies: "@babel/runtime" "^7.20.7" classnames "^2.2.1" - rc-util "^5.27.0" + rc-util "^5.38.0" resize-observer-polyfill "^1.5.1" rc-select@~14.0.0-alpha.15, rc-select@~14.0.0-alpha.23, rc-select@~14.0.0-alpha.8: @@ -10018,9 +10031,9 @@ rc-textarea@^0.3.0, rc-textarea@~0.3.0: shallowequal "^1.1.0" rc-tooltip@^5.0.1: - version "5.3.0" - resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-5.3.0.tgz#402bd5e5a1a3dd873f4eb33ee5ecffa6131c594d" - integrity sha512-byrFkrJO4jsDclDTtDq9Iro5BT6FeFZlfRat5KLCcWiQIzkSQUUiy+76qbr6FjS2Qze0+ya7MKxdTuOMoOq4Kw== + version "5.3.1" + resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-5.3.1.tgz#3dde4e1865f79cd23f202bba4e585c2a1173024b" + integrity sha512-e6H0dMD38EPaSPD2XC8dRfct27VvT2TkPdoBSuNl3RRZ5tspiY/c5xYEmGC0IrABvMBgque4Mr2SMZuliCvoiQ== dependencies: "@babel/runtime" "^7.11.2" classnames "^2.3.1" @@ -10068,39 +10081,31 @@ rc-trigger@^5.0.0, rc-trigger@^5.0.4, rc-trigger@^5.1.2, rc-trigger@^5.2.10, rc- rc-util "^5.19.2" rc-upload@~4.3.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.3.4.tgz#83ff7d3867631c37adbfd72ea3d1fd7e97ca84af" - integrity sha512-uVbtHFGNjHG/RyAfm9fluXB6pvArAGyAx8z7XzXXyorEgVIWj6mOlriuDm0XowDHYz4ycNK0nE0oP3cbFnzxiQ== + version "4.3.5" + resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.3.5.tgz#12fc69b2af74d08646a104828831bcaf44076eda" + integrity sha512-EHlKJbhkgFSQHliTj9v/2K5aEuFwfUQgZARzD7AmAPOneZEPiCNF3n6PEWIuqz9h7oq6FuXgdR67sC5BWFxJbA== dependencies: "@babel/runtime" "^7.18.3" classnames "^2.2.5" rc-util "^5.2.0" -rc-util@^5.0.1, rc-util@^5.0.6, rc-util@^5.12.0, rc-util@^5.14.0, rc-util@^5.15.0, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.19.2, rc-util@^5.2.0, rc-util@^5.2.1, rc-util@^5.21.0, rc-util@^5.23.0, rc-util@^5.26.0, rc-util@^5.27.0, rc-util@^5.4.0, rc-util@^5.5.0, rc-util@^5.6.1, rc-util@^5.7.0, rc-util@^5.8.0, rc-util@^5.9.4: - version "5.27.1" - resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.27.1.tgz#d12f02b9577b04299c0f1a235c8acbcf56e2824b" - integrity sha512-PsjHA+f+KBCz+YTZxrl3ukJU5RoNKoe3KSNMh0xGiISbR67NaM9E9BiMjCwxa3AcCUOg/rZ+V0ZKLSimAA+e3w== +rc-util@^5.0.1, rc-util@^5.0.6, rc-util@^5.12.0, rc-util@^5.14.0, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.19.2, rc-util@^5.2.0, rc-util@^5.2.1, rc-util@^5.21.0, rc-util@^5.23.0, rc-util@^5.24.4, rc-util@^5.26.0, rc-util@^5.30.0, rc-util@^5.36.0, rc-util@^5.37.0, rc-util@^5.38.0, rc-util@^5.4.0, rc-util@^5.5.0, rc-util@^5.6.1, rc-util@^5.7.0, rc-util@^5.8.0, rc-util@^5.9.4: + version "5.38.1" + resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.38.1.tgz#4915503b89855f5c5cd9afd4c72a7a17568777bb" + integrity sha512-e4ZMs7q9XqwTuhIK7zBIVFltUtMSjphuPPQXHoHlzRzNdOwUxDejo0Zls5HYaJfRKNURcsS/ceKVULlhjBrxng== dependencies: "@babel/runtime" "^7.18.3" - react-is "^16.12.0" - -rc-util@^5.24.4, rc-util@^5.30.0, rc-util@^5.33.0: - version "5.37.0" - resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.37.0.tgz#6df9a55cb469b41b6995530a45b5f3dd3219a4ea" - integrity sha512-cPMV8DzaHI1KDaS7XPRXAf4J7mtBqjvjikLpQieaeOO7+cEbqY2j7Kso/T0R0OiEZTNcLS/8Zl9YrlXiO9UbjQ== - dependencies: - "@babel/runtime" "^7.18.3" - react-is "^16.12.0" + react-is "^18.2.0" rc-virtual-list@^3.2.0, rc-virtual-list@^3.4.2: - version "3.4.13" - resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.4.13.tgz#20acc934b263abcf7b7c161f50ef82281b2f7e8d" - integrity sha512-cPOVDmcNM7rH6ANotanMDilW/55XnFPw0Jh/GQYtrzZSy3AmWvCnqVNyNC/pgg3lfVmX2994dlzAhuUrd4jG7w== + version "3.11.3" + resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.11.3.tgz#77d4e12e20c1ba314b43c0e37e118296674c5401" + integrity sha512-tu5UtrMk/AXonHwHxUogdXAWynaXsrx1i6dsgg+lOo/KJSF8oBAcprh1z5J3xgnPJD5hXxTL58F8s8onokdt0Q== dependencies: "@babel/runtime" "^7.20.0" classnames "^2.2.6" rc-resize-observer "^1.0.0" - rc-util "^5.15.0" + rc-util "^5.36.0" react-chartjs-2@^5.2.0: version "5.2.0" @@ -10139,26 +10144,27 @@ react-dom@^16.14.0: prop-types "^15.6.2" scheduler "^0.19.1" -react-draggable@^4.0.0, react-draggable@^4.0.3: - version "4.4.5" - resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-4.4.5.tgz#9e37fe7ce1a4cf843030f521a0a4cc41886d7e7c" - integrity sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g== +react-draggable@^4.0.3, react-draggable@^4.4.5: + version "4.4.6" + resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-4.4.6.tgz#63343ee945770881ca1256a5b6fa5c9f5983fe1e" + integrity sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw== dependencies: clsx "^1.1.1" prop-types "^15.8.1" react-grid-layout@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/react-grid-layout/-/react-grid-layout-1.3.4.tgz#4fa819be24a1ba9268aa11b82d63afc4762a32ff" - integrity sha512-sB3rNhorW77HUdOjB4JkelZTdJGQKuXLl3gNg+BI8gJkTScspL1myfZzW/EM0dLEn+1eH+xW+wNqk0oIM9o7cw== + version "1.4.4" + resolved "https://registry.yarnpkg.com/react-grid-layout/-/react-grid-layout-1.4.4.tgz#0bdb19d6db061556868fef1f430cc8c14d21f131" + integrity sha512-7+Lg8E8O8HfOH5FrY80GCIR1SHTn2QnAYKh27/5spoz+OHhMmEhU/14gIkRzJOtympDPaXcVRX/nT1FjmeOUmQ== dependencies: - clsx "^1.1.1" - lodash.isequal "^4.0.0" + clsx "^2.0.0" + fast-equals "^4.0.3" prop-types "^15.8.1" - react-draggable "^4.0.0" - react-resizable "^3.0.4" + react-draggable "^4.4.5" + react-resizable "^3.0.5" + resize-observer-polyfill "^1.5.1" -react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.4: +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.4: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -10168,33 +10174,12 @@ react-is@^17.0.2: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== -react-is@^18.0.0: +react-is@^18.0.0, react-is@^18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -react-markdown@^8.0.4: - version "8.0.4" - resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.4.tgz#b5ff1f0f29ead71a7a6f98815eb1a70bcc2a036e" - integrity sha512-2oxHa6oDxc1apg/Gnc1Goh06t3B617xeywqI/92wmDV9FELI6ayRkwge7w7DoEqM0gRpZGTNU6xQG+YpJISnVg== - dependencies: - "@types/hast" "^2.0.0" - "@types/prop-types" "^15.0.0" - "@types/unist" "^2.0.0" - comma-separated-tokens "^2.0.0" - hast-util-whitespace "^2.0.0" - prop-types "^15.0.0" - property-information "^6.0.0" - react-is "^18.0.0" - remark-parse "^10.0.0" - remark-rehype "^10.0.0" - space-separated-tokens "^2.0.0" - style-to-object "^0.3.0" - unified "^10.0.0" - unist-util-visit "^4.0.0" - vfile "^5.0.0" - -react-markdown@~8.0.0: +react-markdown@^8.0.4, react-markdown@~8.0.0: version "8.0.7" resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.7.tgz#c8dbd1b9ba5f1c5e7e5f2a44de465a3caafdf89b" integrity sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ== @@ -10233,9 +10218,9 @@ react-redux@^7.2.2: react-is "^17.0.2" react-redux@^8.0.2: - version "8.0.5" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.0.5.tgz#e5fb8331993a019b8aaf2e167a93d10af469c7bd" - integrity sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw== + version "8.1.3" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.1.3.tgz#4fdc0462d0acb59af29a13c27ffef6f49ab4df46" + integrity sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw== dependencies: "@babel/runtime" "^7.12.1" "@types/hoist-non-react-statics" "^3.3.1" @@ -10244,10 +10229,10 @@ react-redux@^8.0.2: react-is "^18.0.0" use-sync-external-store "^1.0.0" -react-resizable@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/react-resizable/-/react-resizable-3.0.4.tgz#aa20108eff28c52c6fddaa49abfbef8abf5e581b" - integrity sha512-StnwmiESiamNzdRHbSSvA65b0ZQJ7eVQpPusrSmcpyGKzC0gojhtO62xxH6YOBmepk9dQTBi9yxidL3W4s3EBA== +react-resizable@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/react-resizable/-/react-resizable-3.0.5.tgz#362721f2efbd094976f1780ae13f1ad7739786c1" + integrity sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w== dependencies: prop-types "15.x" react-draggable "^4.0.3" @@ -10346,9 +10331,9 @@ read-pkg@^6.0.0: type-fest "^1.0.1" readable-stream@^2.0.1, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -10359,9 +10344,9 @@ readable-stream@^2.0.1, readable-stream@~2.3.6: util-deprecate "~1.0.1" readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -10374,12 +10359,12 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -rechoir@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" - integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== dependencies: - resolve "^1.9.0" + resolve "^1.20.0" redent@^4.0.0: version "4.0.0" @@ -10406,21 +10391,26 @@ redux-thunk@^2.3.0: resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.4.2.tgz#b9d05d11994b99f7a91ea223e8b04cf0afa5ef3b" integrity sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q== -redux@^4.0.0, redux@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.0.tgz#46f10d6e29b6666df758780437651eeb2b969f13" - integrity sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA== - dependencies: - "@babel/runtime" "^7.9.2" - -redux@^4.2.0: +redux@^4.0.0, redux@^4.1.1, redux@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== dependencies: "@babel/runtime" "^7.9.2" -refractor@^4.7.0: +reflect.getprototypeof@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3" + integrity sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + globalthis "^1.0.3" + which-builtin-type "^1.1.3" + +refractor@^4.8.0: version "4.8.1" resolved "https://registry.yarnpkg.com/refractor/-/refractor-4.8.1.tgz#fbdd889333a3d86c9c864479622855c9b38e9d42" integrity sha512-/fk5sI0iTgFYlmVGYVew90AoYnNMP6pooClx/XKqyeeCQXrL0Kvgn8V0VEht5ccdljbzzF1i3Q213gcntkRExg== @@ -10431,9 +10421,9 @@ refractor@^4.7.0: parse-entities "^4.0.0" regenerate-unicode-properties@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" - integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== dependencies: regenerate "^1.4.2" @@ -10442,59 +10432,44 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.11: - version "0.13.11" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== - regenerator-runtime@^0.14.0: version "0.14.0" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== -regenerator-transform@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" - integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" regexp-tree@~0.1.1: - version "0.1.24" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.24.tgz#3d6fa238450a4d66e5bc9c4c14bb720e2196829d" - integrity sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw== + version "0.1.27" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" + integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== -regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== +regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" + define-properties "^1.2.0" + set-function-name "^2.0.0" -regexpp@^3.1.0, regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -regexpu-core@^5.2.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.2.tgz#3e4e5d12103b64748711c3aad69934d7718e75fc" - integrity sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw== +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== dependencies: + "@babel/regjsgen" "^0.8.0" regenerate "^1.4.2" regenerate-unicode-properties "^10.1.0" - regjsgen "^0.7.1" regjsparser "^0.9.1" unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.1.0" -regjsgen@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.7.1.tgz#ee5ef30e18d3f09b7c369b76e7c2373ed25546f6" - integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA== - regjsparser@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" @@ -10533,23 +10508,23 @@ rehype-ignore@^1.0.1: unist-util-visit "^4.1.2" rehype-parse@^8.0.0, rehype-parse@^8.0.2: - version "8.0.4" - resolved "https://registry.yarnpkg.com/rehype-parse/-/rehype-parse-8.0.4.tgz#3d17c9ff16ddfef6bbcc8e6a25a99467b482d688" - integrity sha512-MJJKONunHjoTh4kc3dsM1v3C9kGrrxvA3U8PxZlP2SjH8RNUSrb+lF7Y0KVaUDnGH2QZ5vAn7ulkiajM9ifuqg== + version "8.0.5" + resolved "https://registry.yarnpkg.com/rehype-parse/-/rehype-parse-8.0.5.tgz#ccffc21e08e288c7846614f8dc1dc23d603a4a80" + integrity sha512-Ds3RglaY/+clEX2U2mHflt7NlMA72KspZ0JLUJgBBLpRddBcEw3H8uYZQliQriku22NZpYMfjDdSgHcjxue24A== dependencies: "@types/hast" "^2.0.0" hast-util-from-parse5 "^7.0.0" parse5 "^6.0.0" unified "^10.0.0" -rehype-prism-plus@~1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/rehype-prism-plus/-/rehype-prism-plus-1.5.1.tgz#b5f4eb3c789a13ffe874c81039665e144bcb1cae" - integrity sha512-mowYefSfrIkMMxkb0fwuEXlvc5nA9b1vQ6mzujM81Qx28RI0mo7jCHsBZ2tJ4eIJKXdFn+EdPkZZBGB10K02vg== +rehype-prism-plus@1.6.3, rehype-prism-plus@~1.6.1: + version "1.6.3" + resolved "https://registry.yarnpkg.com/rehype-prism-plus/-/rehype-prism-plus-1.6.3.tgz#8bf23a4cfc3419349770bb9064a91bdab04fae86" + integrity sha512-F6tn376zimnvy+xW0bSnryul+rvVL7NhDIkavc9kAuzDx5zIZW04A6jdXPkcFBhojcqZB8b6pHt6CLqiUx+Tbw== dependencies: hast-util-to-string "^2.0.0" parse-numeric-range "^1.3.0" - refractor "^4.7.0" + refractor "^4.8.0" rehype-parse "^8.0.2" unist-util-filter "^4.0.0" unist-util-visit "^4.0.0" @@ -10586,9 +10561,9 @@ rehype-slug@~5.1.0: unist-util-visit "^4.0.0" rehype-stringify@^9.0.0: - version "9.0.3" - resolved "https://registry.yarnpkg.com/rehype-stringify/-/rehype-stringify-9.0.3.tgz#70e3bd6d4d29e7acf36b802deed350305d2c3c17" - integrity sha512-kWiZ1bgyWlgOxpqD5HnxShKAdXtb2IUljn3hQAhySeak6IOQPPt6DeGnsIh4ixm7yKJWzm8TXFuC/lPfcWHJqw== + version "9.0.4" + resolved "https://registry.yarnpkg.com/rehype-stringify/-/rehype-stringify-9.0.4.tgz#31dbb9de6f5034c6964760a1b1083218059c4343" + integrity sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ== dependencies: "@types/hast" "^2.0.0" hast-util-to-html "^8.0.0" @@ -11187,9 +11162,9 @@ remark-message-control@^6.0.0: unified-message-control "^3.0.0" remark-parse@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.1.tgz#6f60ae53edbf0cf38ea223fe643db64d112e0775" - integrity sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw== + version "10.0.2" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.2.tgz#ca241fde8751c2158933f031a4e3efbaeb8bc262" + integrity sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw== dependencies: "@types/mdast" "^3.0.0" mdast-util-from-markdown "^1.0.0" @@ -11384,25 +11359,25 @@ resolve-pathname@^3.0.0: integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== resolve.exports@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.1.tgz#cee884cd4e3f355660e501fa3276b27d7ffe5a20" - integrity sha512-OEJWVeimw8mgQuj3HfkNl4KqRevH7lzeQNaWRPfx0PPse7Jk6ozcsG4FKVgtzDsC1KUF+YlTHh17NcgHOPykLw== + version "2.0.2" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.12.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.9.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== +resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" resolve@^2.0.0-next.4: - version "2.0.0-next.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" - integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + version "2.0.0-next.5" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -11413,10 +11388,10 @@ responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== dependencies: onetime "^5.1.0" signal-exit "^3.0.2" @@ -11455,13 +11430,6 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^7.5.7: - version "7.8.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" - integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== - dependencies: - tslib "^2.1.0" - sade@^1.7.3: version "1.8.1" resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" @@ -11469,6 +11437,16 @@ sade@^1.7.3: dependencies: mri "^1.1.0" +safe-array-concat@^1.0.0, safe-array-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -11512,9 +11490,9 @@ sass-loader@^10.0.0: semver "^7.3.2" sass@^1.42.1: - version "1.57.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.57.1.tgz#dfafd46eb3ab94817145e8825208ecf7281119b5" - integrity sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw== + version "1.69.5" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.69.5.tgz#23e18d1c757a35f2e52cc81871060b9ad653dfde" + integrity sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -11556,24 +11534,24 @@ schema-utils@^2.6.5, schema-utils@^2.7.0: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== dependencies: "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" schema-utils@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" - integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== + version "4.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" + integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== dependencies: "@types/json-schema" "^7.0.9" - ajv "^8.8.0" + ajv "^8.9.0" ajv-formats "^2.1.1" - ajv-keywords "^5.0.0" + ajv-keywords "^5.1.0" scroll-into-view-if-needed@^2.2.25: version "2.2.31" @@ -11587,30 +11565,31 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== -selfsigned@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" - integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== +selfsigned@^2.1.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== dependencies: + "@types/node-forge" "^1.3.0" node-forge "^1" -semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - semver@^5.6.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: +semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== +semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -11630,7 +11609,7 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-javascript@^6.0.0: +serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== @@ -11665,6 +11644,25 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +set-function-length@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +set-function-name@^2.0.0, set-function-name@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -11704,6 +11702,11 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shell-quote@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -11719,9 +11722,9 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== signal-exit@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" - integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== simple-concat@^1.0.0: version "1.0.1" @@ -11764,15 +11767,6 @@ slash@^4.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - slice-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" @@ -11848,9 +11842,9 @@ spawn-wrap@^2.0.0: which "^2.0.1" spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" @@ -11869,9 +11863,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.12" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" - integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== + version "3.0.16" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" + integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== spdy-transport@^3.0.0: version "3.0.0" @@ -11938,22 +11932,15 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== -stop-iteration-iterator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" - integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== - dependencies: - internal-slot "^1.0.4" - store@^2.0.12: version "2.0.12" resolved "https://registry.yarnpkg.com/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593" integrity sha512-eO9xlzDpXLiMr9W1nQ3Nfp9EzZieIQc10zPPMP5jsVV7bLOziSFFBP0XoDXACEIFtdI+rIz0NwWVA/QVJ8zJtw== -string-argv@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== +string-argv@0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== string-convert@^0.2.0: version "0.2.1" @@ -11977,7 +11964,7 @@ string-length@^4.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.0: +string-width@^5.0.0, string-width@^5.0.1: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== @@ -11987,36 +11974,46 @@ string-width@^5.0.0: strip-ansi "^7.0.1" string.prototype.matchall@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" - integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== + version "4.0.10" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" + integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.3" + internal-slot "^1.0.5" + regexp.prototype.flags "^1.5.0" + set-function-name "^2.0.0" side-channel "^1.0.4" -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" string_decoder@^1.1.1: version "1.3.0" @@ -12055,9 +12052,9 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: ansi-regex "^5.0.1" strip-ansi@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" - integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" @@ -12088,7 +12085,7 @@ strip-indent@^4.0.0: dependencies: min-indent "^1.0.1" -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -12106,17 +12103,10 @@ style-search@^0.1.0: resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" integrity sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg== -style-to-object@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" - integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== - dependencies: - inline-style-parser "0.1.1" - style-to-object@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.1.tgz#53cf856f7cf7f172d72939d9679556469ba5de37" - integrity sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw== + version "0.4.4" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.4.tgz#266e3dfd56391a7eefb7770423612d043c3f33ec" + integrity sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg== dependencies: inline-style-parser "0.1.1" @@ -12150,33 +12140,34 @@ stylelint-config-standard@^33.0.0: stylelint-config-recommended "^12.0.0" stylelint-scss@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-5.0.1.tgz#b33a6580b5734eace083cfc2cc3021225e28547f" - integrity sha512-n87iCRZrr2J7//I/QFsDXxFLnHKw633U4qvWZ+mOW6KDAp/HLj06H+6+f9zOuTYy+MdGdTuCSDROCpQIhw5fvQ== + version "5.3.1" + resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-5.3.1.tgz#7f0f5f06d0a2a3c515aa71d3a8de3548045e03e1" + integrity sha512-5I9ZDIm77BZrjOccma5WyW2nJEKjXDd4Ca8Kk+oBapSO4pewSlno3n+OyimcyVJJujQZkBN2D+xuMkIamSc6hA== dependencies: + known-css-properties "^0.29.0" postcss-media-query-parser "^0.2.3" postcss-resolve-nested-selector "^0.1.1" postcss-selector-parser "^6.0.13" postcss-value-parser "^4.2.0" stylelint@^15.10.2: - version "15.10.2" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.10.2.tgz#0ee5a8371d3a2e1ff27fefd48309d3ddef7c3405" - integrity sha512-UxqSb3hB74g4DTO45QhUHkJMjKKU//lNUAOWyvPBVPZbCknJ5HjOWWZo+UDuhHa9FLeVdHBZXxu43eXkjyIPWg== + version "15.11.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.11.0.tgz#3ff8466f5f5c47362bc7c8c9d382741c58bc3292" + integrity sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw== dependencies: - "@csstools/css-parser-algorithms" "^2.3.0" - "@csstools/css-tokenizer" "^2.1.1" - "@csstools/media-query-list-parser" "^2.1.2" + "@csstools/css-parser-algorithms" "^2.3.1" + "@csstools/css-tokenizer" "^2.2.0" + "@csstools/media-query-list-parser" "^2.1.4" "@csstools/selector-specificity" "^3.0.0" balanced-match "^2.0.0" colord "^2.9.3" cosmiconfig "^8.2.0" - css-functions-list "^3.2.0" + css-functions-list "^3.2.1" css-tree "^2.3.1" debug "^4.3.4" - fast-glob "^3.3.0" + fast-glob "^3.3.1" fastest-levenshtein "^1.0.16" - file-entry-cache "^6.0.1" + file-entry-cache "^7.0.0" global-modules "^2.0.0" globby "^11.1.0" globjoin "^0.1.4" @@ -12185,13 +12176,13 @@ stylelint@^15.10.2: import-lazy "^4.0.0" imurmurhash "^0.1.4" is-plain-object "^5.0.0" - known-css-properties "^0.27.0" + known-css-properties "^0.29.0" mathml-tag-names "^2.1.3" meow "^10.1.5" micromatch "^4.0.5" normalize-path "^3.0.0" picocolors "^1.0.0" - postcss "^8.4.25" + postcss "^8.4.28" postcss-resolve-nested-selector "^0.1.1" postcss-safe-parser "^6.0.0" postcss-selector-parser "^6.0.13" @@ -12316,7 +12307,7 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -table@^6.0.9, table@^6.8.1: +table@^6.8.1: version "6.8.1" resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== @@ -12333,35 +12324,35 @@ tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== tar@^6.1.11: - version "6.1.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" - integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== + version "6.2.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" - minipass "^4.0.0" + minipass "^5.0.0" minizlib "^2.1.1" mkdirp "^1.0.3" yallist "^4.0.0" -terser-webpack-plugin@^5.1.3: - version "5.3.6" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c" - integrity sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ== +terser-webpack-plugin@^5.3.7: + version "5.3.9" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== dependencies: - "@jridgewell/trace-mapping" "^0.3.14" + "@jridgewell/trace-mapping" "^0.3.17" jest-worker "^27.4.5" schema-utils "^3.1.1" - serialize-javascript "^6.0.0" - terser "^5.14.1" + serialize-javascript "^6.0.1" + terser "^5.16.8" -terser@^5.10.0, terser@^5.14.1: - version "5.16.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880" - integrity sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw== +terser@^5.10.0, terser@^5.16.8: + version "5.24.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.24.0.tgz#4ae50302977bca4831ccc7b4fef63a3c04228364" + integrity sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw== dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" commander "^2.20.0" source-map-support "~0.5.20" @@ -12384,11 +12375,6 @@ three@^0.156.1: resolved "https://registry.yarnpkg.com/three/-/three-0.156.1.tgz#bab4fec121a5b3975eb4f4d227d9c912171eb399" integrity sha512-kP7H0FK9d/k6t/XvQ9FO6i+QrePoDcNhwl0I02+wmUJRNSLCUIDMcfObnzQvxb37/0Uc9TDT0T1HgsRRrO6SYQ== -through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - thunky@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" @@ -12405,9 +12391,9 @@ tiny-warning@^1.0.0: integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== tinycolor2@^1.4.1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.5.2.tgz#7d30b4584d8b7d62b9a94dacc505614a6516a95f" - integrity sha512-h80m9GPFGbcLzZByXlNSEhp1gf8Dy+VX/2JCGUZsWLo7lV1mnE/XlxGYgRBoMLJh1lIDXP0EMC4RPTjlRaV+Bg== + version "1.6.0" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.6.0.tgz#f98007460169b0263b97072c5ae92484ce02d09e" + integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw== tinyqueue@^2.0.3: version "2.0.3" @@ -12503,27 +12489,18 @@ trough@^2.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== -ts-jest@^29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.0.tgz#4a9db4104a49b76d2b368ea775b6c9535c603891" - integrity sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA== - dependencies: - bs-logger "0.x" - fast-json-stable-stringify "2.x" - jest-util "^29.0.0" - json5 "^2.2.3" - lodash.memoize "4.x" - make-error "1.x" - semver "7.x" - yargs-parser "^21.0.1" +ts-api-utils@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== -tsconfig-paths@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== +tsconfig-paths@^3.14.2: + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== dependencies: "@types/json5" "^0.0.29" - json5 "^1.0.1" + json5 "^1.0.2" minimist "^1.2.6" strip-bom "^3.0.0" @@ -12532,10 +12509,10 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" - integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== +tslib@^2.0.3, tslib@^2.4.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tsutils@^3.21.0: version "3.21.0" @@ -12545,9 +12522,9 @@ tsutils@^3.21.0: tslib "^1.8.1" tus-js-client@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/tus-js-client/-/tus-js-client-3.0.1.tgz#d81fea22b8fb23769f973aa49501afef0f97928a" - integrity sha512-2EZIUvswv1xG3KtzJO9FZ2wvTtVzltUN23Nse/nZwWE06dbn/8RBeRqi2clV/ilpEomOQOOMdHkIPUQmTum/xg== + version "3.1.1" + resolved "https://registry.yarnpkg.com/tus-js-client/-/tus-js-client-3.1.1.tgz#87cb72e528d274d0a8ff62e9c18165f1e901ce9e" + integrity sha512-SZzWP62jEFLmROSRZx+uoGLKqsYWMGK/m+PiNehPVWbCm7/S9zRIMaDxiaOcKdMnFno4luaqP5E+Y1iXXPjP0A== dependencies: buffer-from "^1.1.2" combine-errors "^3.0.3" @@ -12564,13 +12541,6 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - type-detect@4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" @@ -12596,7 +12566,7 @@ type-fest@^0.8.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2: +type-fest@^1.0.1, type-fest@^1.0.2, type-fest@^1.2.1, type-fest@^1.2.2: version "1.4.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== @@ -12609,6 +12579,36 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + typed-array-length@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" @@ -12630,16 +12630,16 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@>=3.0.1: - version "4.9.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" - integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== - -typescript@^5.0.2: +typescript@5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.2.tgz#891e1a90c5189d8506af64b9ef929fca99ba1ee5" integrity sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw== +typescript@>=3.0.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.2.tgz#00d1c7c1c46928c5845c1ee8d0cc2791031d4c43" + integrity sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ== + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" @@ -12655,6 +12655,11 @@ undefsafe@^2.0.5: resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -12755,13 +12760,6 @@ unified@^9.1.0: trough "^1.0.0" vfile "^4.0.0" -unist-builder@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-3.0.0.tgz#728baca4767c0e784e1e64bb44b5a5a753021a04" - integrity sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ== - dependencies: - "@types/unist" "^2.0.0" - unist-util-filter@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/unist-util-filter/-/unist-util-filter-4.0.1.tgz#fd885dd48adaad345de5f5dc706ec4ff44a8d074" @@ -12777,9 +12775,9 @@ unist-util-generated@^1.0.0, unist-util-generated@^1.1.0: integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== unist-util-generated@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.0.tgz#86fafb77eb6ce9bfa6b663c3f5ad4f8e56a60113" - integrity sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae" + integrity sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A== unist-util-inspect@^5.0.0: version "5.0.1" @@ -12794,9 +12792,11 @@ unist-util-is@^4.0.0: integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== unist-util-is@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.1.1.tgz#e8aece0b102fa9bc097b0fef8f870c496d4a6236" - integrity sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ== + version "5.2.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9" + integrity sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw== + dependencies: + "@types/unist" "^2.0.0" unist-util-position@^3.0.0, unist-util-position@^3.1.0: version "3.1.0" @@ -12804,9 +12804,9 @@ unist-util-position@^3.0.0, unist-util-position@^3.1.0: integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== unist-util-position@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.3.tgz#5290547b014f6222dff95c48d5c3c13a88fadd07" - integrity sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ== + version "4.0.4" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037" + integrity sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg== dependencies: "@types/unist" "^2.0.0" @@ -12818,9 +12818,9 @@ unist-util-stringify-position@^2.0.0: "@types/unist" "^2.0.2" unist-util-stringify-position@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz#5c6aa07c90b1deffd9153be170dce628a869a447" - integrity sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" + integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== dependencies: "@types/unist" "^2.0.0" @@ -12832,7 +12832,7 @@ unist-util-visit-parents@^3.0.0: "@types/unist" "^2.0.0" unist-util-is "^4.0.0" -unist-util-visit-parents@^5.0.0: +unist-util-visit-parents@^5.0.0, unist-util-visit-parents@^5.1.1: version "5.1.3" resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== @@ -12840,14 +12840,6 @@ unist-util-visit-parents@^5.0.0: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" -unist-util-visit-parents@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz#868f353e6fce6bf8fa875b251b0f4fec3be709bb" - integrity sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - unist-util-visit@^2.0.0, unist-util-visit@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" @@ -12857,16 +12849,7 @@ unist-util-visit@^2.0.0, unist-util-visit@^2.0.1: unist-util-is "^4.0.0" unist-util-visit-parents "^3.0.0" -unist-util-visit@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz#1c4842d70bd3df6cc545276f5164f933390a9aad" - integrity sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - unist-util-visit-parents "^5.1.1" - -unist-util-visit@^4.1.0, unist-util-visit@^4.1.2, unist-util-visit@~4.1.0: +unist-util-visit@^4.0.0, unist-util-visit@^4.1.0, unist-util-visit@^4.1.2, unist-util-visit@~4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== @@ -12898,18 +12881,10 @@ unquote@~1.1.1: resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -update-browserslist-db@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -12981,19 +12956,14 @@ uvu@^0.5.0: kleur "^4.0.3" sade "^1.7.3" -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - v8-to-istanbul@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265" - integrity sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA== + version "9.2.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad" + integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== dependencies: "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" + convert-source-map "^2.0.0" validate-npm-package-license@^3.0.1: version "3.0.4" @@ -13035,9 +13005,9 @@ vfile-message@^2.0.0: unist-util-stringify-position "^2.0.0" vfile-message@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.3.tgz#1360c27a99234bebf7bddbbbca67807115e6b0dd" - integrity sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA== + version "3.1.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.4.tgz#15a50816ae7d7c2d1fa87090a7f9f96612b59dea" + integrity sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw== dependencies: "@types/unist" "^2.0.0" unist-util-stringify-position "^3.0.0" @@ -13080,9 +13050,9 @@ vfile@^4.0.0: vfile-message "^2.0.0" vfile@^5.0.0: - version "5.3.6" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.6.tgz#61b2e70690cc835a5d0d0fd135beae74e5a39546" - integrity sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA== + version "5.3.7" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7" + integrity sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" @@ -13147,22 +13117,23 @@ webidl-conversions@^7.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== -webpack-cli@^4.9.2: - version "4.10.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" - integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== +webpack-cli@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" + integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.2.0" - "@webpack-cli/info" "^1.5.0" - "@webpack-cli/serve" "^1.7.0" + "@webpack-cli/configtest" "^2.1.1" + "@webpack-cli/info" "^2.0.2" + "@webpack-cli/serve" "^2.0.5" colorette "^2.0.14" - commander "^7.0.0" + commander "^10.0.1" cross-spawn "^7.0.3" + envinfo "^7.7.3" fastest-levenshtein "^1.0.12" import-local "^3.0.2" - interpret "^2.2.0" - rechoir "^0.7.0" + interpret "^3.1.1" + rechoir "^0.8.0" webpack-merge "^5.7.3" webpack-dev-middleware@^5.3.1: @@ -13176,10 +13147,10 @@ webpack-dev-middleware@^5.3.1: range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-server@4.9: - version "4.9.3" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.9.3.tgz#2360a5d6d532acb5410a668417ad549ee3b8a3c9" - integrity sha512-3qp/eoboZG5/6QgiZ3llN8TUzkSpYg1Ko9khWX1h40MIEUNS2mDoIa8aXsPfskER+GbTvs/IJZ1QTBBhhuetSw== +webpack-dev-server@4.15.1: + version "4.15.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz#8944b29c12760b3a45bdaa70799b17cb91b03df7" + integrity sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA== dependencies: "@types/bonjour" "^3.5.9" "@types/connect-history-api-fallback" "^1.3.5" @@ -13187,7 +13158,7 @@ webpack-dev-server@4.9: "@types/serve-index" "^1.9.1" "@types/serve-static" "^1.13.10" "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.1" + "@types/ws" "^8.5.5" ansi-html-community "^0.0.8" bonjour-service "^1.0.11" chokidar "^3.5.3" @@ -13200,23 +13171,25 @@ webpack-dev-server@4.9: html-entities "^2.3.2" http-proxy-middleware "^2.0.3" ipaddr.js "^2.0.1" + launch-editor "^2.6.0" open "^8.0.9" p-retry "^4.5.0" rimraf "^3.0.2" schema-utils "^4.0.0" - selfsigned "^2.0.1" + selfsigned "^2.1.1" serve-index "^1.9.1" sockjs "^0.3.24" spdy "^4.0.2" webpack-dev-middleware "^5.3.1" - ws "^8.4.2" + ws "^8.13.0" webpack-merge@^5.7.3: - version "5.8.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" - integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== + version "5.10.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== dependencies: clone-deep "^4.0.1" + flat "^5.0.2" wildcard "^2.0.0" webpack-sources@^3.2.3: @@ -13225,21 +13198,21 @@ webpack-sources@^3.2.3: integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@^5.76.0: - version "5.76.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.0.tgz#f9fb9fb8c4a7dbdcd0d56a98e56b8a942ee2692c" - integrity sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA== + version "5.89.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.89.0.tgz#56b8bf9a34356e93a6625770006490bf3a7f32dc" + integrity sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw== dependencies: "@types/eslint-scope" "^3.7.3" - "@types/estree" "^0.0.51" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" acorn "^8.7.1" - acorn-import-assertions "^1.7.6" + acorn-import-assertions "^1.9.0" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.10.0" - es-module-lexer "^0.9.0" + enhanced-resolve "^5.15.0" + es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" @@ -13248,9 +13221,9 @@ webpack@^5.76.0: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.1.0" + schema-utils "^3.2.0" tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" + terser-webpack-plugin "^5.3.7" watchpack "^2.4.0" webpack-sources "^3.2.3" @@ -13315,6 +13288,24 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-builtin-type@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" + integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== + dependencies: + function.prototype.name "^1.1.5" + has-tostringtag "^1.0.0" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.0.2" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + which-collection@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" @@ -13326,21 +13317,20 @@ which-collection@^1.0.1: is-weakset "^2.0.1" which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== -which-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== +which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" + integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== dependencies: available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + call-bind "^1.0.4" for-each "^0.3.3" gopd "^1.0.1" has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" which@^1.3.1: version "1.3.1" @@ -13364,22 +13354,9 @@ wide-align@^1.1.2: string-width "^1.0.2 || 2 || 3 || 4" wildcard@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" - integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== - -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.4.tgz#cb4b50ec9aca570abd1f52f33cd45b6c61739a9f" - integrity sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA== - -worker-loader@^3.0.8: - version "3.0.8" - resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-3.0.8.tgz#5fc5cda4a3d3163d9c274a4e3a811ce8b60dbb37" - integrity sha512-XQyQkIFeRVC7f7uRhFdNMe/iJOdO6zxAaR3EWbDp45v3mDhrTi+++oswKNxShUNjPC/1xUp5DB29YKLhFo129g== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== wrap-ansi@^6.2.0: version "6.2.0" @@ -13399,6 +13376,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrapped@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wrapped/-/wrapped-1.0.1.tgz#c783d9d807b273e9b01e851680a938c87c907242" @@ -13438,15 +13424,10 @@ write-file-atomic@^5.0.1: imurmurhash "^0.1.4" signal-exit "^4.0.1" -ws@^8.11.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== - -ws@^8.2.3, ws@^8.4.2: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" - integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== +ws@^8.11.0, ws@^8.13.0, ws@^8.2.3: + version "8.14.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== xml-name-validator@^4.0.0: version "4.0.0" @@ -13483,7 +13464,7 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^2.1.3: +yaml@2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== @@ -13501,7 +13482,7 @@ yargs-parser@^20.2.9: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.0.1, yargs-parser@^21.1.1: +yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== @@ -13523,23 +13504,10 @@ yargs@^15.0.2: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.2.1: - version "17.6.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" - integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yargs@^17.3.1: - version "17.7.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" - integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== +yargs@^17.2.1, yargs@^17.3.1: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" escalade "^3.1.1" From c6b5112d4a84793caf0b6c1827ece4bba24d3a1b Mon Sep 17 00:00:00 2001 From: Boris Sekachev Date: Thu, 30 Nov 2023 13:48:18 +0200 Subject: [PATCH 2/6] Removed actions code --- ...20231129_111831_boris_fix_opacity_reset.md | 5 - cvat-core/src/annotations-actions.ts | 222 ------- cvat-core/src/api-implementation.ts | 4 - cvat-core/src/api.ts | 35 -- cvat-core/src/index.ts | 6 - .../annotations-actions-modal.tsx | 581 ------------------ .../annotations-actions/styles.scss | 63 -- .../top-bar/annotation-menu.tsx | 15 - 8 files changed, 931 deletions(-) delete mode 100644 changelog.d/20231129_111831_boris_fix_opacity_reset.md delete mode 100644 cvat-core/src/annotations-actions.ts delete mode 100644 cvat-ui/src/components/annotation-page/annotations-actions/annotations-actions-modal.tsx delete mode 100644 cvat-ui/src/components/annotation-page/annotations-actions/styles.scss diff --git a/changelog.d/20231129_111831_boris_fix_opacity_reset.md b/changelog.d/20231129_111831_boris_fix_opacity_reset.md deleted file mode 100644 index 263fee2d724a..000000000000 --- a/changelog.d/20231129_111831_boris_fix_opacity_reset.md +++ /dev/null @@ -1,5 +0,0 @@ -### Added - -- Introduced CVAT actions. Actions allow performing different - predefined scenarios on annotations automatically (e.g. shape converters) - () diff --git a/cvat-core/src/annotations-actions.ts b/cvat-core/src/annotations-actions.ts deleted file mode 100644 index c635a9671ebd..000000000000 --- a/cvat-core/src/annotations-actions.ts +++ /dev/null @@ -1,222 +0,0 @@ -// Copyright (C) 2023 CVAT.ai Corporation -// -// SPDX-License-Identifier: MIT - -import { omit, throttle } from 'lodash'; -import { ArgumentError } from './exceptions'; -import { SerializedCollection } from './server-response-types'; -import { Job, Task } from './session'; -import { ObjectType } from './enums'; -import ObjectState from './object-state'; -import { getAnnotations, getCollection } from './annotations'; - -export interface SingleFrameActionInput { - collection: Omit; - frameData: { - width: number; - height: number; - number: number; - }; -} - -export interface SingleFrameActionOutput { - collection: Omit; -} - -export enum ActionParameterType { - SELECT = 'select', - NUMBER = 'number', -} - -type ActionParameters = Record; - -export default class BaseSingleFrameAction { - /* eslint-disable @typescript-eslint/no-unused-vars */ - public async init( - sessionInstance: Job | Task, - parameters: Record, - ): Promise { - throw new Error('Method not implemented'); - } - - public async destroy(): Promise { - throw new Error('Method not implemented'); - } - - public async run(sessionInstance: Job | Task, input: SingleFrameActionInput): Promise { - throw new Error('Method not implemented'); - } - - public get name(): string { - throw new Error('Method not implemented'); - } - - public get parameters(): ActionParameters | null { - throw new Error('Method not implemented'); - } -} - -const registeredActions: BaseSingleFrameAction[] = []; - -export async function listActions(): Promise { - return [...registeredActions]; -} - -export async function registerAction(action: BaseSingleFrameAction): Promise { - if (!(action instanceof BaseSingleFrameAction)) { - throw new ArgumentError('Provided action is not instance of BaseSingleFrameAction'); - } - - const { name } = action; - if (registeredActions.map((_action) => _action.name).includes(name)) { - throw new ArgumentError(`Annotations function name must be unique. Name "${name}" is already exists`); - } - - registeredActions.push(action); -} - -async function runSingleFrameChain( - instance: Job | Task, - actionsChain: BaseSingleFrameAction[], - actionParameters: Record[], - frameFrom: number, - frameTo: number, - filters: string[], - onProgress: ( - message: string, - progress: number, - ) => boolean, -): Promise { - type IDsToHandle = { shapes: number[] }; - - // if called too fast, it will freeze UI, so, add throttling here - const wrappedOnProgress = throttle(onProgress, 100, { leading: true, trailing: true }); - const showMessageWithPause = async (message: string, progress: number, duration: number): Promise => { - // wrapper that gives a chance to abort action - wrappedOnProgress(message, progress); - await new Promise((resolve) => setTimeout(resolve, duration)); - return !!wrappedOnProgress(message, progress); - }; - - try { - if (await showMessageWithPause('Actions initialization', 0, 500)) { - return; - } - - await Promise.all(actionsChain.map((action, idx) => { - const declaredParameters = action.parameters; - if (!declaredParameters) { - return action.init(instance, {}); - } - - const setupValues = actionParameters[idx]; - const parameters = Object.entries(declaredParameters).reduce((acc, [name, { type, defaultValue }]) => { - if (type === ActionParameterType.NUMBER) { - acc[name] = +(Object.hasOwn(setupValues, name) ? setupValues[name] : defaultValue); - } else { - acc[name] = (Object.hasOwn(setupValues, name) ? setupValues[name] : defaultValue); - } - return acc; - }, {} as Record); - - return action.init(instance, parameters); - })); - - const exportedCollection = getCollection(instance).export(); - const handledCollection: SingleFrameActionInput['collection'] = { shapes: [] }; - const modifiedCollectionIDs: IDsToHandle = { shapes: [] }; - - // Iterate over frames - const totalFrames = frameTo - frameFrom + 1; - for (let frame = frameFrom; frame <= frameTo; frame++) { - const frameData = await Object.getPrototypeOf(instance).frames - .get.implementation.call(instance, frame); - - // Ignore deleted frames - if (!frameData.deleted) { - // Get annotations according to filter - const states: ObjectState[] = await getAnnotations(instance, frame, false, filters, null); - const frameCollectionIDs = states.reduce((acc, val) => { - if (val.objectType === ObjectType.SHAPE) { - acc.shapes.push(val.clientID as number); - } - return acc; - }, { shapes: [] }); - - // Pick frame collection according to filtered IDs - let frameCollection = { - shapes: exportedCollection.shapes.filter((shape) => frameCollectionIDs - .shapes.includes(shape.clientID as number)), - }; - - // Iterate over actions on each not deleted frame - for await (const action of actionsChain) { - ({ collection: frameCollection } = await action.run(instance, { - collection: frameCollection, - frameData: { - width: frameData.width, - height: frameData.height, - number: frameData.number, - }, - })); - } - - const progress = Math.ceil(+(((frame - frameFrom) / totalFrames) * 100)); - if (wrappedOnProgress('Actions are running', progress)) { - return; - } - - handledCollection.shapes.push(...frameCollection.shapes.map((shape) => omit(shape, 'id'))); - modifiedCollectionIDs.shapes.push(...frameCollectionIDs.shapes); - } - } - - if (await showMessageWithPause('Commiting handled objects', 100, 1500)) { - return; - } - - exportedCollection.shapes.forEach((shape) => { - if (Number.isInteger(shape.clientID) && !modifiedCollectionIDs.shapes.includes(shape.clientID as number)) { - handledCollection.shapes.push(shape); - } - }); - - await instance.annotations.clear(); - await instance.annotations.import({ - ...handledCollection, - tracks: exportedCollection.tracks, - tags: exportedCollection.tags, - }); - } finally { - wrappedOnProgress('Finalizing', 100); - await Promise.all(actionsChain.map((action) => action.destroy())); - } -} - -export async function runActions( - instance: Job | Task, - actionsChain: BaseSingleFrameAction[], - actionParameters: Record[], - frameFrom: number, - frameTo: number, - filters: string[], - onProgress: ( - message: string, - progress: number, - ) => boolean, -): Promise { - // there will be another function for MultiFrameChains (actions handling tracks) - return runSingleFrameChain( - instance, - actionsChain, - actionParameters, - frameFrom, - frameTo, - filters, - onProgress, - ); -} diff --git a/cvat-core/src/api-implementation.ts b/cvat-core/src/api-implementation.ts index 6e3adb7e76a6..d604d1ebcb7d 100644 --- a/cvat-core/src/api-implementation.ts +++ b/cvat-core/src/api-implementation.ts @@ -33,7 +33,6 @@ import QualityConflict from './quality-conflict'; import QualitySettings from './quality-settings'; import { FramesMetaData } from './frames'; import AnalyticsReport from './analytics-report'; -import { listActions, registerAction, runActions } from './annotations-actions'; import CVATCore from '.'; function implementationMixin(func: Function, implementation: Function): void { @@ -43,9 +42,6 @@ function implementationMixin(func: Function, implementation: Function): void { export default function implementAPI(cvat: CVATCore): CVATCore { implementationMixin(cvat.plugins.list, PluginRegistry.list); implementationMixin(cvat.plugins.register, PluginRegistry.register.bind(cvat)); - implementationMixin(cvat.actions.list, listActions); - implementationMixin(cvat.actions.register, registerAction); - implementationMixin(cvat.actions.run, runActions); implementationMixin(cvat.lambda.list, lambdaManager.list.bind(lambdaManager)); implementationMixin(cvat.lambda.run, lambdaManager.run.bind(lambdaManager)); diff --git a/cvat-core/src/api.ts b/cvat-core/src/api.ts index 02f44ea3e238..d2c7e6cab703 100644 --- a/cvat-core/src/api.ts +++ b/cvat-core/src/api.ts @@ -21,7 +21,6 @@ import CloudStorage from './cloud-storage'; import Organization from './organization'; import Webhook from './webhook'; import AnnotationGuide from './guide'; -import BaseSingleFrameAction from './annotations-actions'; import * as enums from './enums'; @@ -180,40 +179,6 @@ function build(): CVATCore { return result; }, }, - actions: { - async list() { - const result = await PluginRegistry.apiWrapper(cvat.actions.list); - return result; - }, - async register(action: BaseSingleFrameAction) { - const result = await PluginRegistry.apiWrapper(cvat.actions.register, action); - return result; - }, - async run( - instance: Job | Task, - actionsChain: BaseSingleFrameAction[], - actionsParameters: Record[], - frameFrom: number, - frameTo: number, - filters: string[], - onProgress: ( - message: string, - progress: number, - ) => boolean, - ) { - const result = await PluginRegistry.apiWrapper( - cvat.actions.run, - instance, - actionsChain, - actionsParameters, - frameFrom, - frameTo, - filters, - onProgress, - ); - return result; - }, - }, lambda: { async list() { const result = await PluginRegistry.apiWrapper(cvat.lambda.list); diff --git a/cvat-core/src/index.ts b/cvat-core/src/index.ts index 559fda211692..d5d691375c02 100644 --- a/cvat-core/src/index.ts +++ b/cvat-core/src/index.ts @@ -25,7 +25,6 @@ import CloudStorage from './cloud-storage'; import Organization from './organization'; import Webhook from './webhook'; import AnnotationGuide from './guide'; -import BaseSingleFrameAction, { listActions, registerAction, runActions } from './annotations-actions'; import { ArgumentError, DataError, Exception, ScriptingError, ServerError, } from './exceptions'; @@ -106,11 +105,6 @@ export default interface CVATCore { frames: { getMeta: any; }; - actions: { - list: typeof listActions; - register: typeof registerAction; - run: typeof runActions; - }; logger: typeof loggerStorage; config: { backendAPI: typeof config.backendAPI; diff --git a/cvat-ui/src/components/annotation-page/annotations-actions/annotations-actions-modal.tsx b/cvat-ui/src/components/annotation-page/annotations-actions/annotations-actions-modal.tsx deleted file mode 100644 index 5c73e64c620c..000000000000 --- a/cvat-ui/src/components/annotation-page/annotations-actions/annotations-actions-modal.tsx +++ /dev/null @@ -1,581 +0,0 @@ -// Copyright (C) 2023 CVAT.ai Corporation -// -// SPDX-License-Identifier: MIT - -import './styles.scss'; - -import React, { - useEffect, useReducer, useRef, useState, -} from 'react'; -import Button from 'antd/lib/button'; -import { Col, Row } from 'antd/lib/grid'; -import Progress from 'antd/lib/progress'; -import Select from 'antd/lib/select'; -import notification from 'antd/lib/notification'; -import Text from 'antd/lib/typography/Text'; -import Modal from 'antd/lib/modal'; - -import { useIsMounted } from 'utils/hooks'; -import { createAction, ActionUnion } from 'utils/redux'; -import { getCVATStore } from 'cvat-store'; -import { BaseSingleFrameAction, Job, getCore } from 'cvat-core-wrapper'; -import { Canvas } from 'cvat-canvas-wrapper'; -import { fetchAnnotationsAsync, saveAnnotationsAsync } from 'actions/annotation-actions'; -import { switchAutoSave } from 'actions/settings-actions'; -import { Alert, InputNumber } from 'antd'; -import { clamp } from 'utils/math'; - -const core = getCore(); - -interface State { - actions: BaseSingleFrameAction[]; - activeAction: BaseSingleFrameAction | null; - fetching: boolean; - progress: number | null; - progressMessage: string | null; - cancelled: boolean; - autoSaveEnabled: boolean; - jobHasBeenSaved: boolean; - frameFrom: number; - frameTo: number; - actionParameters: Record; - modalVisible: boolean; -} - -enum ReducerActionType { - SET_ANNOTATIONS_ACTIONS = 'SET_ANNOTATIONS_ACTIONS', - SET_ACTIVE_ANNOTATIONS_ACTION = 'SET_ACTIVE_ANNOTATIONS_ACTION', - UPDATE_PROGRESS = 'UPDATE_PROGRESS', - RESET_BEFORE_RUN = 'RESET_BEFORE_RUN', - RESET_AFTER_RUN = 'RESET_AFTER_RUN', - CANCEL_ACTION = 'CANCEL_ACTION', - SET_AUTOSAVE_DISABLED_FLAG = 'SET_AUTOSAVE_DISABLED_FLAG', - SET_JOB_WAS_SAVED_FLAG = 'SET_JOB_WAS_SAVED_FLAG', - UPDATE_FRAME_FROM = 'UPDATE_FRAME_FROM', - UPDATE_FRAME_TO = 'UPDATE_FRAME_TO', - UPDATE_ACTION_PARAMETER = 'UPDATE_ACTION_PARAMETER', - SET_VISIBLE = 'SET_VISIBLE', -} - -export const reducerActions = { - setAnnotationsActions: (actions: BaseSingleFrameAction[]) => ( - createAction(ReducerActionType.SET_ANNOTATIONS_ACTIONS, { actions }) - ), - setActiveAnnotationsAction: (activeAction: BaseSingleFrameAction) => ( - createAction(ReducerActionType.SET_ACTIVE_ANNOTATIONS_ACTION, { activeAction }) - ), - updateProgress: (progress: number | null, progressMessage: string | null) => ( - createAction(ReducerActionType.UPDATE_PROGRESS, { progress, progressMessage }) - ), - resetBeforeRun: () => ( - createAction(ReducerActionType.RESET_BEFORE_RUN) - ), - resetAfterRun: () => ( - createAction(ReducerActionType.RESET_AFTER_RUN) - ), - cancelAction: () => ( - createAction(ReducerActionType.CANCEL_ACTION) - ), - setAutoSaveDisabledFlag: () => ( - createAction(ReducerActionType.SET_AUTOSAVE_DISABLED_FLAG) - ), - setJobSavedFlag: (jobHasBeenSaved: boolean) => ( - createAction(ReducerActionType.SET_JOB_WAS_SAVED_FLAG, { jobHasBeenSaved }) - ), - updateFrameFrom: (frameFrom: number) => ( - createAction(ReducerActionType.UPDATE_FRAME_FROM, { frameFrom }) - ), - updateFrameTo: (frameTo: number) => ( - createAction(ReducerActionType.UPDATE_FRAME_TO, { frameTo }) - ), - updateActionParameter: (name: string, value: string) => ( - createAction(ReducerActionType.UPDATE_ACTION_PARAMETER, { name, value }) - ), - setVisible: (visible: boolean) => ( - createAction(ReducerActionType.SET_VISIBLE, { visible }) - ), -}; - -const reducer = (state: State, action: ActionUnion): State => { - if (action.type === ReducerActionType.SET_ANNOTATIONS_ACTIONS) { - return { - ...state, - actions: action.payload.actions, - activeAction: action.payload.actions[0] || null, - actionParameters: {}, - }; - } - - if (action.type === ReducerActionType.SET_ACTIVE_ANNOTATIONS_ACTION) { - return { - ...state, - activeAction: action.payload.activeAction, - actionParameters: {}, - }; - } - - if (action.type === ReducerActionType.UPDATE_PROGRESS) { - return { - ...state, - progress: action.payload.progress, - progressMessage: action.payload.progressMessage, - }; - } - - if (action.type === ReducerActionType.RESET_BEFORE_RUN) { - return { - ...state, - fetching: true, - cancelled: false, - }; - } - - if (action.type === ReducerActionType.RESET_AFTER_RUN) { - return { - ...state, - fetching: false, - cancelled: false, - progress: null, - progressMessage: null, - }; - } - - if (action.type === ReducerActionType.CANCEL_ACTION) { - return { - ...state, - cancelled: true, - }; - } - - if (action.type === ReducerActionType.SET_AUTOSAVE_DISABLED_FLAG) { - return { - ...state, - autoSaveEnabled: false, - }; - } - - if (action.type === ReducerActionType.SET_JOB_WAS_SAVED_FLAG) { - return { - ...state, - jobHasBeenSaved: action.payload.jobHasBeenSaved, - }; - } - - if (action.type === ReducerActionType.UPDATE_FRAME_FROM) { - return { - ...state, - frameFrom: action.payload.frameFrom, - frameTo: Math.max(state.frameTo, action.payload.frameFrom), - }; - } - - if (action.type === ReducerActionType.UPDATE_FRAME_TO) { - return { - ...state, - frameFrom: Math.min(state.frameFrom, action.payload.frameTo), - frameTo: action.payload.frameTo, - }; - } - - if (action.type === ReducerActionType.UPDATE_ACTION_PARAMETER) { - return { - ...state, - actionParameters: { - ...state.actionParameters, - [action.payload.name]: action.payload.value, - }, - }; - } - - if (action.type === ReducerActionType.SET_VISIBLE) { - return { - ...state, - modalVisible: action.payload.visible, - }; - } - - return state; -}; - -type Props = NonNullable[keyof BaseSingleFrameAction['parameters']]; - -function ActionParameterComponent(props: Props & { onChange: (value: string) => void }): JSX.Element { - const { - defaultValue, type, values, onChange, - } = props; - const [value, setValue] = useState(defaultValue); - - useEffect(() => { - onChange(value); - }, [value]); - - if (type === 'select') { - return ( - - ); - } - - const [min, max, step] = values.map((val) => +val); - return ( - { - if (typeof _value === 'number') { - if (Number.isInteger(step)) { - const updated = _value - (_value % step); - setValue(`${clamp(updated, min, max)}`); - } else { - setValue(`${clamp(_value, min, max)}`); - } - } - }} - /> - ); -} - -function AnnotationsActionsModalContent(props: { onClose: () => void; }): JSX.Element { - const { onClose } = props; - const isMounted = useIsMounted(); - const storage = getCVATStore(); - const cancellationRef = useRef(false); - const jobInstance = storage.getState().annotation.job.instance as Job; - - const [state, dispatch] = useReducer(reducer, { - actions: [], - fetching: false, - activeAction: null, - progress: null, - progressMessage: null, - cancelled: false, - autoSaveEnabled: storage.getState().settings.workspace.autoSave, - jobHasBeenSaved: true, - frameFrom: jobInstance.startFrame, - frameTo: jobInstance.stopFrame, - actionParameters: {}, - modalVisible: true, - }); - - useEffect(() => { - core.actions.list().then((list: BaseSingleFrameAction[]) => { - if (isMounted()) { - dispatch(reducerActions.setJobSavedFlag(!jobInstance.annotations.hasUnsavedChanges())); - dispatch(reducerActions.setAnnotationsActions(list)); - } - }); - }, []); - - const { - actions, activeAction, fetching, autoSaveEnabled, jobHasBeenSaved, - progress, progressMessage, frameFrom, frameTo, actionParameters, modalVisible, - } = state; - - return ( - - - - - Actions allow executing certain algorithms on - filtered - annotations. - It affects only the local browser state. - Once an action has finished, - it cannot be reverted. - You may reload the page to get annotations from the server -
- )} - type='info' - showIcon - /> - - - {!jobHasBeenSaved ? ( - - - Recommendation: - - - )} - type='warning' - showIcon - /> - - ) : null} - - {autoSaveEnabled ? ( - - - Recommendation: - - - )} - type='warning' - showIcon - /> - - ) : null} - - - - - 1. Select action -
- - - - -
- - - {activeAction ? ( - <> - - - - 2. Specify frames to apply the action -
- - - Starting from frame - { - if (typeof value === 'number') { - dispatch(reducerActions.updateFrameFrom( - clamp(Math.round(value), (jobInstance as Job).startFrame, frameTo), - )); - } - }} - /> - up to frame - { - if (typeof value === 'number') { - dispatch(reducerActions.updateFrameTo( - clamp(Math.round(value), frameFrom, (jobInstance as Job).stopFrame), - )); - } - }} - /> - -
- - - - - Or choose one of predefined options -
- - - - - - - -
- - - ) : null} - - {activeAction?.parameters ? ( - - - - 3. Setup action parameters -
- - {Object.entries(activeAction.parameters) - .map(([name, { defaultValue, type, values }], idx) => ( - - {name} - { - dispatch(reducerActions.updateActionParameter(name, value)); - }} - defaultValue={defaultValue} - type={type} - values={values} - /> - - ))} -
- - ) : null} - - {fetching && typeof progress === 'number' && ( - - - { progressMessage ? ( - {progressMessage} - ) : null } - - - )} - - - - - - - - ); -} - -export default React.memo(AnnotationsActionsModalContent); diff --git a/cvat-ui/src/components/annotation-page/annotations-actions/styles.scss b/cvat-ui/src/components/annotation-page/annotations-actions/styles.scss deleted file mode 100644 index 648f915f790f..000000000000 --- a/cvat-ui/src/components/annotation-page/annotations-actions/styles.scss +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright (C) 2023 CVAT.ai Corporation -// -// SPDX-License-Identifier: MIT - -@import 'base'; - -.cvat-action-runner-list, -.cvat-action-runner-frames, -.cvat-action-runner-frames-predefined, -.cvat-action-runner-buttons, -.cvat-action-runner-action-parameters { - margin-top: $grid-unit-size * 3; -} - -.cvat-action-runner-info:not(:first-child) { - margin-top: $grid-unit-size * 2; -} - -.cvat-action-runner-info { - .ant-alert { - text-align: justify; - } - - .ant-btn { - padding-left: 0; - } -} - -.cvat-action-runner-list { - .ant-select { - width: 100%; - } -} - -.cvat-action-runner-frames-predefined { - .ant-btn:not(:first-child) { - margin-left: $grid-unit-size; - } -} - -.cvat-action-runner-action-parameters { - .cvat-action-runner-action-parameter { - margin-top: $grid-unit-size; - - > span:first-child { - margin-right: $grid-unit-size; - } - } -} - -.cvat-action-runner-progress-message { - display: block; - text-align: center; -} - -.cvat-action-runner-buttons { - display: flex; - justify-content: flex-end; - - > .cvat-action-runner-cancel-btn { - margin-right: $grid-unit-size; - } -} diff --git a/cvat-ui/src/components/annotation-page/top-bar/annotation-menu.tsx b/cvat-ui/src/components/annotation-page/top-bar/annotation-menu.tsx index b9110f3605e0..e2aa1508c0c9 100644 --- a/cvat-ui/src/components/annotation-page/top-bar/annotation-menu.tsx +++ b/cvat-ui/src/components/annotation-page/top-bar/annotation-menu.tsx @@ -4,7 +4,6 @@ // SPDX-License-Identifier: MIT import React from 'react'; -import ReactDOM from 'react-dom'; import { withRouter, RouteComponentProps } from 'react-router'; import Menu from 'antd/lib/menu'; @@ -18,7 +17,6 @@ import Collapse from 'antd/lib/collapse'; import { MenuInfo } from 'rc-menu/lib/interface'; import CVATTooltip from 'components/common/cvat-tooltip'; import { getCore, JobStage } from 'cvat-core-wrapper'; -import AnnotationsActionsModalContent from '../annotations-actions/annotations-actions-modal'; const core = getCore(); @@ -36,7 +34,6 @@ export enum Actions { LOAD_JOB_ANNO = 'load_job_anno', EXPORT_JOB_DATASET = 'export_job_dataset', REMOVE_ANNOTATIONS = 'remove_annotations', - RUN_ACTIONS = 'run_actions', OPEN_TASK = 'open_task', FINISH_JOB = 'finish_job', RENEW_JOB = 'renew_job', @@ -191,18 +188,6 @@ function AnnotationMenuComponent(props: Props & RouteComponentProps): JSX.Elemen Upload annotations Export job dataset Remove annotations - { - const div = window.document.createElement('div'); - window.document.body.append(div); - ReactDOM.render( - div.remove()} />, div, - ); - }} - > - Run actions -
Date: Thu, 30 Nov 2023 14:00:31 +0200 Subject: [PATCH 3/6] Removed some more code --- cvat-ui/src/cvat-core-wrapper.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/cvat-ui/src/cvat-core-wrapper.ts b/cvat-ui/src/cvat-core-wrapper.ts index e8608c9baca0..a09cc15cbd83 100644 --- a/cvat-ui/src/cvat-core-wrapper.ts +++ b/cvat-ui/src/cvat-core-wrapper.ts @@ -37,7 +37,6 @@ import AnalyticsReport, { AnalyticsEntryViewType, AnalyticsEntry } from 'cvat-co import { Dumper } from 'cvat-core/src/annotation-formats'; import { EventLogger } from 'cvat-core/src/log'; import { APIWrapperEnterOptions } from 'cvat-core/src/plugins'; -import BaseSingleFrameAction, { ActionParameterType } from 'cvat-core/src/annotations-actions'; const cvat: CVATCore = _cvat; @@ -82,7 +81,6 @@ export { JobStage, JobState, RQStatus, - BaseSingleFrameAction, QualityReport, QualityConflict, QualitySettings, @@ -95,7 +93,6 @@ export { ServerError, EventLogger, FrameData, - ActionParameterType, }; export type { From 4a5cddf96e9d11f2fad82bf2da94f3ca0ac622bf Mon Sep 17 00:00:00 2001 From: Boris Sekachev Date: Thu, 30 Nov 2023 14:08:44 +0200 Subject: [PATCH 4/6] Removed mode code --- cvat-core/src/api.ts | 1 - cvat-core/src/index.ts | 1 - 2 files changed, 2 deletions(-) diff --git a/cvat-core/src/api.ts b/cvat-core/src/api.ts index d2c7e6cab703..598e96187326 100644 --- a/cvat-core/src/api.ts +++ b/cvat-core/src/api.ts @@ -330,7 +330,6 @@ function build(): CVATCore { Organization, Webhook, AnnotationGuide, - BaseSingleFrameAction, }, utils: { mask2Rle, diff --git a/cvat-core/src/index.ts b/cvat-core/src/index.ts index d5d691375c02..2f79ba347413 100644 --- a/cvat-core/src/index.ts +++ b/cvat-core/src/index.ts @@ -142,7 +142,6 @@ export default interface CVATCore { Organization: typeof Organization; Webhook: typeof Webhook; AnnotationGuide: typeof AnnotationGuide; - BaseSingleFrameAction: typeof BaseSingleFrameAction; }; utils: { mask2Rle: typeof mask2Rle; From 7b2d155ef8a7f05e3f61ca827b438ebf9dc5f513 Mon Sep 17 00:00:00 2001 From: Boris Sekachev Date: Fri, 1 Dec 2023 11:44:15 +0200 Subject: [PATCH 5/6] Fixed couple of comments --- cvat-core/src/download.worker.ts | 1 + cvat-ui/src/components/import-dataset/import-dataset-modal.tsx | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cvat-core/src/download.worker.ts b/cvat-core/src/download.worker.ts index 411a49abd9a8..d4ba0f40feca 100644 --- a/cvat-core/src/download.worker.ts +++ b/cvat-core/src/download.worker.ts @@ -1,4 +1,5 @@ // Copyright (C) 2022 Intel Corporation +// Copyright (C) 2023 CVAT.ai Corporation // // SPDX-License-Identifier: MIT diff --git a/cvat-ui/src/components/import-dataset/import-dataset-modal.tsx b/cvat-ui/src/components/import-dataset/import-dataset-modal.tsx index 6a97fbc28b1e..674768cecd09 100644 --- a/cvat-ui/src/components/import-dataset/import-dataset-modal.tsx +++ b/cvat-ui/src/components/import-dataset/import-dataset-modal.tsx @@ -242,7 +242,7 @@ function ImportDatasetModal(props: StateToProps): JSX.Element { uploadParams.sourceStorage, uploadParams.file || uploadParams.fileName as string, uploadParams.convMaskToPoly, - ) as any); + )); const resToPrint = uploadParams.resource.charAt(0).toUpperCase() + uploadParams.resource.slice(1); Notification.info({ message: `${resToPrint} import started`, From 19be4525277a212b39858953b3f3d5b9ab6d7408 Mon Sep 17 00:00:00 2001 From: Boris Sekachev Date: Fri, 1 Dec 2023 14:38:16 +0200 Subject: [PATCH 6/6] Updated README --- cvat-data/src/ts/3rdparty/README.md | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/cvat-data/src/ts/3rdparty/README.md b/cvat-data/src/ts/3rdparty/README.md index 1da6b3bb3eb4..32ff0a20ab50 100644 --- a/cvat-data/src/ts/3rdparty/README.md +++ b/cvat-data/src/ts/3rdparty/README.md @@ -1,7 +1,7 @@ ## 3rdparty components These files are from the [Broadway.js](https://github.com/mbebenita/Broadway) repository: -- Decoder.cjs +- Decoder.worker.js - mp4.js - avc.wasm @@ -63,26 +63,3 @@ It modifies source code a little to support our scenario of using. ```sh js/3rdparty ``` - -### How work with a patch file -```bash - # from cvat-data/src/js - cp -r 3rdparty 3rdparty_edited - # change 3rdparty edited as we need - diff -u 3rdparty 3rdparty_edited/ > 3rdparty_patch.diff - patch -p0 < 3rdparty_patch.diff # apply patch from cvat-data/src/js -``` - -Also these files have been added to ignore for git in all future revisions: -```bash - # from cvat-data dir - git update-index --skip-worktree src/js/3rdparty/*.js -``` - -This behaviour can be reset with: -```bash - # from cvat-data dir - git update-index --no-skip-worktree src/js/3rdparty/*.js -``` - -[Stackoverflow issue](https://stackoverflow.com/questions/4348590/how-can-i-make-git-ignore-future-revisions-to-a-file)