From 39b843233bc9495af99cc914fcc80b96323dab97 Mon Sep 17 00:00:00 2001
From: timea-solid <4144203+timea-solid@users.noreply.github.com>
Date: Mon, 16 Feb 2026 10:28:12 +0100
Subject: [PATCH 001/118] local dev setup
---
dev/context.ts | 27 +
dev/dev-global.css | 387 ++++
dev/index.html | 57 +
dev/index.ts | 31 +
package-lock.json | 5029 +++++++++++++++++++++++++++++++++++++---
package.json | 12 +-
webpack.dev.config.mjs | 95 +
7 files changed, 5378 insertions(+), 260 deletions(-)
create mode 100644 dev/context.ts
create mode 100644 dev/dev-global.css
create mode 100644 dev/index.html
create mode 100644 dev/index.ts
create mode 100644 webpack.dev.config.mjs
diff --git a/dev/context.ts b/dev/context.ts
new file mode 100644
index 0000000..7faa6c9
--- /dev/null
+++ b/dev/context.ts
@@ -0,0 +1,27 @@
+import { default as pane } from '../src/contactsPane'
+import { DataBrowserContext, PaneRegistry } from 'pane-registry'
+import { solidLogicSingleton, store } from 'solid-logic'
+import { LiveStore } from 'rdflib'
+
+// Configure fetcher for development
+if (store.fetcher) {
+ // Configure for cross-origin requests
+ (store.fetcher as any).crossSite = true;
+ (store.fetcher as any).withCredentials = false;
+}
+
+export const context: DataBrowserContext = {
+ session: {
+ store: store as LiveStore,
+ paneRegistry: {
+ byName: (name: string) => {
+ return pane
+ }
+ } as PaneRegistry,
+ logic: solidLogicSingleton
+ },
+ dom: document,
+ getOutliner: () => null,
+}
+
+export const fetcher = store.fetcher
diff --git a/dev/dev-global.css b/dev/dev-global.css
new file mode 100644
index 0000000..93ff2b1
--- /dev/null
+++ b/dev/dev-global.css
@@ -0,0 +1,387 @@
+/* ---ONLY FOR LOCAL DEV--- */
+/* ---final version is in mashlib--- */
+
+/* Global CSS: base styles, variables, and resets */
+/* Accessible color palette */
+
+:root {
+ /* Primary/Accent colors (profile-pane specific) */
+ --color-primary: #7C4DFF; /* Vivid Purple */
+ --color-secondary: #0077B6; /* Accessible Blue */
+ --color-accent: #FFD600; /* Bright Yellow */
+ --color-error: #B00020; /* Accessible Red */
+ --color-success: #00C853; /* Accessible Green */
+
+ /* Card/Section backgrounds */
+ --color-background: #FFFFFF; /* White */
+ --color-card-bg: #FFFFFF; /* White for inner cards */
+ --color-section-bg: #F5F5F5; /* Light grey for outer sections */
+
+ --color-text: #1A1A1A; /* Near-black */
+ --color-text-secondary: #666; /* Added for repeated usage */
+ --color-text-muted: #444; /* Added for repeated usage */
+ --color-border-pale: #eee; /* Added for repeated borders */
+ --border-radius-full: 1em; /* Matches module usage */
+ --border-radius-base: 0.5em;
+ --box-shadow: 0 2px 8px rgba(124,77,255,0.08); /* Matches module usage */
+ --box-shadow-sm: 0 1px 4px rgba(124,77,255,0.12);
+ --spacing-xs: 0.5em;
+ --spacing-sm: 0.75em;
+ --spacing-md: 1em;
+ --spacing-lg: 1.5em;
+ --spacing-xl: 2em;
+ --font-family-base: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
+ --font-size-base: 1em; /* 16px default */
+ --font-size-sm: 0.875em; /* 14px */
+ --font-size-lg: 1.125em; /* 18px */
+ --font-size-xl: 1.25em; /* 20px */
+ --line-height-base: 1.5; /* WCAG recommended */
+ --line-height-tight: 1.4;
+ --line-height-loose: 1.6;
+ --letter-spacing-wide: 0.025em;
+
+ /* Minimum font sizes for accessibility */
+ --min-font-size: 14px;
+ --min-line-height: 1.4;
+
+ /* Accessibility improvements */
+ --min-touch-target: 44px; /* WCAG minimum touch target */
+ --focus-ring-width: 2px;
+ --animation-duration: 0.2s; /* Reduced motion friendly */
+
+ /* Additional accessibility variables */
+ --focus-indicator-width: 3px;
+ --animation-duration-slow: 0.3s;
+ --high-contrast-ratio: 7:1; /* WCAG AAA standard */
+}
+
+
+/* Improve text rendering */
+html, body {
+ margin: 0;
+ padding: 0;
+ font-family: var(--font-family-base);
+ font-size: var(--font-size-base);
+ line-height: var(--line-height-base);
+ background: var(--color-background);
+ color: var(--color-text);
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ text-rendering: optimizeLegibility;
+}
+
+/* Improved heading hierarchy */
+h1, h2, h3, h4, h5, h6 {
+ color: var(--color-primary);
+ font-weight: 600;
+ line-height: var(--line-height-tight);
+ margin-top: 0;
+ margin-bottom: var(--spacing-sm);
+}
+
+h1 { font-size: 2em; } /* 32px */
+h2 { font-size: 1.5em; } /* 24px */
+h3 { font-size: 1.25em; } /* 20px */
+h4 { font-size: 1.125em; }/* 18px */
+h5, h6 { font-size: 1em; }/* 16px */
+
+/* Better paragraph spacing */
+p {
+ margin-bottom: var(--spacing-md);
+ line-height: var(--line-height-base);
+ max-width: 65ch; /* Optimal reading width */
+}
+
+/* Improved link accessibility */
+a {
+ color: var(--color-primary);
+ text-decoration: underline;
+ text-underline-offset: 0.125em;
+ text-decoration-thickness: 0.0625em;
+}
+
+a:hover, a:focus {
+ text-decoration-thickness: 0.125em;
+}
+
+/* Ensure minimum font sizes are respected */
+@media screen and (max-width: 768px) {
+ html {
+ font-size: max(16px, 1rem); /* Never smaller than 16px on mobile */
+ }
+}
+
+/* Support for larger text preferences */
+@media (prefers-reduced-motion: no-preference) {
+ html {
+ scroll-behavior: smooth;
+ }
+}
+
+/* Accessibility: focus styles */
+:focus {
+ outline: 2px solid var(--color-primary);
+ outline-offset: 1px;
+ box-shadow: 0 0 0 1px var(--color-background);
+}
+
+/* Accessibility: Respect user motion preferences */
+@media (prefers-reduced-motion: reduce) {
+ *, *::before, *::after {
+ animation-duration: 0.01ms !important;
+ animation-iteration-count: 1 !important;
+ transition-duration: 0.01ms !important;
+ scroll-behavior: auto !important;
+ }
+}
+
+/* Accessibility: High contrast mode support */
+@media (prefers-contrast: high) {
+ :root {
+ --color-border-pale: #000;
+ --box-shadow: 0 2px 4px rgba(0,0,0,0.5);
+ --box-shadow-sm: 0 1px 2px rgba(0,0,0,0.3);
+ }
+}
+
+/* Accessibility: Improved focus management */
+:focus-visible {
+ outline: var(--focus-ring-width) solid var(--color-primary);
+ outline-offset: 2px;
+ box-shadow: 0 0 0 1px var(--color-background);
+}
+
+:focus:not(:focus-visible) {
+ outline: none;
+}
+
+/* Skip link for screen readers */
+.skip-link {
+ position: absolute;
+ top: -40px;
+ left: 6px;
+ background: var(--color-primary);
+ color: white;
+ padding: var(--spacing-sm) var(--spacing-md);
+ text-decoration: none;
+ border-radius: var(--border-radius-base);
+ z-index: 1000;
+ font-weight: 600;
+ font-size: var(--font-size-base);
+ line-height: 1;
+}
+
+.skip-link:focus {
+ top: 6px;
+ outline: 2px solid white;
+ outline-offset: 2px;
+}
+
+/* Semantic HTML5 improvements */
+article, aside, section {
+ display: block;
+}
+
+header {
+ margin-bottom: var(--spacing-md);
+}
+
+nav {
+ display: block;
+}
+
+nav ul {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+
+/* Enhanced keyboard navigation */
+*:focus-visible {
+ outline: var(--focus-indicator-width) solid var(--color-primary);
+ outline-offset: 2px;
+ box-shadow: 0 0 0 1px var(--color-background), 0 0 0 4px rgba(124, 77, 255, 0.2);
+ border-radius: 2px;
+ transition: none; /* Remove transitions on focus for immediate feedback */
+}
+
+/* Improve focus management for interactive elements */
+[role="button"]:focus,
+[role="link"]:focus,
+button:focus,
+a:focus {
+ outline: 2px solid var(--color-primary);
+ outline-offset: 2px;
+ box-shadow: 0 0 0 1px var(--color-background);
+}
+
+/* Enhanced error message accessibility */
+[role="alert"] {
+ padding: var(--spacing-md);
+ border: 2px solid var(--color-error);
+ border-radius: var(--border-radius-base);
+ background-color: rgba(176, 0, 32, 0.1);
+ margin: var(--spacing-md) 0;
+}
+
+/* Success message styling */
+[role="status"] {
+ padding: var(--spacing-md);
+ border: 2px solid var(--color-success);
+ border-radius: var(--border-radius-base);
+ background-color: rgba(0, 200, 83, 0.1);
+ margin: var(--spacing-md) 0;
+}
+
+/* Enhanced table accessibility */
+table {
+ border-collapse: collapse;
+ width: 100%;
+}
+
+th {
+ background-color: var(--color-section-bg);
+ font-weight: 600;
+ text-align: left;
+ padding: var(--spacing-sm);
+}
+
+td {
+ padding: var(--spacing-sm);
+}
+
+/* Focus trap for modals */
+.focus-trap {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 9999;
+ background: rgba(0, 0, 0, 0.5);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+/* Enhanced button accessibility */
+button, [role="button"] {
+ cursor: pointer;
+ border: none;
+ border-radius: var(--border-radius-base);
+ padding: var(--spacing-sm) var(--spacing-md);
+ min-height: var(--min-touch-target);
+ min-width: var(--min-touch-target);
+ font-size: var(--font-size-base);
+ font-weight: 600;
+ transition: all var(--animation-duration) ease;
+ position: relative;
+}
+
+button:disabled, [role="button"][aria-disabled="true"] {
+ opacity: 0.6;
+ cursor: not-allowed;
+ pointer-events: none;
+}
+
+/* Loading indicator accessibility */
+.loading-spinner {
+ width: 40px;
+ height: 40px;
+ border: 3px solid var(--color-border-pale);
+ border-top: 3px solid var(--color-primary);
+ border-radius: 50%;
+ animation: spin 1s linear infinite;
+}
+
+@keyframes spin {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(360deg); }
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .loading-spinner {
+ animation: none;
+ border-top-color: var(--color-primary);
+ }
+}
+
+/* Utility classes */
+.u-flex {
+ display: flex;
+}
+.u-grid {
+ display: grid;
+}
+.u-center {
+ justify-content: center;
+ align-items: center;
+}
+.u-gap {
+ gap: 1em;
+}
+
+/* Common card component - used across all modules */
+.module-card {
+ background: var(--color-card-bg);
+ border-radius: var(--border-radius);
+ box-shadow: var(--box-shadow);
+ padding: var(--spacing-lg);
+ margin-bottom: var(--spacing-lg);
+ width: 100%;
+ max-width: 100%;
+ box-sizing: border-box;
+}
+
+/* Common header styles */
+.module-header {
+ text-align: center;
+ margin-bottom: var(--spacing-md);
+}
+
+/* Common flex patterns */
+.flex-center {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.flex-column {
+ display: flex;
+ flex-direction: column;
+}
+
+.flex-column-center {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+/* Text utilities */
+.text-center {
+ text-align: center;
+}
+
+.text-secondary {
+ color: var(--color-text-secondary);
+}
+
+.text-muted {
+ color: var(--color-text-muted);
+}
+
+/* Override solid-ui error message close button styling */
+.errorMessageBlock .close,
+.errorMessageBlock button[type="button"],
+.errorMessageBlock .button {
+ background: var(--color-border-pale) !important;
+ color: var(--color-text) !important;
+ border: 1px solid var(--color-border-pale) !important;
+}
+
+.errorMessageBlock .close:hover,
+.errorMessageBlock button[type="button"]:hover,
+.errorMessageBlock .button:hover {
+ background: var(--color-text-secondary) !important;
+ color: var(--color-background) !important;
+}
\ No newline at end of file
diff --git a/dev/index.html b/dev/index.html
new file mode 100644
index 0000000..3b5ca7d
--- /dev/null
+++ b/dev/index.html
@@ -0,0 +1,57 @@
+
+
+
+
+ contacts-pane dev server
+
+
+
+
+
+
+
+
+pane under development
+
+
+
+Rendering...
+
+
diff --git a/dev/index.ts b/dev/index.ts
new file mode 100644
index 0000000..9b76f54
--- /dev/null
+++ b/dev/index.ts
@@ -0,0 +1,31 @@
+import { sym } from 'rdflib'
+import { default as pane } from '../src/contactsPane'
+import './dev-global.css' // Import after src to override component styles
+import { context, fetcher } from './context'
+import { authn, authSession } from 'solid-logic'
+import * as UI from 'solid-ui'
+
+const loginBanner = document.getElementById('loginBanner')
+const webId = document.getElementById('webId')
+
+loginBanner.appendChild(UI.login.loginStatusBox(document, null, {}))
+
+async function finishLogin() {
+ await authSession.handleIncomingRedirect()
+ const session = authSession
+ if (session.info.isLoggedIn) {
+ // Update the page with the status.
+ webId.innerHTML = 'Logged in as: ' + authn.currentUser().uri
+ } else {
+ webId.innerHTML = ''
+ }
+ fetcher.load(webIdToShow).then(() => {
+ const app = pane.render(sym(webIdToShow), context)
+ document.getElementById('app').replaceWith(app)
+})
+}
+
+finishLogin()
+
+const webIdToShow = 'https://testingsolidos.solidcommunity.net/profile/card#me'
+
diff --git a/package-lock.json b/package-lock.json
index b3c91c9..6188f58 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -22,20 +22,27 @@
"babel-jest": "^30.2.0",
"babel-loader": "^10.0.0",
"babel-plugin-inline-import": "^3.0.0",
+ "baseline-browser-mapping": "^2.9.19",
"buffer": "^6.0.3",
+ "css-loader": "^7.1.3",
"eslint": "^9.39.2",
"eslint-plugin-import": "^2.32.0",
"globals": "^17.1.0",
+ "html-webpack-plugin": "^5.6.6",
"jest": "^30.2.0",
"jest-environment-jsdom": "^30.2.0",
"jest-fetch-mock": "^3.0.3",
"neostandard": "^0.12.2",
+ "node-polyfill-webpack-plugin": "^4.1.0",
"pane-registry": "^3.0.1",
"rdflib": "^2.3.5",
"solid-logic": "^4.0.2",
"solid-ui": "^3.0.3",
+ "style-loader": "^4.0.0",
"typescript": "^5.9.3",
- "typescript-transpile-only": "^0.0.4"
+ "typescript-transpile-only": "^0.0.4",
+ "webpack-cli": "^6.0.1",
+ "webpack-dev-server": "^5.2.3"
},
"peerDependencies": {
"rdflib": "^2.3.5",
@@ -2024,6 +2031,16 @@
"node": ">=18.0"
}
},
+ "node_modules/@discoveryjs/json-ext": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz",
+ "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.17.0"
+ }
+ },
"node_modules/@emnapi/core": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz",
@@ -3114,7 +3131,6 @@
"integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25"
@@ -3138,6 +3154,13 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "node_modules/@leichtgewicht/ip-codec": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
+ "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@napi-rs/wasm-runtime": {
"version": "0.2.12",
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz",
@@ -3198,6 +3221,242 @@
"node": ">=12.4.0"
}
},
+ "node_modules/@peculiar/asn1-cms": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.6.1.tgz",
+ "integrity": "sha512-vdG4fBF6Lkirkcl53q6eOdn3XYKt+kJTG59edgRZORlg/3atWWEReRCx5rYE1ZzTTX6vLK5zDMjHh7vbrcXGtw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.1",
+ "@peculiar/asn1-x509-attr": "^2.6.1",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-cms/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/@peculiar/asn1-csr": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.6.1.tgz",
+ "integrity": "sha512-WRWnKfIocHyzFYQTka8O/tXCiBquAPSrRjXbOkHbO4qdmS6loffCEGs+rby6WxxGdJCuunnhS2duHURhjyio6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.1",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-csr/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/@peculiar/asn1-ecc": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.6.1.tgz",
+ "integrity": "sha512-+Vqw8WFxrtDIN5ehUdvlN2m73exS2JVG0UAyfVB31gIfor3zWEAQPD+K9ydCxaj3MLen9k0JhKpu9LqviuCE1g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.1",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-ecc/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/@peculiar/asn1-pfx": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.6.1.tgz",
+ "integrity": "sha512-nB5jVQy3MAAWvq0KY0R2JUZG8bO/bTLpnwyOzXyEh/e54ynGTatAR+csOnXkkVD9AFZ2uL8Z7EV918+qB1qDvw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-cms": "^2.6.1",
+ "@peculiar/asn1-pkcs8": "^2.6.1",
+ "@peculiar/asn1-rsa": "^2.6.1",
+ "@peculiar/asn1-schema": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-pfx/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/@peculiar/asn1-pkcs8": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.6.1.tgz",
+ "integrity": "sha512-JB5iQ9Izn5yGMw3ZG4Nw3Xn/hb/G38GYF3lf7WmJb8JZUydhVGEjK/ZlFSWhnlB7K/4oqEs8HnfFIKklhR58Tw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.1",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-pkcs8/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/@peculiar/asn1-pkcs9": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.6.1.tgz",
+ "integrity": "sha512-5EV8nZoMSxeWmcxWmmcolg22ojZRgJg+Y9MX2fnE2bGRo5KQLqV5IL9kdSQDZxlHz95tHvIq9F//bvL1OeNILw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-cms": "^2.6.1",
+ "@peculiar/asn1-pfx": "^2.6.1",
+ "@peculiar/asn1-pkcs8": "^2.6.1",
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.1",
+ "@peculiar/asn1-x509-attr": "^2.6.1",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-pkcs9/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/@peculiar/asn1-rsa": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.6.1.tgz",
+ "integrity": "sha512-1nVMEh46SElUt5CB3RUTV4EG/z7iYc7EoaDY5ECwganibQPkZ/Y2eMsTKB/LeyrUJ+W/tKoD9WUqIy8vB+CEdA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.1",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-rsa/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/@peculiar/asn1-schema": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz",
+ "integrity": "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "asn1js": "^3.0.6",
+ "pvtsutils": "^1.3.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-schema/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/@peculiar/asn1-x509": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.6.1.tgz",
+ "integrity": "sha512-O9jT5F1A2+t3r7C4VT7LYGXqkGLK7Kj1xFpz7U0isPrubwU5PbDoyYtx6MiGst29yq7pXN5vZbQFKRCP+lLZlA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "pvtsutils": "^1.3.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-x509-attr": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.6.1.tgz",
+ "integrity": "sha512-tlW6cxoHwgcQghnJwv3YS+9OO1737zgPogZ+CgWRUK4roEwIPzRH4JEiG770xe5HX2ATfCpmX60gurfWIF9dcQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.1",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-x509-attr/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/@peculiar/asn1-x509/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/@peculiar/x509": {
+ "version": "1.14.3",
+ "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz",
+ "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-cms": "^2.6.0",
+ "@peculiar/asn1-csr": "^2.6.0",
+ "@peculiar/asn1-ecc": "^2.6.0",
+ "@peculiar/asn1-pkcs9": "^2.6.0",
+ "@peculiar/asn1-rsa": "^2.6.0",
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "pvtsutils": "^1.3.6",
+ "reflect-metadata": "^0.2.2",
+ "tslib": "^2.8.1",
+ "tsyringe": "^4.10.0"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/@peculiar/x509/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
@@ -3383,6 +3642,48 @@
"@babel/types": "^7.28.2"
}
},
+ "node_modules/@types/body-parser": {
+ "version": "1.19.6",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz",
+ "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/bonjour": {
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz",
+ "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/connect": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/connect-history-api-fallback": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz",
+ "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/express-serve-static-core": "*",
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/eslint": {
"version": "9.6.1",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
@@ -3414,6 +3715,56 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/express": {
+ "version": "4.17.25",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz",
+ "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.33",
+ "@types/qs": "*",
+ "@types/serve-static": "^1"
+ }
+ },
+ "node_modules/@types/express-serve-static-core": {
+ "version": "4.19.8",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz",
+ "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*",
+ "@types/send": "*"
+ }
+ },
+ "node_modules/@types/html-minifier-terser": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
+ "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/http-errors": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz",
+ "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/http-proxy": {
+ "version": "1.17.17",
+ "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz",
+ "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/istanbul-lib-coverage": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
@@ -3478,6 +3829,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/mime": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/node": {
"version": "24.10.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz",
@@ -3488,6 +3846,80 @@
"undici-types": "~7.16.0"
}
},
+ "node_modules/@types/qs": {
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz",
+ "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/range-parser": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/retry": {
+ "version": "0.12.2",
+ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz",
+ "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/send": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz",
+ "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/serve-index": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz",
+ "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/express": "*"
+ }
+ },
+ "node_modules/@types/serve-static": {
+ "version": "1.15.10",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz",
+ "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/http-errors": "*",
+ "@types/node": "*",
+ "@types/send": "<1"
+ }
+ },
+ "node_modules/@types/serve-static/node_modules/@types/send": {
+ "version": "0.17.6",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz",
+ "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mime": "^1",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/sockjs": {
+ "version": "0.3.36",
+ "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
+ "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/stack-utils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
@@ -3502,6 +3934,16 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/ws": {
+ "version": "8.18.1",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz",
+ "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/yargs": {
"version": "17.0.35",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz",
@@ -4345,27 +4787,74 @@
"@xtuc/long": "4.2.2"
}
},
- "node_modules/@xmldom/xmldom": {
- "version": "0.8.11",
- "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz",
- "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==",
+ "node_modules/@webpack-cli/configtest": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz",
+ "integrity": "sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=10.0.0"
+ "node": ">=18.12.0"
+ },
+ "peerDependencies": {
+ "webpack": "^5.82.0",
+ "webpack-cli": "6.x.x"
}
},
- "node_modules/@xtuc/ieee754": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
- "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "node_modules/@webpack-cli/info": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz",
+ "integrity": "sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ==",
"dev": true,
- "license": "BSD-3-Clause",
- "peer": true
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.12.0"
+ },
+ "peerDependencies": {
+ "webpack": "^5.82.0",
+ "webpack-cli": "6.x.x"
+ }
},
- "node_modules/@xtuc/long": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "node_modules/@webpack-cli/serve": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz",
+ "integrity": "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.12.0"
+ },
+ "peerDependencies": {
+ "webpack": "^5.82.0",
+ "webpack-cli": "6.x.x"
+ },
+ "peerDependenciesMeta": {
+ "webpack-dev-server": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@xmldom/xmldom": {
+ "version": "0.8.11",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz",
+ "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "peer": true
+ },
+ "node_modules/@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
"dev": true,
"license": "Apache-2.0",
@@ -4384,6 +4873,53 @@
"node": ">=6.5"
}
},
+ "node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/accepts/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/accepts/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/accepts/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/acorn": {
"version": "8.15.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
@@ -4454,7 +4990,6 @@
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"ajv": "^8.0.0"
},
@@ -4473,7 +5008,6 @@
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -4490,8 +5024,7 @@
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/ansi-escapes": {
"version": "4.3.2",
@@ -4509,6 +5042,19 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/ansi-html-community": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
+ "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==",
+ "dev": true,
+ "engines": [
+ "node >= 0.8.0"
+ ],
+ "license": "Apache-2.0",
+ "bin": {
+ "ansi-html": "bin/ansi-html"
+ }
+ },
"node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
@@ -4586,6 +5132,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/array-includes": {
"version": "3.1.9",
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz",
@@ -4729,6 +5282,61 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/asn1.js": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "node_modules/asn1.js/node_modules/bn.js": {
+ "version": "4.12.2",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
+ "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/asn1js": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.7.tgz",
+ "integrity": "sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "pvtsutils": "^1.3.6",
+ "pvutils": "^1.1.3",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/asn1js/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/assert": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz",
+ "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "is-nan": "^1.3.2",
+ "object-is": "^1.1.5",
+ "object.assign": "^4.1.4",
+ "util": "^0.12.5"
+ }
+ },
"node_modules/async-function": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
@@ -4962,22 +5570,28 @@
"license": "MIT"
},
"node_modules/baseline-browser-mapping": {
- "version": "2.8.32",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.32.tgz",
- "integrity": "sha512-OPz5aBThlyLFgxyhdwf/s2+8ab3OvT7AdTNvKHBwpXomIYeXqpUUuT8LrdtxZSsWJ4R4CU1un4XGh5Ez3nlTpw==",
+ "version": "2.9.19",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz",
+ "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==",
"dev": true,
"license": "Apache-2.0",
"bin": {
"baseline-browser-mapping": "dist/cli.js"
}
},
+ "node_modules/batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/binary-extensions": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
"integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"dev": true,
"license": "MIT",
- "optional": true,
"engines": {
"node": ">=8"
},
@@ -4985,6 +5599,86 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/bn.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz",
+ "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/body-parser": {
+ "version": "1.20.4",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz",
+ "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "~3.1.2",
+ "content-type": "~1.0.5",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "~1.2.0",
+ "http-errors": "~2.0.1",
+ "iconv-lite": "~0.4.24",
+ "on-finished": "~2.4.1",
+ "qs": "~6.14.0",
+ "raw-body": "~2.5.3",
+ "type-is": "~1.6.18",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/body-parser/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/body-parser/node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/body-parser/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/bonjour-service": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz",
+ "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "multicast-dns": "^7.2.5"
+ }
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
@@ -5008,6 +5702,156 @@
"node": ">=8"
}
},
+ "node_modules/brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/browser-resolve": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz",
+ "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve": "^1.17.0"
+ }
+ },
+ "node_modules/browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "node_modules/browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/browserify-rsa": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz",
+ "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^5.2.1",
+ "randombytes": "^2.1.0",
+ "safe-buffer": "^5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/browserify-sign": {
+ "version": "4.2.5",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.5.tgz",
+ "integrity": "sha512-C2AUdAJg6rlM2W5QMp2Q4KGQMVBwR1lIimTsUnutJ8bMpW5B52pGpR2gEnNBNwijumDo5FojQ0L9JrXA8m4YEw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "bn.js": "^5.2.2",
+ "browserify-rsa": "^4.1.1",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "elliptic": "^6.6.1",
+ "inherits": "^2.0.4",
+ "parse-asn1": "^5.1.9",
+ "readable-stream": "^2.3.8",
+ "safe-buffer": "^5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/browserify-sign/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,
+ "license": "MIT"
+ },
+ "node_modules/browserify-sign/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,
+ "license": "MIT",
+ "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/browserify-sign/node_modules/readable-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,
+ "license": "MIT"
+ },
+ "node_modules/browserify-sign/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,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/browserify-sign/node_modules/string_decoder/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,
+ "license": "MIT"
+ },
+ "node_modules/browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pako": "~1.0.5"
+ }
+ },
"node_modules/browserslist": {
"version": "4.28.0",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz",
@@ -5084,29 +5928,79 @@
"dev": true,
"license": "MIT"
},
- "node_modules/call-bind": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
- "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
+ "node_modules/buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/bundle-name": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
+ "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind-apply-helpers": "^1.0.0",
- "es-define-property": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.2"
+ "run-applescript": "^7.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=18"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/call-bind-apply-helpers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
- "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/bytestreamjs": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz",
+ "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
+ "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.0",
+ "es-define-property": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5144,6 +6038,24 @@
"node": ">=6"
}
},
+ "node_modules/camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/camel-case/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
"node_modules/camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
@@ -5218,7 +6130,6 @@
"integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"dev": true,
"license": "MIT",
- "optional": true,
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -5265,6 +6176,21 @@
"node": ">=8"
}
},
+ "node_modules/cipher-base": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.7.tgz",
+ "integrity": "sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "safe-buffer": "^5.2.1",
+ "to-buffer": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/cjs-module-lexer": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.1.1.tgz",
@@ -5272,6 +6198,19 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/clean-css": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
+ "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "source-map": "~0.6.0"
+ },
+ "engines": {
+ "node": ">= 10.0"
+ }
+ },
"node_modules/cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
@@ -5287,6 +6226,21 @@
"node": ">=12"
}
},
+ "node_modules/clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -5325,6 +6279,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/colorette": {
+ "version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/commander": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
@@ -5345,6 +6306,55 @@
"node": ">= 12.0.0"
}
},
+ "node_modules/compressible": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": ">= 1.43.0 < 2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/compression": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz",
+ "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "compressible": "~2.0.18",
+ "debug": "2.6.9",
+ "negotiator": "~0.6.4",
+ "on-headers": "~1.1.0",
+ "safe-buffer": "5.2.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/compression/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/compression/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -5352,6 +6362,52 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/connect-history-api-fallback": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
+ "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/console-browserify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
+ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
+ "dev": true
+ },
+ "node_modules/constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-type": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/convert-source-map": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
@@ -5359,6 +6415,23 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/cookie": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie-signature": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz",
+ "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/core-js": {
"version": "3.47.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz",
@@ -5385,6 +6458,67 @@
"url": "https://opencollective.com/core-js"
}
},
+ "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,
+ "license": "MIT"
+ },
+ "node_modules/create-ecdh": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
+ "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.5.3"
+ }
+ },
+ "node_modules/create-ecdh/node_modules/bn.js": {
+ "version": "4.12.2",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
+ "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "node_modules/create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "node_modules/create-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/cross-fetch": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz",
@@ -5410,6 +6544,33 @@
"node": ">= 8"
}
},
+ "node_modules/crypto-browserify": {
+ "version": "3.12.1",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz",
+ "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserify-cipher": "^1.0.1",
+ "browserify-sign": "^4.2.3",
+ "create-ecdh": "^4.0.4",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "diffie-hellman": "^5.0.3",
+ "hash-base": "~3.0.4",
+ "inherits": "^2.0.4",
+ "pbkdf2": "^3.1.2",
+ "public-encrypt": "^4.0.3",
+ "randombytes": "^2.1.0",
+ "randomfill": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/crypto-js": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
@@ -5417,6 +6578,85 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/css-loader": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.3.tgz",
+ "integrity": "sha512-frbERmjT0UC5lMheWpJmMilnt9GEhbZJN/heUb7/zaJYeIzj5St9HvDcfshzzOqbsS+rYpMk++2SD3vGETDSyA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "icss-utils": "^5.1.0",
+ "postcss": "^8.4.40",
+ "postcss-modules-extract-imports": "^3.1.0",
+ "postcss-modules-local-by-default": "^4.0.5",
+ "postcss-modules-scope": "^3.2.0",
+ "postcss-modules-values": "^4.0.0",
+ "postcss-value-parser": "^4.2.0",
+ "semver": "^7.6.3"
+ },
+ "engines": {
+ "node": ">= 18.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "@rspack/core": "0.x || 1.x",
+ "webpack": "^5.27.0"
+ },
+ "peerDependenciesMeta": {
+ "@rspack/core": {
+ "optional": true
+ },
+ "webpack": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/css-loader/node_modules/semver": {
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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,
+ "license": "BSD-2-Clause",
+ "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/css-what": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz",
+ "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
"node_modules/css.escape": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
@@ -5424,6 +6664,19 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/cssstyle": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",
@@ -5563,6 +6816,36 @@
"node": ">=0.10.0"
}
},
+ "node_modules/default-browser": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz",
+ "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bundle-name": "^4.1.0",
+ "default-browser-id": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser-id": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz",
+ "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/define-data-property": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
@@ -5581,10 +6864,23 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/define-properties": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
- "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "node_modules/define-lazy-prop": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
+ "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5599,6 +6895,38 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/des.js": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz",
+ "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
"node_modules/detect-newline": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
@@ -5609,6 +6937,45 @@
"node": ">=8"
}
},
+ "node_modules/detect-node": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
+ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "node_modules/diffie-hellman/node_modules/bn.js": {
+ "version": "4.12.2",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
+ "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/dns-packet": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz",
+ "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@leichtgewicht/ip-codec": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/doctrine": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
@@ -5629,6 +6996,116 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/dom-converter": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
+ "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "utila": "~0.4"
+ }
+ },
+ "node_modules/dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/dom-serializer/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/domain-browser": {
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.22.0.tgz",
+ "integrity": "sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://bevry.me/fund"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "domelementtype": "^2.2.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/dot-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
+ "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/dot-case/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
"node_modules/dunder-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
@@ -5651,6 +7128,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/electron-to-chromium": {
"version": "1.5.262",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.262.tgz",
@@ -5658,6 +7142,29 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/elliptic": {
+ "version": "6.6.1",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz",
+ "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/elliptic/node_modules/bn.js": {
+ "version": "4.12.2",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
+ "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/emittery": {
"version": "0.13.1",
"resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
@@ -5678,6 +7185,16 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/encodeurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/enhanced-resolve": {
"version": "5.18.3",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz",
@@ -5705,6 +7222,19 @@
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
+ "node_modules/envinfo": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.21.0.tgz",
+ "integrity": "sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "envinfo": "dist/cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/error-ex": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
@@ -6561,6 +8091,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/event-target-shim": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
@@ -6571,6 +8111,13 @@
"node": ">=6"
}
},
+ "node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/events": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
@@ -6581,6 +8128,17 @@
"node": ">=0.8.x"
}
},
+ "node_modules/evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
"node_modules/execa": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
@@ -6633,6 +8191,70 @@
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
+ "node_modules/express": {
+ "version": "4.22.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz",
+ "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "~1.20.3",
+ "content-disposition": "~0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "~0.7.1",
+ "cookie-signature": "~1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.3.1",
+ "fresh": "~0.5.2",
+ "http-errors": "~2.0.0",
+ "merge-descriptors": "1.0.3",
+ "methods": "~1.1.2",
+ "on-finished": "~2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "~0.1.12",
+ "proxy-addr": "~2.0.7",
+ "qs": "~6.14.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "~0.19.0",
+ "serve-static": "~1.16.2",
+ "setprototypeof": "1.2.0",
+ "statuses": "~2.0.1",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/express/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/express/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -6669,8 +8291,30 @@
"url": "https://opencollective.com/fastify"
}
],
- "license": "BSD-3-Clause",
- "peer": true
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/fastest-levenshtein": {
+ "version": "1.0.16",
+ "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
+ "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4.9.1"
+ }
+ },
+ "node_modules/faye-websocket": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
+ "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "websocket-driver": ">=0.5.1"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
},
"node_modules/fb-watchman": {
"version": "2.0.2",
@@ -6708,6 +8352,42 @@
"node": ">=8"
}
},
+ "node_modules/finalhandler": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz",
+ "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "~2.0.2",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/finalhandler/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -6725,6 +8405,16 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/flat": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "bin": {
+ "flat": "cli.js"
+ }
+ },
"node_modules/flat-cache": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
@@ -6746,6 +8436,27 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/follow-redirects": {
+ "version": "1.15.11",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
+ "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
"node_modules/for-each": {
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
@@ -6792,6 +8503,26 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/fs-readdir-recursive": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
@@ -7013,7 +8744,6 @@
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"license": "ISC",
- "optional": true,
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -7117,6 +8847,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/handle-thing": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
+ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/has-bigints": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
@@ -7198,20 +8935,120 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "node_modules/hash-base": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz",
+ "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "function-bind": "^1.1.2"
+ "inherits": "^2.0.4",
+ "safe-buffer": "^5.2.1"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">= 0.10"
}
},
- "node_modules/html-encoding-sniffer": {
+ "node_modules/hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "he": "bin/he"
+ }
+ },
+ "node_modules/hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+ "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "obuf": "^1.0.0",
+ "readable-stream": "^2.0.1",
+ "wbuf": "^1.1.0"
+ }
+ },
+ "node_modules/hpack.js/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,
+ "license": "MIT"
+ },
+ "node_modules/hpack.js/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,
+ "license": "MIT",
+ "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/hpack.js/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,
+ "license": "MIT"
+ },
+ "node_modules/hpack.js/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,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/html-encoding-sniffer": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
"integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
@@ -7231,6 +9068,151 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/html-minifier-terser": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
+ "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "camel-case": "^4.1.2",
+ "clean-css": "^5.2.2",
+ "commander": "^8.3.0",
+ "he": "^1.2.0",
+ "param-case": "^3.0.4",
+ "relateurl": "^0.2.7",
+ "terser": "^5.10.0"
+ },
+ "bin": {
+ "html-minifier-terser": "cli.js"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/html-minifier-terser/node_modules/commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/html-webpack-plugin": {
+ "version": "5.6.6",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.6.tgz",
+ "integrity": "sha512-bLjW01UTrvoWTJQL5LsMRo1SypHW80FTm12OJRSnr3v6YHNhfe+1r0MYUZJMACxnCHURVnBWRwAsWs2yPU9Ezw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/html-minifier-terser": "^6.0.0",
+ "html-minifier-terser": "^6.0.2",
+ "lodash": "^4.17.21",
+ "pretty-error": "^4.0.0",
+ "tapable": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/html-webpack-plugin"
+ },
+ "peerDependencies": {
+ "@rspack/core": "0.x || 1.x",
+ "webpack": "^5.20.0"
+ },
+ "peerDependenciesMeta": {
+ "@rspack/core": {
+ "optional": true
+ },
+ "webpack": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/htmlparser2": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
+ "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
+ "dev": true,
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.0.0",
+ "domutils": "^2.5.2",
+ "entities": "^2.0.0"
+ }
+ },
+ "node_modules/htmlparser2/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+ "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "depd": "~2.0.0",
+ "inherits": "~2.0.4",
+ "setprototypeof": "~1.2.0",
+ "statuses": "~2.0.2",
+ "toidentifier": "~1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/http-parser-js": {
+ "version": "0.5.10",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz",
+ "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/http-proxy": {
+ "version": "1.18.1",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
+ "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eventemitter3": "^4.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
"node_modules/http-proxy-agent": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
@@ -7245,6 +9227,38 @@
"node": ">= 14"
}
},
+ "node_modules/http-proxy-middleware": {
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz",
+ "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/http-proxy": "^1.17.8",
+ "http-proxy": "^1.18.1",
+ "is-glob": "^4.0.1",
+ "is-plain-obj": "^3.0.0",
+ "micromatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "@types/express": "^4.17.13"
+ },
+ "peerDependenciesMeta": {
+ "@types/express": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/https-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/https-proxy-agent": {
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
@@ -7269,6 +9283,16 @@
"node": ">=10.17.0"
}
},
+ "node_modules/hyperdyperid": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz",
+ "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.18"
+ }
+ },
"node_modules/iconv-lite": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
@@ -7282,6 +9306,19 @@
"node": ">=0.10.0"
}
},
+ "node_modules/icss-utils": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
+ "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
"node_modules/ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
@@ -7414,6 +9451,43 @@
"node": ">= 0.4"
}
},
+ "node_modules/interpret": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
+ "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/ipaddr.js": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.3.0.tgz",
+ "integrity": "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/is-arguments": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz",
+ "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-array-buffer": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
@@ -7481,7 +9555,6 @@
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
"license": "MIT",
- "optional": true,
"dependencies": {
"binary-extensions": "^2.0.0"
},
@@ -7593,6 +9666,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-docker": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
+ "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -7672,6 +9761,25 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-inside-container": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
+ "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-docker": "^3.0.0"
+ },
+ "bin": {
+ "is-inside-container": "cli.js"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-map": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
@@ -7685,6 +9793,23 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-nan": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz",
+ "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-negative-zero": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
@@ -7698,6 +9823,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-network-error": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.0.tgz",
+ "integrity": "sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -7725,23 +9863,49 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-potential-custom-element-name": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
- "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/is-regex": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
- "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
+ "node_modules/is-plain-obj": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
+ "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "gopd": "^1.2.0",
- "has-tostringtag": "^1.0.2",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-potential-custom-element-name": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/is-regex": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
+ "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "gopd": "^1.2.0",
+ "has-tostringtag": "^1.0.2",
"hasown": "^2.0.2"
},
"engines": {
@@ -7890,6 +10054,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-wsl": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz",
+ "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-inside-container": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/isarray": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
@@ -7904,6 +10084,26 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/isomorphic-timers-promises": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz",
+ "integrity": "sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/istanbul-lib-coverage": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
@@ -8972,6 +11172,16 @@
"json-buffer": "3.0.1"
}
},
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/ky": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/ky/-/ky-1.14.1.tgz",
@@ -8985,6 +11195,17 @@
"url": "https://github.com/sindresorhus/ky?sponsor=1"
}
},
+ "node_modules/launch-editor": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.12.0.tgz",
+ "integrity": "sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picocolors": "^1.1.1",
+ "shell-quote": "^1.8.3"
+ }
+ },
"node_modules/leven": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
@@ -9047,6 +11268,13 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/lodash": {
+ "version": "4.17.23",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
+ "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
@@ -9074,6 +11302,23 @@
"loose-envify": "cli.js"
}
},
+ "node_modules/lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/lower-case/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
"node_modules/lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -9128,156 +11373,807 @@
"node": ">= 0.4"
}
},
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "node_modules/md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
}
},
- "node_modules/mime-db": {
- "version": "1.54.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
- "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
+ "node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
- "node_modules/mime-types": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
- "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
- "license": "MIT",
+ "node_modules/memfs": {
+ "version": "4.56.10",
+ "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.56.10.tgz",
+ "integrity": "sha512-eLvzyrwqLHnLYalJP7YZ3wBe79MXktMdfQbvMrVD80K+NhrIukCVBvgP30zTJYEEDh9hZ/ep9z0KOdD7FSHo7w==",
+ "dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "mime-db": "^1.54.0"
+ "@jsonjoy.com/fs-core": "4.56.10",
+ "@jsonjoy.com/fs-fsa": "4.56.10",
+ "@jsonjoy.com/fs-node": "4.56.10",
+ "@jsonjoy.com/fs-node-builtins": "4.56.10",
+ "@jsonjoy.com/fs-node-to-fsa": "4.56.10",
+ "@jsonjoy.com/fs-node-utils": "4.56.10",
+ "@jsonjoy.com/fs-print": "4.56.10",
+ "@jsonjoy.com/fs-snapshot": "4.56.10",
+ "@jsonjoy.com/json-pack": "^1.11.0",
+ "@jsonjoy.com/util": "^1.9.0",
+ "glob-to-regex.js": "^1.0.1",
+ "thingies": "^2.5.0",
+ "tree-dump": "^1.0.3",
+ "tslib": "^2.0.0"
},
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/memfs/node_modules/@jsonjoy.com/base64": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==",
+ "dev": true,
+ "license": "Apache-2.0",
"engines": {
- "node": ">=18"
+ "node": ">=10.0"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/express"
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
}
},
- "node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "node_modules/memfs/node_modules/@jsonjoy.com/buffers": {
+ "version": "17.67.0",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz",
+ "integrity": "sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==",
"dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
"engines": {
- "node": ">=6"
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
}
},
- "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==",
+ "node_modules/memfs/node_modules/@jsonjoy.com/codegen": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz",
+ "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==",
"dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
"engines": {
- "node": ">=4"
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
}
},
- "node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "node_modules/memfs/node_modules/@jsonjoy.com/fs-core": {
+ "version": "4.56.10",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.56.10.tgz",
+ "integrity": "sha512-PyAEA/3cnHhsGcdY+AmIU+ZPqTuZkDhCXQ2wkXypdLitSpd6d5Ivxhnq4wa2ETRWFVJGabYynBWxIijOswSmOw==",
"dev": true,
- "license": "ISC",
+ "license": "Apache-2.0",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "@jsonjoy.com/fs-node-builtins": "4.56.10",
+ "@jsonjoy.com/fs-node-utils": "4.56.10",
+ "thingies": "^2.5.0"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": ">=10.0"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
}
},
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "node_modules/memfs/node_modules/@jsonjoy.com/fs-fsa": {
+ "version": "4.56.10",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.56.10.tgz",
+ "integrity": "sha512-/FVK63ysNzTPOnCCcPoPHt77TOmachdMS422txM4KhxddLdbW1fIbFMYH0AM0ow/YchCyS5gqEjKLNyv71j/5Q==",
"dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jsonjoy.com/fs-core": "4.56.10",
+ "@jsonjoy.com/fs-node-builtins": "4.56.10",
+ "@jsonjoy.com/fs-node-utils": "4.56.10",
+ "thingies": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=10.0"
+ },
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
}
},
- "node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "node_modules/memfs/node_modules/@jsonjoy.com/fs-node": {
+ "version": "4.56.10",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.56.10.tgz",
+ "integrity": "sha512-7R4Gv3tkUdW3dXfXiOkqxkElxKNVdd8BDOWC0/dbERd0pXpPY+s2s1Mino+aTvkGrFPiY+mmVxA7zhskm4Ue4Q==",
"dev": true,
- "license": "ISC",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jsonjoy.com/fs-core": "4.56.10",
+ "@jsonjoy.com/fs-node-builtins": "4.56.10",
+ "@jsonjoy.com/fs-node-utils": "4.56.10",
+ "@jsonjoy.com/fs-print": "4.56.10",
+ "@jsonjoy.com/fs-snapshot": "4.56.10",
+ "glob-to-regex.js": "^1.0.0",
+ "thingies": "^2.5.0"
+ },
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
}
},
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "node_modules/memfs/node_modules/@jsonjoy.com/fs-node-builtins": {
+ "version": "4.56.10",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.56.10.tgz",
+ "integrity": "sha512-uUnKz8R0YJyKq5jXpZtkGV9U0pJDt8hmYcLRrPjROheIfjMXsz82kXMgAA/qNg0wrZ1Kv+hrg7azqEZx6XZCVw==",
"dev": true,
- "license": "MIT"
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
},
- "node_modules/n3": {
- "version": "1.26.0",
- "resolved": "https://registry.npmjs.org/n3/-/n3-1.26.0.tgz",
- "integrity": "sha512-SQknS0ua90rN+3RHuk8BeIqeYyqIH/+ecViZxX08jR4j6MugqWRjtONl3uANG/crWXnOM2WIqBJtjIhVYFha+w==",
+ "node_modules/memfs/node_modules/@jsonjoy.com/fs-node-to-fsa": {
+ "version": "4.56.10",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.56.10.tgz",
+ "integrity": "sha512-oH+O6Y4lhn9NyG6aEoFwIBNKZeYy66toP5LJcDOMBgL99BKQMUf/zWJspdRhMdn/3hbzQsZ8EHHsuekbFLGUWw==",
"dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
"dependencies": {
- "buffer": "^6.0.3",
- "readable-stream": "^4.0.0"
+ "@jsonjoy.com/fs-fsa": "4.56.10",
+ "@jsonjoy.com/fs-node-builtins": "4.56.10",
+ "@jsonjoy.com/fs-node-utils": "4.56.10"
},
"engines": {
- "node": ">=12.0"
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
}
},
- "node_modules/napi-postinstall": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz",
- "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==",
+ "node_modules/memfs/node_modules/@jsonjoy.com/fs-node-utils": {
+ "version": "4.56.10",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.56.10.tgz",
+ "integrity": "sha512-8EuPBgVI2aDPwFdaNQeNpHsyqPi3rr+85tMNG/lHvQLiVjzoZsvxA//Xd8aB567LUhy4QS03ptT+unkD/DIsNg==",
"dev": true,
- "license": "MIT",
- "bin": {
- "napi-postinstall": "lib/cli.js"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jsonjoy.com/fs-node-builtins": "4.56.10"
},
"engines": {
- "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ "node": ">=10.0"
},
"funding": {
- "url": "https://opencollective.com/napi-postinstall"
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
}
},
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "node_modules/memfs/node_modules/@jsonjoy.com/fs-print": {
+ "version": "4.56.10",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.56.10.tgz",
+ "integrity": "sha512-JW4fp5mAYepzFsSGrQ48ep8FXxpg4niFWHdF78wDrFGof7F3tKDJln72QFDEn/27M1yHd4v7sKHHVPh78aWcEw==",
"dev": true,
- "license": "MIT"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jsonjoy.com/fs-node-utils": "4.56.10",
+ "tree-dump": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
},
- "node_modules/neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "node_modules/memfs/node_modules/@jsonjoy.com/fs-snapshot": {
+ "version": "4.56.10",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.56.10.tgz",
+ "integrity": "sha512-DkR6l5fj7+qj0+fVKm/OOXMGfDFCGXLfyHkORH3DF8hxkpDgIHbhf/DwncBMs2igu/ST7OEkexn1gIqoU6Y+9g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jsonjoy.com/buffers": "^17.65.0",
+ "@jsonjoy.com/fs-node-utils": "4.56.10",
+ "@jsonjoy.com/json-pack": "^17.65.0",
+ "@jsonjoy.com/util": "^17.65.0"
+ },
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/memfs/node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/base64": {
+ "version": "17.67.0",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.67.0.tgz",
+ "integrity": "sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/memfs/node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/codegen": {
+ "version": "17.67.0",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz",
+ "integrity": "sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/memfs/node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pack": {
+ "version": "17.67.0",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz",
+ "integrity": "sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jsonjoy.com/base64": "17.67.0",
+ "@jsonjoy.com/buffers": "17.67.0",
+ "@jsonjoy.com/codegen": "17.67.0",
+ "@jsonjoy.com/json-pointer": "17.67.0",
+ "@jsonjoy.com/util": "17.67.0",
+ "hyperdyperid": "^1.2.0",
+ "thingies": "^2.5.0",
+ "tree-dump": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/memfs/node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pointer": {
+ "version": "17.67.0",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz",
+ "integrity": "sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jsonjoy.com/util": "17.67.0"
+ },
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/memfs/node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/util": {
+ "version": "17.67.0",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.67.0.tgz",
+ "integrity": "sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jsonjoy.com/buffers": "17.67.0",
+ "@jsonjoy.com/codegen": "17.67.0"
+ },
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/memfs/node_modules/@jsonjoy.com/json-pack": {
+ "version": "1.21.0",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz",
+ "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jsonjoy.com/base64": "^1.1.2",
+ "@jsonjoy.com/buffers": "^1.2.0",
+ "@jsonjoy.com/codegen": "^1.0.0",
+ "@jsonjoy.com/json-pointer": "^1.0.2",
+ "@jsonjoy.com/util": "^1.9.0",
+ "hyperdyperid": "^1.2.0",
+ "thingies": "^2.5.0",
+ "tree-dump": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/memfs/node_modules/@jsonjoy.com/json-pack/node_modules/@jsonjoy.com/buffers": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz",
+ "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/memfs/node_modules/@jsonjoy.com/json-pointer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz",
+ "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jsonjoy.com/codegen": "^1.0.0",
+ "@jsonjoy.com/util": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/memfs/node_modules/@jsonjoy.com/util": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz",
+ "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jsonjoy.com/buffers": "^1.0.0",
+ "@jsonjoy.com/codegen": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/memfs/node_modules/@jsonjoy.com/util/node_modules/@jsonjoy.com/buffers": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz",
+ "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/memfs/node_modules/glob-to-regex.js": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz",
+ "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/memfs/node_modules/thingies": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz",
+ "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "^2"
+ }
+ },
+ "node_modules/memfs/node_modules/tree-dump": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz",
+ "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/memfs/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/merge-descriptors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
+ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ },
+ "bin": {
+ "miller-rabin": "bin/miller-rabin"
+ }
+ },
+ "node_modules/miller-rabin/node_modules/bn.js": {
+ "version": "4.12.2",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
+ "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.54.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
+ "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "^1.54.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/multicast-dns": {
+ "version": "7.2.5",
+ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz",
+ "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dns-packet": "^5.2.2",
+ "thunky": "^1.0.2"
+ },
+ "bin": {
+ "multicast-dns": "cli.js"
+ }
+ },
+ "node_modules/n3": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/n3/-/n3-1.26.0.tgz",
+ "integrity": "sha512-SQknS0ua90rN+3RHuk8BeIqeYyqIH/+ecViZxX08jR4j6MugqWRjtONl3uANG/crWXnOM2WIqBJtjIhVYFha+w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer": "^6.0.3",
+ "readable-stream": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12.0"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/napi-postinstall": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz",
+ "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "napi-postinstall": "lib/cli.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/napi-postinstall"
+ }
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
+ "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
"dev": true,
"license": "MIT",
"peer": true
@@ -9324,6 +12220,24 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/no-case/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
"node_modules/node-fetch": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
@@ -9359,30 +12273,159 @@
"dev": true,
"license": "BSD-2-Clause"
},
- "node_modules/node-fetch/node_modules/whatwg-url": {
+ "node_modules/node-fetch/node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/node-int64": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/node-polyfill-webpack-plugin": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/node-polyfill-webpack-plugin/-/node-polyfill-webpack-plugin-4.1.0.tgz",
+ "integrity": "sha512-b4ei444EKkOagG/yFqojrD3QTYM5IOU1f8tn9o6uwrG4qL+brI7oVhjPVd0ZL2xy+Z6CP5bu9w8XTvlWgiXHcw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "node-stdlib-browser": "^1.3.0",
+ "type-fest": "^4.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "webpack": ">=5"
+ }
+ },
+ "node_modules/node-polyfill-webpack-plugin/node_modules/type-fest": {
+ "version": "4.41.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
+ "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.27",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
+ "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/node-stdlib-browser": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/node-stdlib-browser/-/node-stdlib-browser-1.3.1.tgz",
+ "integrity": "sha512-X75ZN8DCLftGM5iKwoYLA3rjnrAEs97MkzvSd4q2746Tgpg8b8XWiBGiBG4ZpgcAqBgtgPHTiAc8ZMCvZuikDw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "assert": "^2.0.0",
+ "browser-resolve": "^2.0.0",
+ "browserify-zlib": "^0.2.0",
+ "buffer": "^5.7.1",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "^1.0.0",
+ "create-require": "^1.1.1",
+ "crypto-browserify": "^3.12.1",
+ "domain-browser": "4.22.0",
+ "events": "^3.0.0",
+ "https-browserify": "^1.0.0",
+ "isomorphic-timers-promises": "^1.0.1",
+ "os-browserify": "^0.3.0",
+ "path-browserify": "^1.0.1",
+ "pkg-dir": "^5.0.0",
+ "process": "^0.11.10",
+ "punycode": "^1.4.1",
+ "querystring-es3": "^0.2.1",
+ "readable-stream": "^3.6.0",
+ "stream-browserify": "^3.0.0",
+ "stream-http": "^3.2.0",
+ "string_decoder": "^1.0.0",
+ "timers-browserify": "^2.0.4",
+ "tty-browserify": "0.0.1",
+ "url": "^0.11.4",
+ "util": "^0.12.4",
+ "vm-browserify": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-stdlib-browser/node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/node-stdlib-browser/node_modules/pkg-dir": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
+ "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
+ "find-up": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/node-int64": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
- "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
+ "node_modules/node-stdlib-browser/node_modules/punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
"dev": true,
"license": "MIT"
},
- "node_modules/node-releases": {
- "version": "2.0.27",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
- "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
+ "node_modules/node-stdlib-browser/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,
- "license": "MIT"
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
},
"node_modules/normalize-path": {
"version": "3.0.0",
@@ -9407,6 +12450,19 @@
"node": ">=8"
}
},
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
"node_modules/nwsapi": {
"version": "2.2.22",
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz",
@@ -9437,6 +12493,23 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/object-is": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz",
+ "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/object-keys": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
@@ -9537,6 +12610,36 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/obuf": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
+ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/on-headers": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz",
+ "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -9563,6 +12666,25 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/open": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz",
+ "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "default-browser": "^5.2.1",
+ "define-lazy-prop": "^3.0.0",
+ "is-inside-container": "^1.0.0",
+ "wsl-utils": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/optionator": {
"version": "0.9.4",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
@@ -9581,6 +12703,13 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/os-browserify": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/own-keys": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
@@ -9631,6 +12760,24 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/p-retry": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz",
+ "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/retry": "0.12.2",
+ "is-network-error": "^1.0.0",
+ "retry": "^0.13.1"
+ },
+ "engines": {
+ "node": ">=16.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
@@ -9648,6 +12795,13 @@
"dev": true,
"license": "BlueOak-1.0.0"
},
+ "node_modules/pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+ "dev": true,
+ "license": "(MIT AND Zlib)"
+ },
"node_modules/pane-registry": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/pane-registry/-/pane-registry-3.0.1.tgz",
@@ -9659,6 +12813,24 @@
"solid-logic": "^4.0.2"
}
},
+ "node_modules/param-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
+ "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/param-case/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -9672,6 +12844,23 @@
"node": ">=6"
}
},
+ "node_modules/parse-asn1": {
+ "version": "5.1.9",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.9.tgz",
+ "integrity": "sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "asn1.js": "^4.10.1",
+ "browserify-aes": "^1.2.0",
+ "evp_bytestokey": "^1.0.3",
+ "pbkdf2": "^3.1.5",
+ "safe-buffer": "^5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/parse-json": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
@@ -9704,6 +12893,41 @@
"url": "https://github.com/inikulin/parse5?sponsor=1"
}
},
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/pascal-case/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/path-browserify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
+ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -9772,6 +12996,31 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/path-to-regexp": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/pbkdf2": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.5.tgz",
+ "integrity": "sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "ripemd160": "^2.0.3",
+ "safe-buffer": "^5.2.1",
+ "sha.js": "^2.4.12",
+ "to-buffer": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/peowly": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/peowly/-/peowly-1.3.2.tgz",
@@ -9809,97 +13058,248 @@
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">=6"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
+ "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/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,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/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,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/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,
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pkg-dir/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,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkijs": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.3.3.tgz",
+ "integrity": "sha512-+KD8hJtqQMYoTuL1bbGOqxb4z+nZkTAwVdNtWwe8Tc2xNbEmdJYIYoc6Qt0uF55e6YW6KuTHw1DjQ18gMhzepw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@noble/hashes": "1.4.0",
+ "asn1js": "^3.0.6",
+ "bytestreamjs": "^2.0.1",
+ "pvtsutils": "^1.3.6",
+ "pvutils": "^1.1.3",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/pkijs/node_modules/@noble/hashes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz",
+ "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/pkijs/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/possible-typed-array-names": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
+ "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
}
},
- "node_modules/pirates": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
- "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
+ "node_modules/postcss": {
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
"engines": {
- "node": ">= 6"
+ "node": "^10 || ^12 || >=14"
}
},
- "node_modules/pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "node_modules/postcss-modules-extract-imports": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz",
+ "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "find-up": "^4.0.0"
- },
+ "license": "ISC",
"engines": {
- "node": ">=8"
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
}
},
- "node_modules/pkg-dir/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==",
+ "node_modules/postcss-modules-local-by-default": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz",
+ "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
+ "icss-utils": "^5.0.0",
+ "postcss-selector-parser": "^7.0.0",
+ "postcss-value-parser": "^4.1.0"
},
"engines": {
- "node": ">=8"
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
}
},
- "node_modules/pkg-dir/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==",
+ "node_modules/postcss-modules-scope": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz",
+ "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==",
"dev": true,
- "license": "MIT",
+ "license": "ISC",
"dependencies": {
- "p-locate": "^4.1.0"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
- "node": ">=8"
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
}
},
- "node_modules/pkg-dir/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==",
+ "node_modules/postcss-modules-values": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
+ "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
"dev": true,
- "license": "MIT",
+ "license": "ISC",
"dependencies": {
- "p-try": "^2.0.0"
+ "icss-utils": "^5.0.0"
},
"engines": {
- "node": ">=6"
+ "node": "^10 || ^12 || >= 14"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "peerDependencies": {
+ "postcss": "^8.1.0"
}
},
- "node_modules/pkg-dir/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==",
+ "node_modules/postcss-selector-parser": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
+ "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "p-limit": "^2.2.0"
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
},
"engines": {
- "node": ">=8"
+ "node": ">=4"
}
},
- "node_modules/possible-typed-array-names": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
- "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
"dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
+ "license": "MIT"
},
"node_modules/prelude-ls": {
"version": "1.2.1",
@@ -9911,6 +13311,17 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/pretty-error": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz",
+ "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "lodash": "^4.17.20",
+ "renderkid": "^3.0.0"
+ }
+ },
"node_modules/pretty-format": {
"version": "30.2.0",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz",
@@ -9949,6 +13360,13 @@
"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,
+ "license": "MIT"
+ },
"node_modules/promise-polyfill": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.3.0.tgz",
@@ -9975,6 +13393,52 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/proxy-addr/node_modules/ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/public-encrypt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/public-encrypt/node_modules/bn.js": {
+ "version": "4.12.2",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
+ "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/punycode": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
@@ -10002,6 +13466,58 @@
],
"license": "MIT"
},
+ "node_modules/pvtsutils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz",
+ "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/pvtsutils/node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/pvutils": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz",
+ "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.14.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz",
+ "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "side-channel": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
"node_modules/randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -10012,6 +13528,56 @@
"safe-buffer": "^5.1.0"
}
},
+ "node_modules/randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "randombytes": "^2.0.5",
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz",
+ "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "~3.1.2",
+ "http-errors": "~2.0.1",
+ "iconv-lite": "~0.4.24",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/raw-body/node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/rdf-canonize": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-5.0.0.tgz",
@@ -10082,7 +13648,6 @@
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true,
"license": "MIT",
- "optional": true,
"dependencies": {
"picomatch": "^2.2.1"
},
@@ -10090,6 +13655,19 @@
"node": ">=8.10.0"
}
},
+ "node_modules/rechoir": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz",
+ "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve": "^1.20.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
"node_modules/redent": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
@@ -10104,6 +13682,13 @@
"node": ">=8"
}
},
+ "node_modules/reflect-metadata": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz",
+ "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/reflect.getprototypeof": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
@@ -10206,6 +13791,30 @@
"regjsparser": "bin/parser"
}
},
+ "node_modules/relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/renderkid": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz",
+ "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "css-select": "^4.1.3",
+ "dom-converter": "^0.2.0",
+ "htmlparser2": "^6.1.0",
+ "lodash": "^4.17.21",
+ "strip-ansi": "^6.0.1"
+ }
+ },
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -10222,7 +13831,6 @@
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -10237,6 +13845,13 @@
"x-path": "^0.0.2"
}
},
+ "node_modules/requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/resolve": {
"version": "1.22.11",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
@@ -10265,32 +13880,119 @@
"dev": true,
"license": "MIT",
"dependencies": {
- "resolve-from": "^5.0.0"
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ }
+ },
+ "node_modules/retry": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
+ "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/ripemd160": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz",
+ "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hash-base": "^3.1.2",
+ "inherits": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/ripemd160/node_modules/hash-base": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz",
+ "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "readable-stream": "^2.3.8",
+ "safe-buffer": "^5.2.1",
+ "to-buffer": "^1.2.1"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.8"
}
},
- "node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "node_modules/ripemd160/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,
+ "license": "MIT"
+ },
+ "node_modules/ripemd160/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,
"license": "MIT",
- "engines": {
- "node": ">=8"
+ "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/resolve-pkg-maps": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
- "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "node_modules/ripemd160/node_modules/readable-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,
+ "license": "MIT"
+ },
+ "node_modules/ripemd160/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,
"license": "MIT",
- "funding": {
- "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
}
},
+ "node_modules/ripemd160/node_modules/string_decoder/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,
+ "license": "MIT"
+ },
"node_modules/rrweb-cssom": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
@@ -10298,6 +14000,19 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/run-applescript": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz",
+ "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/safe-array-concat": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
@@ -10400,7 +14115,6 @@
"integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@types/json-schema": "^7.0.9",
"ajv": "^8.9.0",
@@ -10421,7 +14135,6 @@
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -10439,7 +14152,6 @@
"integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3"
},
@@ -10452,8 +14164,28 @@
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/select-hose": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+ "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/selfsigned": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz",
+ "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==",
+ "dev": true,
"license": "MIT",
- "peer": true
+ "dependencies": {
+ "@peculiar/x509": "^1.14.2",
+ "pkijs": "^3.3.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
},
"node_modules/semver": {
"version": "6.3.1",
@@ -10465,6 +14197,48 @@
"semver": "bin/semver.js"
}
},
+ "node_modules/send": {
+ "version": "0.19.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz",
+ "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "~0.5.2",
+ "http-errors": "~2.0.1",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "~2.4.1",
+ "range-parser": "~1.2.1",
+ "statuses": "~2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/send/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/send/node_modules/debug/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/serialize-javascript": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
@@ -10475,6 +14249,122 @@
"randombytes": "^2.1.0"
}
},
+ "node_modules/serve-index": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz",
+ "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "accepts": "~1.3.8",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
+ "escape-html": "~1.0.3",
+ "http-errors": "~1.8.0",
+ "mime-types": "~2.1.35",
+ "parseurl": "~1.3.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/serve-index/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/serve-index/node_modules/depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serve-index/node_modules/http-errors": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
+ "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serve-index/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serve-index/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serve-index/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/serve-index/node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serve-static": {
+ "version": "1.16.3",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz",
+ "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "~0.19.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
"node_modules/set-function-length": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
@@ -10531,6 +14421,47 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/sha.js": {
+ "version": "2.4.12",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz",
+ "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==",
+ "dev": true,
+ "license": "(MIT AND BSD-3-Clause)",
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "safe-buffer": "^5.2.1",
+ "to-buffer": "^1.2.0"
+ },
+ "bin": {
+ "sha.js": "bin.js"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -10554,6 +14485,19 @@
"node": ">=8"
}
},
+ "node_modules/shell-quote": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz",
+ "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/side-channel": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
@@ -10647,6 +14591,28 @@
"node": ">=6"
}
},
+ "node_modules/sockjs": {
+ "version": "0.3.24",
+ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
+ "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "faye-websocket": "^0.11.3",
+ "uuid": "^8.3.2",
+ "websocket-driver": "^0.7.4"
+ }
+ },
+ "node_modules/sockjs/node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
"node_modules/solid-logic": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-4.0.2.tgz",
@@ -10718,6 +14684,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/source-map-support": {
"version": "0.5.13",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
@@ -10729,6 +14705,53 @@
"source-map": "^0.6.0"
}
},
+ "node_modules/spdy": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
+ "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.1.0",
+ "handle-thing": "^2.0.0",
+ "http-deceiver": "^1.2.7",
+ "select-hose": "^2.0.0",
+ "spdy-transport": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/spdy-transport": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
+ "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.1.0",
+ "detect-node": "^2.0.4",
+ "hpack.js": "^2.1.6",
+ "obuf": "^1.1.2",
+ "readable-stream": "^3.0.6",
+ "wbuf": "^1.7.3"
+ }
+ },
+ "node_modules/spdy-transport/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,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
@@ -10776,18 +14799,82 @@
"node": ">=8"
}
},
- "node_modules/stop-iteration-iterator": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
- "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",
+ "node_modules/statuses": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/stop-iteration-iterator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
+ "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "internal-slot": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/stream-browserify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
+ "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "~2.0.4",
+ "readable-stream": "^3.5.0"
+ }
+ },
+ "node_modules/stream-browserify/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,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/stream-http": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz",
+ "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "xtend": "^4.0.2"
+ }
+ },
+ "node_modules/stream-http/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,
"license": "MIT",
"dependencies": {
- "es-errors": "^1.3.0",
- "internal-slot": "^1.1.0"
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">= 6"
}
},
"node_modules/string_decoder": {
@@ -11016,6 +15103,23 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/style-loader": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz",
+ "integrity": "sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.27.0"
+ }
+ },
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -11085,7 +15189,6 @@
"integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==",
"dev": true,
"license": "BSD-2-Clause",
- "peer": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
"acorn": "^8.15.0",
@@ -11184,8 +15287,7 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/terser/node_modules/source-map-support": {
"version": "0.5.21",
@@ -11193,7 +15295,6 @@
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -11238,6 +15339,26 @@
"node": "*"
}
},
+ "node_modules/thunky": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
+ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/timers-browserify": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
+ "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "setimmediate": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
"node_modules/tinyglobby": {
"version": "0.2.15",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
@@ -11313,6 +15434,21 @@
"dev": true,
"license": "BSD-3-Clause"
},
+ "node_modules/to-buffer": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz",
+ "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "isarray": "^2.0.5",
+ "safe-buffer": "^5.2.1",
+ "typed-array-buffer": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -11326,6 +15462,16 @@
"node": ">=8.0"
}
},
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
"node_modules/tough-cookie": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
@@ -11444,6 +15590,26 @@
"dev": true,
"license": "0BSD"
},
+ "node_modules/tsyringe": {
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz",
+ "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/tty-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz",
+ "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -11480,6 +15646,43 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/type-is/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/type-is/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/typed-array-buffer": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
@@ -11717,6 +15920,16 @@
"node": ">=4"
}
},
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/unrs-resolver": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz",
@@ -11793,6 +16006,65 @@
"punycode": "^2.1.0"
}
},
+ "node_modules/url": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz",
+ "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "punycode": "^1.4.1",
+ "qs": "^6.12.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/url/node_modules/punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/util": {
+ "version": "0.12.5",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
+ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "is-arguments": "^1.0.4",
+ "is-generator-function": "^1.0.7",
+ "is-typed-array": "^1.1.3",
+ "which-typed-array": "^1.1.2"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/utila": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
+ "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
"node_modules/uuid": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
@@ -11822,6 +16094,23 @@
"node": ">=10.12.0"
}
},
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/vm-browserify": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
+ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/w3c-xmlserializer": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
@@ -11860,6 +16149,16 @@
"node": ">=10.13.0"
}
},
+ "node_modules/wbuf": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
+ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
"node_modules/webidl-conversions": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
@@ -11920,6 +16219,162 @@
}
}
},
+ "node_modules/webpack-cli": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz",
+ "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@discoveryjs/json-ext": "^0.6.1",
+ "@webpack-cli/configtest": "^3.0.1",
+ "@webpack-cli/info": "^3.0.1",
+ "@webpack-cli/serve": "^3.0.1",
+ "colorette": "^2.0.14",
+ "commander": "^12.1.0",
+ "cross-spawn": "^7.0.3",
+ "envinfo": "^7.14.0",
+ "fastest-levenshtein": "^1.0.12",
+ "import-local": "^3.0.2",
+ "interpret": "^3.1.1",
+ "rechoir": "^0.8.0",
+ "webpack-merge": "^6.0.1"
+ },
+ "bin": {
+ "webpack-cli": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=18.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.82.0"
+ },
+ "peerDependenciesMeta": {
+ "webpack-bundle-analyzer": {
+ "optional": true
+ },
+ "webpack-dev-server": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-cli/node_modules/commander": {
+ "version": "12.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
+ "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/webpack-dev-middleware": {
+ "version": "7.4.5",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz",
+ "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "colorette": "^2.0.10",
+ "memfs": "^4.43.1",
+ "mime-types": "^3.0.1",
+ "on-finished": "^2.4.1",
+ "range-parser": "^1.2.1",
+ "schema-utils": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 18.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "webpack": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-dev-server": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.3.tgz",
+ "integrity": "sha512-9Gyu2F7+bg4Vv+pjbovuYDhHX+mqdqITykfzdM9UyKqKHlsE5aAjRhR+oOEfXW5vBeu8tarzlJFIZva4ZjAdrQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/bonjour": "^3.5.13",
+ "@types/connect-history-api-fallback": "^1.5.4",
+ "@types/express": "^4.17.25",
+ "@types/express-serve-static-core": "^4.17.21",
+ "@types/serve-index": "^1.9.4",
+ "@types/serve-static": "^1.15.5",
+ "@types/sockjs": "^0.3.36",
+ "@types/ws": "^8.5.10",
+ "ansi-html-community": "^0.0.8",
+ "bonjour-service": "^1.2.1",
+ "chokidar": "^3.6.0",
+ "colorette": "^2.0.10",
+ "compression": "^1.8.1",
+ "connect-history-api-fallback": "^2.0.0",
+ "express": "^4.22.1",
+ "graceful-fs": "^4.2.6",
+ "http-proxy-middleware": "^2.0.9",
+ "ipaddr.js": "^2.1.0",
+ "launch-editor": "^2.6.1",
+ "open": "^10.0.3",
+ "p-retry": "^6.2.0",
+ "schema-utils": "^4.2.0",
+ "selfsigned": "^5.5.0",
+ "serve-index": "^1.9.1",
+ "sockjs": "^0.3.24",
+ "spdy": "^4.0.2",
+ "webpack-dev-middleware": "^7.4.2",
+ "ws": "^8.18.0"
+ },
+ "bin": {
+ "webpack-dev-server": "bin/webpack-dev-server.js"
+ },
+ "engines": {
+ "node": ">= 18.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "webpack": {
+ "optional": true
+ },
+ "webpack-cli": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-merge": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz",
+ "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "clone-deep": "^4.0.1",
+ "flat": "^5.0.2",
+ "wildcard": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
"node_modules/webpack-sources": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz",
@@ -11982,6 +16437,31 @@
"node": ">= 0.6"
}
},
+ "node_modules/websocket-driver": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
+ "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "http-parser-js": ">=0.5.1",
+ "safe-buffer": ">=5.1.0",
+ "websocket-extensions": ">=0.1.1"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/websocket-extensions": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
+ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/whatwg-encoding": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
@@ -12124,6 +16604,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/wildcard": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
+ "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/word-wrap": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
@@ -12227,6 +16714,22 @@
}
}
},
+ "node_modules/wsl-utils": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz",
+ "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-wsl": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/x-path": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/x-path/-/x-path-0.0.2.tgz",
@@ -12254,6 +16757,16 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
"node_modules/y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
diff --git a/package.json b/package.json
index 4485eec..b05e344 100644
--- a/package.json
+++ b/package.json
@@ -22,7 +22,8 @@
"test-coverage": "jest --coverage",
"prepublishOnly": "npm run build && npm run lint && npm run test",
"preversion": "npm run lint && npm run typecheck && npm run test",
- "postpublish": "git push origin main --follow-tags"
+ "postpublish": "git push origin main --follow-tags",
+ "start": "webpack serve --config webpack.dev.config.mjs --open"
},
"repository": {
"type": "git",
@@ -66,19 +67,26 @@
"babel-jest": "^30.2.0",
"babel-loader": "^10.0.0",
"babel-plugin-inline-import": "^3.0.0",
+ "baseline-browser-mapping": "^2.9.19",
"buffer": "^6.0.3",
+ "css-loader": "^7.1.3",
"eslint": "^9.39.2",
"eslint-plugin-import": "^2.32.0",
"globals": "^17.1.0",
+ "html-webpack-plugin": "^5.6.6",
"jest": "^30.2.0",
"jest-environment-jsdom": "^30.2.0",
"jest-fetch-mock": "^3.0.3",
"neostandard": "^0.12.2",
+ "node-polyfill-webpack-plugin": "^4.1.0",
"pane-registry": "^3.0.1",
"rdflib": "^2.3.5",
"solid-logic": "^4.0.2",
"solid-ui": "^3.0.3",
+ "style-loader": "^4.0.0",
"typescript": "^5.9.3",
- "typescript-transpile-only": "^0.0.4"
+ "typescript-transpile-only": "^0.0.4",
+ "webpack-cli": "^6.0.1",
+ "webpack-dev-server": "^5.2.3"
}
}
diff --git a/webpack.dev.config.mjs b/webpack.dev.config.mjs
new file mode 100644
index 0000000..ad6db81
--- /dev/null
+++ b/webpack.dev.config.mjs
@@ -0,0 +1,95 @@
+import HtmlWebpackPlugin from 'html-webpack-plugin'
+import NodePolyfillPlugin from 'node-polyfill-webpack-plugin'
+import webpack from 'webpack'
+
+export default [
+ {
+ mode: "development",
+ entry: ["./dev/index.ts"],
+ plugins: [
+ new HtmlWebpackPlugin({
+ template: "./dev/index.html",
+ inject: 'head'
+ }),
+ new NodePolyfillPlugin(),
+ new webpack.ProvidePlugin({
+ $rdf: 'rdflib',
+ SolidLogic: 'solid-logic',
+ UI: 'solid-ui'
+ }),
+ new webpack.DefinePlugin({
+ 'global': 'globalThis',
+ 'process.env.NODE_ENV': JSON.stringify('development')
+ })
+ ],
+ module: {
+ rules: [
+ {
+ test: /\.(js|ts)$/,
+ exclude: /node_modules/,
+ use: ["babel-loader"],
+ },
+ {
+ test: /\.ttl$/, // Target text files
+ type: 'asset/source', // Load the file's content as a string
+ },
+ {
+ test: /\.css$/,
+ exclude: /\.module\.css$/,
+ use: ['style-loader', 'css-loader'],
+ },
+ {
+ test: /\.module\.css$/,
+ use: [
+ 'style-loader',
+ {
+ loader: 'css-loader',
+ options: {
+ modules: true
+ }
+ }
+ ]
+ }
+ ],
+ },
+ externals: {
+ 'rdflib': '$rdf',
+ 'solid-logic': 'SolidLogic',
+ 'solid-ui': 'UI'
+ },
+ resolve: {
+ extensions: [".js", ".ts"],
+ alias: {
+ $rdf: 'rdflib',
+ rdflib: 'rdflib',
+ SolidLogic: 'solid-logic',
+ 'solid-logic': 'solid-logic',
+ UI: 'solid-ui',
+ 'solid-ui': 'solid-ui'
+ }
+ },
+ output: {
+ globalObject: 'globalThis',
+ library: {
+ type: 'umd',
+ umdNamedDefine: true
+ }
+ },
+ optimization: {
+ usedExports: true,
+ sideEffects: false,
+ // Tree shaking in development (normally disabled for faster builds)
+ providedExports: true,
+ },
+ devServer: {
+ static: [
+ './dev',
+ {
+ directory: './node_modules',
+ publicPath: '/node_modules'
+ }
+ ],
+ },
+ devtool: "source-map",
+ },
+];
From 378d640524590672e6d0666e5117f21c729647a9 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 16 Feb 2026 09:40:05 +0000
Subject: [PATCH 002/118] Initial plan
From 488fb9f0a042561828fcec870d0ea78456dabf5a Mon Sep 17 00:00:00 2001
From: Timea <4144203+timea-solid@users.noreply.github.com>
Date: Mon, 16 Feb 2026 10:40:30 +0100
Subject: [PATCH 003/118] Update package.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
package.json | 1 +
1 file changed, 1 insertion(+)
diff --git a/package.json b/package.json
index b05e344..c385508 100644
--- a/package.json
+++ b/package.json
@@ -86,6 +86,7 @@
"style-loader": "^4.0.0",
"typescript": "^5.9.3",
"typescript-transpile-only": "^0.0.4",
+ "webpack": "^5.0.0",
"webpack-cli": "^6.0.1",
"webpack-dev-server": "^5.2.3"
}
From 6f9721010c6c829bd9119cb02e8f9311770403cc Mon Sep 17 00:00:00 2001
From: Timea <4144203+timea-solid@users.noreply.github.com>
Date: Mon, 16 Feb 2026 10:41:25 +0100
Subject: [PATCH 004/118] Update dev/index.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
dev/index.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dev/index.ts b/dev/index.ts
index 9b76f54..d5080c1 100644
--- a/dev/index.ts
+++ b/dev/index.ts
@@ -15,9 +15,9 @@ async function finishLogin() {
const session = authSession
if (session.info.isLoggedIn) {
// Update the page with the status.
- webId.innerHTML = 'Logged in as: ' + authn.currentUser().uri
+ webId.textContent = 'Logged in as: ' + authn.currentUser().uri
} else {
- webId.innerHTML = ''
+ webId.textContent = ''
}
fetcher.load(webIdToShow).then(() => {
const app = pane.render(sym(webIdToShow), context)
From 61bb7dbcdae14178c8de962dd9fc2cef7dfa84ce Mon Sep 17 00:00:00 2001
From: Timea <4144203+timea-solid@users.noreply.github.com>
Date: Mon, 16 Feb 2026 10:41:36 +0100
Subject: [PATCH 005/118] Update webpack.dev.config.mjs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
webpack.dev.config.mjs | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/webpack.dev.config.mjs b/webpack.dev.config.mjs
index ad6db81..68e46a1 100644
--- a/webpack.dev.config.mjs
+++ b/webpack.dev.config.mjs
@@ -83,11 +83,7 @@ export default [
},
devServer: {
static: [
- './dev',
- {
- directory: './node_modules',
- publicPath: '/node_modules'
- }
+ './dev'
],
},
devtool: "source-map",
From 3e23568856a70d544c979bd9ebf9edce689621ab Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 16 Feb 2026 09:42:04 +0000
Subject: [PATCH 006/118] Initial plan
From 605ec0c5cc469f5bf91226bddeb9d92144e18b72 Mon Sep 17 00:00:00 2001
From: Timea <4144203+timea-solid@users.noreply.github.com>
Date: Mon, 16 Feb 2026 10:42:09 +0100
Subject: [PATCH 007/118] Update webpack.dev.config.mjs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
webpack.dev.config.mjs | 1 -
1 file changed, 1 deletion(-)
diff --git a/webpack.dev.config.mjs b/webpack.dev.config.mjs
index 68e46a1..b76f67c 100644
--- a/webpack.dev.config.mjs
+++ b/webpack.dev.config.mjs
@@ -77,7 +77,6 @@ export default [
},
optimization: {
usedExports: true,
- sideEffects: false,
// Tree shaking in development (normally disabled for faster builds)
providedExports: true,
},
From 8d1f2f807fee181306926cbb79494f59d00bb4d0 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 16 Feb 2026 09:42:21 +0000
Subject: [PATCH 008/118] Fix TDZ error by moving webIdToShow before
finishLogin call
Co-authored-by: timea-solid <4144203+timea-solid@users.noreply.github.com>
---
dev/index.ts | 4 +--
package-lock.json | 82 ++++++++++++++---------------------------------
2 files changed, 26 insertions(+), 60 deletions(-)
diff --git a/dev/index.ts b/dev/index.ts
index 9b76f54..6f31357 100644
--- a/dev/index.ts
+++ b/dev/index.ts
@@ -10,6 +10,8 @@ const webId = document.getElementById('webId')
loginBanner.appendChild(UI.login.loginStatusBox(document, null, {}))
+const webIdToShow = 'https://testingsolidos.solidcommunity.net/profile/card#me'
+
async function finishLogin() {
await authSession.handleIncomingRedirect()
const session = authSession
@@ -27,5 +29,3 @@ async function finishLogin() {
finishLogin()
-const webIdToShow = 'https://testingsolidos.solidcommunity.net/profile/card#me'
-
diff --git a/package-lock.json b/package-lock.json
index 029d77c..baf074f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -139,6 +139,7 @@
"integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@babel/code-frame": "^7.29.0",
"@babel/generator": "^7.29.0",
@@ -1990,6 +1991,7 @@
}
],
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=18"
},
@@ -2013,6 +2015,7 @@
}
],
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -3690,7 +3693,6 @@
"integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@types/estree": "*",
"@types/json-schema": "*"
@@ -3702,7 +3704,6 @@
"integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@types/eslint": "*",
"@types/estree": "*"
@@ -4617,7 +4618,6 @@
"integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@webassemblyjs/helper-numbers": "1.13.2",
"@webassemblyjs/helper-wasm-bytecode": "1.13.2"
@@ -4628,24 +4628,21 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
"integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/@webassemblyjs/helper-api-error": {
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
"integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/@webassemblyjs/helper-buffer": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
"integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/@webassemblyjs/helper-numbers": {
"version": "1.13.2",
@@ -4653,7 +4650,6 @@
"integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@webassemblyjs/floating-point-hex-parser": "1.13.2",
"@webassemblyjs/helper-api-error": "1.13.2",
@@ -4665,8 +4661,7 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
"integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/@webassemblyjs/helper-wasm-section": {
"version": "1.14.1",
@@ -4674,7 +4669,6 @@
"integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@webassemblyjs/helper-buffer": "1.14.1",
@@ -4688,7 +4682,6 @@
"integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@xtuc/ieee754": "^1.2.0"
}
@@ -4699,7 +4692,6 @@
"integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
"dev": true,
"license": "Apache-2.0",
- "peer": true,
"dependencies": {
"@xtuc/long": "4.2.2"
}
@@ -4709,8 +4701,7 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
"integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/@webassemblyjs/wasm-edit": {
"version": "1.14.1",
@@ -4718,7 +4709,6 @@
"integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@webassemblyjs/helper-buffer": "1.14.1",
@@ -4736,7 +4726,6 @@
"integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@webassemblyjs/helper-wasm-bytecode": "1.13.2",
@@ -4751,7 +4740,6 @@
"integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@webassemblyjs/helper-buffer": "1.14.1",
@@ -4765,7 +4753,6 @@
"integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@webassemblyjs/helper-api-error": "1.13.2",
@@ -4781,7 +4768,6 @@
"integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@xtuc/long": "4.2.2"
@@ -4849,16 +4835,14 @@
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
"integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
"dev": true,
- "license": "BSD-3-Clause",
- "peer": true
+ "license": "BSD-3-Clause"
},
"node_modules/@xtuc/long": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
"dev": true,
- "license": "Apache-2.0",
- "peer": true
+ "license": "Apache-2.0"
},
"node_modules/abort-controller": {
"version": "3.0.0",
@@ -4926,6 +4910,7 @@
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -4939,7 +4924,6 @@
"integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=10.13.0"
},
@@ -5872,6 +5856,7 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"baseline-browser-mapping": "^2.9.0",
"caniuse-lite": "^1.0.30001759",
@@ -6067,15 +6052,9 @@
}
},
"node_modules/caniuse-lite": {
-<<<<<<< dependabot/npm_and_yarn/npm_and_yarn-c081eec248
"version": "1.0.30001769",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001769.tgz",
"integrity": "sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==",
-=======
- "version": "1.0.30001767",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001767.tgz",
- "integrity": "sha512-34+zUAMhSH+r+9eKmYG+k2Rpt8XttfE4yXAjoZvkAPs15xcYQhyBYdalJ65BzivAvGRMViEjy6oKr/S91loekQ==",
->>>>>>> main
"dev": true,
"funding": [
{
@@ -6161,7 +6140,6 @@
"integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=6.0"
}
@@ -7142,15 +7120,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
-<<<<<<< dependabot/npm_and_yarn/npm_and_yarn-c081eec248
"version": "1.5.286",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz",
"integrity": "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==",
-=======
- "version": "1.5.283",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.283.tgz",
- "integrity": "sha512-3vifjt1HgrGW/h76UEeny+adYApveS9dH2h3p57JYzBSXJIKUJAvtmIytDKjcSCt9xHfrNCFJ7gts6vkhuq++w==",
->>>>>>> main
"dev": true,
"license": "ISC"
},
@@ -7379,8 +7351,7 @@
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz",
"integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/es-object-atoms": {
"version": "1.1.1",
@@ -7733,6 +7704,7 @@
"integrity": "sha512-vPZZsiOKaBAIATpFE2uMI4w5IRwdv/FpQ+qZZMR4E+PeOcM4OeoEbqxRMnywdxP19TyB/3h6QBB0EWon7letSQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@typescript-eslint/types": "^8.35.0",
"comment-parser": "^1.4.1",
@@ -8768,8 +8740,7 @@
"resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
"integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
"dev": true,
- "license": "BSD-2-Clause",
- "peer": true
+ "license": "BSD-2-Clause"
},
"node_modules/glob/node_modules/brace-expansion": {
"version": "1.1.12",
@@ -11034,6 +11005,7 @@
"integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"cssstyle": "^4.2.1",
"data-urls": "^5.0.0",
@@ -11255,7 +11227,6 @@
"integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=6.11.5"
},
@@ -11923,7 +11894,8 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"dev": true,
- "license": "0BSD"
+ "license": "0BSD",
+ "peer": true
},
"node_modules/merge-descriptors": {
"version": "1.0.3",
@@ -12187,8 +12159,7 @@
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/neostandard": {
"version": "0.12.2",
@@ -13220,6 +13191,7 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
@@ -14147,6 +14119,7 @@
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -14631,6 +14604,7 @@
"integrity": "sha512-B87MiOkYEyIN0lVFbqzHh//qrjg+T4Tvo+McmsTXVSPLgctdQbxPOqjSlrRwVSsUgPdY+XlU61cJco4xdY/YZg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@inrupt/solid-client-authn-browser": "^3.1.0",
"solid-namespace": "^0.5.4"
@@ -15220,7 +15194,6 @@
"integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.25",
"jest-worker": "^27.4.5",
@@ -15256,7 +15229,6 @@
"integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@types/node": "*",
"merge-stream": "^2.0.0",
@@ -15272,7 +15244,6 @@
"integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
"dev": true,
"license": "BSD-3-Clause",
- "peer": true,
"dependencies": {
"randombytes": "^2.1.0"
}
@@ -15283,7 +15254,6 @@
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -15412,6 +15382,7 @@
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=12"
},
@@ -16152,7 +16123,6 @@
"integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"glob-to-regexp": "^0.4.1",
"graceful-fs": "^4.1.2"
@@ -16237,6 +16207,7 @@
"integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@discoveryjs/json-ext": "^0.6.1",
"@webpack-cli/configtest": "^3.0.1",
@@ -16393,7 +16364,6 @@
"integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=10.13.0"
}
@@ -16404,7 +16374,6 @@
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
"dev": true,
"license": "BSD-2-Clause",
- "peer": true,
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
@@ -16419,7 +16388,6 @@
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"dev": true,
"license": "BSD-2-Clause",
- "peer": true,
"engines": {
"node": ">=4.0"
}
@@ -16430,7 +16398,6 @@
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">= 0.6"
}
@@ -16441,7 +16408,6 @@
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"mime-db": "1.52.0"
},
From 4f0aa610277627ae0e08b614b2a081add6612682 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 16 Feb 2026 09:43:20 +0000
Subject: [PATCH 009/118] Fix undefined --border-radius CSS variable in
.module-card
Co-authored-by: timea-solid <4144203+timea-solid@users.noreply.github.com>
---
dev/dev-global.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dev/dev-global.css b/dev/dev-global.css
index 93ff2b1..288e14b 100644
--- a/dev/dev-global.css
+++ b/dev/dev-global.css
@@ -324,7 +324,7 @@ button:disabled, [role="button"][aria-disabled="true"] {
/* Common card component - used across all modules */
.module-card {
background: var(--color-card-bg);
- border-radius: var(--border-radius);
+ border-radius: var(--border-radius-full);
box-shadow: var(--box-shadow);
padding: var(--spacing-lg);
margin-bottom: var(--spacing-lg);
From 3a7dba39f7a3fed30172c41f211a0635d4e228df Mon Sep 17 00:00:00 2001
From: timea-solid <4144203+timea-solid@users.noreply.github.com>
Date: Mon, 16 Feb 2026 11:23:34 +0100
Subject: [PATCH 010/118] separate contactPane css
---
declarations.d.ts | 5 ++
dev/index.ts | 5 ++
jest.config.mjs | 3 +-
src/contactsPane.js | 97 ++++++++++++--------------------
src/ontology/forms.ttl | 15 ++---
src/styles/contactsPane.css | 107 ++++++++++++++++++++++++++++++++++++
test/__mocks__/styleMock.js | 1 +
webpack.dev.config.mjs | 20 +++----
8 files changed, 170 insertions(+), 83 deletions(-)
create mode 100644 src/styles/contactsPane.css
create mode 100644 test/__mocks__/styleMock.js
diff --git a/declarations.d.ts b/declarations.d.ts
index 5cc7479..2b8475c 100644
--- a/declarations.d.ts
+++ b/declarations.d.ts
@@ -7,3 +7,8 @@ declare module '*.sparql' {
const content: string;
export default content;
}
+
+declare module '*.css' {
+ const content: string;
+ export default content;
+}
diff --git a/dev/index.ts b/dev/index.ts
index f3fa53c..8498c39 100644
--- a/dev/index.ts
+++ b/dev/index.ts
@@ -29,3 +29,8 @@ async function finishLogin() {
finishLogin()
+<<<<<<< Updated upstream
+=======
+const webIdToShow = 'https://timeaturdean.solidcommunity.net/profile/card#me'
+
+>>>>>>> Stashed changes
diff --git a/jest.config.mjs b/jest.config.mjs
index 2dc92fe..e088894 100644
--- a/jest.config.mjs
+++ b/jest.config.mjs
@@ -18,6 +18,7 @@ export default {
roots: ['/src', '/test'],
moduleNameMapper: {
'^SolidLogic$': 'solid-logic',
- '^\\$rdf$': 'rdflib'
+ '^\\$rdf$': 'rdflib',
+ '\\.css$': '/test/__mocks__/styleMock.js'
},
}
diff --git a/src/contactsPane.js b/src/contactsPane.js
index 452d093..4addb41 100644
--- a/src/contactsPane.js
+++ b/src/contactsPane.js
@@ -1,6 +1,6 @@
/* Contact AddressBook Pane
**
-** This outline pane allows a user to interact with an contact,
+** This outline pane allows a user to interact with a contact,
to change its state according to an ontology, comment on it, etc.
**
** See also things like
@@ -9,7 +9,6 @@ to change its state according to an ontology, comment on it, etc.
** http://www.iana.org/assignments/vcard-elements/vcard-elements.xhtml
**
*/
-/* global alert, confirm */
import { authn } from 'solid-logic'
import { addPersonToGroup, saveNewContact, saveNewGroup, groupMembers, getDataModelIssues } from './contactLogic'
@@ -18,10 +17,10 @@ import { mintNewAddressBook } from './mintNewAddressBook'
import { renderIndividual } from './individual'
import { toolsPane } from './toolsPane'
import { groupMembership } from './groupMembershipControl'
+import './styles/contactsPane.css'
const ns = UI.ns
const utils = UI.utils
-const style = UI.style
export default {
icon: UI.icons.iconBase + 'noun_99101.svg', // changed from embedded icon 2016-05-01
@@ -50,7 +49,7 @@ export default {
// stick functions here
function complain (message) {
- console.log('contactsPane: ' + message)
+ // console.log('contactsPane: ' + message)
div.appendChild(UI.widgets.errorMessageBlock(dom, message, 'pink'))
}
function complainIfBad (ok, body) {
@@ -65,7 +64,7 @@ export default {
dom,
{ noun: 'address book', appPathSegment: 'contactorator.timbl.com' },
function (ws, newBase) {
- thisPane.clone(thisAddressBook, newBase, { // @@ clone is not a thing - use mintNew
+ thisPane.mintNew(thisAddressBook, newBase, {
me,
div,
dom
@@ -240,7 +239,7 @@ export default {
}
}
)
- deleteButton.style = 'height: 2em;'
+ deleteButton.classList.add('deleteButton')
})
}
@@ -254,20 +253,11 @@ export default {
count++
lastRow = row
}
- row.setAttribute(
- 'style',
- matches
- ? selectedPeople[row.subject.uri]
- ? 'background-color: #cce;'
- : ''
- : 'display: none;'
- )
+ row.classList.toggle('selected', matches && !!selectedPeople[row.subject.uri])
+ row.classList.toggle('hidden', !matches)
}
if (count === 1 && active) {
const unique = lastRow.subject
- // selectedPeople = { }
- // selectedPeople[unique.uri] = true
- // lastRow.setAttribute('style', 'background-color: #cce;')
selectPerson(unique)
}
}
@@ -278,7 +268,7 @@ export default {
callbackFunction
) {
function fetchGroupAndSelct (group, groupRow) {
- groupRow.setAttribute('style', 'background-color: #ffe;')
+ groupRow.classList.add('group-loading')
kb.fetcher.nowOrWhenFetched(group.doc(), undefined, function (
ok,
message
@@ -288,7 +278,8 @@ export default {
badness.push(msg)
return complainIfBad(ok, msg)
}
- groupRow.setAttribute('style', 'background-color: #cce;')
+ groupRow.classList.remove('group-loading')
+ groupRow.classList.add('selected')
selectedGroups[group.uri] = true
refreshGroupsSelected()
refreshNames() // @@ every time??
@@ -339,10 +330,7 @@ export default {
function renderPane (dom, subject, paneName) {
const p = dataBrowserContext.session.paneRegistry.byName(paneName)
const d = p.render(subject, dataBrowserContext)
- d.setAttribute(
- 'style',
- 'border: 0.1em solid #444; border-radius: 0.5em'
- )
+ d.classList.add('renderPane')
return d
}
@@ -452,7 +440,7 @@ export default {
const personRow = dom.createElement('tr')
const personLeft = personRow.appendChild(dom.createElement('td'))
// const personRight = personRow.appendChild(dom.createElement('td'))
- personLeft.setAttribute('style', dataCellStyle)
+ personLeft.classList.add('dataCell')
personRow.subject = person
const name = nameFor(person)
personLeft.textContent = name
@@ -471,10 +459,7 @@ export default {
for (let i = 0; i < table.children.length; i++) {
const row = table.children[i]
if (row.subject) {
- row.setAttribute(
- 'style',
- selectionArray[row.subject.uri] ? 'background-color: #cce;' : ''
- )
+ row.classList.toggle('selected', !!selectionArray[row.subject.uri])
}
}
}
@@ -544,12 +529,11 @@ export default {
const sharingButton = cardMain.appendChild(
dom.createElement('button')
)
- sharingButton.style.cssText =
- 'padding: 1em; margin: 1em'
+ sharingButton.classList.add('sharingButton')
const img = sharingButton.appendChild(
dom.createElement('img')
)
- img.style.cssText = 'width: 1.5em; height: 1.5em'
+ img.classList.add('sharingButtonIcon')
img.setAttribute(
'src',
UI.icons.iconBase + 'noun_123691.svg'
@@ -573,7 +557,7 @@ export default {
groupRow.subject = group
UI.widgets.makeDraggable(groupRow, group)
- groupRow.setAttribute('style', dataCellStyle)
+ groupRow.classList.add('dataCell')
groupRow.textContent = name
UI.widgets.makeDropTarget(groupRow, handleURIsDroppedOnGroup)
@@ -685,10 +669,7 @@ export default {
// ////////////////// Body of 3-column browser
const bookTable = dom.createElement('table')
- bookTable.setAttribute(
- 'style',
- 'border-collapse: collapse; margin-right: 0; max-height: 9in;'
- )
+ bookTable.classList.add('bookTable')
div.appendChild(bookTable)
/*
bookTable.innerHTML = `
@@ -714,44 +695,36 @@ export default {
const cardHeader = bookHeader.appendChild(dom.createElement('td'))
const groupsMain = bookMain.appendChild(dom.createElement('td'))
+ groupsMain.classList.add('groupsMain')
const groupsMainTable = groupsMain.appendChild(dom.createElement('table'))
const peopleMain = bookMain.appendChild(dom.createElement('td'))
const peopleMainTable = peopleMain.appendChild(dom.createElement('table'))
const groupsFooter = bookFooter.appendChild(dom.createElement('td'))
+ groupsFooter.classList.add('groupsFooter')
const peopleFooter = bookFooter.appendChild(dom.createElement('td'))
const cardFooter = bookFooter.appendChild(dom.createElement('td'))
cardHeader.appendChild(dom.createElement('div')) // searchDiv
- // searchDiv.setAttribute('style', 'border: 0.1em solid #888; border-radius: 0.5em')
+
const searchInput = cardHeader.appendChild(dom.createElement('input'))
searchInput.setAttribute('type', 'text')
- searchInput.style = style.searchInputStyle ||
- 'border: 0.1em solid #444; border-radius: 0.5em; width: 100%; font-size: 100%; padding: 0.1em 0.6em'
+ searchInput.classList.add('searchInput')
searchInput.addEventListener('input', function (_event) {
refreshFilteredPeople(true) // Active: select person if just one left
})
const cardMain = bookMain.appendChild(dom.createElement('td'))
- cardMain.setAttribute('style', 'margin: 0;') // fill space available
- const dataCellStyle = 'padding: 0.1em;'
+ cardMain.classList.add('cardMain')
groupsHeader.textContent = 'groups'
- groupsHeader.setAttribute(
- 'style',
- 'min-width: 10em; padding-bottom 0.2em;'
- )
+ groupsHeader.classList.add('groupsHeader')
function setGroupListVisibility (visible) {
- const vis = visible ? '' : 'display: none;'
- groupsHeader.setAttribute(
- 'style',
- 'min-width: 10em; padding-bottom 0.2em;' + vis
- )
- const hfstyle = 'padding: 0.1em;'
- groupsMain.setAttribute('style', hfstyle + vis)
- groupsFooter.setAttribute('style', hfstyle + vis)
+ groupsHeader.classList.toggle('hidden', !visible)
+ groupsMain.classList.toggle('hidden', !visible)
+ groupsFooter.classList.toggle('hidden', !visible)
}
setGroupListVisibility(true)
@@ -761,26 +734,24 @@ export default {
if (book) {
const allGroups = groupsHeader.appendChild(dom.createElement('button'))
allGroups.textContent = 'All'
- const style = 'margin-left: 1em; font-size: 100%;'
- allGroups.setAttribute('style', style)
+ allGroups.classList.add('allGroupsButton')
allGroups.addEventListener('click', function (_event) {
allGroups.state = allGroups.state ? 0 : 1
peopleMainTable.innerHTML = '' // clear in case refreshNames doesn't work for unknown reason
if (allGroups.state) {
- allGroups.setAttribute('style', style + 'background-color: #ff8;')
+ allGroups.classList.add('allGroupsButton--loading')
selectAllGroups(selectedGroups, groupsMainTable, function (
ok,
message
) {
if (!ok) return complain(message)
- allGroups.setAttribute(
- 'style',
- style + 'background-color: black; color: white'
- )
+ allGroups.classList.remove('allGroupsButton--loading')
+ allGroups.classList.add('allGroupsButton--active')
refreshGroupsSelected()
})
} else {
- allGroups.setAttribute('style', style + 'background-color: #cfc;') // pale green hint groups loaded
+ allGroups.classList.remove('allGroupsButton--loading', 'allGroupsButton--active')
+ allGroups.classList.add('allGroupsButton--loaded') // pale green hint groups loaded
selectedGroups = {}
refreshGroupsSelected()
}
@@ -798,8 +769,8 @@ export default {
} // if not book
peopleHeader.textContent = 'name'
- peopleHeader.setAttribute('style', 'min-width: 18em;')
- peopleMain.setAttribute('style', 'overflow:scroll;')
+ peopleHeader.classList.add('peopleHeader')
+ peopleMain.classList.add('peopleMain')
// New Contact button
const newContactButton = dom.createElement('button')
diff --git a/src/ontology/forms.ttl b/src/ontology/forms.ttl
index f803e4d..0d4089c 100644
--- a/src/ontology/forms.ttl
+++ b/src/ontology/forms.ttl
@@ -1,10 +1,9 @@
-# This turtle file defined the forms usied in the contacts management
+# This turtle file defined the forms used in the contacts management
#
-# Indivduals and orgs are in one file as they both
-# share some forms (address etc) and also interact (roles)
+# Indivduals and orgs are in one file as they both
+# share some forms (address etc) and also interactions (roles)
-# Now hand-edited, was originally made using form editor.
-# Forms documentaion: https://solid.github.io/solid-ui/Documentation/forms-intro.html
+# Forms documentaion: https://solidos.github.io/solid-ui/docs/forms-intro.html
@prefix rdf: .
@prefix dct: .
@@ -19,20 +18,18 @@
# Ontology additions or interpretations needed for the form to work well
-# The ontology file doesn't make them disjoint. This makes the selector be a choice.
+# The ontology file doesn't make them disjoint. This makes the selector be a choice.
vcard:TelephoneType owl:disjointUnionOf ( vcard:Cell vcard:Home vcard:Work) .
vcard:Type owl:disjointUnionOf (vcard:Home vcard:Work) . # for email
# Better field labels
-vcard:Cell ui:label "mobile"@en . # app will imake nitial caps if nec
+vcard:Cell ui:label "mobile"@en . # app will make initial caps if necessary
vcard:hasAddress ui:label "address"@en .
vcard:bday ui:label "born"@en.
vcard:hasEmail ui:label "email"@en .
vcard:hasTelephone ui:label "phone"@en .
vcard:note ui:label "notes"@en .
-
-
# Ontology data to drive a top classifier
foaf:Agent owl:disjointUnionOf (
diff --git a/src/styles/contactsPane.css b/src/styles/contactsPane.css
new file mode 100644
index 0000000..3d1074f
--- /dev/null
+++ b/src/styles/contactsPane.css
@@ -0,0 +1,107 @@
+/* contactsPane styles — extracted from inline styles in contactsPane.js */
+
+/* ── Layout: Three-column browser ────────────────────────────── */
+
+.contactPane .bookTable {
+ border-collapse: collapse;
+ margin-right: 0;
+ max-height: 9in;
+}
+
+.contactPane .groupsHeader {
+ min-width: 10em;
+ padding-bottom: 0.2em;
+}
+
+.contactPane .peopleHeader {
+ min-width: 18em;
+}
+
+.contactPane .peopleMain {
+ overflow: scroll;
+}
+
+.contactPane .cardMain {
+ margin: 0;
+}
+
+.contactPane .groupsMain,
+.contactPane .groupsFooter {
+ padding: 0.1em;
+}
+
+/* ── Search ──────────────────────────────────────────────────── */
+
+.contactPane .searchInput {
+ border: 0.1em solid #444;
+ border-radius: 0.5em;
+ width: 100%;
+ font-size: 100%;
+ padding: 0.1em 0.6em;
+ margin: 0.2em;
+}
+
+/* ── Data cells ──────────────────────────────────────────────── */
+
+.contactPane .dataCell {
+ padding: 0.1em;
+}
+
+/* ── Rendered sub-pane ───────────────────────────────────────── */
+
+.contactPane .renderPane {
+ border: 0.1em solid #444;
+ border-radius: 0.5em;
+}
+
+/* ── Delete button ───────────────────────────────────────────── */
+
+.contactPane .deleteButton {
+ height: 2em;
+}
+
+/* ── Sharing button & icon ───────────────────────────────────── */
+
+.contactPane .sharingButton {
+ padding: 1em;
+ margin: 1em;
+}
+
+.contactPane .sharingButtonIcon {
+ width: 1.5em;
+ height: 1.5em;
+}
+
+/* ── "All" groups button ─────────────────────────────────────── */
+
+.contactPane .allGroupsButton {
+ margin-left: 1em;
+ font-size: 100%;
+}
+
+.contactPane .allGroupsButton--loading {
+ background-color: #ff8;
+}
+
+.contactPane .allGroupsButton--active {
+ background-color: black;
+ color: white;
+}
+
+.contactPane .allGroupsButton--loaded {
+ background-color: #cfc;
+}
+
+/* ── Selection & visibility states ───────────────────────────── */
+
+.contactPane .selected {
+ background-color: #cce;
+}
+
+.contactPane .group-loading {
+ background-color: #ffe;
+}
+
+.contactPane .hidden {
+ display: none;
+}
diff --git a/test/__mocks__/styleMock.js b/test/__mocks__/styleMock.js
new file mode 100644
index 0000000..4ba52ba
--- /dev/null
+++ b/test/__mocks__/styleMock.js
@@ -0,0 +1 @@
+module.exports = {}
diff --git a/webpack.dev.config.mjs b/webpack.dev.config.mjs
index b76f67c..4ddb84f 100644
--- a/webpack.dev.config.mjs
+++ b/webpack.dev.config.mjs
@@ -4,11 +4,11 @@ import webpack from 'webpack'
export default [
{
- mode: "development",
- entry: ["./dev/index.ts"],
+ mode: 'development',
+ entry: ['./dev/index.ts'],
plugins: [
- new HtmlWebpackPlugin({
- template: "./dev/index.html",
+ new HtmlWebpackPlugin({
+ template: './dev/index.html',
inject: 'head'
}),
new NodePolyfillPlugin(),
@@ -18,7 +18,7 @@ export default [
UI: 'solid-ui'
}),
new webpack.DefinePlugin({
- 'global': 'globalThis',
+ global: 'globalThis',
'process.env.NODE_ENV': JSON.stringify('development')
})
],
@@ -27,7 +27,7 @@ export default [
{
test: /\.(js|ts)$/,
exclude: /node_modules/,
- use: ["babel-loader"],
+ use: ['babel-loader'],
},
{
test: /\.ttl$/, // Target text files
@@ -53,12 +53,12 @@ export default [
],
},
externals: {
- 'rdflib': '$rdf',
+ rdflib: '$rdf',
'solid-logic': 'SolidLogic',
'solid-ui': 'UI'
},
resolve: {
- extensions: [".js", ".ts"],
+ extensions: ['.js', '.ts'],
alias: {
$rdf: 'rdflib',
rdflib: 'rdflib',
@@ -85,6 +85,6 @@ export default [
'./dev'
],
},
- devtool: "source-map",
+ devtool: 'source-map',
},
-];
+]
From 34c2f824ca388b70b2090956cc7373ac74294d9d Mon Sep 17 00:00:00 2001
From: timea-solid <4144203+timea-solid@users.noreply.github.com>
Date: Mon, 16 Feb 2026 11:26:33 +0100
Subject: [PATCH 011/118] mapped to mashlib theme
---
src/styles/contactsPane.css | 27 ++++++++++++++-------------
1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/src/styles/contactsPane.css b/src/styles/contactsPane.css
index 3d1074f..bf8d54b 100644
--- a/src/styles/contactsPane.css
+++ b/src/styles/contactsPane.css
@@ -1,4 +1,5 @@
/* contactsPane styles — extracted from inline styles in contactsPane.js */
+/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */
/* ── Layout: Three-column browser ────────────────────────────── */
@@ -33,10 +34,10 @@
/* ── Search ──────────────────────────────────────────────────── */
.contactPane .searchInput {
- border: 0.1em solid #444;
- border-radius: 0.5em;
+ border: 0.1em solid var(--color-text-muted);
+ border-radius: var(--border-radius-base);
width: 100%;
- font-size: 100%;
+ font-size: var(--font-size-base);
padding: 0.1em 0.6em;
margin: 0.2em;
}
@@ -50,8 +51,8 @@
/* ── Rendered sub-pane ───────────────────────────────────────── */
.contactPane .renderPane {
- border: 0.1em solid #444;
- border-radius: 0.5em;
+ border: 0.1em solid var(--color-text-muted);
+ border-radius: var(--border-radius-base);
}
/* ── Delete button ───────────────────────────────────────────── */
@@ -63,20 +64,20 @@
/* ── Sharing button & icon ───────────────────────────────────── */
.contactPane .sharingButton {
- padding: 1em;
- margin: 1em;
+ padding: var(--spacing-md);
+ margin: var(--spacing-md);
}
.contactPane .sharingButtonIcon {
- width: 1.5em;
- height: 1.5em;
+ width: var(--spacing-lg);
+ height: var(--spacing-lg);
}
/* ── "All" groups button ─────────────────────────────────────── */
.contactPane .allGroupsButton {
- margin-left: 1em;
- font-size: 100%;
+ margin-left: var(--spacing-md);
+ font-size: var(--font-size-base);
}
.contactPane .allGroupsButton--loading {
@@ -84,8 +85,8 @@
}
.contactPane .allGroupsButton--active {
- background-color: black;
- color: white;
+ background-color: var(--color-text);
+ color: var(--color-background);
}
.contactPane .allGroupsButton--loaded {
From 29e115b7fb04c64eb57216675d72304cba709625 Mon Sep 17 00:00:00 2001
From: timea-solid <4144203+timea-solid@users.noreply.github.com>
Date: Mon, 16 Feb 2026 11:32:41 +0100
Subject: [PATCH 012/118] added individual css file
---
src/individual.js | 6 +++---
src/mintNewAddressBook.js | 2 +-
src/styles/contactsPane.css | 6 ++++++
src/styles/individual.css | 13 +++++++++++++
4 files changed, 23 insertions(+), 4 deletions(-)
create mode 100644 src/styles/individual.css
diff --git a/src/individual.js b/src/individual.js
index e0f5730..b179b5c 100644
--- a/src/individual.js
+++ b/src/individual.js
@@ -6,10 +6,10 @@ import { renderGroupMemberships } from './groupMembershipControl'
import textOfForms from './ontology/forms.ttl'
import VCARD_ONTOLOGY_TEXT from './ontology/vcard.ttl'
import * as $rdf from 'rdflib'
+import './styles/individual.css'
const ns = UI.ns
const kb = store
-const style = UI.style
export function loadTurtleText (kb, thing, text) {
const doc = thing.doc()
@@ -32,7 +32,7 @@ export async function renderIndividual (dom, div, subject, dataBrowserContext) {
function spacer () {
div
.appendChild(dom.createElement('div'))
- .setAttribute('style', 'height: 1em')
+ .classList.add('spacer')
}
function complainIfBad (ok, body) {
if (!ok) {
@@ -67,7 +67,7 @@ export async function renderIndividual (dom, div, subject, dataBrowserContext) {
complain('Error: Failed to load contact card: ' + err)
} // end of try catch on load
- div.style = style.paneDivStyle || 'padding: 0.5em 1.5em 1em 1.5em;'
+ div.classList.add('individualPane')
authn.checkUser() // kick off async operation @@@ use async version
diff --git a/src/mintNewAddressBook.js b/src/mintNewAddressBook.js
index ed1a3d5..e884a70 100644
--- a/src/mintNewAddressBook.js
+++ b/src/mintNewAddressBook.js
@@ -96,7 +96,7 @@ export function mintNewAddressBook (dataBrowserContext, context) {
// @@ delete or grey other stuff
console.log(`New ${appInstanceNoun} created at ${newAppInstance}`)
const p = div.appendChild(dom.createElement('p'))
- p.setAttribute('style', 'font-size: 140%;')
+ p.classList.add('claimSuccess')
p.innerHTML =
'Your
Date: Mon, 16 Feb 2026 11:54:09 +0100
Subject: [PATCH 013/118] added toolPane css file
---
src/styles/toolsPane.css | 48 ++++++++++++++++++++++++++++++++++++++++
src/toolsPane.js | 33 +++++++++++++--------------
2 files changed, 63 insertions(+), 18 deletions(-)
create mode 100644 src/styles/toolsPane.css
diff --git a/src/styles/toolsPane.css b/src/styles/toolsPane.css
new file mode 100644
index 0000000..126c8b2
--- /dev/null
+++ b/src/styles/toolsPane.css
@@ -0,0 +1,48 @@
+/* toolsPane.js styles — extracted from inline styles */
+/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */
+
+/* ── Tools pane table ────────────────────────────────────────── */
+
+.contactPane .toolsTable {
+ font-size: 120%;
+ margin: var(--spacing-md);
+ border: 0.1em var(--color-border-pale);
+}
+
+/* ── Tools header row ────────────────────────────────────────── */
+
+.contactPane .toolsHeader {
+ min-width: 20em;
+ padding: var(--spacing-md);
+ font-size: 150%;
+ border-bottom: 0.1em solid var(--color-error);
+ margin-bottom: var(--spacing-xl);
+}
+
+/* ── Status block ────────────────────────────────────────────── */
+
+.contactPane .toolsStatusBlock {
+ padding: var(--spacing-xl);
+}
+
+/* ── Tools buttons ───────────────────────────────────────────── */
+
+.contactPane .toolsButton {
+ font-size: var(--font-size-base);
+ margin: 0.8em;
+ padding: var(--spacing-xs);
+}
+
+/* ── Load index button states ────────────────────────────────── */
+
+.contactPane .toolsButton--loading {
+ background-color: #ffc;
+}
+
+.contactPane .toolsButton--error {
+ background-color: #fcc;
+}
+
+.contactPane .toolsButton--success {
+ background-color: #cfc;
+}
diff --git a/src/toolsPane.js b/src/toolsPane.js
index 08cc99c..e46d812 100644
--- a/src/toolsPane.js
+++ b/src/toolsPane.js
@@ -5,6 +5,7 @@
import * as UI from 'solid-ui'
import { store } from 'solid-logic'
import { saveNewGroup, addPersonToGroup, groupMembers } from './contactLogic'
+import './styles/toolsPane.css'
export function toolsPane (
selectAllGroups,
@@ -19,23 +20,16 @@ export function toolsPane (
const ns = UI.ns
const VCARD = ns.vcard
- const buttonStyle = 'font-size: 100%; margin: 0.8em; padding:0.5em;'
const pane = dom.createElement('div')
const table = pane.appendChild(dom.createElement('table'))
- table.setAttribute(
- 'style',
- 'font-size:120%; margin: 1em; border: 0.1em #ccc ;'
- )
+ table.classList.add('toolsTable')
const headerRow = table.appendChild(dom.createElement('tr'))
headerRow.textContent = UI.utils.label(book) + ' - tools'
- headerRow.setAttribute(
- 'style',
- 'min-width: 20em; padding: 1em; font-size: 150%; border-bottom: 0.1em solid red; margin-bottom: 2em;'
- )
+ headerRow.classList.add('toolsHeader')
const statusRow = table.appendChild(dom.createElement('tr'))
const statusBlock = statusRow.appendChild(dom.createElement('div'))
- statusBlock.setAttribute('style', 'padding: 2em;')
+ statusBlock.classList.add('toolsStatusBlock')
const MainRow = table.appendChild(dom.createElement('tr'))
const box = MainRow.appendChild(dom.createElement('table'))
table.appendChild(dom.createElement('tr')) // bottomRow
@@ -98,31 +92,34 @@ export function toolsPane (
}
async function loadIndexHandler (_event) {
- loadIndexButton.setAttribute('style', 'background-color: #ffc;')
+ loadIndexButton.classList.add('toolsButton--loading')
+ loadIndexButton.classList.remove('toolsButton--error', 'toolsButton--success')
const nameEmailIndex = kb.any(book, ns.vcard('nameEmailIndex'))
try {
await kb.fetcher.load(nameEmailIndex)
} catch (e) {
- loadIndexButton.setAttribute('style', 'background-color: #fcc;')
+ loadIndexButton.classList.remove('toolsButton--loading')
+ loadIndexButton.classList.add('toolsButton--error')
log('Error: People index has NOT been loaded' + e + '\n')
}
- loadIndexButton.setAttribute('style', 'background-color: #cfc;')
+ loadIndexButton.classList.remove('toolsButton--loading')
+ loadIndexButton.classList.add('toolsButton--success')
log(' People index has been loaded\n')
} // loadIndexHandler
const loadIndexButton = pane.appendChild(dom.createElement('button'))
loadIndexButton.textContent = 'Load main index'
- loadIndexButton.style.cssText = buttonStyle
+ loadIndexButton.classList.add('toolsButton')
loadIndexButton.addEventListener('click', loadIndexHandler)
const statButton = pane.appendChild(dom.createElement('button'))
statButton.textContent = 'Statistics'
- statButton.style.cssText = buttonStyle
+ statButton.classList.add('toolsButton')
statButton.addEventListener('click', stats)
const checkAccessButton = pane.appendChild(dom.createElement('button'))
checkAccessButton.textContent =
'Check individual card access of selected groups'
- checkAccessButton.style.cssText = buttonStyle
+ checkAccessButton.classList.add('toolsButton')
async function checkAcces (_event) {
function doCard (card) {
UI.acl.fixIndividualCardACL(card, log, function (ok, message) {
@@ -156,7 +153,7 @@ export function toolsPane (
// DUPLICATES CHECK
const checkDuplicates = pane.appendChild(dom.createElement('button'))
checkDuplicates.textContent = 'Find duplicate cards'
- checkDuplicates.style.cssText = buttonStyle
+ checkDuplicates.classList.add('toolsButton')
checkDuplicates.addEventListener('click', function (_event) {
const stats = {} // global god context
@@ -699,7 +696,7 @@ export function toolsPane (
}
const checkGroupless = pane.appendChild(dom.createElement('button'))
- checkGroupless.style.cssText = buttonStyle
+ checkGroupless.classList.add('toolsButton')
checkGroupless.textContent = 'Find individuals with no group'
checkGroupless.addEventListener('click', function (_event) {
log('Loading groups...')
From d740beed0cf592483d86cc679627ee25c48d4c3f Mon Sep 17 00:00:00 2001
From: timea-solid <4144203+timea-solid@users.noreply.github.com>
Date: Mon, 16 Feb 2026 11:56:46 +0100
Subject: [PATCH 014/118] added mugshotGallery css file
---
src/groupMembershipControl.js | 3 ---
src/mugshotGallery.js | 6 ++----
src/styles/mugshotGallery.css | 10 ++++++++++
src/toolsPane.js | 1 -
4 files changed, 12 insertions(+), 8 deletions(-)
create mode 100644 src/styles/mugshotGallery.css
diff --git a/src/groupMembershipControl.js b/src/groupMembershipControl.js
index 6ea6140..638039e 100644
--- a/src/groupMembershipControl.js
+++ b/src/groupMembershipControl.js
@@ -3,10 +3,7 @@ import * as UI from 'solid-ui'
import { store } from 'solid-logic'
const ns = UI.ns
-// const buttons = UI.buttonsn no
-// const widgets = UI.widgets
const utils = UI.utils
-// const style = UI.style
const kb = store
// Groups the person is a member of
diff --git a/src/mugshotGallery.js b/src/mugshotGallery.js
index 16ea727..cd78108 100644
--- a/src/mugshotGallery.js
+++ b/src/mugshotGallery.js
@@ -2,6 +2,7 @@ import * as UI from 'solid-ui'
import { store } from 'solid-logic'
import mime from 'mime-types'
import * as $rdf from 'rdflib'
+import './styles/mugshotGallery.css'
const ns = UI.ns
const utils = UI.utils
@@ -190,10 +191,7 @@ export function renderMugshotGallery (dom, subject) {
function elementForImage (image) {
const img = dom.createElement('img')
- img.setAttribute(
- 'style',
- 'max-height: 10em; border-radius: 1em; margin: 0.7em;'
- )
+ img.classList.add('mugshotImage')
UI.widgets.makeDropTarget(
img,
handleURIsDroppedOnMugshot,
diff --git a/src/styles/mugshotGallery.css b/src/styles/mugshotGallery.css
new file mode 100644
index 0000000..795deba
--- /dev/null
+++ b/src/styles/mugshotGallery.css
@@ -0,0 +1,10 @@
+/* mugshotGallery.js styles — extracted from inline styles */
+/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */
+
+/* ── Mugshot image ───────────────────────────────────────────── */
+
+.contactPane .mugshotImage {
+ max-height: 10em;
+ border-radius: var(--border-radius-full);
+ margin: 0.7em;
+}
diff --git a/src/toolsPane.js b/src/toolsPane.js
index e46d812..b130d10 100644
--- a/src/toolsPane.js
+++ b/src/toolsPane.js
@@ -1,6 +1,5 @@
// The tools pane is for managing and debugging and maintaining solid contacts databases
//
-/* global confirm, $rdf */
import * as UI from 'solid-ui'
import { store } from 'solid-logic'
From e8ff6c681b4ce20485fbfbf40b34eb28ac2094b0 Mon Sep 17 00:00:00 2001
From: timea-solid <4144203+timea-solid@users.noreply.github.com>
Date: Mon, 16 Feb 2026 12:03:10 +0100
Subject: [PATCH 015/118] added webidControl css file
---
src/styles/webidControl.css | 59 +++++++++++++++++++++++++++++++++++++
src/webidControl.js | 33 ++++++++-------------
2 files changed, 72 insertions(+), 20 deletions(-)
create mode 100644 src/styles/webidControl.css
diff --git a/src/styles/webidControl.css b/src/styles/webidControl.css
new file mode 100644
index 0000000..9ced8f0
--- /dev/null
+++ b/src/styles/webidControl.css
@@ -0,0 +1,59 @@
+/* webidControl.js styles — extracted from inline styles */
+/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */
+
+/* ── Named pane (rendered sub-pane) ──────────────────────────── */
+
+.contactPane .namedPane {
+ border: 0.1em solid var(--color-text-muted);
+ border-radius: var(--border-radius-base);
+}
+
+/* ── WebID / Public ID outer container ───────────────────────── */
+
+.contactPane .webidControl {
+ border-radius: 0.3em;
+ border: 0.1em solid #888;
+}
+
+/* ── Persona row ─────────────────────────────────────────────── */
+
+.contactPane .personaRow {
+ padding: 0.2em;
+}
+
+.contactPane .personaRow--webid {
+ background-color: #ffe6ff;
+}
+
+/* ── Full-width elements ─────────────────────────────────────── */
+
+.contactPane .fullWidth {
+ width: 100%;
+}
+
+/* ── Open/close profile button ───────────────────────────────── */
+
+.contactPane .personaOpenButton {
+ float: right;
+ background-color: transparent;
+ border: none;
+}
+
+/* ── Section heading ─────────────────────────────────────────── */
+
+.contactPane .webidHeading {
+ font-size: 110%;
+ font-weight: bold;
+ color: var(--color-primary);
+ padding: 0.2em;
+ margin: 0.7em 0;
+}
+
+/* ── Prompt text ─────────────────────────────────────────────── */
+
+.contactPane .webidPrompt {
+ padding: 0.7em;
+ border: none;
+ font-size: var(--font-size-base);
+ white-space: pre-wrap;
+}
diff --git a/src/webidControl.js b/src/webidControl.js
index f28d50e..25d2901 100644
--- a/src/webidControl.js
+++ b/src/webidControl.js
@@ -7,12 +7,12 @@ import { updateMany } from './contactLogic'
import { renderAutocompleteControl } from './autocompleteBar'
// import { wikidataParameters, loadPublicDataThing, wikidataClasses } from './lib/publicData' // dbpediaParameters
import * as $rdf from 'rdflib'
+import './styles/webidControl.css'
const ns = UI.ns
const widgets = UI.widgets
const utils = UI.utils
const kb = store
-const style = UI.style
const wikidataClasses = widgets.publicData.wikidataClasses // @@ move to solid-logic
const wikidataParameters = widgets.publicData.wikidataParameters // @@ move to solid-logic
@@ -21,7 +21,6 @@ const WEBID_NOUN = 'Solid ID'
const PUBLICID_NOUN = 'In public data'
const DOWN_ARROW = UI.icons.iconBase + 'noun_1369241.svg'
const UP_ARROW = UI.icons.iconBase + 'noun_1369237.svg'
-const webidPanelBackgroundColor = '#ffe6ff'
/// ///////////////////////// Logic
@@ -157,10 +156,7 @@ export function isOrganization (agent) {
export function renderNamedPane (dom, subject, paneName, dataBrowserContext) {
const p = dataBrowserContext.session.paneRegistry.byName(paneName)
const d = p.render(subject, dataBrowserContext) // @@@ change some bits of context!
- d.setAttribute(
- 'style',
- 'border: 0.1em solid #444; border-radius: 0.5em'
- )
+ d.classList.add('namedPane')
return d
}
@@ -232,18 +228,18 @@ export async function renderIdControl (person, dataBrowserContext, options) {
const row = widgets.personTR(dom, UI.ns.foaf('knows'), webidObject, opts)
if (isWebId) {
row.children[1].textConent = opts.title // @@ will be overwritten
- row.style.backgroundColor = webidPanelBackgroundColor
+ row.classList.add('personaRow--webid')
}
- row.style.padding = '0.2em'
+ row.classList.add('personaRow')
return row
}
const div = dom.createElement('div')
- div.style.width = '100%'
+ div.classList.add('fullWidth')
const personaTable = div.appendChild(dom.createElement('table'))
- personaTable.style.width = '100%'
+ personaTable.classList.add('fullWidth')
const nav = personaTable.appendChild(renderNewRow(persona))
- nav.style.width = '100%'
+ nav.classList.add('fullWidth')
const mainRow = personaTable.appendChild(dom.createElement('tr'))
const mainCell = mainRow.appendChild(dom.createElement('td'))
mainCell.setAttribute('colspan', 3)
@@ -253,9 +249,7 @@ export async function renderIdControl (person, dataBrowserContext, options) {
const rhs = nav.children[2]
const openButton = rhs.appendChild(widgets.button(dom, DOWN_ARROW, 'View', profileOpenHandler))
- openButton.style.float = 'right'
- delete openButton.style.backgroundColor
- delete openButton.style.border
+ openButton.classList.add('personaOpenButton')
const paneName = isOrganization(person) || isOrganization(persona) ? 'profile' : 'profile' // was default for org
widgets.publicData.loadPublicDataThing(kb, person, persona).then(_resp => {
@@ -263,7 +257,7 @@ export async function renderIdControl (person, dataBrowserContext, options) {
try {
main = renderNamedPane(dom, persona, paneName, dataBrowserContext)
console.log('main: ', main)
- main.style.width = '100%'
+ main.classList.add('fullWidth')
console.log('renderIdControl: main element: ', main)
// main.style.visibility = 'collapse'
mainCell.appendChild(main)
@@ -297,7 +291,7 @@ export async function renderIdControl (person, dataBrowserContext, options) {
options = options || {}
options.editable = kb.updater.editable(person.doc().uri, kb)
const div = dom.createElement('div')
- div.style = 'border-radius:0.3em; border: 0.1em solid #888;' // padding: 0.8em;
+ div.classList.add('webidControl')
if (getPersonas(kb, person).length === 0 && !options.editable) {
div.style.display = 'none'
@@ -306,14 +300,13 @@ export async function renderIdControl (person, dataBrowserContext, options) {
const h4 = div.appendChild(dom.createElement('h4'))
h4.textContent = options.idNoun
- h4.style = style.formHeadingStyle
- h4.style.color = style.highlightColor
+ h4.classList.add('webidHeading')
const prompt = div.appendChild(dom.createElement('p'))
- prompt.style = style.commentStyle
+ prompt.classList.add('webidPrompt')
prompt.textContent = options.longPrompt
const table = div.appendChild(dom.createElement('table'))
- table.style.width = '100%'
+ table.classList.add('fullWidth')
if (options.editable) { // test
options.manualURIEntry = true // introduced in solid-ui 2.4.2
From 4b535fdd14e6e93df8f2cc8546a97247587bb6df Mon Sep 17 00:00:00 2001
From: timea-solid <4144203+timea-solid@users.noreply.github.com>
Date: Mon, 16 Feb 2026 12:06:24 +0100
Subject: [PATCH 016/118] updated toolsPane
---
src/toolsPane.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/toolsPane.js b/src/toolsPane.js
index b130d10..a5f06c7 100644
--- a/src/toolsPane.js
+++ b/src/toolsPane.js
@@ -718,7 +718,7 @@ export function toolsPane (
})
const fixGrouplessButton = pane.appendChild(dom.createElement('button'))
- fixGrouplessButton.style.cssText = buttonStyle
+ fixGrouplessButton.classList.add('toolsButton')
fixGrouplessButton.textContent = 'Put all individuals with no group in a new group'
fixGrouplessButton.addEventListener('click', _event => fixGroupless(book))
@@ -757,7 +757,7 @@ export function toolsPane (
}
const fixToOldDataModelButton = pane.appendChild(dom.createElement('button'))
- fixToOldDataModelButton.style.cssText = buttonStyle
+ fixToOldDataModelButton.classList.add('toolsButton')
fixToOldDataModelButton.textContent = 'Revert groups to old data model'
fixToOldDataModelButton.addEventListener('click', _event => fixToOldDataModel(book))
} // main
From 7c20808aa3d84a083acb7b55b2848a076689b7c7 Mon Sep 17 00:00:00 2001
From: timea-solid <4144203+timea-solid@users.noreply.github.com>
Date: Mon, 16 Feb 2026 12:13:12 +0100
Subject: [PATCH 017/118] deleted leftover files from long ago move to solid-ui
---
src/autocompleteBar.ts | 91 ---------
src/autocompleteField.ts | 177 -----------------
src/autocompletePicker.ts | 259 ------------------------
src/publicData.ts | 403 --------------------------------------
4 files changed, 930 deletions(-)
delete mode 100644 src/autocompleteBar.ts
delete mode 100644 src/autocompleteField.ts
delete mode 100644 src/autocompletePicker.ts
delete mode 100644 src/publicData.ts
diff --git a/src/autocompleteBar.ts b/src/autocompleteBar.ts
deleted file mode 100644
index dba7738..0000000
--- a/src/autocompleteBar.ts
+++ /dev/null
@@ -1,91 +0,0 @@
-// The Control with decorations
-
-import { NamedNode } from 'rdflib'
-import { store } from 'solid-logic'
-import { ns, widgets, icons } from 'solid-ui'
-import { renderAutoComplete } from './autocompletePicker' // dbpediaParameters
-import { wikidataParameters } from './publicData'
-
-const WEBID_NOUN = 'Solid ID'
-
-const kb = store
-
-// const AUTOCOMPLETE_THRESHOLD = 4 // don't check until this many characters typed
-// const AUTOCOMPLETE_ROWS = 12 // 20?
-
-const GREEN_PLUS = icons.iconBase + 'noun_34653_green.svg'
-const SEARCH_ICON = icons.iconBase + 'noun_Search_875351.svg'
-
-export async function renderAutocompleteControl (dom:HTMLDocument,
- person:NamedNode, options, addOneIdAndRefresh): Promise {
- async function autoCompleteDone (object, _name) {
- const webid = object.uri
- removeDecorated()
- return addOneIdAndRefresh(person, webid)
- }
-
- async function greenButtonHandler (_event) {
- const webid = await widgets.askName(dom, store, creationArea, ns.vcard('url'), null, WEBID_NOUN)
- if (!webid) {
- return // cancelled by user
- }
- return addOneIdAndRefresh(person, webid)
- }
- function removeDecorated () {
- if (decoratedAutocomplete) {
- creationArea.removeChild(decoratedAutocomplete)
- decoratedAutocomplete = null
- }
- }
- async function searchButtonHandler (_event) {
- if (decoratedAutocomplete) {
- creationArea.removeChild(decoratedAutocomplete)
- decoratedAutocomplete = null
- } else {
- decoratedAutocomplete = dom.createElement('div')
- decoratedAutocomplete.setAttribute('style', 'display: flex; flex-flow: wrap;')
- decoratedAutocomplete.appendChild(await renderAutoComplete(dom, acOptions, autoCompleteDone))
- decoratedAutocomplete.appendChild(acceptButton)
- decoratedAutocomplete.appendChild(cancelButton)
- creationArea.appendChild(decoratedAutocomplete)
- }
- }
-
- async function droppedURIHandler (uris) {
- for (const webid of uris) { // normally one but can be more than one
- await addOneIdAndRefresh(person, webid)
- }
- }
-
- const queryParams = options.queryParameters || wikidataParameters
- const acceptButton = widgets.continueButton(dom)
- const cancelButton = widgets.cancelButton(dom, removeDecorated)
- const klass = options.class
- const acOptions = {
- queryParams,
- class: klass,
- acceptButton,
- cancelButton
- }
-
- var decoratedAutocomplete: HTMLDivElement | null = null
- // const { dom } = dataBrowserContext
- options = options || {}
- options.editable = kb.updater.editable(person.doc().uri, kb)
-
- const creationArea = dom.createElement('div')
- creationArea.setAttribute('style', 'display: flex; flex-flow: wrap;')
-
- if (options.editable) {
- // creationArea.appendChild(await renderAutoComplete(dom, options, autoCompleteDone)) wait for searchButton
- creationArea.style.width = '100%'
- const plus = creationArea.appendChild(widgets.button(dom, GREEN_PLUS, options.idNoun, greenButtonHandler))
- widgets.makeDropTarget(plus, droppedURIHandler, null)
- if (options.dbLookup) {
- creationArea.appendChild(widgets.button(dom, SEARCH_ICON, options.idNoun, searchButtonHandler))
- }
- }
- return creationArea
-} // renderAutocompleteControl
-
-// ends
diff --git a/src/autocompleteField.ts b/src/autocompleteField.ts
deleted file mode 100644
index 8ea182f..0000000
--- a/src/autocompleteField.ts
+++ /dev/null
@@ -1,177 +0,0 @@
-/* Form field for doing autocompleete
- */
-import { BlankNode, NamedNode, st, Variable } from 'rdflib'
-import { store } from 'solid-logic'
-import { ns, style, widgets } from 'solid-ui'
-import { renderAutoComplete } from './autocompletePicker' // dbpediaParameters
-
-// const AUTOCOMPLETE_THRESHOLD = 4 // don't check until this many characters typed
-// const AUTOCOMPLETE_ROWS = 12 // 20?
-
-/**
- * Render a autocomplete form field
- *
- * The same function is used for many similar one-value fields, with different
- * regexps used to validate.
- *
- * @param dom The HTML Document object aka Document Object Model
- * @param container If present, the created widget will be appended to this
- * @param already A hash table of (form, subject) kept to prevent recursive forms looping
- * @param subject The thing about which the form displays/edits data
- * @param form The form or field to be rendered
- * @param doc The web document in which the data is
- * @param callbackFunction Called when data is changed?
- *
- * @returns The HTML widget created
- */
-
-export function autocompleteField ( // @@ are they allowed too be async??
- dom: HTMLDocument,
- container: HTMLElement | undefined,
- already,
- subject: NamedNode | BlankNode | Variable,
- form: NamedNode,
- doc: NamedNode | undefined,
- callbackFunction: (ok: boolean, errorMessage: string) => void
-): HTMLElement {
- async function addOneIdAndRefresh (result, _name) {
- const ds = kb.statementsMatching(subject, property as any) // remove any multiple values
-
- let is = ds.map(statement => st(statement.subject, statement.predicate, result, statement.why)) // can include >1 doc
- if (is.length === 0) {
- // or none
- is = [st(subject, property as any, result, doc)]
- }
- try {
- await kb.updater.updateMany(ds, is)
- } catch (err) {
- callbackFunction(false, err)
- box.appendChild(widgets.errorMessageBlock(dom, 'Autocomplete form data write error:' + err))
- return
- }
- callbackFunction(true, '')
- }
-
- const kb = store
- const formDoc = form.doc ? form.doc() : null // @@ if blank no way to know
-
- const box = dom.createElement('tr')
- if (container) container.appendChild(box)
- const lhs = dom.createElement('td')
- lhs.setAttribute('class', 'formFieldName')
- lhs.setAttribute('style', ' vertical-align: middle;')
- box.appendChild(lhs)
- const rhs = dom.createElement('td')
- rhs.setAttribute('class', 'formFieldValue')
- box.appendChild(rhs)
-
- const property = kb.any(form, ns.ui('property'))
- if (!property) {
- box.appendChild(
- dom.createTextNode('Error: No property given for autocomplete field: ' + form)
- )
- return box
- }
- const searchClass = kb.any(form, ns.ui('searchClass'))
- if (!searchClass) {
- box.appendChild(
- dom.createTextNode('Error: No searchClass given for autocomplete field: ' + form)
- )
- return box
- }
- const endPoint = kb.any(form, ns.ui('endPoint'))
- if (!endPoint) {
- box.appendChild(
- dom.createTextNode('Error: No SPARQL endPoint given for autocomplete field: ' + form)
- )
- return box
- }
- const queryTemplate = kb.any(form, ns.ui('queryTemplate'))
- if (!queryTemplate) {
- box.appendChild(
- dom.createTextNode('Error: No queryTemplate given for autocomplete field: ' + form)
- )
- return box
- }
- // It can be cleaner to just remove empty fields if you can't edit them anyway
- const suppressEmptyUneditable = kb.anyJS(form, ns.ui('suppressEmptyUneditable'), null, formDoc)
-
- lhs.appendChild(widgets.fieldLabel(dom, property as any, form))
- const uri = widgets.mostSpecificClassURI(form)
- let params = widgets.fieldParams[uri]
- if (params === undefined) params = {} // non-bottom field types can do this
- // const theStyle = params.style || style.textInputStyle
- const klass = kb.the(form, ns.ui('category'), null, formDoc) as NamedNode
- /*
- { label: string;
- logo: string;
- searchByNameQuery?: string;
- searchByNameURI?: string;
- insitituteDetailsQuery?: string;
- endPoint?: string;
- class: object
- }
-*/
-
- const searchByNameQuery = kb.the(form, ns.ui('searchByNameQuery'), null, formDoc)
-
- if (!klass) {
- box.appendChild(
- dom.createTextNode('Error: No class given for autocomplete field: ' + form)
- )
- return box
- }
-
- const queryParams = { label: 'from form', logo: '', class: klass, endPoint: endPoint.value, searchByNameQuery: searchByNameQuery?.value }
-
- const options = { // cancelButton?: HTMLElement,
- // acceptButton?: HTMLElement,
- class: klass,
- queryParams
- }
-
- // const acWiget = rhs.appendChild(await renderAutoComplete(dom, options, addOneIdAndRefresh))
-
- // @@ set existing value is any
- renderAutoComplete(dom, options, addOneIdAndRefresh).then(acWiget => rhs.appendChild(acWiget))
-
- const field = dom.createElement('input')
- ;(field as any).style = style.textInputStyle // Do we have to override length etc?
- rhs.appendChild(field)
- field.setAttribute('type', params.type ? params.type : 'text')
-
- const size = kb.any(form, ns.ui('size')) // Form has precedence
- field.setAttribute(
- 'size',
- size ? '' + size : params.size ? '' + params.size : '20'
- )
- const maxLength = kb.any(form, ns.ui('maxLength'))
- field.setAttribute('maxLength', maxLength ? '' + maxLength : '4096')
-
- doc = doc || widgets.fieldStore(subject, property as any, doc)
-
- let obj = kb.any(subject, property as any, undefined, doc)
- if (!obj) {
- obj = kb.any(form, ns.ui('default'))
- }
- if (obj) {
- /* istanbul ignore next */
- field.value = obj.value || obj.value || ''
- }
- field.setAttribute('style', style)
- if (!kb.updater) {
- throw new Error('kb has no updater')
- }
- if (!kb.updater.editable((doc as NamedNode).uri)) {
- field.readOnly = true // was: disabled. readOnly is better
- ;(field as any).style = style.textInputStyleUneditable
- // backgroundColor = textInputBackgroundColorUneditable
- if (suppressEmptyUneditable && field.value === '') {
- box.style.display = 'none' // clutter
- }
- return box
- }
- return box
-}
-
-// ends
diff --git a/src/autocompletePicker.ts b/src/autocompletePicker.ts
deleted file mode 100644
index 9b8f951..0000000
--- a/src/autocompletePicker.ts
+++ /dev/null
@@ -1,259 +0,0 @@
-/* Create and edit data using public data
-**
-** organization conveys many distinct types of thing.
-**
-*/
-import { NamedNode } from 'rdflib'
-import { store } from 'solid-logic'
-import { style, widgets } from 'solid-ui'
-import {
- AUTOCOMPLETE_LIMIT, filterByLanguage, getPreferredLanguages, QueryParameters, queryPublicDataByName
-} from './publicData'
-
-const AUTOCOMPLETE_THRESHOLD = 4 // don't check until this many characters typed
-const AUTOCOMPLETE_ROWS = 20 // 20?
-const AUTOCOMPLETE_ROWS_STRETCH = 40
-const AUTOCOMPLETE_DEBOUNCE_MS = 300
-
-// const autocompleteRowStyle = 'border: 0.2em solid straw;' // @@ white
-
-/*
-Autocomplete happens in four phases:
- 1. The search string is too small to bother
- 2. The search string is big enough, and we have not loaded the array
- 3. The search string is big enough, and we have loaded array up to the limit
- Display them and wait for more user input
- 4. The search string is big enough, and we have loaded array NOT to the limit
- but including all matches. No more fetches.
- If user gets more precise, wait for them to select one - or reduce to a single
- 5. Optionally waiting for accept button to be pressed
-*/
-
-type AutocompleteOptions = {
- cancelButton?: HTMLElement,
- acceptButton?: HTMLElement,
- class: NamedNode,
- queryParams: QueryParameters
-}
-
-interface Callback1 {
- (subject: NamedNode, name: string): void;
-}
-
-// The core of the autocomplete UI
-export async function renderAutoComplete (dom: HTMLDocument, options:AutocompleteOptions, // subject:NamedNode, predicate:NamedNode,
- callback: Callback1) {
- function complain (message) {
- const errorRow = table.appendChild(dom.createElement('tr'))
- console.log(message)
- errorRow.appendChild(widgets.errorMessageBlock(dom, message, 'pink'))
- style.setStyle(errorRow, 'autocompleteRowStyle')
- errorRow.style.padding = '1em'
- }
- /*
- function remove (ele?: HTMLElement) {
- if (ele && ele.parentNode) {
- ele.parentNode.removeChild(ele)
- }
- }
- */
- function finish (object, name) {
- console.log('Auto complete: finish! ' + object)
- // remove(options.cancelButton)
- // remove(options.acceptButton)
- // remove(div)
- callback(object, name)
- }
- async function gotIt (object:NamedNode, name:string) {
- if (options.acceptButton) {
- (options.acceptButton as any).disabled = false
- searchInput.value = name // complete it
- foundName = name
- foundObject = object
- console.log('Auto complete: name: ' + name)
- console.log('Auto complete: waiting for accept ' + object)
- return
- }
- finish(object, name)
- }
-
- async function acceptButtonHandler (_event) {
- if (searchInput.value === foundName) { // still
- finish(foundObject, foundName)
- } else {
- (options.acceptButton as any).disabled = true
- }
- }
-
- /*
- async function cancelButtonHandler (_event) {
- console.log('Auto complete: Canceled by user! ')
- div.innerHTML = '' // Clear out the table
- }
- */
-
- function nameMatch (filter:string, candidate: string):boolean {
- const parts = filter.split(' ') // Each name part must be somewhere
- for (let j = 0; j < parts.length; j++) {
- const word = parts[j]
- if (candidate.toLowerCase().indexOf(word) < 0) return false
- }
- return true
- }
-
- /*
- function cancelText (_event) {
- searchInput.value = ''
- if (options.acceptButton) {
- (options.acceptButton as any).disabled = true // start again
- }
- _candidatesLoaded = false
- }
- */
-
- function thinOut (filter) {
- let hits = 0
- let pick: string | null = null; let pickedName = ''
- for (let j = table.children.length - 1; j > 0; j--) { // backwards as we are removing rows
- const row = table.children[j]
- if (nameMatch(filter, row.textContent)) {
- hits += 1
- pick = row.getAttribute('subject')
- pickedName = row.textContent
- ;(row as any).style.display = ''
- ;(row as any).style.color = 'blue' // @@ chose color
- } else {
- ;(row as any).style.display = 'none'
- }
- }
- if (hits === 1 && pick) { // Maybe require green confirmation button be clicked?
- console.log(` auto complete elimination: "${filter}" -> "${pickedName}"`)
- gotIt(store.sym(pick), pickedName) // uri, name
- }
- }
-
- function clearList () {
- while (table.children.length > 1 && table.lastChild) {
- table.removeChild(table.lastChild)
- }
- }
-
- async function inputEventHHandler (_event) {
- if (runningTimeout) {
- clearTimeout(runningTimeout)
- }
- setTimeout(refreshList, AUTOCOMPLETE_DEBOUNCE_MS)
- }
-
- async function refreshList () {
- if (inputEventHandlerLock) {
- console.log(`Ignoring "${searchInput.value}" because of lock `)
- return
- }
- inputEventHandlerLock = true
- const languagePrefs = await getPreferredLanguages()
- const filter = searchInput.value.trim().toLowerCase()
- if (filter.length < AUTOCOMPLETE_THRESHOLD) { // too small
- clearList()
- candidatesLoaded = false
- numberOfRows = AUTOCOMPLETE_ROWS
- } else {
- if (allDisplayed && lastFilter && filter.startsWith(lastFilter)) {
- thinOut(filter) // reversible?
- inputEventHandlerLock = false
- return
- }
- let bindings
- try {
- bindings = await queryPublicDataByName(filter, OrgClass, options.queryParams)
- // bindings = await queryDbpedia(sparql)
- } catch (err) {
- complain('Error querying db of organizations: ' + err)
- inputEventHandlerLock = false
- return
- }
- candidatesLoaded = true
- const loadedEnough = bindings.length < AUTOCOMPLETE_LIMIT
- if (loadedEnough) {
- lastFilter = filter
- } else {
- lastFilter = null
- }
- clearList()
- const slimmed = filterByLanguage(bindings, languagePrefs)
- if (loadedEnough && slimmed.length <= AUTOCOMPLETE_ROWS_STRETCH) {
- numberOfRows = slimmed.length // stretch if it means we get all items
- }
- allDisplayed = loadedEnough && slimmed.length <= numberOfRows
- console.log(` Filter:"${filter}" bindings: ${bindings.length}, slimmed to ${slimmed.length}; rows: ${numberOfRows}, Enough? ${loadedEnough}, All displayed? ${allDisplayed}`)
- slimmed.slice(0, numberOfRows).forEach(binding => {
- const row = table.appendChild(dom.createElement('tr'))
- style.setStyle(row, 'autocompleteRowStyle')
- const uri = binding.subject.value
- const name = binding.name?.value
- row.setAttribute('style', 'padding: 0.3em;')
- row.setAttribute('subject', uri)
- row.style.color = allDisplayed ? '#080' : '#000' // green means 'you should find it here'
- row.textContent = name || ''
- row.addEventListener('click', async _event => {
- console.log(' click row textContent: ' + row.textContent)
- console.log(' click name: ' + name)
- gotIt(store.sym(uri), name || '')
- })
- })
- }
- inputEventHandlerLock = false
- } // refreshList
-
- /* sparqlForSearch
-*
-* name -- e.g., "mass"
-* theType -- e.g.,
-*/
- /*
- function sparqlForSearch (name:string, theType:NamedNode):string {
- const clean = name.replace(/\W/g, '') // Remove non alphanum so as to protect regexp
- const sparql = `select distinct ?subject, ?name where {
- ?subject a <${theType.uri}>; rdfs:label ?name
- FILTER regex(?name, "${clean}", "i")
- } LIMIT ${AUTOCOMPLETE_LIMIT}`
- return sparql
- }
-*/
- const OrgClass = options.class // kb.sym('http://umbel.org/umbel/rc/EducationalOrganization') // @@@ other
- if (options.acceptButton) {
- options.acceptButton.addEventListener('click', acceptButtonHandler, false)
- }
- if (options.cancelButton) {
- // options.cancelButton.addEventListener('click', cancelButtonHandler, false)
- }
-
- // @ts-ignore
- let candidatesLoaded = false
- const runningTimeout = null
- let inputEventHandlerLock = false
- let allDisplayed = false
- var lastFilter: string | null = null
- var numberOfRows = AUTOCOMPLETE_ROWS
- const div = dom.createElement('div')
- var foundName: string | null = null // once found accepted string must match this
- var foundObject: NamedNode | null = null
- var table = div.appendChild(dom.createElement('table'))
- table.setAttribute('style', 'max-width: 30em; margin: 0.5em;')
- const head = table.appendChild(dom.createElement('tr'))
- style.setStyle(head, 'autocompleteRowStyle')
- const cell = head.appendChild(dom.createElement('td'))
- const searchInput = cell.appendChild(dom.createElement('input'))
- searchInput.setAttribute('type', 'text')
- const searchInputStyle = style.searchInputStyle ||
- 'border: 0.1em solid #444; border-radius: 0.5em; width: 100%; font-size: 100%; padding: 0.1em 0.6em' // @
- searchInput.setAttribute('style', searchInputStyle)
- searchInput.addEventListener('keyup', function (event) {
- if (event.keyCode === 13) {
- acceptButtonHandler(event)
- }
- }, false)
-
- searchInput.addEventListener('input', inputEventHHandler)
- return div
-} // renderAutoComplete22q1
diff --git a/src/publicData.ts b/src/publicData.ts
deleted file mode 100644
index 4651210..0000000
--- a/src/publicData.ts
+++ /dev/null
@@ -1,403 +0,0 @@
-/* Logic to access public data stores
-*
-* including filtering resut by natural language etc
-*/
-import { Literal, NamedNode, parse } from 'rdflib'
-import { store } from 'solid-logic'
-import { ns } from 'solid-ui'
-import instituteDetailsQuery from './instituteDetailsQuery.sparql'
-
-export const AUTOCOMPLETE_LIMIT = 3000 // How many to get from server
-
-const subjectRegexp = /\$\(subject\)/g
-
-interface Term {
- type: string;
- value: string
-}
-
-interface Binding {
- subject: Term;
- name?: Term
- location?: Term
- coordinates?: Term
-}
-
-type Bindings = Binding[]
-
-export type QueryParameters =
-{
- label: string;
- logo: string;
- searchByNameQuery?: string;
- searchByNameURI?: string;
- insitituteDetailsQuery?: string;
- endpoint?: string;
- class: object
-}
-
-// Schema.org seems to suggest NGOs are non-profit and Corporaions are for-profit
-// but doesn't have explicit classes
-export const wikidataClasses = {
- Corporation: 'http://www.wikidata.org/entity/Q6881511', // Enterprise is for-profit
- EducationalOrganization: 'http://www.wikidata.org/entity/Q178706', // insitution
- GovernmentOrganization: 'http://www.wikidata.org/entity/Q327333', // government agency
- MedicalOrganization: 'http://www.wikidata.org/entity/Q4287745',
- MusicGroup: 'http://www.wikidata.org/entity/Q32178211', // music organization
- NGO: 'http://www.wikidata.org/entity/Q163740', // nonprofit organization @@
- Occupation: 'http://www.wikidata.org/entity/Q28640', // Profession
- // Organization: 'http://www.wikidata.org/entity/Q43229',
- Project: 'http://www.wikidata.org/entity/Q170584',
- SportsOrganization: 'http://www.wikidata.org/entity/Q4438121',
-}
-
-export async function getPreferredLanguages () {
- return ['fr', 'en', 'de', 'it'] // @@ testing only -- code me later
-}
-export const escoParameters:QueryParameters = {
- label: 'ESCO',
- logo: 'https://ec.europa.eu/esco/portal/static_resource2/images/logo/logo_en.gif',
- searchByNameQuery: undefined, // No sparql endpoint
- searchByNameURI: 'https://ec.europa.eu/esco/api/search?language=$(language)&type=occupation&text=$(name)',
- endpoint: undefined,
- class: {}
-}
-
-export const dbpediaParameters:QueryParameters = {
- label: 'DBPedia',
- logo: 'https://upload.wikimedia.org/wikipedia/commons/thumb/7/73/DBpediaLogo.svg/263px-DBpediaLogo.svg.png',
- searchByNameQuery: `select distinct ?subject, ?name where {
- ?subject a $(class); rdfs:label ?name
- FILTER regex(?name, "$(name)", "i")
- } LIMIT $(limit)`,
- endpoint: 'https://dbpedia.org/sparql/',
- class: { AcademicInsitution: 'http://umbel.org/umbel/rc/EducationalOrganization' }
-}
-
-export const wikidataParameters = {
- label: 'WikiData',
- logo: 'https://www.wikimedia.org/static/images/project-logos/wikidatawiki.png',
- endpoint: 'https://query.wikidata.org/sparql',
- class: {
- AcademicInsitution: 'http://www.wikidata.org/entity/Q4671277',
- Enterprise: 'http://www.wikidata.org/entity/Q6881511',
- Business: 'http://www.wikidata.org/entity/Q4830453',
- NGO: 'http://www.wikidata.org/entity/Q79913',
- CharitableOrganization: 'http://www.wikidata.org/entity/Q708676',
- Insitute: 'http://www.wikidata.org/entity/Q1664720',
- },
- searchByNameQuery: `SELECT ?subject ?name
- WHERE {
- ?klass wdt:P279* $(class) .
- ?subject wdt:P31 ?klass .
- ?subject rdfs:label ?name.
- FILTER regex(?name, "$(name)", "i")
- } LIMIT $(limit) `, // was SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
-
- insitituteDetailsQuery: `CONSTRUCT
-{ wd:Q49108 schema:name ?itemLabel;
- schema:logo ?logo;
- schema:logo ?sealImage;
- schema:subOrganization ?subsidiary .
- ?subsidiary schema:name ?subsidiaryLabel .
-}
-WHERE
-{
- wd:Q49108 # rdfs:label ?itemLabel ;
- wdt:P154 ?logo;
- wdt:P158 ?sealImage ;
- wdt:P355 ?subsidiary .
- # ?subsidiary rdfs:label ?subsidiaryLabel .
-
- SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], fr". }
-}`
-}
-
-/* From an array of bindings with a names for each row,
- * remove dupliacte names for the same thing, leaving the user's
- * preferred language version
-*/
-export function filterByLanguage (bindings: Bindings, languagePrefs: string[]): Bindings {
- const uris: Record = {}
- bindings.forEach(binding => { // Organize names by their subject
- const uri = binding.subject.value
- uris[uri] = uris[uri] || []
- uris[uri].push(binding)
- })
-
- const languagePrefs2 = languagePrefs
- languagePrefs2.reverse() // prefered last
-
- const slimmed: Binding[] = []
- for (const u in uris) { // needs hasOwnProperty ?
- const bindings = uris[u]
- const sortMe = bindings.map(binding => {
- return [languagePrefs2.indexOf(binding.name?.['xml:lang'] || ''), binding]
- })
- sortMe.sort() // best at th ebottom
- sortMe.reverse() // best at the top
- slimmed.push(sortMe[0][1] as Binding)
- } // map u
- console.log(` Filter by language: ${bindings.length} -> ${slimmed.length}`)
- return slimmed
-}
-
-export var wikidataClassMap = {
- 'http://www.wikidata.org/entity/Q15936437': ns.schema('CollegeOrUniversity'), // research university
- 'http://www.wikidata.org/entity/Q1664720': ns.schema('EducationalOrganization'), // insitute @@
- 'http://www.wikidata.org/entity/Q43229': ns.schema('Organization'), // research university
- 'http://www.wikidata.org/entity/Q3918': ns.schema('CollegeOrUniversity'), // university
- 'http://www.wikidata.org/entity/Q170584': ns.schema('Project'), // university
- 'http://www.wikidata.org/entity/Q327333': ns.schema('GovernmentOrganization'), // gobvt agency
- 'http://www.wikidata.org/entity/Q2221906': ns.schema('Place'), // geographic location
-
-}
-export var predMap = { // allow other mappings top added in theory
- class: ns.rdf('type'),
- // logo: ns.schema('logo'),
- sealImage: ns.schema('logo'),
- // image: ns.schema('image'), defaults to shema
- shortName: ns.foaf('nick'),
- subsidiary: ns.schema('subOrganization')
-}
-
-export function loadFromBindings (kb, solidSubject:NamedNode, bindings, doc) {
- const results = {}
- console.log(`loadFromBindings: subject: ${solidSubject}`)
- console.log(` doc: ${doc}`)
- bindings.forEach(binding => {
- for (const key in binding) {
- const result = binding[key]
- const combined = JSON.stringify(result) // ( result.type, result.value )
- results[key] = results[key] || new Set()
- results[key].add(combined) // remove duplicates
- }
- })
- for (const key in results) {
- const values = results[key]
- console.log(` results ${key} -> ${values}`)
- values.forEach(combined => {
- const result = JSON.parse(combined)
- const { type, value } = result
- let obj
- if (type === 'uri') {
- obj = kb.sym(value)
- } else if (type === 'literal') {
- obj = new Literal(value, result.language, result.datatype)
- } else {
- throw new Error(`loadFromBindings: unexpected type: ${type}`)
- }
- if (key === 'type') {
- if (wikidataClassMap[value]) {
- obj = wikidataClassMap[value]
- } else {
- console.warn('Unmapped Wikidata Class: ' + value)
- }
- } else if (key === 'coordinates') {
- // const latlong = value // Like 'Point(-71.106111111 42.375)'
- console.log(' @@@ hey a point: ' + value)
- // eslint-disable-next-line no-useless-escape
- const regexp = /.*\(([-0-9\.-]*) ([-0-9\.-]*)\)/
- const match = regexp.exec(value)
- if (match) {
- const float = ns.xsd('float')
- const latitude = new Literal(match[1], null, float)
- const longitude = new Literal(match[2], null, float)
- kb.add(solidSubject, ns.schema('longitude'), longitude, doc)
- kb.add(solidSubject, ns.schema('latitude'), latitude, doc)
- }
- } else if (predMap[key]) {
- const pred = predMap[key] || ns.schema(key) // fallback to just using schema.org
- kb.add(solidSubject, pred, obj, doc) // @@ deal with non-string and objects
- console.log(` public data ${pred} ${obj}.`)
- }
- })
- }
-}
-
-/* ESCO sopecific
-*/
-
-/* Query all entities of given class and partially matching name
-*/
-export async function queryESCODataByName (filter: string, theClass:NamedNode, queryTarget: QueryParameters): Promise {
- if (!queryTarget.searchByNameURI) {
- throw new Error('Query target searchByNameURI is required for ESCO queries')
- }
- const queryURI = queryTarget.searchByNameURI
- .replace('$(name)', filter)
- .replace('$(limit)', '' + AUTOCOMPLETE_LIMIT)
- .replace('$(class)', theClass.uri)
- console.log('Querying ESCO data - uri: ' + queryURI)
-
- const options = {
- credentials: 'omit' as const,
- headers: { Accept: 'application/json' }
- } // CORS
- const response = await store.fetcher.webOperation('GET', queryURI, options)
- // complain('Error querying db of organizations: ' + err)
- const text = response.responseText
- if (!text) throw new Error('No response text from ESCO query ' + queryURI)
- console.log(' Query result text' + text.slice(0, 500) + '...')
- if (text.length === 0) throw new Error('Wot no text back from ESCO query ' + queryURI)
- const json = JSON.parse(text)
- console.log(' Query result JSON' + JSON.stringify(json, null, 4).slice(0, 500) + '...')
-
- const results = json._embedded.results // Array
- const bindings = results.map(result => {
- const name = result.title
- const uri = result.uri // like http://data.europa.eu/esco/occupation/57af9090-55b4-4911-b2d0-86db01c00b02
- return { name: { value: name, type: 'literal' }, uri: { type: 'IRI', value: uri } } // simulate SPARQL bindings
- })
- return bindings
- // return queryPublicDataSelect(sparql, queryTarget)
-}
-
-/* Query all entities of given class and partially matching name
-*/
-export async function queryPublicDataByName (filter: string, theClass:NamedNode, queryTarget: QueryParameters): Promise {
- const sparql = queryTarget.searchByNameQuery!
- .replace('$(name)', filter)
- .replace('$(limit)', '' + AUTOCOMPLETE_LIMIT)
- .replace('$(class)', theClass.uri)
- console.log('Querying public data - sparql: ' + sparql)
- return queryPublicDataSelect(sparql, queryTarget)
-}
-
-export async function queryPublicDataSelect (sparql: string, queryTarget: QueryParameters): Promise {
- if (!queryTarget.endpoint) {
- throw new Error('Query target endpoint is required')
- }
- const myUrlWithParams = new URL(queryTarget.endpoint!)
- myUrlWithParams.searchParams.append('query', sparql)
- const queryURI = myUrlWithParams.href
- console.log(' queryPublicDataSelect uri: ' + queryURI)
-
- const options = {
- credentials: 'omit' as const,
- headers: { Accept: 'application/json' }
- } // CORS
- const response = await store.fetcher.webOperation('GET', queryURI, options)
- // complain('Error querying db of organizations: ' + err)
- const text = response.responseText
- // console.log(' Query result text' + text.slice(0,100) + '...')
- if (!text || text.length === 0) { throw new Error('Wot no text back from query ' + queryURI) } else {
- const json = JSON.parse(text)
- console.log(' Query result JSON' + JSON.stringify(json, null, 4).slice(0, 100) + '...')
- const bindings = json.results.bindings
- return bindings
- }
-}
-
-export async function queryPublicDataConstruct (sparql: string, publicId: NamedNode, queryTarget: QueryParameters): Promise {
- console.log('queryPublicDataConstruct: sparql:', sparql)
- if (!queryTarget.endpoint) {
- throw new Error('Query target endpoint is required')
- }
- const myUrlWithParams = new URL(queryTarget.endpoint)
- myUrlWithParams.searchParams.append('query', sparql)
- const queryURI = myUrlWithParams.href
- console.log(' queryPublicDataConstruct uri: ' + queryURI)
- const options = {
- credentials: 'omit' as const, // CORS
- headers: { Accept: 'text/turtle' }
- }
- const response = await store.fetcher.webOperation('GET', queryURI, options)
- const text = response.responseText
- const report = text && text.length > 500 ? text.slice(0, 200) + ' ... ' + text.slice(-200) : text
- console.log(' queryPublicDataConstruct result text:' + report)
- if (!text || text.length === 0) { throw new Error('queryPublicDataConstruct: No text back from construct query:' + queryURI) } else { parse(text, store, publicId.uri, 'text/turtle') }
-}
-
-export async function loadPublicDataThing (kb, subject: NamedNode, publicDataID: NamedNode) {
- if (publicDataID.uri.startsWith('https://dbpedia.org/resource/')) {
- return getDbpediaDetails(kb, subject, publicDataID)
- } else if (publicDataID.uri.match(/^https?:\/\/www\.wikidata\.org\/entity\/.*/)) {
- // Previous approach:
- // const QId = publicDataID.uri.split('/')[4]
- // const dataURI = `http://www.wikidata.org/wiki/Special:EntityData/${QId}.ttl`
- // Not used because loading the data URI gives much too much irrelevant data from Wikidata.
- await getWikidataDetails(kb, subject, publicDataID)
- // await getWikidataLocation(kb, subject, publicDataID) -- should get that in the details query now
- } else {
- const iDToFetch = publicDataID.uri.startsWith('http:')
- ? kb.sym('https:' + publicDataID.uri.slice(5))
- : publicDataID
- return kb.fetcher.load(iDToFetch, {
- credentials: 'omit',
- headers: { Accept: 'text/turtle' }
- })
- }
-}
-
-export async function getWikidataDetails (kb, solidSubject:NamedNode, publicDataID:NamedNode) {
- const subjRegexp = /wd:Q49108/g
- const sparql = instituteDetailsQuery.replace(subjRegexp, publicDataID.value)
- await queryPublicDataConstruct(sparql, publicDataID, wikidataParameters)
- console.log('getWikidataDetails: loaded.', publicDataID)
-}
-
-export async function getWikidataDetailsOld (kb, solidSubject:NamedNode, publicDataID:NamedNode) {
- const sparql = `select distinct * where {
- optional { $(subject) wdt:P31 ?class } # instance of
- optional { $(subject) wdt:P154 ?logo }
- optional { $(subject) wdt:P158 ?sealImage }
-# optional { $(subject) wdt:P159 ?headquartersLocation }
-
-optional { $(subject) wdt:P17 ?country }
-optional { $(subject) wdt:P18 ?image }
-optional { $(subject) wdt:P1813 ?shortName }
-
-optional { $(subject) wdt:P355 ?subsidiary }
-# SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en,de,it" }
-}`
- .replace(subjectRegexp, publicDataID.uri)
- const bindings = await queryPublicDataSelect(sparql, wikidataParameters)
- loadFromBindings(kb, publicDataID, bindings, publicDataID.doc()) // arg2 was solidSubject
-}
-
-export async function getWikidataLocation (kb, solidSubject:NamedNode, publicDataID:NamedNode) {
- const sparql = `select distinct * where {
-
- $(subject) wdt:P276 ?location .
-
- optional { ?location wdt:P2044 ?elevation }
- optional { ?location wdt:P131 ?region }
- optional { ?location wdt:P625 ?coordinates }
-optional { ?location wdt:P17 ?country }
-
-# SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en,de,it" }
-}`.replace(subjectRegexp, publicDataID.uri)
- console.log(' location query sparql:' + sparql)
- const bindings = await queryPublicDataSelect(sparql, wikidataParameters)
- console.log(' location query bindings:', bindings)
- loadFromBindings(kb, publicDataID, bindings, publicDataID.doc()) // was solidSubject
-}
-
-export async function getDbpediaDetails (kb, solidSubject:NamedNode, publicDataID:NamedNode) {
-// Note below the string form of the named node with <> works in SPARQL
- const sparql = `select distinct ?city, ?state, ?country, ?homepage, ?logo, ?lat, ?long, WHERE {
- OPTIONAL { <${publicDataID}> ?city }
- OPTIONAL { ${publicDataID} ?state }
- OPTIONAL { ${publicDataID} ?country }
- OPTIONAL { ${publicDataID} foaf:homepage ?homepage }
- OPTIONAL { ${publicDataID} foaf:lat ?lat; foaf:long ?long }
- OPTIONAL { ${publicDataID} ?country }
- }`
- /*
- const predMap = {
- city: ns.vcard('locality'),
- state: ns.vcard('region'),
- country: ns.vcard('country-name'),
- homepage: ns.foaf('homepage'),
- lat: ns.geo('latitude'),
- long: ns.geo('longitude'),
- }
- */
- const bindings = await queryPublicDataSelect(sparql, dbpediaParameters)
- return bindings.map(binding => {
- const uri = binding.subject.value // @@ To be written
- const name = binding.name?.value
- return { uri, name }
- })
-}
From 7443b154d506c6a7efd3da0c7a8f0caf1eca59d2 Mon Sep 17 00:00:00 2001
From: timea-solid <4144203+timea-solid@users.noreply.github.com>
Date: Mon, 16 Feb 2026 12:14:51 +0100
Subject: [PATCH 018/118] deleted unused image files
---
src/card.ai | 980 ---------------------------------------------------
src/card.png | Bin 3900 -> 0 bytes
2 files changed, 980 deletions(-)
delete mode 100644 src/card.ai
delete mode 100644 src/card.png
diff --git a/src/card.ai b/src/card.ai
deleted file mode 100644
index 7c6fc22..0000000
--- a/src/card.ai
+++ /dev/null
@@ -1,980 +0,0 @@
-%PDF-1.5
%
-1 0 obj
<>/OCGs[5 0 R 23 0 R 40 0 R 57 0 R 74 0 R 91 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<>stream
-
-
-
-
- application/pdf
-
-
- Web
-
-
-
-
- Adobe Illustrator CS5
- 2015-03-18T15:23:14-04:00
- 2015-08-10T17:45:42-04:00
- 2015-08-10T17:45:42-04:00
-
-
-
- 256
- 160
- JPEG
- /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAoAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A8qYq7FXYq7FXYq7FURFq
F/CgjhuZY4x0RHZRv7A4qv8A0tqv/LZP/wAjH/rirv0tqv8Ay2T/APIx/wCuKu/S2q/8tk//ACMf
+uKu/S2q/wDLZP8A8jH/AK4q79Lar/y2T/8AIx/64q79Lar/AMtk/wDyMf8Arirv0tqv/LZP/wAj
H/rirv0tqv8Ay2T/APIx/wCuKu/S2q/8tk//ACMf+uKu/S2q/wDLZP8A8jH/AK4q79Lar/y2T/8A
Ix/64q79Lar/AMtk/wDyMf8AriqvD5l8xwJ6cOq3kSdeKXEqip9g2Kr/APFnmn/q833/AEkzf81Y
q7/Fnmn/AKvN9/0kzf8ANWKu/wAWeaf+rzff9JM3/NWKu/xZ5p/6vN9/0kzf81Yq7/Fnmn/q833/
AEkzf81Yq/QP8ibi4ufyh8rT3ErzTyWSmSWRizseTbljUnFWeYq7FXYq7FXYq7FX5V4q/RfyH5D8
jT+RvLs8/l3TJZpdMs3llezt2Zma3QszMUqST1OKp7/yrzyB/wBSzpX/AEg23/NGKu/5V55A/wCp
Z0r/AKQbb/mjFXf8q88gf9SzpX/SDbf80Yq7/lXnkD/qWdK/6Qbb/mjFUPL+Vn5YzSGSXyhokkjf
ad9OtGJoKbkx4qt/5VP+Vn/Um6H/ANw2z/6p4q7/AJVP+Vn/AFJuh/8AcNs/+qeKu/5VP+Vn/Um6
H/3DbP8A6p4q7/lU/wCVn/Um6H/3DbP/AKp4q7/lU/5Wf9Sbof8A3DbP/qnirv8AlU/5Wf8AUm6H
/wBw2z/6p4q7/lU/5Wf9Sbof/cNs/wDqnirv+VT/AJWf9Sbof/cNs/8Aqnirv+VT/lZ/1Juh/wDc
Ns/+qeKu/wCVT/lZ/wBSbof/AHDbP/qnirv+VT/lZ/1Juh/9w2z/AOqeKu/5VP8AlZ/1Juh/9w2z
/wCqeKoeb8mfyllcu3k/SAT2SzhQbf5KqBiqz/lSn5R/9ShpX/SLF/TFXf8AKlPyj/6lDSv+kWL+
mKu/5Up+Uf8A1KGlf9IsX9MVd/ypT8o/+pQ0r/pFi/pir8+/PFrbWnnXzBa2saw21vqV5FBCgoqI
k7qqqB0AAoMVffX5A/8AkmvKf/MCv/EmxVn+KuxV2KuxV2KuxV+VeKv00/Lz/lAPLP8A2yrH/qGT
FWQYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX5l/mF/yn3mX/tq33/U
S+KvvX8gf/JNeU/+YFf+JNirP8VdirsVdirsVdir8q8Vfpp+Xn/KAeWf+2VY/wDUMmKsgxV2KuxV
Surq1tIHuLqZLeCMVeWVgiKPEsxAGKsP1H86/wApNPZkufNumc1NGWG4ScgjqCIS/hiqR3H/ADk5
+RsH2vM6OSKgR2t7J+KwkD6cVULL/nKb8kbq4WH9PNAW2V5rS6RK1pQt6ZA+Z2xV6bpWr6Vq9hFq
GlXkN/YzisN1bSLLGw9mQkYqi8VdirsVdirsVdirsVdirsVdirsVdirsVdir8y/zC/5T7zL/ANtW
+/6iXxV96/kD/wCSa8p/8wK/8SbFWf4q7FXYq7FXYq7FX5aakiR6jdIgCok0iqo6ABiAMVfpF+VL
u/5XeT3diztommlmJqSTaR1JOKspxV2Kvjf8+P8AnJTzv/jbUPL/AJS1FtJ0jR5ntJJoFT1rieE8
ZWaRgxCK4KqFpUbmvZV4f5o88eb/ADVOk/mLV7rU3jAEQuJCyJQU+BPsL70G+KpVBZXtx/vPbyTf
8Y0Zv1DFUanlfzG+66Zc/TE6/rAxVZfeXdcsYTPd2UsMI2MhX4RXYVI6Yq9F/wCcevzdvPIHnK3h
u7lh5X1WRYdWgY/u4y3wpdAfstGaciOqVHhRV9+o6OiujBkYAqwNQQdwQRireKuxV8eeev8AnLD8
0ND87+YdFsotMNnpep3llbGS3kZ/St7h4k5ESip4qK7Yqkf/AEOT+bn++dK/6Rpf+q2Ku/6HJ/Nz
/fOlf9I0v/VbFXv3/ONv5seaPzG0TWb3zAlsk1hcxwwfVY2jXi8fI8gzvU1xVA/85MfnJ5u/Lb/D
n+HktH/Sv13619biaWn1b6vw4cXjp/fNXFXh/wD0OT+bn++dK/6Rpf8Aqtirv+hyfzc/3zpX/SNL
/wBVsVd/0OT+bn++dK/6Rpf+q2Kpr5U/5y2/NPVfNOjaXdRaYLa/vra2nKW8gbhNMqNxJlNDRtsV
fZWKuxV+Zf5hf8p95l/7at9/1Evir71/IH/yTXlP/mBX/iTYqz/FXYq7FXYq7FXYq/LbVv8Ajq3n
/GeT/iZxV+j/AOU//krPJv8A2w9N/wCoOPFWVYq7FX5baretf6peXzElrueSdi2xJkctvT54q9S8
s+S9AgsbK+e2E13JDHI7SkuodkBNFPw9em2KspAAAAFANgBireKqN3awXdrLazrzhmUpIviGFMVe
G67pUmk6tc6e7BzAwCuO6sAyn58SMVfb3/OJPmTVNb/KOKPUHaQ6PezadayvUs1vHHFLGKnsnrFB
7KBir2fFXYq+ffM//OHnlvX/ADJq2uzeYbyGXVry4vpIUiiKo1zK0pVSd6AvTFUt/wChIfK3/Uy3
3/ImHFXf9CQ+Vv8AqZb7/kTDir1P8nvye038sdN1CxsdQm1BNQmSd3nREKlE40HHFUN+cv5IaV+a
P6H+v6nPp36H+s+n6CI/P6z6VeXPpx9AU+eKvNf+hIfK3/Uy33/ImHFXf9CQ+Vv+plvv+RMOKu/6
Eh8rf9TLff8AImHFUboX/OG3lnSNb0/Vo/MV7LJp9zDdJE0MQVmgkEgUkdjxxV9D4q7FX5l/mF/y
n3mX/tq33/US+KvvX8gf/JNeU/8AmBX/AIk2Ks/xV2KuxV2KuxV2Kvy21b/jq3n/ABnk/wCJnFX6
P/lP/wCSs8m/9sPTf+oOPFWVYq7FX5da/pFxo2uajpFypS40+5mtZVbqGhcofD+XFXsPlK+S98ua
fMvURLE4/wAqL4D+K4qm+KuxVxIAqdgOpxV4n5zuba58zX01tKJoWZeMi7gkRqDQ+xFMVfZH/OHb
E/lAQYwgXU7oBgKcxxjPI+PXj9GKvccVdirsVdirsVdirsVdirsVdirsVdirsVfmX+YX/KfeZf8A
tq33/US+KvvX8gf/ACTXlP8A5gV/4k2Ks/xV2KuxV2KuxV2Kvy21b/jq3n/GeT/iZxV+j/5T/wDk
rPJv/bD03/qDjxVlWKuxV8O/85a+QL/QvzHm8xpCTo/mIJLHOo+BLqNAk0TEdGbh6gr15HwOKvNP
J3nSbQ3NtcKZtOkbkyj7cbHqyfxGKvWbG+tb61jurSQSwSiqOP8APYjwxVXxV475o85atqdzcW6T
GHTg7IkCfDyUGlXPU18OmKq/5d/lj5u8/wCsjTfL9oZFQg3d9JVbe3Q/tSvT7lFWPYYq/QP8uPIu
neRvJuneWbCQzR2SN6tywCtLNIxeWQgVpVmNBXYUHbFWS4q7FXiHmH/nLv8ALbQdf1PQ7zTdZku9
Ku57K4eGC1MbSW8jROULXKsVLLtUD5Yql/8A0Or+Vn/Vq1z/AKR7P/srxV3/AEOr+Vn/AFatc/6R
7P8A7K8Vd/0Or+Vn/Vq1z/pHs/8AsrxV3/Q6v5Wf9WrXP+kez/7K8Vd/0Or+Vn/Vq1z/AKR7P/sr
xVkn5e/85NeQ/Pfmm28taRYapBfXSSvHJdxW6RAQxmRqmO4lbou3w4q9bxV2KuxV2KvzL/ML/lPv
Mv8A21b7/qJfFX3r+QP/AJJryn/zAr/xJsVZ/irsVdirsVdirsVfltq3/HVvP+M8n/Ezir9H/wAp
/wDyVnk3/th6b/1Bx4qyrFXYqlXmfyvoPmjRLnRNdtEvdNulpLC9RuN1ZWFGVlO4ZTUYq+Gfz2/I
XU/y0vYry2nbUPLN9IUtLxlpJFJuwgnp8PLiPhYbNQ7DpirFvy58xPY6mNNmb/RL1uKA9Em/ZI/1
vsn6MVer4q+eWYsxYmpJqTir9J/yp0jSdL/Lny5DplpDaQy6daTyrAioHllgRnkbiPidyaljucVZ
ZirsVdir4p/MD/nGX84NY8+eZNXsNKhksdR1S9u7SQ3dupaKe4eSMlWcEVVhscVSH/oU/wDO3/qz
wf8ASZbf9VMVd/0Kf+dv/Vng/wCky2/6qYq7/oU/87f+rPB/0mW3/VTFXf8AQp/52/8AVng/6TLb
/qpirv8AoU/87f8Aqzwf9Jlt/wBVMVei/kD+QP5n+T/zP07Xte06K30y3iuUllS5glIMsDovwo7N
9psVfV+KuxV2KuxV+Zf5hf8AKfeZf+2rff8AUS+KvvX8gf8AyTXlP/mBX/iTYqz/ABV2KuxV2Kux
V2Kvy21b/jq3n/GeT/iZxV+j/wCU/wD5Kzyb/wBsPTf+oOPFWVYq7FXYqxb80PKll5r8ga5od2oY
XNrI0DmnwTxL6kMg/wBWRQcVfmtHI8ciyIeLoQysOoINQcVfQFrMZraKYihkRXI8OQrirwrW7J7H
V7y0YU9GV1H+rWqn6VocVfeH/OMnne18z/lRpVuJF+v6Ci6XeQg7qsA427U60aHjv4gjtir1fFXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq/Mv8AML/lPvMv/bVvv+ol8Vfev5A/+Sa8p/8AMCv/ABJs
VZ/irsVdirsVdirsVfltq3/HVvP+M8n/ABM4q/R/8p//ACVnk3/th6b/ANQceKsqxV2KuxViX5te
ZU8tflr5j1otwe2sZVt26fv5h6MH/JWRcVfm5bwyTzxwRiskrKiD3Y0GKvoCGJYoUiX7MahV+Sim
KvPvzQ0DePWoF8Irun3I/wDxr92Kpn/zjd+Zh8j/AJiWy3c3p6FrRWy1TkaInI/uJzXp6Ujbn+Ut
ir7+xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvzL/ML/lPvMv8A21b7/qJfFX3r+QP/AJJryn/z
Ar/xJsVZ/irsVdirsVdirsVfltq3/HVvP+M8n/Ezir9H/wAp/wDyVnk3/th6b/1Bx4qyrFXYq7FX
zX/zlr+aflGfyXJ5N0zVIr3Wp7uFr23tj6ixRQkuRLIvwK3ML8Na+2Kvlfyg1uvmbTTOKp66gU/n
O0f/AA9MVe34qoX9lBfWU1nOOUM6FHHsR1HuO2KvC9X0y40vUZ7G4H7yFqBuzL1Vh7Eb4q+1f+cX
fzlj83+WU8s6vPXzLokQRWdqtdWaUVJRXcvHskn0N+0aKvc8VdirsVdirsVdirsVdirsVdirsVdi
rsVfmX+YX/KfeZf+2rff9RL4q+9fyB/8k15T/wCYFf8AiTYqz/FXYq7FXYq7FXYq/LbVv+Oref8A
GeT/AImcVfo/+U//AJKzyb/2w9N/6g48VZVirzv87Pzh038svLcV9JB9d1a/ZotKsSeKuyAF5JG6
iOMMK03JIHeoVfGHnb8+fzS84+rFqmtywWEta6dY/wCi2/E/sMI6PIu/+7GbFWEafpmoajOILKB5
5T1CDYe7HoB7nFXo/lT8u1064i1DUpRLdRHlFAn2EbsSx+0R/nXFWbYq7FWI/mH5dhv9LfUUIS7s
ULcv54huVPy6jFWC+QdT1DTPOuh3un3ElrdR30ASaJirAPIFYVHZlJBHcbYq/TXFXYq/Nb82P/Jp
+cv+25qX/UZJirFMVdirsVdirsVdir0D8gf/ACcnlP8A5jl/4i2Kv0UxV2KuxV+Zf5hf8p95l/7a
t9/1Evir71/IH/yTXlP/AJgV/wCJNirP8VdirsVdirsVdir8wPNYC+aNYAFAL65AA6Aes2Kv0L/J
Qk/lH5Qr/wBWq1/5NDFWaYq+Uf8AnOS2kFx5OutzGyX8R2NAym3br/lcvwxV4F+Xuj6ZqurTQ38X
rLFCZY0LFRUMq78SK/axV6xa2dpaQiG1hSCIdEjUKPwxVWxV2KuxVKvNX/KN6n/zDyf8ROKvIvKf
/KU6N/zHW3/J5cVfp/irsVSO48i+SLm4lubny9pk9xO7STTSWdu7u7nkzMzISWJNSTiqn/yrzyB/
1LOlf9INt/zRirv+VeeQP+pZ0r/pBtv+aMVd/wAq88gf9SzpX/SDbf8ANGKu/wCVeeQP+pZ0r/pB
tv8AmjFXf8q88gf9SzpX/SDbf80Yq7/lXnkD/qWdK/6Qbb/mjFVaz8k+TLK5ju7PQNOtrqE8op4b
SCORG8VZUBB+WKp1irsVdir8y/zC/wCU+8y/9tW+/wCol8Vfev5A/wDkmvKf/MCv/EmxVn+KuxV2
KuxV2KuxV+YHmz/lKdZ/5jrn/k82Kv0K/JT/AMlH5Q/7ZVr/AMmhirNcVfKH/OceoK135Q05W+KO
O+uJF7UkMCIf+SbYq+YbS+vbORpLSeS3kZeDPExRitQaVUg9RiqrJrGryf3l9cPvX4pXO/0nFVWy
8w63ZIyWt7LErnk4DVqfHeuKon/GXmj/AKuM33j+mKu/xl5o/wCrjN94/piqnceavMVxA8E9/LJD
KpWRCRQg9QdsVa8p/wDKU6N/zHW3/J5cVfp/irsVfB35kfnd+bGnfmJ5p0+x8z3lvZWer39vawIy
8Y4ormRERfh6KoAxVjn/ACv785P+psvv+CX/AJpxV3/K/vzk/wCpsvv+CX/mnFX03/ziV5382ebP
LuvXHmPU5tTntruKOCScglEaKpAoB3xV7zirsVdirsVdirsVdir8y/zC/wCU+8y/9tW+/wCol8Vf
ev5A/wDkmvKf/MCv/EmxVn+KuxV2KuxV2KuxV+YHmz/lKdZ/5jrn/k82Kv0K/JT/AMlH5Q/7ZVr/
AMmhirNcVYB+YH5HeQvP2tW2r+ZIbie5tIFtYkineKP01dpN1XuTIamuKpRa/wDOLn5HW/Eny6Zn
Ukhpby9br4qJgp+7FV+of84xfkperEp8vi3EIYD6vcXEZbka/GRJVvauKoP/AKFP/JL/AKtE/wD0
mXP/ADXirv8AoU/8kv8Aq0T/APSZc/8ANeKu/wChT/yS/wCrRP8A9Jlz/wA14q7/AKFP/JL/AKtE
/wD0mXP/ADXiqtZ/84tfkzZ3kF3b6TOs9tIksTG8uSA6MGU0L+IxV6zirsVeWaz/AM4y/lBrGr32
r3+lTSX2o3Et3dyC7uFDSzuZJCFVwBVmOwxVB/8AQp/5Jf8AVon/AOky5/5rxV3/AEKf+SX/AFaJ
/wDpMuf+a8VZr5A/LLyf5Cs7u08s2r2sF7IstwryyTEuq8QQZGam2KsqxV2KuxV2KuxV2KuxV+Zf
5hf8p95l/wC2rff9RL4q+9fyB/8AJNeU/wDmBX/iTYqz/FXYq7FXYq7FXYq/MDzZ/wApTrP/ADHX
P/J5sVfoV+Sn/ko/KH/bKtf+TQxVmuKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
uxV2KuxV+Zf5hf8AKfeZf+2rff8AUS+KvvX8gf8AyTXlP/mBX/iTYqz/ABV2KuxV2KuxV2KvzA82
f8pTrP8AzHXP/J5sVfoV+Sn/AJKPyh/2yrX/AJNDFWa4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FX5l/mF/yn3mX/tq33/US+KvvX8gf/JNeU/+YFf+JNirP8VdirsVdirs
Vdir8t9Zvkv9Xvr5FKJd3Es6odyBI5YA/KuKvpbyH/zl55c8teS9F8vz+X7y4m0qzhtZJ0liCu0S
BSwB3oaYqn3/AEO95W/6lq+/5HQ4q7/od7yt/wBS1ff8jocVd/0O95W/6lq+/wCR0OKu/wCh3vK3
/UtX3/I6HFXf9DveVv8AqWr7/kdDirv+h3vK3/UtX3/I6HFXf9DveVv+pavv+R0OKu/6He8rf9S1
ff8AI6HFXf8AQ73lb/qWr7/kdDirv+h3vK3/AFLV9/yOhxV3/Q73lb/qWr7/AJHQ4q7/AKHe8rf9
S1ff8jocVd/0O95W/wCpavv+R0OKu/6He8rf9S1ff8jocVd/0O95W/6lq+/5HQ4q7/od7yt/1LV9
/wAjocVd/wBDveVv+pavv+R0OKu/6He8rf8AUtX3/I6HFXf9DveVv+pavv8AkdDirv8Aod7yt/1L
V9/yOhxV3/Q73lb/AKlq+/5HQ4q7/od7yt/1LV9/yOhxV8o+ZdVj1fzHqurRxmKPULy4ukiYgsqz
ytIFJHccsVfoH+QP/kmvKf8AzAr/AMSbFWf4q7FXYq7FXYq7FXxB/wBCbfm5/v7Sv+kmX/qjirv+
hNvzc/39pX/STL/1RxV3/Qm35uf7+0r/AKSZf+qOKu/6E2/Nz/f2lf8ASTL/ANUcVd/0Jt+bn+/t
K/6SZf8Aqjirv+hNvzc/39pX/STL/wBUcVd/0Jt+bn+/tK/6SZf+qOKu/wChNvzc/wB/aV/0ky/9
UcVd/wBCbfm5/v7Sv+kmX/qjirv+hNvzc/39pX/STL/1RxV3/Qm35uf7+0r/AKSZf+qOKu/6E2/N
z/f2lf8ASTL/ANUcVd/0Jt+bn+/tK/6SZf8Aqjirv+hNvzc/39pX/STL/wBUcVd/0Jt+bn+/tK/6
SZf+qOKu/wChNvzc/wB/aV/0ky/9UcVd/wBCbfm5/v7Sv+kmX/qjirv+hNvzc/39pX/STL/1RxV3
/Qm35uf7+0r/AKSZf+qOKu/6E2/Nz/f2lf8ASTL/ANUcVd/0Jt+bn+/tK/6SZf8Aqjirv+hNvzc/
39pX/STL/wBUcVd/0Jt+bn+/tK/6SZf+qOKu/wChNvzc/wB/aV/0ky/9UcVd/wBCbfm5/v7Sv+km
X/qjir61/KzyzqPlf8vdC8v6kYzf6dbCG4MLFo+QYn4WIUkb+GKsqxV2KuxV2KuxV2Kv/9k=
-
-
-
-
-
- proof:pdf
- uuid:65E6390686CF11DBA6E2D887CEACB407
- xmp.did:F77F117407206811822A938BEAB82E55
- uuid:537ad86f-15a7-4f47-8fc5-01a42f8bf30c
-
- uuid:52d3fbd8-d8d7-2543-8e0c-81d9ea137ecb
- xmp.did:8CF5709C0E20681188C6A12CE4B46A4D
- uuid:65E6390686CF11DBA6E2D887CEACB407
- proof:pdf
-
-
-
-
- saved
- xmp.iid:F77F117407206811822A938BEAB82E55
- 2015-03-18T15:23:14-04:00
- Adobe Illustrator CS5
- /
-
-
-
-
-
- Web
- Document
-
-
- 1
- False
- False
-
- 24.000000
- 24.000000
- Pixels
-
-
-
- Cyan
- Magenta
- Yellow
- Black
-
-
-
-
-
- Default Swatch Group
- 0
-
-
-
- White
- RGB
- PROCESS
- 255
- 255
- 255
-
-
- Black
- RGB
- PROCESS
- 0
- 0
- 0
-
-
- RGB Red
- RGB
- PROCESS
- 255
- 0
- 0
-
-
- RGB Yellow
- RGB
- PROCESS
- 255
- 255
- 0
-
-
- RGB Green
- RGB
- PROCESS
- 0
- 255
- 0
-
-
- RGB Cyan
- RGB
- PROCESS
- 0
- 255
- 255
-
-
- RGB Blue
- RGB
- PROCESS
- 0
- 0
- 255
-
-
- RGB Magenta
- RGB
- PROCESS
- 255
- 0
- 255
-
-
- R=193 G=39 B=45
- RGB
- PROCESS
- 193
- 39
- 45
-
-
- R=237 G=28 B=36
- RGB
- PROCESS
- 237
- 28
- 36
-
-
- R=241 G=90 B=36
- RGB
- PROCESS
- 241
- 90
- 36
-
-
- R=247 G=147 B=30
- RGB
- PROCESS
- 247
- 147
- 30
-
-
- R=251 G=176 B=59
- RGB
- PROCESS
- 251
- 176
- 59
-
-
- R=252 G=238 B=33
- RGB
- PROCESS
- 252
- 238
- 33
-
-
- R=217 G=224 B=33
- RGB
- PROCESS
- 217
- 224
- 33
-
-
- R=140 G=198 B=63
- RGB
- PROCESS
- 140
- 198
- 63
-
-
- R=57 G=181 B=74
- RGB
- PROCESS
- 57
- 181
- 74
-
-
- R=0 G=146 B=69
- RGB
- PROCESS
- 0
- 146
- 69
-
-
- R=0 G=104 B=55
- RGB
- PROCESS
- 0
- 104
- 55
-
-
- R=34 G=181 B=115
- RGB
- PROCESS
- 34
- 181
- 115
-
-
- R=0 G=169 B=157
- RGB
- PROCESS
- 0
- 169
- 157
-
-
- R=41 G=171 B=226
- RGB
- PROCESS
- 41
- 171
- 226
-
-
- R=0 G=113 B=188
- RGB
- PROCESS
- 0
- 113
- 188
-
-
- R=46 G=49 B=146
- RGB
- PROCESS
- 46
- 49
- 146
-
-
- R=27 G=20 B=100
- RGB
- PROCESS
- 27
- 20
- 100
-
-
- R=102 G=45 B=145
- RGB
- PROCESS
- 102
- 45
- 145
-
-
- R=147 G=39 B=143
- RGB
- PROCESS
- 147
- 39
- 143
-
-
- R=158 G=0 B=93
- RGB
- PROCESS
- 158
- 0
- 93
-
-
- R=212 G=20 B=90
- RGB
- PROCESS
- 212
- 20
- 90
-
-
- R=237 G=30 B=121
- RGB
- PROCESS
- 237
- 30
- 121
-
-
- R=199 G=178 B=153
- RGB
- PROCESS
- 199
- 178
- 153
-
-
- R=153 G=134 B=117
- RGB
- PROCESS
- 153
- 134
- 117
-
-
- R=115 G=99 B=87
- RGB
- PROCESS
- 115
- 99
- 87
-
-
- R=83 G=71 B=65
- RGB
- PROCESS
- 83
- 71
- 65
-
-
- R=198 G=156 B=109
- RGB
- PROCESS
- 198
- 156
- 109
-
-
- R=166 G=124 B=82
- RGB
- PROCESS
- 166
- 124
- 82
-
-
- R=140 G=98 B=57
- RGB
- PROCESS
- 140
- 98
- 57
-
-
- R=117 G=76 B=36
- RGB
- PROCESS
- 117
- 76
- 36
-
-
- R=96 G=56 B=19
- RGB
- PROCESS
- 96
- 56
- 19
-
-
- R=66 G=33 B=11
- RGB
- PROCESS
- 66
- 33
- 11
-
-
-
-
-
- Grays
- 1
-
-
-
- R=0 G=0 B=0
- RGB
- PROCESS
- 0
- 0
- 0
-
-
- R=26 G=26 B=26
- RGB
- PROCESS
- 26
- 26
- 26
-
-
- R=51 G=51 B=51
- RGB
- PROCESS
- 51
- 51
- 51
-
-
- R=77 G=77 B=77
- RGB
- PROCESS
- 77
- 77
- 77
-
-
- R=102 G=102 B=102
- RGB
- PROCESS
- 102
- 102
- 102
-
-
- R=128 G=128 B=128
- RGB
- PROCESS
- 128
- 128
- 128
-
-
- R=153 G=153 B=153
- RGB
- PROCESS
- 153
- 153
- 153
-
-
- R=179 G=179 B=179
- RGB
- PROCESS
- 179
- 179
- 179
-
-
- R=204 G=204 B=204
- RGB
- PROCESS
- 204
- 204
- 204
-
-
- R=230 G=230 B=230
- RGB
- PROCESS
- 230
- 230
- 230
-
-
- R=242 G=242 B=242
- RGB
- PROCESS
- 242
- 242
- 242
-
-
-
-
-
- Web Color Group
- 1
-
-
-
- R=63 G=169 B=245
- RGB
- PROCESS
- 63
- 169
- 245
-
-
- R=122 G=201 B=67
- RGB
- PROCESS
- 122
- 201
- 67
-
-
- R=255 G=147 B=30
- RGB
- PROCESS
- 255
- 147
- 30
-
-
- R=255 G=29 B=37
- RGB
- PROCESS
- 255
- 29
- 37
-
-
- R=255 G=123 B=172
- RGB
- PROCESS
- 255
- 123
- 172
-
-
- R=189 G=204 B=212
- RGB
- PROCESS
- 189
- 204
- 212
-
-
-
-
-
-
-
-
- Adobe PDF library 9.90
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
endstream
endobj
3 0 obj
<>
endobj
7 0 obj
<>/Resources<>/ExtGState<>/Properties<>>>/Thumb 97 0 R/TrimBox[0.0 0.0 24.0 24.0]/Type/Page>>
endobj
93 0 obj
<>stream
-HtTKn[1e(j|I@C='y)\ǡBBi
-OEK^(x;6Z1Spw-"K$q X_fcOH4;|/zY-)[]6zh CK9)>P:6imZ=g_A[0+1IwS8)ZIZ"ЋCycR!Wetj-jȠ|!,xU`sHs
aDja`q5 uÍ+ljBNHg0v1C'DpLԳV]Y$G'UI!,3`ts*Ns.#.Ўp(ƎwTets#diu-%;ӎ!ɹ-s=+S(؊+lӅsX}Zu.VmHI/^Lj_AvW \
endstream
endobj
97 0 obj
<>stream
-8;Ue`J-(6$!rr<-!!*~>
endstream
endobj
98 0 obj
[/Indexed/DeviceRGB 255 99 0 R]
endobj
99 0 obj
<>stream
-8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
-b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
-E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn
-6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O(
-l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
91 0 obj
<>
endobj
100 0 obj
[/View/Design]
endobj
101 0 obj
<>>>
endobj
96 0 obj
<>
endobj
95 0 obj
[/ICCBased 102 0 R]
endobj
102 0 obj
<>stream
-HyTSwoɞc
[5laQIBHADED2mtFOE.c}088GNg9w߽ '0 ֠Jb
- 2y.-;!KZ ^i"L0-
@8(r;q7Ly&Qq4j|9
-V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'K t;\
ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹Aom?W=
-x- [ 0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?c. R
߁-25 S>ӣVd`rn~Y&+`;A4 A9 =-tl`;~p Gp| [`L`< "AYA+Cb(R, *T2B-
-ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r9\A&GrQhE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_(0J:EAiQ(()ӔWT6U@P+!~mDeԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel
}}Cq9
-N')].uJr
-wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó tizf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4
-n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY.=b?SƕƩȺy
چk5%4m7lqlioZlG+Zzmzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś
nLl<9O [$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD- u`ֲK³8%yhYѹJº;.!
-zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs
2F[p(@Xr4Pm8Ww)Km
endstream
endobj
94 0 obj
<>
endobj
103 0 obj
<>
endobj
104 0 obj
<>stream
-%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 15.0
%%AI8_CreatorVersion: 15.0.0
%%For: (Tim Berners-Lee) ()
%%Title: (card.ai)
%%CreationDate: 2015/8/10 17:45
%%Canvassize: 16383
%%BoundingBox: -1 -19 30 -1
%%HiResBoundingBox: -0.001953 -19 29.2188 -1.04395
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 11.0
%AI12_BuildNumber: 399
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: 0 -24 24 0
%AI3_TemplateBox: 12.5 -12.5 12.5 -12.5
%AI3_TileBox: -276 -368 300 366
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 6
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -9 3 29.45 1318 756 18 0 0 403 387 0 0 0 1 0 0 1 1 0 1
%AI5_OpenViewLayers: 7
%%PageOrigin:-388 -312
%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
105 0 obj
<>stream
-%%BoundingBox: -1 -19 30 -1
%%HiResBoundingBox: -0.001953 -19 29.2188 -1.04395
%AI7_Thumbnail: 128 80 8
%%BeginData: 6872 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD1AF827F8272727F8272727F8272727F8272727F8272727F82727
%27F8272727F8272727F8272727F8272727F8272727F8272727F827275227
%52275227522752275227522752275227522752277DFD1BFFFD64F827FD1B
%FFFD64F852FD1BFFFD64F827FD1BFFFD04F8527DA87D7D7DA87D7D7DA87D
%7D7DA87D7D7DA87D7D527D527D527D527D527D527D527D527D527D527D52
%7D527D527D527D527D527D527D527D527D527D527D527D527D527D527D52
%7DFD135227F8F8F852FD1BFFFD04F87DFD5BFF52F8F8F827FD1BFFFD04F8
%7DFD5BFF52F8F8F852FD1BFFFD04F87DFD5BFF27F8F8F827FD1BFFFD04F8
%A8FD5BFF52F8F8F852FD1BFFFD04F87DFD5BFF52F8F8F827FD1BFFFD04F8
%7DFD5BFF52F8F8F852FD1BFFFD04F87DFD5BFF52F8F8F827FD1BFFFD04F8
%7DFD5BFF52F8F8F852FD1BFFFD04F87DFD5BFF52F8F8F827FD1BFFFD04F8
%7DFD1AFFA8FFA8FD3EFF52F8F8F852FD1BFFFD04F87DFD11FFA8A8525227
%27F827FD05F82752FD3BFF27F8F8F827FD1BFF27F8F8F87DFD0EFF7DA852
%27FD0EF827FD3AFF52F8F8F852FD1BFFFD04F852FD0CFF7DFD14F827FD0D
%FF7DFD0B52277DFD04FFFD1052277DFD08FF52F8F8F827FD1BFF27F8F8F8
%7DFD0BFFA8FD16F87DFD0CFF7DFD0CF827FFFFFFA8FD11F852FD08FF52F8
%F8F852FD1BFFFD04F852FD0BFF52FD0AF8FD0827FD04F827A8FD0BFF52FD
%0CF827FD04FFFD11F852FD08FF52F8F8F827FD1BFF27F8F8F87DFD0BFF52
%FD05F8272752527D527D527D5252527D27FD04F852FD0BFF7DFD0CF827FD
%04FFFD11F852FD08FF52F8F8F852FD1BFFFD04F852FD0BFF27FD04F8FD0F
%52FD05F8A8FD0AFF7D27275227272752272727522752FD04FFFD05275227
%272752272727522727277DFD08FF52F8F8F827FD1BFF27F8F8F87DFD0BFF
%27F8F8F827FD1052FD04F852FD36FF52F8F8F852FD1BFFFD04F852FD0BFF
%FD04F82752525227525252275252522752525227FD04F87DFD36FF27F8F8
%F827FD1BFF27F8F8F87DFD0BFF27F8F8F8FD1152FD04F87DFD36FF52F8F8
%F852FD1BFFFD04F852FD0BFFFD04F827FD0F5227FD04F8A8FD36FF52F8F8
%F827FD1BFF27F8F8F87DFD0BFF27F8F8F827FD1052FD04F87DFD36FF52F8
%F8F852FD1BFFFD04F852FD0BFF52FD04F8FD05522752525227FD0552FD05
%F87DFD36FF52F8F8F827FD1BFF27F8F8F87DFD0BFFA8FD04F8277DFD0C52
%FD06F8A8FD36FF52F8F8F852FD1BFFFD04F852FD0BFFA8FD05F827FD0952
%27FD07F852FD37FF52F8F8F827FD1BFF27F8F8F87DFD0CFF52FD05F827FD
%085227FD06F852FD0CFFA8527D527D527D527D527D527D527D527D527D52
%7D527D527D527DFD11FF52F8F8F852FD1BFFFD04F852FD0DFFFD07F85252
%5227525252FD06F87DFD0DFF52FD1AF8FD11FF27F8F8F827FD1BFF27F8F8
%F87DFD0EFF27FD05F827FD065227F8F8F852A8FD0EFF7DFD19F827FD11FF
%52F8F8F852FD1BFFFD04F852FD0FFF27FD05F827FD0552FD04F87DFD0FFF
%52FD1AF8FD11FF52F8F8F827FD1BFF27F8F8F87DFD10FF52FD04F827FD05
%52FD04F87DFD0FFF7DF8FD1727F852FD11FF52F8F8F852FD1BFFFD04F852
%FD11FF27FD04F827FD0452FD04F87DFD11FFA8FFFFFFA8FFFFFFA8FFFFFF
%A8FFFFFFA8FFFFFFA8FFFFFFA8FD11FF52F8F8F827FD1BFF27F8F8F87DFD
%12FFFD05F8FD045227F8F8F87DFD3BFF52F8F8F852FD1BFFFD04F852FD12
%FF7DFD04F827525252FD04F827FD3BFF52F8F8F827FD1BFF27F8F8F87DFD
%12FFA8FD04F8FD045227FD04F8A8FD3AFF52F8F8F852FD1BFFFD04F852FD
%12FFA8FD04F82752525227FD04F852FD3AFF27F8F8F827FD1BFF27F8F8F8
%7DFD12FFA8FD04F8FD04527DFD05F8A8FD39FF52F8F8F852FD1BFFFD04F8
%52FD12FF7DFD04F827FD0552FD04F827FD39FF52F8F8F827FD1BFF27F8F8
%F87DFD12FF52FD04F8FD065227FD04F8A8FD38FF52F8F8F852FD1BFFFD04
%F852FD11FFA827F8F8F82752522752525227FD04F827FD38FF52F8F8F827
%FD1BFF27F8F8F87DFD12FFFD04F8277DFD05527D27FD04F8A8FD37FF52F8
%F8F852FD1BFFFD04F852FD11FF7DFD04F8FD0952FD05F8FD37FF52F8F8F8
%27FD1BFF27F8F8F87DFD11FF7DFD04F827FD085227FD04F852FD36FF52F8
%F8F852FD1BFFFD04F852FD0FFF7D27FD05F827FD04522752525227FD05F8
%52FD09FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FD0DFF27F8F8F827FD1BFF27F8F8F87DFD0CFFA87D27FD07F8
%277DFD07527D27FD05F87DFD08FF7DF827F827F827F827F827F827F827F8
%27F827F827F827F827F827F827F8F8A8FD0CFF52F8F8F852FD1BFFFD04F8
%52FD0AFFA827FD09F827FD0B52FD05F827FD08FF52FD1EF8A8FD0CFF52F8
%F8F827FD1BFF27F8F8F87DFD09FFA8FD09F827527DFD0C52FD04F827FD08
%FF7DFD1EF8A8FD0CFF52F8F8F852FD1BFFFD04F852FD09FFFD09F8525252
%275252522752525227FD045227F8F8F852FD08FF52FD1EF8A8FD0CFF52F8
%F8F827FD1BFF27F8F8F852FD08FFA8FD06F827277DFD0F527D27F8F8F827
%FD08FFA87DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA8
%FD047DA8FD0CFF52F8F8F852FD1BFF27F8F8F852FD08FFA8FD04F827FD14
%5227F8F8F852FD34FF52F8F8F827FD1BFF52F8F8F852FD09FFFD04F8FD15
%5227F8F8F827FD34FF52F8F8F852FD1BFF27F8F8F827FD09FFFD04F827FD
%055227FD0E5227F8F8F827FD34FF27F8F8F827FD1BFF52F8F8F852FD09FF
%27F8F8F8FD0527F8272752275227522752275227522752FD04F827FD09FF
%7DA87DA8A8A87DA8A8A87DA8A8FD1EFF52F8F8F852FD1BFF27F8F8F852FD
%09FFFD1DF827FD08FF52FD0CF827FD1EFF52F8F8F827FD1BFF52F8F8F852
%FD08FFA827FD1CF827FD08FF7DFD0CF827FD1EFF52F8F8F852FD1BFF27F8
%F8F852FD08FFA8FD1DF827FD08FF52FD0CF827FD1EFF52F8F8F827FD1BFF
%52F8F8F852FD08FF7DFD04F8FD0527F8F8F827F8F8F827F8F8F827F8F8F8
%27FD04F827FD08FF7DF827F8F8F827F8F8F827F8F827FD1EFF52F8F8F852
%FD1BFF27F8F8F852FD08FFA87DA8A8FFA8FFFFFFFD15A8FD09FFFD0EA8FD
%1EFF52F8F8F827FD1BFF52F8F8F852FD5BFF52F8F8F852FD1BFF27F8F8F8
%27FD5BFF27F8F8F827FD1BFF52F8F8F852FD5BFF52F8F8F852FD1BFF27F8
%F8F852FD5BFF52F8F8F827FD1BFF52F8F8F852FD5BFF52F8F8F852FD1BFF
%27F8F8F852FD5BFF52F8F8F827FD1BFF52F8F8F852FD5BFF52F8F8F852FD
%1BFF27F8F8F852FD5BFF52F8F8F827FD1BFF52F8F8F852FD5BFF52F8F8F8
%52FD1BFF27F8F8F827FD5BFF27F8F8F827FD1BFF52F8F8F852FD5BFF52F8
%F8F852FD1BFF27F8F8F852FD5BFF52F8F8F827FD1BFF27F8F8F827275227
%522752275227522752275227522752275227522752275227522752275227
%522752275227522752275227522752275227522752275227522752275227
%5227522752275227522752275227522752275227522752275227522727F8
%F8F852FD1BFFFD64F827FD1BFFFD64F852FD1BFFFD64F827FD1BFFFD6352
%277DFD9AFFFF
%%EndData
endstream
endobj
106 0 obj
<>stream
-%AI12_CompressedDataxrG(?a]KočΑĄ&!cСH/7Z@@rSj(6
-ݵeVrf'H|n}5?a?~1$^}sj{}E_6wf/ໟ7r55,deFwWBWfۇ˫_g?%G:?ݿ]y> dkzN%
-'56^