diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 3cc92d9..fe6e7f1 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -24,7 +24,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: '18' + node-version: '22' - name: Install yarn run: npm install -g yarn diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 35fad2a..c6aa5fe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: "18" + node-version: "22" - name: Install yarn run: npm install -g yarn diff --git a/eslint.config.mjs b/eslint.config.mjs index 4f3797e..84a2ee6 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -4,7 +4,7 @@ import tseslint from 'typescript-eslint'; export default [ { files: ['src/ts/**/*.ts'], - ignores: ['src/ts/mxtypings/**/*.d.ts'], + ignores: ['src/ts/mxtypings/**/*.d.ts', 'dist/**/*.js'], languageOptions: { parser: tseslint.parser, }, @@ -12,15 +12,6 @@ export default [ 'license-header': licenseHeader, }, rules: { - "license-header/header": [ - "error", - [ - "/*---------------------------------------------------------------------------------------------", - " * Copyright (c) Microsoft Corporation. All rights reserved.", - " * Licensed under the Source EULA.See License.txt in the project root for license information.", - " * --------------------------------------------------------------------------------------------*/", - ] - ], "no-var": "error", "prefer-const": "error", "eqeqeq": "error", diff --git a/index.html b/index.html index bc1edcf..a078b39 100644 --- a/index.html +++ b/index.html @@ -6,7 +6,9 @@

Examples

\ No newline at end of file diff --git a/package.json b/package.json index f9be39b..f3fe7e4 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "azdataGraph", "description": "azdataGraph is a derivative of mxGraph, which is a fully client side JavaScript diagramming library that uses SVG and HTML for rendering.", - "version": "0.0.70", + "version": "0.0.71", "homepage": "https://github.com/microsoft/azdataGraph", "author": "Microsoft", "license": "Apache-2.0", @@ -19,19 +19,28 @@ "build": "yarn compile-mxgraph && npx tsc && node build.js", "watch": "yarn compile-mxgraph && node build.js --watch", "examples": "http-server -p 4000", - "lint": "eslint" + "lint": "eslint", + "dev": "vite" }, "devDependencies": { "@jgoz/esbuild-plugin-typecheck": "^4.0.2", + "@types/node": "^22.10.5", + "@types/react": "^19.0.3", + "@types/react-dom": "^19.0.2", + "@vitejs/plugin-react": "^4.3.4", "esbuild": "^0.24.0", - "eslint": "^9.16.0", + "eslint": "^9.17.0", "eslint-plugin-license-header": "^0.6.1", "grunt": "^1.6.1", "grunt-contrib-concat": "^2.1.0", "grunt-contrib-copy": "^1.0.0", "http-server": "^14.1.1", "load-grunt-tasks": "^3.5.2", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-router-dom": "^7.1.1", "typescript": "^5.7.2", - "typescript-eslint": "^8.18.0" + "typescript-eslint": "^8.18.0", + "vite": "^6.0.7" } } diff --git a/src/js/azdata/azdataQueryPlan.js b/src/js/azdata/azdataQueryPlan.js index d2ec8fe..5eea9ff 100644 --- a/src/js/azdata/azdataQueryPlan.js +++ b/src/js/azdata/azdataQueryPlan.js @@ -1,8 +1,3 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - const GRAPH_PADDING_RIGHT = 40; const GRAPH_PADDING_TOP = 0; const GRAPH_PADDING_BOTTOM = 80; diff --git a/src/js/azdata/view/azDataGraph.js b/src/js/azdata/view/azDataGraph.js index a4b1ad6..3b82259 100644 --- a/src/js/azdata/view/azDataGraph.js +++ b/src/js/azdata/view/azDataGraph.js @@ -1,8 +1,3 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - /** * Class: azdataGraph * diff --git a/src/ts/index.ts b/src/ts/index.ts index 3e6ac18..bbca13b 100644 --- a/src/ts/index.ts +++ b/src/ts/index.ts @@ -1,9 +1,5 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA.See License.txt in the project root for license information. - * --------------------------------------------------------------------------------------------*/ - /// import mx from 'mxgraph'; export * from 'mxgraph'; +export * from './schemaDesigner/schemaDesigner'; export { mx }; \ No newline at end of file diff --git a/src/ts/mx.ts b/src/ts/mx.ts index 240aacd..ffcec6d 100644 --- a/src/ts/mx.ts +++ b/src/ts/mx.ts @@ -1,8 +1,3 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA.See License.txt in the project root for license information. - * --------------------------------------------------------------------------------------------*/ - import factory, { mxGraphExportObject } from 'mxgraph'; declare global { diff --git a/src/ts/schemaDesigner/schemaDesigner.css b/src/ts/schemaDesigner/schemaDesigner.css new file mode 100644 index 0000000..0758050 --- /dev/null +++ b/src/ts/schemaDesigner/schemaDesigner.css @@ -0,0 +1,182 @@ +:root { + --sd-z-base: 1; + --sd-z-graph: calc(var(--sd-z-base) + 1); + --sd-z-toolbar: calc(var(--sd-z-base) + 2); +} + +.sd-toolbar-belt { + position: fixed; + bottom: 22px; + z-index: var(--sd-z-toolbar); + display: flex; + justify-content: center; + align-items: center; + width: 100%; + } + + .sd-toolbar { + height: 48px; + width: fit-content; + gap: 0.5rem; + display: flex; + background-color: var(--color-toolbar-bg); + color: var(--color-toolbar-text); + padding: 5px; + border-radius: 0.8rem; + vertical-align: middle; + justify-content: center; + align-items: center; + box-shadow: 0px 3px 8px rgba(0, 0, 0, 0.35), 0px 1px 3px rgba(0, 0, 0, 0.5), + inset 0px 0.5px 0px rgba(255, 255, 255, 0.08), + inset 0px 0px 0.5px rgba(255, 255, 255, 0.3); + } + + .sd-toolbar-button { + cursor: pointer; + width: 32px; + height: 32px; + background-size: 25px 25px; + background-repeat: no-repeat; + background-position: center; + padding: 4px; + border-radius: 0.5rem; + } + + .sd-toolbar-button:hover { + background-color: var(--color-toolbar-button-hover); + } + + .sd-toolbar-divider { + height: 100%; + width: 1px; + background-color: var(--color-toolbar-divider); + } + + #graphContainer { + width: 100%; + height: 100%; + z-index: var(--sd-z-base); + background-image: radial-gradient( + circle, + var(--color-graph-gridLines) 10%, + transparent 10% + ); + background-size: 20px 20px; + background-repeat: repeat; + overflow: auto; + } + + .sd-outline { + position: fixed; + right: 10px; + bottom: 10px; + border-radius: 0.3rem; + z-index: var(--sd-z-toolbar); + border: 1px solid var(--color-border); + box-shadow: 0px 3px 8px rgba(0, 0, 0, 0.35), 0px 1px 3px rgba(0, 0, 0, 0.5), + inset 0px 0.5px 0px rgba(255, 255, 255, 0.08), + inset 0px 0px 0.5px rgba(255, 255, 255, 0.3); + background-color: var(--color-graph-outline-background); + width: 200px; + height: 100px; + } + + .sd-table { + width: 260px; + height: 100%; + border-radius: 2px; + box-shadow: 0px 3px 8px rgba(0, 0, 0, 0.35), 0px 1px 3px rgba(0, 0, 0, 0.5), + inset 0px 0.5px 0px rgba(255, 255, 255, 0.08), + inset 0px 0px 0.5px rgba(255, 255, 255, 0.3); + display: flex; + flex-direction: column; + background-color: var(--color-graph-background); + } + + .sd-table-color-indicator { + width: 100%; + height: 6px; + background-color: var(--color-graph-table-indicator); + border-radius: 2px 2px 0 0; + } + + .sd-table-header { + display: flex; + gap: 10px; + height: 40px; + border-bottom: 1px solid var(--color-border); + } + + + .sd-table-header-icon { + width: 24px; + height: 100%; + background-size: 16px 16px; + background-repeat: no-repeat; + background-position: center; + margin-left: 10px; + } + + .sd-table-header-text { + font-size: 14px; + font-weight: 500; + color: var(--color-table-header-text); + align-self: center; + text-align: left; + flex: 1; + user-select: none; + text-overflow: ellipsis; + overflow: hidden; + } + + .sd-table-columns { + display: flex; + flex-direction: column; + max-height: 280px; + overflow-y: auto; + margin-top: 5px; + padding: 0; + box-sizing: border-box; + } + + .sd-table-column { + display: flex; + gap: 10px; + height: 28px; + min-height: 28px; + box-sizing: border-box; + } + + .sd-table-column:hover{ + background-color: var(--color-graph-node-hover); + } + + .sd-table-column-icon { + width: 26px; + height: 100%; + background-size: 16px 16px; + background-repeat: no-repeat; + background-position: center; + margin-left: 10px; + } + + .sd-table-column-text { + font-size: 13px; + line-height: 18px; + font-weight: 400; + align-self: center; + text-align: left; + user-select: none; + flex: 1; + } + + .sd-table-column-constraints { + font-size: 13px; + line-height: 18px; + font-weight: 400; + align-self: center; + text-align: left; + margin-right: 10px; + user-select: none; + } + \ No newline at end of file diff --git a/src/ts/schemaDesigner/schemaDesigner.ts b/src/ts/schemaDesigner/schemaDesigner.ts new file mode 100644 index 0000000..3f8cdee --- /dev/null +++ b/src/ts/schemaDesigner/schemaDesigner.ts @@ -0,0 +1,702 @@ +import './schemaDesigner.css'; +import '../../css/common.css'; + +import { IColumn, IEntity, IRelationship, ISchema, OnAction, SchemaDesignerConfig } from './schemaDesignerInterfaces'; +import { mxCell, mxEditor, mxGraph, mxGraphModel, mxHierarchicalLayout } from 'mxgraph'; + +import { mxGraphFactory as mx } from '../mx'; +import { SchemaDesignerToolbar } from './schemaDesignerToolbar'; +import { getRowY } from './utils'; +import { SchemaDesignerEntity } from './schemaDesignerEntity'; +import { SchemaDesignerLayout } from './schemaDesignerLayout'; + +const ENTITY_COLUMNS_CONTAINER_CLASS = 'sd-table-columns'; +const ENTITY_COLUMN_DIV_CLASS = 'sd-table-column'; + +export class SchemaDesigner { + private _editor!: mxEditor; + public _graph!: mxGraph; + private _model!: mxGraphModel; + private _toolbar!: SchemaDesignerToolbar; + private _layout!: mxHierarchicalLayout; + + private cellClickListeners: ((cell: mxCell) => void)[] = []; + + constructor( + private _container: HTMLElement, + private _config: SchemaDesignerConfig + ) { + this.initializeGraph(); + } + + private initializeGraph() { + this.overwriteMxGraphDefaults(); + this._editor = new mx.mxEditor(); + const graphContainer = document.createElement("div"); + graphContainer.classList.add("sd-graph-container"); + this._container.appendChild(graphContainer); + this._editor.setGraphContainer(graphContainer); + this._graph = this._editor.graph; + this._model = this._graph.getModel(); + this.setupEditorOptions(); + this.setupGraphOptions(); + this.setupGraphOutlineOptions(); + this.setupToolbar(); + } + + private overwriteMxGraphDefaults() { + mx.mxClient.NO_FO = true; + mx.mxEvent.disableContextMenu(this._container); + mx.mxConstants.DEFAULT_VALID_COLOR = this._config.color.validColor; + mx.mxConstants.VALID_COLOR = this._config.color.validColor; + mx.mxConstants.INVALID_COLOR = this._config.color.invalidColor; + } + + private setupEditorOptions() { + this._editor.layoutSwimlanes = true; + } + + private setupGraphOptions() { + this._graph.setResizeContainer(true); + this._graph.tooltipHandler.setEnabled(false); + this._graph.setConnectable(true); + this._graph.setAllowDanglingEdges(false); + this._graph.setHtmlLabels(true); + this._graph.allowLoops = false; + this._graph.connectionHandler.enabled = false; + this._graph.connectionHandler.movePreviewAway = false; + this._graph.connectionHandler.moveIconFront = true; + this._graph.connectionHandler.connectImage = new mx.mxImage( + this._config.icons.connectorIcon, + 24, + 24 + ); + this._graph.connectionHandler.factoryMethod = null!; + this._layout = new SchemaDesignerLayout(this._graph); + this._layout.intraCellSpacing = 30; + this._graph.setCellsDisconnectable(false); + this._graph.autoExtend = true; + new mx.mxRubberband(this._graph); + + this._graph.view.updateFloatingTerminalPoint = function (edge, start, end, source) { + const next = this.getNextPoint(edge, end, source); + if (start?.text?.node === undefined) { + // This means that the start cell doesn't have a label. + return; + } + + const div = start.text.node.getElementsByClassName(ENTITY_COLUMNS_CONTAINER_CLASS)[0]; + + let x = start.x; + let y = start.getCenterY(); + // Checks on which side of the terminal to leave + if (next.x > x + start.width / 2) { + x += start.width; + } + + if (div !== null && div !== undefined) { + y = start.getCenterY() - div.scrollTop; + if ( + edge.cell.value !== undefined && + !this.graph.isCellCollapsed(start.cell) + ) { + const edgeCellValue = edge.cell.value as EdgeCellValue; + const row = source ? edgeCellValue.sourceRow : edgeCellValue.targetRow; + const columns = div.getElementsByClassName(ENTITY_COLUMN_DIV_CLASS); + const column = columns[Math.min(columns.length - 1, row - 1)] as HTMLElement; + // Gets vertical center of source or target row + if (column !== undefined || column !== null) { + y = getRowY(start, column); + } else { + return; + } + } + + if (edge !== null && edge.absolutePoints !== null) { + next.y = y; + } + } else { + return; + } + + edge.setAbsoluteTerminalPoint(new mx.mxPoint(x, y), source); + + /** + * Routes multiple incoming edges along common waypoints if the edges + * have the common target row + */ + + if (source && edge.cell.value !== undefined && start !== null && end !== null) { + let edges = this.graph.getEdgesBetween(start.cell, end.cell, true); + const tmp = []; + + // Filters the edges with the same source row + const row = (edge.cell.value as EdgeCellValue).targetRow; + + for (let i = 0; i < edges.length; i++) { + if ( + edges[i].value !== undefined && + (edges[i].value as EdgeCellValue).targetRow === row + ) { + tmp.push(edges[i]); + } + } + + edges = tmp; + + if (edges.length > 1 && edge.cell === edges[edges.length - 1]) { + // Finds the vertical center + const states = []; + let y = 0; + + for (let i = 0; i < edges.length; i++) { + states[i] = this.getState(edges[i]); + y += states[i].absolutePoints[0].y; + } + + y /= edges.length; + + for (let i = 0; i < states.length; i++) { + const x = states[i].absolutePoints[1].x; + + if (states[i].absolutePoints.length < 5) { + states[i].absolutePoints.splice(2, 0, new mx.mxPoint(x, y)); + } else { + states[i].absolutePoints[2] = new mx.mxPoint(x, y); + } + + // Must redraw the previous edges with the changed point + if (i < states.length - 1) { + this.graph.cellRenderer.redraw(states[i]); + } + } + } + } + + if (start.cell.value.scrollTop) { + div.scrollTop = start.cell.value.scrollTop; + } + }; + + this._graph.getLabel = (cell) => { + if (cell?.value?.render !== undefined) { + return cell.value.render(); + } + return document.createElement("div"); + }; + this._graph.isHtmlLabel = (cell) => { + return !this._model.isEdge(cell); + } + this._graph.isCellEditable = (cell) => { + return this._config.isEditable && !this._model.isEdge(cell); + } + this._graph.isCellMovable = (cell) => { + return this._config.isEditable && !this._model.isEdge(cell); + } + this._graph.isCellResizable = (_cell) => { + return false; + } + this._graph.isCellFoldable = (_cell) => { + return false; + } + this._graph.convertValueToString = function (cell) { + if (cell?.value?.entity?.name !== undefined) { + return cell.value.entity.name; + } + return mx.mxGraph.prototype.convertValueToString.apply(this, [cell]); + } + this._graph.model.valueForCellChanged = function (cell, value) { + const old = cell.value.name; + cell.value.name = value; + return old; + } + const oldRedrawLabel = this._graph.cellRenderer.redrawLabel; + this._graph.cellRenderer.redrawLabel = function (state) { + oldRedrawLabel.apply(this, arguments as any); // super call; + const graph = state.view.graph; + const model = graph.model; + if (model.isVertex(state.cell) && state.text !== null) { + // Scrollbars are on the div + const div = state.text.node.getElementsByClassName(ENTITY_COLUMNS_CONTAINER_CLASS)[0] as HTMLElement; + if (div !== null) { + if (div.getAttribute('scrollHandler') === null) { + div.setAttribute('scrollHandler', 'true'); + const updateEdges = mx.mxUtils.bind(this, function () { + graph.clearSelection(); + const edgeCount = model.getEdgeCount(state.cell); + // Only updates edges to avoid update in DOM order + // for text label which would reset the scrollbar + for (let i = 0; i < edgeCount; i++) { + const edge = model.getEdgeAt(state.cell, i); + graph.view.invalidate(edge, true, false); + graph.view.validate(edge); + } + }); + mx.mxEvent.addListener(div, "scroll", () => { + state.cell.value.scrollTop = div.scrollTop; + updateEdges(); + }); + mx.mxEvent.addListener(div, "mouseup", updateEdges); + } + } + } + }; + + (this._graph.connectionHandler as extendedConnectionHandler).updateRow = function (target) { + while ( + target !== null && + target.className.includes !== null && + typeof target.className === 'string' && + target?.className?.includes("sd-table-column-") + ) { + target = target.parentNode as HTMLElement; + } + + this.currentRow = undefined; + if (target !== null && target?.className === "sd-table-column") { + this.currentRow = parseInt(target.getAttribute("column-id")!) + 1; + } else { + target = null!; + } + return target; + }; + + // Adds placement of the connect icon based on the mouse event target (row) + (this._graph.connectionHandler as extendedConnectionHandler).updateIcons = function (state, icons: any, me) { + let target = me.getSource() as HTMLElement; + target = this.updateRow(target) as HTMLElement; + if (target !== undefined && this.currentRow !== undefined) { + const div = target.parentNode as HTMLElement; + const s = state.view.scale; + icons[0].node.style.userSelect = "none"; + icons[0].node.style.visibility = "visible"; + icons[0].bounds.width = s * 24; + icons[0].bounds.height = s * 24; + icons[0].bounds.x = state.x + target.offsetWidth * s; + icons[0].bounds.y = + state.y + + target.offsetTop * s + + - div.scrollTop + + (target.offsetHeight * s) / 2 - + icons[0].bounds.height / 2; // 1.2 makes the icon completely centered to the target row. Ideally it should be 2 but it is not working as expected. + icons[0].redraw(); + this.currentRowNode = target; + } else { + icons[0].node.style.visibility = "hidden"; + } + }; + + + const oldMouseMove = this._graph.connectionHandler.mouseMove; + (this._graph.connectionHandler as extendedConnectionHandler).mouseMove = function (_sender, me) { + if (this.edgeState !== null) { + this.currentRowNode = this.updateRow(me.getSource() as HTMLElement) as HTMLElement; + if (this.currentRow !== null) { + this.edgeState.cell.value.targetRow = this.currentRow; + } else { + this.edgeState.cell.value.targetRow = 0; + } + } + oldMouseMove.apply(this, arguments as any); + }; + + (this._graph.connectionHandler as extendedConnectionHandler).createEdgeState = function (_me) { + const relation: EdgeCellValue = { + sourceRow: this.currentRow || 0, + targetRow: 0, + }; + const edge = this.createEdge(relation); + const style = this.graph.getCellStyle(edge); + const state = new mx.mxCellState(this.graph.view, edge, style); + this.sourceRowNode = this.currentRowNode; + return state; + }; + + (this._graph.connectionHandler as extendedConnectionHandler).isValidTarget = function (_cell) { + return this.currentRowNode !== null; + }; + + (this._graph.connectionHandler as extendedConnectionHandler).validateConnection = function (source, target) { + if (this.edgeState === null) { + return null!; + } + if (this.currentRowNode === null) { + return ""; + } + // No connection to edge cells + if (this.graph.model.isEdge(target)) { + return ""; + } + + if (source === target) { + return ""; + } + + const edgeState = this.edgeState; + const edgeStateValue = edgeState.cell.value as EdgeCellValue; + const edgeBetweenSourceAndTarget = this.graph.model.getEdgesBetween(source, target); + for (let i = 0; i < edgeBetweenSourceAndTarget.length; i++) { + const edge = edgeBetweenSourceAndTarget[i]; + const edgeValue = edge.value as EdgeCellValue; + // No repeated edges + if ( + edgeValue.sourceRow === edgeStateValue.sourceRow && + edgeValue.targetRow === edgeStateValue.targetRow && + edge.source === source && + edge.target === target + ) { + return ""; + } + + // No cyclic connections + if ( + // edgeValue.sourceRow === edgeStateValue.targetRow && + // edgeValue.targetRow === edgeStateValue.sourceRow && + edge.source === target && + edge.target === source + ) { + return ""; + } + } + return null!; + }; + + (this._graph.connectionHandler as extendedConnectionHandler).getTargetPerimeterPoint = function (state, me) { + let y = me.getY(); + if (this.currentRowNode !== null) { + y = getRowY(state, this.currentRowNode); + } + let x = state.x; + if (this.getEventSource().getCenterX() > state.getCenterX()) { + x += state.width; + } + return new mx.mxPoint(x, y); + }; + + (this._graph.connectionHandler as extendedConnectionHandler).getSourcePerimeterPoint = function (state, next, me) { + let y = me.getY(); + if (this.sourceRowNode !== null) { + y = getRowY(state, this.sourceRowNode); + } + + // Checks on which side of the terminal to leave + let x = state.x; + + if (next.x > state.getCenterX()) { + x += state.width; + } + + return new mx.mxPoint(x, y); + }; + + this._graph.connectionHandler.addListener(mx.mxEvent.CONNECT, (_sender, evt) => { + const edge = evt.getProperty('cell'); + const source = this._graph.getModel().getTerminal(edge, true); + this._graph.view.invalidate(source, false, false); + this._graph.view.validate(source); + }); + + this._graph.addListener(mx.mxEvent.DOUBLE_CLICK, (_sender, _evt) => { + const cell = this._graph.getSelectionCell(); + if (cell !== undefined) { + this.cellClickListeners.forEach((listener) => listener(cell)); + } + }); + + this._graph.getStylesheet().getDefaultVertexStyle()['cellHighlightColor'] = "red"; + this._graph.getStylesheet().getDefaultEdgeStyle()['edgeStyle'] = mx.mxEdgeStyle.ElbowConnector; + this._graph.stylesheet.getDefaultEdgeStyle()[mx.mxConstants.STYLE_EDGE] = mx.mxConstants.EDGESTYLE_ENTITY_RELATION; + } + + private setupGraphOutlineOptions() { + const outlineContainer = document.createElement("div"); + outlineContainer.classList.add("sd-outline"); + this._container.appendChild(outlineContainer); + new mx.mxOutline(this._graph, outlineContainer); + } + + private setupToolbar() { + const toolbarBelt = document.createElement("div"); + toolbarBelt.classList.add("sd-toolbar-belt"); + this._container.appendChild(toolbarBelt); + this._toolbar = new SchemaDesignerToolbar(toolbarBelt, this._graph, this._config); + if (this._config.isEditable) { + this._toolbar.addButton( + this._config.icons.addTableIcon, + "Add Table", + () => { + }, + (_graph, evt, _cell) => { + this._graph.stopEditing(false); + const pt = this._graph.getPointForEvent(evt, true); + const entity: IEntity = { + name: "New Table", + schema: "dbo", + columns: [{ + name: "Column1", + dataType: "int", + isPrimaryKey: true, + isIdentity: true + }, { + name: "Column2", + dataType: "int", + isPrimaryKey: false, + isIdentity: false + }, { + name: "Column2", + dataType: "int", + isPrimaryKey: false, + isIdentity: false + }] + }; + + this.renderEntity(entity, pt.x, pt.y); + } + ); + this._toolbar.addDivider(); + this._toolbar.addButton( + this._config.icons.undoIcon, + "Undo", + () => { + this._editor.execute("undo"); + } + ); + this._toolbar.addButton( + this._config.icons.redoIcon, + "Redo", + () => { + this._editor.execute("redo"); + } + ); + this._toolbar.addDivider(); + } + + + this._toolbar.addButton( + this._config.icons.zoomInIcon, + "Zoom In", + () => { + this._editor.execute("zoomIn"); + this.redrawEdges(); + } + ); + + this._toolbar.addButton( + this._config.icons.zoomOutIcon, + "Zoom Out", + () => { + this._editor.execute("zoomOut"); + this.redrawEdges(); + } + ); + + this._toolbar.addDivider(); + + this._toolbar.addButton( + this._config.icons.autoarrangeIcon, + "Auto Arrange", + () => { + this.autoArrange(); + } + ); + this._toolbar.addButton( + this._config.icons.exportIcon, + "Export", + () => { + const schema = this.schema; + console.log(schema); + } + ); + if (this._config.isEditable) { + this._toolbar.addDivider(); + this._toolbar.addButton( + this._config.icons.deleteIcon, + "Delete", + () => { + const cell = this._graph.getSelectionCell(); + if (cell !== undefined) { + this._editor.execute("delete", cell); + } + } + ); + } + } + + private redrawEdges() { + const cells = this._model.getChildCells(this._graph.getDefaultParent()); + for (let i = 0; i < cells.length; i++) { + if (!cells[i].edge) { + continue; + } + const edge = cells[i]; + this._graph.view.invalidate(edge, true, false); + this._graph.view.validate(edge); + } + } + + public renderModel(schema: ISchema, cleanUndoManager: boolean = false) { + const parent = this._graph.getDefaultParent(); + this._model.beginUpdate(); + try { + this._graph.removeCells(this._model.getChildCells(parent)); + const entities = schema.entities; + for (let i = 0; i < entities.length; i++) { + const entity = entities[i]; + this.renderEntity(entity, 100 + i * 50, 100 + i * 50); + } + for (let i = 0; i < schema.relationships.length; i++) { + const relationship = schema.relationships[i]; + this.renderRelationship(relationship); + } + } finally { + this._model.endUpdate(); + this._graph.view.refresh(); + const parentCells = []; + for (let i = 0; i < this._model.cells.length; i++) { + if (this._model.cells[i].vertex) { + if (this._model.getIncomingEdges(this._model.cells[i]).length === 0) { + parentCells.push(this._model.cells[i]); + } + + } + } + + this.autoArrange(); + if (cleanUndoManager) { + this._editor.undoManager.clear(); + } + } + } + + private renderEntity(entity: IEntity, x: number, y: number) { + const entityValue = new SchemaDesignerEntity(entity, this._config, this._graph); + const entityCell = new mx.mxCell( + entityValue, + new mx.mxGeometry( + 0, + 0, + 260 + 4, + Math.min(330, 52 + entityValue.columns.length * 28) + 4, + ) + ); + entityCell.setVertex(true); + this._model.beginUpdate(); + try { + entityCell.geometry.x = x; + entityCell.geometry.y = y; + entityCell.geometry.alternateBounds = new mx.mxRectangle(0, 0, entityCell.geometry.width, entityCell.geometry.height); + this._graph.addCell(entityCell, this._graph.getDefaultParent()); + } finally { + this._model.endUpdate(); + } + this._graph.setSelectionCell(entityCell); + } + + private renderRelationship(relationship: IRelationship) { + const cells = this._model.getChildCells(this._graph.getDefaultParent()); + const source = cells.find((cell) => cell.value.name === relationship.entity); + const target = cells.find((cell) => cell.value.name === relationship.referencedEntity); + if (source === undefined || target === undefined) { + return; + } + const edgeValue: EdgeCellValue = { + sourceRow: source.value.columns.findIndex((column: IColumn) => column.name === relationship.column) + 1, + targetRow: target.value.columns.findIndex((column: IColumn) => column.name === relationship.referencedColumn) + 1 + }; + this._graph.insertEdge(this._graph.getDefaultParent(), null!, edgeValue, source, target); + this._graph.view.invalidate(source, false, false); + this._graph.view.validate(source); + this._graph.view.invalidate(target, false, false); + this._graph.view.validate(target); + } + + public get schema(): ISchema { + const schema: ISchema = { + entities: [], + relationships: [] + }; + const cells = this._model.getChildCells(this._graph.getDefaultParent()); + for (let i = 0; i < cells.length; i++) { + const cell = cells[i]; + if (cell.vertex) { + const entity: IEntity = { + columns: cell.value.columns, + name: cell.value.name, + schema: cell.value.schema + }; + schema.entities.push(entity); + } else if (cell.edge) { + const relationship: IRelationship = { + foreignKeyName: "", + onDeleteAction: OnAction.CASCADE, + onUpdateAction: OnAction.CASCADE, + column: cell.target.value.columns[cell.value.sourceRow - 1].name, + entity: cell.target.value.name, + referencedEntity: cell.source.value.name, + referencedColumn: cell.source.value.columns[cell.value.targetRow - 1].name + }; + schema.relationships.push(relationship); + } + } + return schema; + } + + public autoArrange() { + this._model.beginUpdate(); + this._layout.execute(this._graph.getDefaultParent()); + const cells = this._graph.getChildCells(this._graph.getDefaultParent()); + this._graph.center(); + + const mostNegativeX = this.mostNegativeX(); + console.log('-x', mostNegativeX); + + const mostNegativeY = this.mostNegativeY(); + console.log('-y', mostNegativeY); + + this._graph.moveCells(cells, -mostNegativeX + 100, -mostNegativeY + 100, false); + this._graph.sizeDidChange(); + + this._model.endUpdate(); + } + + private mostNegativeX() { + let mostNegativeX = 0; + const cells = this._graph.getChildCells(this._graph.getDefaultParent()); + for (let i = 0; i < cells.length; i++) { + const cell = cells[i]; + if (cell.geometry.x < mostNegativeX) { + mostNegativeX = cell.geometry.x; + } + } + return mostNegativeX; + } + + private mostNegativeY() { + let mostNegativeY = 0; + const cells = this._graph.getChildCells(this._graph.getDefaultParent()); + for (let i = 0; i < cells.length; i++) { + const cell = cells[i]; + if (cell.geometry.y < mostNegativeY) { + mostNegativeY = cell.geometry.y; + } + } + return mostNegativeY; + } + + public addCellClickListener(listener: (cell: mxCell) => void) { + this.cellClickListeners.push(listener); + } +} + + +export interface EdgeCellValue { + sourceRow: number; + targetRow: number; +} + +export class extendedConnectionHandler extends mx.mxConnectionHandler { + public currentRow?: number = 0; + public sourceRowNode!: HTMLElement; + public currentRowNode!: HTMLElement; + public updateRow!: (targetNode: HTMLElement) => HTMLElement | null; +} \ No newline at end of file diff --git a/src/ts/schemaDesigner/schemaDesignerEntity.ts b/src/ts/schemaDesigner/schemaDesignerEntity.ts new file mode 100644 index 0000000..1eeeed1 --- /dev/null +++ b/src/ts/schemaDesigner/schemaDesignerEntity.ts @@ -0,0 +1,78 @@ +import { mxGraph } from "mxgraph"; +import { IColumn, IEntity, SchemaDesignerConfig } from "./schemaDesignerInterfaces"; + +export class SchemaDesignerEntity implements IEntity { + public div!: HTMLElement; + public name: string; + public schema: string; + public columns: IColumn[]; + + constructor(entity: IEntity, private _config: SchemaDesignerConfig, private _graph: mxGraph) { + this.name = entity.name; + this.schema = entity.schema; + this.columns = entity.columns; + } + + render(): HTMLElement { + const parent = document.createElement("div"); + parent.classList.add("sd-table"); + const colorIndicator = document.createElement("div"); + colorIndicator.classList.add("sd-table-color-indicator"); + parent.appendChild(colorIndicator); + const header = document.createElement("div"); + header.classList.add("sd-table-header"); + const headerIcon = document.createElement("div"); + headerIcon.classList.add("sd-table-header-icon"); + headerIcon.style.backgroundImage = `url(${this._config.icons.entityIcon})`; + header.appendChild(headerIcon); + const headerText = document.createElement("div"); + headerText.classList.add("sd-table-header-text"); + headerText.innerText = `${this.schema}.${this.name}`; + header.appendChild(headerText); + parent.appendChild(header); + + const columns = document.createElement("div"); + columns.classList.add("sd-table-columns"); + this.columns.forEach((column, index) => { + const columnDiv = document.createElement("div"); + columnDiv.classList.add("sd-table-column"); + const columnIcon = document.createElement("div"); + columnIcon.classList.add("sd-table-column-icon"); + columnIcon.style.backgroundImage = `url(${this._config.icons.dataTypeIcons![column.dataType]})`; + columnDiv.appendChild(columnIcon); + const columnText = document.createElement("div"); + columnText.classList.add("sd-table-column-text"); + columnText.innerText = column.name; + columnDiv.appendChild(columnText); + const columnConstraints = document.createElement("div"); + columnConstraints.classList.add("sd-table-column-constraints"); + columnConstraints.innerText = this.getConstraintText(column, index); + columnDiv.appendChild(columnConstraints); + columnDiv.setAttribute("column-id", index.toString()); + columns.appendChild(columnDiv); + }); + parent.appendChild(columns); + this.div = parent; + return parent; + } + + private getConstraintText(col: IColumn, index: number): string { + const constraints = []; + if (col.isPrimaryKey) { + constraints.push("PK"); + } + const cells = this._graph.getChildCells(this._graph.getDefaultParent()); + const vertex = cells.find(cell => cell.vertex && cell.value.name === this.name && cell.value.schema === this.schema); + if (vertex) { + const edges = this._graph.getEdges(vertex); + const outgoingEdges = edges.filter(edge => edge.source === vertex); + for (const edge of outgoingEdges) { + if (edge.value.sourceRow - 1 === index) { + constraints.push("FK"); + break; + } + } + } + return constraints.join(", "); + } +} diff --git a/src/ts/schemaDesigner/schemaDesignerInterfaces.ts b/src/ts/schemaDesigner/schemaDesignerInterfaces.ts new file mode 100644 index 0000000..0bc5009 --- /dev/null +++ b/src/ts/schemaDesigner/schemaDesignerInterfaces.ts @@ -0,0 +1,105 @@ +export interface ISchema { + entities: IEntity[]; + relationships: IRelationship[]; +} + + +export interface IEntity { + /** + * Name of the entity + */ + name: string; + /** + * Schema of the entity + */ + schema: string; + /** + * Columns of the entity + */ + columns: IColumn[]; +} + +export interface IColumn { + /** + * Name of the column + */ + name: string; + /** + * Data type of the column + */ + dataType: string; + /** + * Is the column primary key + */ + isPrimaryKey: boolean; + /** + * Is the column identity + */ + isIdentity: boolean; +} + +export interface IRelationship { + /** + * Name of the relationship + */ + foreignKeyName: string; + /** + * Parent entity of the relationship + */ + entity: string; + /** + * Parent column of the relationship + */ + column: string; + /** + * Referenced entity of the relationship + */ + referencedEntity: string; + /** + * Referenced column of the relationship + */ + referencedColumn: string; + /** + * On delete action of the relationship + */ + onDeleteAction: OnAction; + /** + * On update action of the relationship + */ + onUpdateAction: OnAction; +} + +export enum OnAction { + CASCADE = "0", + NO_ACTION = "1", + SET_NULL = "2", + SET_DEFAULT = "3" +} + + +export interface SchemaDesignerConfig { + icons: { + addTableIcon: string; + undoIcon: string; + redoIcon: string; + zoomInIcon: string; + zoomOutIcon: string; + deleteIcon: string; + entityIcon: string; + dataTypeIcons: { [key: string]: string }; + connectorIcon: string; + exportIcon: string; + autoarrangeIcon: string; + } + color: { + cellFillColor: string; + cellHighlightColor: string; + edgeStrokeColor: string; + outlineColor: string; + toolbarBackgroundColor: string; + validColor: string; + invalidColor: string; + } + graphFontFamily: string; + isEditable: boolean; +} \ No newline at end of file diff --git a/src/ts/schemaDesigner/schemaDesignerLayout.ts b/src/ts/schemaDesigner/schemaDesignerLayout.ts new file mode 100644 index 0000000..6434d5b --- /dev/null +++ b/src/ts/schemaDesigner/schemaDesignerLayout.ts @@ -0,0 +1,12 @@ +import { mxCell, mxGraph } from "mxgraph"; +import { mxGraphFactory as mx } from '../mx'; + +export class SchemaDesignerLayout extends mx.mxHierarchicalLayout { + constructor(graph: mxGraph) { + super(graph, mx.mxConstants.DIRECTION_EAST, true); + } + + public override execute(parent: mxCell): void { + super.execute(parent); + } +} \ No newline at end of file diff --git a/src/ts/schemaDesigner/schemaDesignerToolbar.ts b/src/ts/schemaDesigner/schemaDesignerToolbar.ts new file mode 100644 index 0000000..d98f991 --- /dev/null +++ b/src/ts/schemaDesigner/schemaDesignerToolbar.ts @@ -0,0 +1,42 @@ +import { mxCellState, mxGraph } from "mxgraph"; +import {mxGraphFactory as mx} from '../mx'; +import { SchemaDesignerConfig } from "./schemaDesignerInterfaces"; + +export class SchemaDesignerToolbar { + private _toolbarDiv: HTMLElement; + constructor(private _container: HTMLElement, private _graph: mxGraph, private _config: SchemaDesignerConfig) { + this._toolbarDiv = document.createElement("div"); + this._container.appendChild(this._toolbarDiv); + this._toolbarDiv.classList.add("sd-toolbar"); + } + + public addButton( + icon: string, + title: string, + callback: () => void, + onDragEndCallback?: (graph: mxGraph, evt: MouseEvent, cell: mxCellState) => void) { + const button = document.createElement("div"); + this._toolbarDiv.appendChild(button); + button.classList.add("sd-toolbar-button"); + button.style.backgroundImage = `url(${icon})`; + button.onclick = callback; + button.title = title; + if (onDragEndCallback) { + const dragImage = button.cloneNode(true) as HTMLElement; + dragImage.style.backgroundColor = this._config.color.toolbarBackgroundColor; + const ds = mx.mxUtils.makeDraggable( + button, + this._graph, + onDragEndCallback, + dragImage + ); + ds.highlightDropTargets = true; + } + } + + public addDivider() { + const divider = document.createElement("div"); + this._toolbarDiv.appendChild(divider); + divider.classList.add("sd-toolbar-divider"); + } +} \ No newline at end of file diff --git a/src/ts/schemaDesigner/utils.ts b/src/ts/schemaDesigner/utils.ts new file mode 100644 index 0000000..729022d --- /dev/null +++ b/src/ts/schemaDesigner/utils.ts @@ -0,0 +1,23 @@ +import { mxCellState } from "mxgraph"; + +/** + * This function should return the vertical center of the column in an entity + * @param state cell containing the entity of the column. + * @param column column element. + * @returns the vertical center of the column. + */ +export function getRowY(state: mxCellState, column: HTMLElement): number { + const s = state.view.scale; + if (!column) { + return state.y; + } + const div = column.parentNode as HTMLElement; + let y = state.y + (column.offsetTop - div.scrollTop + column.offsetHeight / 2) * s; // 5 is the magic number to make the line completely centered to the row. + if (div.scrollTop > column.offsetTop) { // If the column is above the visible area of the entity container div then we should use the top of the column container. + y = state.y + (div.offsetTop - 15) * s; + } + if (y > state.y + div.offsetTop * s + div.clientHeight * s) { // If the column is below the visible area of the entity container div then we should use the bottom of the column container. + y = state.y + (div.offsetTop + div.clientHeight - 5) * s; + } + return y; +} \ No newline at end of file diff --git a/ts-examples/bigSchema.html b/ts-examples/bigSchema.html new file mode 100644 index 0000000..85573b4 --- /dev/null +++ b/ts-examples/bigSchema.html @@ -0,0 +1,98 @@ + + + + + + Big Schema Designer + + + + + +
+ + diff --git a/ts-examples/resources/addTable.svg b/ts-examples/resources/addTable.svg new file mode 100644 index 0000000..57e7aee --- /dev/null +++ b/ts-examples/resources/addTable.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/ts-examples/resources/arrange.svg b/ts-examples/resources/arrange.svg new file mode 100644 index 0000000..892ee44 --- /dev/null +++ b/ts-examples/resources/arrange.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/ts-examples/resources/connector.svg b/ts-examples/resources/connector.svg new file mode 100644 index 0000000..51fd766 --- /dev/null +++ b/ts-examples/resources/connector.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/ts-examples/resources/datatype_bit.svg b/ts-examples/resources/datatype_bit.svg new file mode 100644 index 0000000..7488877 --- /dev/null +++ b/ts-examples/resources/datatype_bit.svg @@ -0,0 +1,5 @@ + + + 010 + + \ No newline at end of file diff --git a/ts-examples/resources/datatype_datetime.svg b/ts-examples/resources/datatype_datetime.svg new file mode 100644 index 0000000..dec18a8 --- /dev/null +++ b/ts-examples/resources/datatype_datetime.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/ts-examples/resources/datatype_decimal.svg b/ts-examples/resources/datatype_decimal.svg new file mode 100644 index 0000000..fba1eed --- /dev/null +++ b/ts-examples/resources/datatype_decimal.svg @@ -0,0 +1,7 @@ + + + + Layer 1 + + + \ No newline at end of file diff --git a/ts-examples/resources/datatype_geography.svg b/ts-examples/resources/datatype_geography.svg new file mode 100644 index 0000000..77f80b1 --- /dev/null +++ b/ts-examples/resources/datatype_geography.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/ts-examples/resources/datatype_int.svg b/ts-examples/resources/datatype_int.svg new file mode 100644 index 0000000..fba1eed --- /dev/null +++ b/ts-examples/resources/datatype_int.svg @@ -0,0 +1,7 @@ + + + + Layer 1 + + + \ No newline at end of file diff --git a/ts-examples/resources/datatype_text.svg b/ts-examples/resources/datatype_text.svg new file mode 100644 index 0000000..be98986 --- /dev/null +++ b/ts-examples/resources/datatype_text.svg @@ -0,0 +1,7 @@ + + + + Layer 1 + + + \ No newline at end of file diff --git a/ts-examples/resources/datatype_varbinary.svg b/ts-examples/resources/datatype_varbinary.svg new file mode 100644 index 0000000..836cf62 --- /dev/null +++ b/ts-examples/resources/datatype_varbinary.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/ts-examples/resources/delete.svg b/ts-examples/resources/delete.svg new file mode 100644 index 0000000..87f9f4f --- /dev/null +++ b/ts-examples/resources/delete.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/ts-examples/resources/export.svg b/ts-examples/resources/export.svg new file mode 100644 index 0000000..2ba4729 --- /dev/null +++ b/ts-examples/resources/export.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/ts-examples/resources/redo.svg b/ts-examples/resources/redo.svg new file mode 100644 index 0000000..1e34f3e --- /dev/null +++ b/ts-examples/resources/redo.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/ts-examples/resources/schemaDesigner.css b/ts-examples/resources/schemaDesigner.css new file mode 100644 index 0000000..c57e049 --- /dev/null +++ b/ts-examples/resources/schemaDesigner.css @@ -0,0 +1,32 @@ +:root { + --graph-font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; + --color-toolbar-bg: #2c2c2c; + --color-toolbar-text: #fff; + --color-toolbar-button-hover: #383838; + --color-toolbar-divider: #444444; + --color-border: #c3c3c3; + --color-outline-color: #0c8ce9; + --color-graph-gridLines: #c3c3c3; + --color-graph-outline-background: #fff; + --color-graph-cell-highlight: #0c8ce9; + --color-graph-outline-tableCell: #1e272e; + --color-graph-outline-columnCell: #bdc3c7; + --color-graph-background: #ffffff; + --color-graph-table-indicator: #00a2ad; + --color-graph-column-indicator: #f0f0f0; + --color-graph-node-hover: #f0f0f0; + } + .background { + margin: 0; + padding: 0; + width: 100%; + height: 100%; + padding: 10px; + } + #graphContainer { + position: relative; + overflow: hidden; + width: 100%; + height: calc(100vh - 20px); + user-select: none; + } \ No newline at end of file diff --git a/ts-examples/resources/table.svg b/ts-examples/resources/table.svg new file mode 100644 index 0000000..b97223c --- /dev/null +++ b/ts-examples/resources/table.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/ts-examples/resources/tableNode.svg b/ts-examples/resources/tableNode.svg new file mode 100644 index 0000000..db28a06 --- /dev/null +++ b/ts-examples/resources/tableNode.svg @@ -0,0 +1,3 @@ + + + diff --git a/ts-examples/resources/text.svg b/ts-examples/resources/text.svg new file mode 100644 index 0000000..be98986 --- /dev/null +++ b/ts-examples/resources/text.svg @@ -0,0 +1,7 @@ + + + + Layer 1 + + + \ No newline at end of file diff --git a/ts-examples/resources/undo.svg b/ts-examples/resources/undo.svg new file mode 100644 index 0000000..359faa5 --- /dev/null +++ b/ts-examples/resources/undo.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/ts-examples/resources/zoomIn.svg b/ts-examples/resources/zoomIn.svg new file mode 100644 index 0000000..9de665f --- /dev/null +++ b/ts-examples/resources/zoomIn.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/ts-examples/resources/zoomOut.svg b/ts-examples/resources/zoomOut.svg new file mode 100644 index 0000000..fa55a04 --- /dev/null +++ b/ts-examples/resources/zoomOut.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/ts-examples/schemaDesigner.html b/ts-examples/schemaDesigner.html deleted file mode 100644 index 75510d8..0000000 --- a/ts-examples/schemaDesigner.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - Hello World Library - - - - - -
- - \ No newline at end of file diff --git a/ts-examples/schemaDesigner.js b/ts-examples/schemaDesigner.js new file mode 100644 index 0000000..6cf99d1 --- /dev/null +++ b/ts-examples/schemaDesigner.js @@ -0,0 +1,4548 @@ +export const test = { + "entities": [ + { + "name": "Colors", + "schema": "Warehouse", + "columns": [ + { + "name": "ColorID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ColorName", + "dataType": "nvarchar", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "Colors_Archive", + "schema": "Warehouse", + "columns": [ + { + "name": "ColorID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ColorName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "OrderLines", + "schema": "Sales", + "columns": [ + { + "name": "OrderLineID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "OrderID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "StockItemID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "Description", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PackageTypeID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "Quantity", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "UnitPrice", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "TaxRate", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PickedQuantity", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PickingCompletedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "PackageTypes", + "schema": "Warehouse", + "columns": [ + { + "name": "PackageTypeID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "PackageTypeName", + "dataType": "nvarchar", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "PackageTypes_Archive", + "schema": "Warehouse", + "columns": [ + { + "name": "PackageTypeID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PackageTypeName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "StockGroups", + "schema": "Warehouse", + "columns": [ + { + "name": "StockGroupID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "StockGroupName", + "dataType": "nvarchar", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "StockItemStockGroups", + "schema": "Warehouse", + "columns": [ + { + "name": "StockItemStockGroupID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "StockItemID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "StockItemID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "StockItemID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "StockGroupID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "StockGroupID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "StockGroupID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "StockGroups_Archive", + "schema": "Warehouse", + "columns": [ + { + "name": "StockGroupID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "StockGroupName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "StateProvinces", + "schema": "Application", + "columns": [ + { + "name": "StateProvinceID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "StateProvinceCode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "StateProvinceName", + "dataType": "nvarchar", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "CountryID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "SalesTerritory", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Border", + "dataType": "geography", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LatestRecordedPopulation", + "dataType": "bigint", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "CustomerTransactions", + "schema": "Sales", + "columns": [ + { + "name": "CustomerTransactionID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "CustomerID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "TransactionTypeID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "InvoiceID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "PaymentMethodID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "TransactionDate", + "dataType": "date", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "AmountExcludingTax", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "TaxAmount", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "TransactionAmount", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "OutstandingBalance", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "FinalizationDate", + "dataType": "date", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsFinalized", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "StateProvinces_Archive", + "schema": "Application", + "columns": [ + { + "name": "StateProvinceID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "StateProvinceCode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "StateProvinceName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CountryID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "SalesTerritory", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Border", + "dataType": "geography", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LatestRecordedPopulation", + "dataType": "bigint", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "Cities", + "schema": "Application", + "columns": [ + { + "name": "CityID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "CityName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "StateProvinceID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "Location", + "dataType": "geography", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LatestRecordedPopulation", + "dataType": "bigint", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "Cities_Archive", + "schema": "Application", + "columns": [ + { + "name": "CityID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CityName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "StateProvinceID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Location", + "dataType": "geography", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LatestRecordedPopulation", + "dataType": "bigint", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "SystemParameters", + "schema": "Application", + "columns": [ + { + "name": "SystemParameterID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "DeliveryAddressLine1", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryAddressLine2", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryCityID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "DeliveryPostalCode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryLocation", + "dataType": "geography", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalAddressLine1", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalAddressLine2", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalCityID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "PostalPostalCode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ApplicationSettings", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "InvoiceLines", + "schema": "Sales", + "columns": [ + { + "name": "InvoiceLineID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "InvoiceID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "StockItemID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "Description", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PackageTypeID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "Quantity", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "UnitPrice", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "TaxRate", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "TaxAmount", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LineProfit", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ExtendedPrice", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "Suppliers", + "schema": "Purchasing", + "columns": [ + { + "name": "SupplierID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "SupplierName", + "dataType": "nvarchar", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "SupplierCategoryID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "PrimaryContactPersonID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "AlternateContactPersonID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "DeliveryMethodID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "DeliveryCityID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "PostalCityID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "SupplierReference", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "BankAccountName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "BankAccountBranch", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "BankAccountCode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "BankAccountNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "BankInternationalCode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PaymentDays", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "InternalComments", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PhoneNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "FaxNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "WebsiteURL", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryAddressLine1", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryAddressLine2", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryPostalCode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryLocation", + "dataType": "geography", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalAddressLine1", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalAddressLine2", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalPostalCode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "StockItemTransactions", + "schema": "Warehouse", + "columns": [ + { + "name": "StockItemTransactionID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "StockItemID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "TransactionTypeID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "CustomerID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "InvoiceID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "SupplierID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "PurchaseOrderID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "TransactionOccurredWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Quantity", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "Suppliers_Archive", + "schema": "Purchasing", + "columns": [ + { + "name": "SupplierID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "SupplierName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "SupplierCategoryID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PrimaryContactPersonID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "AlternateContactPersonID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryMethodID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryCityID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalCityID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "SupplierReference", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "BankAccountName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "BankAccountBranch", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "BankAccountCode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "BankAccountNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "BankInternationalCode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PaymentDays", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "InternalComments", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PhoneNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "FaxNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "WebsiteURL", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryAddressLine1", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryAddressLine2", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryPostalCode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryLocation", + "dataType": "geography", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalAddressLine1", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalAddressLine2", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalPostalCode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "Customers", + "schema": "Sales", + "columns": [ + { + "name": "CustomerID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "CustomerName", + "dataType": "nvarchar", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "BillToCustomerID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "CustomerCategoryID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "BuyingGroupID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "PrimaryContactPersonID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "AlternateContactPersonID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "DeliveryMethodID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "DeliveryCityID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "PostalCityID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "CreditLimit", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "AccountOpenedDate", + "dataType": "date", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "StandardDiscountPercentage", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsStatementSent", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsOnCreditHold", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PaymentDays", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PhoneNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "FaxNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryRun", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "RunPosition", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "WebsiteURL", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryAddressLine1", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryAddressLine2", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryPostalCode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryLocation", + "dataType": "geography", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalAddressLine1", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalAddressLine2", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalPostalCode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "Customers_Archive", + "schema": "Sales", + "columns": [ + { + "name": "CustomerID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CustomerName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "BillToCustomerID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CustomerCategoryID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "BuyingGroupID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PrimaryContactPersonID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "AlternateContactPersonID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryMethodID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryCityID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalCityID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CreditLimit", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "AccountOpenedDate", + "dataType": "date", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "StandardDiscountPercentage", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsStatementSent", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsOnCreditHold", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PaymentDays", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PhoneNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "FaxNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryRun", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "RunPosition", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "WebsiteURL", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryAddressLine1", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryAddressLine2", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryPostalCode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryLocation", + "dataType": "geography", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalAddressLine1", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalAddressLine2", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PostalPostalCode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "PurchaseOrders", + "schema": "Purchasing", + "columns": [ + { + "name": "PurchaseOrderID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "SupplierID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "OrderDate", + "dataType": "date", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryMethodID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ContactPersonID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ExpectedDeliveryDate", + "dataType": "date", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "SupplierReference", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsOrderFinalized", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Comments", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "InternalComments", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "Orders", + "schema": "Sales", + "columns": [ + { + "name": "OrderID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "CustomerID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "SalespersonPersonID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "PickedByPersonID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ContactPersonID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "BackorderOrderID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "OrderDate", + "dataType": "date", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ExpectedDeliveryDate", + "dataType": "date", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CustomerPurchaseOrderNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsUndersupplyBackordered", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Comments", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryInstructions", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "InternalComments", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PickingCompletedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "ColdRoomTemperatures", + "schema": "Warehouse", + "columns": [ + { + "name": "ColdRoomTemperatureID", + "dataType": "bigint", + "isPrimaryKey": true, + "isIdentity": true + }, + { + "name": "ColdRoomSensorNumber", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "RecordedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Temperature", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "VehicleTemperatures", + "schema": "Warehouse", + "columns": [ + { + "name": "VehicleTemperatureID", + "dataType": "bigint", + "isPrimaryKey": true, + "isIdentity": true + }, + { + "name": "VehicleRegistration", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ChillerSensorNumber", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "RecordedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Temperature", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "FullSensorData", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsCompressed", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CompressedSensorData", + "dataType": "varbinary", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "People", + "schema": "Application", + "columns": [ + { + "name": "PersonID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "FullName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PreferredName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "SearchName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsPermittedToLogon", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LogonName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsExternalLogonProvider", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "HashedPassword", + "dataType": "varbinary", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsSystemUser", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsEmployee", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsSalesperson", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "UserPreferences", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PhoneNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "FaxNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "EmailAddress", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Photo", + "dataType": "varbinary", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CustomFields", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "OtherLanguages", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "StockItems", + "schema": "Warehouse", + "columns": [ + { + "name": "StockItemID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "StockItemName", + "dataType": "nvarchar", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "SupplierID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ColorID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "UnitPackageID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "OuterPackageID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "Brand", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Size", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LeadTimeDays", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "QuantityPerOuter", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsChillerStock", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Barcode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "TaxRate", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "UnitPrice", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "RecommendedRetailPrice", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "TypicalWeightPerUnit", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "MarketingComments", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "InternalComments", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Photo", + "dataType": "varbinary", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CustomFields", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Tags", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "SearchDetails", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "People_Archive", + "schema": "Application", + "columns": [ + { + "name": "PersonID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "FullName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PreferredName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "SearchName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsPermittedToLogon", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LogonName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsExternalLogonProvider", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "HashedPassword", + "dataType": "varbinary", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsSystemUser", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsEmployee", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsSalesperson", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "UserPreferences", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PhoneNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "FaxNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "EmailAddress", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Photo", + "dataType": "varbinary", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CustomFields", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "OtherLanguages", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "ColdRoomTemperatures_Archive", + "schema": "Warehouse", + "columns": [ + { + "name": "ColdRoomTemperatureID", + "dataType": "bigint", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ColdRoomSensorNumber", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "RecordedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Temperature", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "StockItems_Archive", + "schema": "Warehouse", + "columns": [ + { + "name": "StockItemID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "StockItemName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "SupplierID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ColorID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "UnitPackageID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "OuterPackageID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Brand", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Size", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LeadTimeDays", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "QuantityPerOuter", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsChillerStock", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Barcode", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "TaxRate", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "UnitPrice", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "RecommendedRetailPrice", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "TypicalWeightPerUnit", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "MarketingComments", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "InternalComments", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Photo", + "dataType": "varbinary", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CustomFields", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Tags", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "SearchDetails", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "Countries", + "schema": "Application", + "columns": [ + { + "name": "CountryID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "CountryName", + "dataType": "nvarchar", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "FormalName", + "dataType": "nvarchar", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "IsoAlpha3Code", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsoNumericCode", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CountryType", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LatestRecordedPopulation", + "dataType": "bigint", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Continent", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Region", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Subregion", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Border", + "dataType": "geography", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "StockItemHoldings", + "schema": "Warehouse", + "columns": [ + { + "name": "StockItemID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "StockItemID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "QuantityOnHand", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "BinLocation", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastStocktakeQuantity", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastCostPrice", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ReorderLevel", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "TargetStockLevel", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "PurchaseOrderLines", + "schema": "Purchasing", + "columns": [ + { + "name": "PurchaseOrderLineID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "PurchaseOrderID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "StockItemID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "OrderedOuters", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Description", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ReceivedOuters", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PackageTypeID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ExpectedUnitPricePerOuter", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastReceiptDate", + "dataType": "date", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsOrderLineFinalized", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "Countries_Archive", + "schema": "Application", + "columns": [ + { + "name": "CountryID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CountryName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "FormalName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsoAlpha3Code", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsoNumericCode", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CountryType", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LatestRecordedPopulation", + "dataType": "bigint", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Continent", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Region", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Subregion", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Border", + "dataType": "geography", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "DeliveryMethods", + "schema": "Application", + "columns": [ + { + "name": "DeliveryMethodID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "DeliveryMethodName", + "dataType": "nvarchar", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "DeliveryMethods_Archive", + "schema": "Application", + "columns": [ + { + "name": "DeliveryMethodID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryMethodName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "PaymentMethods", + "schema": "Application", + "columns": [ + { + "name": "PaymentMethodID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "PaymentMethodName", + "dataType": "nvarchar", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "SupplierTransactions", + "schema": "Purchasing", + "columns": [ + { + "name": "SupplierTransactionID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "SupplierID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "TransactionTypeID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "PurchaseOrderID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "PaymentMethodID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "SupplierInvoiceNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "TransactionDate", + "dataType": "date", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "AmountExcludingTax", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "TaxAmount", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "TransactionAmount", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "OutstandingBalance", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "FinalizationDate", + "dataType": "date", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsFinalized", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "PaymentMethods_Archive", + "schema": "Application", + "columns": [ + { + "name": "PaymentMethodID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "PaymentMethodName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "TransactionTypes", + "schema": "Application", + "columns": [ + { + "name": "TransactionTypeID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "TransactionTypeName", + "dataType": "nvarchar", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "SpecialDeals", + "schema": "Sales", + "columns": [ + { + "name": "SpecialDealID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "StockItemID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "CustomerID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "BuyingGroupID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "CustomerCategoryID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "StockGroupID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "DealDescription", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "StartDate", + "dataType": "date", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "EndDate", + "dataType": "date", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DiscountAmount", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DiscountPercentage", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "UnitPrice", + "dataType": "decimal", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "TransactionTypes_Archive", + "schema": "Application", + "columns": [ + { + "name": "TransactionTypeID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "TransactionTypeName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "SupplierCategories", + "schema": "Purchasing", + "columns": [ + { + "name": "SupplierCategoryID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "SupplierCategoryName", + "dataType": "nvarchar", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "SupplierCategories_Archive", + "schema": "Purchasing", + "columns": [ + { + "name": "SupplierCategoryID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "SupplierCategoryName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "BuyingGroups", + "schema": "Sales", + "columns": [ + { + "name": "BuyingGroupID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "BuyingGroupName", + "dataType": "nvarchar", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "Invoices", + "schema": "Sales", + "columns": [ + { + "name": "InvoiceID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "CustomerID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "BillToCustomerID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "OrderID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "DeliveryMethodID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ContactPersonID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "AccountsPersonID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "SalespersonPersonID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "PackedByPersonID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "InvoiceDate", + "dataType": "date", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CustomerPurchaseOrderNumber", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "IsCreditNote", + "dataType": "bit", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CreditNoteReason", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "Comments", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryInstructions", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "InternalComments", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "TotalDryItems", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "TotalChillerItems", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "DeliveryRun", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "RunPosition", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ReturnedDeliveryData", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ConfirmedDeliveryTime", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ConfirmedReceivedBy", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedWhen", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "BuyingGroups_Archive", + "schema": "Sales", + "columns": [ + { + "name": "BuyingGroupID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "BuyingGroupName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "CustomerCategories", + "schema": "Sales", + "columns": [ + { + "name": "CustomerCategoryID", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "CustomerCategoryName", + "dataType": "nvarchar", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": true, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + }, + { + "name": "CustomerCategories_Archive", + "schema": "Sales", + "columns": [ + { + "name": "CustomerCategoryID", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "CustomerCategoryName", + "dataType": "nvarchar", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "LastEditedBy", + "dataType": "int", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidFrom", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + }, + { + "name": "ValidTo", + "dataType": "datetime2", + "isPrimaryKey": false, + "isIdentity": false + } + ] + } + ], + "relationships": [ + { + "foreignKeyName": "FK_Warehouse_StockItems_ColorID_Warehouse_Colors", + "entity": "StockItems", + "column": "ColorID", + "referencedEntity": "Colors", + "referencedColumn": "ColorID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_OrderLines_PackageTypeID_Warehouse_PackageTypes", + "entity": "OrderLines", + "column": "PackageTypeID", + "referencedEntity": "PackageTypes", + "referencedColumn": "PackageTypeID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_InvoiceLines_PackageTypeID_Warehouse_PackageTypes", + "entity": "InvoiceLines", + "column": "PackageTypeID", + "referencedEntity": "PackageTypes", + "referencedColumn": "PackageTypeID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_StockItems_UnitPackageID_Warehouse_PackageTypes", + "entity": "StockItems", + "column": "UnitPackageID", + "referencedEntity": "PackageTypes", + "referencedColumn": "PackageTypeID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_StockItems_OuterPackageID_Warehouse_PackageTypes", + "entity": "StockItems", + "column": "OuterPackageID", + "referencedEntity": "PackageTypes", + "referencedColumn": "PackageTypeID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_PurchaseOrderLines_PackageTypeID_Warehouse_PackageTypes", + "entity": "PurchaseOrderLines", + "column": "PackageTypeID", + "referencedEntity": "PackageTypes", + "referencedColumn": "PackageTypeID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_StockItemStockGroups_StockGroupID_Warehouse_StockGroups", + "entity": "StockItemStockGroups", + "column": "StockGroupID", + "referencedEntity": "StockGroups", + "referencedColumn": "StockGroupID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_SpecialDeals_StockGroupID_Warehouse_StockGroups", + "entity": "SpecialDeals", + "column": "StockGroupID", + "referencedEntity": "StockGroups", + "referencedColumn": "StockGroupID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Application_Cities_StateProvinceID_Application_StateProvinces", + "entity": "Cities", + "column": "StateProvinceID", + "referencedEntity": "StateProvinces", + "referencedColumn": "StateProvinceID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Application_SystemParameters_DeliveryCityID_Application_Cities", + "entity": "SystemParameters", + "column": "DeliveryCityID", + "referencedEntity": "Cities", + "referencedColumn": "CityID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Application_SystemParameters_PostalCityID_Application_Cities", + "entity": "SystemParameters", + "column": "PostalCityID", + "referencedEntity": "Cities", + "referencedColumn": "CityID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_Suppliers_DeliveryCityID_Application_Cities", + "entity": "Suppliers", + "column": "DeliveryCityID", + "referencedEntity": "Cities", + "referencedColumn": "CityID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_Suppliers_PostalCityID_Application_Cities", + "entity": "Suppliers", + "column": "PostalCityID", + "referencedEntity": "Cities", + "referencedColumn": "CityID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Customers_DeliveryCityID_Application_Cities", + "entity": "Customers", + "column": "DeliveryCityID", + "referencedEntity": "Cities", + "referencedColumn": "CityID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Customers_PostalCityID_Application_Cities", + "entity": "Customers", + "column": "PostalCityID", + "referencedEntity": "Cities", + "referencedColumn": "CityID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_StockItemTransactions_SupplierID_Purchasing_Suppliers", + "entity": "StockItemTransactions", + "column": "SupplierID", + "referencedEntity": "Suppliers", + "referencedColumn": "SupplierID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_PurchaseOrders_SupplierID_Purchasing_Suppliers", + "entity": "PurchaseOrders", + "column": "SupplierID", + "referencedEntity": "Suppliers", + "referencedColumn": "SupplierID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_StockItems_SupplierID_Purchasing_Suppliers", + "entity": "StockItems", + "column": "SupplierID", + "referencedEntity": "Suppliers", + "referencedColumn": "SupplierID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_SupplierTransactions_SupplierID_Purchasing_Suppliers", + "entity": "SupplierTransactions", + "column": "SupplierID", + "referencedEntity": "Suppliers", + "referencedColumn": "SupplierID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_CustomerTransactions_CustomerID_Sales_Customers", + "entity": "CustomerTransactions", + "column": "CustomerID", + "referencedEntity": "Customers", + "referencedColumn": "CustomerID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_StockItemTransactions_CustomerID_Sales_Customers", + "entity": "StockItemTransactions", + "column": "CustomerID", + "referencedEntity": "Customers", + "referencedColumn": "CustomerID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Customers_BillToCustomerID_Sales_Customers", + "entity": "Customers", + "column": "BillToCustomerID", + "referencedEntity": "Customers", + "referencedColumn": "CustomerID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Orders_CustomerID_Sales_Customers", + "entity": "Orders", + "column": "CustomerID", + "referencedEntity": "Customers", + "referencedColumn": "CustomerID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_SpecialDeals_CustomerID_Sales_Customers", + "entity": "SpecialDeals", + "column": "CustomerID", + "referencedEntity": "Customers", + "referencedColumn": "CustomerID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Invoices_CustomerID_Sales_Customers", + "entity": "Invoices", + "column": "CustomerID", + "referencedEntity": "Customers", + "referencedColumn": "CustomerID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Invoices_BillToCustomerID_Sales_Customers", + "entity": "Invoices", + "column": "BillToCustomerID", + "referencedEntity": "Customers", + "referencedColumn": "CustomerID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_StockItemTransactions_PurchaseOrderID_Purchasing_PurchaseOrders", + "entity": "StockItemTransactions", + "column": "PurchaseOrderID", + "referencedEntity": "PurchaseOrders", + "referencedColumn": "PurchaseOrderID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_PurchaseOrderLines_PurchaseOrderID_Purchasing_PurchaseOrders", + "entity": "PurchaseOrderLines", + "column": "PurchaseOrderID", + "referencedEntity": "PurchaseOrders", + "referencedColumn": "PurchaseOrderID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_SupplierTransactions_PurchaseOrderID_Purchasing_PurchaseOrders", + "entity": "SupplierTransactions", + "column": "PurchaseOrderID", + "referencedEntity": "PurchaseOrders", + "referencedColumn": "PurchaseOrderID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_OrderLines_OrderID_Sales_Orders", + "entity": "OrderLines", + "column": "OrderID", + "referencedEntity": "Orders", + "referencedColumn": "OrderID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Orders_BackorderOrderID_Sales_Orders", + "entity": "Orders", + "column": "BackorderOrderID", + "referencedEntity": "Orders", + "referencedColumn": "OrderID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Invoices_OrderID_Sales_Orders", + "entity": "Invoices", + "column": "OrderID", + "referencedEntity": "Orders", + "referencedColumn": "OrderID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Invoices_SalespersonPersonID_Application_People", + "entity": "Invoices", + "column": "SalespersonPersonID", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Invoices_PackedByPersonID_Application_People", + "entity": "Invoices", + "column": "PackedByPersonID", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Invoices_Application_People", + "entity": "Invoices", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_Colors_Application_People", + "entity": "Colors", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_PackageTypes_Application_People", + "entity": "PackageTypes", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_OrderLines_Application_People", + "entity": "OrderLines", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_StockGroups_Application_People", + "entity": "StockGroups", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_StockItemStockGroups_Application_People", + "entity": "StockItemStockGroups", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Application_StateProvinces_Application_People", + "entity": "StateProvinces", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Application_Cities_Application_People", + "entity": "Cities", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_CustomerTransactions_Application_People", + "entity": "CustomerTransactions", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Application_SystemParameters_Application_People", + "entity": "SystemParameters", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_InvoiceLines_Application_People", + "entity": "InvoiceLines", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_Suppliers_PrimaryContactPersonID_Application_People", + "entity": "Suppliers", + "column": "PrimaryContactPersonID", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_Suppliers_AlternateContactPersonID_Application_People", + "entity": "Suppliers", + "column": "AlternateContactPersonID", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_Suppliers_Application_People", + "entity": "Suppliers", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_StockItemTransactions_Application_People", + "entity": "StockItemTransactions", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Customers_PrimaryContactPersonID_Application_People", + "entity": "Customers", + "column": "PrimaryContactPersonID", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Customers_AlternateContactPersonID_Application_People", + "entity": "Customers", + "column": "AlternateContactPersonID", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Customers_Application_People", + "entity": "Customers", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_PurchaseOrders_ContactPersonID_Application_People", + "entity": "PurchaseOrders", + "column": "ContactPersonID", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_PurchaseOrders_Application_People", + "entity": "PurchaseOrders", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Orders_SalespersonPersonID_Application_People", + "entity": "Orders", + "column": "SalespersonPersonID", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Orders_PickedByPersonID_Application_People", + "entity": "Orders", + "column": "PickedByPersonID", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Orders_ContactPersonID_Application_People", + "entity": "Orders", + "column": "ContactPersonID", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Orders_Application_People", + "entity": "Orders", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Application_People_Application_People", + "entity": "People", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_StockItems_Application_People", + "entity": "StockItems", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_StockItemHoldings_Application_People", + "entity": "StockItemHoldings", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Application_Countries_Application_People", + "entity": "Countries", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Application_DeliveryMethods_Application_People", + "entity": "DeliveryMethods", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_PurchaseOrderLines_Application_People", + "entity": "PurchaseOrderLines", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Application_PaymentMethods_Application_People", + "entity": "PaymentMethods", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_SupplierTransactions_Application_People", + "entity": "SupplierTransactions", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Application_TransactionTypes_Application_People", + "entity": "TransactionTypes", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_SupplierCategories_Application_People", + "entity": "SupplierCategories", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_SpecialDeals_Application_People", + "entity": "SpecialDeals", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_BuyingGroups_Application_People", + "entity": "BuyingGroups", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_CustomerCategories_Application_People", + "entity": "CustomerCategories", + "column": "LastEditedBy", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Invoices_ContactPersonID_Application_People", + "entity": "Invoices", + "column": "ContactPersonID", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Invoices_AccountsPersonID_Application_People", + "entity": "Invoices", + "column": "AccountsPersonID", + "referencedEntity": "People", + "referencedColumn": "PersonID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_OrderLines_StockItemID_Warehouse_StockItems", + "entity": "OrderLines", + "column": "StockItemID", + "referencedEntity": "StockItems", + "referencedColumn": "StockItemID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_StockItemStockGroups_StockItemID_Warehouse_StockItems", + "entity": "StockItemStockGroups", + "column": "StockItemID", + "referencedEntity": "StockItems", + "referencedColumn": "StockItemID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_InvoiceLines_StockItemID_Warehouse_StockItems", + "entity": "InvoiceLines", + "column": "StockItemID", + "referencedEntity": "StockItems", + "referencedColumn": "StockItemID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_StockItemTransactions_StockItemID_Warehouse_StockItems", + "entity": "StockItemTransactions", + "column": "StockItemID", + "referencedEntity": "StockItems", + "referencedColumn": "StockItemID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "PKFK_Warehouse_StockItemHoldings_StockItemID_Warehouse_StockItems", + "entity": "StockItemHoldings", + "column": "StockItemID", + "referencedEntity": "StockItems", + "referencedColumn": "StockItemID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_PurchaseOrderLines_StockItemID_Warehouse_StockItems", + "entity": "PurchaseOrderLines", + "column": "StockItemID", + "referencedEntity": "StockItems", + "referencedColumn": "StockItemID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_SpecialDeals_StockItemID_Warehouse_StockItems", + "entity": "SpecialDeals", + "column": "StockItemID", + "referencedEntity": "StockItems", + "referencedColumn": "StockItemID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Application_StateProvinces_CountryID_Application_Countries", + "entity": "StateProvinces", + "column": "CountryID", + "referencedEntity": "Countries", + "referencedColumn": "CountryID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_Suppliers_DeliveryMethodID_Application_DeliveryMethods", + "entity": "Suppliers", + "column": "DeliveryMethodID", + "referencedEntity": "DeliveryMethods", + "referencedColumn": "DeliveryMethodID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Customers_DeliveryMethodID_Application_DeliveryMethods", + "entity": "Customers", + "column": "DeliveryMethodID", + "referencedEntity": "DeliveryMethods", + "referencedColumn": "DeliveryMethodID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_PurchaseOrders_DeliveryMethodID_Application_DeliveryMethods", + "entity": "PurchaseOrders", + "column": "DeliveryMethodID", + "referencedEntity": "DeliveryMethods", + "referencedColumn": "DeliveryMethodID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Invoices_DeliveryMethodID_Application_DeliveryMethods", + "entity": "Invoices", + "column": "DeliveryMethodID", + "referencedEntity": "DeliveryMethods", + "referencedColumn": "DeliveryMethodID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_CustomerTransactions_PaymentMethodID_Application_PaymentMethods", + "entity": "CustomerTransactions", + "column": "PaymentMethodID", + "referencedEntity": "PaymentMethods", + "referencedColumn": "PaymentMethodID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_SupplierTransactions_PaymentMethodID_Application_PaymentMethods", + "entity": "SupplierTransactions", + "column": "PaymentMethodID", + "referencedEntity": "PaymentMethods", + "referencedColumn": "PaymentMethodID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_CustomerTransactions_TransactionTypeID_Application_TransactionTypes", + "entity": "CustomerTransactions", + "column": "TransactionTypeID", + "referencedEntity": "TransactionTypes", + "referencedColumn": "TransactionTypeID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_StockItemTransactions_TransactionTypeID_Application_TransactionTypes", + "entity": "StockItemTransactions", + "column": "TransactionTypeID", + "referencedEntity": "TransactionTypes", + "referencedColumn": "TransactionTypeID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_SupplierTransactions_TransactionTypeID_Application_TransactionTypes", + "entity": "SupplierTransactions", + "column": "TransactionTypeID", + "referencedEntity": "TransactionTypes", + "referencedColumn": "TransactionTypeID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Purchasing_Suppliers_SupplierCategoryID_Purchasing_SupplierCategories", + "entity": "Suppliers", + "column": "SupplierCategoryID", + "referencedEntity": "SupplierCategories", + "referencedColumn": "SupplierCategoryID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Customers_BuyingGroupID_Sales_BuyingGroups", + "entity": "Customers", + "column": "BuyingGroupID", + "referencedEntity": "BuyingGroups", + "referencedColumn": "BuyingGroupID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_SpecialDeals_BuyingGroupID_Sales_BuyingGroups", + "entity": "SpecialDeals", + "column": "BuyingGroupID", + "referencedEntity": "BuyingGroups", + "referencedColumn": "BuyingGroupID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_CustomerTransactions_InvoiceID_Sales_Invoices", + "entity": "CustomerTransactions", + "column": "InvoiceID", + "referencedEntity": "Invoices", + "referencedColumn": "InvoiceID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_InvoiceLines_InvoiceID_Sales_Invoices", + "entity": "InvoiceLines", + "column": "InvoiceID", + "referencedEntity": "Invoices", + "referencedColumn": "InvoiceID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Warehouse_StockItemTransactions_InvoiceID_Sales_Invoices", + "entity": "StockItemTransactions", + "column": "InvoiceID", + "referencedEntity": "Invoices", + "referencedColumn": "InvoiceID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_Customers_CustomerCategoryID_Sales_CustomerCategories", + "entity": "Customers", + "column": "CustomerCategoryID", + "referencedEntity": "CustomerCategories", + "referencedColumn": "CustomerCategoryID", + "onDeleteAction": 1, + "onUpdateAction": 1 + }, + { + "foreignKeyName": "FK_Sales_SpecialDeals_CustomerCategoryID_Sales_CustomerCategories", + "entity": "SpecialDeals", + "column": "CustomerCategoryID", + "referencedEntity": "CustomerCategories", + "referencedColumn": "CustomerCategoryID", + "onDeleteAction": 1, + "onUpdateAction": 1 + } + ] +} \ No newline at end of file diff --git a/ts-examples/smallSchema.html b/ts-examples/smallSchema.html new file mode 100644 index 0000000..31361cd --- /dev/null +++ b/ts-examples/smallSchema.html @@ -0,0 +1,181 @@ + + + + + + Big Schema Designer + + + + + +
+ + diff --git a/tsconfig.json b/tsconfig.json index 8a831ee..b4f3319 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "jsx": "react", "target": "es2016", "module": "commonjs", "declaration": true, @@ -13,10 +14,11 @@ "noFallthroughCasesInSwitch": true, "composite": true, "allowSyntheticDefaultImports": true, + "noImplicitOverride": true, "paths": { "mxgraph": ["./dist/build.js"] }, "moduleResolution": "node", }, - "include": ["index.d.ts", "src/ts/**/*.ts", "src/ts/**/*.d.ts"] + "include": ["index.d.ts", "src/ts/**/*.ts", "src/ts/**/*.d.ts", "src/ts/examples/**/*.tsx"] } diff --git a/yarn.lock b/yarn.lock index 04799f2..75d9746 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,141 +2,427 @@ # yarn lockfile v1 +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.26.2": + version "7.26.2" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz" + integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== + dependencies: + "@babel/helper-validator-identifier" "^7.25.9" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/compat-data@^7.25.9": + version "7.26.3" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz" + integrity sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g== + +"@babel/core@^7.26.0": + version "7.26.0" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz" + integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.26.0" + "@babel/generator" "^7.26.0" + "@babel/helper-compilation-targets" "^7.25.9" + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helpers" "^7.26.0" + "@babel/parser" "^7.26.0" + "@babel/template" "^7.25.9" + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.26.0" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.26.0", "@babel/generator@^7.26.3": + version "7.26.3" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz" + integrity sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ== + dependencies: + "@babel/parser" "^7.26.3" + "@babel/types" "^7.26.3" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/helper-compilation-targets@^7.25.9": + version "7.25.9" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz" + integrity sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ== + dependencies: + "@babel/compat-data" "^7.25.9" + "@babel/helper-validator-option" "^7.25.9" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-module-imports@^7.25.9": + version "7.25.9" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz" + integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helper-module-transforms@^7.26.0": + version "7.26.0" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz" + integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== + dependencies: + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/helper-plugin-utils@^7.25.9": + version "7.25.9" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz" + integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw== + +"@babel/helper-string-parser@^7.25.9": + version "7.25.9" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz" + integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== + +"@babel/helper-validator-identifier@^7.25.9": + version "7.25.9" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz" + integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== + +"@babel/helper-validator-option@^7.25.9": + version "7.25.9" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz" + integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== + +"@babel/helpers@^7.26.0": + version "7.26.0" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz" + integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw== + dependencies: + "@babel/template" "^7.25.9" + "@babel/types" "^7.26.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.3": + version "7.26.3" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz" + integrity sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA== + dependencies: + "@babel/types" "^7.26.3" + +"@babel/plugin-transform-react-jsx-self@^7.25.9": + version "7.25.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz" + integrity sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-react-jsx-source@^7.25.9": + version "7.25.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz" + integrity sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/template@^7.25.9": + version "7.25.9" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz" + integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== + dependencies: + "@babel/code-frame" "^7.25.9" + "@babel/parser" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/traverse@^7.25.9": + version "7.26.4" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz" + integrity sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.26.3" + "@babel/parser" "^7.26.3" + "@babel/template" "^7.25.9" + "@babel/types" "^7.26.3" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.3": + version "7.26.3" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz" + integrity sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA== + dependencies: + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@esbuild/aix-ppc64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz#b57697945b50e99007b4c2521507dc613d4a648c" integrity sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw== +"@esbuild/aix-ppc64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz#38848d3e25afe842a7943643cbcd387cc6e13461" + integrity sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA== + "@esbuild/android-arm64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz#1add7e0af67acefd556e407f8497e81fddad79c0" integrity sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w== +"@esbuild/android-arm64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz#f592957ae8b5643129fa889c79e69cd8669bb894" + integrity sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg== + "@esbuild/android-arm@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.24.0.tgz#ab7263045fa8e090833a8e3c393b60d59a789810" integrity sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew== +"@esbuild/android-arm@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.24.2.tgz#72d8a2063aa630308af486a7e5cbcd1e134335b3" + integrity sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q== + "@esbuild/android-x64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.24.0.tgz#e8f8b196cfdfdd5aeaebbdb0110983460440e705" integrity sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ== +"@esbuild/android-x64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.24.2.tgz#9a7713504d5f04792f33be9c197a882b2d88febb" + integrity sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw== + "@esbuild/darwin-arm64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz#2d0d9414f2acbffd2d86e98253914fca603a53dd" integrity sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw== +"@esbuild/darwin-arm64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz#02ae04ad8ebffd6e2ea096181b3366816b2b5936" + integrity sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA== + "@esbuild/darwin-x64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz#33087aab31a1eb64c89daf3d2cf8ce1775656107" integrity sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA== +"@esbuild/darwin-x64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz#9ec312bc29c60e1b6cecadc82bd504d8adaa19e9" + integrity sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA== + "@esbuild/freebsd-arm64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz#bb76e5ea9e97fa3c753472f19421075d3a33e8a7" integrity sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA== +"@esbuild/freebsd-arm64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz#5e82f44cb4906d6aebf24497d6a068cfc152fa00" + integrity sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg== + "@esbuild/freebsd-x64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz#e0e2ce9249fdf6ee29e5dc3d420c7007fa579b93" integrity sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ== +"@esbuild/freebsd-x64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz#3fb1ce92f276168b75074b4e51aa0d8141ecce7f" + integrity sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q== + "@esbuild/linux-arm64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz#d1b2aa58085f73ecf45533c07c82d81235388e75" integrity sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g== +"@esbuild/linux-arm64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz#856b632d79eb80aec0864381efd29de8fd0b1f43" + integrity sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg== + "@esbuild/linux-arm@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz#8e4915df8ea3e12b690a057e77a47b1d5935ef6d" integrity sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw== +"@esbuild/linux-arm@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz#c846b4694dc5a75d1444f52257ccc5659021b736" + integrity sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA== + "@esbuild/linux-ia32@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz#8200b1110666c39ab316572324b7af63d82013fb" integrity sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA== +"@esbuild/linux-ia32@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz#f8a16615a78826ccbb6566fab9a9606cfd4a37d5" + integrity sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw== + "@esbuild/linux-loong64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz#6ff0c99cf647504df321d0640f0d32e557da745c" integrity sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g== +"@esbuild/linux-loong64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz#1c451538c765bf14913512c76ed8a351e18b09fc" + integrity sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ== + "@esbuild/linux-mips64el@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz#3f720ccd4d59bfeb4c2ce276a46b77ad380fa1f3" integrity sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA== +"@esbuild/linux-mips64el@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz#0846edeefbc3d8d50645c51869cc64401d9239cb" + integrity sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw== + "@esbuild/linux-ppc64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz#9d6b188b15c25afd2e213474bf5f31e42e3aa09e" integrity sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ== +"@esbuild/linux-ppc64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz#8e3fc54505671d193337a36dfd4c1a23b8a41412" + integrity sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw== + "@esbuild/linux-riscv64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz#f989fdc9752dfda286c9cd87c46248e4dfecbc25" integrity sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw== +"@esbuild/linux-riscv64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz#6a1e92096d5e68f7bb10a0d64bb5b6d1daf9a694" + integrity sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q== + "@esbuild/linux-s390x@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz#29ebf87e4132ea659c1489fce63cd8509d1c7319" integrity sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g== +"@esbuild/linux-s390x@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz#ab18e56e66f7a3c49cb97d337cd0a6fea28a8577" + integrity sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw== + "@esbuild/linux-x64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz#4af48c5c0479569b1f359ffbce22d15f261c0cef" integrity sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA== +"@esbuild/linux-x64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz#8140c9b40da634d380b0b29c837a0b4267aff38f" + integrity sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q== + +"@esbuild/netbsd-arm64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz#65f19161432bafb3981f5f20a7ff45abb2e708e6" + integrity sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw== + "@esbuild/netbsd-x64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz#1ae73d23cc044a0ebd4f198334416fb26c31366c" integrity sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg== +"@esbuild/netbsd-x64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz#7a3a97d77abfd11765a72f1c6f9b18f5396bcc40" + integrity sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw== + "@esbuild/openbsd-arm64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz#5d904a4f5158c89859fd902c427f96d6a9e632e2" integrity sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg== +"@esbuild/openbsd-arm64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz#58b00238dd8f123bfff68d3acc53a6ee369af89f" + integrity sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A== + "@esbuild/openbsd-x64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz#4c8aa88c49187c601bae2971e71c6dc5e0ad1cdf" integrity sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q== +"@esbuild/openbsd-x64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz#0ac843fda0feb85a93e288842936c21a00a8a205" + integrity sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA== + "@esbuild/sunos-x64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz#8ddc35a0ea38575fa44eda30a5ee01ae2fa54dd4" integrity sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA== +"@esbuild/sunos-x64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz#8b7aa895e07828d36c422a4404cc2ecf27fb15c6" + integrity sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig== + "@esbuild/win32-arm64@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz#6e79c8543f282c4539db684a207ae0e174a9007b" integrity sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA== +"@esbuild/win32-arm64@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz#c023afb647cabf0c3ed13f0eddfc4f1d61c66a85" + integrity sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ== + "@esbuild/win32-ia32@0.24.0": version "0.24.0" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz#057af345da256b7192d18b676a02e95d0fa39103" integrity sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw== +"@esbuild/win32-ia32@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz#96c356132d2dda990098c8b8b951209c3cd743c2" + integrity sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA== + "@esbuild/win32-x64@0.24.0": version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz#168ab1c7e1c318b922637fad8f339d48b01e1244" + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz" integrity sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA== +"@esbuild/win32-x64@0.24.2": + version "0.24.2" + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz" + integrity sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg== + "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.1" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz" integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== dependencies: eslint-visitor-keys "^3.4.3" "@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.12.1": version "4.12.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz" integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== "@eslint/config-array@^0.19.0": version "0.19.1" - resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.1.tgz#734aaea2c40be22bbb1f2a9dac687c57a6a4c984" + resolved "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz" integrity sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA== dependencies: "@eslint/object-schema" "^2.1.5" @@ -145,14 +431,14 @@ "@eslint/core@^0.9.0": version "0.9.1" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.9.1.tgz#31763847308ef6b7084a4505573ac9402c51f9d1" + resolved "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz" integrity sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q== dependencies: "@types/json-schema" "^7.0.15" "@eslint/eslintrc@^3.2.0": version "3.2.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.2.0.tgz#57470ac4e2e283a6bf76044d63281196e370542c" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz" integrity sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w== dependencies: ajv "^6.12.4" @@ -165,31 +451,31 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.16.0": - version "9.16.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.16.0.tgz#3df2b2dd3b9163056616886c86e4082f45dbf3f4" - integrity sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg== +"@eslint/js@9.17.0": + version "9.17.0" + resolved "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz" + integrity sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w== "@eslint/object-schema@^2.1.5": version "2.1.5" - resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.5.tgz#8670a8f6258a2be5b2c620ff314a1d984c23eb2e" + resolved "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz" integrity sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ== "@eslint/plugin-kit@^0.2.3": version "0.2.4" - resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz#2b78e7bb3755784bb13faa8932a1d994d6537792" + resolved "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz" integrity sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg== dependencies: levn "^0.4.1" "@humanfs/core@^0.19.1": version "0.19.1" - resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77" + resolved "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz" integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== "@humanfs/node@^0.16.6": version "0.16.6" - resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.6.tgz#ee2a10eaabd1131987bf0488fd9b820174cd765e" + resolved "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz" integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== dependencies: "@humanfs/core" "^0.19.1" @@ -197,27 +483,59 @@ "@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" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/retry@^0.3.0": version "0.3.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a" + resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz" integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== "@humanwhocodes/retry@^0.4.1": version "0.4.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.1.tgz#9a96ce501bc62df46c4031fbd970e3cc6b10f07b" + resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz" integrity sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA== "@jgoz/esbuild-plugin-typecheck@^4.0.2": version "4.0.2" - resolved "https://registry.yarnpkg.com/@jgoz/esbuild-plugin-typecheck/-/esbuild-plugin-typecheck-4.0.2.tgz#f3f7b7f6dcade97660d5aee796daecf4ba8cad59" + resolved "https://registry.npmjs.org/@jgoz/esbuild-plugin-typecheck/-/esbuild-plugin-typecheck-4.0.2.tgz" integrity sha512-EI0b2xLA+12YauKdXZ8wbdn3cKaKPBsh20S4Y0DyPENhhUALKYX6InuDMBD+9EKDHhcTqpCBkQVutFyx6l4RJA== +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.8" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz" + integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@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" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" @@ -225,30 +543,182 @@ "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@types/estree@^1.0.6": +"@rollup/rollup-android-arm-eabi@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.30.0.tgz#f2552f6984cfae52784b2fbf0e47633f38955d66" + integrity sha512-qFcFto9figFLz2g25DxJ1WWL9+c91fTxnGuwhToCl8BaqDsDYMl/kOnBXAyAqkkzAWimYMSWNPWEjt+ADAHuoQ== + +"@rollup/rollup-android-arm64@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.30.0.tgz#7e5764268d3049b7341c60f1c650f1d71760a5b2" + integrity sha512-vqrQdusvVl7dthqNjWCL043qelBK+gv9v3ZiqdxgaJvmZyIAAXMjeGVSqZynKq69T7062T5VrVTuikKSAAVP6A== + +"@rollup/rollup-darwin-arm64@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.30.0.tgz#c9245577f673802f0f6de0d46ee776691d77552e" + integrity sha512-617pd92LhdA9+wpixnzsyhVft3szYiN16aNUMzVkf2N+yAk8UXY226Bfp36LvxYTUt7MO/ycqGFjQgJ0wlMaWQ== + +"@rollup/rollup-darwin-x64@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.30.0.tgz#e492705339542f8b54fa66f630c9d820bc708693" + integrity sha512-Y3b4oDoaEhCypg8ajPqigKDcpi5ZZovemQl9Edpem0uNv6UUjXv7iySBpGIUTSs2ovWOzYpfw9EbFJXF/fJHWw== + +"@rollup/rollup-freebsd-arm64@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.30.0.tgz#3e13b5d4d44ea87598d5d4db97181db1174fb3c8" + integrity sha512-3REQJ4f90sFIBfa0BUokiCdrV/E4uIjhkWe1bMgCkhFXbf4D8YN6C4zwJL881GM818qVYE9BO3dGwjKhpo2ABA== + +"@rollup/rollup-freebsd-x64@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.30.0.tgz#138daa08d1b345d605f57b4dedd18a50420488e7" + integrity sha512-ZtY3Y8icbe3Cc+uQicsXG5L+CRGUfLZjW6j2gn5ikpltt3Whqjfo5mkyZ86UiuHF9Q3ZsaQeW7YswlHnN+lAcg== + +"@rollup/rollup-linux-arm-gnueabihf@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.30.0.tgz#bdaece34f93c3dfd521e9ab8f5c740121862468e" + integrity sha512-bsPGGzfiHXMhQGuFGpmo2PyTwcrh2otL6ycSZAFTESviUoBOuxF7iBbAL5IJXc/69peXl5rAtbewBFeASZ9O0g== + +"@rollup/rollup-linux-arm-musleabihf@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.30.0.tgz#1804c6ec49be21521eac612513e0666cdde2188c" + integrity sha512-kvyIECEhs2DrrdfQf++maCWJIQ974EI4txlz1nNSBaCdtf7i5Xf1AQCEJWOC5rEBisdaMFFnOWNLYt7KpFqy5A== + +"@rollup/rollup-linux-arm64-gnu@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.30.0.tgz#2c4bd90f77fcf769502743ec38f184c00a087e08" + integrity sha512-CFE7zDNrokaotXu+shwIrmWrFxllg79vciH4E/zeK7NitVuWEaXRzS0mFfFvyhZfn8WfVOG/1E9u8/DFEgK7WQ== + +"@rollup/rollup-linux-arm64-musl@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.30.0.tgz#63eadee20f220d28e85cbd10aba671ada8e89c84" + integrity sha512-MctNTBlvMcIBP0t8lV/NXiUwFg9oK5F79CxLU+a3xgrdJjfBLVIEHSAjQ9+ipofN2GKaMLnFFXLltg1HEEPaGQ== + +"@rollup/rollup-linux-loongarch64-gnu@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.30.0.tgz#1c2c2bb30f61cbbc0fcf4e6c359777fcdb7108cc" + integrity sha512-fBpoYwLEPivL3q368+gwn4qnYnr7GVwM6NnMo8rJ4wb0p/Y5lg88vQRRP077gf+tc25akuqd+1Sxbn9meODhwA== + +"@rollup/rollup-linux-powerpc64le-gnu@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.30.0.tgz#cea71e0359f086a01c57cf312bef9ec9cc3ba010" + integrity sha512-1hiHPV6dUaqIMXrIjN+vgJqtfkLpqHS1Xsg0oUfUVD98xGp1wX89PIXgDF2DWra1nxAd8dfE0Dk59MyeKaBVAw== + +"@rollup/rollup-linux-riscv64-gnu@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.30.0.tgz#25ab4a6dbcbd27f4a68382f7963363f886a237aa" + integrity sha512-U0xcC80SMpEbvvLw92emHrNjlS3OXjAM0aVzlWfar6PR0ODWCTQtKeeB+tlAPGfZQXicv1SpWwRz9Hyzq3Jx3g== + +"@rollup/rollup-linux-s390x-gnu@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.30.0.tgz#7054b237152d9e36c51194532a6b70ca1a62a487" + integrity sha512-VU/P/IODrNPasgZDLIFJmMiLGez+BN11DQWfTVlViJVabyF3JaeaJkP6teI8760f18BMGCQOW9gOmuzFaI1pUw== + +"@rollup/rollup-linux-x64-gnu@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.30.0.tgz#3656a8341a6048f2111f423301aaad8e84a5fe90" + integrity sha512-laQVRvdbKmjXuFA3ZiZj7+U24FcmoPlXEi2OyLfbpY2MW1oxLt9Au8q9eHd0x6Pw/Kw4oe9gwVXWwIf2PVqblg== + +"@rollup/rollup-linux-x64-musl@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.30.0.tgz#cf8ae018ea6ff65eb36722a28beb93a20a6047f0" + integrity sha512-3wzKzduS7jzxqcOvy/ocU/gMR3/QrHEFLge5CD7Si9fyHuoXcidyYZ6jyx8OPYmCcGm3uKTUl+9jUSAY74Ln5A== + +"@rollup/rollup-win32-arm64-msvc@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.30.0.tgz#6b968f5b068469db16eac743811ee6c040671042" + integrity sha512-jROwnI1+wPyuv696rAFHp5+6RFhXGGwgmgSfzE8e4xfit6oLRg7GyMArVUoM3ChS045OwWr9aTnU+2c1UdBMyw== + +"@rollup/rollup-win32-ia32-msvc@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.30.0.tgz#0321de1a0540dd402e8e523d90cbd9d16f1b9e96" + integrity sha512-duzweyup5WELhcXx5H1jokpr13i3BV9b48FMiikYAwk/MT1LrMYYk2TzenBd0jj4ivQIt58JWSxc19y4SvLP4g== + +"@rollup/rollup-win32-x64-msvc@4.30.0": + version "4.30.0" + resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.30.0.tgz" + integrity sha512-DYvxS0M07PvgvavMIybCOBYheyrqlui6ZQBHJs6GqduVzHSZ06TPPvlfvnYstjODHQ8UUXFwt5YE+h0jFI8kwg== + +"@types/babel__core@^7.20.5": + version "7.20.5" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@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.8" + resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*": + version "7.20.6" + resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz" + integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== + dependencies: + "@babel/types" "^7.20.7" + +"@types/cookie@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.6.0.tgz#eac397f28bf1d6ae0ae081363eca2f425bedf0d5" + integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA== + +"@types/estree@1.0.6", "@types/estree@^1.0.6": version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz" integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== "@types/json-schema@^7.0.15": version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== +"@types/node@^22.10.5": + version "22.10.5" + resolved "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz" + integrity sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ== + dependencies: + undici-types "~6.20.0" + +"@types/react-dom@^19.0.2": + version "19.0.2" + resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.2.tgz" + integrity sha512-c1s+7TKFaDRRxr1TxccIX2u7sfCnc3RxkVyBIUA2lCpyqCF+QoAwQ/CBg7bsMdVwP120HEH143VQezKtef5nCg== + +"@types/react@^19.0.3": + version "19.0.3" + resolved "https://registry.npmjs.org/@types/react/-/react-19.0.3.tgz" + integrity sha512-UavfHguIjnnuq9O67uXfgy/h3SRJbidAYvNjLceB+2RIKVRBzVsh0QO+Pw6BCSQqFS9xwzKfwstXx0m6AbAREA== + dependencies: + csstype "^3.0.2" + "@typescript-eslint/eslint-plugin@8.18.0": version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.0.tgz#0901933326aea4443b81df3f740ca7dfc45c7bea" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.0.tgz" integrity sha512-NR2yS7qUqCL7AIxdJUQf2MKKNDVNaig/dEB0GBLU7D+ZdHgK1NoH/3wsgO3OnPVipn51tG3MAwaODEGil70WEw== dependencies: "@eslint-community/regexpp" "^4.10.0" @@ -263,7 +733,7 @@ "@typescript-eslint/parser@8.18.0": version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.18.0.tgz#a1c9456cbb6a089730bf1d3fc47946c5fb5fe67b" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.0.tgz" integrity sha512-hgUZ3kTEpVzKaK3uNibExUYm6SKKOmTU2BOxBSvOYwtJEPdVQ70kZJpPjstlnhCHcuc2WGfSbpKlb/69ttyN5Q== dependencies: "@typescript-eslint/scope-manager" "8.18.0" @@ -274,7 +744,7 @@ "@typescript-eslint/scope-manager@8.18.0": version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.18.0.tgz#30b040cb4557804a7e2bcc65cf8fdb630c96546f" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.0.tgz" integrity sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw== dependencies: "@typescript-eslint/types" "8.18.0" @@ -282,7 +752,7 @@ "@typescript-eslint/type-utils@8.18.0": version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.18.0.tgz#6f0d12cf923b6fd95ae4d877708c0adaad93c471" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.0.tgz" integrity sha512-er224jRepVAVLnMF2Q7MZJCq5CsdH2oqjP4dT7K6ij09Kyd+R21r7UVJrF0buMVdZS5QRhDzpvzAxHxabQadow== dependencies: "@typescript-eslint/typescript-estree" "8.18.0" @@ -292,12 +762,12 @@ "@typescript-eslint/types@8.18.0": version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.18.0.tgz#3afcd30def8756bc78541268ea819a043221d5f3" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.0.tgz" integrity sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA== "@typescript-eslint/typescript-estree@8.18.0": version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.0.tgz#d8ca785799fbb9c700cdff1a79c046c3e633c7f9" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.0.tgz" integrity sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg== dependencies: "@typescript-eslint/types" "8.18.0" @@ -311,7 +781,7 @@ "@typescript-eslint/utils@8.18.0": version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.18.0.tgz#48f67205d42b65d895797bb7349d1be5c39a62f7" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.0.tgz" integrity sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg== dependencies: "@eslint-community/eslint-utils" "^4.4.0" @@ -321,30 +791,41 @@ "@typescript-eslint/visitor-keys@8.18.0": version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.0.tgz#7b6d33534fa808e33a19951907231ad2ea5c36dd" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.0.tgz" integrity sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw== dependencies: "@typescript-eslint/types" "8.18.0" eslint-visitor-keys "^4.2.0" +"@vitejs/plugin-react@^4.3.4": + version "4.3.4" + resolved "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz" + integrity sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug== + dependencies: + "@babel/core" "^7.26.0" + "@babel/plugin-transform-react-jsx-self" "^7.25.9" + "@babel/plugin-transform-react-jsx-source" "^7.25.9" + "@types/babel__core" "^7.20.5" + react-refresh "^0.14.2" + abbrev@1: version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn@^8.14.0: version "8.14.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz" integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== ajv@^6.12.4: version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -354,92 +835,92 @@ ajv@^6.12.4: ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== ansi-styles@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" argparse@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-differ@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + resolved "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz" integrity sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ== array-each@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + resolved "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz" integrity sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA== array-slice@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + resolved "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz" integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== array-union@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz" integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== arrify@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== async@^2.6.4: version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" async@~3.2.0: version "3.2.6" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" + resolved "https://registry.npmjs.org/async/-/async-3.2.6.tgz" integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== basic-auth@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + resolved "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz" integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== dependencies: safe-buffer "5.1.2" brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -447,21 +928,31 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" braces@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: fill-range "^7.1.1" +browserslist@^4.24.0: + version "4.24.3" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz" + integrity sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA== + dependencies: + caniuse-lite "^1.0.30001688" + electron-to-chromium "^1.5.73" + node-releases "^2.0.19" + update-browserslist-db "^1.1.1" + call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz#32e5892e6361b29b0b545ba6f7763378daca2840" + resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz" integrity sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g== dependencies: es-errors "^1.3.0" @@ -469,7 +960,7 @@ call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: call-bind@^1.0.8: version "1.0.8" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz" integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== dependencies: call-bind-apply-helpers "^1.0.0" @@ -479,7 +970,7 @@ call-bind@^1.0.8: call-bound@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.2.tgz#9dbd4daf9f5f753bec3e4c8fbb8a2ecc4de6c39b" + resolved "https://registry.npmjs.org/call-bound/-/call-bound-1.0.2.tgz" integrity sha512-0lk0PHFe/uz0vl527fG9CgdE9WdafjDbCXvBbs+LUv000TVt2Jjhqbs4Jwm8gz070w8xXyEAxrPOMullsxXeGg== dependencies: call-bind "^1.0.8" @@ -487,12 +978,17 @@ call-bound@^1.0.2: callsites@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +caniuse-lite@^1.0.30001688: + version "1.0.30001690" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz" + integrity sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w== + chalk@^1.1.1: version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== dependencies: ansi-styles "^2.2.1" @@ -503,7 +999,7 @@ chalk@^1.1.1: chalk@^4.0.0, chalk@^4.1.2, chalk@~4.1.0: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -511,67 +1007,82 @@ chalk@^4.0.0, chalk@^4.1.2, chalk@~4.1.0: color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== colors@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + resolved "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz" integrity sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-1.0.2.tgz#27360701532116bd3f1f9416929d176afe1e4610" + integrity sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA== + corser@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" + resolved "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz" integrity sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ== -cross-spawn@^7.0.5: +cross-spawn@^7.0.6: version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" which "^2.0.1" +csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + dateformat@~4.6.2: version "4.6.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" + resolved "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz" integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== debug@^3.2.7: version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: +debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.4.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" + resolved "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz" integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== dependencies: ms "^2.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" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== define-data-property@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== dependencies: es-define-property "^1.0.0" @@ -580,38 +1091,43 @@ define-data-property@^1.1.4: detect-file@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz" integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== dunder-proto@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.0.tgz#c2fce098b3c8f8899554905f4377b6d85dabaa80" + resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.0.tgz" integrity sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A== dependencies: call-bind-apply-helpers "^1.0.0" es-errors "^1.3.0" gopd "^1.2.0" +electron-to-chromium@^1.5.73: + version "1.5.78" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.78.tgz" + integrity sha512-UmwIt7HRKN1rsJfddG5UG7rCTCTAKoS9JeOy/R0zSenAyaZ8SU3RuXlwcratxhdxGRNpk03iq8O7BA3W7ibLVw== + es-define-property@^1.0.0, es-define-property@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz" integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== es-errors@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== es-object-atoms@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz" integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== dependencies: es-errors "^1.3.0" esbuild@^0.24.0: version "0.24.0" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.24.0.tgz#f2d470596885fcb2e91c21eb3da3b3c89c0b55e7" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz" integrity sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ== optionalDependencies: "@esbuild/aix-ppc64" "0.24.0" @@ -639,26 +1155,62 @@ esbuild@^0.24.0: "@esbuild/win32-ia32" "0.24.0" "@esbuild/win32-x64" "0.24.0" +esbuild@^0.24.2: + version "0.24.2" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz" + integrity sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA== + optionalDependencies: + "@esbuild/aix-ppc64" "0.24.2" + "@esbuild/android-arm" "0.24.2" + "@esbuild/android-arm64" "0.24.2" + "@esbuild/android-x64" "0.24.2" + "@esbuild/darwin-arm64" "0.24.2" + "@esbuild/darwin-x64" "0.24.2" + "@esbuild/freebsd-arm64" "0.24.2" + "@esbuild/freebsd-x64" "0.24.2" + "@esbuild/linux-arm" "0.24.2" + "@esbuild/linux-arm64" "0.24.2" + "@esbuild/linux-ia32" "0.24.2" + "@esbuild/linux-loong64" "0.24.2" + "@esbuild/linux-mips64el" "0.24.2" + "@esbuild/linux-ppc64" "0.24.2" + "@esbuild/linux-riscv64" "0.24.2" + "@esbuild/linux-s390x" "0.24.2" + "@esbuild/linux-x64" "0.24.2" + "@esbuild/netbsd-arm64" "0.24.2" + "@esbuild/netbsd-x64" "0.24.2" + "@esbuild/openbsd-arm64" "0.24.2" + "@esbuild/openbsd-x64" "0.24.2" + "@esbuild/sunos-x64" "0.24.2" + "@esbuild/win32-arm64" "0.24.2" + "@esbuild/win32-ia32" "0.24.2" + "@esbuild/win32-x64" "0.24.2" + +escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + escape-string-regexp@^1.0.2: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-plugin-license-header@^0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-license-header/-/eslint-plugin-license-header-0.6.1.tgz#28a93015d828cb43038d6c9bef7d960b56fbce62" + resolved "https://registry.npmjs.org/eslint-plugin-license-header/-/eslint-plugin-license-header-0.6.1.tgz" integrity sha512-9aIz8q3OaMr1/uQmCGCWySjTs5nEXUJexNegz/8lluNcZbEl82Ag1Vyr1Hu3oIveRW1NbXDPs6nu4zu9mbrmWA== dependencies: requireindex "^1.2.0" eslint-scope@^8.2.0: version "8.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz" integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A== dependencies: esrecurse "^4.3.0" @@ -666,25 +1218,25 @@ eslint-scope@^8.2.0: 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" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint-visitor-keys@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz" integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== -eslint@^9.16.0: - version "9.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.16.0.tgz#66832e66258922ac0a626f803a9273e37747f2a6" - integrity sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA== +eslint@^9.17.0: + version "9.17.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz" + integrity sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.12.1" "@eslint/config-array" "^0.19.0" "@eslint/core" "^0.9.0" "@eslint/eslintrc" "^3.2.0" - "@eslint/js" "9.16.0" + "@eslint/js" "9.17.0" "@eslint/plugin-kit" "^0.2.3" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" @@ -693,7 +1245,7 @@ eslint@^9.16.0: "@types/json-schema" "^7.0.15" ajv "^6.12.4" chalk "^4.0.0" - cross-spawn "^7.0.5" + cross-spawn "^7.0.6" debug "^4.3.2" escape-string-regexp "^4.0.0" eslint-scope "^8.2.0" @@ -716,7 +1268,7 @@ eslint@^9.16.0: espree@^10.0.1, espree@^10.3.0: version "10.3.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a" + resolved "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz" integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg== dependencies: acorn "^8.14.0" @@ -725,68 +1277,68 @@ espree@^10.0.1, espree@^10.3.0: esprima@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.5.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz" integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== eventemitter2@~0.4.13: version "0.4.14" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab" + resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz" integrity sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ== eventemitter3@^4.0.0: version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== exit@~0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz" integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== dependencies: homedir-polyfill "^1.0.1" extend@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.3.2: version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -797,43 +1349,43 @@ fast-glob@^3.3.2: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: version "1.17.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== dependencies: reusify "^1.0.4" file-entry-cache@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz" integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== dependencies: flat-cache "^4.0.0" file-sync-cmp@^0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz#a5e7a8ffbfa493b43b923bbd4ca89a53b63b612b" + resolved "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz" integrity sha512-0k45oWBokCqh2MOexeYKpyqmGKG+8mQ2Wd8iawx+uWd/weWJQAZ6SoPybagdCI4xFisag8iAR77WPm4h3pTfxA== fill-range@^7.1.1: version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" find-up@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== dependencies: path-exists "^2.0.0" @@ -841,7 +1393,7 @@ find-up@^1.0.0: find-up@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" @@ -849,7 +1401,7 @@ find-up@^5.0.0: findup-sync@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-4.0.0.tgz#956c9cdde804052b881b428512905c4a5f2cdef0" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz" integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ== dependencies: detect-file "^1.0.0" @@ -859,7 +1411,7 @@ findup-sync@^4.0.0: findup-sync@~5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-5.0.0.tgz#54380ad965a7edca00cc8f63113559aadc541bd2" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz" integrity sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ== dependencies: detect-file "^1.0.0" @@ -869,7 +1421,7 @@ findup-sync@~5.0.0: fined@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" + resolved "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz" integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== dependencies: expand-tilde "^2.0.2" @@ -880,12 +1432,12 @@ fined@^1.2.0: flagged-respawn@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" + resolved "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz" integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== flat-cache@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz" integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== dependencies: flatted "^3.2.9" @@ -893,39 +1445,49 @@ flat-cache@^4.0.0: flatted@^3.2.9: version "3.3.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.2.tgz#adba1448a9841bec72b42c532ea23dbbedef1a27" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz" integrity sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA== follow-redirects@^1.0.0: version "1.15.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz" integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== for-in@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== for-own@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + resolved "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz" integrity sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg== dependencies: for-in "^1.0.1" fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@~2.3.2, fsevents@~2.3.3: + 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.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + get-intrinsic@^1.2.4, get-intrinsic@^1.2.5: version "1.2.6" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.6.tgz#43dd3dd0e7b49b82b2dfcad10dc824bf7fc265d5" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz" integrity sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA== dependencies: call-bind-apply-helpers "^1.0.1" @@ -941,26 +1503,26 @@ get-intrinsic@^1.2.4, get-intrinsic@^1.2.5: getobject@~1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/getobject/-/getobject-1.0.2.tgz#25ec87a50370f6dcc3c6ba7ef43c4c16215c4c89" + resolved "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz" integrity sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg== glob-parent@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.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" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" glob@~7.1.6: version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" @@ -972,7 +1534,7 @@ glob@~7.1.6: global-modules@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz" integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== dependencies: global-prefix "^1.0.1" @@ -981,7 +1543,7 @@ global-modules@^1.0.0: global-prefix@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz" integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== dependencies: expand-tilde "^2.0.2" @@ -990,24 +1552,29 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + globals@^14.0.0: version "14.0.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" + resolved "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz" integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== gopd@^1.0.1, gopd@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== graphemer@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== grunt-cli@~1.4.3: version "1.4.3" - resolved "https://registry.yarnpkg.com/grunt-cli/-/grunt-cli-1.4.3.tgz#22c9f1a3d2780bf9b0d206e832e40f8f499175ff" + resolved "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz" integrity sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ== dependencies: grunt-known-options "~2.0.0" @@ -1018,7 +1585,7 @@ grunt-cli@~1.4.3: grunt-contrib-concat@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/grunt-contrib-concat/-/grunt-contrib-concat-2.1.0.tgz#9ac62117a18b48d1bfccb3eef46c960bbd163d75" + resolved "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-2.1.0.tgz" integrity sha512-Vnl95JIOxfhEN7bnYIlCgQz41kkbi7tsZ/9a4usZmxNxi1S2YAIOy8ysFmO8u4MN26Apal1O106BwARdaNxXQw== dependencies: chalk "^4.1.2" @@ -1026,7 +1593,7 @@ grunt-contrib-concat@^2.1.0: grunt-contrib-copy@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz#7060c6581e904b8ab0d00f076e0a8f6e3e7c3573" + resolved "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz" integrity sha512-gFRFUB0ZbLcjKb67Magz1yOHGBkyU6uL29hiEW1tdQ9gQt72NuMKIy/kS6dsCbV0cZ0maNCb0s6y+uT1FKU7jA== dependencies: chalk "^1.1.1" @@ -1034,12 +1601,12 @@ grunt-contrib-copy@^1.0.0: grunt-known-options@~2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/grunt-known-options/-/grunt-known-options-2.0.0.tgz#cac641e897f9a0a680b8c9839803d35f3325103c" + resolved "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz" integrity sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA== grunt-legacy-log-utils@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz#49a8c7dc74051476dcc116c32faf9db8646856ef" + resolved "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz" integrity sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw== dependencies: chalk "~4.1.0" @@ -1047,7 +1614,7 @@ grunt-legacy-log-utils@~2.1.0: grunt-legacy-log@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz#1c6eaf92371ea415af31ea84ce50d434ef6d39c4" + resolved "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz" integrity sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA== dependencies: colors "~1.1.2" @@ -1057,7 +1624,7 @@ grunt-legacy-log@~3.0.0: grunt-legacy-util@~2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz#0f929d13a2faf9988c9917c82bff609e2d9ba255" + resolved "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz" integrity sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w== dependencies: async "~3.2.0" @@ -1070,7 +1637,7 @@ grunt-legacy-util@~2.0.1: grunt@^1.6.1: version "1.6.1" - resolved "https://registry.yarnpkg.com/grunt/-/grunt-1.6.1.tgz#0b4dd1524f26676dcf45d8f636b8d9061a8ede16" + resolved "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz" integrity sha512-/ABUy3gYWu5iBmrUSRBP97JLpQUm0GgVveDCp6t3yRNIoltIYw7rEj3g5y1o2PGPR2vfTRGa7WC/LZHLTXnEzA== dependencies: dateformat "~4.6.2" @@ -1089,62 +1656,62 @@ grunt@^1.6.1: has-ansi@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== dependencies: ansi-regex "^2.0.0" has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: es-define-property "^1.0.0" has-symbols@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz" integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== hasown@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" he@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== homedir-polyfill@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== dependencies: parse-passwd "^1.0.0" hooker@~0.2.3: version "0.2.3" - resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959" + resolved "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz" integrity sha512-t+UerCsQviSymAInD01Pw+Dn/usmz1sRO+3Zk1+lx8eg+WKpD2ulcwWqHHL0+aseRBr+3+vIhiG1K1JTwaIcTA== html-encoding-sniffer@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" + resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz" integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== dependencies: whatwg-encoding "^2.0.0" http-proxy@^1.18.1: version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== dependencies: eventemitter3 "^4.0.0" @@ -1153,7 +1720,7 @@ http-proxy@^1.18.1: http-server@^14.1.1: version "14.1.1" - resolved "https://registry.yarnpkg.com/http-server/-/http-server-14.1.1.tgz#d60fbb37d7c2fdff0f0fbff0d0ee6670bd285e2e" + resolved "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz" integrity sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A== dependencies: basic-auth "^2.0.1" @@ -1172,19 +1739,19 @@ http-server@^14.1.1: iconv-lite@0.6.3, iconv-lite@~0.6.3: version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" ignore@^5.2.0, ignore@^5.3.1: version "5.3.2" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -1192,12 +1759,12 @@ import-fresh@^3.2.1: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" @@ -1205,22 +1772,22 @@ inflight@^1.0.4: inherits@2: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@^1.3.4: version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== interpret@~1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz" integrity sha512-CLM8SNMDu7C5psFCn6Wg/tgpj/bKAg7hc2gWqcuR9OD5Ft9PhBpIu8PLicPeis+xDd6YX2ncI8MCA64I9tftIA== is-absolute@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + resolved "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz" integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== dependencies: is-relative "^1.0.0" @@ -1228,109 +1795,124 @@ is-absolute@^1.0.0: is-core-module@^2.13.0: version "2.15.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz" integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== dependencies: hasown "^2.0.2" is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" is-relative@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + resolved "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz" integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== dependencies: is-unc-path "^1.0.0" is-unc-path@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + resolved "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz" integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== dependencies: unc-path-regex "^0.1.2" is-windows@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" js-yaml@~3.14.0: version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== + json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + keyv@^4.5.4: version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== levn@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -1338,7 +1920,7 @@ levn@^0.4.1: liftup@~3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/liftup/-/liftup-3.0.1.tgz#1cb81aff0f368464ed3a5f1a7286372d6b1a60ce" + resolved "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz" integrity sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw== dependencies: extend "^3.0.2" @@ -1352,7 +1934,7 @@ liftup@~3.0.1: load-grunt-tasks@^3.5.2: version "3.5.2" - resolved "https://registry.yarnpkg.com/load-grunt-tasks/-/load-grunt-tasks-3.5.2.tgz#0728561180fd20ff8a6927505852fc58aaea0c88" + resolved "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-3.5.2.tgz" integrity sha512-dwBbJ+Fmf1IrtASRdgT/KJNtczdlm+R3iLSi8KOGdCGl4V05uA055JHtafIXTyk5EJ1zDZbmEHndOQwU6uj8Jw== dependencies: arrify "^1.0.0" @@ -1362,46 +1944,53 @@ load-grunt-tasks@^3.5.2: locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash@^4.17.14, lodash@~4.17.19, lodash@~4.17.21: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + make-iterator@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" + resolved "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz" integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== dependencies: kind-of "^6.0.2" map-cache@^0.2.0: version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== math-intrinsics@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.0.0.tgz#4e04bf87c85aa51e90d078dac2252b4eb5260817" + resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.0.0.tgz" integrity sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA== merge2@^1.3.0: version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^4.0.2, micromatch@^4.0.4: version "4.0.8" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: braces "^3.0.3" @@ -1409,50 +1998,50 @@ micromatch@^4.0.2, micromatch@^4.0.4: mime@^1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== minimatch@^3.0.0, minimatch@^3.0.4, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" minimatch@^9.0.4: version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== dependencies: brace-expansion "^2.0.1" minimatch@~3.0.4: version "3.0.8" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz" integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== dependencies: brace-expansion "^1.1.7" minimist@^1.2.6: version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== mkdirp@^0.5.6: version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" ms@^2.1.1, ms@^2.1.3: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== multimatch@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" + resolved "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz" integrity sha512-0mzK8ymiWdehTBiJh0vClAzGyQbdtyWqzSVx//EK4N/D+599RFlGfTAsKw2zMSABtDG9C6Ul2+t8f2Lbdjf5mA== dependencies: array-differ "^1.0.0" @@ -1460,21 +2049,31 @@ multimatch@^2.0.0: arrify "^1.0.0" minimatch "^3.0.0" +nanoid@^3.3.7: + version "3.3.8" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz" + integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== + natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +node-releases@^2.0.19: + version "2.0.19" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz" + integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== + nopt@~3.0.6: version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + resolved "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" integrity sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg== dependencies: abbrev "1" nopt@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz" integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== dependencies: abbrev "1" @@ -1482,12 +2081,12 @@ nopt@~4.0.1: object-inspect@^1.13.3: version "1.13.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz" integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA== object.defaults@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + resolved "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz" integrity sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA== dependencies: array-each "^1.0.1" @@ -1497,7 +2096,7 @@ object.defaults@^1.1.0: object.map@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + resolved "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz" integrity sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w== dependencies: for-own "^1.0.0" @@ -1505,26 +2104,26 @@ object.map@^1.0.1: object.pick@^1.2.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== dependencies: isobject "^3.0.1" once@^1.3.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" opener@^1.5.1: version "1.5.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + resolved "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== optionator@^0.9.3: version "0.9.4" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz" integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== dependencies: deep-is "^0.1.3" @@ -1536,17 +2135,17 @@ optionator@^0.9.3: os-homedir@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== os-tmpdir@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== osenv@^0.1.4: version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== dependencies: os-homedir "^1.0.0" @@ -1554,28 +2153,28 @@ osenv@^0.1.4: p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-filepath@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + resolved "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz" integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== dependencies: is-absolute "^1.0.0" @@ -1584,123 +2183,171 @@ parse-filepath@^1.0.1: parse-passwd@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== path-exists@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== dependencies: pinkie-promise "^2.0.0" path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-root-regex@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + resolved "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz" integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== path-root@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + resolved "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz" integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== dependencies: path-root-regex "^0.1.0" +picocolors@^1.0.0, picocolors@^1.1.0, picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== pkg-up@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26" + resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz" integrity sha512-L+d849d9lz20hnRpUnWBRXOh+mAvygQpK7UuXiw+6QbPwL55RVgl+G+V936wCzs/6J7fj0pvgLY9OknZ+FqaNA== dependencies: find-up "^1.0.0" portfinder@^1.0.28: version "1.0.32" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" + resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz" integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== dependencies: async "^2.6.4" debug "^3.2.7" mkdirp "^0.5.6" +postcss@^8.4.49: + version "8.4.49" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz" + integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA== + dependencies: + nanoid "^3.3.7" + picocolors "^1.1.1" + source-map-js "^1.2.1" + prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== punycode@^2.1.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== qs@^6.4.0: version "6.13.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.1.tgz#3ce5fc72bd3a8171b85c99b93c65dd20b7d1b16e" + resolved "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz" integrity sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg== dependencies: side-channel "^1.0.6" queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +react-dom@^19.0.0: + version "19.0.0" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz" + integrity sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ== + dependencies: + scheduler "^0.25.0" + +react-refresh@^0.14.2: + version "0.14.2" + resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz" + integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== + +react-router-dom@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.1.1.tgz#9e76fb63a762ba5da13032f5fd9e4a24946396b6" + integrity sha512-vSrQHWlJ5DCfyrhgo0k6zViOe9ToK8uT5XGSmnuC2R3/g261IdIMpZVqfjD6vWSXdnf5Czs4VA/V60oVR6/jnA== + dependencies: + react-router "7.1.1" + +react-router@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.1.1.tgz#88f5657fa5b8f0b918c7222ec710de0274d00b2e" + integrity sha512-39sXJkftkKWRZ2oJtHhCxmoCrBCULr/HAH4IT5DHlgu/Q0FCPV0S4Lx+abjDTx/74xoZzNYDYbOZWlJjruyuDQ== + dependencies: + "@types/cookie" "^0.6.0" + cookie "^1.0.1" + set-cookie-parser "^2.6.0" + turbo-stream "2.4.0" + +react@^19.0.0: + version "19.0.0" + resolved "https://registry.npmjs.org/react/-/react-19.0.0.tgz" + integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ== + rechoir@^0.7.0: version "0.7.1" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz" integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== dependencies: resolve "^1.9.0" requireindex@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" + resolved "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz" integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== requires-port@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz" integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== dependencies: expand-tilde "^2.0.0" @@ -1708,24 +2355,24 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1: resolve-from@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz" integrity sha512-qpFcKaXsq8+oRoLilkwyc7zHGF5i9Q2/25NIgLQQ/+VVv9rU4qvr6nXVAw1DsnXJyQkZsR4Ytfbtg5ehfcUssQ== resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-pkg@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/resolve-pkg/-/resolve-pkg-0.1.0.tgz#02cc993410e2936962bd97166a1b077da9725531" + resolved "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-0.1.0.tgz" integrity sha512-x11rPP22t6W9p+eSOhDeT6whjFGmsZQf76rDq5gtbgh9UdBxZeR1PuW6sYkCyN/IrD2hpJ0yYn0hE1toHAadEw== dependencies: resolve-from "^2.0.0" resolve@^1.19.0, resolve@^1.9.0: version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: is-core-module "^2.13.0" @@ -1734,39 +2381,82 @@ resolve@^1.19.0, resolve@^1.9.0: reusify@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rollup@^4.23.0: + version "4.30.0" + resolved "https://registry.npmjs.org/rollup/-/rollup-4.30.0.tgz" + integrity sha512-sDnr1pcjTgUT69qBksNF1N1anwfbyYG6TBQ22b03bII8EdiUQ7J0TlozVaTMjT/eEJAO49e1ndV7t+UZfL1+vA== + dependencies: + "@types/estree" "1.0.6" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.30.0" + "@rollup/rollup-android-arm64" "4.30.0" + "@rollup/rollup-darwin-arm64" "4.30.0" + "@rollup/rollup-darwin-x64" "4.30.0" + "@rollup/rollup-freebsd-arm64" "4.30.0" + "@rollup/rollup-freebsd-x64" "4.30.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.30.0" + "@rollup/rollup-linux-arm-musleabihf" "4.30.0" + "@rollup/rollup-linux-arm64-gnu" "4.30.0" + "@rollup/rollup-linux-arm64-musl" "4.30.0" + "@rollup/rollup-linux-loongarch64-gnu" "4.30.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.30.0" + "@rollup/rollup-linux-riscv64-gnu" "4.30.0" + "@rollup/rollup-linux-s390x-gnu" "4.30.0" + "@rollup/rollup-linux-x64-gnu" "4.30.0" + "@rollup/rollup-linux-x64-musl" "4.30.0" + "@rollup/rollup-win32-arm64-msvc" "4.30.0" + "@rollup/rollup-win32-ia32-msvc" "4.30.0" + "@rollup/rollup-win32-x64-msvc" "4.30.0" + fsevents "~2.3.2" + run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" safe-buffer@5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +scheduler@^0.25.0: + version "0.25.0" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz" + integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA== + secure-compare@3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3" + resolved "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz" integrity sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw== +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + semver@^7.6.0: version "7.6.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== +set-cookie-parser@^2.6.0: + version "2.7.1" + resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz#3016f150072202dfbe90fadee053573cc89d2943" + integrity sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ== + set-function-length@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== dependencies: define-data-property "^1.1.4" @@ -1778,19 +2468,19 @@ set-function-length@^1.2.2: shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel-list@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" + resolved "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz" integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== dependencies: es-errors "^1.3.0" @@ -1798,7 +2488,7 @@ side-channel-list@^1.0.0: side-channel-map@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + resolved "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz" integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== dependencies: call-bound "^1.0.2" @@ -1808,7 +2498,7 @@ side-channel-map@^1.0.1: side-channel-weakmap@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + resolved "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz" integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== dependencies: call-bound "^1.0.2" @@ -1819,7 +2509,7 @@ side-channel-weakmap@^1.0.2: side-channel@^1.0.6: version "1.1.0" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz" integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== dependencies: es-errors "^1.3.0" @@ -1828,72 +2518,82 @@ side-channel@^1.0.6: side-channel-map "^1.0.1" side-channel-weakmap "^1.0.2" +source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + source-map@^0.5.3: version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== sprintf-js@^1.1.1: version "1.1.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz" integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== strip-ansi@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== dependencies: ansi-regex "^2.0.0" 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" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== supports-color@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" ts-api-utils@^1.3.0: version "1.4.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064" + resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz" integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw== +turbo-stream@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/turbo-stream/-/turbo-stream-2.4.0.tgz#1e4fca6725e90fa14ac4adb782f2d3759a5695f0" + integrity sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g== + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" typescript-eslint@^8.18.0: version "8.18.0" - resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.18.0.tgz#41026f27a3481185f3239d817ae5b960572145a0" + resolved "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.18.0.tgz" integrity sha512-Xq2rRjn6tzVpAyHr3+nmSg1/9k9aIHnJ2iZeOH7cfGOWqTkXTm3kwpQglEuLGdNrYvPF+2gtAs+/KF5rjVo+WQ== dependencies: "@typescript-eslint/eslint-plugin" "8.18.0" @@ -1902,85 +2602,114 @@ typescript-eslint@^8.18.0: typescript@^5.7.2: version "5.7.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.7.2.tgz#3169cf8c4c8a828cde53ba9ecb3d2b1d5dd67be6" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz" integrity sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg== unc-path-regex@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + resolved "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz" integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== underscore.string@~3.3.5: version "3.3.6" - resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.3.6.tgz#ad8cf23d7423cb3b53b898476117588f4e2f9159" + resolved "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz" integrity sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ== dependencies: sprintf-js "^1.1.1" util-deprecate "^1.0.2" +undici-types@~6.20.0: + version "6.20.0" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz" + integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== + union@~0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/union/-/union-0.5.0.tgz#b2c11be84f60538537b846edb9ba266ba0090075" + resolved "https://registry.npmjs.org/union/-/union-0.5.0.tgz" integrity sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA== dependencies: qs "^6.4.0" +update-browserslist-db@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz" + integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.0" + uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" url-join@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" + resolved "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz" integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== util-deprecate@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== v8flags@~3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" + resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz" integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== dependencies: homedir-polyfill "^1.0.1" +vite@^6.0.7: + version "6.0.7" + resolved "https://registry.npmjs.org/vite/-/vite-6.0.7.tgz" + integrity sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ== + dependencies: + esbuild "^0.24.2" + postcss "^8.4.49" + rollup "^4.23.0" + optionalDependencies: + fsevents "~2.3.3" + whatwg-encoding@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" + resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz" integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== dependencies: iconv-lite "0.6.3" which@^1.2.14: version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" which@^2.0.1, which@~2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" word-wrap@^1.2.5: version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==