├── .eslintrc.cjs ├── .github └── workflows │ └── deploy.yml ├── .gitignore ├── .yarnrc.yml ├── README.md ├── biome.json ├── index.html ├── package.json ├── partykit.json ├── public └── vite.svg ├── src ├── App.tsx ├── css │ ├── dev-ui.css │ └── index.css ├── default_store.ts ├── graph │ ├── GraphLayoutCollection.tsx │ ├── GraphUi.tsx │ └── uiOverrides.ts ├── main.tsx ├── server.ts ├── useYjsStore.ts └── vite-env.d.ts ├── tldraw-collections ├── .yarn │ └── install-state.gz ├── package.json ├── src │ ├── BaseCollection.ts │ ├── CollectionProvider.tsx │ ├── index.ts │ └── useCollection.ts ├── tsconfig.json └── yarn.lock ├── tsconfig.json ├── tsconfig.node.json ├── vite.config.ts └── yarn.lock /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { browser: true, es2020: true }, 4 | extends: [ 5 | 'eslint:recommended', 6 | 'plugin:@typescript-eslint/recommended', 7 | 'plugin:react-hooks/recommended', 8 | ], 9 | ignorePatterns: ['dist', '.eslintrc.cjs'], 10 | parser: '@typescript-eslint/parser', 11 | plugins: ['react-refresh'], 12 | rules: { 13 | 'react-refresh/only-export-components': [ 14 | 'warn', 15 | { allowConstantExport: true }, 16 | ], 17 | '@typescript-eslint/no-explicit-any': 'off', 18 | '@typescript-eslint/no-unused-vars': [ 19 | 'error', 20 | { 21 | argsIgnorePattern: '^_', 22 | varsIgnorePattern: '^_', 23 | caughtErrorsIgnorePattern: '^_', 24 | }, 25 | ], 26 | }, 27 | } 28 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy to GitHub Pages 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | permissions: 8 | contents: write 9 | 10 | jobs: 11 | build-and-deploy: 12 | concurrency: ci-${{ github.ref }} 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: Checkout 🛎️ 16 | uses: actions/checkout@v3 17 | 18 | - name: Enable Corepack 📦 19 | run: | 20 | corepack enable 21 | corepack prepare yarn@4.0.2 --activate 22 | 23 | - name: Build 🔧 24 | run: | 25 | yarn install 26 | yarn run build 27 | 28 | - name: Deploy 🚀 29 | uses: JamesIves/github-pages-deploy-action@v4 30 | with: 31 | folder: dist -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | .vscode 15 | .pnp.* 16 | .yarn/* 17 | !.yarn/patches 18 | !.yarn/plugins 19 | !.yarn/releases 20 | !.yarn/sdks 21 | !.yarn/versions 22 | 23 | # Editor directories and files 24 | .idea 25 | .DS_Store 26 | *.suo 27 | *.ntvs* 28 | *.njsproj 29 | *.sln 30 | *.sw? 31 | .vercel 32 | .env 33 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # tldraw graph layout 2 | This repo demonstrates an interactive force-directed graph layout integration with [tldraw](https://github.com/tldraw/tldraw). It uses [WebCola](https://ialab.it.monash.edu/webcola/), a JS port of [libcola](http://www.adaptagrams.org). This repo is aimed to be a starting point for further exploration and there's lots to be explored! 3 | 4 | You can mess around with it online [here](https://orionreed.github.io/tldraw-graph-layout/) 5 | 6 | https://github.com/OrionReed/tldraw-graph-layout/assets/16704290/0245917d-3a4b-45ad-a3a5-4c6fc4e46a04 7 | 8 | ## Usage 9 | 1. Hit "G" to add/remove all shapes from the graph collection or select shapes and use the "Add" and "Remove" buttons to add just those 10 | 2. Move shapes around and watch it go brrrrrrrrrr 11 | 3. You can hit the "🔦" button to highlight shapes in the graph 12 | 13 | ### Behaviour 14 | - *Any* shapes connected with arrows are included in the graph layout (this includes videos, frames, etc) 15 | - While a shape is selected it will not be moved by the graph layout. Deselect to let those shapes move. 16 | 17 | ### Constraints 18 | - Making a shape red will constrain it vertically 19 | - Making a shape blue will constrain it horizontally 20 | - Much more interesting constraints are possible, PRs welcome! 21 | 22 | ## Setup 23 | ```bash 24 | yarn install 25 | yarn dev 26 | ``` 27 | Then go to `http://localhost:5173` in your browser. 28 | 29 | Multiplayer is supported* using yjs and partykit. To deploy: 30 | ```bash 31 | yarn deploy 32 | ``` 33 | *Note that multiplayer is essentially the same as a single client manually moving many shapes each frame, but it sure is fun! Due to a connection bug I've disabled multiplayer (err, commented out line 25 of App.tsx). PRs for multiplayer fixes/improvements are **very** welcome! 34 | 35 | # Contributing 36 | Please open an issue or PR if you have any suggestions or improvements! Especially looking for: 37 | - More interesting constraint demonstrations 38 | - Improvements to the [collections system](https://github.com/OrionReed/tldraw-graph-layout/tree/main/tldraw-collections) 39 | - Bug fixes / performance improvements 40 | 41 | ## Current Limitations & Issues 42 | - There is a bug I cannot identify where the non-overlap constraint does not apply to disconnected nodes. They *should* collide with each other but don't. 43 | - Due to the current edge length calculation, it's possible for the graph to never reach a stable / zero energy state under some circumstances. This is just me doing bad math. A better ideal edge length function would be nice. 44 | -------------------------------------------------------------------------------- /biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://biomejs.dev/schemas/1.4.1/schema.json", 3 | "organizeImports": { 4 | "enabled": true 5 | }, 6 | "files": { 7 | "ignore": [ 8 | "src/hull" 9 | ] 10 | }, 11 | "linter": { 12 | "enabled": true, 13 | "rules": { 14 | "recommended": true, 15 | "complexity": { 16 | "noForEach": "off" 17 | }, 18 | "correctness": { 19 | "useExhaustiveDependencies": "off" 20 | } 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Graph Layouts 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tldraw-graph", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "concurrently \"vite\" \"HOST=localhost PORT=1234 npx y-websocket\" --kill-others", 8 | "dev:win": "concurrently \"vite\" \"set HOST=localhost&& set PORT=1234 && npx y-websocket\" --kill-others", 9 | "build": "tsc && vite build --base=./", 10 | "preview": "vite preview", 11 | "lint": "yarn dlx @biomejs/biome check --apply src", 12 | "deploy": "yarn build && npx partykit deploy" 13 | }, 14 | "dependencies": { 15 | "@tldraw/tldraw": "2.0.0-beta.2", 16 | "partykit": "^0.0.27", 17 | "react": "^18.2.0", 18 | "react-dom": "^18.2.0", 19 | "webcola": "latest", 20 | "y-partykit": "^0.0.7", 21 | "y-utility": "^0.1.3", 22 | "y-websocket": "^1.5.0", 23 | "yjs": "^13.6.8" 24 | }, 25 | "devDependencies": { 26 | "@biomejs/biome": "1.4.1", 27 | "@types/react": "^18.2.15", 28 | "@types/react-dom": "^18.2.7", 29 | "@vitejs/plugin-react": "^4.0.3", 30 | "concurrently": "^8.2.0", 31 | "path": "^0.12.7", 32 | "typescript": "^5.0.2", 33 | "vite": "^4.4.5", 34 | "vite-plugin-top-level-await": "^1.3.1", 35 | "vite-plugin-wasm": "^3.2.2" 36 | }, 37 | "packageManager": "yarn@4.0.2" 38 | } 39 | -------------------------------------------------------------------------------- /partykit.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "canvas", 3 | "main": "src/server.ts", 4 | "serve": { 5 | "path": "dist" 6 | }, 7 | "compatibilityDate": "2023-10-04" 8 | } -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/App.tsx: -------------------------------------------------------------------------------- 1 | import { Editor, Tldraw, track, useEditor } from "@tldraw/tldraw"; 2 | import "@tldraw/tldraw/tldraw.css"; 3 | import { GraphUi } from "./graph/GraphUi"; 4 | import { useYjsStore } from "./useYjsStore"; 5 | import { uiOverrides } from "./graph/uiOverrides"; 6 | import { Collection, CollectionProvider } from "@collections"; 7 | import { useState } from "react"; 8 | import { GraphLayoutCollection } from "./graph/GraphLayoutCollection"; 9 | 10 | const collections: Collection[] = [GraphLayoutCollection] 11 | 12 | const store = () => { 13 | const hostUrl = import.meta.env.DEV 14 | ? "ws://localhost:1234" 15 | : import.meta.env.VITE_PRODUCTION_URL.replace("https://", "ws://"); // remove protocol just in case 16 | const roomId = 17 | new URLSearchParams(window.location.search).get("room") || "42"; 18 | return useYjsStore({ 19 | roomId: roomId, 20 | hostUrl: hostUrl, 21 | }); 22 | } 23 | 24 | export default function Canvas() { 25 | const [editor, setEditor] = useState(null) 26 | 27 | return ( 28 |
29 | } 33 | overrides={uiOverrides} 34 | persistenceKey="tldraw-graph" 35 | onMount={setEditor} 36 | > 37 | {editor && ( 38 | 39 | 40 | 41 | )} 42 | 43 |
44 | ); 45 | } 46 | 47 | const NameEditor = track(() => { 48 | const editor = useEditor(); 49 | const { color, name } = editor.user.getUserPreferences(); 50 | 51 | return ( 52 |
62 | { 72 | editor.user.updateUserPreferences({ 73 | color: e.currentTarget.value, 74 | }); 75 | }} 76 | /> 77 | { 87 | editor.user.updateUserPreferences({ 88 | name: e.currentTarget.value, 89 | }); 90 | }} 91 | /> 92 |
93 | ); 94 | }); 95 | -------------------------------------------------------------------------------- /src/css/dev-ui.css: -------------------------------------------------------------------------------- 1 | .custom-layout { 2 | position: absolute; 3 | inset: 0px; 4 | z-index: 300; 5 | pointer-events: none; 6 | } 7 | 8 | .custom-toolbar { 9 | position: absolute; 10 | top: 0px; 11 | left: 0px; 12 | width: 100%; 13 | display: flex; 14 | align-items: center; 15 | justify-content: center; 16 | padding: 8px; 17 | gap: 8px; 18 | } 19 | 20 | .custom-button { 21 | pointer-events: all; 22 | padding: 4px 12px; 23 | background-color: white; 24 | border: 1px solid rgba(0, 0, 0, 0.2); 25 | border-radius: 64px; 26 | &:hover { 27 | background-color: rgb(240, 240, 240); 28 | } 29 | } 30 | 31 | .custom-button[data-isactive="true"] { 32 | background-color: black; 33 | color: white; 34 | } 35 | -------------------------------------------------------------------------------- /src/css/index.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500&display=swap'); 2 | 3 | html, 4 | body { 5 | padding: 0; 6 | margin: 0; 7 | font-family: 'Inter', sans-serif; 8 | overscroll-behavior: none; 9 | touch-action: none; 10 | min-height: 100vh; 11 | font-size: 16px; 12 | /* mobile viewport bug fix */ 13 | min-height: -webkit-fill-available; 14 | height: 100%; 15 | } 16 | 17 | html, 18 | * { 19 | box-sizing: border-box; 20 | } 21 | 22 | .tldraw__editor { 23 | position: fixed; 24 | inset: 0px; 25 | overflow: hidden; 26 | } 27 | 28 | .examples { 29 | padding: 16px; 30 | } 31 | 32 | .examples__header { 33 | width: fit-content; 34 | padding-bottom: 32px; 35 | } 36 | 37 | .examples__lockup { 38 | height: 56px; 39 | width: auto; 40 | } 41 | 42 | .examples__list { 43 | display: flex; 44 | flex-direction: column; 45 | padding: 0; 46 | margin: 0; 47 | list-style: none; 48 | } 49 | 50 | .examples__list__item { 51 | padding: 8px 12px; 52 | margin: 0px -12px; 53 | } 54 | 55 | .examples__list__item a { 56 | padding: 8px 12px; 57 | margin: 0px -12px; 58 | text-decoration: none; 59 | color: inherit; 60 | } 61 | 62 | .examples__list__item a:hover { 63 | text-decoration: underline; 64 | } 65 | -------------------------------------------------------------------------------- /src/default_store.ts: -------------------------------------------------------------------------------- 1 | export const DEFAULT_STORE = { 2 | store: { 3 | "document:document": { 4 | gridSize: 10, 5 | name: "", 6 | meta: {}, 7 | id: "document:document", 8 | typeName: "document", 9 | }, 10 | "pointer:pointer": { 11 | id: "pointer:pointer", 12 | typeName: "pointer", 13 | x: 0, 14 | y: 0, 15 | lastActivityTimestamp: 0, 16 | meta: {}, 17 | }, 18 | "page:page": { 19 | meta: {}, 20 | id: "page:page", 21 | name: "Page 1", 22 | index: "a1", 23 | typeName: "page", 24 | }, 25 | "camera:page:page": { 26 | x: 0, 27 | y: 0, 28 | z: 1, 29 | meta: {}, 30 | id: "camera:page:page", 31 | typeName: "camera", 32 | }, 33 | "instance_page_state:page:page": { 34 | editingShapeId: null, 35 | croppingShapeId: null, 36 | selectedShapeIds: [], 37 | hoveredShapeId: null, 38 | erasingShapeIds: [], 39 | hintingShapeIds: [], 40 | focusedGroupId: null, 41 | meta: {}, 42 | id: "instance_page_state:page:page", 43 | pageId: "page:page", 44 | typeName: "instance_page_state", 45 | }, 46 | "instance:instance": { 47 | followingUserId: null, 48 | opacityForNextShape: 1, 49 | stylesForNextShape: {}, 50 | brush: null, 51 | scribble: null, 52 | cursor: { 53 | type: "default", 54 | rotation: 0, 55 | }, 56 | isFocusMode: false, 57 | exportBackground: true, 58 | isDebugMode: false, 59 | isToolLocked: false, 60 | screenBounds: { 61 | x: 0, 62 | y: 0, 63 | w: 720, 64 | h: 400, 65 | }, 66 | zoomBrush: null, 67 | isGridMode: false, 68 | isPenMode: false, 69 | chatMessage: "", 70 | isChatting: false, 71 | highlightedUserIds: [], 72 | canMoveCamera: true, 73 | isFocused: true, 74 | devicePixelRatio: 2, 75 | isCoarsePointer: false, 76 | isHoveringCanvas: false, 77 | openMenus: [], 78 | isChangingStyle: false, 79 | isReadonly: false, 80 | meta: {}, 81 | id: "instance:instance", 82 | currentPageId: "page:page", 83 | typeName: "instance", 84 | }, 85 | }, 86 | schema: { 87 | schemaVersion: 1, 88 | storeVersion: 4, 89 | recordVersions: { 90 | asset: { 91 | version: 1, 92 | subTypeKey: "type", 93 | subTypeVersions: { 94 | image: 2, 95 | video: 2, 96 | bookmark: 0, 97 | }, 98 | }, 99 | camera: { 100 | version: 1, 101 | }, 102 | document: { 103 | version: 2, 104 | }, 105 | instance: { 106 | version: 21, 107 | }, 108 | instance_page_state: { 109 | version: 5, 110 | }, 111 | page: { 112 | version: 1, 113 | }, 114 | shape: { 115 | version: 3, 116 | subTypeKey: "type", 117 | subTypeVersions: { 118 | group: 0, 119 | text: 1, 120 | bookmark: 1, 121 | draw: 1, 122 | geo: 7, 123 | note: 4, 124 | line: 1, 125 | frame: 0, 126 | arrow: 1, 127 | highlight: 0, 128 | embed: 4, 129 | image: 2, 130 | video: 1, 131 | }, 132 | }, 133 | instance_presence: { 134 | version: 5, 135 | }, 136 | pointer: { 137 | version: 1, 138 | }, 139 | }, 140 | }, 141 | }; 142 | -------------------------------------------------------------------------------- /src/graph/GraphLayoutCollection.tsx: -------------------------------------------------------------------------------- 1 | import { Layout } from 'webcola'; 2 | import { BaseCollection } from '@collections'; 3 | import { Editor, TLArrowShape, TLGeoShape, TLShape, TLShapeId } from '@tldraw/tldraw'; 4 | 5 | type ColaNode = { 6 | id: TLShapeId; 7 | x: number; 8 | y: number; 9 | width: number; 10 | height: number; 11 | rotation: number; 12 | color?: string; 13 | }; 14 | type ColaIdLink = { 15 | source: TLShapeId 16 | target: TLShapeId 17 | }; 18 | type ColaNodeLink = { 19 | source: ColaNode 20 | target: ColaNode 21 | }; 22 | 23 | type AlignmentConstraint = { 24 | type: 'alignment', 25 | axis: 'x' | 'y', 26 | offsets: { node: TLShapeId, offset: number }[] 27 | } 28 | 29 | type ColaConstraint = AlignmentConstraint 30 | 31 | export class GraphLayoutCollection extends BaseCollection { 32 | override id = 'graph'; 33 | graphSim: Layout; 34 | animFrame = -1; 35 | colaNodes: Map = new Map(); 36 | colaLinks: Map = new Map(); 37 | colaConstraints: ColaConstraint[] = []; 38 | 39 | constructor(editor: Editor) { 40 | super(editor) 41 | this.graphSim = new Layout(); 42 | const simLoop = () => { 43 | this.step(); 44 | this.animFrame = requestAnimationFrame(simLoop); 45 | }; 46 | simLoop(); 47 | } 48 | 49 | override onAdd(shapes: TLShape[]) { 50 | for (const shape of shapes) { 51 | if (shape.type !== "arrow") { 52 | this.addGeo(shape); 53 | } 54 | else { 55 | this.addArrow(shape as TLArrowShape); 56 | } 57 | } 58 | this.refreshGraph(); 59 | } 60 | 61 | override onRemove(shapes: TLShape[]) { 62 | const removedShapeIds = new Set(shapes.map(shape => shape.id)); 63 | 64 | for (const shape of shapes) { 65 | this.colaNodes.delete(shape.id); 66 | this.colaLinks.delete(shape.id); 67 | } 68 | 69 | // Filter out links where either source or target has been removed 70 | for (const [key, link] of this.colaLinks) { 71 | if (removedShapeIds.has(link.source) || removedShapeIds.has(link.target)) { 72 | this.colaLinks.delete(key); 73 | } 74 | } 75 | 76 | this.refreshGraph(); 77 | } 78 | 79 | override onShapeChange(prev: TLShape, next: TLShape) { 80 | if (prev.type === 'geo' && next.type === 'geo') { 81 | const prevShape = prev as TLGeoShape 82 | const nextShape = next as TLGeoShape 83 | // update color if its changed and refresh constraints which use this 84 | if (prevShape.props.color !== nextShape.props.color) { 85 | const existingNode = this.colaNodes.get(next.id); 86 | if (existingNode) { 87 | this.colaNodes.set(next.id, { 88 | ...existingNode, 89 | color: nextShape.props.color, 90 | }); 91 | } 92 | this.refreshGraph(); 93 | } 94 | } 95 | } 96 | 97 | step = () => { 98 | this.graphSim.start(1, 0, 0, 0, true, false); 99 | for (const node of this.graphSim.nodes() as ColaNode[]) { 100 | 101 | const shape = this.editor.getShape(node.id); 102 | const { w, h } = this.editor.getShapeGeometry(node.id).bounds 103 | if (!shape) continue; 104 | 105 | const { x, y } = getCornerToCenterOffset(w, h, shape.rotation); 106 | 107 | // Fix positions if we're dragging them 108 | if (this.editor.getSelectedShapeIds().includes(node.id)) { 109 | node.x = shape.x + x; 110 | node.y = shape.y + y; 111 | } 112 | 113 | // Update shape props 114 | node.width = w; 115 | node.height = h; 116 | node.rotation = shape.rotation; 117 | 118 | this.editor.updateShape({ 119 | id: node.id, 120 | type: "geo", 121 | x: node.x - x, 122 | y: node.y - y, 123 | }); 124 | } 125 | }; 126 | 127 | addArrow = (arrow: TLArrowShape) => { 128 | const source = arrow.props.start.type === 'binding' ? this.editor.getShape(arrow.props.start.boundShapeId) : undefined; 129 | const target = arrow.props.end.type === 'binding' ? this.editor.getShape(arrow.props.end.boundShapeId) : undefined; 130 | if (source && target) { 131 | const link: ColaIdLink = { 132 | source: source.id, 133 | target: target.id 134 | }; 135 | this.colaLinks.set(arrow.id, link); 136 | } 137 | } 138 | 139 | addGeo = (shape: TLShape) => { 140 | const { w, h } = this.editor.getShapeGeometry(shape).bounds 141 | const { x, y } = getCornerToCenterOffset(w, h, shape.rotation) 142 | const node: ColaNode = { 143 | id: shape.id, 144 | x: shape.x + x, 145 | y: shape.y + y, 146 | width: w, 147 | height: h, 148 | rotation: shape.rotation, 149 | color: (shape.props as any).color 150 | }; 151 | this.colaNodes.set(shape.id, node); 152 | } 153 | 154 | refreshGraph() { 155 | // TODO: remove this hardcoded behaviour 156 | this.editor.selectNone() 157 | this.refreshConstraints(); 158 | const nodes = [...this.colaNodes.values()]; 159 | const nodeIdToIndex = new Map(nodes.map((n, i) => [n.id, i])); 160 | // Convert the Map values to an array for processing 161 | const links = Array.from(this.colaLinks.values()).map(l => ({ 162 | source: nodeIdToIndex.get(l.source), 163 | target: nodeIdToIndex.get(l.target) 164 | })); 165 | 166 | const constraints = this.colaConstraints.map(constraint => { 167 | if (constraint.type === 'alignment') { 168 | return { 169 | ...constraint, 170 | offsets: constraint.offsets.map(offset => ({ 171 | node: nodeIdToIndex.get(offset.node), 172 | offset: offset.offset 173 | })) 174 | }; 175 | } 176 | return constraint; 177 | }); 178 | 179 | this.graphSim 180 | .nodes(nodes) 181 | // @ts-ignore 182 | .links(links) 183 | .constraints(constraints) 184 | // you could use .linkDistance(250) too, which is stable but does not handle size/rotation 185 | .linkDistance((edge) => calcEdgeDistance(edge as ColaNodeLink)) 186 | .avoidOverlaps(true) 187 | .handleDisconnected(true) 188 | } 189 | 190 | refreshConstraints() { 191 | const alignmentConstraintX: AlignmentConstraint = { 192 | type: 'alignment', 193 | axis: 'x', 194 | offsets: [], 195 | }; 196 | const alignmentConstraintY: AlignmentConstraint = { 197 | type: 'alignment', 198 | axis: 'y', 199 | offsets: [], 200 | }; 201 | 202 | // Iterate over shapes and generate constraints based on conditions 203 | for (const node of this.colaNodes.values()) { 204 | if (node.color === "red") { 205 | // Add alignment offset for red shapes 206 | alignmentConstraintX.offsets.push({ node: node.id, offset: 0 }); 207 | } 208 | if (node.color === "blue") { 209 | // Add alignment offset for red shapes 210 | alignmentConstraintY.offsets.push({ node: node.id, offset: 0 }); 211 | } 212 | } 213 | 214 | const constraints = []; 215 | if (alignmentConstraintX.offsets.length > 0) { 216 | constraints.push(alignmentConstraintX); 217 | } 218 | if (alignmentConstraintY.offsets.length > 0) { 219 | constraints.push(alignmentConstraintY); 220 | } 221 | this.colaConstraints = constraints; 222 | } 223 | } 224 | 225 | function getCornerToCenterOffset(w: number, h: number, rotation: number) { 226 | 227 | // Calculate the center coordinates relative to the top-left corner 228 | const centerX = w / 2; 229 | const centerY = h / 2; 230 | 231 | // Apply rotation to the center coordinates 232 | const rotatedCenterX = centerX * Math.cos(rotation) - centerY * Math.sin(rotation); 233 | const rotatedCenterY = centerX * Math.sin(rotation) + centerY * Math.cos(rotation); 234 | 235 | return { x: rotatedCenterX, y: rotatedCenterY }; 236 | } 237 | 238 | function calcEdgeDistance(edge: ColaNodeLink) { 239 | const LINK_DISTANCE = 100; 240 | 241 | // horizontal and vertical distances between centers 242 | const dx = edge.target.x - edge.source.x; 243 | const dy = edge.target.y - edge.source.y; 244 | 245 | // the angles of the nodes in radians 246 | const sourceAngle = edge.source.rotation; 247 | const targetAngle = edge.target.rotation; 248 | 249 | // Calculate the rotated dimensions of the nodes 250 | const sourceWidth = Math.abs(edge.source.width * Math.cos(sourceAngle)) + Math.abs(edge.source.height * Math.sin(sourceAngle)); 251 | const sourceHeight = Math.abs(edge.source.width * Math.sin(sourceAngle)) + Math.abs(edge.source.height * Math.cos(sourceAngle)); 252 | const targetWidth = Math.abs(edge.target.width * Math.cos(targetAngle)) + Math.abs(edge.target.height * Math.sin(targetAngle)); 253 | const targetHeight = Math.abs(edge.target.width * Math.sin(targetAngle)) + Math.abs(edge.target.height * Math.cos(targetAngle)); 254 | 255 | // Calculate edge-to-edge distances 256 | const horizontalGap = Math.max(0, Math.abs(dx) - (sourceWidth + targetWidth) / 2); 257 | const verticalGap = Math.max(0, Math.abs(dy) - (sourceHeight + targetHeight) / 2); 258 | 259 | // Calculate straight-line distance between the centers of the nodes 260 | const centerToCenterDistance = Math.sqrt(dx * dx + dy * dy); 261 | 262 | // Adjust the distance by subtracting the edge-to-edge distance and adding the desired travel distance 263 | const adjustedDistance = centerToCenterDistance - 264 | Math.sqrt(horizontalGap * horizontalGap + verticalGap * verticalGap) + 265 | LINK_DISTANCE; 266 | 267 | return adjustedDistance; 268 | }; 269 | -------------------------------------------------------------------------------- /src/graph/GraphUi.tsx: -------------------------------------------------------------------------------- 1 | import { useEditor } from "@tldraw/tldraw"; 2 | import { useEffect } from "react"; 3 | import "../css/dev-ui.css"; 4 | import { useCollection } from "@collections"; 5 | 6 | export const GraphUi = () => { 7 | const editor = useEditor(); 8 | const { collection, size } = useCollection('graph') 9 | 10 | const handleAdd = () => { 11 | if (collection) { 12 | collection.add(editor.getSelectedShapes()) 13 | editor.selectNone() 14 | } 15 | } 16 | 17 | const handleRemove = () => { 18 | if (collection) { 19 | collection.remove(editor.getSelectedShapes()) 20 | editor.selectNone() 21 | } 22 | } 23 | 24 | const handleShortcut = () => { 25 | if (!collection) return 26 | const empty = collection.getShapes().size === 0 27 | if (empty) 28 | collection.add(editor.getCurrentPageShapes()) 29 | else 30 | collection.clear() 31 | }; 32 | 33 | const handleHighlight = () => { 34 | if (collection) { 35 | editor.setHintingShapes([...collection.getShapes().values()]) 36 | } 37 | } 38 | 39 | const handleHelp = () => { 40 | alert("Use the 'Add' and 'Remove' buttons to add/remove selected shapes, or hit 'G' to add/remove all shapes. \n\nUse the highlight button (🔦) to visualize shapes in the simulation. \n\nBLUE shapes are constrained horizontally, RED shapes are constrained vertically. This is just to demo basic constraints, I plan to demo more interesting constraints in the future. \n\nFor more details, check the project's README."); 41 | } 42 | 43 | useEffect(() => { 44 | window.addEventListener('toggleGraphLayoutEvent', handleShortcut); 45 | 46 | return () => { 47 | window.removeEventListener('toggleGraphLayoutEvent', handleShortcut); 48 | }; 49 | }, [handleShortcut]); 50 | 51 | return ( 52 |
53 |
54 |
{size} shapes
55 | 63 | 71 | 79 | 87 |
88 |
89 | ); 90 | }; 91 | -------------------------------------------------------------------------------- /src/graph/uiOverrides.ts: -------------------------------------------------------------------------------- 1 | import { 2 | TLUiEventSource, 3 | TLUiOverrides, 4 | TLUiTranslationKey, 5 | } from "@tldraw/tldraw"; 6 | 7 | export const uiOverrides: TLUiOverrides = { 8 | actions(_editor, actions) { 9 | actions['toggle-graph-layout'] = { 10 | id: 'toggle-graph-layout', 11 | label: 'Toggle Graph Layout' as TLUiTranslationKey, 12 | readonlyOk: true, 13 | kbd: 'g', 14 | onSelect(_source: TLUiEventSource) { 15 | const event = new CustomEvent('toggleGraphLayoutEvent'); 16 | window.dispatchEvent(event); 17 | }, 18 | } 19 | return actions 20 | } 21 | } -------------------------------------------------------------------------------- /src/main.tsx: -------------------------------------------------------------------------------- 1 | import ReactDOM from "react-dom/client"; 2 | import App from "./App.tsx"; 3 | import "./css/index.css"; 4 | 5 | const rootElement = document.getElementById("root"); 6 | if (rootElement) { 7 | ReactDOM.createRoot(rootElement).render( 8 | // 9 | 10 | // 11 | ); 12 | } -------------------------------------------------------------------------------- /src/server.ts: -------------------------------------------------------------------------------- 1 | import * as Party from "partykit/server"; 2 | import { onConnect } from "y-partykit"; 3 | 4 | export default { 5 | async onConnect(conn: Party.Connection, room: Party.Party) { 6 | console.log("onConnect"); 7 | 8 | return await onConnect(conn, room, { 9 | // experimental: persist the document to partykit's room storage 10 | persist: true, 11 | }); 12 | }, 13 | }; 14 | -------------------------------------------------------------------------------- /src/useYjsStore.ts: -------------------------------------------------------------------------------- 1 | import { 2 | InstancePresenceRecordType, 3 | TLAnyShapeUtilConstructor, 4 | TLInstancePresence, 5 | TLRecord, 6 | TLStoreWithStatus, 7 | computed, 8 | createPresenceStateDerivation, 9 | createTLStore, 10 | defaultShapeUtils, 11 | defaultUserPreferences, 12 | getUserPreferences, 13 | react, 14 | transact, 15 | } from "@tldraw/tldraw"; 16 | import { useEffect, useMemo, useState } from "react"; 17 | import YPartyKitProvider from "y-partykit/provider"; 18 | import { YKeyValue } from "y-utility/y-keyvalue"; 19 | import * as Y from "yjs"; 20 | import { DEFAULT_STORE } from "./default_store"; 21 | 22 | export function useYjsStore({ 23 | hostUrl, 24 | version = 1, 25 | roomId = "example", 26 | shapeUtils = [], 27 | }: { 28 | hostUrl: string; 29 | version?: number; 30 | roomId?: string; 31 | shapeUtils?: TLAnyShapeUtilConstructor[]; 32 | }) { 33 | const [store] = useState(() => { 34 | const store = createTLStore({ 35 | shapeUtils: [...defaultShapeUtils, ...shapeUtils], 36 | }); 37 | store.loadSnapshot(DEFAULT_STORE); 38 | return store; 39 | }); 40 | 41 | const [storeWithStatus, setStoreWithStatus] = useState({ 42 | status: "loading", 43 | }); 44 | 45 | const { yDoc, yStore, room } = useMemo(() => { 46 | const yDoc = new Y.Doc({ gc: true }); 47 | const yArr = yDoc.getArray<{ key: string; val: TLRecord }>(`tl_${roomId}`); 48 | const yStore = new YKeyValue(yArr); 49 | 50 | return { 51 | yDoc, 52 | yStore, 53 | room: new YPartyKitProvider(hostUrl, `${roomId}_${version}`, yDoc, { 54 | connect: true, 55 | }), 56 | }; 57 | }, [hostUrl, roomId, version]); 58 | 59 | useEffect(() => { 60 | setStoreWithStatus({ status: "loading" }); 61 | 62 | const unsubs: (() => void)[] = []; 63 | 64 | function handleSync() { 65 | // 1. 66 | // Connect store to yjs store and vis versa, for both the document and awareness 67 | 68 | /* -------------------- Document -------------------- */ 69 | 70 | // Sync store changes to the yjs doc 71 | unsubs.push( 72 | store.listen( 73 | function syncStoreChangesToYjsDoc({ changes }) { 74 | yDoc.transact(() => { 75 | Object.values(changes.added).forEach((record) => { 76 | yStore.set(record.id, record); 77 | }); 78 | 79 | Object.values(changes.updated).forEach(([_, record]) => { 80 | yStore.set(record.id, record); 81 | }); 82 | 83 | Object.values(changes.removed).forEach((record) => { 84 | yStore.delete(record.id); 85 | }); 86 | }); 87 | }, 88 | { source: "user", scope: "document" }, // only sync user's document changes 89 | ), 90 | ); 91 | 92 | // Sync the yjs doc changes to the store 93 | const handleChange = ( 94 | changes: Map< 95 | string, 96 | | { action: "delete"; oldValue: TLRecord } 97 | | { action: "update"; oldValue: TLRecord; newValue: TLRecord } 98 | | { action: "add"; newValue: TLRecord } 99 | >, 100 | transaction: Y.Transaction, 101 | ) => { 102 | if (transaction.local) return; 103 | 104 | const toRemove: TLRecord["id"][] = []; 105 | const toPut: TLRecord[] = []; 106 | 107 | changes.forEach((change, id) => { 108 | switch (change.action) { 109 | case "add": 110 | case "update": { 111 | const record = yStore.get(id)!; 112 | toPut.push(record); 113 | break; 114 | } 115 | case "delete": { 116 | toRemove.push(id as TLRecord["id"]); 117 | break; 118 | } 119 | } 120 | }); 121 | 122 | // put / remove the records in the store 123 | store.mergeRemoteChanges(() => { 124 | if (toRemove.length) store.remove(toRemove); 125 | if (toPut.length) store.put(toPut); 126 | }); 127 | }; 128 | 129 | yStore.on("change", handleChange); 130 | unsubs.push(() => yStore.off("change", handleChange)); 131 | 132 | /* -------------------- Awareness ------------------- */ 133 | 134 | const userPreferences = computed<{ 135 | id: string; 136 | color: string; 137 | name: string; 138 | }>("userPreferences", () => { 139 | const user = getUserPreferences(); 140 | return { 141 | id: user.id, 142 | color: user.color ?? defaultUserPreferences.color, 143 | name: user.name ?? defaultUserPreferences.name, 144 | }; 145 | }); 146 | 147 | // Create the instance presence derivation 148 | const yClientId = room.awareness.clientID.toString(); 149 | const presenceId = InstancePresenceRecordType.createId(yClientId); 150 | const presenceDerivation = 151 | createPresenceStateDerivation(userPreferences)(store); 152 | 153 | // Set our initial presence from the derivation's current value 154 | room.awareness.setLocalStateField("presence", presenceDerivation.get()); 155 | 156 | // When the derivation change, sync presence to to yjs awareness 157 | unsubs.push( 158 | react("when presence changes", () => { 159 | const presence = presenceDerivation.get(); 160 | requestAnimationFrame(() => { 161 | room.awareness.setLocalStateField("presence", presence); 162 | }); 163 | }), 164 | ); 165 | 166 | // Sync yjs awareness changes to the store 167 | const handleUpdate = (update: { 168 | added: number[]; 169 | updated: number[]; 170 | removed: number[]; 171 | }) => { 172 | const states = room.awareness.getStates() as Map< 173 | number, 174 | { presence: TLInstancePresence } 175 | >; 176 | 177 | const toRemove: TLInstancePresence["id"][] = []; 178 | const toPut: TLInstancePresence[] = []; 179 | 180 | // Connect records to put / remove 181 | for (const clientId of update.added) { 182 | const state = states.get(clientId); 183 | if (state?.presence && state.presence.id !== presenceId) { 184 | toPut.push(state.presence); 185 | } 186 | } 187 | 188 | for (const clientId of update.updated) { 189 | const state = states.get(clientId); 190 | if (state?.presence && state.presence.id !== presenceId) { 191 | toPut.push(state.presence); 192 | } 193 | } 194 | 195 | for (const clientId of update.removed) { 196 | toRemove.push( 197 | InstancePresenceRecordType.createId(clientId.toString()), 198 | ); 199 | } 200 | 201 | // put / remove the records in the store 202 | store.mergeRemoteChanges(() => { 203 | if (toRemove.length) store.remove(toRemove); 204 | if (toPut.length) store.put(toPut); 205 | }); 206 | }; 207 | 208 | room.awareness.on("update", handleUpdate); 209 | unsubs.push(() => room.awareness.off("update", handleUpdate)); 210 | 211 | // 2. 212 | // Initialize the store with the yjs doc records—or, if the yjs doc 213 | // is empty, initialize the yjs doc with the default store records. 214 | if (yStore.yarray.length) { 215 | // Replace the store records with the yjs doc records 216 | transact(() => { 217 | // The records here should be compatible with what's in the store 218 | store.clear(); 219 | const records = yStore.yarray.toJSON().map(({ val }) => val); 220 | store.put(records); 221 | }); 222 | } else { 223 | // Create the initial store records 224 | // Sync the store records to the yjs doc 225 | yDoc.transact(() => { 226 | for (const record of store.allRecords()) { 227 | yStore.set(record.id, record); 228 | } 229 | }); 230 | } 231 | 232 | setStoreWithStatus({ 233 | store, 234 | status: "synced-remote", 235 | connectionStatus: "online", 236 | }); 237 | } 238 | 239 | let hasConnectedBefore = false; 240 | 241 | function handleStatusChange({ 242 | status, 243 | }: { 244 | status: "disconnected" | "connected"; 245 | }) { 246 | // If we're disconnected, set the store status to 'synced-remote' and the connection status to 'offline' 247 | if (status === "disconnected") { 248 | setStoreWithStatus({ 249 | store, 250 | status: "synced-remote", 251 | connectionStatus: "offline", 252 | }); 253 | return; 254 | } 255 | 256 | room.off("synced", handleSync); 257 | 258 | if (status === "connected") { 259 | if (hasConnectedBefore) return; 260 | hasConnectedBefore = true; 261 | room.on("synced", handleSync); 262 | unsubs.push(() => room.off("synced", handleSync)); 263 | } 264 | } 265 | 266 | room.on("status", handleStatusChange); 267 | unsubs.push(() => room.off("status", handleStatusChange)); 268 | 269 | return () => { 270 | unsubs.forEach((fn) => fn()); 271 | unsubs.length = 0; 272 | }; 273 | }, [room, yDoc, store, yStore]); 274 | 275 | return storeWithStatus; 276 | } 277 | -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /tldraw-collections/.yarn/install-state.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrionReed/tldraw-graph-layout/b595bc9924c4332d102f0e619ce972f47b8bdeaa/tldraw-collections/.yarn/install-state.gz -------------------------------------------------------------------------------- /tldraw-collections/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@orion/tldraw-collections", 3 | "version": "0.1.1", 4 | "main": "dist/index.js", 5 | "types": "dist/index.d.ts", 6 | "files": [ 7 | "dist" 8 | ], 9 | "scripts": { 10 | "build": "tsc", 11 | "watch": "tsc --watch", 12 | "prepublish": "yarn build" 13 | }, 14 | "peerDependencies": { 15 | "@tldraw/tldraw": "2.0.0-beta.2", 16 | "react": "^18.2.0" 17 | }, 18 | "devDependencies": { 19 | "@types/react": "^18.2.15", 20 | "typescript": "^5.0.2" 21 | } 22 | } -------------------------------------------------------------------------------- /tldraw-collections/src/BaseCollection.ts: -------------------------------------------------------------------------------- 1 | import { Editor, TLShape, TLShapeId } from '@tldraw/tldraw'; 2 | 3 | /** 4 | * A PoC abstract collections class for @tldraw. 5 | */ 6 | export abstract class BaseCollection { 7 | /** A unique identifier for the collection. */ 8 | abstract id: string; 9 | /** A map containing the shapes that belong to this collection, keyed by their IDs. */ 10 | protected shapes: Map = new Map(); 11 | /** A reference to the \@tldraw Editor instance. */ 12 | protected editor: Editor; 13 | /** A set of listeners to be notified when the collection changes. */ 14 | private listeners = new Set<() => void>(); 15 | 16 | // TODO: Maybe pass callback to replace updateShape so only CollectionProvider can call it 17 | public constructor(editor: Editor) { 18 | this.editor = editor; 19 | } 20 | 21 | /** 22 | * Called when shapes are added to the collection. 23 | * @param shapes The shapes being added to the collection. 24 | */ 25 | protected onAdd(_shapes: TLShape[]): void { } 26 | 27 | /** 28 | * Called when shapes are removed from the collection. 29 | * @param shapes The shapes being removed from the collection. 30 | */ 31 | protected onRemove(_shapes: TLShape[]) { } 32 | 33 | /** 34 | * Called when the membership of the collection changes (i.e., when shapes are added or removed). 35 | */ 36 | protected onMembershipChange() { } 37 | 38 | 39 | /** 40 | * Called when the properties of a shape belonging to the collection change. 41 | * @param prev The previous version of the shape before the change. 42 | * @param next The updated version of the shape after the change. 43 | */ 44 | protected onShapeChange(_prev: TLShape, _next: TLShape) { } 45 | 46 | /** 47 | * Adds the specified shapes to the collection. 48 | * @param shapes The shapes to add to the collection. 49 | */ 50 | public add(shapes: TLShape[]) { 51 | shapes.forEach(shape => { 52 | this.shapes.set(shape.id, shape) 53 | }); 54 | this.onAdd(shapes); 55 | this.onMembershipChange(); 56 | this.notifyListeners(); 57 | } 58 | 59 | /** 60 | * Removes the specified shapes from the collection. 61 | * @param shapes The shapes to remove from the collection. 62 | */ 63 | public remove(shapes: TLShape[]) { 64 | shapes.forEach(shape => { 65 | this.shapes.delete(shape.id); 66 | }); 67 | this.onRemove(shapes); 68 | this.onMembershipChange(); 69 | this.notifyListeners(); 70 | } 71 | 72 | /** 73 | * Clears all shapes from the collection. 74 | */ 75 | public clear() { 76 | this.remove([...this.shapes.values()]) 77 | } 78 | 79 | /** 80 | * Returns the map of shapes in the collection. 81 | * @returns The map of shapes in the collection, keyed by their IDs. 82 | */ 83 | public getShapes(): Map { 84 | return this.shapes; 85 | } 86 | 87 | public get size(): number { 88 | return this.shapes.size; 89 | } 90 | 91 | public _onShapeChange(prev: TLShape, next: TLShape) { 92 | this.shapes.set(next.id, next) 93 | this.onShapeChange(prev, next) 94 | this.notifyListeners(); 95 | } 96 | 97 | private notifyListeners() { 98 | for (const listener of this.listeners) { 99 | listener(); 100 | } 101 | } 102 | 103 | public subscribe(listener: () => void): () => void { 104 | this.listeners.add(listener); 105 | return () => this.listeners.delete(listener); 106 | } 107 | } -------------------------------------------------------------------------------- /tldraw-collections/src/CollectionProvider.tsx: -------------------------------------------------------------------------------- 1 | import React, { createContext, useEffect, useMemo, useState } from 'react'; 2 | import { TLShape, TLRecord, Editor, useEditor } from '@tldraw/tldraw'; 3 | import { BaseCollection } from './BaseCollection'; 4 | 5 | interface CollectionContextValue { 6 | get: (id: string) => BaseCollection | undefined; 7 | } 8 | 9 | type Collection = (new (editor: Editor) => BaseCollection) 10 | 11 | interface CollectionProviderProps { 12 | editor: Editor; 13 | collections: Collection[]; 14 | children: React.ReactNode; 15 | } 16 | 17 | const CollectionContext = createContext(undefined); 18 | 19 | const CollectionProvider: React.FC = ({ editor, collections: collectionClasses, children }) => { 20 | const [collections, setCollections] = useState | null>(null); 21 | 22 | // Handle shape property changes 23 | const handleShapeChange = (prev: TLShape, next: TLShape) => { 24 | if (!collections) return; // Ensure collections is not null 25 | for (const collection of collections.values()) { 26 | if (collection.getShapes().has(next.id)) { 27 | collection._onShapeChange(prev, next); 28 | } 29 | } 30 | }; 31 | 32 | // Handle shape deletions 33 | const handleShapeDelete = (shape: TLShape) => { 34 | if (!collections) return; // Ensure collections is not null 35 | for (const collection of collections.values()) { 36 | collection.remove([shape]); 37 | } 38 | }; 39 | 40 | useEffect(() => { 41 | if (editor) { 42 | const initializedCollections = new Map(); 43 | for (const ColClass of collectionClasses) { 44 | const instance = new ColClass(editor); 45 | initializedCollections.set(instance.id, instance); 46 | } 47 | setCollections(initializedCollections); 48 | } 49 | }, [editor, collectionClasses]); 50 | 51 | // Subscribe to shape changes in the editor 52 | useEffect(() => { 53 | 54 | if (editor && collections) { 55 | editor.store.onAfterChange = (prev: TLRecord, next: TLRecord) => { 56 | if (next.typeName !== 'shape') return; 57 | const prevShape = prev as TLShape; 58 | const nextShape = next as TLShape; 59 | handleShapeChange(prevShape, nextShape); 60 | }; 61 | } 62 | }, [editor, collections]); 63 | 64 | // Subscribe to shape deletions in the editor 65 | useEffect(() => { 66 | if (editor && collections) { 67 | editor.store.onAfterDelete = (prev: TLRecord, _: string) => { 68 | if (prev.typeName === 'shape') 69 | handleShapeDelete(prev); 70 | }; 71 | } 72 | }, [editor, collections]); 73 | 74 | 75 | 76 | const value = useMemo(() => ({ 77 | get: (id: string) => collections?.get(id), 78 | }), [collections]); 79 | 80 | return ( 81 | 82 | {collections ? children : null} 83 | 84 | ); 85 | }; 86 | 87 | export { CollectionContext, CollectionProvider, type Collection }; -------------------------------------------------------------------------------- /tldraw-collections/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './BaseCollection'; 2 | export * from './CollectionProvider'; 3 | export * from './useCollection'; -------------------------------------------------------------------------------- /tldraw-collections/src/useCollection.ts: -------------------------------------------------------------------------------- 1 | import { useContext, useEffect, useState } from "react"; 2 | import { CollectionContext } from "./CollectionProvider"; 3 | import { BaseCollection } from "./BaseCollection"; 4 | 5 | export const useCollection = (collectionId: string): { collection: T; size: number } => { 6 | const context = useContext(CollectionContext); 7 | if (!context) { 8 | throw new Error("CollectionContext not found."); 9 | } 10 | 11 | const collection = context.get(collectionId); 12 | if (!collection) { 13 | throw new Error(`Collection with id '${collectionId}' not found`); 14 | } 15 | 16 | const [size, setSize] = useState(collection.size); 17 | 18 | useEffect(() => { 19 | // Subscribe to collection changes 20 | const unsubscribe = collection.subscribe(() => { 21 | setSize(collection.size); 22 | }); 23 | 24 | // Set initial size 25 | setSize(collection.size); 26 | 27 | return unsubscribe; // Cleanup on unmount 28 | }, [collection]); 29 | 30 | return { collection: collection as T, size }; 31 | }; 32 | 33 | -------------------------------------------------------------------------------- /tldraw-collections/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "module": "commonjs", 5 | "declaration": true, 6 | "outDir": "./dist", 7 | "strict": true, 8 | "jsx": "react-jsx", 9 | "esModuleInterop": true, 10 | "skipLibCheck": true 11 | }, 12 | "include": [ 13 | "src" 14 | ], 15 | "exclude": [ 16 | "node_modules", 17 | "dist" 18 | ] 19 | } -------------------------------------------------------------------------------- /tldraw-collections/yarn.lock: -------------------------------------------------------------------------------- 1 | # This file is generated by running "yarn install" inside your project. 2 | # Manual changes might be lost - proceed with caution! 3 | 4 | __metadata: 5 | version: 8 6 | cacheKey: 10c0 7 | 8 | "@orion/tldraw-collections@workspace:.": 9 | version: 0.0.0-use.local 10 | resolution: "@orion/tldraw-collections@workspace:." 11 | dependencies: 12 | "@types/react": "npm:^18.2.15" 13 | typescript: "npm:^5.0.2" 14 | peerDependencies: 15 | "@tldraw/tldraw": 2.0.0-beta.2 16 | react: ^18.2.0 17 | languageName: unknown 18 | linkType: soft 19 | 20 | "@types/prop-types@npm:*": 21 | version: 15.7.12 22 | resolution: "@types/prop-types@npm:15.7.12" 23 | checksum: 1babcc7db6a1177779f8fde0ccc78d64d459906e6ef69a4ed4dd6339c920c2e05b074ee5a92120fe4e9d9f1a01c952f843ebd550bee2332fc2ef81d1706878f8 24 | languageName: node 25 | linkType: hard 26 | 27 | "@types/react@npm:^18.2.15": 28 | version: 18.2.77 29 | resolution: "@types/react@npm:18.2.77" 30 | dependencies: 31 | "@types/prop-types": "npm:*" 32 | csstype: "npm:^3.0.2" 33 | checksum: 9114149933dbee3fdf5900786e660afe3146e8e277424aaf94dca50e29f1de56802b38a83bb65166ff53da086062bb8d001af563a6c906fe3540bdc46554d05a 34 | languageName: node 35 | linkType: hard 36 | 37 | "csstype@npm:^3.0.2": 38 | version: 3.1.3 39 | resolution: "csstype@npm:3.1.3" 40 | checksum: 80c089d6f7e0c5b2bd83cf0539ab41474198579584fa10d86d0cafe0642202343cbc119e076a0b1aece191989477081415d66c9fefbf3c957fc2fc4b7009f248 41 | languageName: node 42 | linkType: hard 43 | 44 | "typescript@npm:^5.0.2": 45 | version: 5.4.5 46 | resolution: "typescript@npm:5.4.5" 47 | bin: 48 | tsc: bin/tsc 49 | tsserver: bin/tsserver 50 | checksum: 2954022ada340fd3d6a9e2b8e534f65d57c92d5f3989a263754a78aba549f7e6529acc1921913560a4b816c46dce7df4a4d29f9f11a3dc0d4213bb76d043251e 51 | languageName: node 52 | linkType: hard 53 | 54 | "typescript@patch:typescript@npm%3A^5.0.2#optional!builtin": 55 | version: 5.4.5 56 | resolution: "typescript@patch:typescript@npm%3A5.4.5#optional!builtin::version=5.4.5&hash=e012d7" 57 | bin: 58 | tsc: bin/tsc 59 | tsserver: bin/tsserver 60 | checksum: 9cf4c053893bcf327d101b6c024a55baf05430dc30263f9adb1bf354aeffc11306fe1f23ba2f9a0209674359f16219b5b7d229e923477b94831d07d5a33a4217 61 | languageName: node 62 | linkType: hard 63 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "lib": [ 6 | "ES2020", 7 | "DOM", 8 | "DOM.Iterable" 9 | ], 10 | "module": "ESNext", 11 | "skipLibCheck": true, 12 | /* Bundler mode */ 13 | "moduleResolution": "bundler", 14 | "allowImportingTsExtensions": true, 15 | "resolveJsonModule": true, 16 | "isolatedModules": true, 17 | "noEmit": true, 18 | "jsx": "react-jsx", 19 | /* Linting */ 20 | "strict": true, 21 | "noUnusedLocals": false, 22 | "noUnusedParameters": true, 23 | "noFallthroughCasesInSwitch": true, 24 | "baseUrl": ".", 25 | "paths": { 26 | "@/*": ["src/*"], 27 | "@collections": ["tldraw-collections/src"] 28 | }, 29 | }, 30 | "include": [ 31 | "src" 32 | ], 33 | "references": [ 34 | { 35 | "path": "./tsconfig.node.json" 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true 8 | }, 9 | "include": ["vite.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | import wasm from "vite-plugin-wasm"; 4 | import topLevelAwait from "vite-plugin-top-level-await"; 5 | import path from "path"; 6 | const currentDir = new URL('.', import.meta.url).pathname; 7 | 8 | export default defineConfig({ 9 | plugins: [ 10 | react(), 11 | wasm(), 12 | topLevelAwait() 13 | ], 14 | resolve: { // Add this resolve configuration 15 | alias: { 16 | '@': path.resolve(currentDir, './src'), 17 | '@collections': path.resolve(currentDir, './tldraw-collections/src'), 18 | }, 19 | }, 20 | }) 21 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # This file is generated by running "yarn install" inside your project. 2 | # Manual changes might be lost - proceed with caution! 3 | 4 | __metadata: 5 | version: 8 6 | cacheKey: 10c0 7 | 8 | "@ampproject/remapping@npm:^2.2.0": 9 | version: 2.2.1 10 | resolution: "@ampproject/remapping@npm:2.2.1" 11 | dependencies: 12 | "@jridgewell/gen-mapping": "npm:^0.3.0" 13 | "@jridgewell/trace-mapping": "npm:^0.3.9" 14 | checksum: 92ce5915f8901d8c7cd4f4e6e2fe7b9fd335a29955b400caa52e0e5b12ca3796ada7c2f10e78c9c5b0f9c2539dff0ffea7b19850a56e1487aa083531e1e46d43 15 | languageName: node 16 | linkType: hard 17 | 18 | "@babel/code-frame@npm:^7.23.5": 19 | version: 7.23.5 20 | resolution: "@babel/code-frame@npm:7.23.5" 21 | dependencies: 22 | "@babel/highlight": "npm:^7.23.4" 23 | chalk: "npm:^2.4.2" 24 | checksum: a10e843595ddd9f97faa99917414813c06214f4d9205294013e20c70fbdf4f943760da37dec1d998bf3e6fc20fa2918a47c0e987a7e458663feb7698063ad7c6 25 | languageName: node 26 | linkType: hard 27 | 28 | "@babel/compat-data@npm:^7.23.5": 29 | version: 7.23.5 30 | resolution: "@babel/compat-data@npm:7.23.5" 31 | checksum: 081278ed46131a890ad566a59c61600a5f9557bd8ee5e535890c8548192532ea92590742fd74bd9db83d74c669ef8a04a7e1c85cdea27f960233e3b83c3a957c 32 | languageName: node 33 | linkType: hard 34 | 35 | "@babel/core@npm:^7.23.5": 36 | version: 7.23.9 37 | resolution: "@babel/core@npm:7.23.9" 38 | dependencies: 39 | "@ampproject/remapping": "npm:^2.2.0" 40 | "@babel/code-frame": "npm:^7.23.5" 41 | "@babel/generator": "npm:^7.23.6" 42 | "@babel/helper-compilation-targets": "npm:^7.23.6" 43 | "@babel/helper-module-transforms": "npm:^7.23.3" 44 | "@babel/helpers": "npm:^7.23.9" 45 | "@babel/parser": "npm:^7.23.9" 46 | "@babel/template": "npm:^7.23.9" 47 | "@babel/traverse": "npm:^7.23.9" 48 | "@babel/types": "npm:^7.23.9" 49 | convert-source-map: "npm:^2.0.0" 50 | debug: "npm:^4.1.0" 51 | gensync: "npm:^1.0.0-beta.2" 52 | json5: "npm:^2.2.3" 53 | semver: "npm:^6.3.1" 54 | checksum: 03883300bf1252ab4c9ba5b52f161232dd52873dbe5cde9289bb2bb26e935c42682493acbac9194a59a3b6cbd17f4c4c84030db8d6d482588afe64531532ff9b 55 | languageName: node 56 | linkType: hard 57 | 58 | "@babel/generator@npm:^7.23.6": 59 | version: 7.23.6 60 | resolution: "@babel/generator@npm:7.23.6" 61 | dependencies: 62 | "@babel/types": "npm:^7.23.6" 63 | "@jridgewell/gen-mapping": "npm:^0.3.2" 64 | "@jridgewell/trace-mapping": "npm:^0.3.17" 65 | jsesc: "npm:^2.5.1" 66 | checksum: 53540e905cd10db05d9aee0a5304e36927f455ce66f95d1253bb8a179f286b88fa7062ea0db354c566fe27f8bb96567566084ffd259f8feaae1de5eccc8afbda 67 | languageName: node 68 | linkType: hard 69 | 70 | "@babel/helper-compilation-targets@npm:^7.23.6": 71 | version: 7.23.6 72 | resolution: "@babel/helper-compilation-targets@npm:7.23.6" 73 | dependencies: 74 | "@babel/compat-data": "npm:^7.23.5" 75 | "@babel/helper-validator-option": "npm:^7.23.5" 76 | browserslist: "npm:^4.22.2" 77 | lru-cache: "npm:^5.1.1" 78 | semver: "npm:^6.3.1" 79 | checksum: ba38506d11185f48b79abf439462ece271d3eead1673dd8814519c8c903c708523428806f05f2ec5efd0c56e4e278698fac967e5a4b5ee842c32415da54bc6fa 80 | languageName: node 81 | linkType: hard 82 | 83 | "@babel/helper-environment-visitor@npm:^7.22.20": 84 | version: 7.22.20 85 | resolution: "@babel/helper-environment-visitor@npm:7.22.20" 86 | checksum: e762c2d8f5d423af89bd7ae9abe35bd4836d2eb401af868a63bbb63220c513c783e25ef001019418560b3fdc6d9a6fb67e6c0b650bcdeb3a2ac44b5c3d2bdd94 87 | languageName: node 88 | linkType: hard 89 | 90 | "@babel/helper-function-name@npm:^7.23.0": 91 | version: 7.23.0 92 | resolution: "@babel/helper-function-name@npm:7.23.0" 93 | dependencies: 94 | "@babel/template": "npm:^7.22.15" 95 | "@babel/types": "npm:^7.23.0" 96 | checksum: d771dd1f3222b120518176733c52b7cadac1c256ff49b1889dbbe5e3fed81db855b8cc4e40d949c9d3eae0e795e8229c1c8c24c0e83f27cfa6ee3766696c6428 97 | languageName: node 98 | linkType: hard 99 | 100 | "@babel/helper-hoist-variables@npm:^7.22.5": 101 | version: 7.22.5 102 | resolution: "@babel/helper-hoist-variables@npm:7.22.5" 103 | dependencies: 104 | "@babel/types": "npm:^7.22.5" 105 | checksum: 60a3077f756a1cd9f14eb89f0037f487d81ede2b7cfe652ea6869cd4ec4c782b0fb1de01b8494b9a2d2050e3d154d7d5ad3be24806790acfb8cbe2073bf1e208 106 | languageName: node 107 | linkType: hard 108 | 109 | "@babel/helper-module-imports@npm:^7.22.15": 110 | version: 7.22.15 111 | resolution: "@babel/helper-module-imports@npm:7.22.15" 112 | dependencies: 113 | "@babel/types": "npm:^7.22.15" 114 | checksum: 4e0d7fc36d02c1b8c8b3006dfbfeedf7a367d3334a04934255de5128115ea0bafdeb3e5736a2559917f0653e4e437400d54542da0468e08d3cbc86d3bbfa8f30 115 | languageName: node 116 | linkType: hard 117 | 118 | "@babel/helper-module-transforms@npm:^7.23.3": 119 | version: 7.23.3 120 | resolution: "@babel/helper-module-transforms@npm:7.23.3" 121 | dependencies: 122 | "@babel/helper-environment-visitor": "npm:^7.22.20" 123 | "@babel/helper-module-imports": "npm:^7.22.15" 124 | "@babel/helper-simple-access": "npm:^7.22.5" 125 | "@babel/helper-split-export-declaration": "npm:^7.22.6" 126 | "@babel/helper-validator-identifier": "npm:^7.22.20" 127 | peerDependencies: 128 | "@babel/core": ^7.0.0 129 | checksum: 211e1399d0c4993671e8e5c2b25383f08bee40004ace5404ed4065f0e9258cc85d99c1b82fd456c030ce5cfd4d8f310355b54ef35de9924eabfc3dff1331d946 130 | languageName: node 131 | linkType: hard 132 | 133 | "@babel/helper-plugin-utils@npm:^7.22.5": 134 | version: 7.22.5 135 | resolution: "@babel/helper-plugin-utils@npm:7.22.5" 136 | checksum: d2c4bfe2fa91058bcdee4f4e57a3f4933aed7af843acfd169cd6179fab8d13c1d636474ecabb2af107dc77462c7e893199aa26632bac1c6d7e025a17cbb9d20d 137 | languageName: node 138 | linkType: hard 139 | 140 | "@babel/helper-simple-access@npm:^7.22.5": 141 | version: 7.22.5 142 | resolution: "@babel/helper-simple-access@npm:7.22.5" 143 | dependencies: 144 | "@babel/types": "npm:^7.22.5" 145 | checksum: f0cf81a30ba3d09a625fd50e5a9069e575c5b6719234e04ee74247057f8104beca89ed03e9217b6e9b0493434cedc18c5ecca4cea6244990836f1f893e140369 146 | languageName: node 147 | linkType: hard 148 | 149 | "@babel/helper-split-export-declaration@npm:^7.22.6": 150 | version: 7.22.6 151 | resolution: "@babel/helper-split-export-declaration@npm:7.22.6" 152 | dependencies: 153 | "@babel/types": "npm:^7.22.5" 154 | checksum: d83e4b623eaa9622c267d3c83583b72f3aac567dc393dda18e559d79187961cb29ae9c57b2664137fc3d19508370b12ec6a81d28af73a50e0846819cb21c6e44 155 | languageName: node 156 | linkType: hard 157 | 158 | "@babel/helper-string-parser@npm:^7.23.4": 159 | version: 7.23.4 160 | resolution: "@babel/helper-string-parser@npm:7.23.4" 161 | checksum: f348d5637ad70b6b54b026d6544bd9040f78d24e7ec245a0fc42293968181f6ae9879c22d89744730d246ce8ec53588f716f102addd4df8bbc79b73ea10004ac 162 | languageName: node 163 | linkType: hard 164 | 165 | "@babel/helper-validator-identifier@npm:^7.22.20": 166 | version: 7.22.20 167 | resolution: "@babel/helper-validator-identifier@npm:7.22.20" 168 | checksum: dcad63db345fb110e032de46c3688384b0008a42a4845180ce7cd62b1a9c0507a1bed727c4d1060ed1a03ae57b4d918570259f81724aaac1a5b776056f37504e 169 | languageName: node 170 | linkType: hard 171 | 172 | "@babel/helper-validator-option@npm:^7.23.5": 173 | version: 7.23.5 174 | resolution: "@babel/helper-validator-option@npm:7.23.5" 175 | checksum: af45d5c0defb292ba6fd38979e8f13d7da63f9623d8ab9ededc394f67eb45857d2601278d151ae9affb6e03d5d608485806cd45af08b4468a0515cf506510e94 176 | languageName: node 177 | linkType: hard 178 | 179 | "@babel/helpers@npm:^7.23.9": 180 | version: 7.23.9 181 | resolution: "@babel/helpers@npm:7.23.9" 182 | dependencies: 183 | "@babel/template": "npm:^7.23.9" 184 | "@babel/traverse": "npm:^7.23.9" 185 | "@babel/types": "npm:^7.23.9" 186 | checksum: f69fd0aca96a6fb8bd6dd044cd8a5c0f1851072d4ce23355345b9493c4032e76d1217f86b70df795e127553cf7f3fcd1587ede9d1b03b95e8b62681ca2165b87 187 | languageName: node 188 | linkType: hard 189 | 190 | "@babel/highlight@npm:^7.23.4": 191 | version: 7.23.4 192 | resolution: "@babel/highlight@npm:7.23.4" 193 | dependencies: 194 | "@babel/helper-validator-identifier": "npm:^7.22.20" 195 | chalk: "npm:^2.4.2" 196 | js-tokens: "npm:^4.0.0" 197 | checksum: fbff9fcb2f5539289c3c097d130e852afd10d89a3a08ac0b5ebebbc055cc84a4bcc3dcfed463d488cde12dd0902ef1858279e31d7349b2e8cee43913744bda33 198 | languageName: node 199 | linkType: hard 200 | 201 | "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9": 202 | version: 7.23.9 203 | resolution: "@babel/parser@npm:7.23.9" 204 | bin: 205 | parser: ./bin/babel-parser.js 206 | checksum: 7df97386431366d4810538db4b9ec538f4377096f720c0591c7587a16f6810e62747e9fbbfa1ff99257fd4330035e4fb1b5b77c7bd3b97ce0d2e3780a6618975 207 | languageName: node 208 | linkType: hard 209 | 210 | "@babel/plugin-transform-react-jsx-self@npm:^7.23.3": 211 | version: 7.23.3 212 | resolution: "@babel/plugin-transform-react-jsx-self@npm:7.23.3" 213 | dependencies: 214 | "@babel/helper-plugin-utils": "npm:^7.22.5" 215 | peerDependencies: 216 | "@babel/core": ^7.0.0-0 217 | checksum: 6b586508fc58998483d4ee93a7e784c4f4d2350e2633739cf1990b7ad172e13906f72382fdaf7f07b4e3c7e7555342634d392bdeb1a079bb64762c6368ca9a32 218 | languageName: node 219 | linkType: hard 220 | 221 | "@babel/plugin-transform-react-jsx-source@npm:^7.23.3": 222 | version: 7.23.3 223 | resolution: "@babel/plugin-transform-react-jsx-source@npm:7.23.3" 224 | dependencies: 225 | "@babel/helper-plugin-utils": "npm:^7.22.5" 226 | peerDependencies: 227 | "@babel/core": ^7.0.0-0 228 | checksum: a3aad7cf738e9bfaddc26cdbb83bb9684c2e689d26fb0793d772af0c8da0cd25bb02523d192fbc6946c32143e56b472c1d33fa82466b3f2d3346e1ce8fe83cf6 229 | languageName: node 230 | linkType: hard 231 | 232 | "@babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.21.0": 233 | version: 7.23.9 234 | resolution: "@babel/runtime@npm:7.23.9" 235 | dependencies: 236 | regenerator-runtime: "npm:^0.14.0" 237 | checksum: e71205fdd7082b2656512cc98e647d9ea7e222e4fe5c36e9e5adc026446fcc3ba7b3cdff8b0b694a0b78bb85db83e7b1e3d4c56ef90726682b74f13249cf952d 238 | languageName: node 239 | linkType: hard 240 | 241 | "@babel/template@npm:^7.22.15, @babel/template@npm:^7.23.9": 242 | version: 7.23.9 243 | resolution: "@babel/template@npm:7.23.9" 244 | dependencies: 245 | "@babel/code-frame": "npm:^7.23.5" 246 | "@babel/parser": "npm:^7.23.9" 247 | "@babel/types": "npm:^7.23.9" 248 | checksum: 0e8b60119433787742bc08ae762bbd8d6755611c4cabbcb7627b292ec901a55af65d93d1c88572326069efb64136ef151ec91ffb74b2df7689bbab237030833a 249 | languageName: node 250 | linkType: hard 251 | 252 | "@babel/traverse@npm:^7.23.9": 253 | version: 7.23.9 254 | resolution: "@babel/traverse@npm:7.23.9" 255 | dependencies: 256 | "@babel/code-frame": "npm:^7.23.5" 257 | "@babel/generator": "npm:^7.23.6" 258 | "@babel/helper-environment-visitor": "npm:^7.22.20" 259 | "@babel/helper-function-name": "npm:^7.23.0" 260 | "@babel/helper-hoist-variables": "npm:^7.22.5" 261 | "@babel/helper-split-export-declaration": "npm:^7.22.6" 262 | "@babel/parser": "npm:^7.23.9" 263 | "@babel/types": "npm:^7.23.9" 264 | debug: "npm:^4.3.1" 265 | globals: "npm:^11.1.0" 266 | checksum: d1615d1d02f04d47111a7ea4446a1a6275668ca39082f31d51f08380de9502e19862be434eaa34b022ce9a17dbb8f9e2b73a746c654d9575f3a680a7ffdf5630 267 | languageName: node 268 | linkType: hard 269 | 270 | "@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.8.3": 271 | version: 7.23.9 272 | resolution: "@babel/types@npm:7.23.9" 273 | dependencies: 274 | "@babel/helper-string-parser": "npm:^7.23.4" 275 | "@babel/helper-validator-identifier": "npm:^7.22.20" 276 | to-fast-properties: "npm:^2.0.0" 277 | checksum: edc7bb180ce7e4d2aea10c6972fb10474341ac39ba8fdc4a27ffb328368dfdfbf40fca18e441bbe7c483774500d5c05e222cec276c242e952853dcaf4eb884f7 278 | languageName: node 279 | linkType: hard 280 | 281 | "@biomejs/biome@npm:1.4.1": 282 | version: 1.4.1 283 | resolution: "@biomejs/biome@npm:1.4.1" 284 | dependencies: 285 | "@biomejs/cli-darwin-arm64": "npm:1.4.1" 286 | "@biomejs/cli-darwin-x64": "npm:1.4.1" 287 | "@biomejs/cli-linux-arm64": "npm:1.4.1" 288 | "@biomejs/cli-linux-x64": "npm:1.4.1" 289 | "@biomejs/cli-win32-arm64": "npm:1.4.1" 290 | "@biomejs/cli-win32-x64": "npm:1.4.1" 291 | dependenciesMeta: 292 | "@biomejs/cli-darwin-arm64": 293 | optional: true 294 | "@biomejs/cli-darwin-x64": 295 | optional: true 296 | "@biomejs/cli-linux-arm64": 297 | optional: true 298 | "@biomejs/cli-linux-x64": 299 | optional: true 300 | "@biomejs/cli-win32-arm64": 301 | optional: true 302 | "@biomejs/cli-win32-x64": 303 | optional: true 304 | bin: 305 | biome: bin/biome 306 | checksum: 11d3a6d0ac0e31c6f5e5e33a46a77b4e1f0846a1d6c023b597a472266e911ce5ad0513b1946eedc37d31547785909c87110e803c69f564a36d4ff045d01ed243 307 | languageName: node 308 | linkType: hard 309 | 310 | "@biomejs/cli-darwin-arm64@npm:1.4.1": 311 | version: 1.4.1 312 | resolution: "@biomejs/cli-darwin-arm64@npm:1.4.1" 313 | conditions: os=darwin & cpu=arm64 314 | languageName: node 315 | linkType: hard 316 | 317 | "@biomejs/cli-darwin-x64@npm:1.4.1": 318 | version: 1.4.1 319 | resolution: "@biomejs/cli-darwin-x64@npm:1.4.1" 320 | conditions: os=darwin & cpu=x64 321 | languageName: node 322 | linkType: hard 323 | 324 | "@biomejs/cli-linux-arm64@npm:1.4.1": 325 | version: 1.4.1 326 | resolution: "@biomejs/cli-linux-arm64@npm:1.4.1" 327 | conditions: os=linux & cpu=arm64 328 | languageName: node 329 | linkType: hard 330 | 331 | "@biomejs/cli-linux-x64@npm:1.4.1": 332 | version: 1.4.1 333 | resolution: "@biomejs/cli-linux-x64@npm:1.4.1" 334 | conditions: os=linux & cpu=x64 335 | languageName: node 336 | linkType: hard 337 | 338 | "@biomejs/cli-win32-arm64@npm:1.4.1": 339 | version: 1.4.1 340 | resolution: "@biomejs/cli-win32-arm64@npm:1.4.1" 341 | conditions: os=win32 & cpu=arm64 342 | languageName: node 343 | linkType: hard 344 | 345 | "@biomejs/cli-win32-x64@npm:1.4.1": 346 | version: 1.4.1 347 | resolution: "@biomejs/cli-win32-x64@npm:1.4.1" 348 | conditions: os=win32 & cpu=x64 349 | languageName: node 350 | linkType: hard 351 | 352 | "@cloudflare/workerd-darwin-64@npm:1.20230922.0": 353 | version: 1.20230922.0 354 | resolution: "@cloudflare/workerd-darwin-64@npm:1.20230922.0" 355 | conditions: os=darwin & cpu=x64 356 | languageName: node 357 | linkType: hard 358 | 359 | "@cloudflare/workerd-darwin-arm64@npm:1.20230922.0": 360 | version: 1.20230922.0 361 | resolution: "@cloudflare/workerd-darwin-arm64@npm:1.20230922.0" 362 | conditions: os=darwin & cpu=arm64 363 | languageName: node 364 | linkType: hard 365 | 366 | "@cloudflare/workerd-linux-64@npm:1.20230922.0": 367 | version: 1.20230922.0 368 | resolution: "@cloudflare/workerd-linux-64@npm:1.20230922.0" 369 | conditions: os=linux & cpu=x64 370 | languageName: node 371 | linkType: hard 372 | 373 | "@cloudflare/workerd-linux-arm64@npm:1.20230922.0": 374 | version: 1.20230922.0 375 | resolution: "@cloudflare/workerd-linux-arm64@npm:1.20230922.0" 376 | conditions: os=linux & cpu=arm64 377 | languageName: node 378 | linkType: hard 379 | 380 | "@cloudflare/workerd-windows-64@npm:1.20230922.0": 381 | version: 1.20230922.0 382 | resolution: "@cloudflare/workerd-windows-64@npm:1.20230922.0" 383 | conditions: os=win32 & cpu=x64 384 | languageName: node 385 | linkType: hard 386 | 387 | "@cloudflare/workers-types@npm:4.20230922.0": 388 | version: 4.20230922.0 389 | resolution: "@cloudflare/workers-types@npm:4.20230922.0" 390 | checksum: fc2c741f956f62386d223d20d9c14904a6f71d10aa247a85c91506e05ae7ad109d2502824adffaaf5b0ac2289f6bb68326ed54d1e84a134a015728bae9e11444 391 | languageName: node 392 | linkType: hard 393 | 394 | "@esbuild/android-arm64@npm:0.18.20": 395 | version: 0.18.20 396 | resolution: "@esbuild/android-arm64@npm:0.18.20" 397 | conditions: os=android & cpu=arm64 398 | languageName: node 399 | linkType: hard 400 | 401 | "@esbuild/android-arm64@npm:0.19.4": 402 | version: 0.19.4 403 | resolution: "@esbuild/android-arm64@npm:0.19.4" 404 | conditions: os=android & cpu=arm64 405 | languageName: node 406 | linkType: hard 407 | 408 | "@esbuild/android-arm@npm:0.18.20": 409 | version: 0.18.20 410 | resolution: "@esbuild/android-arm@npm:0.18.20" 411 | conditions: os=android & cpu=arm 412 | languageName: node 413 | linkType: hard 414 | 415 | "@esbuild/android-arm@npm:0.19.4": 416 | version: 0.19.4 417 | resolution: "@esbuild/android-arm@npm:0.19.4" 418 | conditions: os=android & cpu=arm 419 | languageName: node 420 | linkType: hard 421 | 422 | "@esbuild/android-x64@npm:0.18.20": 423 | version: 0.18.20 424 | resolution: "@esbuild/android-x64@npm:0.18.20" 425 | conditions: os=android & cpu=x64 426 | languageName: node 427 | linkType: hard 428 | 429 | "@esbuild/android-x64@npm:0.19.4": 430 | version: 0.19.4 431 | resolution: "@esbuild/android-x64@npm:0.19.4" 432 | conditions: os=android & cpu=x64 433 | languageName: node 434 | linkType: hard 435 | 436 | "@esbuild/darwin-arm64@npm:0.18.20": 437 | version: 0.18.20 438 | resolution: "@esbuild/darwin-arm64@npm:0.18.20" 439 | conditions: os=darwin & cpu=arm64 440 | languageName: node 441 | linkType: hard 442 | 443 | "@esbuild/darwin-arm64@npm:0.19.4": 444 | version: 0.19.4 445 | resolution: "@esbuild/darwin-arm64@npm:0.19.4" 446 | conditions: os=darwin & cpu=arm64 447 | languageName: node 448 | linkType: hard 449 | 450 | "@esbuild/darwin-x64@npm:0.18.20": 451 | version: 0.18.20 452 | resolution: "@esbuild/darwin-x64@npm:0.18.20" 453 | conditions: os=darwin & cpu=x64 454 | languageName: node 455 | linkType: hard 456 | 457 | "@esbuild/darwin-x64@npm:0.19.4": 458 | version: 0.19.4 459 | resolution: "@esbuild/darwin-x64@npm:0.19.4" 460 | conditions: os=darwin & cpu=x64 461 | languageName: node 462 | linkType: hard 463 | 464 | "@esbuild/freebsd-arm64@npm:0.18.20": 465 | version: 0.18.20 466 | resolution: "@esbuild/freebsd-arm64@npm:0.18.20" 467 | conditions: os=freebsd & cpu=arm64 468 | languageName: node 469 | linkType: hard 470 | 471 | "@esbuild/freebsd-arm64@npm:0.19.4": 472 | version: 0.19.4 473 | resolution: "@esbuild/freebsd-arm64@npm:0.19.4" 474 | conditions: os=freebsd & cpu=arm64 475 | languageName: node 476 | linkType: hard 477 | 478 | "@esbuild/freebsd-x64@npm:0.18.20": 479 | version: 0.18.20 480 | resolution: "@esbuild/freebsd-x64@npm:0.18.20" 481 | conditions: os=freebsd & cpu=x64 482 | languageName: node 483 | linkType: hard 484 | 485 | "@esbuild/freebsd-x64@npm:0.19.4": 486 | version: 0.19.4 487 | resolution: "@esbuild/freebsd-x64@npm:0.19.4" 488 | conditions: os=freebsd & cpu=x64 489 | languageName: node 490 | linkType: hard 491 | 492 | "@esbuild/linux-arm64@npm:0.18.20": 493 | version: 0.18.20 494 | resolution: "@esbuild/linux-arm64@npm:0.18.20" 495 | conditions: os=linux & cpu=arm64 496 | languageName: node 497 | linkType: hard 498 | 499 | "@esbuild/linux-arm64@npm:0.19.4": 500 | version: 0.19.4 501 | resolution: "@esbuild/linux-arm64@npm:0.19.4" 502 | conditions: os=linux & cpu=arm64 503 | languageName: node 504 | linkType: hard 505 | 506 | "@esbuild/linux-arm@npm:0.18.20": 507 | version: 0.18.20 508 | resolution: "@esbuild/linux-arm@npm:0.18.20" 509 | conditions: os=linux & cpu=arm 510 | languageName: node 511 | linkType: hard 512 | 513 | "@esbuild/linux-arm@npm:0.19.4": 514 | version: 0.19.4 515 | resolution: "@esbuild/linux-arm@npm:0.19.4" 516 | conditions: os=linux & cpu=arm 517 | languageName: node 518 | linkType: hard 519 | 520 | "@esbuild/linux-ia32@npm:0.18.20": 521 | version: 0.18.20 522 | resolution: "@esbuild/linux-ia32@npm:0.18.20" 523 | conditions: os=linux & cpu=ia32 524 | languageName: node 525 | linkType: hard 526 | 527 | "@esbuild/linux-ia32@npm:0.19.4": 528 | version: 0.19.4 529 | resolution: "@esbuild/linux-ia32@npm:0.19.4" 530 | conditions: os=linux & cpu=ia32 531 | languageName: node 532 | linkType: hard 533 | 534 | "@esbuild/linux-loong64@npm:0.18.20": 535 | version: 0.18.20 536 | resolution: "@esbuild/linux-loong64@npm:0.18.20" 537 | conditions: os=linux & cpu=loong64 538 | languageName: node 539 | linkType: hard 540 | 541 | "@esbuild/linux-loong64@npm:0.19.4": 542 | version: 0.19.4 543 | resolution: "@esbuild/linux-loong64@npm:0.19.4" 544 | conditions: os=linux & cpu=loong64 545 | languageName: node 546 | linkType: hard 547 | 548 | "@esbuild/linux-mips64el@npm:0.18.20": 549 | version: 0.18.20 550 | resolution: "@esbuild/linux-mips64el@npm:0.18.20" 551 | conditions: os=linux & cpu=mips64el 552 | languageName: node 553 | linkType: hard 554 | 555 | "@esbuild/linux-mips64el@npm:0.19.4": 556 | version: 0.19.4 557 | resolution: "@esbuild/linux-mips64el@npm:0.19.4" 558 | conditions: os=linux & cpu=mips64el 559 | languageName: node 560 | linkType: hard 561 | 562 | "@esbuild/linux-ppc64@npm:0.18.20": 563 | version: 0.18.20 564 | resolution: "@esbuild/linux-ppc64@npm:0.18.20" 565 | conditions: os=linux & cpu=ppc64 566 | languageName: node 567 | linkType: hard 568 | 569 | "@esbuild/linux-ppc64@npm:0.19.4": 570 | version: 0.19.4 571 | resolution: "@esbuild/linux-ppc64@npm:0.19.4" 572 | conditions: os=linux & cpu=ppc64 573 | languageName: node 574 | linkType: hard 575 | 576 | "@esbuild/linux-riscv64@npm:0.18.20": 577 | version: 0.18.20 578 | resolution: "@esbuild/linux-riscv64@npm:0.18.20" 579 | conditions: os=linux & cpu=riscv64 580 | languageName: node 581 | linkType: hard 582 | 583 | "@esbuild/linux-riscv64@npm:0.19.4": 584 | version: 0.19.4 585 | resolution: "@esbuild/linux-riscv64@npm:0.19.4" 586 | conditions: os=linux & cpu=riscv64 587 | languageName: node 588 | linkType: hard 589 | 590 | "@esbuild/linux-s390x@npm:0.18.20": 591 | version: 0.18.20 592 | resolution: "@esbuild/linux-s390x@npm:0.18.20" 593 | conditions: os=linux & cpu=s390x 594 | languageName: node 595 | linkType: hard 596 | 597 | "@esbuild/linux-s390x@npm:0.19.4": 598 | version: 0.19.4 599 | resolution: "@esbuild/linux-s390x@npm:0.19.4" 600 | conditions: os=linux & cpu=s390x 601 | languageName: node 602 | linkType: hard 603 | 604 | "@esbuild/linux-x64@npm:0.18.20": 605 | version: 0.18.20 606 | resolution: "@esbuild/linux-x64@npm:0.18.20" 607 | conditions: os=linux & cpu=x64 608 | languageName: node 609 | linkType: hard 610 | 611 | "@esbuild/linux-x64@npm:0.19.4": 612 | version: 0.19.4 613 | resolution: "@esbuild/linux-x64@npm:0.19.4" 614 | conditions: os=linux & cpu=x64 615 | languageName: node 616 | linkType: hard 617 | 618 | "@esbuild/netbsd-x64@npm:0.18.20": 619 | version: 0.18.20 620 | resolution: "@esbuild/netbsd-x64@npm:0.18.20" 621 | conditions: os=netbsd & cpu=x64 622 | languageName: node 623 | linkType: hard 624 | 625 | "@esbuild/netbsd-x64@npm:0.19.4": 626 | version: 0.19.4 627 | resolution: "@esbuild/netbsd-x64@npm:0.19.4" 628 | conditions: os=netbsd & cpu=x64 629 | languageName: node 630 | linkType: hard 631 | 632 | "@esbuild/openbsd-x64@npm:0.18.20": 633 | version: 0.18.20 634 | resolution: "@esbuild/openbsd-x64@npm:0.18.20" 635 | conditions: os=openbsd & cpu=x64 636 | languageName: node 637 | linkType: hard 638 | 639 | "@esbuild/openbsd-x64@npm:0.19.4": 640 | version: 0.19.4 641 | resolution: "@esbuild/openbsd-x64@npm:0.19.4" 642 | conditions: os=openbsd & cpu=x64 643 | languageName: node 644 | linkType: hard 645 | 646 | "@esbuild/sunos-x64@npm:0.18.20": 647 | version: 0.18.20 648 | resolution: "@esbuild/sunos-x64@npm:0.18.20" 649 | conditions: os=sunos & cpu=x64 650 | languageName: node 651 | linkType: hard 652 | 653 | "@esbuild/sunos-x64@npm:0.19.4": 654 | version: 0.19.4 655 | resolution: "@esbuild/sunos-x64@npm:0.19.4" 656 | conditions: os=sunos & cpu=x64 657 | languageName: node 658 | linkType: hard 659 | 660 | "@esbuild/win32-arm64@npm:0.18.20": 661 | version: 0.18.20 662 | resolution: "@esbuild/win32-arm64@npm:0.18.20" 663 | conditions: os=win32 & cpu=arm64 664 | languageName: node 665 | linkType: hard 666 | 667 | "@esbuild/win32-arm64@npm:0.19.4": 668 | version: 0.19.4 669 | resolution: "@esbuild/win32-arm64@npm:0.19.4" 670 | conditions: os=win32 & cpu=arm64 671 | languageName: node 672 | linkType: hard 673 | 674 | "@esbuild/win32-ia32@npm:0.18.20": 675 | version: 0.18.20 676 | resolution: "@esbuild/win32-ia32@npm:0.18.20" 677 | conditions: os=win32 & cpu=ia32 678 | languageName: node 679 | linkType: hard 680 | 681 | "@esbuild/win32-ia32@npm:0.19.4": 682 | version: 0.19.4 683 | resolution: "@esbuild/win32-ia32@npm:0.19.4" 684 | conditions: os=win32 & cpu=ia32 685 | languageName: node 686 | linkType: hard 687 | 688 | "@esbuild/win32-x64@npm:0.18.20": 689 | version: 0.18.20 690 | resolution: "@esbuild/win32-x64@npm:0.18.20" 691 | conditions: os=win32 & cpu=x64 692 | languageName: node 693 | linkType: hard 694 | 695 | "@esbuild/win32-x64@npm:0.19.4": 696 | version: 0.19.4 697 | resolution: "@esbuild/win32-x64@npm:0.19.4" 698 | conditions: os=win32 & cpu=x64 699 | languageName: node 700 | linkType: hard 701 | 702 | "@fastify/busboy@npm:^2.0.0": 703 | version: 2.1.0 704 | resolution: "@fastify/busboy@npm:2.1.0" 705 | checksum: 7bb641080aac7cf01d88749ad331af10ba9ec3713ec07cabbe833908c75df21bd56249bb6173bdec07f5a41896b21e3689316f86684c06635da45f91ff4565a2 706 | languageName: node 707 | linkType: hard 708 | 709 | "@floating-ui/core@npm:^1.0.0": 710 | version: 1.6.0 711 | resolution: "@floating-ui/core@npm:1.6.0" 712 | dependencies: 713 | "@floating-ui/utils": "npm:^0.2.1" 714 | checksum: 667a68036f7dd5ed19442c7792a6002ca02d1799221c4396691bbe0b6008b48f6ccad581225e81fa266bb91232f6c66838a5f825f554217e1ec886178b93381b 715 | languageName: node 716 | linkType: hard 717 | 718 | "@floating-ui/dom@npm:^1.6.1": 719 | version: 1.6.3 720 | resolution: "@floating-ui/dom@npm:1.6.3" 721 | dependencies: 722 | "@floating-ui/core": "npm:^1.0.0" 723 | "@floating-ui/utils": "npm:^0.2.0" 724 | checksum: d6cac10877918ce5a8d1a24b21738d2eb130a0191043d7c0dd43bccac507844d3b4dc5d4107d3891d82f6007945ca8fb4207a1252506e91c37e211f0f73cf77e 725 | languageName: node 726 | linkType: hard 727 | 728 | "@floating-ui/react-dom@npm:^2.0.0": 729 | version: 2.0.8 730 | resolution: "@floating-ui/react-dom@npm:2.0.8" 731 | dependencies: 732 | "@floating-ui/dom": "npm:^1.6.1" 733 | peerDependencies: 734 | react: ">=16.8.0" 735 | react-dom: ">=16.8.0" 736 | checksum: 4d87451e2dcc54b4753a0d81181036e47821cfd0d4c23f7e9c31590c7c91fb15fb0a5a458969a5ddabd61601eca5875ebd4e40bff37cee31f373b8f1ccc64518 737 | languageName: node 738 | linkType: hard 739 | 740 | "@floating-ui/utils@npm:^0.2.0, @floating-ui/utils@npm:^0.2.1": 741 | version: 0.2.1 742 | resolution: "@floating-ui/utils@npm:0.2.1" 743 | checksum: ee77756712cf5b000c6bacf11992ffb364f3ea2d0d51cc45197a7e646a17aeb86ea4b192c0b42f3fbb29487aee918a565e84f710b8c3645827767f406a6b4cc9 744 | languageName: node 745 | linkType: hard 746 | 747 | "@isaacs/cliui@npm:^8.0.2": 748 | version: 8.0.2 749 | resolution: "@isaacs/cliui@npm:8.0.2" 750 | dependencies: 751 | string-width: "npm:^5.1.2" 752 | string-width-cjs: "npm:string-width@^4.2.0" 753 | strip-ansi: "npm:^7.0.1" 754 | strip-ansi-cjs: "npm:strip-ansi@^6.0.1" 755 | wrap-ansi: "npm:^8.1.0" 756 | wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" 757 | checksum: b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e 758 | languageName: node 759 | linkType: hard 760 | 761 | "@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": 762 | version: 0.3.3 763 | resolution: "@jridgewell/gen-mapping@npm:0.3.3" 764 | dependencies: 765 | "@jridgewell/set-array": "npm:^1.0.1" 766 | "@jridgewell/sourcemap-codec": "npm:^1.4.10" 767 | "@jridgewell/trace-mapping": "npm:^0.3.9" 768 | checksum: 376fc11cf5a967318ba3ddd9d8e91be528eab6af66810a713c49b0c3f8dc67e9949452c51c38ab1b19aa618fb5e8594da5a249977e26b1e7fea1ee5a1fcacc74 769 | languageName: node 770 | linkType: hard 771 | 772 | "@jridgewell/resolve-uri@npm:^3.1.0": 773 | version: 3.1.1 774 | resolution: "@jridgewell/resolve-uri@npm:3.1.1" 775 | checksum: 0dbc9e29bc640bbbdc5b9876d2859c69042bfcf1423c1e6421bcca53e826660bff4e41c7d4bcb8dbea696404231a6f902f76ba41835d049e20f2dd6cffb713bf 776 | languageName: node 777 | linkType: hard 778 | 779 | "@jridgewell/set-array@npm:^1.0.1": 780 | version: 1.1.2 781 | resolution: "@jridgewell/set-array@npm:1.1.2" 782 | checksum: bc7ab4c4c00470de4e7562ecac3c0c84f53e7ee8a711e546d67c47da7febe7c45cd67d4d84ee3c9b2c05ae8e872656cdded8a707a283d30bd54fbc65aef821ab 783 | languageName: node 784 | linkType: hard 785 | 786 | "@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": 787 | version: 1.4.15 788 | resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" 789 | checksum: 0c6b5ae663087558039052a626d2d7ed5208da36cfd707dcc5cea4a07cfc918248403dcb5989a8f7afaf245ce0573b7cc6fd94c4a30453bd10e44d9363940ba5 790 | languageName: node 791 | linkType: hard 792 | 793 | "@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": 794 | version: 0.3.22 795 | resolution: "@jridgewell/trace-mapping@npm:0.3.22" 796 | dependencies: 797 | "@jridgewell/resolve-uri": "npm:^3.1.0" 798 | "@jridgewell/sourcemap-codec": "npm:^1.4.14" 799 | checksum: 18cf19f88e2792c1c91515f2b629aae05f3cdbb2e60c3886e16e80725234ce26dd10144c4981c05d9366e7094498c0b4fe5c1a89f4a730d7376a4ba4af448149 800 | languageName: node 801 | linkType: hard 802 | 803 | "@npmcli/agent@npm:^2.0.0": 804 | version: 2.2.1 805 | resolution: "@npmcli/agent@npm:2.2.1" 806 | dependencies: 807 | agent-base: "npm:^7.1.0" 808 | http-proxy-agent: "npm:^7.0.0" 809 | https-proxy-agent: "npm:^7.0.1" 810 | lru-cache: "npm:^10.0.1" 811 | socks-proxy-agent: "npm:^8.0.1" 812 | checksum: 38ee5cbe8f3cde13be916e717bfc54fd1a7605c07af056369ff894e244c221e0b56b08ca5213457477f9bc15bca9e729d51a4788829b5c3cf296b3c996147f76 813 | languageName: node 814 | linkType: hard 815 | 816 | "@npmcli/fs@npm:^3.1.0": 817 | version: 3.1.0 818 | resolution: "@npmcli/fs@npm:3.1.0" 819 | dependencies: 820 | semver: "npm:^7.3.5" 821 | checksum: 162b4a0b8705cd6f5c2470b851d1dc6cd228c86d2170e1769d738c1fbb69a87160901411c3c035331e9e99db72f1f1099a8b734bf1637cc32b9a5be1660e4e1e 822 | languageName: node 823 | linkType: hard 824 | 825 | "@pkgjs/parseargs@npm:^0.11.0": 826 | version: 0.11.0 827 | resolution: "@pkgjs/parseargs@npm:0.11.0" 828 | checksum: 5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd 829 | languageName: node 830 | linkType: hard 831 | 832 | "@radix-ui/number@npm:1.0.1": 833 | version: 1.0.1 834 | resolution: "@radix-ui/number@npm:1.0.1" 835 | dependencies: 836 | "@babel/runtime": "npm:^7.13.10" 837 | checksum: 42e4870cd14459da6da03e43c7507dc4c807ed787a87bda52912a0d1d6d5013326b697c18c9625fc6a2cf0af2b45d9c86747985b45358fd92ab646b983978e3c 838 | languageName: node 839 | linkType: hard 840 | 841 | "@radix-ui/primitive@npm:1.0.1": 842 | version: 1.0.1 843 | resolution: "@radix-ui/primitive@npm:1.0.1" 844 | dependencies: 845 | "@babel/runtime": "npm:^7.13.10" 846 | checksum: 912216455537db3ca77f3e7f70174fb2b454fbd4a37a0acb7cfadad9ab6131abdfb787472242574460a3c301edf45738340cc84f6717982710082840fde7d916 847 | languageName: node 848 | linkType: hard 849 | 850 | "@radix-ui/react-alert-dialog@npm:^1.0.0": 851 | version: 1.0.5 852 | resolution: "@radix-ui/react-alert-dialog@npm:1.0.5" 853 | dependencies: 854 | "@babel/runtime": "npm:^7.13.10" 855 | "@radix-ui/primitive": "npm:1.0.1" 856 | "@radix-ui/react-compose-refs": "npm:1.0.1" 857 | "@radix-ui/react-context": "npm:1.0.1" 858 | "@radix-ui/react-dialog": "npm:1.0.5" 859 | "@radix-ui/react-primitive": "npm:1.0.3" 860 | "@radix-ui/react-slot": "npm:1.0.2" 861 | peerDependencies: 862 | "@types/react": "*" 863 | "@types/react-dom": "*" 864 | react: ^16.8 || ^17.0 || ^18.0 865 | react-dom: ^16.8 || ^17.0 || ^18.0 866 | peerDependenciesMeta: 867 | "@types/react": 868 | optional: true 869 | "@types/react-dom": 870 | optional: true 871 | checksum: 73854a1011b07a50261a12ce33c4b9d6585603e731a2ceffc7a4d2b8c795631716fda8b8006a813648e247d17abbaf290a419a935ae4cd70c83c3c70a34ce9f4 872 | languageName: node 873 | linkType: hard 874 | 875 | "@radix-ui/react-arrow@npm:1.0.3": 876 | version: 1.0.3 877 | resolution: "@radix-ui/react-arrow@npm:1.0.3" 878 | dependencies: 879 | "@babel/runtime": "npm:^7.13.10" 880 | "@radix-ui/react-primitive": "npm:1.0.3" 881 | peerDependencies: 882 | "@types/react": "*" 883 | "@types/react-dom": "*" 884 | react: ^16.8 || ^17.0 || ^18.0 885 | react-dom: ^16.8 || ^17.0 || ^18.0 886 | peerDependenciesMeta: 887 | "@types/react": 888 | optional: true 889 | "@types/react-dom": 890 | optional: true 891 | checksum: c931f6d7e0bac50fd1654a0303a303aff74a68a13a33a851a43a7c88677b53a92ca6557920b9105144a3002f899ce888437d20ddd7803a5c716edac99587626d 892 | languageName: node 893 | linkType: hard 894 | 895 | "@radix-ui/react-collection@npm:1.0.3": 896 | version: 1.0.3 897 | resolution: "@radix-ui/react-collection@npm:1.0.3" 898 | dependencies: 899 | "@babel/runtime": "npm:^7.13.10" 900 | "@radix-ui/react-compose-refs": "npm:1.0.1" 901 | "@radix-ui/react-context": "npm:1.0.1" 902 | "@radix-ui/react-primitive": "npm:1.0.3" 903 | "@radix-ui/react-slot": "npm:1.0.2" 904 | peerDependencies: 905 | "@types/react": "*" 906 | "@types/react-dom": "*" 907 | react: ^16.8 || ^17.0 || ^18.0 908 | react-dom: ^16.8 || ^17.0 || ^18.0 909 | peerDependenciesMeta: 910 | "@types/react": 911 | optional: true 912 | "@types/react-dom": 913 | optional: true 914 | checksum: cefa56383d7451ca79e4bd5a29aaeef6c205a04297213efd149aaead82fc8cde4fb8298e20e6b3613e5696e43f814fb4489805428f6604834fb31f73c6725fa8 915 | languageName: node 916 | linkType: hard 917 | 918 | "@radix-ui/react-compose-refs@npm:1.0.1": 919 | version: 1.0.1 920 | resolution: "@radix-ui/react-compose-refs@npm:1.0.1" 921 | dependencies: 922 | "@babel/runtime": "npm:^7.13.10" 923 | peerDependencies: 924 | "@types/react": "*" 925 | react: ^16.8 || ^17.0 || ^18.0 926 | peerDependenciesMeta: 927 | "@types/react": 928 | optional: true 929 | checksum: be06f8dab35b5a1bffa7a5982fb26218ddade1acb751288333e3b89d7b4a7dfb5a6371be83876dac0ec2ebe0866d295e8618b778608e1965342986ea448040ec 930 | languageName: node 931 | linkType: hard 932 | 933 | "@radix-ui/react-context-menu@npm:^2.1.5": 934 | version: 2.1.5 935 | resolution: "@radix-ui/react-context-menu@npm:2.1.5" 936 | dependencies: 937 | "@babel/runtime": "npm:^7.13.10" 938 | "@radix-ui/primitive": "npm:1.0.1" 939 | "@radix-ui/react-context": "npm:1.0.1" 940 | "@radix-ui/react-menu": "npm:2.0.6" 941 | "@radix-ui/react-primitive": "npm:1.0.3" 942 | "@radix-ui/react-use-callback-ref": "npm:1.0.1" 943 | "@radix-ui/react-use-controllable-state": "npm:1.0.1" 944 | peerDependencies: 945 | "@types/react": "*" 946 | "@types/react-dom": "*" 947 | react: ^16.8 || ^17.0 || ^18.0 948 | react-dom: ^16.8 || ^17.0 || ^18.0 949 | peerDependenciesMeta: 950 | "@types/react": 951 | optional: true 952 | "@types/react-dom": 953 | optional: true 954 | checksum: 00b8b377f9c710ea83cc6e9bbc9a6a8614bde9df120ed6eba5dd766d1a3f4068b739a364913e8bc288ff765e0e351edf2a975854d4f0d1c9277fb5b0978a8c76 955 | languageName: node 956 | linkType: hard 957 | 958 | "@radix-ui/react-context@npm:1.0.1": 959 | version: 1.0.1 960 | resolution: "@radix-ui/react-context@npm:1.0.1" 961 | dependencies: 962 | "@babel/runtime": "npm:^7.13.10" 963 | peerDependencies: 964 | "@types/react": "*" 965 | react: ^16.8 || ^17.0 || ^18.0 966 | peerDependenciesMeta: 967 | "@types/react": 968 | optional: true 969 | checksum: 3de5761b32cc70cd61715527f29d8c699c01ab28c195ced972ccbc7025763a373a68f18c9f948c7a7b922e469fd2df7fee5f7536e3f7bad44ffc06d959359333 970 | languageName: node 971 | linkType: hard 972 | 973 | "@radix-ui/react-dialog@npm:1.0.5, @radix-ui/react-dialog@npm:^1.0.5": 974 | version: 1.0.5 975 | resolution: "@radix-ui/react-dialog@npm:1.0.5" 976 | dependencies: 977 | "@babel/runtime": "npm:^7.13.10" 978 | "@radix-ui/primitive": "npm:1.0.1" 979 | "@radix-ui/react-compose-refs": "npm:1.0.1" 980 | "@radix-ui/react-context": "npm:1.0.1" 981 | "@radix-ui/react-dismissable-layer": "npm:1.0.5" 982 | "@radix-ui/react-focus-guards": "npm:1.0.1" 983 | "@radix-ui/react-focus-scope": "npm:1.0.4" 984 | "@radix-ui/react-id": "npm:1.0.1" 985 | "@radix-ui/react-portal": "npm:1.0.4" 986 | "@radix-ui/react-presence": "npm:1.0.1" 987 | "@radix-ui/react-primitive": "npm:1.0.3" 988 | "@radix-ui/react-slot": "npm:1.0.2" 989 | "@radix-ui/react-use-controllable-state": "npm:1.0.1" 990 | aria-hidden: "npm:^1.1.1" 991 | react-remove-scroll: "npm:2.5.5" 992 | peerDependencies: 993 | "@types/react": "*" 994 | "@types/react-dom": "*" 995 | react: ^16.8 || ^17.0 || ^18.0 996 | react-dom: ^16.8 || ^17.0 || ^18.0 997 | peerDependenciesMeta: 998 | "@types/react": 999 | optional: true 1000 | "@types/react-dom": 1001 | optional: true 1002 | checksum: c5b3069397379e79857a3203f3ead4d12d87736b59899f02a63e620a07dd1e6704e15523926cdf8e39afe1c945a7ff0f2533c5ea5be1e17c3114820300a51133 1003 | languageName: node 1004 | linkType: hard 1005 | 1006 | "@radix-ui/react-direction@npm:1.0.1": 1007 | version: 1.0.1 1008 | resolution: "@radix-ui/react-direction@npm:1.0.1" 1009 | dependencies: 1010 | "@babel/runtime": "npm:^7.13.10" 1011 | peerDependencies: 1012 | "@types/react": "*" 1013 | react: ^16.8 || ^17.0 || ^18.0 1014 | peerDependenciesMeta: 1015 | "@types/react": 1016 | optional: true 1017 | checksum: b1a45b4d1d5070ca3b5864b920f6c6210c962bdb519abb62b38b1baef9d06737dc3d8ecdb61860b7504a735235a539652f5977c7299ec021da84e6b0f64d988a 1018 | languageName: node 1019 | linkType: hard 1020 | 1021 | "@radix-ui/react-dismissable-layer@npm:1.0.4": 1022 | version: 1.0.4 1023 | resolution: "@radix-ui/react-dismissable-layer@npm:1.0.4" 1024 | dependencies: 1025 | "@babel/runtime": "npm:^7.13.10" 1026 | "@radix-ui/primitive": "npm:1.0.1" 1027 | "@radix-ui/react-compose-refs": "npm:1.0.1" 1028 | "@radix-ui/react-primitive": "npm:1.0.3" 1029 | "@radix-ui/react-use-callback-ref": "npm:1.0.1" 1030 | "@radix-ui/react-use-escape-keydown": "npm:1.0.3" 1031 | peerDependencies: 1032 | "@types/react": "*" 1033 | "@types/react-dom": "*" 1034 | react: ^16.8 || ^17.0 || ^18.0 1035 | react-dom: ^16.8 || ^17.0 || ^18.0 1036 | peerDependenciesMeta: 1037 | "@types/react": 1038 | optional: true 1039 | "@types/react-dom": 1040 | optional: true 1041 | checksum: a7b9695092cd4109a7b4a4a66b7f634c42d4f39aa0893621a8ee5e8bc90f8ae27e741df66db726c341a60d2115e3f813520fee1f5cc4fb05d77914b4ade3819f 1042 | languageName: node 1043 | linkType: hard 1044 | 1045 | "@radix-ui/react-dismissable-layer@npm:1.0.5": 1046 | version: 1.0.5 1047 | resolution: "@radix-ui/react-dismissable-layer@npm:1.0.5" 1048 | dependencies: 1049 | "@babel/runtime": "npm:^7.13.10" 1050 | "@radix-ui/primitive": "npm:1.0.1" 1051 | "@radix-ui/react-compose-refs": "npm:1.0.1" 1052 | "@radix-ui/react-primitive": "npm:1.0.3" 1053 | "@radix-ui/react-use-callback-ref": "npm:1.0.1" 1054 | "@radix-ui/react-use-escape-keydown": "npm:1.0.3" 1055 | peerDependencies: 1056 | "@types/react": "*" 1057 | "@types/react-dom": "*" 1058 | react: ^16.8 || ^17.0 || ^18.0 1059 | react-dom: ^16.8 || ^17.0 || ^18.0 1060 | peerDependenciesMeta: 1061 | "@types/react": 1062 | optional: true 1063 | "@types/react-dom": 1064 | optional: true 1065 | checksum: 7e4308867aecfb07b506330c1964d94a52247ab9453725613cd326762aa13e483423c250f107219c131b0449600eb8d1576ce3159c2b96e8c978f75e46062cb2 1066 | languageName: node 1067 | linkType: hard 1068 | 1069 | "@radix-ui/react-dropdown-menu@npm:^2.0.6": 1070 | version: 2.0.6 1071 | resolution: "@radix-ui/react-dropdown-menu@npm:2.0.6" 1072 | dependencies: 1073 | "@babel/runtime": "npm:^7.13.10" 1074 | "@radix-ui/primitive": "npm:1.0.1" 1075 | "@radix-ui/react-compose-refs": "npm:1.0.1" 1076 | "@radix-ui/react-context": "npm:1.0.1" 1077 | "@radix-ui/react-id": "npm:1.0.1" 1078 | "@radix-ui/react-menu": "npm:2.0.6" 1079 | "@radix-ui/react-primitive": "npm:1.0.3" 1080 | "@radix-ui/react-use-controllable-state": "npm:1.0.1" 1081 | peerDependencies: 1082 | "@types/react": "*" 1083 | "@types/react-dom": "*" 1084 | react: ^16.8 || ^17.0 || ^18.0 1085 | react-dom: ^16.8 || ^17.0 || ^18.0 1086 | peerDependenciesMeta: 1087 | "@types/react": 1088 | optional: true 1089 | "@types/react-dom": 1090 | optional: true 1091 | checksum: 525cab53547d2ce2904518b1f66b62179d656c57c8d6dd7dbe863cc05025d8bad535f44011e2735b07fc500579c3d64d89a9a39593d4c8f91f31052d75b729e1 1092 | languageName: node 1093 | linkType: hard 1094 | 1095 | "@radix-ui/react-focus-guards@npm:1.0.1": 1096 | version: 1.0.1 1097 | resolution: "@radix-ui/react-focus-guards@npm:1.0.1" 1098 | dependencies: 1099 | "@babel/runtime": "npm:^7.13.10" 1100 | peerDependencies: 1101 | "@types/react": "*" 1102 | react: ^16.8 || ^17.0 || ^18.0 1103 | peerDependenciesMeta: 1104 | "@types/react": 1105 | optional: true 1106 | checksum: d5fd4e5aa9d9a87c8ad490b3b4992d6f1d9eddf18e56df2a2bcf8744c4332b275d73377fd193df3e6ba0ad9608dc497709beca5c64de2b834d5f5350b3c9a272 1107 | languageName: node 1108 | linkType: hard 1109 | 1110 | "@radix-ui/react-focus-scope@npm:1.0.3": 1111 | version: 1.0.3 1112 | resolution: "@radix-ui/react-focus-scope@npm:1.0.3" 1113 | dependencies: 1114 | "@babel/runtime": "npm:^7.13.10" 1115 | "@radix-ui/react-compose-refs": "npm:1.0.1" 1116 | "@radix-ui/react-primitive": "npm:1.0.3" 1117 | "@radix-ui/react-use-callback-ref": "npm:1.0.1" 1118 | peerDependencies: 1119 | "@types/react": "*" 1120 | "@types/react-dom": "*" 1121 | react: ^16.8 || ^17.0 || ^18.0 1122 | react-dom: ^16.8 || ^17.0 || ^18.0 1123 | peerDependenciesMeta: 1124 | "@types/react": 1125 | optional: true 1126 | "@types/react-dom": 1127 | optional: true 1128 | checksum: bfff46919666c122f5b812ee427494ae8408c0eebee30337bd2ce0eedf539f0feaa242f790304ef9df15425b837010ffc6061ce467bedd2c5fd9373bee2b95da 1129 | languageName: node 1130 | linkType: hard 1131 | 1132 | "@radix-ui/react-focus-scope@npm:1.0.4": 1133 | version: 1.0.4 1134 | resolution: "@radix-ui/react-focus-scope@npm:1.0.4" 1135 | dependencies: 1136 | "@babel/runtime": "npm:^7.13.10" 1137 | "@radix-ui/react-compose-refs": "npm:1.0.1" 1138 | "@radix-ui/react-primitive": "npm:1.0.3" 1139 | "@radix-ui/react-use-callback-ref": "npm:1.0.1" 1140 | peerDependencies: 1141 | "@types/react": "*" 1142 | "@types/react-dom": "*" 1143 | react: ^16.8 || ^17.0 || ^18.0 1144 | react-dom: ^16.8 || ^17.0 || ^18.0 1145 | peerDependenciesMeta: 1146 | "@types/react": 1147 | optional: true 1148 | "@types/react-dom": 1149 | optional: true 1150 | checksum: 2fce0bafcab4e16cf4ed7560bda40654223f3d0add6b231e1c607433030c14e6249818b444b7b58ee7a6ff6bbf8e192c9c81d22c3a5c88c2daade9d1f881b5be 1151 | languageName: node 1152 | linkType: hard 1153 | 1154 | "@radix-ui/react-id@npm:1.0.1": 1155 | version: 1.0.1 1156 | resolution: "@radix-ui/react-id@npm:1.0.1" 1157 | dependencies: 1158 | "@babel/runtime": "npm:^7.13.10" 1159 | "@radix-ui/react-use-layout-effect": "npm:1.0.1" 1160 | peerDependencies: 1161 | "@types/react": "*" 1162 | react: ^16.8 || ^17.0 || ^18.0 1163 | peerDependenciesMeta: 1164 | "@types/react": 1165 | optional: true 1166 | checksum: e2859ca58bea171c956098ace7ecf615cf9432f58a118b779a14720746b3adcf0351c36c75de131548672d3cd290ca238198acbd33b88dc4706f98312e9317ad 1167 | languageName: node 1168 | linkType: hard 1169 | 1170 | "@radix-ui/react-menu@npm:2.0.6": 1171 | version: 2.0.6 1172 | resolution: "@radix-ui/react-menu@npm:2.0.6" 1173 | dependencies: 1174 | "@babel/runtime": "npm:^7.13.10" 1175 | "@radix-ui/primitive": "npm:1.0.1" 1176 | "@radix-ui/react-collection": "npm:1.0.3" 1177 | "@radix-ui/react-compose-refs": "npm:1.0.1" 1178 | "@radix-ui/react-context": "npm:1.0.1" 1179 | "@radix-ui/react-direction": "npm:1.0.1" 1180 | "@radix-ui/react-dismissable-layer": "npm:1.0.5" 1181 | "@radix-ui/react-focus-guards": "npm:1.0.1" 1182 | "@radix-ui/react-focus-scope": "npm:1.0.4" 1183 | "@radix-ui/react-id": "npm:1.0.1" 1184 | "@radix-ui/react-popper": "npm:1.1.3" 1185 | "@radix-ui/react-portal": "npm:1.0.4" 1186 | "@radix-ui/react-presence": "npm:1.0.1" 1187 | "@radix-ui/react-primitive": "npm:1.0.3" 1188 | "@radix-ui/react-roving-focus": "npm:1.0.4" 1189 | "@radix-ui/react-slot": "npm:1.0.2" 1190 | "@radix-ui/react-use-callback-ref": "npm:1.0.1" 1191 | aria-hidden: "npm:^1.1.1" 1192 | react-remove-scroll: "npm:2.5.5" 1193 | peerDependencies: 1194 | "@types/react": "*" 1195 | "@types/react-dom": "*" 1196 | react: ^16.8 || ^17.0 || ^18.0 1197 | react-dom: ^16.8 || ^17.0 || ^18.0 1198 | peerDependenciesMeta: 1199 | "@types/react": 1200 | optional: true 1201 | "@types/react-dom": 1202 | optional: true 1203 | checksum: 06926fa59cb8f5614f2e1a085ea1cbf09631ae28fb6e5d6e6d2a0a84d24979e3aca311cdb19dfdb254c1823ff85fd5250c29d4463f8f7622dd523e35df3fce1d 1204 | languageName: node 1205 | linkType: hard 1206 | 1207 | "@radix-ui/react-popover@npm:^1.0.7": 1208 | version: 1.0.7 1209 | resolution: "@radix-ui/react-popover@npm:1.0.7" 1210 | dependencies: 1211 | "@babel/runtime": "npm:^7.13.10" 1212 | "@radix-ui/primitive": "npm:1.0.1" 1213 | "@radix-ui/react-compose-refs": "npm:1.0.1" 1214 | "@radix-ui/react-context": "npm:1.0.1" 1215 | "@radix-ui/react-dismissable-layer": "npm:1.0.5" 1216 | "@radix-ui/react-focus-guards": "npm:1.0.1" 1217 | "@radix-ui/react-focus-scope": "npm:1.0.4" 1218 | "@radix-ui/react-id": "npm:1.0.1" 1219 | "@radix-ui/react-popper": "npm:1.1.3" 1220 | "@radix-ui/react-portal": "npm:1.0.4" 1221 | "@radix-ui/react-presence": "npm:1.0.1" 1222 | "@radix-ui/react-primitive": "npm:1.0.3" 1223 | "@radix-ui/react-slot": "npm:1.0.2" 1224 | "@radix-ui/react-use-controllable-state": "npm:1.0.1" 1225 | aria-hidden: "npm:^1.1.1" 1226 | react-remove-scroll: "npm:2.5.5" 1227 | peerDependencies: 1228 | "@types/react": "*" 1229 | "@types/react-dom": "*" 1230 | react: ^16.8 || ^17.0 || ^18.0 1231 | react-dom: ^16.8 || ^17.0 || ^18.0 1232 | peerDependenciesMeta: 1233 | "@types/react": 1234 | optional: true 1235 | "@types/react-dom": 1236 | optional: true 1237 | checksum: ed7abbd61df1e15d62072e214fafbdc4e31942e0ce49665f2045d8279944a0a37762bcd70a36389ed9e43c95797d5acb57f6f5ca5a15b688b1928cfc2b9ce196 1238 | languageName: node 1239 | linkType: hard 1240 | 1241 | "@radix-ui/react-popper@npm:1.1.2": 1242 | version: 1.1.2 1243 | resolution: "@radix-ui/react-popper@npm:1.1.2" 1244 | dependencies: 1245 | "@babel/runtime": "npm:^7.13.10" 1246 | "@floating-ui/react-dom": "npm:^2.0.0" 1247 | "@radix-ui/react-arrow": "npm:1.0.3" 1248 | "@radix-ui/react-compose-refs": "npm:1.0.1" 1249 | "@radix-ui/react-context": "npm:1.0.1" 1250 | "@radix-ui/react-primitive": "npm:1.0.3" 1251 | "@radix-ui/react-use-callback-ref": "npm:1.0.1" 1252 | "@radix-ui/react-use-layout-effect": "npm:1.0.1" 1253 | "@radix-ui/react-use-rect": "npm:1.0.1" 1254 | "@radix-ui/react-use-size": "npm:1.0.1" 1255 | "@radix-ui/rect": "npm:1.0.1" 1256 | peerDependencies: 1257 | "@types/react": "*" 1258 | "@types/react-dom": "*" 1259 | react: ^16.8 || ^17.0 || ^18.0 1260 | react-dom: ^16.8 || ^17.0 || ^18.0 1261 | peerDependenciesMeta: 1262 | "@types/react": 1263 | optional: true 1264 | "@types/react-dom": 1265 | optional: true 1266 | checksum: 4bd069b79f7046af2c0967b8e43f727cd09834cbd6df1e3d5a943c4f83428ff8b646882737fdf7593c22e261a1d13768a5c020138d79503862ae2e1729081bba 1267 | languageName: node 1268 | linkType: hard 1269 | 1270 | "@radix-ui/react-popper@npm:1.1.3": 1271 | version: 1.1.3 1272 | resolution: "@radix-ui/react-popper@npm:1.1.3" 1273 | dependencies: 1274 | "@babel/runtime": "npm:^7.13.10" 1275 | "@floating-ui/react-dom": "npm:^2.0.0" 1276 | "@radix-ui/react-arrow": "npm:1.0.3" 1277 | "@radix-ui/react-compose-refs": "npm:1.0.1" 1278 | "@radix-ui/react-context": "npm:1.0.1" 1279 | "@radix-ui/react-primitive": "npm:1.0.3" 1280 | "@radix-ui/react-use-callback-ref": "npm:1.0.1" 1281 | "@radix-ui/react-use-layout-effect": "npm:1.0.1" 1282 | "@radix-ui/react-use-rect": "npm:1.0.1" 1283 | "@radix-ui/react-use-size": "npm:1.0.1" 1284 | "@radix-ui/rect": "npm:1.0.1" 1285 | peerDependencies: 1286 | "@types/react": "*" 1287 | "@types/react-dom": "*" 1288 | react: ^16.8 || ^17.0 || ^18.0 1289 | react-dom: ^16.8 || ^17.0 || ^18.0 1290 | peerDependenciesMeta: 1291 | "@types/react": 1292 | optional: true 1293 | "@types/react-dom": 1294 | optional: true 1295 | checksum: a38c374ec65dd8d7c604af7151e96faec1743828d859dc4892e720c1803a7e1562add26aec2ddf2091defae4e15d989c028032ea481419e38c4693b3f12545c3 1296 | languageName: node 1297 | linkType: hard 1298 | 1299 | "@radix-ui/react-portal@npm:1.0.3": 1300 | version: 1.0.3 1301 | resolution: "@radix-ui/react-portal@npm:1.0.3" 1302 | dependencies: 1303 | "@babel/runtime": "npm:^7.13.10" 1304 | "@radix-ui/react-primitive": "npm:1.0.3" 1305 | peerDependencies: 1306 | "@types/react": "*" 1307 | "@types/react-dom": "*" 1308 | react: ^16.8 || ^17.0 || ^18.0 1309 | react-dom: ^16.8 || ^17.0 || ^18.0 1310 | peerDependenciesMeta: 1311 | "@types/react": 1312 | optional: true 1313 | "@types/react-dom": 1314 | optional: true 1315 | checksum: baf295bbbf09ead37b64ee1dc025a6a540960f5e60552766d78f6065504c67d4bcf49fad5e2073617d9a3011daafad625aa3bd1da7a886c704833b22a49e888f 1316 | languageName: node 1317 | linkType: hard 1318 | 1319 | "@radix-ui/react-portal@npm:1.0.4": 1320 | version: 1.0.4 1321 | resolution: "@radix-ui/react-portal@npm:1.0.4" 1322 | dependencies: 1323 | "@babel/runtime": "npm:^7.13.10" 1324 | "@radix-ui/react-primitive": "npm:1.0.3" 1325 | peerDependencies: 1326 | "@types/react": "*" 1327 | "@types/react-dom": "*" 1328 | react: ^16.8 || ^17.0 || ^18.0 1329 | react-dom: ^16.8 || ^17.0 || ^18.0 1330 | peerDependenciesMeta: 1331 | "@types/react": 1332 | optional: true 1333 | "@types/react-dom": 1334 | optional: true 1335 | checksum: fed32f8148b833fe852fb5e2f859979ffdf2fb9a9ef46583b9b52915d764ad36ba5c958a64e61d23395628ccc09d678229ee94cd112941e8fe2575021f820c29 1336 | languageName: node 1337 | linkType: hard 1338 | 1339 | "@radix-ui/react-presence@npm:1.0.1": 1340 | version: 1.0.1 1341 | resolution: "@radix-ui/react-presence@npm:1.0.1" 1342 | dependencies: 1343 | "@babel/runtime": "npm:^7.13.10" 1344 | "@radix-ui/react-compose-refs": "npm:1.0.1" 1345 | "@radix-ui/react-use-layout-effect": "npm:1.0.1" 1346 | peerDependencies: 1347 | "@types/react": "*" 1348 | "@types/react-dom": "*" 1349 | react: ^16.8 || ^17.0 || ^18.0 1350 | react-dom: ^16.8 || ^17.0 || ^18.0 1351 | peerDependenciesMeta: 1352 | "@types/react": 1353 | optional: true 1354 | "@types/react-dom": 1355 | optional: true 1356 | checksum: 90780618b265fe794a8f1ddaa5bfd3c71a1127fa79330a14d32722e6265b44452a9dd36efe4e769129d33e57f979f6b8713e2cbf2e2755326aa3b0f337185b6e 1357 | languageName: node 1358 | linkType: hard 1359 | 1360 | "@radix-ui/react-primitive@npm:1.0.3": 1361 | version: 1.0.3 1362 | resolution: "@radix-ui/react-primitive@npm:1.0.3" 1363 | dependencies: 1364 | "@babel/runtime": "npm:^7.13.10" 1365 | "@radix-ui/react-slot": "npm:1.0.2" 1366 | peerDependencies: 1367 | "@types/react": "*" 1368 | "@types/react-dom": "*" 1369 | react: ^16.8 || ^17.0 || ^18.0 1370 | react-dom: ^16.8 || ^17.0 || ^18.0 1371 | peerDependenciesMeta: 1372 | "@types/react": 1373 | optional: true 1374 | "@types/react-dom": 1375 | optional: true 1376 | checksum: 67a66ff8898a5e7739eda228ab6f5ce808858da1dce967014138d87e72b6bbfc93dc1467c706d98d1a2b93bf0b6e09233d1a24d31c78227b078444c1a69c42be 1377 | languageName: node 1378 | linkType: hard 1379 | 1380 | "@radix-ui/react-roving-focus@npm:1.0.4": 1381 | version: 1.0.4 1382 | resolution: "@radix-ui/react-roving-focus@npm:1.0.4" 1383 | dependencies: 1384 | "@babel/runtime": "npm:^7.13.10" 1385 | "@radix-ui/primitive": "npm:1.0.1" 1386 | "@radix-ui/react-collection": "npm:1.0.3" 1387 | "@radix-ui/react-compose-refs": "npm:1.0.1" 1388 | "@radix-ui/react-context": "npm:1.0.1" 1389 | "@radix-ui/react-direction": "npm:1.0.1" 1390 | "@radix-ui/react-id": "npm:1.0.1" 1391 | "@radix-ui/react-primitive": "npm:1.0.3" 1392 | "@radix-ui/react-use-callback-ref": "npm:1.0.1" 1393 | "@radix-ui/react-use-controllable-state": "npm:1.0.1" 1394 | peerDependencies: 1395 | "@types/react": "*" 1396 | "@types/react-dom": "*" 1397 | react: ^16.8 || ^17.0 || ^18.0 1398 | react-dom: ^16.8 || ^17.0 || ^18.0 1399 | peerDependenciesMeta: 1400 | "@types/react": 1401 | optional: true 1402 | "@types/react-dom": 1403 | optional: true 1404 | checksum: 61e3ddfd1647e64fba855434ff41e8e7ba707244fe8841f78c450fbdce525383b64259279475615d030dbf1625cbffd8eeebee72d91bf6978794f5dbcf887fc0 1405 | languageName: node 1406 | linkType: hard 1407 | 1408 | "@radix-ui/react-select@npm:^1.2.0": 1409 | version: 1.2.2 1410 | resolution: "@radix-ui/react-select@npm:1.2.2" 1411 | dependencies: 1412 | "@babel/runtime": "npm:^7.13.10" 1413 | "@radix-ui/number": "npm:1.0.1" 1414 | "@radix-ui/primitive": "npm:1.0.1" 1415 | "@radix-ui/react-collection": "npm:1.0.3" 1416 | "@radix-ui/react-compose-refs": "npm:1.0.1" 1417 | "@radix-ui/react-context": "npm:1.0.1" 1418 | "@radix-ui/react-direction": "npm:1.0.1" 1419 | "@radix-ui/react-dismissable-layer": "npm:1.0.4" 1420 | "@radix-ui/react-focus-guards": "npm:1.0.1" 1421 | "@radix-ui/react-focus-scope": "npm:1.0.3" 1422 | "@radix-ui/react-id": "npm:1.0.1" 1423 | "@radix-ui/react-popper": "npm:1.1.2" 1424 | "@radix-ui/react-portal": "npm:1.0.3" 1425 | "@radix-ui/react-primitive": "npm:1.0.3" 1426 | "@radix-ui/react-slot": "npm:1.0.2" 1427 | "@radix-ui/react-use-callback-ref": "npm:1.0.1" 1428 | "@radix-ui/react-use-controllable-state": "npm:1.0.1" 1429 | "@radix-ui/react-use-layout-effect": "npm:1.0.1" 1430 | "@radix-ui/react-use-previous": "npm:1.0.1" 1431 | "@radix-ui/react-visually-hidden": "npm:1.0.3" 1432 | aria-hidden: "npm:^1.1.1" 1433 | react-remove-scroll: "npm:2.5.5" 1434 | peerDependencies: 1435 | "@types/react": "*" 1436 | "@types/react-dom": "*" 1437 | react: ^16.8 || ^17.0 || ^18.0 1438 | react-dom: ^16.8 || ^17.0 || ^18.0 1439 | peerDependenciesMeta: 1440 | "@types/react": 1441 | optional: true 1442 | "@types/react-dom": 1443 | optional: true 1444 | checksum: 888fffa703a8f79b45c01d5f03ad9aae66250ddfff827bbba4f222c4d0720aa2f01a3e4b6bd80acabaf5e2fa7ad79de9e9dfd14831f7f4c24337d4d8dfb58ccc 1445 | languageName: node 1446 | linkType: hard 1447 | 1448 | "@radix-ui/react-slider@npm:^1.1.0": 1449 | version: 1.1.2 1450 | resolution: "@radix-ui/react-slider@npm:1.1.2" 1451 | dependencies: 1452 | "@babel/runtime": "npm:^7.13.10" 1453 | "@radix-ui/number": "npm:1.0.1" 1454 | "@radix-ui/primitive": "npm:1.0.1" 1455 | "@radix-ui/react-collection": "npm:1.0.3" 1456 | "@radix-ui/react-compose-refs": "npm:1.0.1" 1457 | "@radix-ui/react-context": "npm:1.0.1" 1458 | "@radix-ui/react-direction": "npm:1.0.1" 1459 | "@radix-ui/react-primitive": "npm:1.0.3" 1460 | "@radix-ui/react-use-controllable-state": "npm:1.0.1" 1461 | "@radix-ui/react-use-layout-effect": "npm:1.0.1" 1462 | "@radix-ui/react-use-previous": "npm:1.0.1" 1463 | "@radix-ui/react-use-size": "npm:1.0.1" 1464 | peerDependencies: 1465 | "@types/react": "*" 1466 | "@types/react-dom": "*" 1467 | react: ^16.8 || ^17.0 || ^18.0 1468 | react-dom: ^16.8 || ^17.0 || ^18.0 1469 | peerDependenciesMeta: 1470 | "@types/react": 1471 | optional: true 1472 | "@types/react-dom": 1473 | optional: true 1474 | checksum: 88d816887a1345c3ec5401734663196c46e80d49979b484531ad57182408505853f6b554d9b55d8fed318495d38bc51a1d1d7cc9147a35eac403272ad97acb19 1475 | languageName: node 1476 | linkType: hard 1477 | 1478 | "@radix-ui/react-slot@npm:1.0.2": 1479 | version: 1.0.2 1480 | resolution: "@radix-ui/react-slot@npm:1.0.2" 1481 | dependencies: 1482 | "@babel/runtime": "npm:^7.13.10" 1483 | "@radix-ui/react-compose-refs": "npm:1.0.1" 1484 | peerDependencies: 1485 | "@types/react": "*" 1486 | react: ^16.8 || ^17.0 || ^18.0 1487 | peerDependenciesMeta: 1488 | "@types/react": 1489 | optional: true 1490 | checksum: 3af6ea4891e6fa8091e666802adffe7718b3cd390a10fa9229a5f40f8efded9f3918ea01b046103d93923d41cc32119505ebb6bde76cad07a87b6cf4f2119347 1491 | languageName: node 1492 | linkType: hard 1493 | 1494 | "@radix-ui/react-toast@npm:^1.1.1": 1495 | version: 1.1.5 1496 | resolution: "@radix-ui/react-toast@npm:1.1.5" 1497 | dependencies: 1498 | "@babel/runtime": "npm:^7.13.10" 1499 | "@radix-ui/primitive": "npm:1.0.1" 1500 | "@radix-ui/react-collection": "npm:1.0.3" 1501 | "@radix-ui/react-compose-refs": "npm:1.0.1" 1502 | "@radix-ui/react-context": "npm:1.0.1" 1503 | "@radix-ui/react-dismissable-layer": "npm:1.0.5" 1504 | "@radix-ui/react-portal": "npm:1.0.4" 1505 | "@radix-ui/react-presence": "npm:1.0.1" 1506 | "@radix-ui/react-primitive": "npm:1.0.3" 1507 | "@radix-ui/react-use-callback-ref": "npm:1.0.1" 1508 | "@radix-ui/react-use-controllable-state": "npm:1.0.1" 1509 | "@radix-ui/react-use-layout-effect": "npm:1.0.1" 1510 | "@radix-ui/react-visually-hidden": "npm:1.0.3" 1511 | peerDependencies: 1512 | "@types/react": "*" 1513 | "@types/react-dom": "*" 1514 | react: ^16.8 || ^17.0 || ^18.0 1515 | react-dom: ^16.8 || ^17.0 || ^18.0 1516 | peerDependenciesMeta: 1517 | "@types/react": 1518 | optional: true 1519 | "@types/react-dom": 1520 | optional: true 1521 | checksum: 1263f1fd4b53f563c0eace84582ff0c82b515100230e35a17b95c44ad420a4e9c156be28787398d3a455d699292dde4dd23311e1d8a0c23ec36931ff6e5a6935 1522 | languageName: node 1523 | linkType: hard 1524 | 1525 | "@radix-ui/react-use-callback-ref@npm:1.0.1": 1526 | version: 1.0.1 1527 | resolution: "@radix-ui/react-use-callback-ref@npm:1.0.1" 1528 | dependencies: 1529 | "@babel/runtime": "npm:^7.13.10" 1530 | peerDependencies: 1531 | "@types/react": "*" 1532 | react: ^16.8 || ^17.0 || ^18.0 1533 | peerDependenciesMeta: 1534 | "@types/react": 1535 | optional: true 1536 | checksum: 331b432be1edc960ca148637ae6087220873ee828ceb13bd155926ef8f49e862812de5b379129f6aaefcd11be53715f3237e6caa9a33d9c0abfff43f3ba58938 1537 | languageName: node 1538 | linkType: hard 1539 | 1540 | "@radix-ui/react-use-controllable-state@npm:1.0.1": 1541 | version: 1.0.1 1542 | resolution: "@radix-ui/react-use-controllable-state@npm:1.0.1" 1543 | dependencies: 1544 | "@babel/runtime": "npm:^7.13.10" 1545 | "@radix-ui/react-use-callback-ref": "npm:1.0.1" 1546 | peerDependencies: 1547 | "@types/react": "*" 1548 | react: ^16.8 || ^17.0 || ^18.0 1549 | peerDependenciesMeta: 1550 | "@types/react": 1551 | optional: true 1552 | checksum: 29b069dbf09e48bca321af6272574ad0fc7283174e7d092731a10663fe00c0e6b4bde5e1b5ea67725fe48dcbe8026e7ff0d69d42891c62cbb9ca408498171fbe 1553 | languageName: node 1554 | linkType: hard 1555 | 1556 | "@radix-ui/react-use-escape-keydown@npm:1.0.3": 1557 | version: 1.0.3 1558 | resolution: "@radix-ui/react-use-escape-keydown@npm:1.0.3" 1559 | dependencies: 1560 | "@babel/runtime": "npm:^7.13.10" 1561 | "@radix-ui/react-use-callback-ref": "npm:1.0.1" 1562 | peerDependencies: 1563 | "@types/react": "*" 1564 | react: ^16.8 || ^17.0 || ^18.0 1565 | peerDependenciesMeta: 1566 | "@types/react": 1567 | optional: true 1568 | checksum: 3c94c78902dcb40b60083ee2184614f45c95a189178f52d89323b467bd04bcf5fdb1bc4d43debecd7f0b572c3843c7e04edbcb56f40a4b4b43936fb2770fb8ad 1569 | languageName: node 1570 | linkType: hard 1571 | 1572 | "@radix-ui/react-use-layout-effect@npm:1.0.1": 1573 | version: 1.0.1 1574 | resolution: "@radix-ui/react-use-layout-effect@npm:1.0.1" 1575 | dependencies: 1576 | "@babel/runtime": "npm:^7.13.10" 1577 | peerDependencies: 1578 | "@types/react": "*" 1579 | react: ^16.8 || ^17.0 || ^18.0 1580 | peerDependenciesMeta: 1581 | "@types/react": 1582 | optional: true 1583 | checksum: 13cd0c38395c5838bc9a18238020d3bcf67fb340039e6d1cbf438be1b91d64cf6900b78121f3dc9219faeb40dcc7b523ce0f17e4a41631655690e5a30a40886a 1584 | languageName: node 1585 | linkType: hard 1586 | 1587 | "@radix-ui/react-use-previous@npm:1.0.1": 1588 | version: 1.0.1 1589 | resolution: "@radix-ui/react-use-previous@npm:1.0.1" 1590 | dependencies: 1591 | "@babel/runtime": "npm:^7.13.10" 1592 | peerDependencies: 1593 | "@types/react": "*" 1594 | react: ^16.8 || ^17.0 || ^18.0 1595 | peerDependenciesMeta: 1596 | "@types/react": 1597 | optional: true 1598 | checksum: f5fbc602108668484a4ed506b7842482222d1d03094362e26abb7fdd593eee8794fc47d85b3524fb9d00884801c89a6eefd0bed0971eba1ec189c637b6afd398 1599 | languageName: node 1600 | linkType: hard 1601 | 1602 | "@radix-ui/react-use-rect@npm:1.0.1": 1603 | version: 1.0.1 1604 | resolution: "@radix-ui/react-use-rect@npm:1.0.1" 1605 | dependencies: 1606 | "@babel/runtime": "npm:^7.13.10" 1607 | "@radix-ui/rect": "npm:1.0.1" 1608 | peerDependencies: 1609 | "@types/react": "*" 1610 | react: ^16.8 || ^17.0 || ^18.0 1611 | peerDependenciesMeta: 1612 | "@types/react": 1613 | optional: true 1614 | checksum: 94c5ab31dfd3678c0cb77a30025e82b3a287577c1a8674b0d703a36d27434bc9c59790e0bebf57ed153f0b8e0d8c3b9675fc9787b9eac525a09abcda8fa9e7eb 1615 | languageName: node 1616 | linkType: hard 1617 | 1618 | "@radix-ui/react-use-size@npm:1.0.1": 1619 | version: 1.0.1 1620 | resolution: "@radix-ui/react-use-size@npm:1.0.1" 1621 | dependencies: 1622 | "@babel/runtime": "npm:^7.13.10" 1623 | "@radix-ui/react-use-layout-effect": "npm:1.0.1" 1624 | peerDependencies: 1625 | "@types/react": "*" 1626 | react: ^16.8 || ^17.0 || ^18.0 1627 | peerDependenciesMeta: 1628 | "@types/react": 1629 | optional: true 1630 | checksum: b109a4b3781781c4dc641a1173f0a6fcb0b0f7b2d7cdba5848a46070c9fb4e518909a46c20a3c2efbc78737c64859c59ead837f2940e8c8394d1c503ef58773b 1631 | languageName: node 1632 | linkType: hard 1633 | 1634 | "@radix-ui/react-visually-hidden@npm:1.0.3": 1635 | version: 1.0.3 1636 | resolution: "@radix-ui/react-visually-hidden@npm:1.0.3" 1637 | dependencies: 1638 | "@babel/runtime": "npm:^7.13.10" 1639 | "@radix-ui/react-primitive": "npm:1.0.3" 1640 | peerDependencies: 1641 | "@types/react": "*" 1642 | "@types/react-dom": "*" 1643 | react: ^16.8 || ^17.0 || ^18.0 1644 | react-dom: ^16.8 || ^17.0 || ^18.0 1645 | peerDependenciesMeta: 1646 | "@types/react": 1647 | optional: true 1648 | "@types/react-dom": 1649 | optional: true 1650 | checksum: 0cbc12c2156b3fa0e40090cafd8525ce84c16a6b5a038a8e8fc7cbb16ed6da9ab369593962c57a18c41a16ec8713e0195c68ea34072ef1ca254ed4d4c0770bb4 1651 | languageName: node 1652 | linkType: hard 1653 | 1654 | "@radix-ui/rect@npm:1.0.1": 1655 | version: 1.0.1 1656 | resolution: "@radix-ui/rect@npm:1.0.1" 1657 | dependencies: 1658 | "@babel/runtime": "npm:^7.13.10" 1659 | checksum: 4c5159661340acc31b11e1f2ebd87a1521d39bfa287544dd2cd75b399539a4b625d38a1501c90ceae21fcca18ed164b0c3735817ff140ae334098192c110e571 1660 | languageName: node 1661 | linkType: hard 1662 | 1663 | "@rollup/plugin-virtual@npm:^3.0.2": 1664 | version: 3.0.2 1665 | resolution: "@rollup/plugin-virtual@npm:3.0.2" 1666 | peerDependencies: 1667 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 1668 | peerDependenciesMeta: 1669 | rollup: 1670 | optional: true 1671 | checksum: 7115edb7989096d1ce334939fcf6e1ba365586b487bf61b2dd4f915386197f350db70904030342c0720fe58f5a52828975c645c4d415c1d432d9b1b6760a22ef 1672 | languageName: node 1673 | linkType: hard 1674 | 1675 | "@swc/core-darwin-arm64@npm:1.4.0": 1676 | version: 1.4.0 1677 | resolution: "@swc/core-darwin-arm64@npm:1.4.0" 1678 | conditions: os=darwin & cpu=arm64 1679 | languageName: node 1680 | linkType: hard 1681 | 1682 | "@swc/core-darwin-x64@npm:1.4.0": 1683 | version: 1.4.0 1684 | resolution: "@swc/core-darwin-x64@npm:1.4.0" 1685 | conditions: os=darwin & cpu=x64 1686 | languageName: node 1687 | linkType: hard 1688 | 1689 | "@swc/core-linux-arm-gnueabihf@npm:1.4.0": 1690 | version: 1.4.0 1691 | resolution: "@swc/core-linux-arm-gnueabihf@npm:1.4.0" 1692 | conditions: os=linux & cpu=arm 1693 | languageName: node 1694 | linkType: hard 1695 | 1696 | "@swc/core-linux-arm64-gnu@npm:1.4.0": 1697 | version: 1.4.0 1698 | resolution: "@swc/core-linux-arm64-gnu@npm:1.4.0" 1699 | conditions: os=linux & cpu=arm64 & libc=glibc 1700 | languageName: node 1701 | linkType: hard 1702 | 1703 | "@swc/core-linux-arm64-musl@npm:1.4.0": 1704 | version: 1.4.0 1705 | resolution: "@swc/core-linux-arm64-musl@npm:1.4.0" 1706 | conditions: os=linux & cpu=arm64 & libc=musl 1707 | languageName: node 1708 | linkType: hard 1709 | 1710 | "@swc/core-linux-x64-gnu@npm:1.4.0": 1711 | version: 1.4.0 1712 | resolution: "@swc/core-linux-x64-gnu@npm:1.4.0" 1713 | conditions: os=linux & cpu=x64 & libc=glibc 1714 | languageName: node 1715 | linkType: hard 1716 | 1717 | "@swc/core-linux-x64-musl@npm:1.4.0": 1718 | version: 1.4.0 1719 | resolution: "@swc/core-linux-x64-musl@npm:1.4.0" 1720 | conditions: os=linux & cpu=x64 & libc=musl 1721 | languageName: node 1722 | linkType: hard 1723 | 1724 | "@swc/core-win32-arm64-msvc@npm:1.4.0": 1725 | version: 1.4.0 1726 | resolution: "@swc/core-win32-arm64-msvc@npm:1.4.0" 1727 | conditions: os=win32 & cpu=arm64 1728 | languageName: node 1729 | linkType: hard 1730 | 1731 | "@swc/core-win32-ia32-msvc@npm:1.4.0": 1732 | version: 1.4.0 1733 | resolution: "@swc/core-win32-ia32-msvc@npm:1.4.0" 1734 | conditions: os=win32 & cpu=ia32 1735 | languageName: node 1736 | linkType: hard 1737 | 1738 | "@swc/core-win32-x64-msvc@npm:1.4.0": 1739 | version: 1.4.0 1740 | resolution: "@swc/core-win32-x64-msvc@npm:1.4.0" 1741 | conditions: os=win32 & cpu=x64 1742 | languageName: node 1743 | linkType: hard 1744 | 1745 | "@swc/core@npm:^1.3.100": 1746 | version: 1.4.0 1747 | resolution: "@swc/core@npm:1.4.0" 1748 | dependencies: 1749 | "@swc/core-darwin-arm64": "npm:1.4.0" 1750 | "@swc/core-darwin-x64": "npm:1.4.0" 1751 | "@swc/core-linux-arm-gnueabihf": "npm:1.4.0" 1752 | "@swc/core-linux-arm64-gnu": "npm:1.4.0" 1753 | "@swc/core-linux-arm64-musl": "npm:1.4.0" 1754 | "@swc/core-linux-x64-gnu": "npm:1.4.0" 1755 | "@swc/core-linux-x64-musl": "npm:1.4.0" 1756 | "@swc/core-win32-arm64-msvc": "npm:1.4.0" 1757 | "@swc/core-win32-ia32-msvc": "npm:1.4.0" 1758 | "@swc/core-win32-x64-msvc": "npm:1.4.0" 1759 | "@swc/counter": "npm:^0.1.1" 1760 | "@swc/types": "npm:^0.1.5" 1761 | peerDependencies: 1762 | "@swc/helpers": ^0.5.0 1763 | dependenciesMeta: 1764 | "@swc/core-darwin-arm64": 1765 | optional: true 1766 | "@swc/core-darwin-x64": 1767 | optional: true 1768 | "@swc/core-linux-arm-gnueabihf": 1769 | optional: true 1770 | "@swc/core-linux-arm64-gnu": 1771 | optional: true 1772 | "@swc/core-linux-arm64-musl": 1773 | optional: true 1774 | "@swc/core-linux-x64-gnu": 1775 | optional: true 1776 | "@swc/core-linux-x64-musl": 1777 | optional: true 1778 | "@swc/core-win32-arm64-msvc": 1779 | optional: true 1780 | "@swc/core-win32-ia32-msvc": 1781 | optional: true 1782 | "@swc/core-win32-x64-msvc": 1783 | optional: true 1784 | peerDependenciesMeta: 1785 | "@swc/helpers": 1786 | optional: true 1787 | checksum: aecf7f2ef421e6b9125c8f7d282420e637d22c213a42860af6dfd9fc932b22cd710cdec95e41d0cad4ba67ec7bf420e6e7a0d775856be2c58af6a52ffeaeb4b2 1788 | languageName: node 1789 | linkType: hard 1790 | 1791 | "@swc/counter@npm:^0.1.1": 1792 | version: 0.1.3 1793 | resolution: "@swc/counter@npm:0.1.3" 1794 | checksum: 8424f60f6bf8694cfd2a9bca45845bce29f26105cda8cf19cdb9fd3e78dc6338699e4db77a89ae449260bafa1cc6bec307e81e7fb96dbf7dcfce0eea55151356 1795 | languageName: node 1796 | linkType: hard 1797 | 1798 | "@swc/types@npm:^0.1.5": 1799 | version: 0.1.5 1800 | resolution: "@swc/types@npm:0.1.5" 1801 | checksum: b35f93fe896a2240f6f10544e408f9648c2bd4bcff9bd8d022d9a6942d31cf859f86119fb0bbb04a12eefa1f6a6745ffc7d18f3a490d76d7b6a074a7c9608144 1802 | languageName: node 1803 | linkType: hard 1804 | 1805 | "@tldraw/editor@npm:2.0.0-beta.2": 1806 | version: 2.0.0-beta.2 1807 | resolution: "@tldraw/editor@npm:2.0.0-beta.2" 1808 | dependencies: 1809 | "@tldraw/state": "npm:2.0.0-beta.2" 1810 | "@tldraw/store": "npm:2.0.0-beta.2" 1811 | "@tldraw/tlschema": "npm:2.0.0-beta.2" 1812 | "@tldraw/utils": "npm:2.0.0-beta.2" 1813 | "@tldraw/validate": "npm:2.0.0-beta.2" 1814 | "@types/core-js": "npm:^2.5.5" 1815 | "@use-gesture/react": "npm:^10.2.27" 1816 | classnames: "npm:^2.3.2" 1817 | core-js: "npm:^3.31.1" 1818 | eventemitter3: "npm:^4.0.7" 1819 | idb: "npm:^7.1.1" 1820 | is-plain-object: "npm:^5.0.0" 1821 | lodash.throttle: "npm:^4.1.1" 1822 | lodash.uniq: "npm:^4.5.0" 1823 | nanoid: "npm:4.0.2" 1824 | peerDependencies: 1825 | react: ^18 1826 | react-dom: ^18 1827 | checksum: a20bfb53af3732aa9ca160c655cce8c47727b0048e2ef1cd90698c03e3fbde25d7ceab11d3da7f18200c07e53f21dcf176b08d7a3d41c855317886e4a5eb5705 1828 | languageName: node 1829 | linkType: hard 1830 | 1831 | "@tldraw/state@npm:2.0.0-beta.2": 1832 | version: 2.0.0-beta.2 1833 | resolution: "@tldraw/state@npm:2.0.0-beta.2" 1834 | peerDependencies: 1835 | react: ^18 1836 | checksum: c7372da17848dc35c8cba825e9e4f97badc765a5cefa58e3a74888d815a9bbd567ebb9e7e4cc5a58a175d9203ab32bbe705cfeae15dd433d769fc1d264ec135b 1837 | languageName: node 1838 | linkType: hard 1839 | 1840 | "@tldraw/store@npm:2.0.0-beta.2": 1841 | version: 2.0.0-beta.2 1842 | resolution: "@tldraw/store@npm:2.0.0-beta.2" 1843 | dependencies: 1844 | "@tldraw/state": "npm:2.0.0-beta.2" 1845 | "@tldraw/utils": "npm:2.0.0-beta.2" 1846 | lodash.isequal: "npm:^4.5.0" 1847 | nanoid: "npm:4.0.2" 1848 | checksum: f44798108155088d12d4df989ce830874cf4e38046aa3176361d05f61362d681dc55cc342b48aa20f0b82805e4fac0ffea6c44ebbdf56a3ee8ca68c41876a766 1849 | languageName: node 1850 | linkType: hard 1851 | 1852 | "@tldraw/tldraw@npm:2.0.0-beta.2": 1853 | version: 2.0.0-beta.2 1854 | resolution: "@tldraw/tldraw@npm:2.0.0-beta.2" 1855 | dependencies: 1856 | "@radix-ui/react-alert-dialog": "npm:^1.0.0" 1857 | "@radix-ui/react-context-menu": "npm:^2.1.5" 1858 | "@radix-ui/react-dialog": "npm:^1.0.5" 1859 | "@radix-ui/react-dropdown-menu": "npm:^2.0.6" 1860 | "@radix-ui/react-popover": "npm:^1.0.7" 1861 | "@radix-ui/react-select": "npm:^1.2.0" 1862 | "@radix-ui/react-slider": "npm:^1.1.0" 1863 | "@radix-ui/react-toast": "npm:^1.1.1" 1864 | "@tldraw/editor": "npm:2.0.0-beta.2" 1865 | canvas-size: "npm:^1.2.6" 1866 | classnames: "npm:^2.3.2" 1867 | downscale: "npm:^1.0.6" 1868 | hotkeys-js: "npm:^3.11.2" 1869 | lz-string: "npm:^1.4.4" 1870 | peerDependencies: 1871 | react: ^18 1872 | react-dom: ^18 1873 | checksum: 8c4884df8bfa71b0b803bea2c18b45c07ebf5fde8816397629ae173ec404a469e908f0e9923a26436974f375c057fbeb8298acaaf10b4a980ab492c9a246be40 1874 | languageName: node 1875 | linkType: hard 1876 | 1877 | "@tldraw/tlschema@npm:2.0.0-beta.2": 1878 | version: 2.0.0-beta.2 1879 | resolution: "@tldraw/tlschema@npm:2.0.0-beta.2" 1880 | dependencies: 1881 | "@tldraw/state": "npm:2.0.0-beta.2" 1882 | "@tldraw/store": "npm:2.0.0-beta.2" 1883 | "@tldraw/utils": "npm:2.0.0-beta.2" 1884 | "@tldraw/validate": "npm:2.0.0-beta.2" 1885 | nanoid: "npm:4.0.2" 1886 | checksum: ffcefb31aa660573335fa5310af92d46b62eec4a042a16415d3dff1cb29a3fff76d6b84c0d580cb0d39751f5e58cc458f6733982c2ce171cff4f2f20e9857bf5 1887 | languageName: node 1888 | linkType: hard 1889 | 1890 | "@tldraw/utils@npm:2.0.0-beta.2": 1891 | version: 2.0.0-beta.2 1892 | resolution: "@tldraw/utils@npm:2.0.0-beta.2" 1893 | checksum: 7f540208a797fe3550fe27f4ee92d5a7f7cbc404d0de5db65cd6ef755eeab23376db0a1528db3235ef12e9e5021a6ba42d9aa271a4981c5e295700c0b627c3c7 1894 | languageName: node 1895 | linkType: hard 1896 | 1897 | "@tldraw/validate@npm:2.0.0-beta.2": 1898 | version: 2.0.0-beta.2 1899 | resolution: "@tldraw/validate@npm:2.0.0-beta.2" 1900 | dependencies: 1901 | "@tldraw/utils": "npm:2.0.0-beta.2" 1902 | checksum: ab319e18aba07ad982d4f0ac41922fbd73b304047f163394410f6a9f330bfeb8495359f72aba11cc3b3090aef832f9a1c98c64d95c897d444cc9fe6d025537a3 1903 | languageName: node 1904 | linkType: hard 1905 | 1906 | "@types/babel__core@npm:^7.20.5": 1907 | version: 7.20.5 1908 | resolution: "@types/babel__core@npm:7.20.5" 1909 | dependencies: 1910 | "@babel/parser": "npm:^7.20.7" 1911 | "@babel/types": "npm:^7.20.7" 1912 | "@types/babel__generator": "npm:*" 1913 | "@types/babel__template": "npm:*" 1914 | "@types/babel__traverse": "npm:*" 1915 | checksum: bdee3bb69951e833a4b811b8ee9356b69a61ed5b7a23e1a081ec9249769117fa83aaaf023bb06562a038eb5845155ff663e2d5c75dd95c1d5ccc91db012868ff 1916 | languageName: node 1917 | linkType: hard 1918 | 1919 | "@types/babel__generator@npm:*": 1920 | version: 7.6.8 1921 | resolution: "@types/babel__generator@npm:7.6.8" 1922 | dependencies: 1923 | "@babel/types": "npm:^7.0.0" 1924 | checksum: f0ba105e7d2296bf367d6e055bb22996886c114261e2cb70bf9359556d0076c7a57239d019dee42bb063f565bade5ccb46009bce2044b2952d964bf9a454d6d2 1925 | languageName: node 1926 | linkType: hard 1927 | 1928 | "@types/babel__template@npm:*": 1929 | version: 7.4.4 1930 | resolution: "@types/babel__template@npm:7.4.4" 1931 | dependencies: 1932 | "@babel/parser": "npm:^7.1.0" 1933 | "@babel/types": "npm:^7.0.0" 1934 | checksum: cc84f6c6ab1eab1427e90dd2b76ccee65ce940b778a9a67be2c8c39e1994e6f5bbc8efa309f6cea8dc6754994524cd4d2896558df76d92e7a1f46ecffee7112b 1935 | languageName: node 1936 | linkType: hard 1937 | 1938 | "@types/babel__traverse@npm:*": 1939 | version: 7.20.5 1940 | resolution: "@types/babel__traverse@npm:7.20.5" 1941 | dependencies: 1942 | "@babel/types": "npm:^7.20.7" 1943 | checksum: 033abcb2f4c084ad33e30c3efaad82161240f351e3c71b6154ed289946b33b363696c0fbd42502b68e4582a87413c418321f40eb1ea863e34fe525641345e05b 1944 | languageName: node 1945 | linkType: hard 1946 | 1947 | "@types/core-js@npm:^2.5.5": 1948 | version: 2.5.8 1949 | resolution: "@types/core-js@npm:2.5.8" 1950 | checksum: 9a9e3be8359b04f284889064a0ba9cdd5dcf0ea1c1626b0528dadea17f5b81a74ba7ce0ad887b6aedc55bd3a36a4f49f90c11b85fa62890269e60d33d047788b 1951 | languageName: node 1952 | linkType: hard 1953 | 1954 | "@types/prop-types@npm:*": 1955 | version: 15.7.11 1956 | resolution: "@types/prop-types@npm:15.7.11" 1957 | checksum: e53423cf9d510515ef8b47ff42f4f1b65a7b7b37c8704e2dbfcb9a60defe0c0e1f3cb1acfdeb466bad44ca938d7c79bffdd51b48ffb659df2432169d0b27a132 1958 | languageName: node 1959 | linkType: hard 1960 | 1961 | "@types/react-dom@npm:^18.2.7": 1962 | version: 18.2.19 1963 | resolution: "@types/react-dom@npm:18.2.19" 1964 | dependencies: 1965 | "@types/react": "npm:*" 1966 | checksum: 88d7c6daa4659f661d0c97985d9fca492f24b421a34bb614dcd94c343aed7bea121463149e97fb01ecaa693be17b7d1542cf71ddb1705f3889a81eb2639a88aa 1967 | languageName: node 1968 | linkType: hard 1969 | 1970 | "@types/react@npm:*, @types/react@npm:^18.2.15": 1971 | version: 18.2.55 1972 | resolution: "@types/react@npm:18.2.55" 1973 | dependencies: 1974 | "@types/prop-types": "npm:*" 1975 | "@types/scheduler": "npm:*" 1976 | csstype: "npm:^3.0.2" 1977 | checksum: 6b1c73beafbbc582dc54ffd92b3779f6d850e8f6b5ce5d04b31e9498a3d77bfc416bb08f0d8d63ab4f4649ccd6639996472416871c01c74a528b16a55faeaf38 1978 | languageName: node 1979 | linkType: hard 1980 | 1981 | "@types/scheduler@npm:*": 1982 | version: 0.16.8 1983 | resolution: "@types/scheduler@npm:0.16.8" 1984 | checksum: f86de504945b8fc41b1f391f847444d542e2e4067cf7e5d9bfeb5d2d2393d3203b1161bc0ef3b1e104d828dabfb60baf06e8d2c27e27ff7e8258e6e618d8c4ec 1985 | languageName: node 1986 | linkType: hard 1987 | 1988 | "@use-gesture/core@npm:10.3.0": 1989 | version: 10.3.0 1990 | resolution: "@use-gesture/core@npm:10.3.0" 1991 | checksum: 7a92017fcc0a483043b2f202acd2b2e89ee3b81183a1537e5efd321cc18e36101c49c805d7932b5485c2fc3baa511eae759677c81cb77f149fa047616e78cfbd 1992 | languageName: node 1993 | linkType: hard 1994 | 1995 | "@use-gesture/react@npm:^10.2.27": 1996 | version: 10.3.0 1997 | resolution: "@use-gesture/react@npm:10.3.0" 1998 | dependencies: 1999 | "@use-gesture/core": "npm:10.3.0" 2000 | peerDependencies: 2001 | react: ">= 16.8.0" 2002 | checksum: 82e7a0149f05301b0363de0c5a29112adbf8e2740ba1a0e06756ee63fe44ab094dd54fe64df3bd8ec163ebad53a38f1e6156c0b454756bb2e3aee02a4444fcf1 2003 | languageName: node 2004 | linkType: hard 2005 | 2006 | "@vitejs/plugin-react@npm:^4.0.3": 2007 | version: 4.2.1 2008 | resolution: "@vitejs/plugin-react@npm:4.2.1" 2009 | dependencies: 2010 | "@babel/core": "npm:^7.23.5" 2011 | "@babel/plugin-transform-react-jsx-self": "npm:^7.23.3" 2012 | "@babel/plugin-transform-react-jsx-source": "npm:^7.23.3" 2013 | "@types/babel__core": "npm:^7.20.5" 2014 | react-refresh: "npm:^0.14.0" 2015 | peerDependencies: 2016 | vite: ^4.2.0 || ^5.0.0 2017 | checksum: de1eec44d703f32e5b58e776328ca20793657fe991835d15b290230b19a2a08be5d31501d424279ae13ecfed28044c117b69d746891c8d9b92c69e8a8907e989 2018 | languageName: node 2019 | linkType: hard 2020 | 2021 | "abbrev@npm:^2.0.0": 2022 | version: 2.0.0 2023 | resolution: "abbrev@npm:2.0.0" 2024 | checksum: f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372 2025 | languageName: node 2026 | linkType: hard 2027 | 2028 | "abstract-leveldown@npm:^6.2.1": 2029 | version: 6.3.0 2030 | resolution: "abstract-leveldown@npm:6.3.0" 2031 | dependencies: 2032 | buffer: "npm:^5.5.0" 2033 | immediate: "npm:^3.2.3" 2034 | level-concat-iterator: "npm:~2.0.0" 2035 | level-supports: "npm:~1.0.0" 2036 | xtend: "npm:~4.0.0" 2037 | checksum: 441c7e6765b6c2e9a36999e2bda3f4421d09348c0e925e284d873bcbf5ecad809788c9eda416aed37fe5b6e6a9e75af6e27142d1fcba460b8757d70028e307b1 2038 | languageName: node 2039 | linkType: hard 2040 | 2041 | "abstract-leveldown@npm:~6.2.1, abstract-leveldown@npm:~6.2.3": 2042 | version: 6.2.3 2043 | resolution: "abstract-leveldown@npm:6.2.3" 2044 | dependencies: 2045 | buffer: "npm:^5.5.0" 2046 | immediate: "npm:^3.2.3" 2047 | level-concat-iterator: "npm:~2.0.0" 2048 | level-supports: "npm:~1.0.0" 2049 | xtend: "npm:~4.0.0" 2050 | checksum: a7994531a4618a409ee016dabf132014be9a2d07a3438f835c1eb5607f77f6cf12abc437e8f5bff353b1d8dcb31628c8ae65b41e7533bf606c6f7213ab61c1d1 2051 | languageName: node 2052 | linkType: hard 2053 | 2054 | "acorn-walk@npm:^8.2.0": 2055 | version: 8.3.2 2056 | resolution: "acorn-walk@npm:8.3.2" 2057 | checksum: 7e2a8dad5480df7f872569b9dccff2f3da7e65f5353686b1d6032ab9f4ddf6e3a2cb83a9b52cf50b1497fd522154dda92f0abf7153290cc79cd14721ff121e52 2058 | languageName: node 2059 | linkType: hard 2060 | 2061 | "acorn@npm:^8.8.0": 2062 | version: 8.11.3 2063 | resolution: "acorn@npm:8.11.3" 2064 | bin: 2065 | acorn: bin/acorn 2066 | checksum: 3ff155f8812e4a746fee8ecff1f227d527c4c45655bb1fad6347c3cb58e46190598217551b1500f18542d2bbe5c87120cb6927f5a074a59166fbdd9468f0a299 2067 | languageName: node 2068 | linkType: hard 2069 | 2070 | "agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": 2071 | version: 7.1.0 2072 | resolution: "agent-base@npm:7.1.0" 2073 | dependencies: 2074 | debug: "npm:^4.3.4" 2075 | checksum: fc974ab57ffdd8421a2bc339644d312a9cca320c20c3393c9d8b1fd91731b9bbabdb985df5fc860f5b79d81c3e350daa3fcb31c5c07c0bb385aafc817df004ce 2076 | languageName: node 2077 | linkType: hard 2078 | 2079 | "aggregate-error@npm:^3.0.0": 2080 | version: 3.1.0 2081 | resolution: "aggregate-error@npm:3.1.0" 2082 | dependencies: 2083 | clean-stack: "npm:^2.0.0" 2084 | indent-string: "npm:^4.0.0" 2085 | checksum: a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 2086 | languageName: node 2087 | linkType: hard 2088 | 2089 | "ansi-regex@npm:^5.0.1": 2090 | version: 5.0.1 2091 | resolution: "ansi-regex@npm:5.0.1" 2092 | checksum: 9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 2093 | languageName: node 2094 | linkType: hard 2095 | 2096 | "ansi-regex@npm:^6.0.1": 2097 | version: 6.0.1 2098 | resolution: "ansi-regex@npm:6.0.1" 2099 | checksum: cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08 2100 | languageName: node 2101 | linkType: hard 2102 | 2103 | "ansi-styles@npm:^3.2.1": 2104 | version: 3.2.1 2105 | resolution: "ansi-styles@npm:3.2.1" 2106 | dependencies: 2107 | color-convert: "npm:^1.9.0" 2108 | checksum: ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b 2109 | languageName: node 2110 | linkType: hard 2111 | 2112 | "ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": 2113 | version: 4.3.0 2114 | resolution: "ansi-styles@npm:4.3.0" 2115 | dependencies: 2116 | color-convert: "npm:^2.0.1" 2117 | checksum: 895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 2118 | languageName: node 2119 | linkType: hard 2120 | 2121 | "ansi-styles@npm:^6.1.0": 2122 | version: 6.2.1 2123 | resolution: "ansi-styles@npm:6.2.1" 2124 | checksum: 5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c 2125 | languageName: node 2126 | linkType: hard 2127 | 2128 | "arch@npm:^2.2.0": 2129 | version: 2.2.0 2130 | resolution: "arch@npm:2.2.0" 2131 | checksum: 4ceaf8d8207817c216ebc4469742052cb0a097bc45d9b7fcd60b7507220da545a28562ab5bdd4dfe87921bb56371a0805da4e10d704e01f93a15f83240f1284c 2132 | languageName: node 2133 | linkType: hard 2134 | 2135 | "aria-hidden@npm:^1.1.1": 2136 | version: 1.2.3 2137 | resolution: "aria-hidden@npm:1.2.3" 2138 | dependencies: 2139 | tslib: "npm:^2.0.0" 2140 | checksum: 46b07b7273167ad3fc2625f1ecbb43f8e6f73115c66785cbb5dcf1e2508133a43b6419d610c39676ceaeb563239efbd8974d5c0187695db8b3e8c3e11f549c2d 2141 | languageName: node 2142 | linkType: hard 2143 | 2144 | "as-table@npm:^1.0.36": 2145 | version: 1.0.55 2146 | resolution: "as-table@npm:1.0.55" 2147 | dependencies: 2148 | printable-characters: "npm:^1.0.42" 2149 | checksum: 8c5693a84621fe53c62fcad6b779dc55c5caf4d43b8e67077964baea4a337769ef53f590d7395c806805b4ef1a391b614ba9acdee19b2ca4309ddedaf13894e6 2150 | languageName: node 2151 | linkType: hard 2152 | 2153 | "async-limiter@npm:~1.0.0": 2154 | version: 1.0.1 2155 | resolution: "async-limiter@npm:1.0.1" 2156 | checksum: 0693d378cfe86842a70d4c849595a0bb50dc44c11649640ca982fa90cbfc74e3cc4753b5a0847e51933f2e9c65ce8e05576e75e5e1fd963a086e673735b35969 2157 | languageName: node 2158 | linkType: hard 2159 | 2160 | "balanced-match@npm:^1.0.0": 2161 | version: 1.0.2 2162 | resolution: "balanced-match@npm:1.0.2" 2163 | checksum: 9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee 2164 | languageName: node 2165 | linkType: hard 2166 | 2167 | "base64-js@npm:^1.3.1": 2168 | version: 1.5.1 2169 | resolution: "base64-js@npm:1.5.1" 2170 | checksum: f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf 2171 | languageName: node 2172 | linkType: hard 2173 | 2174 | "brace-expansion@npm:^2.0.1": 2175 | version: 2.0.1 2176 | resolution: "brace-expansion@npm:2.0.1" 2177 | dependencies: 2178 | balanced-match: "npm:^1.0.0" 2179 | checksum: b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f 2180 | languageName: node 2181 | linkType: hard 2182 | 2183 | "browserslist@npm:^4.22.2": 2184 | version: 4.22.3 2185 | resolution: "browserslist@npm:4.22.3" 2186 | dependencies: 2187 | caniuse-lite: "npm:^1.0.30001580" 2188 | electron-to-chromium: "npm:^1.4.648" 2189 | node-releases: "npm:^2.0.14" 2190 | update-browserslist-db: "npm:^1.0.13" 2191 | bin: 2192 | browserslist: cli.js 2193 | checksum: 5a1f673ce0d6e61a68369835a6b66e199669bde02c3bed5ec51e77598d8daafd91719dba55b15af2021b9ad0bbaa94951fd702eb71087449eb28be8002815ece 2194 | languageName: node 2195 | linkType: hard 2196 | 2197 | "buffer-from@npm:^1.0.0": 2198 | version: 1.1.2 2199 | resolution: "buffer-from@npm:1.1.2" 2200 | checksum: 124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34 2201 | languageName: node 2202 | linkType: hard 2203 | 2204 | "buffer@npm:^5.5.0, buffer@npm:^5.6.0": 2205 | version: 5.7.1 2206 | resolution: "buffer@npm:5.7.1" 2207 | dependencies: 2208 | base64-js: "npm:^1.3.1" 2209 | ieee754: "npm:^1.1.13" 2210 | checksum: 27cac81cff434ed2876058d72e7c4789d11ff1120ef32c9de48f59eab58179b66710c488987d295ae89a228f835fc66d088652dffeb8e3ba8659f80eb091d55e 2211 | languageName: node 2212 | linkType: hard 2213 | 2214 | "cacache@npm:^18.0.0": 2215 | version: 18.0.2 2216 | resolution: "cacache@npm:18.0.2" 2217 | dependencies: 2218 | "@npmcli/fs": "npm:^3.1.0" 2219 | fs-minipass: "npm:^3.0.0" 2220 | glob: "npm:^10.2.2" 2221 | lru-cache: "npm:^10.0.1" 2222 | minipass: "npm:^7.0.3" 2223 | minipass-collect: "npm:^2.0.1" 2224 | minipass-flush: "npm:^1.0.5" 2225 | minipass-pipeline: "npm:^1.2.4" 2226 | p-map: "npm:^4.0.0" 2227 | ssri: "npm:^10.0.0" 2228 | tar: "npm:^6.1.11" 2229 | unique-filename: "npm:^3.0.0" 2230 | checksum: 7992665305cc251a984f4fdbab1449d50e88c635bc43bf2785530c61d239c61b349e5734461baa461caaee65f040ab14e2d58e694f479c0810cffd181ba5eabc 2231 | languageName: node 2232 | linkType: hard 2233 | 2234 | "caniuse-lite@npm:^1.0.30001580": 2235 | version: 1.0.30001587 2236 | resolution: "caniuse-lite@npm:1.0.30001587" 2237 | checksum: c7a34cb758a24fa1d948e164de3c5873e7e607b46db0e530ba160a281cb619c9d6a1b85bb334894bc8e629a59db99f3de4521593b08142d317a529e80a856385 2238 | languageName: node 2239 | linkType: hard 2240 | 2241 | "canvas-size@npm:^1.2.6": 2242 | version: 1.2.6 2243 | resolution: "canvas-size@npm:1.2.6" 2244 | checksum: 57ab616e5778f477a601ada96b1e1b87c884ef3435d7cada974495de3d43f2be3d9111bedc03028ea7c6c142a9e9f1f57aa6be22db3cd0340ac78321fe3ca8f9 2245 | languageName: node 2246 | linkType: hard 2247 | 2248 | "capnp-ts@npm:^0.7.0": 2249 | version: 0.7.0 2250 | resolution: "capnp-ts@npm:0.7.0" 2251 | dependencies: 2252 | debug: "npm:^4.3.1" 2253 | tslib: "npm:^2.2.0" 2254 | checksum: 83d559c3d59126ee39295973bf2e9228cd4b559c81bfc938268c63deba4020f0df6ce2f2d1e2b7d7e4421de21f4854424b774ab9ac4d9a66d1c57d2fef7da870 2255 | languageName: node 2256 | linkType: hard 2257 | 2258 | "chalk@npm:^2.4.2": 2259 | version: 2.4.2 2260 | resolution: "chalk@npm:2.4.2" 2261 | dependencies: 2262 | ansi-styles: "npm:^3.2.1" 2263 | escape-string-regexp: "npm:^1.0.5" 2264 | supports-color: "npm:^5.3.0" 2265 | checksum: e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073 2266 | languageName: node 2267 | linkType: hard 2268 | 2269 | "chalk@npm:^4.1.2": 2270 | version: 4.1.2 2271 | resolution: "chalk@npm:4.1.2" 2272 | dependencies: 2273 | ansi-styles: "npm:^4.1.0" 2274 | supports-color: "npm:^7.1.0" 2275 | checksum: 4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 2276 | languageName: node 2277 | linkType: hard 2278 | 2279 | "chownr@npm:^2.0.0": 2280 | version: 2.0.0 2281 | resolution: "chownr@npm:2.0.0" 2282 | checksum: 594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6 2283 | languageName: node 2284 | linkType: hard 2285 | 2286 | "classnames@npm:^2.3.2": 2287 | version: 2.5.1 2288 | resolution: "classnames@npm:2.5.1" 2289 | checksum: afff4f77e62cea2d79c39962980bf316bacb0d7c49e13a21adaadb9221e1c6b9d3cdb829d8bb1b23c406f4e740507f37e1dcf506f7e3b7113d17c5bab787aa69 2290 | languageName: node 2291 | linkType: hard 2292 | 2293 | "clean-stack@npm:^2.0.0": 2294 | version: 2.2.0 2295 | resolution: "clean-stack@npm:2.2.0" 2296 | checksum: 1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 2297 | languageName: node 2298 | linkType: hard 2299 | 2300 | "clipboardy@npm:3.0.0": 2301 | version: 3.0.0 2302 | resolution: "clipboardy@npm:3.0.0" 2303 | dependencies: 2304 | arch: "npm:^2.2.0" 2305 | execa: "npm:^5.1.1" 2306 | is-wsl: "npm:^2.2.0" 2307 | checksum: 299d66e13fcaccf656306e76d629ce6927eaba8ba58ae5328e3379ae627e469e29df8ef87408cdb234e2ad0e25f0024dd203393f7e59c67ae79772579c4de052 2308 | languageName: node 2309 | linkType: hard 2310 | 2311 | "cliui@npm:^8.0.1": 2312 | version: 8.0.1 2313 | resolution: "cliui@npm:8.0.1" 2314 | dependencies: 2315 | string-width: "npm:^4.2.0" 2316 | strip-ansi: "npm:^6.0.1" 2317 | wrap-ansi: "npm:^7.0.0" 2318 | checksum: 4bda0f09c340cbb6dfdc1ed508b3ca080f12992c18d68c6be4d9cf51756033d5266e61ec57529e610dacbf4da1c634423b0c1b11037709cc6b09045cbd815df5 2319 | languageName: node 2320 | linkType: hard 2321 | 2322 | "color-convert@npm:^1.9.0": 2323 | version: 1.9.3 2324 | resolution: "color-convert@npm:1.9.3" 2325 | dependencies: 2326 | color-name: "npm:1.1.3" 2327 | checksum: 5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c 2328 | languageName: node 2329 | linkType: hard 2330 | 2331 | "color-convert@npm:^2.0.1": 2332 | version: 2.0.1 2333 | resolution: "color-convert@npm:2.0.1" 2334 | dependencies: 2335 | color-name: "npm:~1.1.4" 2336 | checksum: 37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 2337 | languageName: node 2338 | linkType: hard 2339 | 2340 | "color-name@npm:1.1.3": 2341 | version: 1.1.3 2342 | resolution: "color-name@npm:1.1.3" 2343 | checksum: 566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6 2344 | languageName: node 2345 | linkType: hard 2346 | 2347 | "color-name@npm:~1.1.4": 2348 | version: 1.1.4 2349 | resolution: "color-name@npm:1.1.4" 2350 | checksum: a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 2351 | languageName: node 2352 | linkType: hard 2353 | 2354 | "concurrently@npm:^8.2.0": 2355 | version: 8.2.2 2356 | resolution: "concurrently@npm:8.2.2" 2357 | dependencies: 2358 | chalk: "npm:^4.1.2" 2359 | date-fns: "npm:^2.30.0" 2360 | lodash: "npm:^4.17.21" 2361 | rxjs: "npm:^7.8.1" 2362 | shell-quote: "npm:^1.8.1" 2363 | spawn-command: "npm:0.0.2" 2364 | supports-color: "npm:^8.1.1" 2365 | tree-kill: "npm:^1.2.2" 2366 | yargs: "npm:^17.7.2" 2367 | bin: 2368 | conc: dist/bin/concurrently.js 2369 | concurrently: dist/bin/concurrently.js 2370 | checksum: 0e9683196fe9c071d944345d21d8f34aa6c0cc50c0dd897e95619f2f1c9eb4871dca851b2569da17888235b7335b4c821ca19deed35bebcd9a131ee5d247f34c 2371 | languageName: node 2372 | linkType: hard 2373 | 2374 | "convert-source-map@npm:^2.0.0": 2375 | version: 2.0.0 2376 | resolution: "convert-source-map@npm:2.0.0" 2377 | checksum: 8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b 2378 | languageName: node 2379 | linkType: hard 2380 | 2381 | "cookie@npm:^0.5.0": 2382 | version: 0.5.0 2383 | resolution: "cookie@npm:0.5.0" 2384 | checksum: c01ca3ef8d7b8187bae434434582288681273b5a9ed27521d4d7f9f7928fe0c920df0decd9f9d3bbd2d14ac432b8c8cf42b98b3bdd5bfe0e6edddeebebe8b61d 2385 | languageName: node 2386 | linkType: hard 2387 | 2388 | "core-js@npm:^3.31.1": 2389 | version: 3.35.1 2390 | resolution: "core-js@npm:3.35.1" 2391 | checksum: ebc8e22c36d13bcf2140cbc1d8ad65d1b08192bff4c43ade70c72eac103cb4dcfbc521f2b1ad1c74881b0a4353e64986537893ae4f07888e49228340efa13ae6 2392 | languageName: node 2393 | linkType: hard 2394 | 2395 | "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3": 2396 | version: 7.0.3 2397 | resolution: "cross-spawn@npm:7.0.3" 2398 | dependencies: 2399 | path-key: "npm:^3.1.0" 2400 | shebang-command: "npm:^2.0.0" 2401 | which: "npm:^2.0.1" 2402 | checksum: 5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 2403 | languageName: node 2404 | linkType: hard 2405 | 2406 | "csstype@npm:^3.0.2": 2407 | version: 3.1.3 2408 | resolution: "csstype@npm:3.1.3" 2409 | checksum: 80c089d6f7e0c5b2bd83cf0539ab41474198579584fa10d86d0cafe0642202343cbc119e076a0b1aece191989477081415d66c9fefbf3c957fc2fc4b7009f248 2410 | languageName: node 2411 | linkType: hard 2412 | 2413 | "d3-dispatch@npm:1, d3-dispatch@npm:^1.0.3": 2414 | version: 1.0.6 2415 | resolution: "d3-dispatch@npm:1.0.6" 2416 | checksum: 6302554a019e2d75d4e3dc7e8757a00b4b12ac2a2952bccc66e4478ccd170f425e2b6a9443118d5feadcd2439f33582b63c7925e832104ff1978cadea2a30dc2 2417 | languageName: node 2418 | linkType: hard 2419 | 2420 | "d3-drag@npm:^1.0.4": 2421 | version: 1.2.5 2422 | resolution: "d3-drag@npm:1.2.5" 2423 | dependencies: 2424 | d3-dispatch: "npm:1" 2425 | d3-selection: "npm:1" 2426 | checksum: 749cbeaab1867a10086c90467218365ab1967645878463074a63383d9de77fe8b6a7ebe6c5be8fd4e257575db87c9b99a2d76b4d3ebb8b937f3523414fbc9c2b 2427 | languageName: node 2428 | linkType: hard 2429 | 2430 | "d3-path@npm:1": 2431 | version: 1.0.9 2432 | resolution: "d3-path@npm:1.0.9" 2433 | checksum: e35e84df5abc18091f585725b8235e1fa97efc287571585427d3a3597301e6c506dea56b11dfb3c06ca5858b3eb7f02c1bf4f6a716aa9eade01c41b92d497eb5 2434 | languageName: node 2435 | linkType: hard 2436 | 2437 | "d3-selection@npm:1": 2438 | version: 1.4.2 2439 | resolution: "d3-selection@npm:1.4.2" 2440 | checksum: e755b6b62d794d0b968cc6264f37109e425de0d9fd306ce94414b07e46a2c6830d21c1fe0821a660d07e82069b6fe3b67da1b3b909e8f6af8f16f020cd25cae0 2441 | languageName: node 2442 | linkType: hard 2443 | 2444 | "d3-shape@npm:^1.3.5": 2445 | version: 1.3.7 2446 | resolution: "d3-shape@npm:1.3.7" 2447 | dependencies: 2448 | d3-path: "npm:1" 2449 | checksum: 548057ce59959815decb449f15632b08e2a1bdce208f9a37b5f98ec7629dda986c2356bc7582308405ce68aedae7d47b324df41507404df42afaf352907577ae 2450 | languageName: node 2451 | linkType: hard 2452 | 2453 | "d3-timer@npm:^1.0.5": 2454 | version: 1.0.10 2455 | resolution: "d3-timer@npm:1.0.10" 2456 | checksum: 7e77030a206861e4e626754c689795d43f036fb07a7f8ca6360eb8b7cbe6f52bf43c9c4297ae9a9a906e4de594212702f83c0cde23d4e20d8689a4211e438155 2457 | languageName: node 2458 | linkType: hard 2459 | 2460 | "data-uri-to-buffer@npm:^2.0.0": 2461 | version: 2.0.2 2462 | resolution: "data-uri-to-buffer@npm:2.0.2" 2463 | checksum: 341b6191ed65fa453e97a6d44db06082121ebc2ef3e6e096dfb6a1ebbc75e8be39d4199a5b4dba0f0efc43f2a3b2bcc276d85cf1407eba880eb09ebf17c3c31e 2464 | languageName: node 2465 | linkType: hard 2466 | 2467 | "date-fns@npm:^2.30.0": 2468 | version: 2.30.0 2469 | resolution: "date-fns@npm:2.30.0" 2470 | dependencies: 2471 | "@babel/runtime": "npm:^7.21.0" 2472 | checksum: e4b521fbf22bc8c3db332bbfb7b094fd3e7627de0259a9d17c7551e2d2702608a7307a449206065916538e384f37b181565447ce2637ae09828427aed9cb5581 2473 | languageName: node 2474 | linkType: hard 2475 | 2476 | "debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.4": 2477 | version: 4.3.4 2478 | resolution: "debug@npm:4.3.4" 2479 | dependencies: 2480 | ms: "npm:2.1.2" 2481 | peerDependenciesMeta: 2482 | supports-color: 2483 | optional: true 2484 | checksum: cedbec45298dd5c501d01b92b119cd3faebe5438c3917ff11ae1bff86a6c722930ac9c8659792824013168ba6db7c4668225d845c633fbdafbbf902a6389f736 2485 | languageName: node 2486 | linkType: hard 2487 | 2488 | "deferred-leveldown@npm:~5.3.0": 2489 | version: 5.3.0 2490 | resolution: "deferred-leveldown@npm:5.3.0" 2491 | dependencies: 2492 | abstract-leveldown: "npm:~6.2.1" 2493 | inherits: "npm:^2.0.3" 2494 | checksum: b1021314bfd5875b10e4c8c69429a69d37affc79df53aedf3c18a4bcd7460619220fa6b1bc309bcd85851c2c9c2b4da6cb03127abc08b715ff56da8aeae6b74f 2495 | languageName: node 2496 | linkType: hard 2497 | 2498 | "detect-node-es@npm:^1.1.0": 2499 | version: 1.1.0 2500 | resolution: "detect-node-es@npm:1.1.0" 2501 | checksum: e562f00de23f10c27d7119e1af0e7388407eb4b06596a25f6d79a360094a109ff285de317f02b090faae093d314cf6e73ac3214f8a5bb3a0def5bece94557fbe 2502 | languageName: node 2503 | linkType: hard 2504 | 2505 | "downscale@npm:^1.0.6": 2506 | version: 1.0.6 2507 | resolution: "downscale@npm:1.0.6" 2508 | checksum: 35b7028542587b4cfc0d7fac6f657da8b0a4f59107a7215a028ff361e103a4f51ba0e079578dbde6beaae59ec5068ad9e6e6c2adca3e39c86df101e2c2a6f95b 2509 | languageName: node 2510 | linkType: hard 2511 | 2512 | "eastasianwidth@npm:^0.2.0": 2513 | version: 0.2.0 2514 | resolution: "eastasianwidth@npm:0.2.0" 2515 | checksum: 26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 2516 | languageName: node 2517 | linkType: hard 2518 | 2519 | "electron-to-chromium@npm:^1.4.648": 2520 | version: 1.4.667 2521 | resolution: "electron-to-chromium@npm:1.4.667" 2522 | checksum: 52150413c692470c0fcc9da9eaf020e7c8999f188dcf057d2cde032535d59f4a5201d1cffdffe3d5c86f44dd8feead67e42a509af9fe9055d74dedc491eb62e6 2523 | languageName: node 2524 | linkType: hard 2525 | 2526 | "emoji-regex@npm:^8.0.0": 2527 | version: 8.0.0 2528 | resolution: "emoji-regex@npm:8.0.0" 2529 | checksum: b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 2530 | languageName: node 2531 | linkType: hard 2532 | 2533 | "emoji-regex@npm:^9.2.2": 2534 | version: 9.2.2 2535 | resolution: "emoji-regex@npm:9.2.2" 2536 | checksum: af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 2537 | languageName: node 2538 | linkType: hard 2539 | 2540 | "encoding-down@npm:^6.3.0": 2541 | version: 6.3.0 2542 | resolution: "encoding-down@npm:6.3.0" 2543 | dependencies: 2544 | abstract-leveldown: "npm:^6.2.1" 2545 | inherits: "npm:^2.0.3" 2546 | level-codec: "npm:^9.0.0" 2547 | level-errors: "npm:^2.0.0" 2548 | checksum: f7e92149863863c11e04d71ceb71baa1772270dc9ef15cbdbb155fed0a7d31c823682e043af3100f96ce8ab2e0a70a2464c1fa4902d4dce9a0584498f40d07bf 2549 | languageName: node 2550 | linkType: hard 2551 | 2552 | "encoding@npm:^0.1.13": 2553 | version: 0.1.13 2554 | resolution: "encoding@npm:0.1.13" 2555 | dependencies: 2556 | iconv-lite: "npm:^0.6.2" 2557 | checksum: 36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 2558 | languageName: node 2559 | linkType: hard 2560 | 2561 | "env-paths@npm:^2.2.0": 2562 | version: 2.2.1 2563 | resolution: "env-paths@npm:2.2.1" 2564 | checksum: 285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 2565 | languageName: node 2566 | linkType: hard 2567 | 2568 | "err-code@npm:^2.0.2": 2569 | version: 2.0.3 2570 | resolution: "err-code@npm:2.0.3" 2571 | checksum: b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 2572 | languageName: node 2573 | linkType: hard 2574 | 2575 | "errno@npm:~0.1.1": 2576 | version: 0.1.8 2577 | resolution: "errno@npm:0.1.8" 2578 | dependencies: 2579 | prr: "npm:~1.0.1" 2580 | bin: 2581 | errno: cli.js 2582 | checksum: 83758951967ec57bf00b5f5b7dc797e6d65a6171e57ea57adcf1bd1a0b477fd9b5b35fae5be1ff18f4090ed156bce1db749fe7e317aac19d485a5d150f6a4936 2583 | languageName: node 2584 | linkType: hard 2585 | 2586 | "esbuild@npm:0.19.4": 2587 | version: 0.19.4 2588 | resolution: "esbuild@npm:0.19.4" 2589 | dependencies: 2590 | "@esbuild/android-arm": "npm:0.19.4" 2591 | "@esbuild/android-arm64": "npm:0.19.4" 2592 | "@esbuild/android-x64": "npm:0.19.4" 2593 | "@esbuild/darwin-arm64": "npm:0.19.4" 2594 | "@esbuild/darwin-x64": "npm:0.19.4" 2595 | "@esbuild/freebsd-arm64": "npm:0.19.4" 2596 | "@esbuild/freebsd-x64": "npm:0.19.4" 2597 | "@esbuild/linux-arm": "npm:0.19.4" 2598 | "@esbuild/linux-arm64": "npm:0.19.4" 2599 | "@esbuild/linux-ia32": "npm:0.19.4" 2600 | "@esbuild/linux-loong64": "npm:0.19.4" 2601 | "@esbuild/linux-mips64el": "npm:0.19.4" 2602 | "@esbuild/linux-ppc64": "npm:0.19.4" 2603 | "@esbuild/linux-riscv64": "npm:0.19.4" 2604 | "@esbuild/linux-s390x": "npm:0.19.4" 2605 | "@esbuild/linux-x64": "npm:0.19.4" 2606 | "@esbuild/netbsd-x64": "npm:0.19.4" 2607 | "@esbuild/openbsd-x64": "npm:0.19.4" 2608 | "@esbuild/sunos-x64": "npm:0.19.4" 2609 | "@esbuild/win32-arm64": "npm:0.19.4" 2610 | "@esbuild/win32-ia32": "npm:0.19.4" 2611 | "@esbuild/win32-x64": "npm:0.19.4" 2612 | dependenciesMeta: 2613 | "@esbuild/android-arm": 2614 | optional: true 2615 | "@esbuild/android-arm64": 2616 | optional: true 2617 | "@esbuild/android-x64": 2618 | optional: true 2619 | "@esbuild/darwin-arm64": 2620 | optional: true 2621 | "@esbuild/darwin-x64": 2622 | optional: true 2623 | "@esbuild/freebsd-arm64": 2624 | optional: true 2625 | "@esbuild/freebsd-x64": 2626 | optional: true 2627 | "@esbuild/linux-arm": 2628 | optional: true 2629 | "@esbuild/linux-arm64": 2630 | optional: true 2631 | "@esbuild/linux-ia32": 2632 | optional: true 2633 | "@esbuild/linux-loong64": 2634 | optional: true 2635 | "@esbuild/linux-mips64el": 2636 | optional: true 2637 | "@esbuild/linux-ppc64": 2638 | optional: true 2639 | "@esbuild/linux-riscv64": 2640 | optional: true 2641 | "@esbuild/linux-s390x": 2642 | optional: true 2643 | "@esbuild/linux-x64": 2644 | optional: true 2645 | "@esbuild/netbsd-x64": 2646 | optional: true 2647 | "@esbuild/openbsd-x64": 2648 | optional: true 2649 | "@esbuild/sunos-x64": 2650 | optional: true 2651 | "@esbuild/win32-arm64": 2652 | optional: true 2653 | "@esbuild/win32-ia32": 2654 | optional: true 2655 | "@esbuild/win32-x64": 2656 | optional: true 2657 | bin: 2658 | esbuild: bin/esbuild 2659 | checksum: e92fd4bb067d649b8a518b7b3bcb8ac0744a8ae573e56f87beb898cdbff3c86d319ceb6999fa91c2fa0fd6899c8c2945b8a9f37631deef8a3e3f0f579e8ff7f6 2660 | languageName: node 2661 | linkType: hard 2662 | 2663 | "esbuild@npm:^0.18.10": 2664 | version: 0.18.20 2665 | resolution: "esbuild@npm:0.18.20" 2666 | dependencies: 2667 | "@esbuild/android-arm": "npm:0.18.20" 2668 | "@esbuild/android-arm64": "npm:0.18.20" 2669 | "@esbuild/android-x64": "npm:0.18.20" 2670 | "@esbuild/darwin-arm64": "npm:0.18.20" 2671 | "@esbuild/darwin-x64": "npm:0.18.20" 2672 | "@esbuild/freebsd-arm64": "npm:0.18.20" 2673 | "@esbuild/freebsd-x64": "npm:0.18.20" 2674 | "@esbuild/linux-arm": "npm:0.18.20" 2675 | "@esbuild/linux-arm64": "npm:0.18.20" 2676 | "@esbuild/linux-ia32": "npm:0.18.20" 2677 | "@esbuild/linux-loong64": "npm:0.18.20" 2678 | "@esbuild/linux-mips64el": "npm:0.18.20" 2679 | "@esbuild/linux-ppc64": "npm:0.18.20" 2680 | "@esbuild/linux-riscv64": "npm:0.18.20" 2681 | "@esbuild/linux-s390x": "npm:0.18.20" 2682 | "@esbuild/linux-x64": "npm:0.18.20" 2683 | "@esbuild/netbsd-x64": "npm:0.18.20" 2684 | "@esbuild/openbsd-x64": "npm:0.18.20" 2685 | "@esbuild/sunos-x64": "npm:0.18.20" 2686 | "@esbuild/win32-arm64": "npm:0.18.20" 2687 | "@esbuild/win32-ia32": "npm:0.18.20" 2688 | "@esbuild/win32-x64": "npm:0.18.20" 2689 | dependenciesMeta: 2690 | "@esbuild/android-arm": 2691 | optional: true 2692 | "@esbuild/android-arm64": 2693 | optional: true 2694 | "@esbuild/android-x64": 2695 | optional: true 2696 | "@esbuild/darwin-arm64": 2697 | optional: true 2698 | "@esbuild/darwin-x64": 2699 | optional: true 2700 | "@esbuild/freebsd-arm64": 2701 | optional: true 2702 | "@esbuild/freebsd-x64": 2703 | optional: true 2704 | "@esbuild/linux-arm": 2705 | optional: true 2706 | "@esbuild/linux-arm64": 2707 | optional: true 2708 | "@esbuild/linux-ia32": 2709 | optional: true 2710 | "@esbuild/linux-loong64": 2711 | optional: true 2712 | "@esbuild/linux-mips64el": 2713 | optional: true 2714 | "@esbuild/linux-ppc64": 2715 | optional: true 2716 | "@esbuild/linux-riscv64": 2717 | optional: true 2718 | "@esbuild/linux-s390x": 2719 | optional: true 2720 | "@esbuild/linux-x64": 2721 | optional: true 2722 | "@esbuild/netbsd-x64": 2723 | optional: true 2724 | "@esbuild/openbsd-x64": 2725 | optional: true 2726 | "@esbuild/sunos-x64": 2727 | optional: true 2728 | "@esbuild/win32-arm64": 2729 | optional: true 2730 | "@esbuild/win32-ia32": 2731 | optional: true 2732 | "@esbuild/win32-x64": 2733 | optional: true 2734 | bin: 2735 | esbuild: bin/esbuild 2736 | checksum: 473b1d92842f50a303cf948a11ebd5f69581cd254d599dd9d62f9989858e0533f64e83b723b5e1398a5b488c0f5fd088795b4235f65ecaf4f007d4b79f04bc88 2737 | languageName: node 2738 | linkType: hard 2739 | 2740 | "escalade@npm:^3.1.1": 2741 | version: 3.1.2 2742 | resolution: "escalade@npm:3.1.2" 2743 | checksum: 6b4adafecd0682f3aa1cd1106b8fff30e492c7015b178bc81b2d2f75106dabea6c6d6e8508fc491bd58e597c74abb0e8e2368f943ecb9393d4162e3c2f3cf287 2744 | languageName: node 2745 | linkType: hard 2746 | 2747 | "escape-string-regexp@npm:^1.0.5": 2748 | version: 1.0.5 2749 | resolution: "escape-string-regexp@npm:1.0.5" 2750 | checksum: a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 2751 | languageName: node 2752 | linkType: hard 2753 | 2754 | "eventemitter3@npm:^4.0.7": 2755 | version: 4.0.7 2756 | resolution: "eventemitter3@npm:4.0.7" 2757 | checksum: 5f6d97cbcbac47be798e6355e3a7639a84ee1f7d9b199a07017f1d2f1e2fe236004d14fa5dfaeba661f94ea57805385e326236a6debbc7145c8877fbc0297c6b 2758 | languageName: node 2759 | linkType: hard 2760 | 2761 | "execa@npm:^5.1.1": 2762 | version: 5.1.1 2763 | resolution: "execa@npm:5.1.1" 2764 | dependencies: 2765 | cross-spawn: "npm:^7.0.3" 2766 | get-stream: "npm:^6.0.0" 2767 | human-signals: "npm:^2.1.0" 2768 | is-stream: "npm:^2.0.0" 2769 | merge-stream: "npm:^2.0.0" 2770 | npm-run-path: "npm:^4.0.1" 2771 | onetime: "npm:^5.1.2" 2772 | signal-exit: "npm:^3.0.3" 2773 | strip-final-newline: "npm:^2.0.0" 2774 | checksum: c8e615235e8de4c5addf2fa4c3da3e3aa59ce975a3e83533b4f6a71750fb816a2e79610dc5f1799b6e28976c9ae86747a36a606655bf8cb414a74d8d507b304f 2775 | languageName: node 2776 | linkType: hard 2777 | 2778 | "exit-hook@npm:^2.2.1": 2779 | version: 2.2.1 2780 | resolution: "exit-hook@npm:2.2.1" 2781 | checksum: 0803726d1b60aade6afd10c73e5a7e1bf256ac9bee78362a88e91a4f735e8c67899f2853ddc613072c05af07bbb067a9978a740e614db1aeef167d50c6dc5c09 2782 | languageName: node 2783 | linkType: hard 2784 | 2785 | "exponential-backoff@npm:^3.1.1": 2786 | version: 3.1.1 2787 | resolution: "exponential-backoff@npm:3.1.1" 2788 | checksum: 160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 2789 | languageName: node 2790 | linkType: hard 2791 | 2792 | "foreground-child@npm:^3.1.0": 2793 | version: 3.1.1 2794 | resolution: "foreground-child@npm:3.1.1" 2795 | dependencies: 2796 | cross-spawn: "npm:^7.0.0" 2797 | signal-exit: "npm:^4.0.1" 2798 | checksum: 9700a0285628abaeb37007c9a4d92bd49f67210f09067638774338e146c8e9c825c5c877f072b2f75f41dc6a2d0be8664f79ffc03f6576649f54a84fb9b47de0 2799 | languageName: node 2800 | linkType: hard 2801 | 2802 | "fs-minipass@npm:^2.0.0": 2803 | version: 2.1.0 2804 | resolution: "fs-minipass@npm:2.1.0" 2805 | dependencies: 2806 | minipass: "npm:^3.0.0" 2807 | checksum: 703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004 2808 | languageName: node 2809 | linkType: hard 2810 | 2811 | "fs-minipass@npm:^3.0.0": 2812 | version: 3.0.3 2813 | resolution: "fs-minipass@npm:3.0.3" 2814 | dependencies: 2815 | minipass: "npm:^7.0.3" 2816 | checksum: 63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 2817 | languageName: node 2818 | linkType: hard 2819 | 2820 | "fsevents@npm:2.3.3, fsevents@npm:~2.3.2": 2821 | version: 2.3.3 2822 | resolution: "fsevents@npm:2.3.3" 2823 | dependencies: 2824 | node-gyp: "npm:latest" 2825 | checksum: a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 2826 | conditions: os=darwin 2827 | languageName: node 2828 | linkType: hard 2829 | 2830 | "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": 2831 | version: 2.3.3 2832 | resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" 2833 | dependencies: 2834 | node-gyp: "npm:latest" 2835 | conditions: os=darwin 2836 | languageName: node 2837 | linkType: hard 2838 | 2839 | "gensync@npm:^1.0.0-beta.2": 2840 | version: 1.0.0-beta.2 2841 | resolution: "gensync@npm:1.0.0-beta.2" 2842 | checksum: 782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8 2843 | languageName: node 2844 | linkType: hard 2845 | 2846 | "get-caller-file@npm:^2.0.5": 2847 | version: 2.0.5 2848 | resolution: "get-caller-file@npm:2.0.5" 2849 | checksum: c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde 2850 | languageName: node 2851 | linkType: hard 2852 | 2853 | "get-nonce@npm:^1.0.0": 2854 | version: 1.0.1 2855 | resolution: "get-nonce@npm:1.0.1" 2856 | checksum: 2d7df55279060bf0568549e1ffc9b84bc32a32b7541675ca092dce56317cdd1a59a98dcc4072c9f6a980779440139a3221d7486f52c488e69dc0fd27b1efb162 2857 | languageName: node 2858 | linkType: hard 2859 | 2860 | "get-source@npm:^2.0.12": 2861 | version: 2.0.12 2862 | resolution: "get-source@npm:2.0.12" 2863 | dependencies: 2864 | data-uri-to-buffer: "npm:^2.0.0" 2865 | source-map: "npm:^0.6.1" 2866 | checksum: b1db46d28902344fd9407e1f0ed0b8f3a85cb4650f85ba8cee9c0b422fc75118172f12f735706e2c6e034617b13a2fbc5266e7fab617ecb184f0cee074b9dd3e 2867 | languageName: node 2868 | linkType: hard 2869 | 2870 | "get-stream@npm:^6.0.0": 2871 | version: 6.0.1 2872 | resolution: "get-stream@npm:6.0.1" 2873 | checksum: 49825d57d3fd6964228e6200a58169464b8e8970489b3acdc24906c782fb7f01f9f56f8e6653c4a50713771d6658f7cfe051e5eb8c12e334138c9c918b296341 2874 | languageName: node 2875 | linkType: hard 2876 | 2877 | "glob-to-regexp@npm:^0.4.1": 2878 | version: 0.4.1 2879 | resolution: "glob-to-regexp@npm:0.4.1" 2880 | checksum: 0486925072d7a916f052842772b61c3e86247f0a80cc0deb9b5a3e8a1a9faad5b04fb6f58986a09f34d3e96cd2a22a24b7e9882fb1cf904c31e9a310de96c429 2881 | languageName: node 2882 | linkType: hard 2883 | 2884 | "glob@npm:^10.2.2, glob@npm:^10.3.10": 2885 | version: 10.3.10 2886 | resolution: "glob@npm:10.3.10" 2887 | dependencies: 2888 | foreground-child: "npm:^3.1.0" 2889 | jackspeak: "npm:^2.3.5" 2890 | minimatch: "npm:^9.0.1" 2891 | minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" 2892 | path-scurry: "npm:^1.10.1" 2893 | bin: 2894 | glob: dist/esm/bin.mjs 2895 | checksum: 13d8a1feb7eac7945f8c8480e11cd4a44b24d26503d99a8d8ac8d5aefbf3e9802a2b6087318a829fad04cb4e829f25c5f4f1110c68966c498720dd261c7e344d 2896 | languageName: node 2897 | linkType: hard 2898 | 2899 | "globals@npm:^11.1.0": 2900 | version: 11.12.0 2901 | resolution: "globals@npm:11.12.0" 2902 | checksum: 758f9f258e7b19226bd8d4af5d3b0dcf7038780fb23d82e6f98932c44e239f884847f1766e8fa9cc5635ccb3204f7fa7314d4408dd4002a5e8ea827b4018f0a1 2903 | languageName: node 2904 | linkType: hard 2905 | 2906 | "graceful-fs@npm:^4.2.6": 2907 | version: 4.2.11 2908 | resolution: "graceful-fs@npm:4.2.11" 2909 | checksum: 386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 2910 | languageName: node 2911 | linkType: hard 2912 | 2913 | "has-flag@npm:^3.0.0": 2914 | version: 3.0.0 2915 | resolution: "has-flag@npm:3.0.0" 2916 | checksum: 1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473 2917 | languageName: node 2918 | linkType: hard 2919 | 2920 | "has-flag@npm:^4.0.0": 2921 | version: 4.0.0 2922 | resolution: "has-flag@npm:4.0.0" 2923 | checksum: 2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 2924 | languageName: node 2925 | linkType: hard 2926 | 2927 | "hotkeys-js@npm:^3.11.2": 2928 | version: 3.13.7 2929 | resolution: "hotkeys-js@npm:3.13.7" 2930 | checksum: 5e3ed01d1993202a0c77298caf1b9ec13d70b7fe1a85fcc45f5886f1805318af32e01039c952d45ad0f768984887eca85942a3b5326f39cd2bc3dede1c3ba949 2931 | languageName: node 2932 | linkType: hard 2933 | 2934 | "http-cache-semantics@npm:^4.1.1": 2935 | version: 4.1.1 2936 | resolution: "http-cache-semantics@npm:4.1.1" 2937 | checksum: ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc 2938 | languageName: node 2939 | linkType: hard 2940 | 2941 | "http-proxy-agent@npm:^7.0.0": 2942 | version: 7.0.1 2943 | resolution: "http-proxy-agent@npm:7.0.1" 2944 | dependencies: 2945 | agent-base: "npm:^7.1.0" 2946 | debug: "npm:^4.3.4" 2947 | checksum: 09bc7ea134a133caeb57c9487e6ee59c61aebdc8f531a86c4638cffc0d04cf7415b9d74d32e6e7781e1e931e882d1163c953430aefd6fbd1465b5e033432a040 2948 | languageName: node 2949 | linkType: hard 2950 | 2951 | "https-proxy-agent@npm:^7.0.1": 2952 | version: 7.0.3 2953 | resolution: "https-proxy-agent@npm:7.0.3" 2954 | dependencies: 2955 | agent-base: "npm:^7.0.2" 2956 | debug: "npm:4" 2957 | checksum: 0a5d4beb8f3e71755e3dc62e421aceb3df8bf0d20892dfbdc54de7791f9d34be222c6acb8c83930b138a4bab9387a9f4e06ea0b171cda8e167c3aa72d437f8d8 2958 | languageName: node 2959 | linkType: hard 2960 | 2961 | "human-signals@npm:^2.1.0": 2962 | version: 2.1.0 2963 | resolution: "human-signals@npm:2.1.0" 2964 | checksum: 695edb3edfcfe9c8b52a76926cd31b36978782062c0ed9b1192b36bebc75c4c87c82e178dfcb0ed0fc27ca59d434198aac0bd0be18f5781ded775604db22304a 2965 | languageName: node 2966 | linkType: hard 2967 | 2968 | "iconv-lite@npm:^0.6.2": 2969 | version: 0.6.3 2970 | resolution: "iconv-lite@npm:0.6.3" 2971 | dependencies: 2972 | safer-buffer: "npm:>= 2.1.2 < 3.0.0" 2973 | checksum: 98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 2974 | languageName: node 2975 | linkType: hard 2976 | 2977 | "idb@npm:^7.1.1": 2978 | version: 7.1.1 2979 | resolution: "idb@npm:7.1.1" 2980 | checksum: 72418e4397638797ee2089f97b45fc29f937b830bc0eb4126f4a9889ecf10320ceacf3a177fe5d7ffaf6b4fe38b20bbd210151549bfdc881db8081eed41c870d 2981 | languageName: node 2982 | linkType: hard 2983 | 2984 | "ieee754@npm:^1.1.13": 2985 | version: 1.2.1 2986 | resolution: "ieee754@npm:1.2.1" 2987 | checksum: b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb 2988 | languageName: node 2989 | linkType: hard 2990 | 2991 | "immediate@npm:^3.2.3": 2992 | version: 3.3.0 2993 | resolution: "immediate@npm:3.3.0" 2994 | checksum: 40eab095d5944ad79af054700beee97000271fde8743720932d8eb41ccbf2cb8c855ff95b128cf9a7fec523a4f11ee2e392b9f2fa6456b055b1160f1b4ad3e3b 2995 | languageName: node 2996 | linkType: hard 2997 | 2998 | "imurmurhash@npm:^0.1.4": 2999 | version: 0.1.4 3000 | resolution: "imurmurhash@npm:0.1.4" 3001 | checksum: 8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 3002 | languageName: node 3003 | linkType: hard 3004 | 3005 | "indent-string@npm:^4.0.0": 3006 | version: 4.0.0 3007 | resolution: "indent-string@npm:4.0.0" 3008 | checksum: 1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f 3009 | languageName: node 3010 | linkType: hard 3011 | 3012 | "inherits@npm:2.0.3": 3013 | version: 2.0.3 3014 | resolution: "inherits@npm:2.0.3" 3015 | checksum: 6e56402373149ea076a434072671f9982f5fad030c7662be0332122fe6c0fa490acb3cc1010d90b6eff8d640b1167d77674add52dfd1bb85d545cf29e80e73e7 3016 | languageName: node 3017 | linkType: hard 3018 | 3019 | "inherits@npm:^2.0.3, inherits@npm:^2.0.4": 3020 | version: 2.0.4 3021 | resolution: "inherits@npm:2.0.4" 3022 | checksum: 4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 3023 | languageName: node 3024 | linkType: hard 3025 | 3026 | "invariant@npm:^2.2.4": 3027 | version: 2.2.4 3028 | resolution: "invariant@npm:2.2.4" 3029 | dependencies: 3030 | loose-envify: "npm:^1.0.0" 3031 | checksum: 5af133a917c0bcf65e84e7f23e779e7abc1cd49cb7fdc62d00d1de74b0d8c1b5ee74ac7766099fb3be1b05b26dfc67bab76a17030d2fe7ea2eef867434362dfc 3032 | languageName: node 3033 | linkType: hard 3034 | 3035 | "ip-address@npm:^9.0.5": 3036 | version: 9.0.5 3037 | resolution: "ip-address@npm:9.0.5" 3038 | dependencies: 3039 | jsbn: "npm:1.1.0" 3040 | sprintf-js: "npm:^1.1.3" 3041 | checksum: 331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc 3042 | languageName: node 3043 | linkType: hard 3044 | 3045 | "is-docker@npm:^2.0.0": 3046 | version: 2.2.1 3047 | resolution: "is-docker@npm:2.2.1" 3048 | bin: 3049 | is-docker: cli.js 3050 | checksum: e828365958d155f90c409cdbe958f64051d99e8aedc2c8c4cd7c89dcf35329daed42f7b99346f7828df013e27deb8f721cf9408ba878c76eb9e8290235fbcdcc 3051 | languageName: node 3052 | linkType: hard 3053 | 3054 | "is-fullwidth-code-point@npm:^3.0.0": 3055 | version: 3.0.0 3056 | resolution: "is-fullwidth-code-point@npm:3.0.0" 3057 | checksum: bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc 3058 | languageName: node 3059 | linkType: hard 3060 | 3061 | "is-lambda@npm:^1.0.1": 3062 | version: 1.0.1 3063 | resolution: "is-lambda@npm:1.0.1" 3064 | checksum: 85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d 3065 | languageName: node 3066 | linkType: hard 3067 | 3068 | "is-plain-object@npm:^5.0.0": 3069 | version: 5.0.0 3070 | resolution: "is-plain-object@npm:5.0.0" 3071 | checksum: 893e42bad832aae3511c71fd61c0bf61aa3a6d853061c62a307261842727d0d25f761ce9379f7ba7226d6179db2a3157efa918e7fe26360f3bf0842d9f28942c 3072 | languageName: node 3073 | linkType: hard 3074 | 3075 | "is-stream@npm:^2.0.0": 3076 | version: 2.0.1 3077 | resolution: "is-stream@npm:2.0.1" 3078 | checksum: 7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5 3079 | languageName: node 3080 | linkType: hard 3081 | 3082 | "is-wsl@npm:^2.2.0": 3083 | version: 2.2.0 3084 | resolution: "is-wsl@npm:2.2.0" 3085 | dependencies: 3086 | is-docker: "npm:^2.0.0" 3087 | checksum: a6fa2d370d21be487c0165c7a440d567274fbba1a817f2f0bfa41cc5e3af25041d84267baa22df66696956038a43973e72fca117918c91431920bdef490fa25e 3088 | languageName: node 3089 | linkType: hard 3090 | 3091 | "isexe@npm:^2.0.0": 3092 | version: 2.0.0 3093 | resolution: "isexe@npm:2.0.0" 3094 | checksum: 228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d 3095 | languageName: node 3096 | linkType: hard 3097 | 3098 | "isexe@npm:^3.1.1": 3099 | version: 3.1.1 3100 | resolution: "isexe@npm:3.1.1" 3101 | checksum: 9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 3102 | languageName: node 3103 | linkType: hard 3104 | 3105 | "isomorphic.js@npm:^0.2.4": 3106 | version: 0.2.5 3107 | resolution: "isomorphic.js@npm:0.2.5" 3108 | checksum: 7cd268c8e58146a8160c8cd16596291fd1fbf3e8799a325f269accda9dc1238806e371ccef0b66fe2ad957209230c55997248d8b6d02cf2d7c575ffeb759c789 3109 | languageName: node 3110 | linkType: hard 3111 | 3112 | "jackspeak@npm:^2.3.5": 3113 | version: 2.3.6 3114 | resolution: "jackspeak@npm:2.3.6" 3115 | dependencies: 3116 | "@isaacs/cliui": "npm:^8.0.2" 3117 | "@pkgjs/parseargs": "npm:^0.11.0" 3118 | dependenciesMeta: 3119 | "@pkgjs/parseargs": 3120 | optional: true 3121 | checksum: f01d8f972d894cd7638bc338e9ef5ddb86f7b208ce177a36d718eac96ec86638a6efa17d0221b10073e64b45edc2ce15340db9380b1f5d5c5d000cbc517dc111 3122 | languageName: node 3123 | linkType: hard 3124 | 3125 | "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": 3126 | version: 4.0.0 3127 | resolution: "js-tokens@npm:4.0.0" 3128 | checksum: e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed 3129 | languageName: node 3130 | linkType: hard 3131 | 3132 | "jsbn@npm:1.1.0": 3133 | version: 1.1.0 3134 | resolution: "jsbn@npm:1.1.0" 3135 | checksum: 4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 3136 | languageName: node 3137 | linkType: hard 3138 | 3139 | "jsesc@npm:^2.5.1": 3140 | version: 2.5.2 3141 | resolution: "jsesc@npm:2.5.2" 3142 | bin: 3143 | jsesc: bin/jsesc 3144 | checksum: dbf59312e0ebf2b4405ef413ec2b25abb5f8f4d9bc5fb8d9f90381622ebca5f2af6a6aa9a8578f65903f9e33990a6dc798edd0ce5586894bf0e9e31803a1de88 3145 | languageName: node 3146 | linkType: hard 3147 | 3148 | "json5@npm:^2.2.3": 3149 | version: 2.2.3 3150 | resolution: "json5@npm:2.2.3" 3151 | bin: 3152 | json5: lib/cli.js 3153 | checksum: 5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c 3154 | languageName: node 3155 | linkType: hard 3156 | 3157 | "level-codec@npm:^9.0.0": 3158 | version: 9.0.2 3159 | resolution: "level-codec@npm:9.0.2" 3160 | dependencies: 3161 | buffer: "npm:^5.6.0" 3162 | checksum: 38a7eb8beed37969ad93160251d5be8e667d4ea0ee199d5e72e61739e552987a71acaa2daa1d2dbc7541f0cfb64e2bd8b50c3d8757cfa41468d8631aa45cc0eb 3163 | languageName: node 3164 | linkType: hard 3165 | 3166 | "level-concat-iterator@npm:~2.0.0": 3167 | version: 2.0.1 3168 | resolution: "level-concat-iterator@npm:2.0.1" 3169 | checksum: b0a55ec63137b159fdb69204fbac02f33fbfbaa61563db21121300f6da6a35dd4654dc872df6ca1067c0ca4f98074ccbb59c28044d0043600a940a506c3d4a71 3170 | languageName: node 3171 | linkType: hard 3172 | 3173 | "level-errors@npm:^2.0.0, level-errors@npm:~2.0.0": 3174 | version: 2.0.1 3175 | resolution: "level-errors@npm:2.0.1" 3176 | dependencies: 3177 | errno: "npm:~0.1.1" 3178 | checksum: 9e664afb98febe22e6ccde063be85e2b6e472414325bea87f0b2288bec589ef97658028f8654dc4716a06cda15c205e910b6cf5eb3906ed3ca06ea84d370002f 3179 | languageName: node 3180 | linkType: hard 3181 | 3182 | "level-iterator-stream@npm:~4.0.0": 3183 | version: 4.0.2 3184 | resolution: "level-iterator-stream@npm:4.0.2" 3185 | dependencies: 3186 | inherits: "npm:^2.0.4" 3187 | readable-stream: "npm:^3.4.0" 3188 | xtend: "npm:^4.0.2" 3189 | checksum: 29994d5449428c246dc7d983220ca333ddaaa9e0fe9a664bb23750693db6cff4be62e8e31b6e8a0e1057c09a94580b965206c048701f96c3e8e97720a3c1e7c8 3190 | languageName: node 3191 | linkType: hard 3192 | 3193 | "level-js@npm:^5.0.0": 3194 | version: 5.0.2 3195 | resolution: "level-js@npm:5.0.2" 3196 | dependencies: 3197 | abstract-leveldown: "npm:~6.2.3" 3198 | buffer: "npm:^5.5.0" 3199 | inherits: "npm:^2.0.3" 3200 | ltgt: "npm:^2.1.2" 3201 | checksum: 2f5ccc96541ee9191bb9f8fd970918ade426d3dbb68e0414267a3c204d04952ef72651be241d40579dcb178948c14be5c36758da99df76a04a31d6227949f8a6 3202 | languageName: node 3203 | linkType: hard 3204 | 3205 | "level-packager@npm:^5.1.0": 3206 | version: 5.1.1 3207 | resolution: "level-packager@npm:5.1.1" 3208 | dependencies: 3209 | encoding-down: "npm:^6.3.0" 3210 | levelup: "npm:^4.3.2" 3211 | checksum: dc3ad1d3bc1fc85154ab85ac8220ffc7ff4da7b2be725c53ea8716780a2ef37d392c7dffae769a0419341f19febe78d86da998981b4ba3be673db1cb95051e95 3212 | languageName: node 3213 | linkType: hard 3214 | 3215 | "level-supports@npm:~1.0.0": 3216 | version: 1.0.1 3217 | resolution: "level-supports@npm:1.0.1" 3218 | dependencies: 3219 | xtend: "npm:^4.0.2" 3220 | checksum: 6e8eb2be4c2c55e04e71dff831421a81d95df571e0004b6e6e0cee8421e792e22b3ab94ecaa925dc626164f442185b2e2bfb5d52b257d1639f8f9da8714c8335 3221 | languageName: node 3222 | linkType: hard 3223 | 3224 | "level@npm:^6.0.1": 3225 | version: 6.0.1 3226 | resolution: "level@npm:6.0.1" 3227 | dependencies: 3228 | level-js: "npm:^5.0.0" 3229 | level-packager: "npm:^5.1.0" 3230 | leveldown: "npm:^5.4.0" 3231 | checksum: 275068a7c58e6fd3eb53be2eeaf90d6ba6d566904591b68fe10022affc16b28575a2ccf580f384d38ea64c116b2c8046e517a34a0c3b5da12c635a4732eccf6d 3232 | languageName: node 3233 | linkType: hard 3234 | 3235 | "leveldown@npm:^5.4.0": 3236 | version: 5.6.0 3237 | resolution: "leveldown@npm:5.6.0" 3238 | dependencies: 3239 | abstract-leveldown: "npm:~6.2.1" 3240 | napi-macros: "npm:~2.0.0" 3241 | node-gyp: "npm:latest" 3242 | node-gyp-build: "npm:~4.1.0" 3243 | checksum: d5c4569aca5a856da4012ecaf507a7ba3e28ef18bde000a1826bf7a485357ddd18ea9ea335e94b9f12274d19b9b7d28d3268ac330f2e96d0067115edf8dc3396 3244 | languageName: node 3245 | linkType: hard 3246 | 3247 | "levelup@npm:^4.3.2": 3248 | version: 4.4.0 3249 | resolution: "levelup@npm:4.4.0" 3250 | dependencies: 3251 | deferred-leveldown: "npm:~5.3.0" 3252 | level-errors: "npm:~2.0.0" 3253 | level-iterator-stream: "npm:~4.0.0" 3254 | level-supports: "npm:~1.0.0" 3255 | xtend: "npm:~4.0.0" 3256 | checksum: e67eeb72cf10face92f73527b63ea0754bc3ab7ced76f8bf909fb51db1a2e687e2206415807c2de6862902eb00046e5bf34d64d587e3892d4cb89db687c2a957 3257 | languageName: node 3258 | linkType: hard 3259 | 3260 | "lib0@npm:^0.2.31, lib0@npm:^0.2.43, lib0@npm:^0.2.52, lib0@npm:^0.2.85, lib0@npm:^0.2.86": 3261 | version: 0.2.88 3262 | resolution: "lib0@npm:0.2.88" 3263 | dependencies: 3264 | isomorphic.js: "npm:^0.2.4" 3265 | bin: 3266 | 0gentesthtml: bin/gentesthtml.js 3267 | 0serve: bin/0serve.js 3268 | checksum: f2cb281c7dab264608072d5e6a27ff277599dd9f62f0e7ce82e160b3fc7588557c6d02ae67ba06c7b12329420cb02169198607e63f41c97b8d574c232717dc3c 3269 | languageName: node 3270 | linkType: hard 3271 | 3272 | "lodash.debounce@npm:^4.0.8": 3273 | version: 4.0.8 3274 | resolution: "lodash.debounce@npm:4.0.8" 3275 | checksum: 762998a63e095412b6099b8290903e0a8ddcb353ac6e2e0f2d7e7d03abd4275fe3c689d88960eb90b0dde4f177554d51a690f22a343932ecbc50a5d111849987 3276 | languageName: node 3277 | linkType: hard 3278 | 3279 | "lodash.isequal@npm:^4.5.0": 3280 | version: 4.5.0 3281 | resolution: "lodash.isequal@npm:4.5.0" 3282 | checksum: dfdb2356db19631a4b445d5f37868a095e2402292d59539a987f134a8778c62a2810c2452d11ae9e6dcac71fc9de40a6fedcb20e2952a15b431ad8b29e50e28f 3283 | languageName: node 3284 | linkType: hard 3285 | 3286 | "lodash.throttle@npm:^4.1.1": 3287 | version: 4.1.1 3288 | resolution: "lodash.throttle@npm:4.1.1" 3289 | checksum: 14628013e9e7f65ac904fc82fd8ecb0e55a9c4c2416434b1dd9cf64ae70a8937f0b15376a39a68248530adc64887ed0fe2b75204b2c9ec3eea1cb2d66ddd125d 3290 | languageName: node 3291 | linkType: hard 3292 | 3293 | "lodash.uniq@npm:^4.5.0": 3294 | version: 4.5.0 3295 | resolution: "lodash.uniq@npm:4.5.0" 3296 | checksum: 262d400bb0952f112162a320cc4a75dea4f66078b9e7e3075ffbc9c6aa30b3e9df3cf20e7da7d566105e1ccf7804e4fbd7d804eee0b53de05d83f16ffbf41c5e 3297 | languageName: node 3298 | linkType: hard 3299 | 3300 | "lodash@npm:^4.17.21": 3301 | version: 4.17.21 3302 | resolution: "lodash@npm:4.17.21" 3303 | checksum: d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c 3304 | languageName: node 3305 | linkType: hard 3306 | 3307 | "loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0": 3308 | version: 1.4.0 3309 | resolution: "loose-envify@npm:1.4.0" 3310 | dependencies: 3311 | js-tokens: "npm:^3.0.0 || ^4.0.0" 3312 | bin: 3313 | loose-envify: cli.js 3314 | checksum: 655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e 3315 | languageName: node 3316 | linkType: hard 3317 | 3318 | "lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": 3319 | version: 10.2.0 3320 | resolution: "lru-cache@npm:10.2.0" 3321 | checksum: c9847612aa2daaef102d30542a8d6d9b2c2bb36581c1bf0dc3ebf5e5f3352c772a749e604afae2e46873b930a9e9523743faac4e5b937c576ab29196774712ee 3322 | languageName: node 3323 | linkType: hard 3324 | 3325 | "lru-cache@npm:^5.1.1": 3326 | version: 5.1.1 3327 | resolution: "lru-cache@npm:5.1.1" 3328 | dependencies: 3329 | yallist: "npm:^3.0.2" 3330 | checksum: 89b2ef2ef45f543011e38737b8a8622a2f8998cddf0e5437174ef8f1f70a8b9d14a918ab3e232cb3ba343b7abddffa667f0b59075b2b80e6b4d63c3de6127482 3331 | languageName: node 3332 | linkType: hard 3333 | 3334 | "lru-cache@npm:^6.0.0": 3335 | version: 6.0.0 3336 | resolution: "lru-cache@npm:6.0.0" 3337 | dependencies: 3338 | yallist: "npm:^4.0.0" 3339 | checksum: cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9 3340 | languageName: node 3341 | linkType: hard 3342 | 3343 | "ltgt@npm:^2.1.2": 3344 | version: 2.2.1 3345 | resolution: "ltgt@npm:2.2.1" 3346 | checksum: 60fdad732c3aa6acf37e927a5ef58c0d1776192321d55faa1f8775c134c27fbf20ef8ec542fb7f7f33033f79c2a2df75cac39b43e274b32e9d95400154cd41f3 3347 | languageName: node 3348 | linkType: hard 3349 | 3350 | "lz-string@npm:^1.4.4": 3351 | version: 1.5.0 3352 | resolution: "lz-string@npm:1.5.0" 3353 | bin: 3354 | lz-string: bin/bin.js 3355 | checksum: 36128e4de34791838abe979b19927c26e67201ca5acf00880377af7d765b38d1c60847e01c5ec61b1a260c48029084ab3893a3925fd6e48a04011364b089991b 3356 | languageName: node 3357 | linkType: hard 3358 | 3359 | "make-fetch-happen@npm:^13.0.0": 3360 | version: 13.0.0 3361 | resolution: "make-fetch-happen@npm:13.0.0" 3362 | dependencies: 3363 | "@npmcli/agent": "npm:^2.0.0" 3364 | cacache: "npm:^18.0.0" 3365 | http-cache-semantics: "npm:^4.1.1" 3366 | is-lambda: "npm:^1.0.1" 3367 | minipass: "npm:^7.0.2" 3368 | minipass-fetch: "npm:^3.0.0" 3369 | minipass-flush: "npm:^1.0.5" 3370 | minipass-pipeline: "npm:^1.2.4" 3371 | negotiator: "npm:^0.6.3" 3372 | promise-retry: "npm:^2.0.1" 3373 | ssri: "npm:^10.0.0" 3374 | checksum: 43b9f6dcbc6fe8b8604cb6396957c3698857a15ba4dbc38284f7f0e61f248300585ef1eb8cc62df54e9c724af977e45b5cdfd88320ef7f53e45070ed3488da55 3375 | languageName: node 3376 | linkType: hard 3377 | 3378 | "merge-stream@npm:^2.0.0": 3379 | version: 2.0.0 3380 | resolution: "merge-stream@npm:2.0.0" 3381 | checksum: 867fdbb30a6d58b011449b8885601ec1690c3e41c759ecd5a9d609094f7aed0096c37823ff4a7190ef0b8f22cc86beb7049196ff68c016e3b3c671d0dac91ce5 3382 | languageName: node 3383 | linkType: hard 3384 | 3385 | "mimic-fn@npm:^2.1.0": 3386 | version: 2.1.0 3387 | resolution: "mimic-fn@npm:2.1.0" 3388 | checksum: b26f5479d7ec6cc2bce275a08f146cf78f5e7b661b18114e2506dd91ec7ec47e7a25bf4360e5438094db0560bcc868079fb3b1fb3892b833c1ecbf63f80c95a4 3389 | languageName: node 3390 | linkType: hard 3391 | 3392 | "miniflare@npm:3.20230922.0": 3393 | version: 3.20230922.0 3394 | resolution: "miniflare@npm:3.20230922.0" 3395 | dependencies: 3396 | acorn: "npm:^8.8.0" 3397 | acorn-walk: "npm:^8.2.0" 3398 | capnp-ts: "npm:^0.7.0" 3399 | exit-hook: "npm:^2.2.1" 3400 | glob-to-regexp: "npm:^0.4.1" 3401 | source-map-support: "npm:0.5.21" 3402 | stoppable: "npm:^1.1.0" 3403 | undici: "npm:^5.22.1" 3404 | workerd: "npm:1.20230922.0" 3405 | ws: "npm:^8.11.0" 3406 | youch: "npm:^3.2.2" 3407 | zod: "npm:^3.20.6" 3408 | checksum: 07e1678ec4f28954d036b0c747a07f5f9e7c4f84b57e8f207a20e88bb77a754c74d62bbed50c4afb7b9a6f6bfe6afaec1b8291b3ac46046f1b0141b8ab537bb7 3409 | languageName: node 3410 | linkType: hard 3411 | 3412 | "minimatch@npm:^9.0.1": 3413 | version: 9.0.3 3414 | resolution: "minimatch@npm:9.0.3" 3415 | dependencies: 3416 | brace-expansion: "npm:^2.0.1" 3417 | checksum: 85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac 3418 | languageName: node 3419 | linkType: hard 3420 | 3421 | "minipass-collect@npm:^2.0.1": 3422 | version: 2.0.1 3423 | resolution: "minipass-collect@npm:2.0.1" 3424 | dependencies: 3425 | minipass: "npm:^7.0.3" 3426 | checksum: 5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e 3427 | languageName: node 3428 | linkType: hard 3429 | 3430 | "minipass-fetch@npm:^3.0.0": 3431 | version: 3.0.4 3432 | resolution: "minipass-fetch@npm:3.0.4" 3433 | dependencies: 3434 | encoding: "npm:^0.1.13" 3435 | minipass: "npm:^7.0.3" 3436 | minipass-sized: "npm:^1.0.3" 3437 | minizlib: "npm:^2.1.2" 3438 | dependenciesMeta: 3439 | encoding: 3440 | optional: true 3441 | checksum: 1b63c1f3313e88eeac4689f1b71c9f086598db9a189400e3ee960c32ed89e06737fa23976c9305c2d57464fb3fcdc12749d3378805c9d6176f5569b0d0ee8a75 3442 | languageName: node 3443 | linkType: hard 3444 | 3445 | "minipass-flush@npm:^1.0.5": 3446 | version: 1.0.5 3447 | resolution: "minipass-flush@npm:1.0.5" 3448 | dependencies: 3449 | minipass: "npm:^3.0.0" 3450 | checksum: 2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd 3451 | languageName: node 3452 | linkType: hard 3453 | 3454 | "minipass-pipeline@npm:^1.2.4": 3455 | version: 1.2.4 3456 | resolution: "minipass-pipeline@npm:1.2.4" 3457 | dependencies: 3458 | minipass: "npm:^3.0.0" 3459 | checksum: cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 3460 | languageName: node 3461 | linkType: hard 3462 | 3463 | "minipass-sized@npm:^1.0.3": 3464 | version: 1.0.3 3465 | resolution: "minipass-sized@npm:1.0.3" 3466 | dependencies: 3467 | minipass: "npm:^3.0.0" 3468 | checksum: 298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb 3469 | languageName: node 3470 | linkType: hard 3471 | 3472 | "minipass@npm:^3.0.0": 3473 | version: 3.3.6 3474 | resolution: "minipass@npm:3.3.6" 3475 | dependencies: 3476 | yallist: "npm:^4.0.0" 3477 | checksum: a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c 3478 | languageName: node 3479 | linkType: hard 3480 | 3481 | "minipass@npm:^5.0.0": 3482 | version: 5.0.0 3483 | resolution: "minipass@npm:5.0.0" 3484 | checksum: a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462 3485 | languageName: node 3486 | linkType: hard 3487 | 3488 | "minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": 3489 | version: 7.0.4 3490 | resolution: "minipass@npm:7.0.4" 3491 | checksum: 6c7370a6dfd257bf18222da581ba89a5eaedca10e158781232a8b5542a90547540b4b9b7e7f490e4cda43acfbd12e086f0453728ecf8c19e0ef6921bc5958ac5 3492 | languageName: node 3493 | linkType: hard 3494 | 3495 | "minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": 3496 | version: 2.1.2 3497 | resolution: "minizlib@npm:2.1.2" 3498 | dependencies: 3499 | minipass: "npm:^3.0.0" 3500 | yallist: "npm:^4.0.0" 3501 | checksum: 64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78 3502 | languageName: node 3503 | linkType: hard 3504 | 3505 | "mkdirp@npm:^1.0.3": 3506 | version: 1.0.4 3507 | resolution: "mkdirp@npm:1.0.4" 3508 | bin: 3509 | mkdirp: bin/cmd.js 3510 | checksum: 46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf 3511 | languageName: node 3512 | linkType: hard 3513 | 3514 | "ms@npm:2.1.2": 3515 | version: 2.1.2 3516 | resolution: "ms@npm:2.1.2" 3517 | checksum: a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc 3518 | languageName: node 3519 | linkType: hard 3520 | 3521 | "mustache@npm:^4.2.0": 3522 | version: 4.2.0 3523 | resolution: "mustache@npm:4.2.0" 3524 | bin: 3525 | mustache: bin/mustache 3526 | checksum: 1f8197e8a19e63645a786581d58c41df7853da26702dbc005193e2437c98ca49b255345c173d50c08fe4b4dbb363e53cb655ecc570791f8deb09887248dd34a2 3527 | languageName: node 3528 | linkType: hard 3529 | 3530 | "nanoid@npm:4.0.2": 3531 | version: 4.0.2 3532 | resolution: "nanoid@npm:4.0.2" 3533 | bin: 3534 | nanoid: bin/nanoid.js 3535 | checksum: 3fec62f422bc4727918eda0e7aa43e9cbb2e759be72813a0587b9dac99727d3c7ad972efce7f4f1d4cb5c7c554136a1ec3b1043d1d91d28d818d6acbe98200e5 3536 | languageName: node 3537 | linkType: hard 3538 | 3539 | "nanoid@npm:^3.3.7": 3540 | version: 3.3.7 3541 | resolution: "nanoid@npm:3.3.7" 3542 | bin: 3543 | nanoid: bin/nanoid.cjs 3544 | checksum: e3fb661aa083454f40500473bb69eedb85dc160e763150b9a2c567c7e9ff560ce028a9f833123b618a6ea742e311138b591910e795614a629029e86e180660f3 3545 | languageName: node 3546 | linkType: hard 3547 | 3548 | "napi-macros@npm:~2.0.0": 3549 | version: 2.0.0 3550 | resolution: "napi-macros@npm:2.0.0" 3551 | checksum: 583ef5084b43e49a12488cdcd4c5142f11e114e249b359161579b64f06776ed523c209d96e4ee2689e2e824c92445d0f529d817cc153f7cec549210296ec4be6 3552 | languageName: node 3553 | linkType: hard 3554 | 3555 | "negotiator@npm:^0.6.3": 3556 | version: 0.6.3 3557 | resolution: "negotiator@npm:0.6.3" 3558 | checksum: 3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 3559 | languageName: node 3560 | linkType: hard 3561 | 3562 | "node-gyp-build@npm:~4.1.0": 3563 | version: 4.1.1 3564 | resolution: "node-gyp-build@npm:4.1.1" 3565 | bin: 3566 | node-gyp-build: ./bin.js 3567 | node-gyp-build-optional: ./optional.js 3568 | node-gyp-build-test: ./build-test.js 3569 | checksum: 8c652daa855612c9ed8aa95dca5e7dc34d72f3849ef415412aef261e44956c0d73ba197401be5c605a709e47fbaa80c76bb31ce29c6bba4f829efbaf457b4698 3570 | languageName: node 3571 | linkType: hard 3572 | 3573 | "node-gyp@npm:latest": 3574 | version: 10.0.1 3575 | resolution: "node-gyp@npm:10.0.1" 3576 | dependencies: 3577 | env-paths: "npm:^2.2.0" 3578 | exponential-backoff: "npm:^3.1.1" 3579 | glob: "npm:^10.3.10" 3580 | graceful-fs: "npm:^4.2.6" 3581 | make-fetch-happen: "npm:^13.0.0" 3582 | nopt: "npm:^7.0.0" 3583 | proc-log: "npm:^3.0.0" 3584 | semver: "npm:^7.3.5" 3585 | tar: "npm:^6.1.2" 3586 | which: "npm:^4.0.0" 3587 | bin: 3588 | node-gyp: bin/node-gyp.js 3589 | checksum: abddfff7d873312e4ed4a5fb75ce893a5c4fb69e7fcb1dfa71c28a6b92a7f1ef6b62790dffb39181b5a82728ba8f2f32d229cf8cbe66769fe02cea7db4a555aa 3590 | languageName: node 3591 | linkType: hard 3592 | 3593 | "node-releases@npm:^2.0.14": 3594 | version: 2.0.14 3595 | resolution: "node-releases@npm:2.0.14" 3596 | checksum: 199fc93773ae70ec9969bc6d5ac5b2bbd6eb986ed1907d751f411fef3ede0e4bfdb45ceb43711f8078bea237b6036db8b1bf208f6ff2b70c7d615afd157f3ab9 3597 | languageName: node 3598 | linkType: hard 3599 | 3600 | "nopt@npm:^7.0.0": 3601 | version: 7.2.0 3602 | resolution: "nopt@npm:7.2.0" 3603 | dependencies: 3604 | abbrev: "npm:^2.0.0" 3605 | bin: 3606 | nopt: bin/nopt.js 3607 | checksum: 9bd7198df6f16eb29ff16892c77bcf7f0cc41f9fb5c26280ac0def2cf8cf319f3b821b3af83eba0e74c85807cc430a16efe0db58fe6ae1f41e69519f585b6aff 3608 | languageName: node 3609 | linkType: hard 3610 | 3611 | "npm-run-path@npm:^4.0.1": 3612 | version: 4.0.1 3613 | resolution: "npm-run-path@npm:4.0.1" 3614 | dependencies: 3615 | path-key: "npm:^3.0.0" 3616 | checksum: 6f9353a95288f8455cf64cbeb707b28826a7f29690244c1e4bb61ec573256e021b6ad6651b394eb1ccfd00d6ec50147253aba2c5fe58a57ceb111fad62c519ac 3617 | languageName: node 3618 | linkType: hard 3619 | 3620 | "onetime@npm:^5.1.2": 3621 | version: 5.1.2 3622 | resolution: "onetime@npm:5.1.2" 3623 | dependencies: 3624 | mimic-fn: "npm:^2.1.0" 3625 | checksum: ffcef6fbb2692c3c40749f31ea2e22677a876daea92959b8a80b521d95cca7a668c884d8b2045d1d8ee7d56796aa405c405462af112a1477594cc63531baeb8f 3626 | languageName: node 3627 | linkType: hard 3628 | 3629 | "p-map@npm:^4.0.0": 3630 | version: 4.0.0 3631 | resolution: "p-map@npm:4.0.0" 3632 | dependencies: 3633 | aggregate-error: "npm:^3.0.0" 3634 | checksum: 592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 3635 | languageName: node 3636 | linkType: hard 3637 | 3638 | "partykit@npm:^0.0.27": 3639 | version: 0.0.27 3640 | resolution: "partykit@npm:0.0.27" 3641 | dependencies: 3642 | "@cloudflare/workers-types": "npm:4.20230922.0" 3643 | clipboardy: "npm:3.0.0" 3644 | esbuild: "npm:0.19.4" 3645 | fsevents: "npm:2.3.3" 3646 | miniflare: "npm:3.20230922.0" 3647 | yoga-wasm-web: "npm:0.3.3" 3648 | dependenciesMeta: 3649 | fsevents: 3650 | optional: true 3651 | bin: 3652 | partykit: dist/bin.mjs 3653 | checksum: 522555723e7adbc1d73ab77a5929916256f2bfc64caacf3ab75988745d95d1202c8d6585c0f5e7b80cb98168cef6749483cddd545ccda4050c48cea61f7e6b2f 3654 | languageName: node 3655 | linkType: hard 3656 | 3657 | "path-key@npm:^3.0.0, path-key@npm:^3.1.0": 3658 | version: 3.1.1 3659 | resolution: "path-key@npm:3.1.1" 3660 | checksum: 748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c 3661 | languageName: node 3662 | linkType: hard 3663 | 3664 | "path-scurry@npm:^1.10.1": 3665 | version: 1.10.1 3666 | resolution: "path-scurry@npm:1.10.1" 3667 | dependencies: 3668 | lru-cache: "npm:^9.1.1 || ^10.0.0" 3669 | minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" 3670 | checksum: e5dc78a7348d25eec61ab166317e9e9c7b46818aa2c2b9006c507a6ff48c672d011292d9662527213e558f5652ce0afcc788663a061d8b59ab495681840c0c1e 3671 | languageName: node 3672 | linkType: hard 3673 | 3674 | "path@npm:^0.12.7": 3675 | version: 0.12.7 3676 | resolution: "path@npm:0.12.7" 3677 | dependencies: 3678 | process: "npm:^0.11.1" 3679 | util: "npm:^0.10.3" 3680 | checksum: f795ce5438a988a590c7b6dfd450ec9baa1c391a8be4c2dea48baa6e0f5b199e56cd83b8c9ebf3991b81bea58236d2c32bdafe2c17a2e70c3a2e4c69891ade59 3681 | languageName: node 3682 | linkType: hard 3683 | 3684 | "picocolors@npm:^1.0.0": 3685 | version: 1.0.0 3686 | resolution: "picocolors@npm:1.0.0" 3687 | checksum: 20a5b249e331c14479d94ec6817a182fd7a5680debae82705747b2db7ec50009a5f6648d0621c561b0572703f84dbef0858abcbd5856d3c5511426afcb1961f7 3688 | languageName: node 3689 | linkType: hard 3690 | 3691 | "postcss@npm:^8.4.27": 3692 | version: 8.4.35 3693 | resolution: "postcss@npm:8.4.35" 3694 | dependencies: 3695 | nanoid: "npm:^3.3.7" 3696 | picocolors: "npm:^1.0.0" 3697 | source-map-js: "npm:^1.0.2" 3698 | checksum: e8dd04e48001eb5857abc9475365bf08f4e508ddf9bc0b8525449a95d190f10d025acebc5b56ac2e94b3c7146790e4ae78989bb9633cb7ee20d1cc9b7dc909b2 3699 | languageName: node 3700 | linkType: hard 3701 | 3702 | "printable-characters@npm:^1.0.42": 3703 | version: 1.0.42 3704 | resolution: "printable-characters@npm:1.0.42" 3705 | checksum: 7c94d94c6041a37c385af770c7402ad5a2e8a3429ca4d2505a9f19fde39bac9a8fd1edfbfa02f1eae5b4b0f3536b6b8ee6c84621f7c0fcb41476b2df6ee20e4b 3706 | languageName: node 3707 | linkType: hard 3708 | 3709 | "proc-log@npm:^3.0.0": 3710 | version: 3.0.0 3711 | resolution: "proc-log@npm:3.0.0" 3712 | checksum: f66430e4ff947dbb996058f6fd22de2c66612ae1a89b097744e17fb18a4e8e7a86db99eda52ccf15e53f00b63f4ec0b0911581ff2aac0355b625c8eac509b0dc 3713 | languageName: node 3714 | linkType: hard 3715 | 3716 | "process@npm:^0.11.1": 3717 | version: 0.11.10 3718 | resolution: "process@npm:0.11.10" 3719 | checksum: 40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3 3720 | languageName: node 3721 | linkType: hard 3722 | 3723 | "promise-retry@npm:^2.0.1": 3724 | version: 2.0.1 3725 | resolution: "promise-retry@npm:2.0.1" 3726 | dependencies: 3727 | err-code: "npm:^2.0.2" 3728 | retry: "npm:^0.12.0" 3729 | checksum: 9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 3730 | languageName: node 3731 | linkType: hard 3732 | 3733 | "prr@npm:~1.0.1": 3734 | version: 1.0.1 3735 | resolution: "prr@npm:1.0.1" 3736 | checksum: 5b9272c602e4f4472a215e58daff88f802923b84bc39c8860376bb1c0e42aaf18c25d69ad974bd06ec6db6f544b783edecd5502cd3d184748d99080d68e4be5f 3737 | languageName: node 3738 | linkType: hard 3739 | 3740 | "react-dom@npm:^18.2.0": 3741 | version: 18.2.0 3742 | resolution: "react-dom@npm:18.2.0" 3743 | dependencies: 3744 | loose-envify: "npm:^1.1.0" 3745 | scheduler: "npm:^0.23.0" 3746 | peerDependencies: 3747 | react: ^18.2.0 3748 | checksum: 66dfc5f93e13d0674e78ef41f92ed21dfb80f9c4ac4ac25a4b51046d41d4d2186abc915b897f69d3d0ebbffe6184e7c5876f2af26bfa956f179225d921be713a 3749 | languageName: node 3750 | linkType: hard 3751 | 3752 | "react-refresh@npm:^0.14.0": 3753 | version: 0.14.0 3754 | resolution: "react-refresh@npm:0.14.0" 3755 | checksum: b8ae07ad153357d77830928a7f1fc2df837aabefee907fa273ba04c7643f3b860e986f1d4b7ada9b721c8d79b8c24b5b911a314a1a2398b105f1b13d19ea2b8d 3756 | languageName: node 3757 | linkType: hard 3758 | 3759 | "react-remove-scroll-bar@npm:^2.3.3": 3760 | version: 2.3.4 3761 | resolution: "react-remove-scroll-bar@npm:2.3.4" 3762 | dependencies: 3763 | react-style-singleton: "npm:^2.2.1" 3764 | tslib: "npm:^2.0.0" 3765 | peerDependencies: 3766 | "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 3767 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 3768 | peerDependenciesMeta: 3769 | "@types/react": 3770 | optional: true 3771 | checksum: 2262750dc1022c56d2c79e8d865c00045881c57bcaca74810ae8adac35cfdf723ff7d6b3b0e95c85eb9a0cff90bb4b1e0af801bd703ce8c0a2e35ab14ff1babb 3772 | languageName: node 3773 | linkType: hard 3774 | 3775 | "react-remove-scroll@npm:2.5.5": 3776 | version: 2.5.5 3777 | resolution: "react-remove-scroll@npm:2.5.5" 3778 | dependencies: 3779 | react-remove-scroll-bar: "npm:^2.3.3" 3780 | react-style-singleton: "npm:^2.2.1" 3781 | tslib: "npm:^2.1.0" 3782 | use-callback-ref: "npm:^1.3.0" 3783 | use-sidecar: "npm:^1.1.2" 3784 | peerDependencies: 3785 | "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 3786 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 3787 | peerDependenciesMeta: 3788 | "@types/react": 3789 | optional: true 3790 | checksum: 4952657e6a7b9d661d4ad4dfcef81b9c7fa493e35164abff99c35c0b27b3d172ef7ad70c09416dc44dd14ff2e6b38a5ec7da27e27e90a15cbad36b8fd2fd8054 3791 | languageName: node 3792 | linkType: hard 3793 | 3794 | "react-style-singleton@npm:^2.2.1": 3795 | version: 2.2.1 3796 | resolution: "react-style-singleton@npm:2.2.1" 3797 | dependencies: 3798 | get-nonce: "npm:^1.0.0" 3799 | invariant: "npm:^2.2.4" 3800 | tslib: "npm:^2.0.0" 3801 | peerDependencies: 3802 | "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 3803 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 3804 | peerDependenciesMeta: 3805 | "@types/react": 3806 | optional: true 3807 | checksum: 6d66f3bdb65e1ec79089f80314da97c9a005087a04ee034255a5de129a4c0d9fd0bf99fa7bf642781ac2dc745ca687aae3de082bd8afdd0d117bc953241e15ad 3808 | languageName: node 3809 | linkType: hard 3810 | 3811 | "react@npm:^18.2.0": 3812 | version: 18.2.0 3813 | resolution: "react@npm:18.2.0" 3814 | dependencies: 3815 | loose-envify: "npm:^1.1.0" 3816 | checksum: b562d9b569b0cb315e44b48099f7712283d93df36b19a39a67c254c6686479d3980b7f013dc931f4a5a3ae7645eae6386b4aa5eea933baa54ecd0f9acb0902b8 3817 | languageName: node 3818 | linkType: hard 3819 | 3820 | "readable-stream@npm:^3.4.0": 3821 | version: 3.6.2 3822 | resolution: "readable-stream@npm:3.6.2" 3823 | dependencies: 3824 | inherits: "npm:^2.0.3" 3825 | string_decoder: "npm:^1.1.1" 3826 | util-deprecate: "npm:^1.0.1" 3827 | checksum: e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7 3828 | languageName: node 3829 | linkType: hard 3830 | 3831 | "regenerator-runtime@npm:^0.14.0": 3832 | version: 0.14.1 3833 | resolution: "regenerator-runtime@npm:0.14.1" 3834 | checksum: 1b16eb2c4bceb1665c89de70dcb64126a22bc8eb958feef3cd68fe11ac6d2a4899b5cd1b80b0774c7c03591dc57d16631a7f69d2daa2ec98100e2f29f7ec4cc4 3835 | languageName: node 3836 | linkType: hard 3837 | 3838 | "require-directory@npm:^2.1.1": 3839 | version: 2.1.1 3840 | resolution: "require-directory@npm:2.1.1" 3841 | checksum: 83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99 3842 | languageName: node 3843 | linkType: hard 3844 | 3845 | "retry@npm:^0.12.0": 3846 | version: 0.12.0 3847 | resolution: "retry@npm:0.12.0" 3848 | checksum: 59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe 3849 | languageName: node 3850 | linkType: hard 3851 | 3852 | "rollup@npm:^3.27.1": 3853 | version: 3.29.4 3854 | resolution: "rollup@npm:3.29.4" 3855 | dependencies: 3856 | fsevents: "npm:~2.3.2" 3857 | dependenciesMeta: 3858 | fsevents: 3859 | optional: true 3860 | bin: 3861 | rollup: dist/bin/rollup 3862 | checksum: 65eddf84bf389ea8e4d4c1614b1c6a298d08f8ae785c0c087e723a879190c8aaddbab4aa3b8a0524551b9036750c9f8bfea27b377798accfd2ba5084ceff5aaa 3863 | languageName: node 3864 | linkType: hard 3865 | 3866 | "rxjs@npm:^7.8.1": 3867 | version: 7.8.1 3868 | resolution: "rxjs@npm:7.8.1" 3869 | dependencies: 3870 | tslib: "npm:^2.1.0" 3871 | checksum: 3c49c1ecd66170b175c9cacf5cef67f8914dcbc7cd0162855538d365c83fea631167cacb644b3ce533b2ea0e9a4d0b12175186985f89d75abe73dbd8f7f06f68 3872 | languageName: node 3873 | linkType: hard 3874 | 3875 | "safe-buffer@npm:~5.2.0": 3876 | version: 5.2.1 3877 | resolution: "safe-buffer@npm:5.2.1" 3878 | checksum: 6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 3879 | languageName: node 3880 | linkType: hard 3881 | 3882 | "safer-buffer@npm:>= 2.1.2 < 3.0.0": 3883 | version: 2.1.2 3884 | resolution: "safer-buffer@npm:2.1.2" 3885 | checksum: 7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 3886 | languageName: node 3887 | linkType: hard 3888 | 3889 | "scheduler@npm:^0.23.0": 3890 | version: 0.23.0 3891 | resolution: "scheduler@npm:0.23.0" 3892 | dependencies: 3893 | loose-envify: "npm:^1.1.0" 3894 | checksum: b777f7ca0115e6d93e126ac490dbd82642d14983b3079f58f35519d992fa46260be7d6e6cede433a92db70306310c6f5f06e144f0e40c484199e09c1f7be53dd 3895 | languageName: node 3896 | linkType: hard 3897 | 3898 | "semver@npm:^6.3.1": 3899 | version: 6.3.1 3900 | resolution: "semver@npm:6.3.1" 3901 | bin: 3902 | semver: bin/semver.js 3903 | checksum: e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d 3904 | languageName: node 3905 | linkType: hard 3906 | 3907 | "semver@npm:^7.3.5": 3908 | version: 7.6.0 3909 | resolution: "semver@npm:7.6.0" 3910 | dependencies: 3911 | lru-cache: "npm:^6.0.0" 3912 | bin: 3913 | semver: bin/semver.js 3914 | checksum: fbfe717094ace0aa8d6332d7ef5ce727259815bd8d8815700853f4faf23aacbd7192522f0dc5af6df52ef4fa85a355ebd2f5d39f554bd028200d6cf481ab9b53 3915 | languageName: node 3916 | linkType: hard 3917 | 3918 | "shebang-command@npm:^2.0.0": 3919 | version: 2.0.0 3920 | resolution: "shebang-command@npm:2.0.0" 3921 | dependencies: 3922 | shebang-regex: "npm:^3.0.0" 3923 | checksum: a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e 3924 | languageName: node 3925 | linkType: hard 3926 | 3927 | "shebang-regex@npm:^3.0.0": 3928 | version: 3.0.0 3929 | resolution: "shebang-regex@npm:3.0.0" 3930 | checksum: 1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 3931 | languageName: node 3932 | linkType: hard 3933 | 3934 | "shell-quote@npm:^1.8.1": 3935 | version: 1.8.1 3936 | resolution: "shell-quote@npm:1.8.1" 3937 | checksum: 8cec6fd827bad74d0a49347057d40dfea1e01f12a6123bf82c4649f3ef152fc2bc6d6176e6376bffcd205d9d0ccb4f1f9acae889384d20baff92186f01ea455a 3938 | languageName: node 3939 | linkType: hard 3940 | 3941 | "signal-exit@npm:^3.0.3": 3942 | version: 3.0.7 3943 | resolution: "signal-exit@npm:3.0.7" 3944 | checksum: 25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 3945 | languageName: node 3946 | linkType: hard 3947 | 3948 | "signal-exit@npm:^4.0.1": 3949 | version: 4.1.0 3950 | resolution: "signal-exit@npm:4.1.0" 3951 | checksum: 41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 3952 | languageName: node 3953 | linkType: hard 3954 | 3955 | "smart-buffer@npm:^4.2.0": 3956 | version: 4.2.0 3957 | resolution: "smart-buffer@npm:4.2.0" 3958 | checksum: a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 3959 | languageName: node 3960 | linkType: hard 3961 | 3962 | "socks-proxy-agent@npm:^8.0.1": 3963 | version: 8.0.2 3964 | resolution: "socks-proxy-agent@npm:8.0.2" 3965 | dependencies: 3966 | agent-base: "npm:^7.0.2" 3967 | debug: "npm:^4.3.4" 3968 | socks: "npm:^2.7.1" 3969 | checksum: a842402fc9b8848a31367f2811ca3cd14c4106588b39a0901cd7a69029998adfc6456b0203617c18ed090542ad0c24ee4e9d4c75a0c4b75071e214227c177eb7 3970 | languageName: node 3971 | linkType: hard 3972 | 3973 | "socks@npm:^2.7.1": 3974 | version: 2.8.0 3975 | resolution: "socks@npm:2.8.0" 3976 | dependencies: 3977 | ip-address: "npm:^9.0.5" 3978 | smart-buffer: "npm:^4.2.0" 3979 | checksum: 208fa5d5ae47857653c4fc039d47e4c1e76313b24052151a949aa98f027f9aaba8fc6c5dc0f7f2d9ceeb94e9940217581f2d9798436563c1494b67a6cb68611f 3980 | languageName: node 3981 | linkType: hard 3982 | 3983 | "source-map-js@npm:^1.0.2": 3984 | version: 1.0.2 3985 | resolution: "source-map-js@npm:1.0.2" 3986 | checksum: 32f2dfd1e9b7168f9a9715eb1b4e21905850f3b50cf02cf476e47e4eebe8e6b762b63a64357896aa29b37e24922b4282df0f492e0d2ace572b43d15525976ff8 3987 | languageName: node 3988 | linkType: hard 3989 | 3990 | "source-map-support@npm:0.5.21": 3991 | version: 0.5.21 3992 | resolution: "source-map-support@npm:0.5.21" 3993 | dependencies: 3994 | buffer-from: "npm:^1.0.0" 3995 | source-map: "npm:^0.6.0" 3996 | checksum: 9ee09942f415e0f721d6daad3917ec1516af746a8120bba7bb56278707a37f1eb8642bde456e98454b8a885023af81a16e646869975f06afc1a711fb90484e7d 3997 | languageName: node 3998 | linkType: hard 3999 | 4000 | "source-map@npm:^0.6.0, source-map@npm:^0.6.1": 4001 | version: 0.6.1 4002 | resolution: "source-map@npm:0.6.1" 4003 | checksum: ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 4004 | languageName: node 4005 | linkType: hard 4006 | 4007 | "spawn-command@npm:0.0.2": 4008 | version: 0.0.2 4009 | resolution: "spawn-command@npm:0.0.2" 4010 | checksum: b22f2d71239e6e628a400831861ba747750bbb40c0a53323754cf7b84330b73d81e40ff1f9055e6d1971818679510208a9302e13d9ff3b32feb67e74d7a1b3ef 4011 | languageName: node 4012 | linkType: hard 4013 | 4014 | "sprintf-js@npm:^1.1.3": 4015 | version: 1.1.3 4016 | resolution: "sprintf-js@npm:1.1.3" 4017 | checksum: 09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec 4018 | languageName: node 4019 | linkType: hard 4020 | 4021 | "ssri@npm:^10.0.0": 4022 | version: 10.0.5 4023 | resolution: "ssri@npm:10.0.5" 4024 | dependencies: 4025 | minipass: "npm:^7.0.3" 4026 | checksum: b091f2ae92474183c7ac5ed3f9811457e1df23df7a7e70c9476eaa9a0c4a0c8fc190fb45acefbf023ca9ee864dd6754237a697dc52a0fb182afe65d8e77443d8 4027 | languageName: node 4028 | linkType: hard 4029 | 4030 | "stacktracey@npm:^2.1.8": 4031 | version: 2.1.8 4032 | resolution: "stacktracey@npm:2.1.8" 4033 | dependencies: 4034 | as-table: "npm:^1.0.36" 4035 | get-source: "npm:^2.0.12" 4036 | checksum: e17357d0a532d303138899b910ab660572009a1f4cde1cbf73b99416957a2378e6e1c791b3c31b043cf7c5f37647da1dd114e66c9203f23c65b34f783665405b 4037 | languageName: node 4038 | linkType: hard 4039 | 4040 | "stoppable@npm:^1.1.0": 4041 | version: 1.1.0 4042 | resolution: "stoppable@npm:1.1.0" 4043 | checksum: ba91b65e6442bf6f01ce837a727ece597a977ed92a05cb9aea6bf446c5e0dcbccc28f31b793afa8aedd8f34baaf3335398d35f903938d5493f7fbe386a1e090e 4044 | languageName: node 4045 | linkType: hard 4046 | 4047 | "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": 4048 | version: 4.2.3 4049 | resolution: "string-width@npm:4.2.3" 4050 | dependencies: 4051 | emoji-regex: "npm:^8.0.0" 4052 | is-fullwidth-code-point: "npm:^3.0.0" 4053 | strip-ansi: "npm:^6.0.1" 4054 | checksum: 1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b 4055 | languageName: node 4056 | linkType: hard 4057 | 4058 | "string-width@npm:^5.0.1, string-width@npm:^5.1.2": 4059 | version: 5.1.2 4060 | resolution: "string-width@npm:5.1.2" 4061 | dependencies: 4062 | eastasianwidth: "npm:^0.2.0" 4063 | emoji-regex: "npm:^9.2.2" 4064 | strip-ansi: "npm:^7.0.1" 4065 | checksum: ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca 4066 | languageName: node 4067 | linkType: hard 4068 | 4069 | "string_decoder@npm:^1.1.1": 4070 | version: 1.3.0 4071 | resolution: "string_decoder@npm:1.3.0" 4072 | dependencies: 4073 | safe-buffer: "npm:~5.2.0" 4074 | checksum: 810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d 4075 | languageName: node 4076 | linkType: hard 4077 | 4078 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": 4079 | version: 6.0.1 4080 | resolution: "strip-ansi@npm:6.0.1" 4081 | dependencies: 4082 | ansi-regex: "npm:^5.0.1" 4083 | checksum: 1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 4084 | languageName: node 4085 | linkType: hard 4086 | 4087 | "strip-ansi@npm:^7.0.1": 4088 | version: 7.1.0 4089 | resolution: "strip-ansi@npm:7.1.0" 4090 | dependencies: 4091 | ansi-regex: "npm:^6.0.1" 4092 | checksum: a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 4093 | languageName: node 4094 | linkType: hard 4095 | 4096 | "strip-final-newline@npm:^2.0.0": 4097 | version: 2.0.0 4098 | resolution: "strip-final-newline@npm:2.0.0" 4099 | checksum: bddf8ccd47acd85c0e09ad7375409d81653f645fda13227a9d459642277c253d877b68f2e5e4d819fe75733b0e626bac7e954c04f3236f6d196f79c94fa4a96f 4100 | languageName: node 4101 | linkType: hard 4102 | 4103 | "supports-color@npm:^5.3.0": 4104 | version: 5.5.0 4105 | resolution: "supports-color@npm:5.5.0" 4106 | dependencies: 4107 | has-flag: "npm:^3.0.0" 4108 | checksum: 6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05 4109 | languageName: node 4110 | linkType: hard 4111 | 4112 | "supports-color@npm:^7.1.0": 4113 | version: 7.2.0 4114 | resolution: "supports-color@npm:7.2.0" 4115 | dependencies: 4116 | has-flag: "npm:^4.0.0" 4117 | checksum: afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 4118 | languageName: node 4119 | linkType: hard 4120 | 4121 | "supports-color@npm:^8.1.1": 4122 | version: 8.1.1 4123 | resolution: "supports-color@npm:8.1.1" 4124 | dependencies: 4125 | has-flag: "npm:^4.0.0" 4126 | checksum: ea1d3c275dd604c974670f63943ed9bd83623edc102430c05adb8efc56ba492746b6e95386e7831b872ec3807fd89dd8eb43f735195f37b5ec343e4234cc7e89 4127 | languageName: node 4128 | linkType: hard 4129 | 4130 | "tar@npm:^6.1.11, tar@npm:^6.1.2": 4131 | version: 6.2.0 4132 | resolution: "tar@npm:6.2.0" 4133 | dependencies: 4134 | chownr: "npm:^2.0.0" 4135 | fs-minipass: "npm:^2.0.0" 4136 | minipass: "npm:^5.0.0" 4137 | minizlib: "npm:^2.1.1" 4138 | mkdirp: "npm:^1.0.3" 4139 | yallist: "npm:^4.0.0" 4140 | checksum: 02ca064a1a6b4521fef88c07d389ac0936730091f8c02d30ea60d472e0378768e870769ab9e986d87807bfee5654359cf29ff4372746cc65e30cbddc352660d8 4141 | languageName: node 4142 | linkType: hard 4143 | 4144 | "tldraw-graph@workspace:.": 4145 | version: 0.0.0-use.local 4146 | resolution: "tldraw-graph@workspace:." 4147 | dependencies: 4148 | "@biomejs/biome": "npm:1.4.1" 4149 | "@tldraw/tldraw": "npm:2.0.0-beta.2" 4150 | "@types/react": "npm:^18.2.15" 4151 | "@types/react-dom": "npm:^18.2.7" 4152 | "@vitejs/plugin-react": "npm:^4.0.3" 4153 | concurrently: "npm:^8.2.0" 4154 | partykit: "npm:^0.0.27" 4155 | path: "npm:^0.12.7" 4156 | react: "npm:^18.2.0" 4157 | react-dom: "npm:^18.2.0" 4158 | typescript: "npm:^5.0.2" 4159 | vite: "npm:^4.4.5" 4160 | vite-plugin-top-level-await: "npm:^1.3.1" 4161 | vite-plugin-wasm: "npm:^3.2.2" 4162 | webcola: "npm:latest" 4163 | y-partykit: "npm:^0.0.7" 4164 | y-utility: "npm:^0.1.3" 4165 | y-websocket: "npm:^1.5.0" 4166 | yjs: "npm:^13.6.8" 4167 | languageName: unknown 4168 | linkType: soft 4169 | 4170 | "to-fast-properties@npm:^2.0.0": 4171 | version: 2.0.0 4172 | resolution: "to-fast-properties@npm:2.0.0" 4173 | checksum: b214d21dbfb4bce3452b6244b336806ffea9c05297148d32ebb428d5c43ce7545bdfc65a1ceb58c9ef4376a65c0cb2854d645f33961658b3e3b4f84910ddcdd7 4174 | languageName: node 4175 | linkType: hard 4176 | 4177 | "tree-kill@npm:^1.2.2": 4178 | version: 1.2.2 4179 | resolution: "tree-kill@npm:1.2.2" 4180 | bin: 4181 | tree-kill: cli.js 4182 | checksum: 7b1b7c7f17608a8f8d20a162e7957ac1ef6cd1636db1aba92f4e072dc31818c2ff0efac1e3d91064ede67ed5dc57c565420531a8134090a12ac10cf792ab14d2 4183 | languageName: node 4184 | linkType: hard 4185 | 4186 | "tslib@npm:^2.0.0, tslib@npm:^2.1.0, tslib@npm:^2.2.0": 4187 | version: 2.6.2 4188 | resolution: "tslib@npm:2.6.2" 4189 | checksum: e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb 4190 | languageName: node 4191 | linkType: hard 4192 | 4193 | "typescript@npm:^5.0.2": 4194 | version: 5.3.3 4195 | resolution: "typescript@npm:5.3.3" 4196 | bin: 4197 | tsc: bin/tsc 4198 | tsserver: bin/tsserver 4199 | checksum: e33cef99d82573624fc0f854a2980322714986bc35b9cb4d1ce736ed182aeab78e2cb32b385efa493b2a976ef52c53e20d6c6918312353a91850e2b76f1ea44f 4200 | languageName: node 4201 | linkType: hard 4202 | 4203 | "typescript@patch:typescript@npm%3A^5.0.2#optional!builtin": 4204 | version: 5.3.3 4205 | resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7" 4206 | bin: 4207 | tsc: bin/tsc 4208 | tsserver: bin/tsserver 4209 | checksum: 1d0a5f4ce496c42caa9a30e659c467c5686eae15d54b027ee7866744952547f1be1262f2d40de911618c242b510029d51d43ff605dba8fb740ec85ca2d3f9500 4210 | languageName: node 4211 | linkType: hard 4212 | 4213 | "undici@npm:^5.22.1": 4214 | version: 5.28.3 4215 | resolution: "undici@npm:5.28.3" 4216 | dependencies: 4217 | "@fastify/busboy": "npm:^2.0.0" 4218 | checksum: 3c559ae50ef3104b7085251445dda6f4de871553b9e290845649d2f80b06c0c9cfcdf741b0029c6b20d36c82e6a74dc815b139fa9a26757d70728074ca6d6f5c 4219 | languageName: node 4220 | linkType: hard 4221 | 4222 | "unique-filename@npm:^3.0.0": 4223 | version: 3.0.0 4224 | resolution: "unique-filename@npm:3.0.0" 4225 | dependencies: 4226 | unique-slug: "npm:^4.0.0" 4227 | checksum: 6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f 4228 | languageName: node 4229 | linkType: hard 4230 | 4231 | "unique-slug@npm:^4.0.0": 4232 | version: 4.0.0 4233 | resolution: "unique-slug@npm:4.0.0" 4234 | dependencies: 4235 | imurmurhash: "npm:^0.1.4" 4236 | checksum: cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635 4237 | languageName: node 4238 | linkType: hard 4239 | 4240 | "update-browserslist-db@npm:^1.0.13": 4241 | version: 1.0.13 4242 | resolution: "update-browserslist-db@npm:1.0.13" 4243 | dependencies: 4244 | escalade: "npm:^3.1.1" 4245 | picocolors: "npm:^1.0.0" 4246 | peerDependencies: 4247 | browserslist: ">= 4.21.0" 4248 | bin: 4249 | update-browserslist-db: cli.js 4250 | checksum: e52b8b521c78ce1e0c775f356cd16a9c22c70d25f3e01180839c407a5dc787fb05a13f67560cbaf316770d26fa99f78f1acd711b1b54a4f35d4820d4ea7136e6 4251 | languageName: node 4252 | linkType: hard 4253 | 4254 | "use-callback-ref@npm:^1.3.0": 4255 | version: 1.3.1 4256 | resolution: "use-callback-ref@npm:1.3.1" 4257 | dependencies: 4258 | tslib: "npm:^2.0.0" 4259 | peerDependencies: 4260 | "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 4261 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 4262 | peerDependenciesMeta: 4263 | "@types/react": 4264 | optional: true 4265 | checksum: 6666cd62e13053d03e453b5199037cb8f6475a8f55afd664ff488bd8f2ee2ede4da3b220dd7e60f5ecd4926133364fbf4b1aed463eeb8203e7c5be3b1533b59b 4266 | languageName: node 4267 | linkType: hard 4268 | 4269 | "use-sidecar@npm:^1.1.2": 4270 | version: 1.1.2 4271 | resolution: "use-sidecar@npm:1.1.2" 4272 | dependencies: 4273 | detect-node-es: "npm:^1.1.0" 4274 | tslib: "npm:^2.0.0" 4275 | peerDependencies: 4276 | "@types/react": ^16.9.0 || ^17.0.0 || ^18.0.0 4277 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 4278 | peerDependenciesMeta: 4279 | "@types/react": 4280 | optional: true 4281 | checksum: 89f0018fd9aee1fc17c85ac18c4bf8944d460d453d0d0e04ddbc8eaddf3fa591e9c74a1f8a438a1bff368a7a2417fab380bdb3df899d2194c4375b0982736de0 4282 | languageName: node 4283 | linkType: hard 4284 | 4285 | "util-deprecate@npm:^1.0.1": 4286 | version: 1.0.2 4287 | resolution: "util-deprecate@npm:1.0.2" 4288 | checksum: 41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 4289 | languageName: node 4290 | linkType: hard 4291 | 4292 | "util@npm:^0.10.3": 4293 | version: 0.10.4 4294 | resolution: "util@npm:0.10.4" 4295 | dependencies: 4296 | inherits: "npm:2.0.3" 4297 | checksum: d29f6893e406b63b088ce9924da03201df89b31490d4d011f1c07a386ea4b3dbe907464c274023c237da470258e1805d806c7e4009a5974cd6b1d474b675852a 4298 | languageName: node 4299 | linkType: hard 4300 | 4301 | "uuid@npm:^9.0.1": 4302 | version: 9.0.1 4303 | resolution: "uuid@npm:9.0.1" 4304 | bin: 4305 | uuid: dist/bin/uuid 4306 | checksum: 1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b 4307 | languageName: node 4308 | linkType: hard 4309 | 4310 | "vite-plugin-top-level-await@npm:^1.3.1": 4311 | version: 1.4.1 4312 | resolution: "vite-plugin-top-level-await@npm:1.4.1" 4313 | dependencies: 4314 | "@rollup/plugin-virtual": "npm:^3.0.2" 4315 | "@swc/core": "npm:^1.3.100" 4316 | uuid: "npm:^9.0.1" 4317 | peerDependencies: 4318 | vite: ">=2.8" 4319 | checksum: 05fbb56a2b98b9cc637676c6e1259bb5ca1a6690b1bfdd23a682813ed151ac5c6cf87ddb9ddfaa734b7d989c59227e32bc932c30d4e478bec2c3ffd9d63dac21 4320 | languageName: node 4321 | linkType: hard 4322 | 4323 | "vite-plugin-wasm@npm:^3.2.2": 4324 | version: 3.3.0 4325 | resolution: "vite-plugin-wasm@npm:3.3.0" 4326 | peerDependencies: 4327 | vite: ^2 || ^3 || ^4 || ^5 4328 | checksum: 382ba2f2ffef31dde717ad43a69427bc930a6e2ec453d17b700ef7937b48996893a61657fdee3122654e027b1933341548493b35e6469520a8d4ae6c522d1ee2 4329 | languageName: node 4330 | linkType: hard 4331 | 4332 | "vite@npm:^4.4.5": 4333 | version: 4.5.2 4334 | resolution: "vite@npm:4.5.2" 4335 | dependencies: 4336 | esbuild: "npm:^0.18.10" 4337 | fsevents: "npm:~2.3.2" 4338 | postcss: "npm:^8.4.27" 4339 | rollup: "npm:^3.27.1" 4340 | peerDependencies: 4341 | "@types/node": ">= 14" 4342 | less: "*" 4343 | lightningcss: ^1.21.0 4344 | sass: "*" 4345 | stylus: "*" 4346 | sugarss: "*" 4347 | terser: ^5.4.0 4348 | dependenciesMeta: 4349 | fsevents: 4350 | optional: true 4351 | peerDependenciesMeta: 4352 | "@types/node": 4353 | optional: true 4354 | less: 4355 | optional: true 4356 | lightningcss: 4357 | optional: true 4358 | sass: 4359 | optional: true 4360 | stylus: 4361 | optional: true 4362 | sugarss: 4363 | optional: true 4364 | terser: 4365 | optional: true 4366 | bin: 4367 | vite: bin/vite.js 4368 | checksum: 68969ccf72ad2078aec7d9e023fce6de03746a4761f9308924212fff7bd42487145b270166cec66cddacfd7b1315ec5aa39ead174fbd7fcd463637a96ff4c9d1 4369 | languageName: node 4370 | linkType: hard 4371 | 4372 | "webcola@npm:latest": 4373 | version: 3.4.0 4374 | resolution: "webcola@npm:3.4.0" 4375 | dependencies: 4376 | d3-dispatch: "npm:^1.0.3" 4377 | d3-drag: "npm:^1.0.4" 4378 | d3-shape: "npm:^1.3.5" 4379 | d3-timer: "npm:^1.0.5" 4380 | checksum: 509ebbe30f69465ad0df1baf041cebf9ddab999b1edc3c30ab4fbb1a3b0a0cdbb5a759aeb55e42c3a01da3758d3db4b19bd43368c3b1fb959526beabf03a0c6e 4381 | languageName: node 4382 | linkType: hard 4383 | 4384 | "which@npm:^2.0.1": 4385 | version: 2.0.2 4386 | resolution: "which@npm:2.0.2" 4387 | dependencies: 4388 | isexe: "npm:^2.0.0" 4389 | bin: 4390 | node-which: ./bin/node-which 4391 | checksum: 66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f 4392 | languageName: node 4393 | linkType: hard 4394 | 4395 | "which@npm:^4.0.0": 4396 | version: 4.0.0 4397 | resolution: "which@npm:4.0.0" 4398 | dependencies: 4399 | isexe: "npm:^3.1.1" 4400 | bin: 4401 | node-which: bin/which.js 4402 | checksum: 449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a 4403 | languageName: node 4404 | linkType: hard 4405 | 4406 | "workerd@npm:1.20230922.0": 4407 | version: 1.20230922.0 4408 | resolution: "workerd@npm:1.20230922.0" 4409 | dependencies: 4410 | "@cloudflare/workerd-darwin-64": "npm:1.20230922.0" 4411 | "@cloudflare/workerd-darwin-arm64": "npm:1.20230922.0" 4412 | "@cloudflare/workerd-linux-64": "npm:1.20230922.0" 4413 | "@cloudflare/workerd-linux-arm64": "npm:1.20230922.0" 4414 | "@cloudflare/workerd-windows-64": "npm:1.20230922.0" 4415 | dependenciesMeta: 4416 | "@cloudflare/workerd-darwin-64": 4417 | optional: true 4418 | "@cloudflare/workerd-darwin-arm64": 4419 | optional: true 4420 | "@cloudflare/workerd-linux-64": 4421 | optional: true 4422 | "@cloudflare/workerd-linux-arm64": 4423 | optional: true 4424 | "@cloudflare/workerd-windows-64": 4425 | optional: true 4426 | bin: 4427 | workerd: bin/workerd 4428 | checksum: 5391b6c7fd3ac57aa2faef70b5b5f539c3c6cc9a6ee6f3a7d21b3a51f15f42394947cc2f0b09676770f9b2bde82361cf74b579a8708ffbd58318b8a74f6e49e2 4429 | languageName: node 4430 | linkType: hard 4431 | 4432 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": 4433 | version: 7.0.0 4434 | resolution: "wrap-ansi@npm:7.0.0" 4435 | dependencies: 4436 | ansi-styles: "npm:^4.0.0" 4437 | string-width: "npm:^4.1.0" 4438 | strip-ansi: "npm:^6.0.0" 4439 | checksum: d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da 4440 | languageName: node 4441 | linkType: hard 4442 | 4443 | "wrap-ansi@npm:^8.1.0": 4444 | version: 8.1.0 4445 | resolution: "wrap-ansi@npm:8.1.0" 4446 | dependencies: 4447 | ansi-styles: "npm:^6.1.0" 4448 | string-width: "npm:^5.0.1" 4449 | strip-ansi: "npm:^7.0.1" 4450 | checksum: 138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 4451 | languageName: node 4452 | linkType: hard 4453 | 4454 | "ws@npm:^6.2.1": 4455 | version: 6.2.2 4456 | resolution: "ws@npm:6.2.2" 4457 | dependencies: 4458 | async-limiter: "npm:~1.0.0" 4459 | checksum: d628a1e95668a296644b4f51ce5debb43d9f1d89ebb2e32fef205a685b9439378eb824d60ce3a40bbc3bad0e887d84a56b343f2076f48d74f17c4c0800c42967 4460 | languageName: node 4461 | linkType: hard 4462 | 4463 | "ws@npm:^8.11.0": 4464 | version: 8.16.0 4465 | resolution: "ws@npm:8.16.0" 4466 | peerDependencies: 4467 | bufferutil: ^4.0.1 4468 | utf-8-validate: ">=5.0.2" 4469 | peerDependenciesMeta: 4470 | bufferutil: 4471 | optional: true 4472 | utf-8-validate: 4473 | optional: true 4474 | checksum: a7783bb421c648b1e622b423409cb2a58ac5839521d2f689e84bc9dc41d59379c692dd405b15a997ea1d4c0c2e5314ad707332d0c558f15232d2bc07c0b4618a 4475 | languageName: node 4476 | linkType: hard 4477 | 4478 | "xtend@npm:^4.0.2, xtend@npm:~4.0.0": 4479 | version: 4.0.2 4480 | resolution: "xtend@npm:4.0.2" 4481 | checksum: 366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e 4482 | languageName: node 4483 | linkType: hard 4484 | 4485 | "y-leveldb@npm:^0.1.0": 4486 | version: 0.1.2 4487 | resolution: "y-leveldb@npm:0.1.2" 4488 | dependencies: 4489 | level: "npm:^6.0.1" 4490 | lib0: "npm:^0.2.31" 4491 | peerDependencies: 4492 | yjs: ^13.0.0 4493 | checksum: c1bc82a7ac31406c36b41dcb7a01273323f8b353dec289512c1116cc4df54673ee112c0546b49b6431be4918c8267a3aeb891ba727a7adef8638eb4baa83fa57 4494 | languageName: node 4495 | linkType: hard 4496 | 4497 | "y-partykit@npm:^0.0.7": 4498 | version: 0.0.7 4499 | resolution: "y-partykit@npm:0.0.7" 4500 | dependencies: 4501 | lib0: "npm:^0.2.86" 4502 | lodash.debounce: "npm:^4.0.8" 4503 | react: "npm:^18.2.0" 4504 | y-protocols: "npm:^1.0.6" 4505 | yjs: "npm:^13.6.8" 4506 | checksum: 7c493e9dd2a87138df7172ff90d719f7cee032a3341396d7e4a9836d763ab8ab6f67bb9c92ac2c5e791a7ad4bc37a2a9f2b8c3151dab9b945b56ec18ced0858d 4507 | languageName: node 4508 | linkType: hard 4509 | 4510 | "y-protocols@npm:^1.0.5, y-protocols@npm:^1.0.6": 4511 | version: 1.0.6 4512 | resolution: "y-protocols@npm:1.0.6" 4513 | dependencies: 4514 | lib0: "npm:^0.2.85" 4515 | peerDependencies: 4516 | yjs: ^13.0.0 4517 | checksum: fae7d63d4609e75eac8114320aa3581311993cd0c1b7ac03d13dc30c9a95d7b1680e4500786bb417c1fb3d11a69e1bed3e50d08e15febde9b8abf70f133eb917 4518 | languageName: node 4519 | linkType: hard 4520 | 4521 | "y-utility@npm:^0.1.3": 4522 | version: 0.1.3 4523 | resolution: "y-utility@npm:0.1.3" 4524 | dependencies: 4525 | lib0: "npm:^0.2.43" 4526 | peerDependencies: 4527 | yjs: ^13.5.29 4528 | checksum: 2f6c50d59a6d41e62485107067ef48354d281aec7ce675c20ef1b547619a706df9c4d574c86bf15f74460d25461aa8e7679b7942aa1c77f3d27fb278b22d1131 4529 | languageName: node 4530 | linkType: hard 4531 | 4532 | "y-websocket@npm:^1.5.0": 4533 | version: 1.5.3 4534 | resolution: "y-websocket@npm:1.5.3" 4535 | dependencies: 4536 | lib0: "npm:^0.2.52" 4537 | lodash.debounce: "npm:^4.0.8" 4538 | ws: "npm:^6.2.1" 4539 | y-leveldb: "npm:^0.1.0" 4540 | y-protocols: "npm:^1.0.5" 4541 | peerDependencies: 4542 | yjs: ^13.5.6 4543 | dependenciesMeta: 4544 | ws: 4545 | optional: true 4546 | y-leveldb: 4547 | optional: true 4548 | bin: 4549 | y-websocket: bin/server.js 4550 | y-websocket-server: bin/server.js 4551 | checksum: 81b8d303a01c84d6ddc03584395970b4a9a4e0c8e1ced8118aba2997d116f472965fac583c5b469dd0dfbd483f5df17ee2e0584aee6507d9f21e104631149e0e 4552 | languageName: node 4553 | linkType: hard 4554 | 4555 | "y18n@npm:^5.0.5": 4556 | version: 5.0.8 4557 | resolution: "y18n@npm:5.0.8" 4558 | checksum: 4df2842c36e468590c3691c894bc9cdbac41f520566e76e24f59401ba7d8b4811eb1e34524d57e54bc6d864bcb66baab7ffd9ca42bf1eda596618f9162b91249 4559 | languageName: node 4560 | linkType: hard 4561 | 4562 | "yallist@npm:^3.0.2": 4563 | version: 3.1.1 4564 | resolution: "yallist@npm:3.1.1" 4565 | checksum: c66a5c46bc89af1625476f7f0f2ec3653c1a1791d2f9407cfb4c2ba812a1e1c9941416d71ba9719876530e3340a99925f697142989371b72d93b9ee628afd8c1 4566 | languageName: node 4567 | linkType: hard 4568 | 4569 | "yallist@npm:^4.0.0": 4570 | version: 4.0.0 4571 | resolution: "yallist@npm:4.0.0" 4572 | checksum: 2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a 4573 | languageName: node 4574 | linkType: hard 4575 | 4576 | "yargs-parser@npm:^21.1.1": 4577 | version: 21.1.1 4578 | resolution: "yargs-parser@npm:21.1.1" 4579 | checksum: f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2 4580 | languageName: node 4581 | linkType: hard 4582 | 4583 | "yargs@npm:^17.7.2": 4584 | version: 17.7.2 4585 | resolution: "yargs@npm:17.7.2" 4586 | dependencies: 4587 | cliui: "npm:^8.0.1" 4588 | escalade: "npm:^3.1.1" 4589 | get-caller-file: "npm:^2.0.5" 4590 | require-directory: "npm:^2.1.1" 4591 | string-width: "npm:^4.2.3" 4592 | y18n: "npm:^5.0.5" 4593 | yargs-parser: "npm:^21.1.1" 4594 | checksum: ccd7e723e61ad5965fffbb791366db689572b80cca80e0f96aad968dfff4156cd7cd1ad18607afe1046d8241e6fb2d6c08bf7fa7bfb5eaec818735d8feac8f05 4595 | languageName: node 4596 | linkType: hard 4597 | 4598 | "yjs@npm:^13.6.8": 4599 | version: 13.6.12 4600 | resolution: "yjs@npm:13.6.12" 4601 | dependencies: 4602 | lib0: "npm:^0.2.86" 4603 | checksum: d5fb07839af40e3240f9dd4564131d8bd216bc5fc3da584f5bf04ae15afa11d188d098400033cc57286f5be9f2268c075057cb644a1f902a958f65f345d27034 4604 | languageName: node 4605 | linkType: hard 4606 | 4607 | "yoga-wasm-web@npm:0.3.3": 4608 | version: 0.3.3 4609 | resolution: "yoga-wasm-web@npm:0.3.3" 4610 | checksum: d46ae3a436409e89eb0ea3b8c7624dafaf2c846d9038fdf8aa0cc839f73a2577b679bdc22997596177de74c580a6cdc3206c98fd2acd91b66f85462d9d9d260a 4611 | languageName: node 4612 | linkType: hard 4613 | 4614 | "youch@npm:^3.2.2": 4615 | version: 3.3.3 4616 | resolution: "youch@npm:3.3.3" 4617 | dependencies: 4618 | cookie: "npm:^0.5.0" 4619 | mustache: "npm:^4.2.0" 4620 | stacktracey: "npm:^2.1.8" 4621 | checksum: 6e5dd4be39ea737fb557fe0647855ce7f0e2182330342cc5e2315a688e0950683967abbc43dd6452b80f39271b14872c390a6e96009f2475905d6be824d38109 4622 | languageName: node 4623 | linkType: hard 4624 | 4625 | "zod@npm:^3.20.6": 4626 | version: 3.22.4 4627 | resolution: "zod@npm:3.22.4" 4628 | checksum: 7578ab283dac0eee66a0ad0fc4a7f28c43e6745aadb3a529f59a4b851aa10872b3890398b3160f257f4b6817b4ce643debdda4fb21a2c040adda7862cab0a587 4629 | languageName: node 4630 | linkType: hard 4631 | --------------------------------------------------------------------------------