From 17232997865a52b2306a9a7ea655ca83d05e8318 Mon Sep 17 00:00:00 2001 From: Donald Oakes Date: Sat, 13 Jan 2024 16:53:33 -0700 Subject: [PATCH] merge ply31 --- .vscodeignore | 3 + CHANGELOG.md | 5 + icons/test-explorer/flow/request-light.svg | 2 +- icons/test-explorer/request-light.svg | 2 +- media/css/flow.css | 29 +- media/css/flowbee.css | 60 +- media/img/icons/dark/delay.svg | 33 +- media/img/icons/dark/edit.svg | 3 + media/img/icons/dark/save.svg | 3 + media/img/icons/dark/subflow.svg | 57 + media/img/icons/dark/typescript.svg | 29 +- media/img/icons/dark/value.svg | 42 + media/img/icons/light/delay.svg | 34 +- media/img/icons/light/edit.svg | 3 + media/img/icons/light/save.svg | 3 + media/img/icons/light/subflow.svg | 57 + media/img/icons/light/typescript.svg | 29 +- media/img/icons/light/value.svg | 42 + media/src/flow/attribute.ts | 136 + media/src/flow/descriptors.ts | 16 +- media/src/flow/main.ts | 311 +- media/src/flow/menu.ts | 15 +- media/src/flow/request.ts | 7 - media/src/flow/values.ts | 88 +- media/src/viz/main.ts | 2 +- media/templates/config/embedded.yaml | 14 + media/templates/config/flow.yaml | 12 +- media/templates/config/subflow.yaml | 40 +- media/templates/config/value.yaml | 8 + media/templates/inspect/embedded.yaml | 11 + media/templates/inspect/flow.yaml | 6 + media/templates/inspect/subflow.yaml | 19 +- package-lock.json | 34 +- package.json | 8 +- src/adapter-helper.ts | 5 + src/edit/flow.ts | 140 +- src/extension.ts | 9 +- web/css/{style.scss => style.css} | 18 +- web/package-lock.json | 4705 +++++++------------- web/package.json | 18 +- web/rollup.config.js | 13 - web/src/components/Response.vue | 2 +- web/src/components/Values.vue | 7 +- web/src/util/content.ts | 45 +- web/src/util/monaco.ts | 4 +- web/test/request.html | 1 - 46 files changed, 2730 insertions(+), 3400 deletions(-) create mode 100755 media/img/icons/dark/edit.svg create mode 100755 media/img/icons/dark/save.svg create mode 100644 media/img/icons/dark/subflow.svg create mode 100644 media/img/icons/dark/value.svg create mode 100755 media/img/icons/light/edit.svg create mode 100755 media/img/icons/light/save.svg create mode 100755 media/img/icons/light/subflow.svg create mode 100644 media/img/icons/light/value.svg create mode 100644 media/src/flow/attribute.ts delete mode 100644 media/src/flow/request.ts create mode 100644 media/templates/config/embedded.yaml mode change 100644 => 100755 media/templates/config/subflow.yaml create mode 100644 media/templates/config/value.yaml create mode 100644 media/templates/inspect/embedded.yaml mode change 100644 => 100755 media/templates/inspect/subflow.yaml rename web/css/{style.scss => style.css} (93%) diff --git a/.vscodeignore b/.vscodeignore index 513ed44..a8d735d 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -34,6 +34,9 @@ web/tsconfig.json web/out/workers/editor.worker.js.map web/out/workers/json.worker.js.map web/out/workers/yaml.worker.js.map +web/out/workers/graphql.worker.js.map +web/out/workers/parser-graphql.*.js.map +web/out/workers/standalone.*.js.map !node_modules/@ply-ct/ply/package.json !node_modules/@ply-ct/ply/templates !node_modules/@ply-ct/ply/dist/index.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 29d0add..e626096 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Change Log +## [3.1.0](https://github.com/ply-ct/vscode-ply/tree/3.1.0) (2024-01-13) + +- Enhancement: Flow link waypoints [\#33](https://github.com/ply-ct/vscode-ply/issues/33) +- Enhancement: Subflows [\#165](https://github.com/ply-ct/vscode-ply/issues/165) + ## [3.0.0](https://github.com/ply-ct/vscode-ply/tree/3.0.0) (2023-09-05) - Enhancement: Conditional activation [\#26](https://github.com/ply-ct/vscode-ply/issues/26) diff --git a/icons/test-explorer/flow/request-light.svg b/icons/test-explorer/flow/request-light.svg index 9090490..4c22e4b 100644 --- a/icons/test-explorer/flow/request-light.svg +++ b/icons/test-explorer/flow/request-light.svg @@ -61,5 +61,5 @@ + style="fill:#579cfe;fill-opacity:1;stroke:#f2f2f2;stroke-width:0.020038" /> diff --git a/icons/test-explorer/request-light.svg b/icons/test-explorer/request-light.svg index 9090490..4c22e4b 100644 --- a/icons/test-explorer/request-light.svg +++ b/icons/test-explorer/request-light.svg @@ -61,5 +61,5 @@ + style="fill:#579cfe;fill-opacity:1;stroke:#f2f2f2;stroke-width:0.020038" /> diff --git a/media/css/flow.css b/media/css/flow.css index 234e9c8..2243afb 100755 --- a/media/css/flow.css +++ b/media/css/flow.css @@ -241,14 +241,39 @@ body { color: #ff0000; padding-left: 1px; } + +.split { + display: flex; + min-height: 100%; + overflow: hidden; +} +.pane { + flex-basis: 50%; +} +.pane-left { + width: 50%; + overflow: scroll; +} +.pane-right { + border-left: 1px solid var(--vscode-panel-border); + width: 50%; + overflow: scroll; +} + +.values { + margin: 0; + font-family: Menlo, Monaco, 'Courier New', monospace; + font-size: 12px; +} + /* customized flowbee styles */ .flowbee-configurator { width: calc(100% - 200px); height: 167px; /* enough for five tabs */ } -.flowbee-values-dark .flowbee-values-footer input[type='button'], -.flowbee-values-light .flowbee-values-footer input[type='button'] { +.flowbee-popup-dark .flowbee-popup-footer input[type='button'], +.flowbee-popup-light .flowbee-popup-footer input[type='button'] { color: var(--vscode-button-foreground); background: var(--vscode-button-background); border: none; diff --git a/media/css/flowbee.css b/media/css/flowbee.css index 1a9fe61..39465b9 100644 --- a/media/css/flowbee.css +++ b/media/css/flowbee.css @@ -956,7 +956,7 @@ .flowbee-configurator-dark .flowbee-config-footer input[type=button] { background-color: #c8c8c8; } -.flowbee-values-light { +.flowbee-popup-light { display: none; z-index: 100; position: absolute; @@ -973,7 +973,7 @@ font-size: 13px; box-sizing: border-box; outline: none; } - .flowbee-values-light .flowbee-values-header { + .flowbee-popup-light .flowbee-popup-header { display: flex; height: 30px; background-color: #f8f8f8; @@ -982,23 +982,23 @@ padding: 5px 5px 0 5px; font-weight: 500; box-sizing: border-box; } - .flowbee-values-light .flowbee-values-title { + .flowbee-popup-light .flowbee-popup-title { flex-grow: 1; user-select: none; } - .flowbee-values-light .flowbee-values-title a { + .flowbee-popup-light .flowbee-popup-title a { text-decoration: none; margin-left: 7px; font-weight: normal; } - .flowbee-values-light .flowbee-values-help { + .flowbee-popup-light .flowbee-popup-help { margin-left: 10px; vertical-align: middle; outline: none; } - .flowbee-values-light .flowbee-values-help:focus { + .flowbee-popup-light .flowbee-popup-help:focus { outline: none; } - .flowbee-values-light .flowbee-values-close { + .flowbee-popup-light .flowbee-popup-close { cursor: pointer; user-select: none; } - .flowbee-values-light .flowbee-values-content { + .flowbee-popup-light .flowbee-popup-content { display: flex; flex-direction: column; box-sizing: border-box; @@ -1007,7 +1007,7 @@ overflow: auto; padding: 10px; background-color: #ffffff; } - .flowbee-values-light .flowbee-values-content table { + .flowbee-popup-light .flowbee-popup-content table { width: 100%; grid-column: 1/3; border-spacing: 0; @@ -1015,7 +1015,7 @@ table-layout: fixed; margin-bottom: 10px; height: fit-content; } - .flowbee-values-light .flowbee-values-content th, .flowbee-values-light td { + .flowbee-popup-light .flowbee-popup-content th, .flowbee-popup-light td { border: 1px solid #e0e0e0; text-align: left; padding-left: 3px; @@ -1024,7 +1024,7 @@ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } - .flowbee-values-light .flowbee-values-footer { + .flowbee-popup-light .flowbee-popup-footer { display: flex; justify-content: flex-end; height: 36px; @@ -1034,11 +1034,11 @@ padding: 5px; font-weight: 500; box-sizing: border-box; } - .flowbee-values-light .flowbee-values-footer input[type=button] { + .flowbee-popup-light .flowbee-popup-footer input[type=button] { border-width: 1px; margin-right: 10px; } -.flowbee-values-dark { +.flowbee-popup-dark { display: none; z-index: 100; position: absolute; @@ -1059,7 +1059,7 @@ color: #cccccc; border: 1px solid #454545; box-shadow: 0 2px 8px #000000; } - .flowbee-values-dark .flowbee-values-header { + .flowbee-popup-dark .flowbee-popup-header { display: flex; height: 30px; background-color: #f8f8f8; @@ -1068,23 +1068,23 @@ padding: 5px 5px 0 5px; font-weight: 500; box-sizing: border-box; } - .flowbee-values-dark .flowbee-values-title { + .flowbee-popup-dark .flowbee-popup-title { flex-grow: 1; user-select: none; } - .flowbee-values-dark .flowbee-values-title a { + .flowbee-popup-dark .flowbee-popup-title a { text-decoration: none; margin-left: 7px; font-weight: normal; } - .flowbee-values-dark .flowbee-values-help { + .flowbee-popup-dark .flowbee-popup-help { margin-left: 10px; vertical-align: middle; outline: none; } - .flowbee-values-dark .flowbee-values-help:focus { + .flowbee-popup-dark .flowbee-popup-help:focus { outline: none; } - .flowbee-values-dark .flowbee-values-close { + .flowbee-popup-dark .flowbee-popup-close { cursor: pointer; user-select: none; } - .flowbee-values-dark .flowbee-values-content { + .flowbee-popup-dark .flowbee-popup-content { display: flex; flex-direction: column; box-sizing: border-box; @@ -1093,7 +1093,7 @@ overflow: auto; padding: 10px; background-color: #ffffff; } - .flowbee-values-dark .flowbee-values-content table { + .flowbee-popup-dark .flowbee-popup-content table { width: 100%; grid-column: 1/3; border-spacing: 0; @@ -1101,7 +1101,7 @@ table-layout: fixed; margin-bottom: 10px; height: fit-content; } - .flowbee-values-dark .flowbee-values-content th, .flowbee-values-dark td { + .flowbee-popup-dark .flowbee-popup-content th, .flowbee-popup-dark td { border: 1px solid #e0e0e0; text-align: left; padding-left: 3px; @@ -1110,7 +1110,7 @@ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } - .flowbee-values-dark .flowbee-values-footer { + .flowbee-popup-dark .flowbee-popup-footer { display: flex; justify-content: flex-end; height: 36px; @@ -1120,25 +1120,25 @@ padding: 5px; font-weight: 500; box-sizing: border-box; } - .flowbee-values-dark .flowbee-values-footer input[type=button] { + .flowbee-popup-dark .flowbee-popup-footer input[type=button] { border-width: 1px; margin-right: 10px; } - .flowbee-values-dark .flowbee-values-header { + .flowbee-popup-dark .flowbee-popup-header { background-color: #323232; color: #c8c8c8; border-bottom: 1px solid #454545; } - .flowbee-values-dark .flowbee-values-content { + .flowbee-popup-dark .flowbee-popup-content { background-color: #252526; } - .flowbee-values-dark .flowbee-values-content table { + .flowbee-popup-dark .flowbee-popup-content table { background-color: #3c3c3c; color: #cccccc; } - .flowbee-values-dark .flowbee-values-content th, .flowbee-values-dark td { + .flowbee-popup-dark .flowbee-popup-content th, .flowbee-popup-dark td { border: 1px solid #606060; } - .flowbee-values-dark .flowbee-values-footer { + .flowbee-popup-dark .flowbee-popup-footer { background-color: #323232; color: #c8c8c8; border-top: 1px solid #454545; } - .flowbee-values-dark .flowbee-values-footer input[type=button] { + .flowbee-popup-dark .flowbee-popup-footer input[type=button] { background-color: #c8c8c8; } .flowbee-tree-light { diff --git a/media/img/icons/dark/delay.svg b/media/img/icons/dark/delay.svg index 68127c8..7dce7ec 100644 --- a/media/img/icons/dark/delay.svg +++ b/media/img/icons/dark/delay.svg @@ -1,20 +1,20 @@ + sodipodi:docname="delay.svg" + inkscape:version="1.2 (dc2aeda, 2022-05-15)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> @@ -44,20 +44,23 @@ id="namedview839" showgrid="false" inkscape:zoom="41.75" - inkscape:cx="8" - inkscape:cy="6.6229373" + inkscape:cx="8.011976" + inkscape:cy="6.6467066" inkscape:window-x="199" - inkscape:window-y="44" + inkscape:window-y="25" inkscape:window-maximized="0" - inkscape:current-layer="svg837" /> + inkscape:current-layer="svg837" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" /> + style="stroke-width:1.51186;fill:#c8ab37" /> + style="stroke-width:1.51186;fill:#c8ab37" /> diff --git a/media/img/icons/dark/edit.svg b/media/img/icons/dark/edit.svg new file mode 100755 index 0000000..524ab1a --- /dev/null +++ b/media/img/icons/dark/edit.svg @@ -0,0 +1,3 @@ + + + diff --git a/media/img/icons/dark/save.svg b/media/img/icons/dark/save.svg new file mode 100755 index 0000000..1dee549 --- /dev/null +++ b/media/img/icons/dark/save.svg @@ -0,0 +1,3 @@ + + + diff --git a/media/img/icons/dark/subflow.svg b/media/img/icons/dark/subflow.svg new file mode 100644 index 0000000..7f37a48 --- /dev/null +++ b/media/img/icons/dark/subflow.svg @@ -0,0 +1,57 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/media/img/icons/dark/typescript.svg b/media/img/icons/dark/typescript.svg index d10408f..67593f9 100644 --- a/media/img/icons/dark/typescript.svg +++ b/media/img/icons/dark/typescript.svg @@ -1,19 +1,19 @@ + inkscape:version="1.2 (dc2aeda, 2022-05-15)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> @@ -43,16 +43,19 @@ id="namedview955" showgrid="false" inkscape:zoom="18.539456" - inkscape:cx="5.6167396" - inkscape:cy="16" + inkscape:cx="5.6366271" + inkscape:cy="16.019888" inkscape:window-x="0" inkscape:window-y="25" inkscape:window-maximized="0" - inkscape:current-layer="svg953" /> + inkscape:current-layer="svg953" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" /> file_type_typescript diff --git a/media/img/icons/dark/value.svg b/media/img/icons/dark/value.svg new file mode 100644 index 0000000..4e4e923 --- /dev/null +++ b/media/img/icons/dark/value.svg @@ -0,0 +1,42 @@ + + + + + + diff --git a/media/img/icons/light/delay.svg b/media/img/icons/light/delay.svg index 68127c8..1cb2b26 100644 --- a/media/img/icons/light/delay.svg +++ b/media/img/icons/light/delay.svg @@ -1,20 +1,20 @@ + sodipodi:docname="delay.svg" + inkscape:version="1.2 (dc2aeda, 2022-05-15)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> @@ -23,7 +23,6 @@ image/svg+xml - @@ -44,20 +43,23 @@ id="namedview839" showgrid="false" inkscape:zoom="41.75" - inkscape:cx="8" - inkscape:cy="6.6229373" + inkscape:cx="8.011976" + inkscape:cy="6.6467066" inkscape:window-x="199" - inkscape:window-y="44" + inkscape:window-y="25" inkscape:window-maximized="0" - inkscape:current-layer="svg837" /> + inkscape:current-layer="svg837" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" /> + style="stroke-width:1.51186;fill:#a0892c" /> + style="stroke-width:1.51186;fill:#a0892c" /> diff --git a/media/img/icons/light/edit.svg b/media/img/icons/light/edit.svg new file mode 100755 index 0000000..4a4281b --- /dev/null +++ b/media/img/icons/light/edit.svg @@ -0,0 +1,3 @@ + + + diff --git a/media/img/icons/light/save.svg b/media/img/icons/light/save.svg new file mode 100755 index 0000000..9b694d9 --- /dev/null +++ b/media/img/icons/light/save.svg @@ -0,0 +1,3 @@ + + + diff --git a/media/img/icons/light/subflow.svg b/media/img/icons/light/subflow.svg new file mode 100755 index 0000000..ca73a36 --- /dev/null +++ b/media/img/icons/light/subflow.svg @@ -0,0 +1,57 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/media/img/icons/light/typescript.svg b/media/img/icons/light/typescript.svg index d10408f..67593f9 100644 --- a/media/img/icons/light/typescript.svg +++ b/media/img/icons/light/typescript.svg @@ -1,19 +1,19 @@ + inkscape:version="1.2 (dc2aeda, 2022-05-15)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> @@ -43,16 +43,19 @@ id="namedview955" showgrid="false" inkscape:zoom="18.539456" - inkscape:cx="5.6167396" - inkscape:cy="16" + inkscape:cx="5.6366271" + inkscape:cy="16.019888" inkscape:window-x="0" inkscape:window-y="25" inkscape:window-maximized="0" - inkscape:current-layer="svg953" /> + inkscape:current-layer="svg953" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" /> file_type_typescript diff --git a/media/img/icons/light/value.svg b/media/img/icons/light/value.svg new file mode 100644 index 0000000..9dc85de --- /dev/null +++ b/media/img/icons/light/value.svg @@ -0,0 +1,42 @@ + + + + + + diff --git a/media/src/flow/attribute.ts b/media/src/flow/attribute.ts new file mode 100644 index 0000000..dde9b0b --- /dev/null +++ b/media/src/flow/attribute.ts @@ -0,0 +1,136 @@ +import * as flowbee from 'flowbee/dist/nostyles'; +import { SubflowSpec } from '@ply-ct/ply-api'; +import { resolve } from '@ply-ct/ply-values'; + +export type AttributeHolder = { attributes?: { [name: string]: string } }; + +export interface AttributeValueProvider { + /** + * Get dynamically-determined default attribute value. + */ + getDynamicDefault?( + element: flowbee.FlowElement, + expr: string + ): ((element: flowbee.FlowElement) => string) | undefined; + + /** + * Get options list from flow table attributes + * TODO other possibilities besides flow attributes + * (especially attribute from another tab on same step) + * other types besides tables? + */ + getDynamicOptions?( + element: flowbee.FlowElement + ): ((attribute?: string) => string[]) | undefined; + + stageAttribute?(flowElement: flowbee.FlowElement, attribute: string): string | undefined; + unstageAttribute?(flowElement: flowbee.FlowElement, attribute: string): string | undefined; +} + +export class FlowValueProvider implements AttributeValueProvider { + constructor(readonly flowData: { getFlow(): flowbee.Flow }) {} + + getDynamicOptions( + flowElement: flowbee.FlowElement + ): ((attribute?: string) => string[]) | undefined { + if (flowElement.type === 'flow') { + return (attribute) => { + const attributes = this.flowData.getFlow().attributes; + if (attributes && attribute) { + const attrVal = attributes[attribute]; + if (attrVal) { + if (attrVal.startsWith('[[') && attrVal.endsWith(']]')) { + return JSON.parse(attrVal).map((row: string[]) => row[0]); + } + } + } + return []; + }; + } + } +} + +export class LinkValueProvider implements AttributeValueProvider { + /** + * Link waypoints + */ + getDynamicDefault( + flowElement: flowbee.FlowElement, + expr: string + ): ((element: AttributeHolder) => string) | undefined { + if (flowElement.type === 'link' && expr.startsWith('${display.')) { + return (element) => { + if (element.attributes?.display) { + return resolve( + expr, + { + ...flowElement.attributes, + display: flowbee.LinkLayout.fromAttr(element.attributes.display) + }, + false, + console + ); + } + return ''; + }; + } + } +} + +export class SubflowValueProvider implements AttributeValueProvider { + constructor(readonly subflowData: { getSubflows(): SubflowSpec[] }) {} + + getSubflow(flowElement: flowbee.FlowElement): SubflowSpec | undefined { + return this.subflowData.getSubflows().find((sf) => sf.stepId === flowElement.id); + } + + stageAttribute(flowElement: flowbee.FlowElement, attribute: string): string | undefined { + if ( + flowElement.type === 'step' && + flowElement.path?.endsWith('subflow') && + flowElement.attributes && + attribute + ) { + const subflow = this.getSubflow(flowElement); + if (subflow?.values && attribute === 'inValues') { + const rows: string[][] = subflow.values.map((v) => [v.name, '']); + const vals: string[][] = JSON.parse(flowElement.attributes[attribute] || '[]'); + for (const row of rows) { + const valrow = vals.find((vr) => vr[0] === row[0]); + if (valrow?.length && valrow[1]) { + row[1] = valrow[1]; + } + } + return JSON.stringify(rows); + } + if (subflow?.returns && attribute === 'outValues') { + const rows: string[][] = subflow.returns.map((v) => [v.name, '']); + const vals: string[][] = JSON.parse(flowElement.attributes[attribute] || '[]'); + for (const row of rows) { + const valrow = vals.find((vr) => vr[0] === row[0]); + if (valrow?.length && valrow[1]) { + row[1] = valrow[1]; + } + } + return JSON.stringify(rows); + } + } + } + + unstageAttribute(flowElement: flowbee.FlowElement, attribute: string): string | undefined { + if ( + flowElement.type === 'step' && + flowElement.path?.endsWith('subflow') && + flowElement.attributes && + attribute + ) { + if (attribute === 'inValues' || attribute === 'outValues') { + const attr = flowElement.attributes[attribute]; + if (attr) { + const rows = JSON.parse(attr).filter((row: string[]) => row.length && row[1]); + return JSON.stringify(rows); + } + } + } + } +} diff --git a/media/src/flow/descriptors.ts b/media/src/flow/descriptors.ts index b6f02e1..0b05bc3 100644 --- a/media/src/flow/descriptors.ts +++ b/media/src/flow/descriptors.ts @@ -20,21 +20,25 @@ export const getDescriptors = (customDescriptors?: flowbee.Descriptor[]): flowbe name: 'TypeScript', icon: 'typescript.svg' }, + { + type: 'step', + path: 'value', + name: 'Set Value', + icon: 'value.svg' + }, flowbee.decide, { type: 'step', path: 'delay', name: 'Delay', icon: 'delay.svg' - } - /* + }, { type: 'step', - path: 'sync', - name: 'Sync', - icon: 'sync.svg' + path: 'subflow', + name: 'Subflow', + icon: 'subflow.svg' } - */ ] as flowbee.Descriptor[]) ); diff --git a/media/src/flow/main.ts b/media/src/flow/main.ts index b089fef..66e85c5 100755 --- a/media/src/flow/main.ts +++ b/media/src/flow/main.ts @@ -1,12 +1,14 @@ import * as flowbee from 'flowbee/dist/nostyles'; +import { PlyRequest as Request, SubflowSpec, PlyResults } from '@ply-ct/ply-api'; import { ExpressionHolder, expressions, isExpression, toExpression, - resolve, - ValuesAccess + ValuesAccess, + resolve } from '@ply-ct/ply-values'; +import * as jsYaml from 'js-yaml'; import { Options } from './options'; import { Templates } from './templates'; import { FlowSplitter, ToolboxSplitter } from './splitter'; @@ -19,8 +21,19 @@ import { } from './actions'; import { getDescriptors } from './descriptors'; import { MenuProvider } from './menu'; -import { Request } from './request'; -import { getValuesOptions, Values } from './values'; +import { + getPopupOptions, + getValuesOptions, + RunValuesPopup, + Values, + getFlowRunValues +} from './values'; +import { + AttributeValueProvider, + FlowValueProvider, + LinkValueProvider, + SubflowValueProvider +} from './attribute'; const container = document.getElementById('container') as HTMLDivElement; @@ -53,6 +66,7 @@ class DialogProvider implements flowbee.DialogProvider { let oldFlow: flowbee.Disposable; let requests: (flowbee.Descriptor & { request: Request })[] = []; let valuesPopup: flowbee.ValuesPopup | undefined; +let runValsPopup: RunValuesPopup | undefined; interface Config { customDescriptors?: flowbee.Descriptor[]; @@ -79,6 +93,13 @@ export class Flow implements flowbee.Disposable { overrides: {} }; userOverrides = {}; + results?: PlyResults; + subflows: SubflowSpec[] = []; + private attributeValueProviders: AttributeValueProvider[] = [ + new FlowValueProvider({ getFlow: () => this.flowDiagram.flow }), + new LinkValueProvider(), + new SubflowValueProvider({ getSubflows: () => this.subflows }) + ]; /** * @param readonly file is readonly @@ -106,6 +127,7 @@ export class Flow implements flowbee.Disposable { Flow.configurator.onFlowElementUpdate((e) => { if ( e.action === 'Select File' || + e.action === 'Select Flow' || e.action === 'Create File' || e.action === 'edit_request' ) { @@ -124,6 +146,8 @@ export class Flow implements flowbee.Disposable { vscode.postMessage({ type: 'new', element: 'file', target: id }); } else if (e.action === 'Select File') { vscode.postMessage({ type: 'select', element: 'file', target: id }); + } else if (e.action === 'Select Flow') { + vscode.postMessage({ type: 'select', element: 'flow', target: id }); } else if (e.action === 'edit_request') { const overrides = readState(false)?.userOverrides || {}; vscode.postMessage({ @@ -133,8 +157,10 @@ export class Flow implements flowbee.Disposable { options: { overrides } }); } - } else if (typeof e.action === 'string' && e.action.endsWith('.ts')) { - vscode.postMessage({ type: 'edit', element: 'file', path: e.action }); + } else if (typeof e.action === 'string' && e.element.type === 'step') { + if (e.action.endsWith('.ts') || e.element.path?.endsWith('subflow')) { + vscode.postMessage({ type: 'edit', element: 'file', path: e.action }); + } } else if (typeof e.action === 'object') { if (e.element.type === 'link') { const disp = flowbee.LinkLayout.fromAttr(e.element.attributes?.display); @@ -144,7 +170,7 @@ export class Flow implements flowbee.Disposable { const to = this.flowDiagram.flow.steps?.find( (s) => s.id === (e.element as any).to ); - // TODO from/to in subflow + // TODO from/to in embedded if (from?.attributes?.display && to?.attributes?.display) { const linkLayout = new flowbee.LinkLayout( disp, @@ -152,12 +178,11 @@ export class Flow implements flowbee.Disposable { flowbee.parseDisplay(to)! ); let points: number | undefined; - const action: any = e.action; - if (action.name === 'shape' && typeof action.value === 'string') { - disp.type = action.value; + if (e.action.name === 'shape' && typeof e.action.value === 'string') { + disp.type = e.action.value; } - if (action.name === 'points' && typeof action.value === 'string') { - const pts = parseInt(action.value); + if (e.action.name === 'points' && typeof e.action.value === 'string') { + const pts = parseInt(e.action.value); if (!isNaN(pts)) points = pts; } linkLayout.calcLink(points); @@ -166,8 +191,25 @@ export class Flow implements flowbee.Disposable { this.updateFlow(); this.flowDiagram.render(this.options.diagramOptions); } + } else if (e.element.type === 'step') { + if (e.action.name === 'subflowInstance' && e.element.attributes?.subflow) { + vscode.postMessage({ + type: 'edit', + element: 'flowInstance', + path: e.element.attributes.subflow + }); + } } } else { + if (e.element.attributes) { + const attrs = Object.keys(e.element.attributes); + for (const attr of attrs) { + const unstagedVal = this.getUnstagedAttributeValue(e.element, attr); + if (unstagedVal) { + e.element.attributes[attr] = unstagedVal; + } + } + } this.updateFlow(); } }) @@ -374,8 +416,12 @@ export class Flow implements flowbee.Disposable { if (e.action === 'submit') { this.onFlowAction({ action: 'run', options: { submit: true } }); } else { - if (e.action === 'edit' && e.element === 'request') { - e.options = { overrides: readState(false)?.userOverrides || {} }; + if (e.action === 'edit') { + if (e.element === 'request') { + e.options = { overrides: readState(false)?.userOverrides || {} }; + } else if (e.element === 'subflow') { + e.element = this.flowDiagram.instance ? 'flowInstance' : 'file'; + } } this.onFlowAction(e); } @@ -425,7 +471,7 @@ export class Flow implements flowbee.Disposable { return { path: flowElement.path }; } else if (flowElement.path === 'typescript' && flowElement.attributes?.tsFile) { return { path: flowElement.attributes.tsFile }; - } else if (flowElement.path === 'request') { + } else if (flowElement.path?.endsWith('request')) { let path = this.file; let lastSep = path.lastIndexOf('/'); if (lastSep === -1) lastSep = path.lastIndexOf('\\'); @@ -474,14 +520,17 @@ export class Flow implements flowbee.Disposable { } } - updateStep(stepId: string, reqObjOrTsFile: object | string) { + updateStep(stepId: string, reqObjOrStepAttr: object | [string, string]) { const step = this.findStep(stepId); if (step) { if (!step.attributes) step.attributes = {}; - if (typeof reqObjOrTsFile === 'object') { - const reqName = Object.keys(reqObjOrTsFile)[0]; + if (Array.isArray(reqObjOrStepAttr)) { + step.attributes[reqObjOrStepAttr[0]] = reqObjOrStepAttr[1]; + this.updateFlow(true); + } else { + const reqName = Object.keys(reqObjOrStepAttr)[0]; step.name = reqName.replace(/_/g, EOL); - const req = (reqObjOrTsFile as any)[reqName]; + const req = (reqObjOrStepAttr as any)[reqName]; step.attributes.url = req.url; step.attributes.method = req.method; if (req.headers) { @@ -493,9 +542,6 @@ export class Flow implements flowbee.Disposable { } if (req.body) step.attributes.body = req.body; this.updateFlow(false); - } else { - step.attributes.tsFile = reqObjOrTsFile; - this.updateFlow(true); } } } @@ -514,30 +560,41 @@ export class Flow implements flowbee.Disposable { ); for (const tab of Object.keys(template)) { for (const widget of (template as flowbee.ConfigTemplate)[tab].widgets) { - // dynamic default value - if (typeof widget.default === 'object') { - const defaultObj = widget.default; - widget.default = (element) => { - const expr = Object.keys(defaultObj)[0]; - return this.getDynamicDefault(expr, element, defaultObj[expr]); - }; - } - // dynamic options values - if (typeof widget.options === 'string') { - const optsAttrName = widget.options; - widget.options = () => { - return this.getDynamicOptions(optsAttrName); - }; + // dynamic defaults + const dynamicDefault = this.getDynamicAttributeDefault(flowElement, widget); + if (dynamicDefault) widget.default = dynamicDefault; + + // dynamic options + const dynamicOptions = this.getDynamicAttributeOptions(flowElement, widget); + if (dynamicOptions) widget.options = dynamicOptions; + + const stagedVal = this.getStagedAttributeValue(flowElement, widget); + if (stagedVal) { + if (!flowElement.attributes) flowElement.attributes = {}; + flowElement.attributes[widget.attribute!] = stagedVal; } } } if (instances && instances.length > 0) { - const instance = instances[instances.length - 1] as any; + const instance = instances[instances.length - 1] as flowbee.StepInstance & { + request?: any; + response?: any; + }; if (instance.data) { if (instance.data.request) { instance.request = instance.data.request; + if (typeof instance.request === 'object') { + instance.request = jsYaml.dump(instance.request, { + indent: this.options.indent + }); + } if (instance.data.response) { instance.response = instance.data.response; + if (typeof instance.response === 'object') { + instance.response = jsYaml.dump(instance.response, { + indent: this.options.indent + }); + } } } else if (typeof instance.data === 'object') { instance.data = JSON.stringify(instance.data, null, this.options.indent); @@ -611,49 +668,60 @@ export class Flow implements flowbee.Disposable { } } - /** - * Get options list from flow table attributes - * TODO other possibilities besides flow attributes - * (especially attribute from another tab on same step) - * other types besides tables? - */ - getDynamicOptions(optsAttrName: string): string[] { - const attributes = this.flowDiagram.flow.attributes; - if (attributes) { - const attrVal = attributes[optsAttrName]; - if (attrVal) { - if (attrVal.startsWith('[[') && attrVal.endsWith(']]')) { - return JSON.parse(attrVal).map((row: string[]) => row[0]); + getDynamicAttributeDefault( + flowElement: flowbee.FlowElement, + widget: flowbee.Widget + ): ((element: flowbee.FlowElement) => string) | undefined { + if (typeof widget.default === 'object') { + const defaultObj = widget.default; + const expr = '${' + Object.keys(defaultObj)[0] + '}'; + for (const avp of this.attributeValueProviders) { + const defaultFn = avp.getDynamicDefault?.(flowElement, expr); + if (defaultFn) return defaultFn; + } + return (element) => { + if (element.attributes) { + return resolve(expr, element.attributes, false, console); } + return defaultObj[expr]; + }; + } + } + + getDynamicAttributeOptions( + flowElement: flowbee.FlowElement, + widget: flowbee.Widget + ): ((attribute?: string) => string[]) | undefined { + if (typeof widget.options === 'string') { + for (const avp of this.attributeValueProviders) { + const optsFn = avp.getDynamicOptions?.(flowElement); + if (optsFn) return optsFn; } } - return []; } - /** - * Get dynamically-determined default attribute value. - * Used for link waypoint configuration - */ - getDynamicDefault( - expr: string, - element: { attributes?: { [key: string]: string } }, - fallback: string - ): string { - if (element.attributes) { - if (expr.startsWith('display.') && element.attributes.display) { - return resolve( - expr, - { - ...element.attributes, - display: flowbee.LinkLayout.fromAttr(element.attributes.display) - }, - false, - console - ); + getStagedAttributeValue( + flowElement: flowbee.FlowElement, + widget: flowbee.Widget + ): string | undefined { + if (flowElement.attributes && widget.attribute) { + for (const avp of this.attributeValueProviders) { + const stagedVal = avp.stageAttribute?.(flowElement, widget.attribute); + if (stagedVal) return stagedVal; + } + } + } + + getUnstagedAttributeValue( + flowElement: flowbee.FlowElement, + attribute?: string + ): string | undefined { + if (flowElement.attributes && attribute) { + for (const avp of this.attributeValueProviders) { + const unstagedVal = avp.unstageAttribute?.(flowElement, attribute); + if (unstagedVal) return unstagedVal; } - return resolve(expr, element.attributes, false, console); } - return fallback; } onOptionToggle(e: OptionToggleEvent) { @@ -746,38 +814,53 @@ export class Flow implements flowbee.Disposable { } openValuesPopup() { - if (!valuesPopup) { - const container = document.getElementById('flow-container') as HTMLDivElement; - valuesPopup = new flowbee.ValuesPopup(container, this.options.iconBase); - valuesPopup.onValuesAction((actionEvent) => this.onValuesAction(actionEvent)); - valuesPopup.onOpenValues((openValuesEvent) => { - vscode.postMessage({ - type: 'edit', - element: 'file', - path: openValuesEvent.path + this.closeConfigurator(); + if (this.flowDiagram.mode === 'runtime') { + const runValues = getFlowRunValues(this.flowDiagram.flow, this.results); + if (!runValsPopup) { + const container = document.getElementById('flow-container') as HTMLDivElement; + runValsPopup = new RunValuesPopup(container, this.options.iconBase); + } + runValsPopup.iconBase = this.options.iconBase; + runValsPopup.render({ + options: { ...getPopupOptions(), title: 'Flow Run Values', indent: 2 }, + runValues + }); + } else { + if (!valuesPopup) { + const container = document.getElementById('flow-container') as HTMLDivElement; + valuesPopup = new flowbee.ValuesPopup(container, this.options.iconBase); + valuesPopup.onPopupAction((actionEvent) => this.onValuesAction(actionEvent)); + valuesPopup.onOpenValues((openValuesEvent) => { + vscode.postMessage({ + type: 'edit', + element: 'file', + path: openValuesEvent.path + }); }); + } + valuesPopup.iconBase = this.options.iconBase; + valuesPopup.render({ values: this.getUserValues(), options: getValuesOptions() }); + valuesPopup.setDecorator((text: string) => { + if (text && isExpression(text)) { + const required = this.getRequiredValueNames() + .map((v) => toExpression(v)) + .includes(text); + const userVals = this.getUserValues(); + const override = userVals.overrides ? userVals.overrides[text] : ''; + const value = + override || userVals.values.find((v) => v.expression === text)?.value; + const exprClass = value ? 'expression' : 'unresolved'; + return [ + { + range: { line: 0, start: 0, end: text.length - 1 }, + className: required ? `${exprClass} required` : exprClass + } + ]; + } + return []; }); } - this.closeConfigurator(); - valuesPopup.render(this.getUserValues(), getValuesOptions()); - valuesPopup.setDecorator((text: string) => { - if (text && isExpression(text)) { - const required = this.getRequiredValueNames() - .map((v) => toExpression(v)) - .includes(text); - const userVals = this.getUserValues(); - const override = userVals.overrides ? userVals.overrides[text] : ''; - const value = override || userVals.values.find((v) => v.expression === text)?.value; - const exprClass = value ? 'expression' : 'unresolved'; - return [ - { - range: { line: 0, start: 0, end: text.length - 1 }, - className: required ? `${exprClass} required` : exprClass - } - ]; - } - return []; - }); } /** @@ -920,9 +1003,10 @@ window.addEventListener('message', async (event) => { const hasInstance = !!flow.flowDiagram.instance; flow.flowActions?.setRunning(hasInstance && message.event === 'start'); if (hasInstance) { + flow.results = message.results; flow.flowDiagram.readonly = true; flow.switchMode('runtime'); - updateState({ mode: 'runtime' }); + updateState({ mode: 'runtime', results: flow.results }); } else { flow.switchMode(flow.flowDiagram.mode); } @@ -934,10 +1018,23 @@ window.addEventListener('message', async (event) => { flow.updateRequests(message.requests); } updateState({ requests: message.requests }); + } else if (message.type === 'subflows') { + const flow = readState(false); + if (flow) { + flow.subflows = message.subflows; + } + updateState({ subflows: message.subflows }); } else if (message.type === 'step') { const flow = readState(false); if (flow) { - flow.updateStep(message.stepId, message.reqObj || message.file); + if (message.reqObj) { + flow.updateStep(message.stepId, message.reqObj); + } else { + flow.updateStep(message.stepId, [ + message.flow ? 'subflow' : 'tsFile', + message.flow || message.file + ]); + } } } else if (message.type === 'values') { const values = { @@ -963,7 +1060,7 @@ window.addEventListener('message', async (event) => { } } else if (message.type === 'theme-change') { const flow = readState(); - if (flow && valuesPopup?.isOpen) { + if (flow && (valuesPopup?.isOpen || runValsPopup?.isOpen)) { flow.openValuesPopup(); } } else if (message.type === 'confirm') { @@ -989,7 +1086,9 @@ interface FlowState { values?: Values; userOverrides?: { [expr: string]: string }; storeVals?: any; + results?: PlyResults; requests?: flowbee.Descriptor[]; + subflows?: SubflowSpec[]; } function updateState(delta: FlowState) { @@ -1011,6 +1110,8 @@ function readState(loadInstance = true): Flow | undefined { flow.switchMode(mode); flow.flowActions?.enableCompare(!!flow.flowDiagram.instance); requests = state.requests || []; + flow.results = state.results; + flow.subflows = state.subflows || []; flow.render(); if (state.selected) { if (state.selected.id) { diff --git a/media/src/flow/menu.ts b/media/src/flow/menu.ts index 446535f..9c1ce11 100644 --- a/media/src/flow/menu.ts +++ b/media/src/flow/menu.ts @@ -33,12 +33,14 @@ export class MenuProvider extends flowbee.DefaultMenuProvider { } let designItems: flowbee.MenuItem[] | undefined; if (type !== 'link' && this.flowDiagram.mode !== 'connect') { - const isReq = step?.path === 'request'; + const isReq = step?.path.endsWith('request'); + const isSub = step?.path.endsWith('subflow'); const isCode = step?.path === 'typescript' || step?.path.endsWith('.ts'); const canRun = type === 'flow' || isReq; designItems = [ { id: 'expected', label: 'Expected Results', icon: 'expected.svg' }, ...(isReq ? [{ id: 'request', label: 'Open Request', icon: 'open-file.svg' }] : []), + ...(isSub ? [{ id: 'subflow', label: 'Open Subflow', icon: 'open-file.svg' }] : []), ...(isCode ? [{ id: 'source', label: 'Open Source', icon: 'open-file.svg' }] : []), ...(canRun ? [{ id: 'submit', label: 'Submit', icon: 'submit.svg' }] : []), ...(canRun ? [{ id: 'run', label: 'Run', icon: 'run.svg' }] : []) @@ -91,13 +93,13 @@ export class MenuProvider extends flowbee.DefaultMenuProvider { this.updateConfigurator(selectEvent.element, instances, true); return true; } else if (selectEvent.item.id === 'run' || selectEvent.item.id === 'submit') { - // TODO target in subflow + // TODO target in embedded const target = selectEvent.element.type === 'flow' ? null : selectEvent.element.id; const options = selectEvent.item.id === 'submit' ? { submit: true } : null; this._onFlowAction.emit({ action: 'run', target, options }); return true; } else if (selectEvent.item.id === 'expected' || selectEvent.item.id === 'compare') { - // TODO target in subflow + // TODO target in embedded const target = selectEvent.element.type === 'flow' ? null : selectEvent.element.id; this._onFlowAction.emit({ action: selectEvent.item.id, target }); return true; @@ -105,6 +107,13 @@ export class MenuProvider extends flowbee.DefaultMenuProvider { const target = selectEvent.element.id; this._onFlowAction.emit({ action: 'edit', element: 'request', target }); return true; + } else if (selectEvent.item.id === 'subflow') { + this._onFlowAction.emit({ + action: 'edit', + element: 'subflow', + target: selectEvent.element.attributes?.subflow + }); + return true; } else if (selectEvent.item.id === 'source') { let path = selectEvent.element.path; if (!path?.endsWith('.ts')) { diff --git a/media/src/flow/request.ts b/media/src/flow/request.ts deleted file mode 100644 index 138f92b..0000000 --- a/media/src/flow/request.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface Request { - name: string; - url: string; - method: string; - headers: { [key: string]: string }; - body?: string; -} diff --git a/media/src/flow/values.ts b/media/src/flow/values.ts index 2659d6d..52c72ae 100644 --- a/media/src/flow/values.ts +++ b/media/src/flow/values.ts @@ -1,5 +1,6 @@ -import { EvalOptions, ValuesHolder } from '@ply-ct/ply-values'; -import { ValuesOptions } from 'flowbee/dist/nostyles'; +import { PlyResults } from '@ply-ct/ply-api'; +import { EvalOptions, ValuesHolder, Values as PlyValues } from '@ply-ct/ply-values'; +import { Flow, Popup, PopupOptions, ValuesOptions } from 'flowbee/dist/nostyles'; export interface Values { valuesHolders: ValuesHolder[]; @@ -7,15 +8,28 @@ export interface Values { overrides: { [expr: string]: string }; } -export const getValuesOptions = (): ValuesOptions => { +export const getPopupOptions = (): PopupOptions => { return { - title: 'Flow Values', + title: '', theme: document.body.className.endsWith('vscode-dark') ? 'dark' : 'light', help: { link: 'https://ply-ct.org/ply/topics/values', title: 'Values help', icon: 'help.svg' }, + margins: { + top: 75, + right: 50, + bottom: 75, + left: 50 + } + }; +}; + +export const getValuesOptions = (): ValuesOptions => { + return { + ...getPopupOptions(), + title: 'Flow Values', actions: [ { name: 'save', @@ -26,12 +40,66 @@ export const getValuesOptions = (): ValuesOptions => { label: 'Clear Overrides' } ], - margins: { - top: 75, - right: 50, - bottom: 75, - left: 50 - }, abbreviateLocations: true }; }; + +export const getFlowRunValues = (flow: Flow, plyResults?: PlyResults): [PlyValues?, PlyValues?] => { + const lastRun = plyResults?.runs[0]; + if (lastRun) { + const startStep = flow.steps?.find((s) => s.path === 'start'); + if (!startStep) { + throw new Error(`No start step in: ${flow.path}`); + } + const startRun = lastRun.testRuns.find((tr) => tr.test === startStep.id); + const stopStepIds = (flow.steps || []).filter((s) => s.path === 'stop').map((ss) => ss.id); + const stopRun = lastRun.testRuns.find((tr) => stopStepIds.includes(tr.test)); + return [startRun?.values, stopRun?.values]; + } + return []; +}; + +export class RunValuesPopup extends Popup { + private runValues?: [PlyValues?, PlyValues?]; + private indent = 2; + + constructor(container?: HTMLElement, public iconBase?: string) { + super(container, iconBase); + } + + render(spec: { + options: PopupOptions & { indent: number }; + runValues: [PlyValues?, PlyValues?]; + }) { + this.runValues = spec.runValues; + this.indent = spec.options.indent; + super.render(spec); + } + + protected renderContent() { + const split = document.createElement('div') as HTMLDivElement; + split.className = 'split'; + + const left = document.createElement('div') as HTMLDivElement; + left.className = 'pane pane-left'; + const before = document.createElement('pre') as HTMLPreElement; + if (this.runValues && this.runValues[0]) { + before.innerText = JSON.stringify(this.runValues[0], null, this.indent); + } + before.className = 'values'; + left.appendChild(before); + split.appendChild(left); + + const right = document.createElement('div') as HTMLDivElement; + right.className = 'pane pane-right'; + const after = document.createElement('pre') as HTMLPreElement; + if (this.runValues && this.runValues[1]) { + after.innerText = JSON.stringify(this.runValues[1], null, this.indent); + } + after.className = 'values'; + right.appendChild(after); + split.appendChild(right); + + this.content.appendChild(split); + } +} diff --git a/media/src/viz/main.ts b/media/src/viz/main.ts index 5442209..97bc2fc 100644 --- a/media/src/viz/main.ts +++ b/media/src/viz/main.ts @@ -27,7 +27,7 @@ select.onchange = () => { window.addEventListener('message', async (event) => { const message = event.data; // json message data from extension - console.debug(`message: ${JSON.stringify(message, null, 2)}`); + // console.debug(`message: ${JSON.stringify(message, null, 2)}`); if (message.type === 'update') { const file = message.file; const testRunData = new TestRunData(message.runs, { intervals: 10 }); diff --git a/media/templates/config/embedded.yaml b/media/templates/config/embedded.yaml new file mode 100644 index 0000000..95a8c62 --- /dev/null +++ b/media/templates/config/embedded.yaml @@ -0,0 +1,14 @@ +Subflow: + widgets: + - type: radio + attribute: when + label: When + options: + - Before + - After + default: Before + - type: text + attribute: steps + label: Steps + - type: note + label: 'Glob pattern: "" = before all, "*" = before each' diff --git a/media/templates/config/flow.yaml b/media/templates/config/flow.yaml index 232cb9f..83e66a9 100644 --- a/media/templates/config/flow.yaml +++ b/media/templates/config/flow.yaml @@ -4,7 +4,7 @@ Options: attribute: bail label: Bail on first failure -Values: +Input Values: widgets: - type: table attribute: values @@ -17,3 +17,13 @@ Values: label: Required - type: text label: Required If + +Return Values: + widgets: + - type: table + attribute: return + widgets: + - type: text + label: Name + - type: text + label: Expression diff --git a/media/templates/config/subflow.yaml b/media/templates/config/subflow.yaml old mode 100644 new mode 100755 index 95a8c62..dc2858a --- a/media/templates/config/subflow.yaml +++ b/media/templates/config/subflow.yaml @@ -1,14 +1,30 @@ Subflow: widgets: - - type: radio - attribute: when - label: When - options: - - Before - - After - default: Before - - type: text - attribute: steps - label: Steps - - type: note - label: 'Glob pattern: "" = before all, "*" = before each' + - type: file + label: Subflow + attribute: subflow + action: Select Flow + +In Values: + widgets: + - type: table + multi: false + attribute: inValues + widgets: + - type: text + label: Subflow Value + readonly: true + - type: text + label: Expression or Static Text + +Out Values: + widgets: + - type: table + multi: false + attribute: outValues + widgets: + - type: text + label: Return Value + readonly: true + - type: text + label: Flow Value Name diff --git a/media/templates/config/value.yaml b/media/templates/config/value.yaml new file mode 100644 index 0000000..b9705c8 --- /dev/null +++ b/media/templates/config/value.yaml @@ -0,0 +1,8 @@ +Value: + widgets: + - type: text + attribute: name + label: Name + - type: text + attribute: expression + label: Expression diff --git a/media/templates/inspect/embedded.yaml b/media/templates/inspect/embedded.yaml new file mode 100644 index 0000000..8d25be7 --- /dev/null +++ b/media/templates/inspect/embedded.yaml @@ -0,0 +1,11 @@ +Subflow: + widgets: + - type: text + instanceProp: status + label: Status + - type: datetime + instanceProp: start + label: Start + - type: datetime + instanceProp: end + label: End diff --git a/media/templates/inspect/flow.yaml b/media/templates/inspect/flow.yaml index e75104a..fc6c6e7 100644 --- a/media/templates/inspect/flow.yaml +++ b/media/templates/inspect/flow.yaml @@ -3,3 +3,9 @@ Flow: - type: text instanceProp: status label: Status + - type: datetime + instanceProp: start + label: Start + - type: datetime + instanceProp: end + label: End diff --git a/media/templates/inspect/subflow.yaml b/media/templates/inspect/subflow.yaml old mode 100644 new mode 100755 index 8d25be7..7d11da1 --- a/media/templates/inspect/subflow.yaml +++ b/media/templates/inspect/subflow.yaml @@ -1,4 +1,4 @@ -Subflow: +Step: widgets: - type: text instanceProp: status @@ -9,3 +9,20 @@ Subflow: - type: datetime instanceProp: end label: End + +Subflow: + widgets: + - type: table + instanceProp: data + widgets: + - type: link + label: Subflow + action: subflowInstance + - type: text + label: Status + - type: datetime + label: Start + - type: datetime + label: End + - type: text + label: Message diff --git a/package-lock.json b/package-lock.json index 9214759..b9dfa3b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,24 +1,24 @@ { "name": "vscode-ply", - "version": "3.0.0", + "version": "3.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "vscode-ply", - "version": "3.0.0", + "version": "3.1.0", "hasInstallScript": true, "license": "MIT", "dependencies": { "@kurkle/color": "^0.3.2", - "@ply-ct/ply": "^3.2.14", - "@ply-ct/ply-api": "1.3.10", + "@ply-ct/ply": "^3.2.18", + "@ply-ct/ply-api": "1.3.14", "@ply-ct/ply-values": "^0.3.7", "chart.js": "^4.2.1", "chartjs-adapter-date-fns": "^3.0.0", "date-fns": "^2.29.3", "escape-string-regexp": "^4.0.0", - "flowbee": "^1.1.10", + "flowbee": "^1.1.14", "js-yaml": "^4.1.0", "mime-types": "^2.1.35", "minimatch": "^7.0.1", @@ -272,9 +272,9 @@ } }, "node_modules/@ply-ct/ply": { - "version": "3.2.14", - "resolved": "https://registry.npmjs.org/@ply-ct/ply/-/ply-3.2.14.tgz", - "integrity": "sha512-tPw7GP+3ADCwLJbl8STvvEtFrsFN9oopCs54Nd1ggMGIBh2h/nwXEK8i5f3+7oD44WZzt+pZpHoJV7ueZ/Z9fQ==", + "version": "3.2.18", + "resolved": "https://registry.npmjs.org/@ply-ct/ply/-/ply-3.2.18.tgz", + "integrity": "sha512-KLgn/6YFywTYikciSANR1imOm5sGCkqir9cQR1s00tPp2l/6KarUOCOjRhAi3jBPxm0ExVZ7kc0UD2Fo25BLcw==", "dependencies": { "@ply-ct/ply-values": "^0.3.7", "cross-fetch": "^3.1.5", @@ -309,9 +309,9 @@ } }, "node_modules/@ply-ct/ply-api": { - "version": "1.3.10", - "resolved": "https://registry.npmjs.org/@ply-ct/ply-api/-/ply-api-1.3.10.tgz", - "integrity": "sha512-a3c6mAAL5IK/jtvn+E9/IN48nzJLwgZ0hrMoAQJJMYRsNh0axqTckR1FuQyfSdjz24bOo+yQkJRqy4+W3dNr6Q==", + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/@ply-ct/ply-api/-/ply-api-1.3.14.tgz", + "integrity": "sha512-5FenjUbDnxOmLjc014G7NWQ2bg+uS+zr8LcH6jd6zDX9aoxqd8y2fT4U4BtvkgbzcA6sclcTaOc93GeHVPRyWw==", "dependencies": { "@ply-ct/ply-values": "^0.3.7", "cross-fetch": "^3.1.5", @@ -1880,9 +1880,9 @@ "dev": true }, "node_modules/flowbee": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/flowbee/-/flowbee-1.1.10.tgz", - "integrity": "sha512-z+QZxChiPuro/uXLo0PlG8v24XSWkIvJA48ZlAjdKlGZQNLseYL24/2RoY0woGJaI6C5o7x+i7jvecbtT4Dvjg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/flowbee/-/flowbee-1.1.14.tgz", + "integrity": "sha512-MioVdopwi45Edk8xLy0rq0LHr2IOgkJOGVoQP0Tuqu74lqzdJJaU7Md2ZwUpFv7MuAXfHDQL/K/Yz8uVr80H5g==", "dependencies": { "js-yaml": "^4.1.0", "merge-anything": "^5.1.7", @@ -1975,9 +1975,9 @@ } }, "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, "engines": { "node": "*" diff --git a/package.json b/package.json index e1c501a..5bb471c 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "Ply", "description": "Automated Testing for REST and GraphQL APIs", "icon": "icons/ply.png", - "version": "3.0.0", + "version": "3.1.0", "license": "MIT", "author": { "name": "Donald Oakes", @@ -62,14 +62,14 @@ }, "dependencies": { "@kurkle/color": "^0.3.2", - "@ply-ct/ply": "^3.2.14", - "@ply-ct/ply-api": "1.3.10", + "@ply-ct/ply": "^3.2.18", + "@ply-ct/ply-api": "1.3.14", "@ply-ct/ply-values": "^0.3.7", "chart.js": "^4.2.1", "chartjs-adapter-date-fns": "^3.0.0", "date-fns": "^2.29.3", "escape-string-regexp": "^4.0.0", - "flowbee": "^1.1.10", + "flowbee": "^1.1.14", "js-yaml": "^4.1.0", "mime-types": "^2.1.35", "minimatch": "^7.0.1", diff --git a/src/adapter-helper.ts b/src/adapter-helper.ts index 37c63f4..0e0f7dc 100644 --- a/src/adapter-helper.ts +++ b/src/adapter-helper.ts @@ -46,6 +46,11 @@ export class AdapterHelper { } } + sameWorkspaceFolder(docUri: vscode.Uri, uri: vscode.Uri): boolean { + const workspaceFolder = vscode.workspace.getWorkspaceFolder(uri); + return workspaceFolder?.uri?.toString() === this.getWorkspaceFolder(docUri).uri.toString(); + } + async run( uri: vscode.Uri, target?: string, diff --git a/src/edit/flow.ts b/src/edit/flow.ts index e97bfe6..14735b0 100755 --- a/src/edit/flow.ts +++ b/src/edit/flow.ts @@ -2,8 +2,19 @@ import * as path from 'path'; import { Fs } from '../fs'; import * as vscode from 'vscode'; import { WebSocketServer } from 'ws'; -import { Disposable, Listener, TypedEvent, FlowEvent, FlowInstance } from '@ply-ct/ply-api'; -import { RunOptions, loadYaml } from '@ply-ct/ply'; +import { + Disposable, + Listener, + TypedEvent, + FlowEvent, + FlowInstance, + SubflowSpec, + Flow, + getSubflowSpec, + getSubflowSteps, + Step +} from '@ply-ct/ply-api'; +import { RunOptions, loadYaml, PlyResults } from '@ply-ct/ply'; import { Setting } from '../config'; import { WebSocketSender } from '../websocket'; import { AdapterHelper } from '../adapter-helper'; @@ -154,6 +165,8 @@ export class FlowEditor implements vscode.CustomTextEditorProvider { await updateWebview(); const requests = await this.adapterHelper.getRequestDescriptors(document.uri); webviewPanel.webview.postMessage({ type: 'requests', requests }); + const subflows = await this.getSubflows(document); + webviewPanel.webview.postMessage({ type: 'subflows', subflows }); if (this.onceWebviewReady) { this.onceWebviewReady(document.uri); delete this.onceWebviewReady; @@ -214,12 +227,15 @@ export class FlowEditor implements vscode.CustomTextEditorProvider { } else if (message.type === 'stop') { this.adapterHelper.getAdapter(document.uri)?.cancel(); let instance; + let results; try { instance = this.getInstance(document.uri); + results = await this.adapterHelper.getPlyResults(document.uri); } finally { webviewPanel.webview.postMessage({ type: 'instance', instance, + ...(results && { results }), event: 'stop' }); } @@ -299,25 +315,47 @@ export class FlowEditor implements vscode.CustomTextEditorProvider { vscode.commands.executeCommand('ply.new.request'); } } else if (message.type === 'select') { - if (message.element === 'file') { - // TODO conditional + if (message.element === 'file' || message.element === 'flow') { const dlgOptions: vscode.OpenDialogOptions = { openLabel: 'Select', canSelectMany: false, - title: 'Select TypeScript File' + title: + message.element === 'flow' + ? 'Select Ply Flow' + : 'Select TypeScript File' }; - dlgOptions.filters = { 'TypeScript Source File': ['ts'] }; - + if (message.element === 'flow') { + dlgOptions.filters = { 'Ply Flow': ['ply.flow'] }; + } else { + dlgOptions.filters = { 'TypeScript Source File': ['ts'] }; + } const selUris = await vscode.window.showOpenDialog(dlgOptions); if (selUris?.length === 1) { const wsFolder = vscode.workspace.getWorkspaceFolder(document.uri); const filepath = files.pathInWorkspaceFolder(wsFolder!, selUris[0]); if (filepath) { - webviewPanel.webview.postMessage({ + const msg: any = { type: 'step', - stepId: message.target, - file: filepath - }); + stepId: message.target + }; + if (message.element === 'flow') { + msg.flow = filepath; + } else { + msg.file = filepath; + } + await webviewPanel.webview.postMessage(msg); + let subflows = await this.getSubflows(document); + if (!subflows.find((sf) => sf.subflow === filepath)) { + const subflowSpec = await this.readSubflowSpec(document.uri, { + id: message.target, + attributes: { subflow: filepath } + } as unknown as Step); + if (subflowSpec) subflows = [...subflows, subflowSpec]; + webviewPanel.webview.postMessage({ + type: 'subflows', + subflows + }); + } } } } @@ -336,7 +374,7 @@ export class FlowEditor implements vscode.CustomTextEditorProvider { webviewPanel.webview.postMessage({ type: 'action', action: 'configurator', - options: { state: 'open', mode: 'select', tab: 'Values' } + options: { state: 'open', mode: 'select', tab: 'Input Values' } }); } else { await vscode.commands.executeCommand('vscode.open', fileUri); @@ -356,6 +394,18 @@ export class FlowEditor implements vscode.CustomTextEditorProvider { this.setOverrideValues(uri, message.options.overrides); } vscode.commands.executeCommand('ply.open-request', { uri }); + } else if ( + message.element === 'flowInstance' && + (message.path || message.target) + ) { + const wsFolder = vscode.workspace.getWorkspaceFolder(document.uri); + const uri = wsFolder?.uri.with({ + path: `${wsFolder.uri.path}/${message.path || message.target}`, + query: 'instance' + }); + if (uri) { + await vscode.commands.executeCommand('ply.open-flow', { uri }); + } } } else if (message.type === 'expected') { this.adapterHelper.expectedResult(document.uri, 'flow', message.target); @@ -363,10 +413,17 @@ export class FlowEditor implements vscode.CustomTextEditorProvider { this.adapterHelper.compareResults(document.uri, message.target); } else if (message.type === 'instance') { const instance = this.getInstance(document.uri); - webviewPanel.webview.postMessage({ type: 'instance', instance }); + let results: PlyResults | undefined; if (!instance) { this.promptToRunForInstance(document.uri); + } else { + results = await this.adapterHelper.getPlyResults(document.uri); } + webviewPanel.webview.postMessage({ + type: 'instance', + instance, + ...(results && { results }) + }); } else if (message.type === 'configurator') { await vscode.commands.executeCommand('workbench.action.closePanel'); } else if (message.type === 'save-values') { @@ -400,6 +457,21 @@ export class FlowEditor implements vscode.CustomTextEditorProvider { }) ); + disposables.push( + vscode.window.tabGroups.onDidChangeTabs(async (tabChange) => { + for (const tab of tabChange.changed) { + if ( + tab.isActive && + (tab.input as vscode.TabInputCustom)?.uri?.toString() === + document.uri.toString() + ) { + const subflows = await this.getSubflows(document); + webviewPanel.webview.postMessage({ type: 'subflows', subflows }); + } + } + }) + ); + disposables.push( vscode.workspace.onDidChangeConfiguration((configChange) => { if (configChange.affectsConfiguration('workbench.colorTheme')) { @@ -444,14 +516,18 @@ export class FlowEditor implements vscode.CustomTextEditorProvider { flowEvent.eventType === 'finish' || flowEvent.eventType === 'error') ) { + let results: PlyResults | undefined; if (flowEvent.eventType === 'start') { flowInstanceId = null; + } else { + results = await this.adapterHelper.getPlyResults(document.uri); } // set the diagram instance so it'll start listening for websocket updates webviewPanel.webview.postMessage({ type: 'instance', instance: flowEvent.instance as FlowInstance, - event: flowEvent.eventType + event: flowEvent.eventType, + ...(results && { results }) }); } else { if (!flowInstanceId) { @@ -496,6 +572,8 @@ export class FlowEditor implements vscode.CustomTextEditorProvider { ? await this.adapterHelper.getRequestDescriptors(document.uri) : []; webviewPanel.webview.postMessage({ type: 'requests', requests }); + const subflows = loaded.success ? await this.getSubflows(document) : []; + webviewPanel.webview.postMessage({ type: 'subflows', subflows }); }) ); @@ -638,4 +716,38 @@ export class FlowEditor implements vscode.CustomTextEditorProvider { Object.keys(overrides).length ? overrides : undefined ); } + + private async getSubflows(document: vscode.TextDocument): Promise { + const before = Date.now(); + const flow = loadYaml(document.uri.fsPath, document.getText()) as Flow; + const specs: SubflowSpec[] = []; + if (flow) { + // check not needed after #14 + for (const subflowStep of getSubflowSteps(flow)) { + const spec = await this.readSubflowSpec(document.uri, subflowStep); + if (spec) specs.push(spec); + } + } + + console.debug(`Loaded subflows in: ${Date.now() - before} ms`); + return specs; + } + + private async readSubflowSpec( + docUri: vscode.Uri, + subflowStep: Step + ): Promise { + if (subflowStep.attributes?.subflow) { + const wsFolderUri = this.adapterHelper.getWorkspaceFolder(docUri).uri; + const subflowDoc = await vscode.workspace.openTextDocument( + wsFolderUri.with({ + path: `${wsFolderUri.path}/${subflowStep.attributes.subflow}` + }) + ); + if (subflowDoc) { + const subflow = loadYaml(subflowDoc.uri.fsPath, subflowDoc.getText()) as Flow; + return getSubflowSpec(subflowStep, subflow); + } + } + } } diff --git a/src/extension.ts b/src/extension.ts index 5681aa1..4376ff8 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -134,15 +134,18 @@ export async function activate(context: vscode.ExtensionContext) { ); context.subscriptions.push( vscode.commands.registerCommand('ply.open-flow', async (...args: any[]) => { - // hack for runner callback to avoid breaking something const callback = args.length > 1 && typeof args[1] === 'function' ? args[1] : null; const item = callback ? await PlyItem.getItem(args[0]) : await PlyItem.getItem(...args); if (item?.uri) { - const fileUri = vscode.Uri.file(item.uri.fsPath); + const fileUri = vscode.Uri.file(item.uri.fsPath).with({ query: '' }); if (item.uri.fragment) { flowEditor.onceWebviewReady = () => { _onFlowItemSelect.emit({ uri: item.uri }); }; + } else if (item.uri.query === 'instance') { + flowEditor.onceWebviewReady = () => { + _onFlowModeChange.emit({ mode: 'runtime' }); + }; } if (callback) { flowEditor.onceWebviewReady = async (uri) => { @@ -156,6 +159,8 @@ export async function activate(context: vscode.ExtensionContext) { }); if (item.uri.fragment) { _onFlowItemSelect.emit({ uri: item.uri }); + } else if (item.uri.query === 'instance') { + _onFlowModeChange.emit({ mode: 'runtime' }); } return fileUri; } diff --git a/web/css/style.scss b/web/css/style.css similarity index 93% rename from web/css/style.scss rename to web/css/style.css index 2c5b922..7ea8f27 100755 --- a/web/css/style.scss +++ b/web/css/style.css @@ -98,7 +98,7 @@ a:hover { overflow-x: clip; } .url-input { - inline-size: 1px; // allows cursor move to right when overflow + inline-size: 1px; /* allows cursor move to right when overflow */ } .action-btn { @@ -190,7 +190,7 @@ a:hover { margin-right: 15px; } .cancel-btn { - // color: var(--vscode-editor-foreground); + /* color: var(--vscode-editor-foreground); */ color: #ea4f69; background: var(--vscode-editor-background); border: 1px solid rgba(234, 79, 105, 0.5); @@ -245,13 +245,13 @@ a:hover { margin-top: -10px; } .flowbee-configurator-dark .flowbee-config-tab-content { - overflow: visible; // tooltips extend outside container + overflow: visible; /* tooltips extend outside container */ } .flowbee-configurator-light .flowbee-config-tab-content { - overflow: visible; // tooltips extend outside container + overflow: visible; /* tooltips extend outside container */ } .table-container .flowbee-config-tab-content table { - overflow-x: clip; // no grow beyond width + overflow-x: clip; /* no grow beyond width */ width: 100%; } .table-container .flowbee-config-tab-content th { @@ -265,8 +265,8 @@ a:hover { border-left: 1px solid #409eff; } -.flowbee-values-dark .flowbee-values-footer input[type='button'], -.flowbee-values-light .flowbee-values-footer input[type='button'] { +.flowbee-popup-dark .flowbee-popup-footer input[type='button'], +.flowbee-popup-light .flowbee-popup-footer input[type='button'] { color: var(--vscode-button-foreground); background: var(--vscode-button-background); border: none; @@ -291,7 +291,7 @@ a:hover { .auth-popper.el-popper[data-popper-placement^='bottom'] > .el-popper__arrow { top: -10px; } -// ignore clicks to avoid closing auth popup +/* ignore clicks to avoid closing auth popup */ .el-input__password svg { pointer-events: none; } @@ -319,7 +319,7 @@ a:hover { line-height: 26px; padding: 1px 8px; border-radius: 0; - // dark theme doesn't define settings.textInputBorder + /* dark theme doesn't define settings.textInputBorder */ border: 1px solid var(--vscode-settings-textInputBorder, #80808050); background-color: var(--vscode-settings-textInputBackground); box-shadow: none; diff --git a/web/package-lock.json b/web/package-lock.json index d98462b..edf1a6d 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -11,12 +11,12 @@ "@ply-ct/ply-values": "^0.3.7", "@vscode/codicons": "^0.0.32", "element-plus": "^2.3.5", - "flowbee": "^1.1.10", + "flowbee": "^1.1.14", "http-status-codes": "^2.2.0", "js-yaml": "^4.1.0", "monaco-editor": "^0.36.1", + "monaco-graphql": "^1.3.0", "monaco-yaml": "^3.2.1", - "vscode-uri": "^3.0.7", "vue": "^3.3.4" }, "devDependencies": { @@ -31,11 +31,9 @@ "eslint-plugin-prettier-vue": "^4.2.0", "eslint-plugin-vue": "^9.8.0", "mkdirp": "^2.1.3", - "node-sass": "^8.0.0", - "parcel": "^2.8.3", + "parcel": "^2.11.0", "process": "^0.11.10", "rollup": "^2.79.1", - "rollup-plugin-copy-watch": "^0.0.1", "rollup-plugin-esbuild": "^5.0.0", "rollup-plugin-postcss": "^4.0.2", "rollup-plugin-vue": "^6.0.0", @@ -636,12 +634,6 @@ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.1.tgz", "integrity": "sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==" }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", @@ -681,24 +673,24 @@ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@lezer/common": { - "version": "0.15.12", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.12.tgz", - "integrity": "sha512-edfwCxNLnzq5pBA/yaIhwJ3U3Kz8VAUOTRg0hhxaizaI1N+qxV7EXDv/kLCkLeq2RzSFvxexlaj5Mzfn2kY0Ig==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.0.tgz", + "integrity": "sha512-Wmvlm4q6tRpwiy20TnB3yyLTZim38Tkc50dPY8biQRwqE+ati/wD84rm3N15hikvdT4uSg9phs9ubjvcLmkpKg==", "dev": true }, "node_modules/@lezer/lr": { - "version": "0.15.8", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.8.tgz", - "integrity": "sha512-bM6oE6VQZ6hIFxDNKk8bKPa14hqFrV07J/vHGOeiAbJReIaQXmkVb6xQu4MR+JBTLa5arGRyAAjJe1qaQt3Uvg==", + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.3.14.tgz", + "integrity": "sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==", "dev": true, "dependencies": { - "@lezer/common": "^0.15.0" + "@lezer/common": "^1.0.0" } }, "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "2.7.11", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.7.11.tgz", - "integrity": "sha512-r6+vYq2vKzE+vgj/rNVRMwAevq0+ZR9IeMFIqcSga+wMtMdXQ27KqQ7uS99/yXASg29bos7yHP3yk4x6Iio0lw==", + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.8.5.tgz", + "integrity": "sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw==", "cpu": [ "arm64" ], @@ -709,9 +701,9 @@ ] }, "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "2.7.11", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.7.11.tgz", - "integrity": "sha512-jhj1aB4K8ycRL1HOQT5OtzlqOq70jxUQEWRN9Gqh3TIDN30dxXtiHi6EWF516tzw6v2+3QqhDMJh8O6DtTGG8Q==", + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.8.5.tgz", + "integrity": "sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug==", "cpu": [ "x64" ], @@ -722,9 +714,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm": { - "version": "2.7.11", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.7.11.tgz", - "integrity": "sha512-dHfLFVSrw/v5X5lkwp0Vl7+NFpEeEYKfMG2DpdFJnnG1RgHQZngZxCaBagFoaJGykRpd2DYF1AeuXBFrAUAXfw==", + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.8.5.tgz", + "integrity": "sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg==", "cpu": [ "arm" ], @@ -735,9 +727,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "2.7.11", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.7.11.tgz", - "integrity": "sha512-7xGEfPPbmVJWcY2Nzqo11B9Nfxs+BAsiiaY/OcT4aaTDdykKeCjvKMQJA3KXCtZ1AtiC9ljyGLi+BfUwdulY5A==", + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.8.5.tgz", + "integrity": "sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww==", "cpu": [ "arm64" ], @@ -748,9 +740,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-x64": { - "version": "2.7.11", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.7.11.tgz", - "integrity": "sha512-vUKI3JrREMQsXX8q0Eq5zX2FlYCKWMmLiCyyJNfZK0Uyf14RBg9VtB3ObQ41b4swYh2EWaltasWVe93Y8+KDng==", + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz", + "integrity": "sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ==", "cpu": [ "x64" ], @@ -761,9 +753,9 @@ ] }, "node_modules/@lmdb/lmdb-win32-x64": { - "version": "2.7.11", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.7.11.tgz", - "integrity": "sha512-BJwkHlSUgtB+Ei52Ai32M1AOMerSlzyIGA/KC4dAGL+GGwVMdwG8HGCOA2TxP3KjhbgDPMYkv7bt/NmOmRIFng==", + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.8.5.tgz", + "integrity": "sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ==", "cpu": [ "x64" ], @@ -774,13 +766,13 @@ ] }, "node_modules/@mischnic/json-sourcemap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.0.tgz", - "integrity": "sha512-dQb3QnfNqmQNYA4nFSN/uLaByIic58gOXq4Y4XqLOWmOrw73KmJPt/HLyG0wvn1bnR6mBKs/Uwvkh+Hns1T0XA==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz", + "integrity": "sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==", "dev": true, "dependencies": { - "@lezer/common": "^0.15.7", - "@lezer/lr": "^0.15.4", + "@lezer/common": "^1.0.0", + "@lezer/lr": "^1.0.0", "json5": "^2.2.1" }, "engines": { @@ -900,61 +892,22 @@ "node": ">= 8" } }, - "node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dev": true, - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@parcel/bundler-default": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.9.3.tgz", - "integrity": "sha512-JjJK8dq39/UO/MWI/4SCbB1t/qgpQRFnFDetAAAezQ8oN++b24u1fkMDa/xqQGjbuPmGeTds5zxGgYs7id7PYg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.11.0.tgz", + "integrity": "sha512-ZIs0865Lp871ZK83k5I9L4DeeE26muNMrHa7j8bvls6fKBJKAn8djrhfU4XOLyziU4aAOobcPwXU0+npWqs52g==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/graph": "2.9.3", - "@parcel/hash": "2.9.3", - "@parcel/plugin": "2.9.3", - "@parcel/utils": "2.9.3", + "@parcel/diagnostic": "2.11.0", + "@parcel/graph": "3.1.0", + "@parcel/plugin": "2.11.0", + "@parcel/rust": "2.11.0", + "@parcel/utils": "2.11.0", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -962,15 +915,15 @@ } }, "node_modules/@parcel/cache": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.9.3.tgz", - "integrity": "sha512-Bj/H2uAJJSXtysG7E/x4EgTrE2hXmm7td/bc97K8M9N7+vQjxf7xb0ebgqe84ePVMkj4MVQSMEJkEucXVx4b0Q==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.11.0.tgz", + "integrity": "sha512-RSSkGNjO00lJPyftzaC9eaNVs4jMjPSAm0VJNWQ9JSm2n4A9BzQtTFAt1vhJOzzW1UsQvvBge9DdfkB7a2gIOw==", "dev": true, "dependencies": { - "@parcel/fs": "2.9.3", - "@parcel/logger": "2.9.3", - "@parcel/utils": "2.9.3", - "lmdb": "2.7.11" + "@parcel/fs": "2.11.0", + "@parcel/logger": "2.11.0", + "@parcel/utils": "2.11.0", + "lmdb": "2.8.5" }, "engines": { "node": ">= 12.0.0" @@ -980,13 +933,13 @@ "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.9.3" + "@parcel/core": "^2.11.0" } }, "node_modules/@parcel/codeframe": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.9.3.tgz", - "integrity": "sha512-z7yTyD6h3dvduaFoHpNqur74/2yDWL++33rjQjIjCaXREBN6dKHoMGMizzo/i4vbiI1p9dDox2FIDEHCMQxqdA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.11.0.tgz", + "integrity": "sha512-YHs9g/i5af/sd/JrWAojU9YFbKffcJ3Tx2EJaK0ME8OJsye91UaI/3lxSUYLmJG9e4WLNJtqci8V5FBMz//ZPg==", "dev": true, "dependencies": { "chalk": "^4.1.0" @@ -1000,16 +953,16 @@ } }, "node_modules/@parcel/compressor-raw": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.9.3.tgz", - "integrity": "sha512-jz3t4/ICMsHEqgiTmv5i1DJva2k5QRpZlBELVxfY+QElJTVe8edKJ0TiKcBxh2hx7sm4aUigGmp7JiqqHRRYmA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.11.0.tgz", + "integrity": "sha512-RArhBPRTCfz77soX2IECH09NUd76UBWujXiPRcXGPIHK+C3L1cRuzsNcA39QeSb3thz3b99JcozMJ1nkC2Bsgw==", "dev": true, "dependencies": { - "@parcel/plugin": "2.9.3" + "@parcel/plugin": "2.11.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1017,71 +970,72 @@ } }, "node_modules/@parcel/config-default": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.9.3.tgz", - "integrity": "sha512-tqN5tF7QnVABDZAu76co5E6N8mA9n8bxiWdK4xYyINYFIEHgX172oRTqXTnhEMjlMrdmASxvnGlbaPBaVnrCTw==", - "dev": true, - "dependencies": { - "@parcel/bundler-default": "2.9.3", - "@parcel/compressor-raw": "2.9.3", - "@parcel/namer-default": "2.9.3", - "@parcel/optimizer-css": "2.9.3", - "@parcel/optimizer-htmlnano": "2.9.3", - "@parcel/optimizer-image": "2.9.3", - "@parcel/optimizer-svgo": "2.9.3", - "@parcel/optimizer-swc": "2.9.3", - "@parcel/packager-css": "2.9.3", - "@parcel/packager-html": "2.9.3", - "@parcel/packager-js": "2.9.3", - "@parcel/packager-raw": "2.9.3", - "@parcel/packager-svg": "2.9.3", - "@parcel/reporter-dev-server": "2.9.3", - "@parcel/resolver-default": "2.9.3", - "@parcel/runtime-browser-hmr": "2.9.3", - "@parcel/runtime-js": "2.9.3", - "@parcel/runtime-react-refresh": "2.9.3", - "@parcel/runtime-service-worker": "2.9.3", - "@parcel/transformer-babel": "2.9.3", - "@parcel/transformer-css": "2.9.3", - "@parcel/transformer-html": "2.9.3", - "@parcel/transformer-image": "2.9.3", - "@parcel/transformer-js": "2.9.3", - "@parcel/transformer-json": "2.9.3", - "@parcel/transformer-postcss": "2.9.3", - "@parcel/transformer-posthtml": "2.9.3", - "@parcel/transformer-raw": "2.9.3", - "@parcel/transformer-react-refresh-wrap": "2.9.3", - "@parcel/transformer-svg": "2.9.3" + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.11.0.tgz", + "integrity": "sha512-1e2+qcZkm5/0f4eI20p/DemcYiSxq9d/eyjpTXA7PulJaHbL1wonwUAuy3mvnAvDnLOJmAk/obDVgX1ZfxMGtg==", + "dev": true, + "dependencies": { + "@parcel/bundler-default": "2.11.0", + "@parcel/compressor-raw": "2.11.0", + "@parcel/namer-default": "2.11.0", + "@parcel/optimizer-css": "2.11.0", + "@parcel/optimizer-htmlnano": "2.11.0", + "@parcel/optimizer-image": "2.11.0", + "@parcel/optimizer-svgo": "2.11.0", + "@parcel/optimizer-swc": "2.11.0", + "@parcel/packager-css": "2.11.0", + "@parcel/packager-html": "2.11.0", + "@parcel/packager-js": "2.11.0", + "@parcel/packager-raw": "2.11.0", + "@parcel/packager-svg": "2.11.0", + "@parcel/packager-wasm": "2.11.0", + "@parcel/reporter-dev-server": "2.11.0", + "@parcel/resolver-default": "2.11.0", + "@parcel/runtime-browser-hmr": "2.11.0", + "@parcel/runtime-js": "2.11.0", + "@parcel/runtime-react-refresh": "2.11.0", + "@parcel/runtime-service-worker": "2.11.0", + "@parcel/transformer-babel": "2.11.0", + "@parcel/transformer-css": "2.11.0", + "@parcel/transformer-html": "2.11.0", + "@parcel/transformer-image": "2.11.0", + "@parcel/transformer-js": "2.11.0", + "@parcel/transformer-json": "2.11.0", + "@parcel/transformer-postcss": "2.11.0", + "@parcel/transformer-posthtml": "2.11.0", + "@parcel/transformer-raw": "2.11.0", + "@parcel/transformer-react-refresh-wrap": "2.11.0", + "@parcel/transformer-svg": "2.11.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.9.3" + "@parcel/core": "^2.11.0" } }, "node_modules/@parcel/core": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.9.3.tgz", - "integrity": "sha512-4KlM1Zr/jpsqWuMXr2zmGsaOUs1zMMFh9vfCNKRZkptf+uk8I3sugHbNdo+F5B+4e2yMuOEb1zgAmvJLeuH6ww==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.11.0.tgz", + "integrity": "sha512-Npe0S6hVaqWEwRL+HI7gtOYOaoE5bJQZTgUDhsDoppWbau51jOlRYOZTXuvRK/jxXnze4/S1sdM24xBYAQ5qkw==", "dev": true, "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/cache": "2.9.3", - "@parcel/diagnostic": "2.9.3", - "@parcel/events": "2.9.3", - "@parcel/fs": "2.9.3", - "@parcel/graph": "2.9.3", - "@parcel/hash": "2.9.3", - "@parcel/logger": "2.9.3", - "@parcel/package-manager": "2.9.3", - "@parcel/plugin": "2.9.3", - "@parcel/profiler": "2.9.3", + "@parcel/cache": "2.11.0", + "@parcel/diagnostic": "2.11.0", + "@parcel/events": "2.11.0", + "@parcel/fs": "2.11.0", + "@parcel/graph": "3.1.0", + "@parcel/logger": "2.11.0", + "@parcel/package-manager": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/profiler": "2.11.0", + "@parcel/rust": "2.11.0", "@parcel/source-map": "^2.1.1", - "@parcel/types": "2.9.3", - "@parcel/utils": "2.9.3", - "@parcel/workers": "2.9.3", + "@parcel/types": "2.11.0", + "@parcel/utils": "2.11.0", + "@parcel/workers": "2.11.0", "abortcontroller-polyfill": "^1.1.9", "base-x": "^3.0.8", "browserslist": "^4.6.6", @@ -1089,7 +1043,7 @@ "dotenv": "^7.0.0", "dotenv-expand": "^5.1.0", "json5": "^2.2.0", - "msgpackr": "^1.5.4", + "msgpackr": "^1.9.9", "nullthrows": "^1.1.1", "semver": "^7.5.2" }, @@ -1102,9 +1056,9 @@ } }, "node_modules/@parcel/diagnostic": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.9.3.tgz", - "integrity": "sha512-6jxBdyB3D7gP4iE66ghUGntWt2v64E6EbD4AetZk+hNJpgudOOPsKTovcMi/i7I4V0qD7WXSF4tvkZUoac0jwA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.11.0.tgz", + "integrity": "sha512-4dJmOXVL5YGGQRRsQosQbSRONBcboB71mSwaeaEgz3pPdq9QXVPLACkGe/jTXSqa3OnAHu3g5vQLpE1g5xqBqw==", "dev": true, "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", @@ -1119,9 +1073,9 @@ } }, "node_modules/@parcel/events": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.9.3.tgz", - "integrity": "sha512-K0Scx+Bx9f9p1vuShMzNwIgiaZUkxEnexaKYHYemJrM7pMAqxIuIqhnvwurRCsZOVLUJPDDNJ626cWTc5vIq+A==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.11.0.tgz", + "integrity": "sha512-K6SOjOrQsz1GdNl2qKBktq7KJ3Q3yxK8WXdmQYo10wG39dr051xtMb38aqieTp4eVhL8Yaq2iJgGkdr11fuBnA==", "dev": true, "engines": { "node": ">= 12.0.0" @@ -1132,16 +1086,16 @@ } }, "node_modules/@parcel/fs": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.9.3.tgz", - "integrity": "sha512-/PrRKgCRw22G7rNPSpgN3Q+i2nIkZWuvIOAdMG4KWXC4XLp8C9jarNaWd5QEQ75amjhQSl3oUzABzkdCtkKrgg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.11.0.tgz", + "integrity": "sha512-zWckdnnovdrgdFX4QYuQV4bbKCsh6IYCkmwaB4yp47rhw1MP0lkBINLt4yFPHBxWXOpElCfxjL+z69c9xJQRBQ==", "dev": true, "dependencies": { - "@parcel/fs-search": "2.9.3", - "@parcel/types": "2.9.3", - "@parcel/utils": "2.9.3", + "@parcel/rust": "2.11.0", + "@parcel/types": "2.11.0", + "@parcel/utils": "2.11.0", "@parcel/watcher": "^2.0.7", - "@parcel/workers": "2.9.3" + "@parcel/workers": "2.11.0" }, "engines": { "node": ">= 12.0.0" @@ -1151,26 +1105,13 @@ "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.9.3" - } - }, - "node_modules/@parcel/fs-search": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.9.3.tgz", - "integrity": "sha512-nsNz3bsOpwS+jphcd+XjZL3F3PDq9lik0O8HPm5f6LYkqKWT+u/kgQzA8OkAHCR3q96LGiHxUywHPEBc27vI4Q==", - "dev": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "@parcel/core": "^2.11.0" } }, "node_modules/@parcel/graph": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-2.9.3.tgz", - "integrity": "sha512-3LmRJmF8+OprAr6zJT3X2s8WAhLKkrhi6RsFlMWHifGU5ED1PFcJWFbOwJvSjcAhMQJP0fErcFIK1Ludv3Vm3g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.1.0.tgz", + "integrity": "sha512-d1dTW5C7A52HgDtoXlyvlET1ypSlmIxSIZOJ1xp3R9L9hgo3h1u3jHNyaoTe/WPkGVe2QnFxh0h+UibVJhu9vg==", "dev": true, "dependencies": { "nullthrows": "^1.1.1" @@ -1183,30 +1124,14 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/hash": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.9.3.tgz", - "integrity": "sha512-qlH5B85XLzVAeijgKPjm1gQu35LoRYX/8igsjnN8vOlbc3O8BYAUIutU58fbHbtE8MJPbxQQUw7tkTjeoujcQQ==", - "dev": true, - "dependencies": { - "xxhash-wasm": "^0.4.2" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, "node_modules/@parcel/logger": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.9.3.tgz", - "integrity": "sha512-5FNBszcV6ilGFcijEOvoNVG6IUJGsnMiaEnGQs7Fvc1dktTjEddnoQbIYhcSZL63wEmzBZOgkT5yDMajJ/41jw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.11.0.tgz", + "integrity": "sha512-HtMEdCq3LKnvv4T2CIskcqlf2gpBvHMm3pkeUFB/hc/7hW/hE1k6/HA2VOQvc0tBsaMpmEx7PCrfrH56usQSyA==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/events": "2.9.3" + "@parcel/diagnostic": "2.11.0", + "@parcel/events": "2.11.0" }, "engines": { "node": ">= 12.0.0" @@ -1217,9 +1142,9 @@ } }, "node_modules/@parcel/markdown-ansi": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.9.3.tgz", - "integrity": "sha512-/Q4X8F2aN8UNjAJrQ5NfK2OmZf6shry9DqetUSEndQ0fHonk78WKt6LT0zSKEBEW/bB/bXk6mNMsCup6L8ibjQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.11.0.tgz", + "integrity": "sha512-YA60EWbXi6cLOIzcwRC2wijotPauOGQbUi0vSbu0O6/mjQ68kWCMGz0hwZjDRQcPypQVJEIvTgMymLbvumxwhg==", "dev": true, "dependencies": { "chalk": "^4.1.0" @@ -1233,18 +1158,18 @@ } }, "node_modules/@parcel/namer-default": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.9.3.tgz", - "integrity": "sha512-1ynFEcap48/Ngzwwn318eLYpLUwijuuZoXQPCsEQ21OOIOtfhFQJaPwXTsw6kRitshKq76P2aafE0BioGSqxcA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.11.0.tgz", + "integrity": "sha512-DEwBSKSClg4DA2xAWimYkw9bFi7MFb9TdT7/TYZStMTsfYHPWOyyjGR7aVr3Ra4wNb+XX6g4rR41yp3HD6KO7A==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/plugin": "2.9.3", + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1252,15 +1177,16 @@ } }, "node_modules/@parcel/node-resolver-core": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.0.3.tgz", - "integrity": "sha512-AjxNcZVHHJoNT/A99PKIdFtwvoze8PAiC3yz8E/dRggrDIOboUEodeQYV5Aq++aK76uz/iOP0tST2T8A5rhb1A==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.2.0.tgz", + "integrity": "sha512-XJRSxCkNbGFWjfmwFdcQZ/qlzWZd35qLtvLz2va8euGL7M5OMEQOv7dsvEhl0R+CC2zcnfFzZwxk78q6ezs8AQ==", "dev": true, "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/diagnostic": "2.9.3", - "@parcel/fs": "2.9.3", - "@parcel/utils": "2.9.3", + "@parcel/diagnostic": "2.11.0", + "@parcel/fs": "2.11.0", + "@parcel/rust": "2.11.0", + "@parcel/utils": "2.11.0", "nullthrows": "^1.1.1", "semver": "^7.5.2" }, @@ -1273,22 +1199,22 @@ } }, "node_modules/@parcel/optimizer-css": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.9.3.tgz", - "integrity": "sha512-RK1QwcSdWDNUsFvuLy0hgnYKtPQebzCb0vPPzqs6LhL+vqUu9utOyRycGaQffHCkHVQP6zGlN+KFssd7YtFGhA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.11.0.tgz", + "integrity": "sha512-bV97PRxshHV3dMwOpLRgcP1QNhrVWh6VVDfm2gmWULpvsjoykcPS6vrCFksY5CpQsSvNHqJBzQjWS8FubUI76w==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/plugin": "2.9.3", + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.9.3", + "@parcel/utils": "2.11.0", "browserslist": "^4.6.6", - "lightningcss": "^1.16.1", + "lightningcss": "^1.22.1", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1296,12 +1222,12 @@ } }, "node_modules/@parcel/optimizer-htmlnano": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.9.3.tgz", - "integrity": "sha512-9g/KBck3c6DokmJfvJ5zpHFBiCSolaGrcsTGx8C3YPdCTVTI9P1TDCwUxvAr4LjpcIRSa82wlLCI+nF6sSgxKA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.11.0.tgz", + "integrity": "sha512-c20pz4EFF5DNFmqYgptlIj49eT6xjGLkDTdHH3RRzxKovuSXWfYSPs3GED3ZsjVuQyjNQif+/MAk9547F7hrdQ==", "dev": true, "dependencies": { - "@parcel/plugin": "2.9.3", + "@parcel/plugin": "2.11.0", "htmlnano": "^2.0.0", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", @@ -1309,23 +1235,39 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/css-declaration-sorter": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz", + "integrity": "sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, "node_modules/@parcel/optimizer-htmlnano/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", "nth-check": "^2.0.1" }, "funding": { @@ -1333,203 +1275,854 @@ } }, "node_modules/@parcel/optimizer-htmlnano/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@parcel/optimizer-htmlnano/node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@parcel/optimizer-htmlnano/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "node_modules/@parcel/optimizer-htmlnano/node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=10.13.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, - "node_modules/@parcel/optimizer-image": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.9.3.tgz", - "integrity": "sha512-530YzthE7kmecnNhPbkAK+26yQNt69pfJrgE0Ev0BZaM1Wu2+33nki7o8qvkTkikhPrurEJLGIXt1qKmbKvCbA==", + "node_modules/@parcel/optimizer-htmlnano/node_modules/cssnano": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.3.tgz", + "integrity": "sha512-MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/plugin": "2.9.3", - "@parcel/utils": "2.9.3", - "@parcel/workers": "2.9.3" + "cssnano-preset-default": "^6.0.3", + "lilconfig": "^3.0.0" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.9.3" + "node": "^14 || ^16 || >=18.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://opencollective.com/cssnano" }, "peerDependencies": { - "@parcel/core": "^2.9.3" + "postcss": "^8.4.31" } }, - "node_modules/@parcel/optimizer-svgo": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.9.3.tgz", - "integrity": "sha512-ytQS0wY5JJhWU4mL0wfhYDUuHcfuw+Gy2+JcnTm1t1AZXHlOTbU6EzRWNqBShsgXjvdrQQXizAe3B6GFFlFJVQ==", + "node_modules/@parcel/optimizer-htmlnano/node_modules/cssnano-preset-default": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.3.tgz", + "integrity": "sha512-4y3H370aZCkT9Ev8P4SO4bZbt+AExeKhh8wTbms/X7OLDo5E7AYUUy6YPxa/uF5Grf+AJwNcCnxKhZynJ6luBA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/plugin": "2.9.3", - "@parcel/utils": "2.9.3", - "svgo": "^2.4.0" - }, - "engines": { - "node": ">= 12.0.0", - "parcel": "^2.9.3" + "css-declaration-sorter": "^7.1.1", + "cssnano-utils": "^4.0.1", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.0.2", + "postcss-convert-values": "^6.0.2", + "postcss-discard-comments": "^6.0.1", + "postcss-discard-duplicates": "^6.0.1", + "postcss-discard-empty": "^6.0.1", + "postcss-discard-overridden": "^6.0.1", + "postcss-merge-longhand": "^6.0.2", + "postcss-merge-rules": "^6.0.3", + "postcss-minify-font-values": "^6.0.1", + "postcss-minify-gradients": "^6.0.1", + "postcss-minify-params": "^6.0.2", + "postcss-minify-selectors": "^6.0.2", + "postcss-normalize-charset": "^6.0.1", + "postcss-normalize-display-values": "^6.0.1", + "postcss-normalize-positions": "^6.0.1", + "postcss-normalize-repeat-style": "^6.0.1", + "postcss-normalize-string": "^6.0.1", + "postcss-normalize-timing-functions": "^6.0.1", + "postcss-normalize-unicode": "^6.0.2", + "postcss-normalize-url": "^6.0.1", + "postcss-normalize-whitespace": "^6.0.1", + "postcss-ordered-values": "^6.0.1", + "postcss-reduce-initial": "^6.0.2", + "postcss-reduce-transforms": "^6.0.1", + "postcss-svgo": "^6.0.2", + "postcss-unique-selectors": "^6.0.2" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/@parcel/optimizer-svgo/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "node_modules/@parcel/optimizer-htmlnano/node_modules/cssnano-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.1.tgz", + "integrity": "sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==", "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" + "optional": true, + "peer": true, + "engines": { + "node": "^14 || ^16 || >=18.0" }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/@parcel/optimizer-svgo/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "node_modules/@parcel/optimizer-htmlnano/node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" + "css-tree": "~2.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, - "node_modules/@parcel/optimizer-svgo/node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "node_modules/@parcel/optimizer-htmlnano/node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "css-tree": "^1.1.2" + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=8.0.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, - "node_modules/@parcel/optimizer-svgo/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true + "node_modules/@parcel/optimizer-htmlnano/node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "optional": true, + "peer": true }, - "node_modules/@parcel/optimizer-svgo/node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "node_modules/@parcel/optimizer-htmlnano/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, - "engines": { - "node": ">=10.13.0" + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/@parcel/optimizer-swc": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.9.3.tgz", - "integrity": "sha512-GQINNeqtdpL1ombq/Cpwi6IBk02wKJ/JJbYbyfHtk8lxlq13soenpwOlzJ5T9D2fdG+FUhai9NxpN5Ss4lNoAg==", + "node_modules/@parcel/optimizer-htmlnano/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/plugin": "2.9.3", - "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.9.3", - "@swc/core": "^1.3.36", - "nullthrows": "^1.1.1" + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/htmlnano": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-2.1.0.tgz", + "integrity": "sha512-jVGRE0Ep9byMBKEu0Vxgl8dhXYOUk0iNQ2pjsG+BcRB0u0oDF5A9p/iBGMg/PGKYUyMD0OAGu8dVT5Lzj8S58g==", + "dev": true, + "dependencies": { + "cosmiconfig": "^8.0.0", + "posthtml": "^0.16.5", + "timsort": "^0.3.0" + }, + "peerDependencies": { + "cssnano": "^6.0.0", + "postcss": "^8.3.11", + "purgecss": "^5.0.0", + "relateurl": "^0.2.7", + "srcset": "4.0.0", + "svgo": "^3.0.2", + "terser": "^5.10.0", + "uncss": "^0.17.3" + }, + "peerDependenciesMeta": { + "cssnano": { + "optional": true + }, + "postcss": { + "optional": true + }, + "purgecss": { + "optional": true + }, + "relateurl": { + "optional": true + }, + "srcset": { + "optional": true + }, + "svgo": { + "optional": true + }, + "terser": { + "optional": true + }, + "uncss": { + "optional": true + } + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/lilconfig": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-calc": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-colormin": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.2.tgz", + "integrity": "sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "browserslist": "^4.22.2", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-convert-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.2.tgz", + "integrity": "sha512-aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "browserslist": "^4.22.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-discard-comments": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.1.tgz", + "integrity": "sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-discard-duplicates": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.1.tgz", + "integrity": "sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-discard-empty": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.1.tgz", + "integrity": "sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-discard-overridden": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.1.tgz", + "integrity": "sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-merge-longhand": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.2.tgz", + "integrity": "sha512-+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^6.0.2" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-merge-rules": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.3.tgz", + "integrity": "sha512-yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "browserslist": "^4.22.2", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^4.0.1", + "postcss-selector-parser": "^6.0.15" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-minify-font-values": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz", + "integrity": "sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-minify-gradients": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz", + "integrity": "sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^4.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-minify-params": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.2.tgz", + "integrity": "sha512-zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "browserslist": "^4.22.2", + "cssnano-utils": "^4.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-minify-selectors": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.2.tgz", + "integrity": "sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "postcss-selector-parser": "^6.0.15" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-charset": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.1.tgz", + "integrity": "sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-display-values": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.1.tgz", + "integrity": "sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-positions": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.1.tgz", + "integrity": "sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-repeat-style": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.1.tgz", + "integrity": "sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-string": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.1.tgz", + "integrity": "sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-timing-functions": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.1.tgz", + "integrity": "sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-unicode": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.2.tgz", + "integrity": "sha512-Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "browserslist": "^4.22.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-url": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.1.tgz", + "integrity": "sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-whitespace": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.1.tgz", + "integrity": "sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-ordered-values": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.1.tgz", + "integrity": "sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "cssnano-utils": "^4.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-reduce-initial": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.2.tgz", + "integrity": "sha512-YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "browserslist": "^4.22.2", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-reduce-transforms": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.1.tgz", + "integrity": "sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-svgo": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.2.tgz", + "integrity": "sha512-IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.2.0" + }, + "engines": { + "node": "^14 || ^16 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-svgo/node_modules/svgo": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", + "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-unique-selectors": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.2.tgz", + "integrity": "sha512-8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "postcss-selector-parser": "^6.0.15" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/stylehacks": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.2.tgz", + "integrity": "sha512-00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "browserslist": "^4.22.2", + "postcss-selector-parser": "^6.0.15" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@parcel/optimizer-image": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.11.0.tgz", + "integrity": "sha512-jCaJww5QFG2GuNzYW8nlSW+Ea+Cv47TRnOPJNquFIajgfTLJ5ddsWbaNal0GQsL8yNiCBKWd1AV4W0RH9tG0Jg==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/rust": "2.11.0", + "@parcel/utils": "2.11.0", + "@parcel/workers": "2.11.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.11.0" } }, - "node_modules/@parcel/package-manager": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.9.3.tgz", - "integrity": "sha512-NH6omcNTEupDmW4Lm1e4NUYBjdqkURxgZ4CNESESInHJe6tblVhNB8Rpr1ar7zDar7cly9ILr8P6N3Ei7bTEjg==", + "node_modules/@parcel/optimizer-svgo": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.11.0.tgz", + "integrity": "sha512-TQpvfBhjV2IsuFHXUolbDS6XWB3DDR2rYTlqlA8LMmuOY7jQd9Bnkl4JnapzWm/bRuzRlzdGjjVCPGL8iShFvA==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0", + "svgo": "^2.4.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-swc": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.11.0.tgz", + "integrity": "sha512-ftf42F3JyZxJb6nnLlgNGyNQ273YOla4dFGH/tWC8iTwObHUpWe7cMbCGcrSJBvAlsLkZfLpFNAXFxUgxdKyHQ==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/fs": "2.9.3", - "@parcel/logger": "2.9.3", - "@parcel/node-resolver-core": "3.0.3", - "@parcel/types": "2.9.3", - "@parcel/utils": "2.9.3", - "@parcel/workers": "2.9.3", + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.11.0", + "@swc/core": "^1.3.36", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/package-manager": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.11.0.tgz", + "integrity": "sha512-QzdsrUYlAwIzb8by7WJjqYnbR1MoMKWbtE1MXUeYsZbFusV8B6pOH+lwqNJKS/BFtddZMRPYFueZS2N2fwzjig==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/fs": "2.11.0", + "@parcel/logger": "2.11.0", + "@parcel/node-resolver-core": "3.2.0", + "@parcel/types": "2.11.0", + "@parcel/utils": "2.11.0", + "@parcel/workers": "2.11.0", "semver": "^7.5.2" }, "engines": { @@ -1540,24 +2133,24 @@ "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.9.3" + "@parcel/core": "^2.11.0" } }, "node_modules/@parcel/packager-css": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.9.3.tgz", - "integrity": "sha512-mePiWiYZOULY6e1RdAIJyRoYqXqGci0srOaVZYaP7mnrzvJgA63kaZFFsDiEWghunQpMUuUjM2x/vQVHzxmhKQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.11.0.tgz", + "integrity": "sha512-AyIxsp4eL8c22vp2oO2hSRnr3hSVNkARNZc9DG6uXxCc2Is5tUEX0I4PwxWnAx0EI44l+3zX/o414zT8yV9wwQ==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/plugin": "2.9.3", + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.9.3", + "@parcel/utils": "2.11.0", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1565,20 +2158,20 @@ } }, "node_modules/@parcel/packager-html": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.9.3.tgz", - "integrity": "sha512-0Ex+O0EaZf9APNERRNGgGto02hFJ6f5RQEvRWBK55WAV1rXeU+kpjC0c0qZvnUaUtXfpWMsEBkevJCwDkUMeMg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.11.0.tgz", + "integrity": "sha512-ho5AQ70naTV8IqkKIbKtK+jsXQ5TJfFgtBvmJlyB3YydRMbIc+3g4G0xgIvf15V4uCMw9Md0Sv1W65nQXHPQoA==", "dev": true, "dependencies": { - "@parcel/plugin": "2.9.3", - "@parcel/types": "2.9.3", - "@parcel/utils": "2.9.3", + "@parcel/plugin": "2.11.0", + "@parcel/types": "2.11.0", + "@parcel/utils": "2.11.0", "nullthrows": "^1.1.1", "posthtml": "^0.16.5" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1586,22 +2179,23 @@ } }, "node_modules/@parcel/packager-js": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.9.3.tgz", - "integrity": "sha512-V5xwkoE3zQ3R+WqAWhA1KGQ791FvJeW6KonOlMI1q76Djjgox68hhObqcLu66AmYNhR2R/wUpkP18hP2z8dSFw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.11.0.tgz", + "integrity": "sha512-SxjCsd0xQfg5H73YtVJj9VOpr9s0rwMsSoeykjkatbkEla9NsZajsUkd/bfYf+/0WvEKOrB8oUBo15HkGOgKug==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/hash": "2.9.3", - "@parcel/plugin": "2.9.3", + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/rust": "2.11.0", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.9.3", + "@parcel/types": "2.11.0", + "@parcel/utils": "2.11.0", "globals": "^13.2.0", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1609,16 +2203,16 @@ } }, "node_modules/@parcel/packager-raw": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.9.3.tgz", - "integrity": "sha512-oPQTNoYanQ2DdJyL61uPYK2py83rKOT8YVh2QWAx0zsSli6Kiy64U3+xOCYWgDVCrHw9+9NpQMuAdSiFg4cq8g==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.11.0.tgz", + "integrity": "sha512-2/0JQ8DZrz7cVNXwD6OYoUUtSSnlr4dsz8ZkpFDKsBJhvMHtC78Sq+1EDixDGOMiUcalSEjNsoHtkpq9uNh+Xw==", "dev": true, "dependencies": { - "@parcel/plugin": "2.9.3" + "@parcel/plugin": "2.11.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1626,19 +2220,36 @@ } }, "node_modules/@parcel/packager-svg": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.9.3.tgz", - "integrity": "sha512-p/Ya6UO9DAkaCUFxfFGyeHZDp9YPAlpdnh1OChuwqSFOXFjjeXuoK4KLT+ZRalVBo2Jo8xF70oKMZw4MVvaL7Q==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.11.0.tgz", + "integrity": "sha512-2wQBkzLwcaWFGWz8TP+bgsXgiueWPzrjKsWugWdDfq0FbXh8XVeR/599qnus3RFHZy4cH6L6yq/7zxcljtxK8A==", "dev": true, "dependencies": { - "@parcel/plugin": "2.9.3", - "@parcel/types": "2.9.3", - "@parcel/utils": "2.9.3", + "@parcel/plugin": "2.11.0", + "@parcel/types": "2.11.0", + "@parcel/utils": "2.11.0", "posthtml": "^0.16.4" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-wasm": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.11.0.tgz", + "integrity": "sha512-tTy4EbDXeeiZ0oB7L2FWaHSD1mbmYZP6R5HXqkvc5dECGUKPU5Jz6ek2C5AM+HfQdQLKXPQ/Xw3eJnI/AmctVg==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0" + }, + "engines": { + "node": ">=12.0.0", + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1646,12 +2257,12 @@ } }, "node_modules/@parcel/plugin": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.9.3.tgz", - "integrity": "sha512-qN85Gqr2GMuxX1dT1mnuO9hOcvlEv1lrYrCxn7CJN2nUhbwcfG+LEvcrCzCOJ6XtIHm+ZBV9h9p7FfoPLvpw+g==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.11.0.tgz", + "integrity": "sha512-9npuKBlhnPn7oeUpLJGecceg16GkXbvzbr6MNSZiHhkx3IBeITHQXlZnp2zAjUOFreNsYOfifwEF2S4KsARfBQ==", "dev": true, "dependencies": { - "@parcel/types": "2.9.3" + "@parcel/types": "2.11.0" }, "engines": { "node": ">= 12.0.0" @@ -1662,13 +2273,13 @@ } }, "node_modules/@parcel/profiler": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.9.3.tgz", - "integrity": "sha512-pyHc9lw8VZDfgZoeZWZU9J0CVEv1Zw9O5+e0DJPDPHuXJYr72ZAOhbljtU3owWKAeW+++Q2AZWkbUGEOjI/e6g==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.11.0.tgz", + "integrity": "sha512-s10SS09prOdwnaAcjK8M5zO8o+zPJJW5oOqXPNdf6KH4NGD/ue7iOk2xM8QLw6ulSwxE7NDt++lyfW3AXgCZwg==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/events": "2.9.3", + "@parcel/diagnostic": "2.11.0", + "@parcel/events": "2.11.0", "chrome-trace-event": "^1.0.2" }, "engines": { @@ -1680,20 +2291,21 @@ } }, "node_modules/@parcel/reporter-cli": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.9.3.tgz", - "integrity": "sha512-pZiEvQpuXFuQBafMHxkDmwH8CnnK9sWHwa3bSbsnt385aUahtE8dpY0LKt+K1zfB6degKoczN6aWVj9WycQuZQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.11.0.tgz", + "integrity": "sha512-hY0iO0f+LifgJHDUIjGQJnxLFSkk2jlbfy+kIaft5oI3/IM+UljecfGO+14XH8mYlqRXXPsT09TJe8ZKQzp4ZQ==", "dev": true, "dependencies": { - "@parcel/plugin": "2.9.3", - "@parcel/types": "2.9.3", - "@parcel/utils": "2.9.3", + "@parcel/plugin": "2.11.0", + "@parcel/types": "2.11.0", + "@parcel/utils": "2.11.0", "chalk": "^4.1.0", + "cli-progress": "^3.12.0", "term-size": "^2.2.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1701,17 +2313,17 @@ } }, "node_modules/@parcel/reporter-dev-server": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.9.3.tgz", - "integrity": "sha512-s6eboxdLEtRSvG52xi9IiNbcPKC0XMVmvTckieue2EqGDbDcaHQoHmmwkk0rNq0/Z/UxelGcQXoIYC/0xq3ykQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.11.0.tgz", + "integrity": "sha512-T4ue1+oLFNdcd9maw8QWQuxzOS2kX2jOrSvYKwYd9oGnqiAr1rpiHYYKJhHng+PF5ybwWkj8dUJfGh2NoQysJA==", "dev": true, "dependencies": { - "@parcel/plugin": "2.9.3", - "@parcel/utils": "2.9.3" + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1719,19 +2331,19 @@ } }, "node_modules/@parcel/reporter-tracer": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.9.3.tgz", - "integrity": "sha512-9cXpKWk0m6d6d+4+TlAdOe8XIPaFEIKGWMWG+5SFAQE08u3olet4PSvd49F4+ZZo5ftRE7YI3j6xNbXvJT8KGw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.11.0.tgz", + "integrity": "sha512-33q4ftO26OPWHkUpEm0bzzSjW2kHEh6q/JFePwf8W6APTQVruj4mV46+Fh6rxX42ixs92K/QoiE0gYgWZQVDHA==", "dev": true, "dependencies": { - "@parcel/plugin": "2.9.3", - "@parcel/utils": "2.9.3", + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0", "chrome-trace-event": "^1.0.3", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1739,17 +2351,17 @@ } }, "node_modules/@parcel/resolver-default": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.9.3.tgz", - "integrity": "sha512-8ESJk1COKvDzkmOnppNXoDamNMlYVIvrKc2RuFPmp8nKVj47R6NwMgvwxEaatyPzvkmyTpq5RvG9I3HFc+r4Cw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.11.0.tgz", + "integrity": "sha512-suZNN2lE5W48LPTwAbG7gnj1IeubkCVEm0XspWXcXUtCzglimNJ8PVVBGx171o5CqDpdbGF3AqHjG9N3uOwXag==", "dev": true, "dependencies": { - "@parcel/node-resolver-core": "3.0.3", - "@parcel/plugin": "2.9.3" + "@parcel/node-resolver-core": "3.2.0", + "@parcel/plugin": "2.11.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1757,17 +2369,17 @@ } }, "node_modules/@parcel/runtime-browser-hmr": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.9.3.tgz", - "integrity": "sha512-EgiDIDrVAWpz7bOzWXqVinQkaFjLwT34wsonpXAbuI7f7r00d52vNAQC9AMu+pTijA3gyKoJ+Q4NWPMZf7ACDA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.11.0.tgz", + "integrity": "sha512-uVwNBtoLMrlPHLvRS05BVhLseduMOpZT36yiIjS0YSBJcC6/otI9AY7ZiDPYmrB5xTqM0R+D554JhPaJHCuocw==", "dev": true, "dependencies": { - "@parcel/plugin": "2.9.3", - "@parcel/utils": "2.9.3" + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1775,19 +2387,19 @@ } }, "node_modules/@parcel/runtime-js": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.9.3.tgz", - "integrity": "sha512-EvIy+qXcKnB5qxHhe96zmJpSAViNVXHfQI5RSdZ2a7CPwORwhTI+zPNT9sb7xb/WwFw/WuTTgzT40b41DceU6Q==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.11.0.tgz", + "integrity": "sha512-fH3nJoexINz7s4cDzp0Vjsx0k1pMYSa5ch38LbbNqCKTermy0pS0zZuvgfLfHFFP+AMRpFQenrF7h7N3bgDmHw==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/plugin": "2.9.3", - "@parcel/utils": "2.9.3", + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1795,19 +2407,19 @@ } }, "node_modules/@parcel/runtime-react-refresh": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.9.3.tgz", - "integrity": "sha512-XBgryZQIyCmi6JwEfMUCmINB3l1TpTp9a2iFxmYNpzHlqj4Ve0saKaqWOVRLvC945ZovWIBzcSW2IYqWKGtbAA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.11.0.tgz", + "integrity": "sha512-Kfnc7gLjhoephLMnjABrkIkzVfzPrpJlxiJFIleY2Fm57YhmCfKsEYxm3lHOutNaYl1VArW0LKClPH/VHG9vfQ==", "dev": true, "dependencies": { - "@parcel/plugin": "2.9.3", - "@parcel/utils": "2.9.3", + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0", "react-error-overlay": "6.0.9", "react-refresh": "^0.9.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1815,18 +2427,31 @@ } }, "node_modules/@parcel/runtime-service-worker": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.9.3.tgz", - "integrity": "sha512-qLJLqv1mMdWL7gyh8aKBFFAuEiJkhUUgLKpdn6eSfH/R7kTtb76WnOwqUrhvEI9bZFUM/8Pa1bzJnPpqSOM+Sw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.11.0.tgz", + "integrity": "sha512-c8MaSpSbXIKuN5sA/g4UsrsH1BtBZ6Em+eSxt9AYbdPtWrW+qwCioNVZj9lugBRUzDMjVfJz0yK59nS42hABvw==", "dev": true, "dependencies": { - "@parcel/plugin": "2.9.3", - "@parcel/utils": "2.9.3", + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/rust": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.11.0.tgz", + "integrity": "sha512-UkLWdHOD8Md2YmJDPsqd3yIs9chhdl/ATfV/B/xdPKGmqtNouYpDCRlq+WxMt3mLoYgHEg9UwrWLTebo2rr2iQ==", + "dev": true, + "engines": { + "node": ">= 12.0.0" }, "funding": { "type": "opencollective", @@ -1846,15 +2471,15 @@ } }, "node_modules/@parcel/transformer-babel": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.9.3.tgz", - "integrity": "sha512-pURtEsnsp3h6tOBDuzh9wRvVtw4PgIlqwAArIWdrG7iwqOUYv9D8ME4+ePWEu7MQWAp58hv9pTJtqWv4T+Sq8A==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.11.0.tgz", + "integrity": "sha512-WKGblnp7r426VG+cpeQzc6dj/30EoUaYwyl4OEaigQSJizyuPWTBWTz6FUw+ih1/sg37h+D1BIh9C2FsVzpzbw==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/plugin": "2.9.3", + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.9.3", + "@parcel/utils": "2.11.0", "browserslist": "^4.6.6", "json5": "^2.2.0", "nullthrows": "^1.1.1", @@ -1862,7 +2487,7 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1870,22 +2495,22 @@ } }, "node_modules/@parcel/transformer-css": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.9.3.tgz", - "integrity": "sha512-duWMdbEBBPjg3fQdXF16iWIdThetDZvCs2TpUD7xOlXH6kR0V5BJy8ONFT15u1RCqIV9hSNGaS3v3I9YRNY5zQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.11.0.tgz", + "integrity": "sha512-nFmBulF/ErNoafO87JbVrBavjBMNwE/kahbCRVxc2Mvlphz4F4lBW4eDRS5l4xBqFJaNkHr9R55ehLBBilF4Jw==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/plugin": "2.9.3", + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.9.3", + "@parcel/utils": "2.11.0", "browserslist": "^4.6.6", - "lightningcss": "^1.16.1", + "lightningcss": "^1.22.1", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1893,14 +2518,14 @@ } }, "node_modules/@parcel/transformer-html": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.9.3.tgz", - "integrity": "sha512-0NU4omcHzFXA1seqftAXA2KNZaMByoKaNdXnLgBgtCGDiYvOcL+6xGHgY6pw9LvOh5um10KI5TxSIMILoI7VtA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.11.0.tgz", + "integrity": "sha512-90vp7mbvvfqPr9XIINpMcELtywj56f1bxfOkLQgWU1bm22H0FT3i5dqdac++2My0IGDvMwhAEjQfbn4pA579NQ==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/hash": "2.9.3", - "@parcel/plugin": "2.9.3", + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/rust": "2.11.0", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", "posthtml-parser": "^0.10.1", @@ -1910,7 +2535,7 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1918,35 +2543,36 @@ } }, "node_modules/@parcel/transformer-image": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.9.3.tgz", - "integrity": "sha512-7CEe35RaPadQzLIuxzTtIxnItvOoy46hcbXtOdDt6lmVa4omuOygZYRIya2lsGIP4JHvAaALMb5nt99a1uTwJg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.11.0.tgz", + "integrity": "sha512-QiZj18UHf3lVFsi65Vz8YbS3ydx9Pe9x8ktMxE1oh9qpznN8lD7gE/Z9DxuTZB84EZ9pKytKwcv5WGXP25xIFg==", "dev": true, "dependencies": { - "@parcel/plugin": "2.9.3", - "@parcel/utils": "2.9.3", - "@parcel/workers": "2.9.3", + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0", + "@parcel/workers": "2.11.0", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "peerDependencies": { - "@parcel/core": "^2.9.3" + "@parcel/core": "^2.11.0" } }, "node_modules/@parcel/transformer-js": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.9.3.tgz", - "integrity": "sha512-Z2MVVg5FYcPOfxlUwxqb5l9yjTMEqE3KI3zq2MBRUme6AV07KxLmCDF23b6glzZlHWQUE8MXzYCTAkOPCcPz+Q==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.11.0.tgz", + "integrity": "sha512-G1sv0n8/fJqHqwUs0iVnVdmRY0Kh8kWaDkuWcU/GJBHMGhUnLXKdNwxX2Av9UdBL14bU1nTINfr9qOfnQotXWg==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/plugin": "2.9.3", + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/rust": "2.11.0", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.9.3", - "@parcel/workers": "2.9.3", + "@parcel/utils": "2.11.0", + "@parcel/workers": "2.11.0", "@swc/helpers": "^0.5.0", "browserslist": "^4.6.6", "nullthrows": "^1.1.1", @@ -1955,28 +2581,28 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.9.3" + "@parcel/core": "^2.11.0" } }, "node_modules/@parcel/transformer-json": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.9.3.tgz", - "integrity": "sha512-yNL27dbOLhkkrjaQjiQ7Im9VOxmkfuuSNSmS0rA3gEjVcm07SLKRzWkAaPnyx44Lb6bzyOTWwVrb9aMmxgADpA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.11.0.tgz", + "integrity": "sha512-Wt/wgSBaRWmPL4gpvjkV0bCBRxFOtsuLNzsm8vYA5poxTFhuLY+AoyQ8S2+xXU4VxwBfdppfIr2Ny3SwGs8xbQ==", "dev": true, "dependencies": { - "@parcel/plugin": "2.9.3", + "@parcel/plugin": "2.11.0", "json5": "^2.2.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -1984,15 +2610,15 @@ } }, "node_modules/@parcel/transformer-postcss": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.9.3.tgz", - "integrity": "sha512-HoDvPqKzhpmvMmHqQhDnt8F1vH61m6plpGiYaYnYv2Om4HHi5ZIq9bO+9QLBnTKfaZ7ndYSefTKOxTYElg7wyw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.11.0.tgz", + "integrity": "sha512-Ugy8XHBaUptGotsvwzq7gPCvkCopTIqqZ0JZ40Jmy9slGms8wnx06pNHA1Be/RcJwkJ2TbSu+7ncZdgmP5x5GQ==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/hash": "2.9.3", - "@parcel/plugin": "2.9.3", - "@parcel/utils": "2.9.3", + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/rust": "2.11.0", + "@parcel/utils": "2.11.0", "clone": "^2.1.1", "nullthrows": "^1.1.1", "postcss-value-parser": "^4.2.0", @@ -2000,7 +2626,7 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -2008,13 +2634,13 @@ } }, "node_modules/@parcel/transformer-posthtml": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.9.3.tgz", - "integrity": "sha512-2fQGgrzRmaqbWf3y2/T6xhqrNjzqMMKksqJzvc8TMfK6f2kg3Ddjv158eaSW2JdkV39aY7tvAOn5f1uzo74BMA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.11.0.tgz", + "integrity": "sha512-dMK4p1RRAoIJEjK/Wz9GOLqwHqdD/VQDhMPk+6sUKp5zf2MhSohUstpp5gKsSZivCM3PS2f8k9rgroacJ/ReuA==", "dev": true, "dependencies": { - "@parcel/plugin": "2.9.3", - "@parcel/utils": "2.9.3", + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", "posthtml-parser": "^0.10.1", @@ -2023,7 +2649,7 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -2031,16 +2657,16 @@ } }, "node_modules/@parcel/transformer-raw": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.9.3.tgz", - "integrity": "sha512-oqdPzMC9QzWRbY9J6TZEqltknjno+dY24QWqf8ondmdF2+W+/2mRDu59hhCzQrqUHgTq4FewowRZmSfpzHxwaQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.11.0.tgz", + "integrity": "sha512-2ltp3TgS+cxEqSM1vk5gDtJrYx4KMuRRtbSgSvkdldyOgPhflnLU3/HRz72hXSNGqYOV0/JN0+ocsfPnqR00ug==", "dev": true, "dependencies": { - "@parcel/plugin": "2.9.3" + "@parcel/plugin": "2.11.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -2048,18 +2674,18 @@ } }, "node_modules/@parcel/transformer-react-refresh-wrap": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.9.3.tgz", - "integrity": "sha512-cb9NyU6oJlDblFIlzqIE8AkvRQVGl2IwJNKwD4PdE7Y6sq2okGEPG4hOw3k/Y9JVjM4/2pUORqvjSRhWwd9oVQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.11.0.tgz", + "integrity": "sha512-6pY0CdIgIpXC6XpsDWizf+zLgiuEsJ106HjWLwF7/R72BrvDhLPZ6jRu4UTrnd6bM89KahPw9fZZzjKoA5Efcw==", "dev": true, "dependencies": { - "@parcel/plugin": "2.9.3", - "@parcel/utils": "2.9.3", + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0", "react-refresh": "^0.9.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -2067,14 +2693,14 @@ } }, "node_modules/@parcel/transformer-svg": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.9.3.tgz", - "integrity": "sha512-ypmE+dzB09IMCdEAkOsSxq1dEIm2A3h67nAFz4qbfHbwNgXBUuy/jB3ZMwXN/cO0f7SBh/Ap8Jhq6vmGqB5tWw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.11.0.tgz", + "integrity": "sha512-GrTNi04OoQSXsyrB7FqQPeYREscEXFhIBPkyQ0q7WDG/yYynWljiA0kwITCtMjPfv2EDVks292dvM3EcnERRIA==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/hash": "2.9.3", - "@parcel/plugin": "2.9.3", + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/rust": "2.11.0", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", "posthtml-parser": "^0.10.1", @@ -2083,7 +2709,7 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.9.3" + "parcel": "^2.11.0" }, "funding": { "type": "opencollective", @@ -2091,31 +2717,31 @@ } }, "node_modules/@parcel/types": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.9.3.tgz", - "integrity": "sha512-NSNY8sYtRhvF1SqhnIGgGvJocyWt1K8Tnw5cVepm0g38ywtX6mwkBvMkmeehXkII4mSUn+frD9wGsydTunezvA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.11.0.tgz", + "integrity": "sha512-lN5XlfV9b1s2rli8q1LqsLtu+D4ZwNI3sKmNcL/3tohSfQcF2EgF+MaiANGo9VzXOzoWFHt4dqWjO4OcdyC5tg==", "dev": true, "dependencies": { - "@parcel/cache": "2.9.3", - "@parcel/diagnostic": "2.9.3", - "@parcel/fs": "2.9.3", - "@parcel/package-manager": "2.9.3", + "@parcel/cache": "2.11.0", + "@parcel/diagnostic": "2.11.0", + "@parcel/fs": "2.11.0", + "@parcel/package-manager": "2.11.0", "@parcel/source-map": "^2.1.1", - "@parcel/workers": "2.9.3", + "@parcel/workers": "2.11.0", "utility-types": "^3.10.0" } }, "node_modules/@parcel/utils": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.9.3.tgz", - "integrity": "sha512-cesanjtj/oLehW8Waq9JFPmAImhoiHX03ihc3JTWkrvJYSbD7wYKCDgPAM3JiRAqvh1LZ6P699uITrYWNoRLUg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.11.0.tgz", + "integrity": "sha512-AcL70cXlIyE7eQdvjQbYxegN5l+skqvlJllxTWg4YkIZe9p8Gmv74jLAeLWh5F+IGl5WRn0TSy9JhNJjIMQGwQ==", "dev": true, "dependencies": { - "@parcel/codeframe": "2.9.3", - "@parcel/diagnostic": "2.9.3", - "@parcel/hash": "2.9.3", - "@parcel/logger": "2.9.3", - "@parcel/markdown-ansi": "2.9.3", + "@parcel/codeframe": "2.11.0", + "@parcel/diagnostic": "2.11.0", + "@parcel/logger": "2.11.0", + "@parcel/markdown-ansi": "2.11.0", + "@parcel/rust": "2.11.0", "@parcel/source-map": "^2.1.1", "chalk": "^4.1.0", "nullthrows": "^1.1.1" @@ -2129,9 +2755,9 @@ } }, "node_modules/@parcel/watcher": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.2.0.tgz", - "integrity": "sha512-71S4TF+IMyAn24PK4KSkdKtqJDR3zRzb0HE3yXpacItqTM7XfF2f5q9NEGLEVl0dAaBAGfNwDCjH120y25F6Tg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.3.0.tgz", + "integrity": "sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -2148,22 +2774,24 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.2.0", - "@parcel/watcher-darwin-arm64": "2.2.0", - "@parcel/watcher-darwin-x64": "2.2.0", - "@parcel/watcher-linux-arm-glibc": "2.2.0", - "@parcel/watcher-linux-arm64-glibc": "2.2.0", - "@parcel/watcher-linux-arm64-musl": "2.2.0", - "@parcel/watcher-linux-x64-glibc": "2.2.0", - "@parcel/watcher-linux-x64-musl": "2.2.0", - "@parcel/watcher-win32-arm64": "2.2.0", - "@parcel/watcher-win32-x64": "2.2.0" + "@parcel/watcher-android-arm64": "2.3.0", + "@parcel/watcher-darwin-arm64": "2.3.0", + "@parcel/watcher-darwin-x64": "2.3.0", + "@parcel/watcher-freebsd-x64": "2.3.0", + "@parcel/watcher-linux-arm-glibc": "2.3.0", + "@parcel/watcher-linux-arm64-glibc": "2.3.0", + "@parcel/watcher-linux-arm64-musl": "2.3.0", + "@parcel/watcher-linux-x64-glibc": "2.3.0", + "@parcel/watcher-linux-x64-musl": "2.3.0", + "@parcel/watcher-win32-arm64": "2.3.0", + "@parcel/watcher-win32-ia32": "2.3.0", + "@parcel/watcher-win32-x64": "2.3.0" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.2.0.tgz", - "integrity": "sha512-nU2wh00CTQT9rr1TIKTjdQ9lAGYpmz6XuKw0nAwAN+S2A5YiD55BK1u+E5WMCT8YOIDe/n6gaj4o/Bi9294SSQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.3.0.tgz", + "integrity": "sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA==", "cpu": [ "arm64" ], @@ -2181,9 +2809,9 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.2.0.tgz", - "integrity": "sha512-cJl0UZDcodciy3TDMomoK/Huxpjlkkim3SyMgWzjovHGOZKNce9guLz2dzuFwfObBFCjfznbFMIvAZ5syXotYw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.3.0.tgz", + "integrity": "sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw==", "cpu": [ "arm64" ], @@ -2201,9 +2829,9 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.2.0.tgz", - "integrity": "sha512-QI77zxaGrCV1StKcoRYfsUfmUmvPMPfQrubkBBy5XujV2fwaLgZivQOTQMBgp5K2+E19u1ufpspKXAPqSzpbyg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.3.0.tgz", + "integrity": "sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow==", "cpu": [ "x64" ], @@ -2220,10 +2848,30 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.3.0.tgz", + "integrity": "sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.2.0.tgz", - "integrity": "sha512-I2GPBcAXazPzabCmfsa3HRRW+MGlqxYd8g8RIueJU+a4o5nyNZDz0CR1cu0INT0QSQXEZV7w6UE8Hz9CF8u3Pg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.3.0.tgz", + "integrity": "sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ==", "cpu": [ "arm" ], @@ -2241,9 +2889,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.2.0.tgz", - "integrity": "sha512-St5mlfp+2lS9AmgixUqfwJa/DwVmTCJxC1HcOubUTz6YFOKIlkHCeUa1Bxi4E/tR/HSez8+heXHL8HQkJ4Bd8g==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.3.0.tgz", + "integrity": "sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA==", "cpu": [ "arm64" ], @@ -2261,9 +2909,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.2.0.tgz", - "integrity": "sha512-jS+qfhhoOBVWwMLP65MaG8xdInMK30pPW8wqTCg2AAuVJh5xepMbzkhHJ4zURqHiyY3EiIRuYu4ONJKCxt8iqA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.3.0.tgz", + "integrity": "sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw==", "cpu": [ "arm64" ], @@ -2281,9 +2929,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.2.0.tgz", - "integrity": "sha512-xJvJ7R2wJdi47WZBFS691RDOWvP1j/IAs3EXaWVhDI8FFITbWrWaln7KoNcR0Y3T+ZwimFY/cfb0PNht1q895g==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.3.0.tgz", + "integrity": "sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow==", "cpu": [ "x64" ], @@ -2301,16 +2949,36 @@ } }, "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.2.0.tgz", - "integrity": "sha512-D+NMpgr23a+RI5mu8ZPKWy7AqjBOkURFDgP5iIXXEf/K3hm0jJ3ogzi0Ed2237B/CdYREimCgXyeiAlE/FtwyA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.3.0.tgz", + "integrity": "sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.3.0.tgz", + "integrity": "sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw==", "cpu": [ - "x64" + "arm64" ], "dev": true, "optional": true, "os": [ - "linux" + "win32" ], "engines": { "node": ">= 10.0.0" @@ -2320,12 +2988,12 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.2.0.tgz", - "integrity": "sha512-z225cPn3aygJsyVUOWwfyW+fY0Tvk7N3XCOl66qUPFxpbuXeZuiuuJemmtm8vxyqa3Ur7peU/qJxrpC64aeI7Q==", + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.3.0.tgz", + "integrity": "sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow==", "cpu": [ - "arm64" + "ia32" ], "dev": true, "optional": true, @@ -2341,9 +3009,9 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.2.0.tgz", - "integrity": "sha512-JqGW0RJ61BkKx+yYzIURt9s53P7xMVbv0uxYPzAXLBINGaFmkIKSuUPyBVfy8TMbvp93lvF4SPBNDzVRJfvgOw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.3.0.tgz", + "integrity": "sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA==", "cpu": [ "x64" ], @@ -2361,16 +3029,16 @@ } }, "node_modules/@parcel/workers": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.9.3.tgz", - "integrity": "sha512-zRrDuZJzTevrrwElYosFztgldhqW6G9q5zOeQXfVQFkkEJCNfg36ixeiofKRU8uu2x+j+T6216mhMNB6HiuY+w==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.11.0.tgz", + "integrity": "sha512-wjybqdSy6Nk0N9iBGsFcp7739W2zvx0WGfVxPVShqhz46pIkPOiFF/iSn+kFu5EmMKTRWeUif42+a6rRZ7pCnQ==", "dev": true, "dependencies": { - "@parcel/diagnostic": "2.9.3", - "@parcel/logger": "2.9.3", - "@parcel/profiler": "2.9.3", - "@parcel/types": "2.9.3", - "@parcel/utils": "2.9.3", + "@parcel/diagnostic": "2.11.0", + "@parcel/logger": "2.11.0", + "@parcel/profiler": "2.11.0", + "@parcel/types": "2.11.0", + "@parcel/utils": "2.11.0", "nullthrows": "^1.1.1" }, "engines": { @@ -2381,7 +3049,7 @@ "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.9.3" + "@parcel/core": "^2.11.0" } }, "node_modules/@ply-ct/ply-values": { @@ -2519,11 +3187,15 @@ } }, "node_modules/@swc/core": { - "version": "1.3.74", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.74.tgz", - "integrity": "sha512-P+MIExOTdWlfq8Heb1/NhBAke6UTckd4cRDuJoFcFMGBRvgoCMNWhnfP3FRRXPLI7GGg27dRZS+xHiqYyQmSrA==", + "version": "1.3.102", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.102.tgz", + "integrity": "sha512-OAjNLY/f6QWKSDzaM3bk31A+OYHu6cPa9P/rFIx8X5d24tHXUpRiiq6/PYI6SQRjUPlB72GjsjoEU8F+ALadHg==", "dev": true, "hasInstallScript": true, + "dependencies": { + "@swc/counter": "^0.1.1", + "@swc/types": "^0.1.5" + }, "engines": { "node": ">=10" }, @@ -2532,16 +3204,16 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.3.74", - "@swc/core-darwin-x64": "1.3.74", - "@swc/core-linux-arm-gnueabihf": "1.3.74", - "@swc/core-linux-arm64-gnu": "1.3.74", - "@swc/core-linux-arm64-musl": "1.3.74", - "@swc/core-linux-x64-gnu": "1.3.74", - "@swc/core-linux-x64-musl": "1.3.74", - "@swc/core-win32-arm64-msvc": "1.3.74", - "@swc/core-win32-ia32-msvc": "1.3.74", - "@swc/core-win32-x64-msvc": "1.3.74" + "@swc/core-darwin-arm64": "1.3.102", + "@swc/core-darwin-x64": "1.3.102", + "@swc/core-linux-arm-gnueabihf": "1.3.102", + "@swc/core-linux-arm64-gnu": "1.3.102", + "@swc/core-linux-arm64-musl": "1.3.102", + "@swc/core-linux-x64-gnu": "1.3.102", + "@swc/core-linux-x64-musl": "1.3.102", + "@swc/core-win32-arm64-msvc": "1.3.102", + "@swc/core-win32-ia32-msvc": "1.3.102", + "@swc/core-win32-x64-msvc": "1.3.102" }, "peerDependencies": { "@swc/helpers": "^0.5.0" @@ -2553,9 +3225,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.3.74", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.74.tgz", - "integrity": "sha512-2rMV4QxM583jXcREfo0MhV3Oj5pgRSfSh/kVrB1twL2rQxOrbzkAPT/8flmygdVoL4f2F7o1EY5lKlYxEBiIKQ==", + "version": "1.3.102", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.102.tgz", + "integrity": "sha512-CJDxA5Wd2cUMULj3bjx4GEoiYyyiyL8oIOu4Nhrs9X+tlg8DnkCm4nI57RJGP8Mf6BaXPIJkHX8yjcefK2RlDA==", "cpu": [ "arm64" ], @@ -2569,9 +3241,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.3.74", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.74.tgz", - "integrity": "sha512-KKEGE1wXneYXe15fWDRM8/oekd/Q4yAuccA0vWY/7i6nOSPqWYcSDR0nRtR030ltDxWt0rk/eCTmNkrOWrKs3A==", + "version": "1.3.102", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.102.tgz", + "integrity": "sha512-X5akDkHwk6oAer49oER0qZMjNMkLH3IOZaV1m98uXIasAGyjo5WH1MKPeMLY1sY6V6TrufzwiSwD4ds571ytcg==", "cpu": [ "x64" ], @@ -2585,9 +3257,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.3.74", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.74.tgz", - "integrity": "sha512-HehH5DR6r/5fIVu7tu8ZqgrHkhSCQNewf1ztFQJgcmaQWn+H4AJERBjwkjosqh4TvUJucZv8vyRTvrFeBXaCSA==", + "version": "1.3.102", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.102.tgz", + "integrity": "sha512-kJH3XtZP9YQdjq/wYVBeFuiVQl4HaC4WwRrIxAHwe2OyvrwUI43dpW3LpxSggBnxXcVCXYWf36sTnv8S75o2Gw==", "cpu": [ "arm" ], @@ -2601,9 +3273,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.3.74", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.74.tgz", - "integrity": "sha512-+xkbCRz/wczgdknoV4NwYxbRI2dD7x/qkIFcVM2buzLCq8oWLweuV8+aL4pRqu0qDh7ZSb1jcaVTUIsySCJznA==", + "version": "1.3.102", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.102.tgz", + "integrity": "sha512-flQP2WDyCgO24WmKA1wjjTx+xfCmavUete2Kp6yrM+631IHLGnr17eu7rYJ/d4EnDBId/ytMyrnWbTVkaVrpbQ==", "cpu": [ "arm64" ], @@ -2617,9 +3289,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.3.74", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.74.tgz", - "integrity": "sha512-maKFZSCD3tQznzPV7T3V+TtiWZFEFM8YrnSS5fQNNb+K9J65sL+170uTb3M7H4cFkG+9Sm5k5yCrCIutlvV48g==", + "version": "1.3.102", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.102.tgz", + "integrity": "sha512-bQEQSnC44DyoIGLw1+fNXKVGoCHi7eJOHr8BdH0y1ooy9ArskMjwobBFae3GX4T1AfnrTaejyr0FvLYIb0Zkog==", "cpu": [ "arm64" ], @@ -2633,9 +3305,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.3.74", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.74.tgz", - "integrity": "sha512-LEXpcShF6DLTWJSiBhMSYZkLQ27UvaQ24fCFhoIV/R3dhYaUpHmIyLPPBNC82T03lB3ONUFVwrRw6fxDJ/f00A==", + "version": "1.3.102", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.102.tgz", + "integrity": "sha512-dFvnhpI478svQSxqISMt00MKTDS0e4YtIr+ioZDG/uJ/q+RpcNy3QI2KMm05Fsc8Y0d4krVtvCKWgfUMsJZXAg==", "cpu": [ "x64" ], @@ -2649,9 +3321,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.3.74", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.74.tgz", - "integrity": "sha512-sxsFctbFMZEFmDE7CmYljG0dMumH8XBTwwtGr8s6z0fYAzXBGNq2AFPcmEh2np9rPWkt7pE1m0ByESD+dMkbxQ==", + "version": "1.3.102", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.102.tgz", + "integrity": "sha512-+a0M3CvjeIRNA/jTCzWEDh2V+mhKGvLreHOL7J97oULZy5yg4gf7h8lQX9J8t9QLbf6fsk+0F8bVH1Ie/PbXjA==", "cpu": [ "x64" ], @@ -2665,9 +3337,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.3.74", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.74.tgz", - "integrity": "sha512-F7hY9/BjFCozA4YPFYFH5FGCyWwa44vIXHqG66F5cDwXDGFn8ZtBsYIsiPfUYcx0AeAo1ojnVWKPxokZhYNYqA==", + "version": "1.3.102", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.102.tgz", + "integrity": "sha512-w76JWLjkZNOfkB25nqdWUNCbt0zJ41CnWrJPZ+LxEai3zAnb2YtgB/cCIrwxDebRuMgE9EJXRj7gDDaTEAMOOQ==", "cpu": [ "arm64" ], @@ -2681,9 +3353,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.3.74", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.74.tgz", - "integrity": "sha512-qBAsiD1AlIdqED6wy3UNRHyAys9pWMUidX0LJ6mj24r/vfrzzTBAUrLJe5m7bzE+F1Rgi001avYJeEW1DLEJ+Q==", + "version": "1.3.102", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.102.tgz", + "integrity": "sha512-vlDb09HiGqKwz+2cxDS9T5/461ipUQBplvuhW+cCbzzGuPq8lll2xeyZU0N1E4Sz3MVdSPx1tJREuRvlQjrwNg==", "cpu": [ "ia32" ], @@ -2697,9 +3369,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.3.74", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.74.tgz", - "integrity": "sha512-S3YAvvLprTnPRwQuy9Dkwubb5SRLpVK3JJsqYDbGfgj8PGQyKHZcVJ5X3nfFsoWLy3j9B/3Os2nawprRSzeC5A==", + "version": "1.3.102", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.102.tgz", + "integrity": "sha512-E/jfSD7sShllxBwwgDPeXp1UxvIqehj/ShSUqq1pjR/IDRXngcRSXKJK92mJkNFY7suH6BcCWwzrxZgkO7sWmw==", "cpu": [ "x64" ], @@ -2712,23 +3384,26 @@ "node": ">=10" } }, + "node_modules/@swc/counter": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz", + "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==", + "dev": true + }, "node_modules/@swc/helpers": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz", - "integrity": "sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", "dev": true, "dependencies": { "tslib": "^2.4.0" } }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } + "node_modules/@swc/types": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", + "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", + "dev": true }, "node_modules/@trysound/sax": { "version": "0.2.0", @@ -2745,25 +3420,6 @@ "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", "dev": true }, - "node_modules/@types/fs-extra": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.2.tgz", - "integrity": "sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, "node_modules/@types/js-yaml": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz", @@ -2788,30 +3444,6 @@ "@types/lodash": "*" } }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.4.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.8.tgz", - "integrity": "sha512-0mHckf6D2DiIAzh8fM8f3HQCvMKDpK94YQ0DSVkfWTG9BZleYIWudw9cJxX8oCk9bM+vAkDyujDV6dmKHbvQpg==", - "dev": true - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, "node_modules/@types/resolve": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", @@ -3040,12 +3672,6 @@ } } }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, "node_modules/abortcontroller-polyfill": { "version": "1.7.5", "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", @@ -3073,43 +3699,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", - "dev": true, - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -3150,70 +3739,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/async-validator": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", @@ -3254,15 +3784,6 @@ } ] }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -3292,9 +3813,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.10", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", - "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "dev": true, "funding": [ { @@ -3311,10 +3832,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001517", - "electron-to-chromium": "^1.4.477", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -3359,47 +3880,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -3409,32 +3889,6 @@ "node": ">=6" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -3448,9 +3902,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001519", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz", - "integrity": "sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==", + "version": "1.0.30001576", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", + "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", "dev": true, "funding": [ { @@ -3483,54 +3937,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", @@ -3540,27 +3946,16 @@ "node": ">=6.0" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/cli-progress": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", + "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "string-width": "^4.2.3" }, "engines": { - "node": ">=12" + "node": ">=4" } }, "node_modules/clone": { @@ -3590,27 +3985,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, "node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", @@ -3641,27 +4021,15 @@ "source-map": "^0.6.1" } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, "node_modules/cosmiconfig": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", - "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, "dependencies": { - "import-fresh": "^3.2.1", + "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", + "parse-json": "^5.2.0", "path-type": "^4.0.0" }, "engines": { @@ -3669,6 +4037,14 @@ }, "funding": { "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/cross-env": { @@ -3695,120 +4071,53 @@ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", - "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-select/node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/css-select/node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "domelementtype": "^2.3.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "node": ">= 8" } }, - "node_modules/css-select/node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "node_modules/css-declaration-sorter": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" + "engines": { + "node": "^10 || ^12 || >=14" }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" + "peerDependencies": { + "postcss": "^8.0.9" } }, - "node_modules/css-select/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.12" + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://github.com/sponsors/fb55" } }, "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "dev": true, - "optional": true, - "peer": true, "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" + "mdn-data": "2.0.14", + "source-map": "^0.6.1" }, "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + "node": ">=8.0.0" } }, "node_modules/css-what": { @@ -3912,44 +4221,17 @@ } }, "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", "dev": true, - "optional": true, - "peer": true, "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" + "css-tree": "^1.1.2" }, "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" + "node": ">=8.0.0" } }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/csstype": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", @@ -3977,40 +4259,6 @@ } } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -4026,12 +4274,6 @@ "node": ">=0.10.0" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, "node_modules/detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -4044,18 +4286,6 @@ "node": ">=0.10" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -4148,9 +4378,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.485", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.485.tgz", - "integrity": "sha512-1ndQ5IBNEnFirPwvyud69GHL+31FkE09gH/CJ6m3KCbkx3i0EVOrjwz4UNxRmN9H8OVHbC6vMRZGN1yCvjSs9w==", + "version": "1.4.630", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.630.tgz", + "integrity": "sha512-osHqhtjojpCsACVnuD11xO5g9xaCyw7Qqn/C2KParkMv42i8jrJJgx3g7mkHfpxwhy9MnOJr8+pKOdZ7qzgizg==", "dev": true }, "node_modules/element-plus": { @@ -4184,16 +4414,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, "node_modules/entities": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", @@ -4206,21 +4426,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -4500,34 +4705,6 @@ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -4609,41 +4786,15 @@ "dev": true }, "node_modules/flowbee": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/flowbee/-/flowbee-1.1.10.tgz", - "integrity": "sha512-z+QZxChiPuro/uXLo0PlG8v24XSWkIvJA48ZlAjdKlGZQNLseYL24/2RoY0woGJaI6C5o7x+i7jvecbtT4Dvjg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/flowbee/-/flowbee-1.1.14.tgz", + "integrity": "sha512-MioVdopwi45Edk8xLy0rq0LHr2IOgkJOGVoQP0Tuqu74lqzdJJaU7Md2ZwUpFv7MuAXfHDQL/K/Yz8uVr80H5g==", "dependencies": { "js-yaml": "^4.1.0", "merge-anything": "^5.1.7", "semver": "^7.5.3" } }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -4670,37 +4821,6 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "dependencies": { - "globule": "^1.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/generic-names": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz", @@ -4710,15 +4830,6 @@ "loader-utils": "^3.2.0" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, "node_modules/get-port": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz", @@ -4728,15 +4839,6 @@ "node": ">=6" } }, - "node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/glob": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", @@ -4780,134 +4882,58 @@ "node_modules/glob/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", - "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/globby/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globule": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", - "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==", - "dev": true, - "dependencies": { - "glob": "~7.1.1", - "lodash": "^4.17.21", - "minimatch": "~3.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/globule/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=10" } }, - "node_modules/globule/node_modules/minimatch": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", - "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "type-fest": "^0.20.2" }, "engines": { - "node": "*" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, + "node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "peer": true, "engines": { - "node": ">=6" + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/graphql-language-service": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-5.1.7.tgz", + "integrity": "sha512-xkawYMJeoNYGhT+SpSH3c2qf6HpGHQ/duDmrseVHBpVCrXAiGnliXGSCC4jyMGgZQ05GytsZ12p0nUo7s6lSSw==", + "dependencies": { + "nullthrows": "^1.0.0", + "vscode-languageserver-types": "^3.17.1" + }, + "bin": { + "graphql": "dist/temp-bin.js" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0" } }, "node_modules/has": { @@ -4931,89 +4957,12 @@ "node": ">=8" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, "node_modules/hash-sum": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", "dev": true }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/htmlnano": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-2.0.4.tgz", - "integrity": "sha512-WGCkyGFwjKW1GeCBsPYacMvaMnZtFJ0zIRnC2NCddkA+IOEhTqskXrS7lep+3yYZw/nQ3dW1UAX4yA/GJyR8BA==", - "dev": true, - "dependencies": { - "cosmiconfig": "^8.0.0", - "posthtml": "^0.16.5", - "timsort": "^0.3.0" - }, - "peerDependencies": { - "cssnano": "^6.0.0", - "postcss": "^8.3.11", - "purgecss": "^5.0.0", - "relateurl": "^0.2.7", - "srcset": "4.0.0", - "svgo": "^3.0.2", - "terser": "^5.10.0", - "uncss": "^0.17.3" - }, - "peerDependenciesMeta": { - "cssnano": { - "optional": true - }, - "postcss": { - "optional": true - }, - "purgecss": { - "optional": true - }, - "relateurl": { - "optional": true - }, - "srcset": { - "optional": true - }, - "svgo": { - "optional": true - }, - "terser": { - "optional": true - }, - "uncss": { - "optional": true - } - } - }, "node_modules/htmlparser2": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", @@ -5033,66 +4982,11 @@ "entities": "^3.0.1" } }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/http-status-codes": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/icss-replace-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", @@ -5198,21 +5092,6 @@ "node": ">=0.8.19" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -5229,30 +5108,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/is-builtin-module": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", @@ -5316,12 +5177,6 @@ "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", "dev": true }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", @@ -5346,24 +5201,6 @@ "node": ">=8" } }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", - "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-reference": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", @@ -5384,12 +5221,6 @@ "url": "https://github.com/sponsors/mesqueeb" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -5405,12 +5236,6 @@ "node": ">=10" } }, - "node_modules/js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", - "dev": true - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -5463,24 +5288,6 @@ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -5495,9 +5302,9 @@ } }, "node_modules/lightningcss": { - "version": "1.21.5", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.21.5.tgz", - "integrity": "sha512-/pEUPeih2EwIx9n4T82aOG6CInN83tl/mWlw6B5gWLf36UplQi1L+5p3FUHsdt4fXVfOkkh9KIaM3owoq7ss8A==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.22.1.tgz", + "integrity": "sha512-Fy45PhibiNXkm0cK5FJCbfO8Y6jUpD/YcHf/BtuI+jvYYqSXKF4muk61jjE8YxCR9y+hDYIWSzHTc+bwhDE6rQ==", "dev": true, "dependencies": { "detect-libc": "^1.0.3" @@ -5510,20 +5317,21 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-darwin-arm64": "1.21.5", - "lightningcss-darwin-x64": "1.21.5", - "lightningcss-linux-arm-gnueabihf": "1.21.5", - "lightningcss-linux-arm64-gnu": "1.21.5", - "lightningcss-linux-arm64-musl": "1.21.5", - "lightningcss-linux-x64-gnu": "1.21.5", - "lightningcss-linux-x64-musl": "1.21.5", - "lightningcss-win32-x64-msvc": "1.21.5" + "lightningcss-darwin-arm64": "1.22.1", + "lightningcss-darwin-x64": "1.22.1", + "lightningcss-freebsd-x64": "1.22.1", + "lightningcss-linux-arm-gnueabihf": "1.22.1", + "lightningcss-linux-arm64-gnu": "1.22.1", + "lightningcss-linux-arm64-musl": "1.22.1", + "lightningcss-linux-x64-gnu": "1.22.1", + "lightningcss-linux-x64-musl": "1.22.1", + "lightningcss-win32-x64-msvc": "1.22.1" } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.21.5", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.21.5.tgz", - "integrity": "sha512-z05hyLX85WY0UfhkFUOrWEFqD69lpVAmgl3aDzMKlIZJGygbhbegqb4PV8qfUrKKNBauut/qVNPKZglhTaDDxA==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.22.1.tgz", + "integrity": "sha512-ldvElu+R0QimNTjsKpaZkUv3zf+uefzLy/R1R19jtgOfSRM+zjUCUgDhfEDRmVqJtMwYsdhMI2aJtJChPC6Osg==", "cpu": [ "arm64" ], @@ -5541,9 +5349,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.21.5", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.21.5.tgz", - "integrity": "sha512-MSJhmej/U9MrdPxDk7+FWhO8+UqVoZUHG4VvKT5RQ4RJtqtANTiWiI97LvoVNMtdMnHaKs1Pkji6wHUFxjJsHQ==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.22.1.tgz", + "integrity": "sha512-5p2rnlVTv6Gpw4PlTLq925nTVh+HFh4MpegX8dPDYJae+NFVjQ67gY7O6iHIzQjLipDiYejFF0yHrhjU3XgLBQ==", "cpu": [ "x64" ], @@ -5560,10 +5368,30 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.22.1.tgz", + "integrity": "sha512-1FaBtcFrZqB2hkFbAxY//Pnp8koThvyB6AhjbdVqKD4/pu13Rl91fKt2N9qyeQPUt3xy7ORUvSO+dPk3J6EjXg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.21.5", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.21.5.tgz", - "integrity": "sha512-xN6+5/JsMrbZHL1lPl+MiNJ3Xza12ueBKPepiyDCFQzlhFRTj7D0LG+cfNTzPBTO8KcYQynLpl1iBB8LGp3Xtw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.22.1.tgz", + "integrity": "sha512-6rub98tYGfE5I5j0BP8t/2d4BZyu1S7Iz9vUkm0H26snAFHYxLfj3RbQn0xHHIePSetjLnhcg3QlfwUAkD/FYg==", "cpu": [ "arm" ], @@ -5581,9 +5409,9 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.21.5", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.21.5.tgz", - "integrity": "sha512-KfzFNhC4XTbmG3ma/xcTs/IhCwieW89XALIusKmnV0N618ZDXEB0XjWOYQRCXeK9mfqPdbTBpurEHV/XZtkniQ==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.22.1.tgz", + "integrity": "sha512-nYO5qGtb/1kkTZu3FeTiM+2B2TAb7m2DkLCTgQIs2bk2o9aEs7I96fwySKcoHWQAiQDGR9sMux9vkV4KQXqPaQ==", "cpu": [ "arm64" ], @@ -5601,9 +5429,9 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.21.5", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.21.5.tgz", - "integrity": "sha512-bc0GytQO5Mn9QM6szaZ+31fQHNdidgpM1sSCwzPItz8hg3wOvKl8039rU0veMJV3ZgC9z0ypNRceLrSHeRHmXw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.22.1.tgz", + "integrity": "sha512-MCV6RuRpzXbunvzwY644iz8cw4oQxvW7oer9xPkdadYqlEyiJJ6wl7FyJOH7Q6ZYH4yjGAUCvxDBxPbnDu9ZVg==", "cpu": [ "arm64" ], @@ -5621,9 +5449,9 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.21.5", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.21.5.tgz", - "integrity": "sha512-JwMbgypPQgc2kW2av3OwzZ8cbrEuIiDiXPJdXRE6aVxu67yHauJawQLqJKTGUhiAhy6iLDG8Wg0a3/ziL+m+Kw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.22.1.tgz", + "integrity": "sha512-RjNgpdM20VUXgV7us/VmlO3Vn2ZRiDnc3/bUxCVvySZWPiVPprpqW/QDWuzkGa+NCUf6saAM5CLsZLSxncXJwg==", "cpu": [ "x64" ], @@ -5641,9 +5469,9 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.21.5", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.21.5.tgz", - "integrity": "sha512-Ib8b6IQ/OR/VrPU6YBgy4T3QnuHY7DUa95O+nz+cwrTkMSN6fuHcTcIaz4t8TJ6HI5pl3uxUOZjmtls2pyQWow==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.22.1.tgz", + "integrity": "sha512-ZgO4C7Rd6Hv/5MnyY2KxOYmIlzk4rplVolDt3NbkNR8DndnyX0Q5IR4acJWNTBICQ21j3zySzKbcJaiJpk/4YA==", "cpu": [ "x64" ], @@ -5661,9 +5489,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.21.5", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.21.5.tgz", - "integrity": "sha512-A8cSi8lUpBeVmoF+DqqW7cd0FemDbCuKr490IXdjyeI+KL8adpSKUs8tcqO0OXPh1EoDqK7JNkD/dELmd4Iz5g==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.22.1.tgz", + "integrity": "sha512-4pozV4eyD0MDET41ZLHAeBo+H04Nm2UEYIk5w/ts40231dRFV7E0cjwbnZvSoc1DXFgecAhiC0L16ruv/ZDCpg==", "cpu": [ "x64" ], @@ -5696,43 +5524,34 @@ "dev": true }, "node_modules/lmdb": { - "version": "2.7.11", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.7.11.tgz", - "integrity": "sha512-x9bD4hVp7PFLUoELL8RglbNXhAMt5CYhkmss+CEau9KlNoilsTzNi9QDsPZb3KMpOGZXG6jmXhW3bBxE2XVztw==", + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.8.5.tgz", + "integrity": "sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ==", "dev": true, "hasInstallScript": true, "dependencies": { - "msgpackr": "1.8.5", - "node-addon-api": "^4.3.0", - "node-gyp-build-optional-packages": "5.0.6", - "ordered-binary": "^1.4.0", + "msgpackr": "^1.9.5", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.1.1", + "ordered-binary": "^1.4.1", "weak-lru-cache": "^1.2.2" }, "bin": { "download-lmdb-prebuilds": "bin/download-prebuilds.js" }, "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "2.7.11", - "@lmdb/lmdb-darwin-x64": "2.7.11", - "@lmdb/lmdb-linux-arm": "2.7.11", - "@lmdb/lmdb-linux-arm64": "2.7.11", - "@lmdb/lmdb-linux-x64": "2.7.11", - "@lmdb/lmdb-win32-x64": "2.7.11" - } - }, - "node_modules/lmdb/node_modules/msgpackr": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.8.5.tgz", - "integrity": "sha512-mpPs3qqTug6ahbblkThoUY2DQdNXcm4IapwOS3Vm/87vmpzLVelvp9h3It1y9l1VPpiFLV11vfOXnmeEwiIXwg==", - "dev": true, - "optionalDependencies": { - "msgpackr-extract": "^3.0.1" + "@lmdb/lmdb-darwin-arm64": "2.8.5", + "@lmdb/lmdb-darwin-x64": "2.8.5", + "@lmdb/lmdb-linux-arm": "2.8.5", + "@lmdb/lmdb-linux-arm64": "2.8.5", + "@lmdb/lmdb-linux-x64": "2.8.5", + "@lmdb/lmdb-win32-x64": "2.8.5" } }, "node_modules/lmdb/node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", "dev": true }, "node_modules/loader-utils": { @@ -5803,15 +5622,6 @@ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "dev": true }, - "node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/magic-string": { "version": "0.27.0", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", @@ -5824,96 +5634,17 @@ "node": ">=12" } }, - "node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true, - "optional": true, - "peer": true + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true }, "node_modules/memoize-one": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" }, - "node_modules/meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/merge-anything": { "version": "5.1.7", "resolved": "https://registry.npmjs.org/merge-anything/-/merge-anything-5.1.7.tgz", @@ -5928,15 +5659,6 @@ "url": "https://github.com/sponsors/mesqueeb" } }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -5950,15 +5672,6 @@ "node": ">=8.6" } }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -5971,110 +5684,6 @@ "node": "*" } }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dev": true, - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/mkdirp": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", @@ -6095,6 +5704,20 @@ "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.36.1.tgz", "integrity": "sha512-/CaclMHKQ3A6rnzBzOADfwdSJ25BFoFT0Emxsc4zYVyav5SkK9iA6lEtIeuN/oRYbwPgviJT+t3l+sjFa28jYg==" }, + "node_modules/monaco-graphql": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/monaco-graphql/-/monaco-graphql-1.3.0.tgz", + "integrity": "sha512-Ilz7kUKYfO5KGwandjR+eQbN+fj1fQY9OECIQlzgeWOkLXMZqXTsxf01iQfVw08mMsBz7qa6fZKsESouDcBN2g==", + "dependencies": { + "graphql-language-service": "^5.1.7", + "picomatch-browser": "^2.2.6" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0", + "monaco-editor": ">= 0.20.0 < 1", + "prettier": "^2.8.0 || ^3.0.0" + } + }, "node_modules/monaco-yaml": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/monaco-yaml/-/monaco-yaml-3.2.1.tgz", @@ -6130,9 +5753,9 @@ "dev": true }, "node_modules/msgpackr": { - "version": "1.9.6", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.9.6.tgz", - "integrity": "sha512-50rmb6+ZWvEm0vJn8R8CwI1Eavss3h5rgtKrcdUal3EkZcpqw82+xsmc7RoHb8fYB5V4EOU2NDaOitDAdO0t+w==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.10.1.tgz", + "integrity": "sha512-r5VRLv9qouXuLiIBrLpl2d5ZvPt8svdQTl5/vMvE4nzDMyEX4sgW5yWhuBBj5UmgwOTWj8CIdSXn5sAfsHAWIQ==", "dev": true, "optionalDependencies": { "msgpackr-extract": "^3.0.2" @@ -6172,12 +5795,6 @@ "node-gyp-build-optional-packages-test": "build-test.js" } }, - "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "dev": true - }, "node_modules/nanoid": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", @@ -6201,357 +5818,40 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-addon-api": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.0.0.tgz", - "integrity": "sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==", - "dev": true - }, - "node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "dev": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/node-gyp-build-optional-packages": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.6.tgz", - "integrity": "sha512-2ZJErHG4du9G3/8IWl/l9Bp5BBFy63rno5GVmjQijvTuUZKsl6g8RB4KH/x3NLcV5ZBb4GsXmAuTYr6dRml3Gw==", - "dev": true, - "bin": { - "node-gyp-build-optional-packages": "bin.js", - "node-gyp-build-optional-packages-optional": "optional.js", - "node-gyp-build-optional-packages-test": "build-test.js" - } - }, - "node_modules/node-gyp/node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dev": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/node-gyp/node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp/node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/node-gyp/node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/node-gyp/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/node-gyp/node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/node-gyp/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp/node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/node-gyp/node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "dev": true, - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/node-gyp/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp/node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/node-gyp/node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/node-gyp/node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/node-gyp/node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true - }, - "node_modules/node-sass": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-8.0.0.tgz", - "integrity": "sha512-jPzqCF2/e6JXw6r3VxfIqYc8tKQdkj5Z/BDATYyG6FL6b/LuYBNFGFVhus0mthcWifHm/JzBpKAd+3eXsWeK/A==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "async-foreach": "^0.1.3", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "lodash": "^4.17.15", - "make-fetch-happen": "^10.0.4", - "meow": "^9.0.0", - "nan": "^2.17.0", - "node-gyp": "^8.4.1", - "sass-graph": "^4.0.1", - "stdout-stream": "^1.4.0", - "true-case-path": "^2.2.1" - }, - "bin": { - "node-sass": "bin/node-sass" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/node-sass/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "node_modules/node-addon-api": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.0.0.tgz", + "integrity": "sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==", + "dev": true + }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz", + "integrity": "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==", "dev": true, "dependencies": { - "abbrev": "1" + "detect-libc": "^2.0.1" }, "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" } }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "node_modules/node-gyp-build-optional-packages/node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true }, "node_modules/normalize-url": { "version": "6.1.0", @@ -6570,21 +5870,6 @@ "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" }, - "node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -6600,8 +5885,7 @@ "node_modules/nullthrows": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", - "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", - "dev": true + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" }, "node_modules/once": { "version": "1.4.0", @@ -6630,9 +5914,9 @@ } }, "node_modules/ordered-binary": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.4.1.tgz", - "integrity": "sha512-9LtiGlPy982CsgxZvJGNNp2/NnrgEr6EAyN3iIEP3/8vd3YLgAZQHbQ75ZrkfBRGrNg37Dk3U6tuVb+B4Xfslg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.1.tgz", + "integrity": "sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==", "dev": true }, "node_modules/p-finally": { @@ -6674,21 +5958,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-queue": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", @@ -6717,32 +5986,23 @@ "node": ">=8" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/parcel": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.9.3.tgz", - "integrity": "sha512-2GTVocFkwblV/TIg9AmT7TI2fO4xdWkyN8aFUEVtiVNWt96GTR3FgQyHFValfCbcj1k9Xf962Ws2hYXYUr9k1Q==", - "dev": true, - "dependencies": { - "@parcel/config-default": "2.9.3", - "@parcel/core": "2.9.3", - "@parcel/diagnostic": "2.9.3", - "@parcel/events": "2.9.3", - "@parcel/fs": "2.9.3", - "@parcel/logger": "2.9.3", - "@parcel/package-manager": "2.9.3", - "@parcel/reporter-cli": "2.9.3", - "@parcel/reporter-dev-server": "2.9.3", - "@parcel/reporter-tracer": "2.9.3", - "@parcel/utils": "2.9.3", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.11.0.tgz", + "integrity": "sha512-H/RI1/DmuOkL8RuG/EpNPvtzrbF+7jA/R56ydEEm+lqFbYktKB4COR7JXdHkZXRgbSJyimrFB8d0r9+SaRnj0Q==", + "dev": true, + "dependencies": { + "@parcel/config-default": "2.11.0", + "@parcel/core": "2.11.0", + "@parcel/diagnostic": "2.11.0", + "@parcel/events": "2.11.0", + "@parcel/fs": "2.11.0", + "@parcel/logger": "2.11.0", + "@parcel/package-manager": "2.11.0", + "@parcel/reporter-cli": "2.11.0", + "@parcel/reporter-dev-server": "2.11.0", + "@parcel/reporter-tracer": "2.11.0", + "@parcel/utils": "2.11.0", "chalk": "^4.1.0", "commander": "^7.0.0", "get-port": "^4.2.0" @@ -6852,6 +6112,17 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/picomatch-browser": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/picomatch-browser/-/picomatch-browser-2.2.6.tgz", + "integrity": "sha512-0ypsOQt9D4e3hziV8O4elD9uN0z/jtUEfxVRtNaAAtXIyUx9m/SzlO020i8YNL2aL/E6blOvvHQcin6HZlFy/w==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/pify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", @@ -6865,9 +6136,9 @@ } }, "node_modules/postcss": { - "version": "8.4.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", - "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", @@ -7373,9 +6644,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -7401,74 +6672,6 @@ "postcss": "^8.2.15" } }, - "node_modules/postcss-svgo/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/postcss-svgo/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/postcss-svgo/node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/postcss-svgo/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "node_modules/postcss-svgo/node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dev": true, - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/postcss-unique-selectors": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", @@ -7552,7 +6755,6 @@ "version": "2.8.8", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, "bin": { "prettier": "bin-prettier.js" }, @@ -7584,31 +6786,6 @@ "node": ">= 0.6.0" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/promise.series": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz", @@ -7647,15 +6824,6 @@ } ] }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/react-error-overlay": { "version": "6.0.9", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", @@ -7671,188 +6839,11 @@ "node": ">=0.10.0" } }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true }, "node_modules/resolve": { "version": "1.22.4", @@ -7880,15 +6871,6 @@ "node": ">=4" } }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -7949,23 +6931,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/rollup-plugin-copy-watch": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-copy-watch/-/rollup-plugin-copy-watch-0.0.1.tgz", - "integrity": "sha512-TjlXZsmsdLWd4Jx1M6qUQqLgRxJlTpmHchPTN6s4d58ubYAa7DlbMrqGz5In1Xg/iN7p19YNpcGGKWu0ImHpVg==", - "dev": true, - "dependencies": { - "@types/fs-extra": "^8.0.1", - "chokidar": "^3.4.0", - "colorette": "^1.1.0", - "fs-extra": "^8.1.0", - "globby": "10.0.1", - "is-plain-object": "^3.0.0" - }, - "engines": { - "node": ">=8.3" - } - }, "node_modules/rollup-plugin-esbuild": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-5.0.0.tgz", @@ -8092,70 +7057,6 @@ "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==", "dev": true }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "optional": true - }, - "node_modules/sass-graph": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-4.0.1.tgz", - "integrity": "sha512-5YCfmGBmxoIRYHnKK2AKzrAkCoQ8ozO+iumT8K4tXJXRVCPf+7s1/9KxTSW3Rbvf+7Y7b4FR3mWyLnQr3PHocA==", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "lodash": "^4.17.11", - "scss-tokenizer": "^0.4.3", - "yargs": "^17.2.1" - }, - "bin": { - "sassgraph": "bin/sassgraph" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/sass-graph/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/scss-tokenizer": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.4.3.tgz", - "integrity": "sha512-raKLgf1LI5QMQnG+RxHz6oK0sL3x3I4FN2UDLqgLOGO8hodECNnNh5BXn7fAyBxrA8zVzdQizQ6XjNJQ+uBwMw==", - "dev": true, - "dependencies": { - "js-base64": "^2.4.9", - "source-map": "^0.7.3" - } - }, - "node_modules/scss-tokenizer/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -8181,12 +7082,6 @@ "node": ">=10" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -8208,59 +7103,6 @@ "node": ">=8" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "dev": true, - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -8278,38 +7120,6 @@ "node": ">=0.10.0" } }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", - "dev": true - }, "node_modules/srcset": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", @@ -8322,18 +7132,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", @@ -8341,54 +7139,6 @@ "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", "dev": true }, - "node_modules/stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.1" - } - }, - "node_modules/stdout-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/stdout-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/stdout-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/string-hash": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", @@ -8421,18 +7171,6 @@ "node": ">=8" } }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -8492,67 +7230,24 @@ } }, "node_modules/svgo": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.2.tgz", - "integrity": "sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.2.1", - "csso": "^5.0.5", - "picocolors": "^1.0.0" + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" }, "bin": { "svgo": "bin/svgo" }, "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, - "node_modules/tar": { - "version": "6.1.15", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", - "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" + "node": ">=10.13.0" } }, "node_modules/term-size": { @@ -8599,25 +7294,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/true-case-path": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", - "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", - "dev": true - }, "node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/type-check": { @@ -8657,43 +7337,10 @@ "node": ">=4.2.0" } }, - "node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -8744,16 +7391,6 @@ "node": ">= 4" } }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "node_modules/vscode-languageserver-textdocument": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz", @@ -8764,11 +7401,6 @@ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz", "integrity": "sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==" }, - "node_modules/vscode-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", - "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==" - }, "node_modules/vue": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", @@ -8826,32 +7458,6 @@ "node": ">= 8" } }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -8867,21 +7473,6 @@ "node": ">=12" } }, - "node_modules/xxhash-wasm": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz", - "integrity": "sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA==", - "dev": true - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -8901,42 +7492,6 @@ "resolved": "https://registry.npmjs.org/yaml-language-server-parser/-/yaml-language-server-parser-0.1.3.tgz", "integrity": "sha512-xD2I+6M/vqQvcy4ded8JpXUaDHXmZMdhIO3OpuiFxstutwnW4whrfDzNcrsfXVdgMWqOUpdv3747Q081PFN1+g==" }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/web/package.json b/web/package.json index 03f849e..2795278 100644 --- a/web/package.json +++ b/web/package.json @@ -5,28 +5,26 @@ "build": "cross-env NODE_OPTIONS=--max_old_space_size=8192 npm run fonts && npm run copy-styles && rollup -c && npm run monaco-workers", "build-prod": "npm run fonts && npm run copy-styles && npm run monaco-workers && cross-env NODE_ENV=production rollup -c ", "esbuild": "node es-build.js", - "watch": "cross-env VSCODE_PLY_WEB_WATCH='css/style.scss' NODE_OPTIONS=--max_old_space_size=8192 rollup --watch -c", + "watch": "cross-env NODE_OPTIONS=--max_old_space_size=8192 rollup --watch -c", "fonts": "npx mkdirp out/fonts && npm run copy-fonts", "copy-fonts": "cp node_modules/@vscode/codicons/dist/codicon.ttf out || copy node_modules\\@vscode\\codicons\\dist\\codicon.ttf out", - "copy-styles": "cp node_modules/flowbee/dist/css/style.css out/flowbee.css || copy node_modules\\flowbee\\dist\\css\\style.css out\\flowbee.css", + "copy-styles": "cp css/style.css out/style.css || copy css\\style.css out\\style.css cp node_modules/flowbee/dist/css/style.css out/flowbee.css || copy node_modules\\flowbee\\dist\\css\\style.css out\\flowbee.css", "editor-worker": "parcel build node_modules/monaco-editor/esm/vs/editor/editor.worker.js --dist-dir out/workers", "json-worker": "parcel build node_modules/monaco-editor/esm/vs/language/json/json.worker.js --dist-dir out/workers", "yaml-worker": "parcel build node_modules/monaco-yaml/lib/esm/yaml.worker.js --dist-dir out/workers", - "monaco-workers": "npm run editor-worker && npm run json-worker && npm run yaml-worker" - }, - "overrides": { - "sass-graph": "^4.0.1" + "graphql-worker": "parcel build node_modules/monaco-graphql/esm/graphql.worker.js --dist-dir out/workers", + "monaco-workers": "npm run editor-worker && npm run json-worker && npm run yaml-worker && npm run graphql-worker" }, "dependencies": { "@ply-ct/ply-values": "^0.3.7", "@vscode/codicons": "^0.0.32", "element-plus": "^2.3.5", - "flowbee": "^1.1.10", + "flowbee": "^1.1.14", "http-status-codes": "^2.2.0", "js-yaml": "^4.1.0", "monaco-editor": "^0.36.1", "monaco-yaml": "^3.2.1", - "vscode-uri": "^3.0.7", + "monaco-graphql": "^1.3.0", "vue": "^3.3.4" }, "devDependencies": { @@ -41,11 +39,9 @@ "eslint-plugin-prettier-vue": "^4.2.0", "eslint-plugin-vue": "^9.8.0", "mkdirp": "^2.1.3", - "node-sass": "^8.0.0", - "parcel": "^2.8.3", + "parcel": "^2.11.0", "process": "^0.11.10", "rollup": "^2.79.1", - "rollup-plugin-copy-watch": "^0.0.1", "rollup-plugin-esbuild": "^5.0.0", "rollup-plugin-postcss": "^4.0.2", "rollup-plugin-vue": "^6.0.0", diff --git a/web/rollup.config.js b/web/rollup.config.js index f42af05..977dc3a 100644 --- a/web/rollup.config.js +++ b/web/rollup.config.js @@ -4,8 +4,6 @@ import commonjs from '@rollup/plugin-commonjs'; import esbuild from 'rollup-plugin-esbuild'; import postcss from 'rollup-plugin-postcss'; import replace from '@rollup/plugin-replace'; -import copy from 'rollup-plugin-copy-watch'; -import sass from 'node-sass'; import json from '@rollup/plugin-json'; console.log('NODE_ENV: ' + process.env.NODE_ENV); @@ -32,17 +30,6 @@ export default { preventAssignment: true, 'process.env.NODE_ENV': JSON.stringify('production') }), - copy({ - watch: process.env.VSCODE_PLY_WEB_WATCH, - targets: [ - { - src: 'css/style.scss', - dest: 'out', - rename: 'style.css', - transform: (contents) => sass.renderSync({ data: contents.toString() }).css - } - ] - }), json({ compact: true }) diff --git a/web/src/components/Response.vue b/web/src/components/Response.vue index 170531c..82db073 100644 --- a/web/src/components/Response.vue +++ b/web/src/components/Response.vue @@ -37,7 +37,7 @@ /> - + this.onValuesAction(actionEvent)); + this.popup.onPopupAction((actionEvent) => this.onValuesAction(actionEvent)); this.popup.onOpenValues((openValuesEvent) => this.$emit('openFile', openValuesEvent.path)); } - this.popup.render(this.getUserValues(), this.getOptions()); + this.popup.iconBase = this.iconBase; + this.popup.render({ values: this.getUserValues(), options: this.getOptions() }); }, closePopup() { this.popup?.close(); diff --git a/web/src/util/content.ts b/web/src/util/content.ts index 23277e7..afa6418 100644 --- a/web/src/util/content.ts +++ b/web/src/util/content.ts @@ -1,7 +1,7 @@ import { Request, Response } from '../model/request'; export type ContentHolder = Request | Response; -export type Language = 'plaintext' | 'json' | 'html' | 'xml' | 'yaml'; +export type Language = 'plaintext' | 'json' | 'html' | 'xml' | 'yaml' | 'graphql'; export const getContentType = (holder: ContentHolder): string | undefined => { const key = Object.keys(holder.headers).find((k) => k.toLowerCase() === 'content-type'); @@ -20,17 +20,38 @@ export const getLanguage = ( defaultLang: Language = 'plaintext' ): Language => { const contentType = getContentType(holder); - if (!contentType) return defaultLang; - - if (contentType === 'application/json' || holder.body?.startsWith('{')) { - return 'json'; - } else if (contentType === 'text/html' || holder.body?.startsWith('')) { - return 'html'; - } else if (contentType === 'application/xml' || holder.body?.startsWith('<')) { - return 'xml'; - } else if (contentType.endsWith('/yaml')) { - return 'yaml'; + if (contentType) { + if (contentType === 'application/json') { + return isGraphql(holder.body) ? 'graphql' : 'json'; + } else if (contentType === 'text/html') { + return 'html'; + } else if (contentType === 'application/xml') { + return 'xml'; + } else if ( + contentType?.endsWith('/yaml') || + contentType === 'application/vnd.oai.openapi' // TODO: what about json? + ) { + return 'yaml'; + } } else { - return defaultLang; + // infer from content + if (holder.body?.startsWith('{')) { + return 'json'; + } else if ( + holder.body?.startsWith('') || + holder.body?.startsWith('') + ) { + return 'html'; + } else if (holder.body?.startsWith('<')) { + return 'xml'; + } else if (isGraphql(holder.body)) { + return 'graphql'; + } } + + return defaultLang; +}; + +const isGraphql = (body?: string): boolean => { + return !!(body?.startsWith('query') || body?.startsWith('mutation')); }; diff --git a/web/src/util/monaco.ts b/web/src/util/monaco.ts index 90bfa9e..16536c7 100644 --- a/web/src/util/monaco.ts +++ b/web/src/util/monaco.ts @@ -34,6 +34,8 @@ export const initialize = () => { url = `${baseUrl}/json.worker.js`; } else if (label === 'yaml') { url = `${baseUrl}/yaml.worker.js`; + } else if (label === 'graphql') { + url = `${baseUrl}/graphql.worker.js`; } const blob = await (await fetch(url)).blob(); return new Worker(URL.createObjectURL(blob)); @@ -121,7 +123,7 @@ export const getExpressions = ( return []; }; -export const expressionLanguages = ['json', 'yaml', 'xml']; +export const expressionLanguages = ['json', 'yaml', 'xml', 'graphql']; export const registeredHoverLanguages: string[] = []; export const filterMarkers = ( diff --git a/web/test/request.html b/web/test/request.html index fe5073a..37df9ae 100644 --- a/web/test/request.html +++ b/web/test/request.html @@ -17,7 +17,6 @@ const acquireVsCodeApi = () => { return { postMessage: (obj) => { - console.log('RECEIVED: ' + JSON.stringify(obj, null, 2)); if (obj.type === 'ready') { const evt = new CustomEvent('message'); evt.data = {