a tool for shared writing and social publishing
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

super basic crdts and block

+4052 -84
+22 -18
app/[doc_id]/page.tsx
··· 1 1 "use client"; 2 2 import { ReplicacheProvider, useEntity, useReplicache } from "../../replicache"; 3 - import { TextEditor } from "../../components/TextEditor"; 3 + import { TextBlock } from "../../components/TextBlock"; 4 4 5 5 export default function DocumentPage(props: { params: { doc_id: string } }) { 6 6 return ( 7 7 <ReplicacheProvider name={props.params.doc_id}> 8 8 <div className="text-blue-400">doc_id: {props.params.doc_id}</div> 9 - <AllFacts entityID={props.params.doc_id} /> 9 + <AddBlock entityID={props.params.doc_id} /> 10 + <Blocks entityID={props.params.doc_id} /> 10 11 </ReplicacheProvider> 11 12 ); 12 13 } 13 14 14 - function AllFacts(props: { entityID: string }) { 15 - let blocks = useEntity(props.entityID, "block/card"); 15 + function AddBlock(props: { entityID: string }) { 16 + let rep = useReplicache(); 17 + return ( 18 + <button 19 + onClick={() => { 20 + rep?.rep?.mutate.addBlock({ 21 + parent: props.entityID, 22 + newEntityID: crypto.randomUUID(), 23 + }); 24 + }} 25 + > 26 + add block 27 + </button> 28 + ); 29 + } 30 + 31 + function Blocks(props: { entityID: string }) { 32 + let blocks = useEntity(props.entityID, "card/block"); 16 33 17 34 return ( 18 35 <div> ··· 25 42 } 26 43 27 44 function Block(props: { entityID: string }) { 28 - let content = useEntity(props.entityID, "card/content"); 29 - let children = useEntity(props.entityID, "block/card"); 30 - let rep = useReplicache(); 31 45 return ( 32 46 <div className="border p-2"> 33 - <TextEditor 34 - value={content?.[0]?.data.value} 35 - onChange={async (value) => { 36 - await rep.rep?.mutate.assertFact({ 37 - entity: props.entityID, 38 - attribute: "card/content", 39 - data: { type: "text", value }, 40 - }); 41 - }} 42 - /> 43 - {children?.map((c) => <Block key={c.id} entityID={c.data.value} />)} 47 + <TextBlock entityID={props.entityID} /> 44 48 </div> 45 49 ); 46 50 }
+61
components/TextBlock.tsx
··· 1 + import { useRef, useEffect, useState } from "react"; 2 + import * as Y from "yjs"; 3 + import * as base64 from "base64-js"; 4 + import { useReplicache, useEntity } from "../replicache"; 5 + 6 + import { EditorState } from "prosemirror-state"; 7 + import { EditorView } from "prosemirror-view"; 8 + import { schema } from "prosemirror-schema-basic"; 9 + import { ySyncPlugin } from "y-prosemirror"; 10 + 11 + export function TextBlock(props: { entityID: string }) { 12 + let ref = useRef<null | HTMLPreElement>(null); 13 + let value = useYJSValue(props.entityID); 14 + useEffect(() => { 15 + let editor = new EditorView(ref.current, { 16 + state: EditorState.create({ 17 + schema, 18 + plugins: [ySyncPlugin(value)], 19 + }), 20 + }); 21 + return () => { 22 + editor.destroy(); 23 + }; 24 + }, [value]); 25 + 26 + return <pre ref={ref} />; 27 + } 28 + 29 + function useYJSValue(entityID: string) { 30 + const [ydoc] = useState(new Y.Doc()); 31 + const docStateFromReplicache = useEntity(entityID, "block/text"); 32 + let rep = useReplicache(); 33 + const yText = ydoc.getXmlFragment("prosemirror"); 34 + 35 + if (docStateFromReplicache?.[0]) { 36 + const update = base64.toByteArray(docStateFromReplicache[0].data.value); 37 + Y.applyUpdateV2(ydoc, update); 38 + } 39 + 40 + useEffect(() => { 41 + if (!rep.rep) return; 42 + console.log("yo"); 43 + const f = async () => { 44 + console.log(entityID); 45 + const update = Y.encodeStateAsUpdateV2(ydoc); 46 + await rep.rep?.mutate.assertFact({ 47 + entity: entityID, 48 + attribute: "block/text", 49 + data: { 50 + value: base64.fromByteArray(update), 51 + type: "text", 52 + }, 53 + }); 54 + }; 55 + yText.observeDeep(f); 56 + return () => { 57 + yText.unobserveDeep(f); 58 + }; 59 + }, [yText, entityID, rep, ydoc]); 60 + return yText; 61 + }
+3836 -1
package-lock.json
··· 9 9 "version": "1.0.0", 10 10 "license": "ISC", 11 11 "dependencies": { 12 + "@nytimes/react-prosemirror": "^0.6.1", 13 + "@radix-ui/react-popover": "^1.0.7", 12 14 "@supabase/supabase-js": "^2.43.2", 13 15 "@vercel/kv": "^1.0.1", 16 + "base64-js": "^1.5.1", 14 17 "drizzle-orm": "^0.30.10", 15 18 "next": "^14.2.3", 16 19 "postgres": "^3.4.4", 20 + "prosemirror-schema-basic": "^1.2.2", 21 + "prosemirror-state": "^1.4.3", 17 22 "react": "^18.3.1", 18 23 "react-dom": "^18.3.1", 19 24 "react-use-measure": "^2.1.1", 20 - "replicache": "^14.2.2" 25 + "replicache": "^14.2.2", 26 + "y-prosemirror": "^1.2.5", 27 + "yjs": "^13.6.15" 21 28 }, 22 29 "devDependencies": { 23 30 "@cloudflare/workers-types": "^4.20240512.0", 24 31 "@types/react": "18.3.2", 25 32 "autoprefixer": "^10.4.19", 26 33 "drizzle-kit": "^0.21.2", 34 + "eslint": "8.57.0", 35 + "eslint-config-next": "14.2.3", 27 36 "postcss": "^8.4.38", 28 37 "prettier": "3.2.5", 29 38 "supabase": "^1.167.4", ··· 42 51 }, 43 52 "funding": { 44 53 "url": "https://github.com/sponsors/sindresorhus" 54 + } 55 + }, 56 + "node_modules/@babel/runtime": { 57 + "version": "7.24.5", 58 + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", 59 + "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", 60 + "dependencies": { 61 + "regenerator-runtime": "^0.14.0" 62 + }, 63 + "engines": { 64 + "node": ">=6.9.0" 45 65 } 46 66 }, 47 67 "node_modules/@badrap/valita": { ··· 961 981 "node": ">=12" 962 982 } 963 983 }, 984 + "node_modules/@eslint-community/eslint-utils": { 985 + "version": "4.4.0", 986 + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", 987 + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", 988 + "dev": true, 989 + "dependencies": { 990 + "eslint-visitor-keys": "^3.3.0" 991 + }, 992 + "engines": { 993 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 994 + }, 995 + "peerDependencies": { 996 + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" 997 + } 998 + }, 999 + "node_modules/@eslint-community/regexpp": { 1000 + "version": "4.10.0", 1001 + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", 1002 + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", 1003 + "dev": true, 1004 + "engines": { 1005 + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" 1006 + } 1007 + }, 1008 + "node_modules/@eslint/eslintrc": { 1009 + "version": "2.1.4", 1010 + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", 1011 + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", 1012 + "dev": true, 1013 + "dependencies": { 1014 + "ajv": "^6.12.4", 1015 + "debug": "^4.3.2", 1016 + "espree": "^9.6.0", 1017 + "globals": "^13.19.0", 1018 + "ignore": "^5.2.0", 1019 + "import-fresh": "^3.2.1", 1020 + "js-yaml": "^4.1.0", 1021 + "minimatch": "^3.1.2", 1022 + "strip-json-comments": "^3.1.1" 1023 + }, 1024 + "engines": { 1025 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1026 + }, 1027 + "funding": { 1028 + "url": "https://opencollective.com/eslint" 1029 + } 1030 + }, 1031 + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { 1032 + "version": "1.1.11", 1033 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1034 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1035 + "dev": true, 1036 + "dependencies": { 1037 + "balanced-match": "^1.0.0", 1038 + "concat-map": "0.0.1" 1039 + } 1040 + }, 1041 + "node_modules/@eslint/eslintrc/node_modules/minimatch": { 1042 + "version": "3.1.2", 1043 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1044 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1045 + "dev": true, 1046 + "dependencies": { 1047 + "brace-expansion": "^1.1.7" 1048 + }, 1049 + "engines": { 1050 + "node": "*" 1051 + } 1052 + }, 1053 + "node_modules/@eslint/js": { 1054 + "version": "8.57.0", 1055 + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", 1056 + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", 1057 + "dev": true, 1058 + "engines": { 1059 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1060 + } 1061 + }, 964 1062 "node_modules/@fastify/busboy": { 965 1063 "version": "2.1.1", 966 1064 "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", ··· 970 1068 "node": ">=14" 971 1069 } 972 1070 }, 1071 + "node_modules/@floating-ui/core": { 1072 + "version": "1.6.2", 1073 + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.2.tgz", 1074 + "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==", 1075 + "dependencies": { 1076 + "@floating-ui/utils": "^0.2.0" 1077 + } 1078 + }, 1079 + "node_modules/@floating-ui/dom": { 1080 + "version": "1.6.5", 1081 + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.5.tgz", 1082 + "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==", 1083 + "dependencies": { 1084 + "@floating-ui/core": "^1.0.0", 1085 + "@floating-ui/utils": "^0.2.0" 1086 + } 1087 + }, 1088 + "node_modules/@floating-ui/react-dom": { 1089 + "version": "2.1.0", 1090 + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.0.tgz", 1091 + "integrity": "sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==", 1092 + "dependencies": { 1093 + "@floating-ui/dom": "^1.0.0" 1094 + }, 1095 + "peerDependencies": { 1096 + "react": ">=16.8.0", 1097 + "react-dom": ">=16.8.0" 1098 + } 1099 + }, 1100 + "node_modules/@floating-ui/utils": { 1101 + "version": "0.2.2", 1102 + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz", 1103 + "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" 1104 + }, 1105 + "node_modules/@humanwhocodes/config-array": { 1106 + "version": "0.11.14", 1107 + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", 1108 + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", 1109 + "dev": true, 1110 + "dependencies": { 1111 + "@humanwhocodes/object-schema": "^2.0.2", 1112 + "debug": "^4.3.1", 1113 + "minimatch": "^3.0.5" 1114 + }, 1115 + "engines": { 1116 + "node": ">=10.10.0" 1117 + } 1118 + }, 1119 + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { 1120 + "version": "1.1.11", 1121 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1122 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1123 + "dev": true, 1124 + "dependencies": { 1125 + "balanced-match": "^1.0.0", 1126 + "concat-map": "0.0.1" 1127 + } 1128 + }, 1129 + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { 1130 + "version": "3.1.2", 1131 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1132 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1133 + "dev": true, 1134 + "dependencies": { 1135 + "brace-expansion": "^1.1.7" 1136 + }, 1137 + "engines": { 1138 + "node": "*" 1139 + } 1140 + }, 1141 + "node_modules/@humanwhocodes/module-importer": { 1142 + "version": "1.0.1", 1143 + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 1144 + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 1145 + "dev": true, 1146 + "engines": { 1147 + "node": ">=12.22" 1148 + }, 1149 + "funding": { 1150 + "type": "github", 1151 + "url": "https://github.com/sponsors/nzakas" 1152 + } 1153 + }, 1154 + "node_modules/@humanwhocodes/object-schema": { 1155 + "version": "2.0.3", 1156 + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", 1157 + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", 1158 + "dev": true 1159 + }, 973 1160 "node_modules/@isaacs/cliui": { 974 1161 "version": "8.0.2", 975 1162 "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", ··· 1062 1249 "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.3.tgz", 1063 1250 "integrity": "sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA==" 1064 1251 }, 1252 + "node_modules/@next/eslint-plugin-next": { 1253 + "version": "14.2.3", 1254 + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.3.tgz", 1255 + "integrity": "sha512-L3oDricIIjgj1AVnRdRor21gI7mShlSwU/1ZGHmqM3LzHhXXhdkrfeNY5zif25Bi5Dd7fiJHsbhoZCHfXYvlAw==", 1256 + "dev": true, 1257 + "dependencies": { 1258 + "glob": "10.3.10" 1259 + } 1260 + }, 1261 + "node_modules/@next/eslint-plugin-next/node_modules/glob": { 1262 + "version": "10.3.10", 1263 + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", 1264 + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", 1265 + "dev": true, 1266 + "dependencies": { 1267 + "foreground-child": "^3.1.0", 1268 + "jackspeak": "^2.3.5", 1269 + "minimatch": "^9.0.1", 1270 + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", 1271 + "path-scurry": "^1.10.1" 1272 + }, 1273 + "bin": { 1274 + "glob": "dist/esm/bin.mjs" 1275 + }, 1276 + "engines": { 1277 + "node": ">=16 || 14 >=14.17" 1278 + }, 1279 + "funding": { 1280 + "url": "https://github.com/sponsors/isaacs" 1281 + } 1282 + }, 1065 1283 "node_modules/@next/swc-darwin-arm64": { 1066 1284 "version": "14.2.3", 1067 1285 "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz", ··· 1232 1450 "node": ">= 8" 1233 1451 } 1234 1452 }, 1453 + "node_modules/@nytimes/react-prosemirror": { 1454 + "version": "0.6.1", 1455 + "resolved": "https://registry.npmjs.org/@nytimes/react-prosemirror/-/react-prosemirror-0.6.1.tgz", 1456 + "integrity": "sha512-L3Z/tZCk1BrYozgZLAuJmH5WVoitVR3Q0PIZcnAgY9AurfbQpzX4J9WnX7tEY3hciVRVmyg9EANriIsf1wsE6w==", 1457 + "engines": { 1458 + "node": ">=16.9" 1459 + }, 1460 + "peerDependencies": { 1461 + "prosemirror-model": "^1.0.0", 1462 + "prosemirror-state": "^1.0.0", 1463 + "prosemirror-view": "^1.0.0", 1464 + "react": ">=17", 1465 + "react-dom": ">=17" 1466 + } 1467 + }, 1235 1468 "node_modules/@pkgjs/parseargs": { 1236 1469 "version": "0.11.0", 1237 1470 "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", ··· 1242 1475 "node": ">=14" 1243 1476 } 1244 1477 }, 1478 + "node_modules/@radix-ui/primitive": { 1479 + "version": "1.0.1", 1480 + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", 1481 + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", 1482 + "dependencies": { 1483 + "@babel/runtime": "^7.13.10" 1484 + } 1485 + }, 1486 + "node_modules/@radix-ui/react-arrow": { 1487 + "version": "1.0.3", 1488 + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz", 1489 + "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==", 1490 + "dependencies": { 1491 + "@babel/runtime": "^7.13.10", 1492 + "@radix-ui/react-primitive": "1.0.3" 1493 + }, 1494 + "peerDependencies": { 1495 + "@types/react": "*", 1496 + "@types/react-dom": "*", 1497 + "react": "^16.8 || ^17.0 || ^18.0", 1498 + "react-dom": "^16.8 || ^17.0 || ^18.0" 1499 + }, 1500 + "peerDependenciesMeta": { 1501 + "@types/react": { 1502 + "optional": true 1503 + }, 1504 + "@types/react-dom": { 1505 + "optional": true 1506 + } 1507 + } 1508 + }, 1509 + "node_modules/@radix-ui/react-compose-refs": { 1510 + "version": "1.0.1", 1511 + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", 1512 + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", 1513 + "dependencies": { 1514 + "@babel/runtime": "^7.13.10" 1515 + }, 1516 + "peerDependencies": { 1517 + "@types/react": "*", 1518 + "react": "^16.8 || ^17.0 || ^18.0" 1519 + }, 1520 + "peerDependenciesMeta": { 1521 + "@types/react": { 1522 + "optional": true 1523 + } 1524 + } 1525 + }, 1526 + "node_modules/@radix-ui/react-context": { 1527 + "version": "1.0.1", 1528 + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", 1529 + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", 1530 + "dependencies": { 1531 + "@babel/runtime": "^7.13.10" 1532 + }, 1533 + "peerDependencies": { 1534 + "@types/react": "*", 1535 + "react": "^16.8 || ^17.0 || ^18.0" 1536 + }, 1537 + "peerDependenciesMeta": { 1538 + "@types/react": { 1539 + "optional": true 1540 + } 1541 + } 1542 + }, 1543 + "node_modules/@radix-ui/react-dismissable-layer": { 1544 + "version": "1.0.5", 1545 + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", 1546 + "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", 1547 + "dependencies": { 1548 + "@babel/runtime": "^7.13.10", 1549 + "@radix-ui/primitive": "1.0.1", 1550 + "@radix-ui/react-compose-refs": "1.0.1", 1551 + "@radix-ui/react-primitive": "1.0.3", 1552 + "@radix-ui/react-use-callback-ref": "1.0.1", 1553 + "@radix-ui/react-use-escape-keydown": "1.0.3" 1554 + }, 1555 + "peerDependencies": { 1556 + "@types/react": "*", 1557 + "@types/react-dom": "*", 1558 + "react": "^16.8 || ^17.0 || ^18.0", 1559 + "react-dom": "^16.8 || ^17.0 || ^18.0" 1560 + }, 1561 + "peerDependenciesMeta": { 1562 + "@types/react": { 1563 + "optional": true 1564 + }, 1565 + "@types/react-dom": { 1566 + "optional": true 1567 + } 1568 + } 1569 + }, 1570 + "node_modules/@radix-ui/react-focus-guards": { 1571 + "version": "1.0.1", 1572 + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", 1573 + "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", 1574 + "dependencies": { 1575 + "@babel/runtime": "^7.13.10" 1576 + }, 1577 + "peerDependencies": { 1578 + "@types/react": "*", 1579 + "react": "^16.8 || ^17.0 || ^18.0" 1580 + }, 1581 + "peerDependenciesMeta": { 1582 + "@types/react": { 1583 + "optional": true 1584 + } 1585 + } 1586 + }, 1587 + "node_modules/@radix-ui/react-focus-scope": { 1588 + "version": "1.0.4", 1589 + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", 1590 + "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", 1591 + "dependencies": { 1592 + "@babel/runtime": "^7.13.10", 1593 + "@radix-ui/react-compose-refs": "1.0.1", 1594 + "@radix-ui/react-primitive": "1.0.3", 1595 + "@radix-ui/react-use-callback-ref": "1.0.1" 1596 + }, 1597 + "peerDependencies": { 1598 + "@types/react": "*", 1599 + "@types/react-dom": "*", 1600 + "react": "^16.8 || ^17.0 || ^18.0", 1601 + "react-dom": "^16.8 || ^17.0 || ^18.0" 1602 + }, 1603 + "peerDependenciesMeta": { 1604 + "@types/react": { 1605 + "optional": true 1606 + }, 1607 + "@types/react-dom": { 1608 + "optional": true 1609 + } 1610 + } 1611 + }, 1612 + "node_modules/@radix-ui/react-id": { 1613 + "version": "1.0.1", 1614 + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", 1615 + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", 1616 + "dependencies": { 1617 + "@babel/runtime": "^7.13.10", 1618 + "@radix-ui/react-use-layout-effect": "1.0.1" 1619 + }, 1620 + "peerDependencies": { 1621 + "@types/react": "*", 1622 + "react": "^16.8 || ^17.0 || ^18.0" 1623 + }, 1624 + "peerDependenciesMeta": { 1625 + "@types/react": { 1626 + "optional": true 1627 + } 1628 + } 1629 + }, 1630 + "node_modules/@radix-ui/react-popover": { 1631 + "version": "1.0.7", 1632 + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.0.7.tgz", 1633 + "integrity": "sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==", 1634 + "dependencies": { 1635 + "@babel/runtime": "^7.13.10", 1636 + "@radix-ui/primitive": "1.0.1", 1637 + "@radix-ui/react-compose-refs": "1.0.1", 1638 + "@radix-ui/react-context": "1.0.1", 1639 + "@radix-ui/react-dismissable-layer": "1.0.5", 1640 + "@radix-ui/react-focus-guards": "1.0.1", 1641 + "@radix-ui/react-focus-scope": "1.0.4", 1642 + "@radix-ui/react-id": "1.0.1", 1643 + "@radix-ui/react-popper": "1.1.3", 1644 + "@radix-ui/react-portal": "1.0.4", 1645 + "@radix-ui/react-presence": "1.0.1", 1646 + "@radix-ui/react-primitive": "1.0.3", 1647 + "@radix-ui/react-slot": "1.0.2", 1648 + "@radix-ui/react-use-controllable-state": "1.0.1", 1649 + "aria-hidden": "^1.1.1", 1650 + "react-remove-scroll": "2.5.5" 1651 + }, 1652 + "peerDependencies": { 1653 + "@types/react": "*", 1654 + "@types/react-dom": "*", 1655 + "react": "^16.8 || ^17.0 || ^18.0", 1656 + "react-dom": "^16.8 || ^17.0 || ^18.0" 1657 + }, 1658 + "peerDependenciesMeta": { 1659 + "@types/react": { 1660 + "optional": true 1661 + }, 1662 + "@types/react-dom": { 1663 + "optional": true 1664 + } 1665 + } 1666 + }, 1667 + "node_modules/@radix-ui/react-popper": { 1668 + "version": "1.1.3", 1669 + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.3.tgz", 1670 + "integrity": "sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==", 1671 + "dependencies": { 1672 + "@babel/runtime": "^7.13.10", 1673 + "@floating-ui/react-dom": "^2.0.0", 1674 + "@radix-ui/react-arrow": "1.0.3", 1675 + "@radix-ui/react-compose-refs": "1.0.1", 1676 + "@radix-ui/react-context": "1.0.1", 1677 + "@radix-ui/react-primitive": "1.0.3", 1678 + "@radix-ui/react-use-callback-ref": "1.0.1", 1679 + "@radix-ui/react-use-layout-effect": "1.0.1", 1680 + "@radix-ui/react-use-rect": "1.0.1", 1681 + "@radix-ui/react-use-size": "1.0.1", 1682 + "@radix-ui/rect": "1.0.1" 1683 + }, 1684 + "peerDependencies": { 1685 + "@types/react": "*", 1686 + "@types/react-dom": "*", 1687 + "react": "^16.8 || ^17.0 || ^18.0", 1688 + "react-dom": "^16.8 || ^17.0 || ^18.0" 1689 + }, 1690 + "peerDependenciesMeta": { 1691 + "@types/react": { 1692 + "optional": true 1693 + }, 1694 + "@types/react-dom": { 1695 + "optional": true 1696 + } 1697 + } 1698 + }, 1699 + "node_modules/@radix-ui/react-portal": { 1700 + "version": "1.0.4", 1701 + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", 1702 + "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", 1703 + "dependencies": { 1704 + "@babel/runtime": "^7.13.10", 1705 + "@radix-ui/react-primitive": "1.0.3" 1706 + }, 1707 + "peerDependencies": { 1708 + "@types/react": "*", 1709 + "@types/react-dom": "*", 1710 + "react": "^16.8 || ^17.0 || ^18.0", 1711 + "react-dom": "^16.8 || ^17.0 || ^18.0" 1712 + }, 1713 + "peerDependenciesMeta": { 1714 + "@types/react": { 1715 + "optional": true 1716 + }, 1717 + "@types/react-dom": { 1718 + "optional": true 1719 + } 1720 + } 1721 + }, 1722 + "node_modules/@radix-ui/react-presence": { 1723 + "version": "1.0.1", 1724 + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", 1725 + "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", 1726 + "dependencies": { 1727 + "@babel/runtime": "^7.13.10", 1728 + "@radix-ui/react-compose-refs": "1.0.1", 1729 + "@radix-ui/react-use-layout-effect": "1.0.1" 1730 + }, 1731 + "peerDependencies": { 1732 + "@types/react": "*", 1733 + "@types/react-dom": "*", 1734 + "react": "^16.8 || ^17.0 || ^18.0", 1735 + "react-dom": "^16.8 || ^17.0 || ^18.0" 1736 + }, 1737 + "peerDependenciesMeta": { 1738 + "@types/react": { 1739 + "optional": true 1740 + }, 1741 + "@types/react-dom": { 1742 + "optional": true 1743 + } 1744 + } 1745 + }, 1746 + "node_modules/@radix-ui/react-primitive": { 1747 + "version": "1.0.3", 1748 + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", 1749 + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", 1750 + "dependencies": { 1751 + "@babel/runtime": "^7.13.10", 1752 + "@radix-ui/react-slot": "1.0.2" 1753 + }, 1754 + "peerDependencies": { 1755 + "@types/react": "*", 1756 + "@types/react-dom": "*", 1757 + "react": "^16.8 || ^17.0 || ^18.0", 1758 + "react-dom": "^16.8 || ^17.0 || ^18.0" 1759 + }, 1760 + "peerDependenciesMeta": { 1761 + "@types/react": { 1762 + "optional": true 1763 + }, 1764 + "@types/react-dom": { 1765 + "optional": true 1766 + } 1767 + } 1768 + }, 1769 + "node_modules/@radix-ui/react-slot": { 1770 + "version": "1.0.2", 1771 + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", 1772 + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", 1773 + "dependencies": { 1774 + "@babel/runtime": "^7.13.10", 1775 + "@radix-ui/react-compose-refs": "1.0.1" 1776 + }, 1777 + "peerDependencies": { 1778 + "@types/react": "*", 1779 + "react": "^16.8 || ^17.0 || ^18.0" 1780 + }, 1781 + "peerDependenciesMeta": { 1782 + "@types/react": { 1783 + "optional": true 1784 + } 1785 + } 1786 + }, 1787 + "node_modules/@radix-ui/react-use-callback-ref": { 1788 + "version": "1.0.1", 1789 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", 1790 + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", 1791 + "dependencies": { 1792 + "@babel/runtime": "^7.13.10" 1793 + }, 1794 + "peerDependencies": { 1795 + "@types/react": "*", 1796 + "react": "^16.8 || ^17.0 || ^18.0" 1797 + }, 1798 + "peerDependenciesMeta": { 1799 + "@types/react": { 1800 + "optional": true 1801 + } 1802 + } 1803 + }, 1804 + "node_modules/@radix-ui/react-use-controllable-state": { 1805 + "version": "1.0.1", 1806 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", 1807 + "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", 1808 + "dependencies": { 1809 + "@babel/runtime": "^7.13.10", 1810 + "@radix-ui/react-use-callback-ref": "1.0.1" 1811 + }, 1812 + "peerDependencies": { 1813 + "@types/react": "*", 1814 + "react": "^16.8 || ^17.0 || ^18.0" 1815 + }, 1816 + "peerDependenciesMeta": { 1817 + "@types/react": { 1818 + "optional": true 1819 + } 1820 + } 1821 + }, 1822 + "node_modules/@radix-ui/react-use-escape-keydown": { 1823 + "version": "1.0.3", 1824 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", 1825 + "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", 1826 + "dependencies": { 1827 + "@babel/runtime": "^7.13.10", 1828 + "@radix-ui/react-use-callback-ref": "1.0.1" 1829 + }, 1830 + "peerDependencies": { 1831 + "@types/react": "*", 1832 + "react": "^16.8 || ^17.0 || ^18.0" 1833 + }, 1834 + "peerDependenciesMeta": { 1835 + "@types/react": { 1836 + "optional": true 1837 + } 1838 + } 1839 + }, 1840 + "node_modules/@radix-ui/react-use-layout-effect": { 1841 + "version": "1.0.1", 1842 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", 1843 + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", 1844 + "dependencies": { 1845 + "@babel/runtime": "^7.13.10" 1846 + }, 1847 + "peerDependencies": { 1848 + "@types/react": "*", 1849 + "react": "^16.8 || ^17.0 || ^18.0" 1850 + }, 1851 + "peerDependenciesMeta": { 1852 + "@types/react": { 1853 + "optional": true 1854 + } 1855 + } 1856 + }, 1857 + "node_modules/@radix-ui/react-use-rect": { 1858 + "version": "1.0.1", 1859 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz", 1860 + "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==", 1861 + "dependencies": { 1862 + "@babel/runtime": "^7.13.10", 1863 + "@radix-ui/rect": "1.0.1" 1864 + }, 1865 + "peerDependencies": { 1866 + "@types/react": "*", 1867 + "react": "^16.8 || ^17.0 || ^18.0" 1868 + }, 1869 + "peerDependenciesMeta": { 1870 + "@types/react": { 1871 + "optional": true 1872 + } 1873 + } 1874 + }, 1875 + "node_modules/@radix-ui/react-use-size": { 1876 + "version": "1.0.1", 1877 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz", 1878 + "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==", 1879 + "dependencies": { 1880 + "@babel/runtime": "^7.13.10", 1881 + "@radix-ui/react-use-layout-effect": "1.0.1" 1882 + }, 1883 + "peerDependencies": { 1884 + "@types/react": "*", 1885 + "react": "^16.8 || ^17.0 || ^18.0" 1886 + }, 1887 + "peerDependenciesMeta": { 1888 + "@types/react": { 1889 + "optional": true 1890 + } 1891 + } 1892 + }, 1893 + "node_modules/@radix-ui/rect": { 1894 + "version": "1.0.1", 1895 + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.1.tgz", 1896 + "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==", 1897 + "dependencies": { 1898 + "@babel/runtime": "^7.13.10" 1899 + } 1900 + }, 1245 1901 "node_modules/@rocicorp/lock": { 1246 1902 "version": "1.0.3", 1247 1903 "resolved": "https://registry.npmjs.org/@rocicorp/lock/-/lock-1.0.3.tgz", ··· 1266 1922 "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 1267 1923 } 1268 1924 }, 1925 + "node_modules/@rushstack/eslint-patch": { 1926 + "version": "1.10.3", 1927 + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz", 1928 + "integrity": "sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==", 1929 + "dev": true 1930 + }, 1269 1931 "node_modules/@supabase/auth-js": { 1270 1932 "version": "2.64.2", 1271 1933 "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.64.2.tgz", ··· 1347 2009 "tslib": "^2.4.0" 1348 2010 } 1349 2011 }, 2012 + "node_modules/@types/json5": { 2013 + "version": "0.0.29", 2014 + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", 2015 + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", 2016 + "dev": true 2017 + }, 1350 2018 "node_modules/@types/node": { 1351 2019 "version": "20.12.12", 1352 2020 "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", ··· 1393 2061 "@types/node": "*" 1394 2062 } 1395 2063 }, 2064 + "node_modules/@typescript-eslint/parser": { 2065 + "version": "7.2.0", 2066 + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", 2067 + "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", 2068 + "dev": true, 2069 + "dependencies": { 2070 + "@typescript-eslint/scope-manager": "7.2.0", 2071 + "@typescript-eslint/types": "7.2.0", 2072 + "@typescript-eslint/typescript-estree": "7.2.0", 2073 + "@typescript-eslint/visitor-keys": "7.2.0", 2074 + "debug": "^4.3.4" 2075 + }, 2076 + "engines": { 2077 + "node": "^16.0.0 || >=18.0.0" 2078 + }, 2079 + "funding": { 2080 + "type": "opencollective", 2081 + "url": "https://opencollective.com/typescript-eslint" 2082 + }, 2083 + "peerDependencies": { 2084 + "eslint": "^8.56.0" 2085 + }, 2086 + "peerDependenciesMeta": { 2087 + "typescript": { 2088 + "optional": true 2089 + } 2090 + } 2091 + }, 2092 + "node_modules/@typescript-eslint/scope-manager": { 2093 + "version": "7.2.0", 2094 + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", 2095 + "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", 2096 + "dev": true, 2097 + "dependencies": { 2098 + "@typescript-eslint/types": "7.2.0", 2099 + "@typescript-eslint/visitor-keys": "7.2.0" 2100 + }, 2101 + "engines": { 2102 + "node": "^16.0.0 || >=18.0.0" 2103 + }, 2104 + "funding": { 2105 + "type": "opencollective", 2106 + "url": "https://opencollective.com/typescript-eslint" 2107 + } 2108 + }, 2109 + "node_modules/@typescript-eslint/types": { 2110 + "version": "7.2.0", 2111 + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", 2112 + "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", 2113 + "dev": true, 2114 + "engines": { 2115 + "node": "^16.0.0 || >=18.0.0" 2116 + }, 2117 + "funding": { 2118 + "type": "opencollective", 2119 + "url": "https://opencollective.com/typescript-eslint" 2120 + } 2121 + }, 2122 + "node_modules/@typescript-eslint/typescript-estree": { 2123 + "version": "7.2.0", 2124 + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", 2125 + "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", 2126 + "dev": true, 2127 + "dependencies": { 2128 + "@typescript-eslint/types": "7.2.0", 2129 + "@typescript-eslint/visitor-keys": "7.2.0", 2130 + "debug": "^4.3.4", 2131 + "globby": "^11.1.0", 2132 + "is-glob": "^4.0.3", 2133 + "minimatch": "9.0.3", 2134 + "semver": "^7.5.4", 2135 + "ts-api-utils": "^1.0.1" 2136 + }, 2137 + "engines": { 2138 + "node": "^16.0.0 || >=18.0.0" 2139 + }, 2140 + "funding": { 2141 + "type": "opencollective", 2142 + "url": "https://opencollective.com/typescript-eslint" 2143 + }, 2144 + "peerDependenciesMeta": { 2145 + "typescript": { 2146 + "optional": true 2147 + } 2148 + } 2149 + }, 2150 + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { 2151 + "version": "9.0.3", 2152 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", 2153 + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", 2154 + "dev": true, 2155 + "dependencies": { 2156 + "brace-expansion": "^2.0.1" 2157 + }, 2158 + "engines": { 2159 + "node": ">=16 || 14 >=14.17" 2160 + }, 2161 + "funding": { 2162 + "url": "https://github.com/sponsors/isaacs" 2163 + } 2164 + }, 2165 + "node_modules/@typescript-eslint/visitor-keys": { 2166 + "version": "7.2.0", 2167 + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", 2168 + "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", 2169 + "dev": true, 2170 + "dependencies": { 2171 + "@typescript-eslint/types": "7.2.0", 2172 + "eslint-visitor-keys": "^3.4.1" 2173 + }, 2174 + "engines": { 2175 + "node": "^16.0.0 || >=18.0.0" 2176 + }, 2177 + "funding": { 2178 + "type": "opencollective", 2179 + "url": "https://opencollective.com/typescript-eslint" 2180 + } 2181 + }, 2182 + "node_modules/@ungap/structured-clone": { 2183 + "version": "1.2.0", 2184 + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", 2185 + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", 2186 + "dev": true 2187 + }, 1396 2188 "node_modules/@upstash/redis": { 1397 2189 "version": "1.25.1", 1398 2190 "resolved": "https://registry.npmjs.org/@upstash/redis/-/redis-1.25.1.tgz", ··· 1424 2216 "node": ">=0.4.0" 1425 2217 } 1426 2218 }, 2219 + "node_modules/acorn-jsx": { 2220 + "version": "5.3.2", 2221 + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 2222 + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 2223 + "dev": true, 2224 + "peerDependencies": { 2225 + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 2226 + } 2227 + }, 1427 2228 "node_modules/acorn-walk": { 1428 2229 "version": "8.3.2", 1429 2230 "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", ··· 1445 2246 "node": ">= 14" 1446 2247 } 1447 2248 }, 2249 + "node_modules/ajv": { 2250 + "version": "6.12.6", 2251 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 2252 + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 2253 + "dev": true, 2254 + "dependencies": { 2255 + "fast-deep-equal": "^3.1.1", 2256 + "fast-json-stable-stringify": "^2.0.0", 2257 + "json-schema-traverse": "^0.4.1", 2258 + "uri-js": "^4.2.2" 2259 + }, 2260 + "funding": { 2261 + "type": "github", 2262 + "url": "https://github.com/sponsors/epoberezkin" 2263 + } 2264 + }, 1448 2265 "node_modules/ansi-regex": { 1449 2266 "version": "6.0.1", 1450 2267 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", ··· 1494 2311 "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", 1495 2312 "dev": true 1496 2313 }, 2314 + "node_modules/argparse": { 2315 + "version": "2.0.1", 2316 + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 2317 + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 2318 + "dev": true 2319 + }, 2320 + "node_modules/aria-hidden": { 2321 + "version": "1.2.4", 2322 + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", 2323 + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", 2324 + "dependencies": { 2325 + "tslib": "^2.0.0" 2326 + }, 2327 + "engines": { 2328 + "node": ">=10" 2329 + } 2330 + }, 2331 + "node_modules/aria-query": { 2332 + "version": "5.3.0", 2333 + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", 2334 + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", 2335 + "dev": true, 2336 + "dependencies": { 2337 + "dequal": "^2.0.3" 2338 + } 2339 + }, 2340 + "node_modules/array-buffer-byte-length": { 2341 + "version": "1.0.1", 2342 + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", 2343 + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", 2344 + "dev": true, 2345 + "dependencies": { 2346 + "call-bind": "^1.0.5", 2347 + "is-array-buffer": "^3.0.4" 2348 + }, 2349 + "engines": { 2350 + "node": ">= 0.4" 2351 + }, 2352 + "funding": { 2353 + "url": "https://github.com/sponsors/ljharb" 2354 + } 2355 + }, 2356 + "node_modules/array-includes": { 2357 + "version": "3.1.8", 2358 + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", 2359 + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", 2360 + "dev": true, 2361 + "dependencies": { 2362 + "call-bind": "^1.0.7", 2363 + "define-properties": "^1.2.1", 2364 + "es-abstract": "^1.23.2", 2365 + "es-object-atoms": "^1.0.0", 2366 + "get-intrinsic": "^1.2.4", 2367 + "is-string": "^1.0.7" 2368 + }, 2369 + "engines": { 2370 + "node": ">= 0.4" 2371 + }, 2372 + "funding": { 2373 + "url": "https://github.com/sponsors/ljharb" 2374 + } 2375 + }, 2376 + "node_modules/array-union": { 2377 + "version": "2.1.0", 2378 + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 2379 + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 2380 + "dev": true, 2381 + "engines": { 2382 + "node": ">=8" 2383 + } 2384 + }, 2385 + "node_modules/array.prototype.findlast": { 2386 + "version": "1.2.5", 2387 + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", 2388 + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", 2389 + "dev": true, 2390 + "dependencies": { 2391 + "call-bind": "^1.0.7", 2392 + "define-properties": "^1.2.1", 2393 + "es-abstract": "^1.23.2", 2394 + "es-errors": "^1.3.0", 2395 + "es-object-atoms": "^1.0.0", 2396 + "es-shim-unscopables": "^1.0.2" 2397 + }, 2398 + "engines": { 2399 + "node": ">= 0.4" 2400 + }, 2401 + "funding": { 2402 + "url": "https://github.com/sponsors/ljharb" 2403 + } 2404 + }, 2405 + "node_modules/array.prototype.findlastindex": { 2406 + "version": "1.2.5", 2407 + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", 2408 + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", 2409 + "dev": true, 2410 + "dependencies": { 2411 + "call-bind": "^1.0.7", 2412 + "define-properties": "^1.2.1", 2413 + "es-abstract": "^1.23.2", 2414 + "es-errors": "^1.3.0", 2415 + "es-object-atoms": "^1.0.0", 2416 + "es-shim-unscopables": "^1.0.2" 2417 + }, 2418 + "engines": { 2419 + "node": ">= 0.4" 2420 + }, 2421 + "funding": { 2422 + "url": "https://github.com/sponsors/ljharb" 2423 + } 2424 + }, 2425 + "node_modules/array.prototype.flat": { 2426 + "version": "1.3.2", 2427 + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", 2428 + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", 2429 + "dev": true, 2430 + "dependencies": { 2431 + "call-bind": "^1.0.2", 2432 + "define-properties": "^1.2.0", 2433 + "es-abstract": "^1.22.1", 2434 + "es-shim-unscopables": "^1.0.0" 2435 + }, 2436 + "engines": { 2437 + "node": ">= 0.4" 2438 + }, 2439 + "funding": { 2440 + "url": "https://github.com/sponsors/ljharb" 2441 + } 2442 + }, 2443 + "node_modules/array.prototype.flatmap": { 2444 + "version": "1.3.2", 2445 + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", 2446 + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", 2447 + "dev": true, 2448 + "dependencies": { 2449 + "call-bind": "^1.0.2", 2450 + "define-properties": "^1.2.0", 2451 + "es-abstract": "^1.22.1", 2452 + "es-shim-unscopables": "^1.0.0" 2453 + }, 2454 + "engines": { 2455 + "node": ">= 0.4" 2456 + }, 2457 + "funding": { 2458 + "url": "https://github.com/sponsors/ljharb" 2459 + } 2460 + }, 2461 + "node_modules/array.prototype.toreversed": { 2462 + "version": "1.1.2", 2463 + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", 2464 + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", 2465 + "dev": true, 2466 + "dependencies": { 2467 + "call-bind": "^1.0.2", 2468 + "define-properties": "^1.2.0", 2469 + "es-abstract": "^1.22.1", 2470 + "es-shim-unscopables": "^1.0.0" 2471 + } 2472 + }, 2473 + "node_modules/array.prototype.tosorted": { 2474 + "version": "1.1.3", 2475 + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", 2476 + "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", 2477 + "dev": true, 2478 + "dependencies": { 2479 + "call-bind": "^1.0.5", 2480 + "define-properties": "^1.2.1", 2481 + "es-abstract": "^1.22.3", 2482 + "es-errors": "^1.1.0", 2483 + "es-shim-unscopables": "^1.0.2" 2484 + } 2485 + }, 2486 + "node_modules/arraybuffer.prototype.slice": { 2487 + "version": "1.0.3", 2488 + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", 2489 + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", 2490 + "dev": true, 2491 + "dependencies": { 2492 + "array-buffer-byte-length": "^1.0.1", 2493 + "call-bind": "^1.0.5", 2494 + "define-properties": "^1.2.1", 2495 + "es-abstract": "^1.22.3", 2496 + "es-errors": "^1.2.1", 2497 + "get-intrinsic": "^1.2.3", 2498 + "is-array-buffer": "^3.0.4", 2499 + "is-shared-array-buffer": "^1.0.2" 2500 + }, 2501 + "engines": { 2502 + "node": ">= 0.4" 2503 + }, 2504 + "funding": { 2505 + "url": "https://github.com/sponsors/ljharb" 2506 + } 2507 + }, 1497 2508 "node_modules/as-table": { 1498 2509 "version": "1.0.55", 1499 2510 "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", ··· 1502 2513 "dependencies": { 1503 2514 "printable-characters": "^1.0.42" 1504 2515 } 2516 + }, 2517 + "node_modules/ast-types-flow": { 2518 + "version": "0.0.8", 2519 + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", 2520 + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", 2521 + "dev": true 1505 2522 }, 1506 2523 "node_modules/autoprefixer": { 1507 2524 "version": "10.4.19", ··· 1540 2557 "postcss": "^8.1.0" 1541 2558 } 1542 2559 }, 2560 + "node_modules/available-typed-arrays": { 2561 + "version": "1.0.7", 2562 + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", 2563 + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", 2564 + "dev": true, 2565 + "dependencies": { 2566 + "possible-typed-array-names": "^1.0.0" 2567 + }, 2568 + "engines": { 2569 + "node": ">= 0.4" 2570 + }, 2571 + "funding": { 2572 + "url": "https://github.com/sponsors/ljharb" 2573 + } 2574 + }, 2575 + "node_modules/axe-core": { 2576 + "version": "4.7.0", 2577 + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", 2578 + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", 2579 + "dev": true, 2580 + "engines": { 2581 + "node": ">=4" 2582 + } 2583 + }, 2584 + "node_modules/axobject-query": { 2585 + "version": "3.2.1", 2586 + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", 2587 + "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", 2588 + "dev": true, 2589 + "dependencies": { 2590 + "dequal": "^2.0.3" 2591 + } 2592 + }, 1543 2593 "node_modules/balanced-match": { 1544 2594 "version": "1.0.2", 1545 2595 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1546 2596 "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1547 2597 "dev": true 2598 + }, 2599 + "node_modules/base64-js": { 2600 + "version": "1.5.1", 2601 + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 2602 + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 2603 + "funding": [ 2604 + { 2605 + "type": "github", 2606 + "url": "https://github.com/sponsors/feross" 2607 + }, 2608 + { 2609 + "type": "patreon", 2610 + "url": "https://www.patreon.com/feross" 2611 + }, 2612 + { 2613 + "type": "consulting", 2614 + "url": "https://feross.org/support" 2615 + } 2616 + ] 1548 2617 }, 1549 2618 "node_modules/bin-links": { 1550 2619 "version": "4.0.4", ··· 1649 2718 "node": ">=10.16.0" 1650 2719 } 1651 2720 }, 2721 + "node_modules/call-bind": { 2722 + "version": "1.0.7", 2723 + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", 2724 + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", 2725 + "dev": true, 2726 + "dependencies": { 2727 + "es-define-property": "^1.0.0", 2728 + "es-errors": "^1.3.0", 2729 + "function-bind": "^1.1.2", 2730 + "get-intrinsic": "^1.2.4", 2731 + "set-function-length": "^1.2.1" 2732 + }, 2733 + "engines": { 2734 + "node": ">= 0.4" 2735 + }, 2736 + "funding": { 2737 + "url": "https://github.com/sponsors/ljharb" 2738 + } 2739 + }, 2740 + "node_modules/callsites": { 2741 + "version": "3.1.0", 2742 + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 2743 + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 2744 + "dev": true, 2745 + "engines": { 2746 + "node": ">=6" 2747 + } 2748 + }, 1652 2749 "node_modules/camelcase-css": { 1653 2750 "version": "2.0.1", 1654 2751 "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", ··· 1687 2784 "tslib": "^2.2.0" 1688 2785 } 1689 2786 }, 2787 + "node_modules/chalk": { 2788 + "version": "4.1.2", 2789 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 2790 + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 2791 + "dev": true, 2792 + "dependencies": { 2793 + "ansi-styles": "^4.1.0", 2794 + "supports-color": "^7.1.0" 2795 + }, 2796 + "engines": { 2797 + "node": ">=10" 2798 + }, 2799 + "funding": { 2800 + "url": "https://github.com/chalk/chalk?sponsor=1" 2801 + } 2802 + }, 2803 + "node_modules/chalk/node_modules/ansi-styles": { 2804 + "version": "4.3.0", 2805 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2806 + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2807 + "dev": true, 2808 + "dependencies": { 2809 + "color-convert": "^2.0.1" 2810 + }, 2811 + "engines": { 2812 + "node": ">=8" 2813 + }, 2814 + "funding": { 2815 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 2816 + } 2817 + }, 1690 2818 "node_modules/chokidar": { 1691 2819 "version": "3.6.0", 1692 2820 "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", ··· 1777 2905 "node": ">= 6" 1778 2906 } 1779 2907 }, 2908 + "node_modules/concat-map": { 2909 + "version": "0.0.1", 2910 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 2911 + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 2912 + "dev": true 2913 + }, 1780 2914 "node_modules/cookie": { 1781 2915 "version": "0.5.0", 1782 2916 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", ··· 1836 2970 "node": ">=0.12" 1837 2971 } 1838 2972 }, 2973 + "node_modules/damerau-levenshtein": { 2974 + "version": "1.0.8", 2975 + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", 2976 + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", 2977 + "dev": true 2978 + }, 1839 2979 "node_modules/data-uri-to-buffer": { 1840 2980 "version": "4.0.1", 1841 2981 "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", ··· 1845 2985 "node": ">= 12" 1846 2986 } 1847 2987 }, 2988 + "node_modules/data-view-buffer": { 2989 + "version": "1.0.1", 2990 + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", 2991 + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", 2992 + "dev": true, 2993 + "dependencies": { 2994 + "call-bind": "^1.0.6", 2995 + "es-errors": "^1.3.0", 2996 + "is-data-view": "^1.0.1" 2997 + }, 2998 + "engines": { 2999 + "node": ">= 0.4" 3000 + }, 3001 + "funding": { 3002 + "url": "https://github.com/sponsors/ljharb" 3003 + } 3004 + }, 3005 + "node_modules/data-view-byte-length": { 3006 + "version": "1.0.1", 3007 + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", 3008 + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", 3009 + "dev": true, 3010 + "dependencies": { 3011 + "call-bind": "^1.0.7", 3012 + "es-errors": "^1.3.0", 3013 + "is-data-view": "^1.0.1" 3014 + }, 3015 + "engines": { 3016 + "node": ">= 0.4" 3017 + }, 3018 + "funding": { 3019 + "url": "https://github.com/sponsors/ljharb" 3020 + } 3021 + }, 3022 + "node_modules/data-view-byte-offset": { 3023 + "version": "1.0.0", 3024 + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", 3025 + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", 3026 + "dev": true, 3027 + "dependencies": { 3028 + "call-bind": "^1.0.6", 3029 + "es-errors": "^1.3.0", 3030 + "is-data-view": "^1.0.1" 3031 + }, 3032 + "engines": { 3033 + "node": ">= 0.4" 3034 + }, 3035 + "funding": { 3036 + "url": "https://github.com/sponsors/ljharb" 3037 + } 3038 + }, 1848 3039 "node_modules/debounce": { 1849 3040 "version": "1.2.1", 1850 3041 "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", ··· 1867 3058 } 1868 3059 } 1869 3060 }, 3061 + "node_modules/deep-is": { 3062 + "version": "0.1.4", 3063 + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 3064 + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 3065 + "dev": true 3066 + }, 3067 + "node_modules/define-data-property": { 3068 + "version": "1.1.4", 3069 + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", 3070 + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", 3071 + "dev": true, 3072 + "dependencies": { 3073 + "es-define-property": "^1.0.0", 3074 + "es-errors": "^1.3.0", 3075 + "gopd": "^1.0.1" 3076 + }, 3077 + "engines": { 3078 + "node": ">= 0.4" 3079 + }, 3080 + "funding": { 3081 + "url": "https://github.com/sponsors/ljharb" 3082 + } 3083 + }, 3084 + "node_modules/define-properties": { 3085 + "version": "1.2.1", 3086 + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", 3087 + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", 3088 + "dev": true, 3089 + "dependencies": { 3090 + "define-data-property": "^1.0.1", 3091 + "has-property-descriptors": "^1.0.0", 3092 + "object-keys": "^1.1.1" 3093 + }, 3094 + "engines": { 3095 + "node": ">= 0.4" 3096 + }, 3097 + "funding": { 3098 + "url": "https://github.com/sponsors/ljharb" 3099 + } 3100 + }, 3101 + "node_modules/dequal": { 3102 + "version": "2.0.3", 3103 + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", 3104 + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", 3105 + "dev": true, 3106 + "engines": { 3107 + "node": ">=6" 3108 + } 3109 + }, 3110 + "node_modules/detect-node-es": { 3111 + "version": "1.1.0", 3112 + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", 3113 + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" 3114 + }, 1870 3115 "node_modules/didyoumean": { 1871 3116 "version": "1.2.2", 1872 3117 "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", ··· 1885 3130 "node": "*" 1886 3131 } 1887 3132 }, 3133 + "node_modules/dir-glob": { 3134 + "version": "3.0.1", 3135 + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 3136 + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 3137 + "dev": true, 3138 + "dependencies": { 3139 + "path-type": "^4.0.0" 3140 + }, 3141 + "engines": { 3142 + "node": ">=8" 3143 + } 3144 + }, 1888 3145 "node_modules/dlv": { 1889 3146 "version": "1.1.3", 1890 3147 "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", 1891 3148 "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", 1892 3149 "dev": true 3150 + }, 3151 + "node_modules/doctrine": { 3152 + "version": "3.0.0", 3153 + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 3154 + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 3155 + "dev": true, 3156 + "dependencies": { 3157 + "esutils": "^2.0.2" 3158 + }, 3159 + "engines": { 3160 + "node": ">=6.0.0" 3161 + } 1893 3162 }, 1894 3163 "node_modules/dreamopt": { 1895 3164 "version": "0.8.0", ··· 2480 3749 "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 2481 3750 "dev": true 2482 3751 }, 3752 + "node_modules/enhanced-resolve": { 3753 + "version": "5.16.1", 3754 + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz", 3755 + "integrity": "sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==", 3756 + "dev": true, 3757 + "dependencies": { 3758 + "graceful-fs": "^4.2.4", 3759 + "tapable": "^2.2.0" 3760 + }, 3761 + "engines": { 3762 + "node": ">=10.13.0" 3763 + } 3764 + }, 2483 3765 "node_modules/env-paths": { 2484 3766 "version": "3.0.0", 2485 3767 "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", ··· 2492 3774 "url": "https://github.com/sponsors/sindresorhus" 2493 3775 } 2494 3776 }, 3777 + "node_modules/es-abstract": { 3778 + "version": "1.23.3", 3779 + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", 3780 + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", 3781 + "dev": true, 3782 + "dependencies": { 3783 + "array-buffer-byte-length": "^1.0.1", 3784 + "arraybuffer.prototype.slice": "^1.0.3", 3785 + "available-typed-arrays": "^1.0.7", 3786 + "call-bind": "^1.0.7", 3787 + "data-view-buffer": "^1.0.1", 3788 + "data-view-byte-length": "^1.0.1", 3789 + "data-view-byte-offset": "^1.0.0", 3790 + "es-define-property": "^1.0.0", 3791 + "es-errors": "^1.3.0", 3792 + "es-object-atoms": "^1.0.0", 3793 + "es-set-tostringtag": "^2.0.3", 3794 + "es-to-primitive": "^1.2.1", 3795 + "function.prototype.name": "^1.1.6", 3796 + "get-intrinsic": "^1.2.4", 3797 + "get-symbol-description": "^1.0.2", 3798 + "globalthis": "^1.0.3", 3799 + "gopd": "^1.0.1", 3800 + "has-property-descriptors": "^1.0.2", 3801 + "has-proto": "^1.0.3", 3802 + "has-symbols": "^1.0.3", 3803 + "hasown": "^2.0.2", 3804 + "internal-slot": "^1.0.7", 3805 + "is-array-buffer": "^3.0.4", 3806 + "is-callable": "^1.2.7", 3807 + "is-data-view": "^1.0.1", 3808 + "is-negative-zero": "^2.0.3", 3809 + "is-regex": "^1.1.4", 3810 + "is-shared-array-buffer": "^1.0.3", 3811 + "is-string": "^1.0.7", 3812 + "is-typed-array": "^1.1.13", 3813 + "is-weakref": "^1.0.2", 3814 + "object-inspect": "^1.13.1", 3815 + "object-keys": "^1.1.1", 3816 + "object.assign": "^4.1.5", 3817 + "regexp.prototype.flags": "^1.5.2", 3818 + "safe-array-concat": "^1.1.2", 3819 + "safe-regex-test": "^1.0.3", 3820 + "string.prototype.trim": "^1.2.9", 3821 + "string.prototype.trimend": "^1.0.8", 3822 + "string.prototype.trimstart": "^1.0.8", 3823 + "typed-array-buffer": "^1.0.2", 3824 + "typed-array-byte-length": "^1.0.1", 3825 + "typed-array-byte-offset": "^1.0.2", 3826 + "typed-array-length": "^1.0.6", 3827 + "unbox-primitive": "^1.0.2", 3828 + "which-typed-array": "^1.1.15" 3829 + }, 3830 + "engines": { 3831 + "node": ">= 0.4" 3832 + }, 3833 + "funding": { 3834 + "url": "https://github.com/sponsors/ljharb" 3835 + } 3836 + }, 3837 + "node_modules/es-define-property": { 3838 + "version": "1.0.0", 3839 + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", 3840 + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", 3841 + "dev": true, 3842 + "dependencies": { 3843 + "get-intrinsic": "^1.2.4" 3844 + }, 3845 + "engines": { 3846 + "node": ">= 0.4" 3847 + } 3848 + }, 3849 + "node_modules/es-errors": { 3850 + "version": "1.3.0", 3851 + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", 3852 + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", 3853 + "dev": true, 3854 + "engines": { 3855 + "node": ">= 0.4" 3856 + } 3857 + }, 3858 + "node_modules/es-iterator-helpers": { 3859 + "version": "1.0.19", 3860 + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", 3861 + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", 3862 + "dev": true, 3863 + "dependencies": { 3864 + "call-bind": "^1.0.7", 3865 + "define-properties": "^1.2.1", 3866 + "es-abstract": "^1.23.3", 3867 + "es-errors": "^1.3.0", 3868 + "es-set-tostringtag": "^2.0.3", 3869 + "function-bind": "^1.1.2", 3870 + "get-intrinsic": "^1.2.4", 3871 + "globalthis": "^1.0.3", 3872 + "has-property-descriptors": "^1.0.2", 3873 + "has-proto": "^1.0.3", 3874 + "has-symbols": "^1.0.3", 3875 + "internal-slot": "^1.0.7", 3876 + "iterator.prototype": "^1.1.2", 3877 + "safe-array-concat": "^1.1.2" 3878 + }, 3879 + "engines": { 3880 + "node": ">= 0.4" 3881 + } 3882 + }, 3883 + "node_modules/es-object-atoms": { 3884 + "version": "1.0.0", 3885 + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", 3886 + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", 3887 + "dev": true, 3888 + "dependencies": { 3889 + "es-errors": "^1.3.0" 3890 + }, 3891 + "engines": { 3892 + "node": ">= 0.4" 3893 + } 3894 + }, 3895 + "node_modules/es-set-tostringtag": { 3896 + "version": "2.0.3", 3897 + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", 3898 + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", 3899 + "dev": true, 3900 + "dependencies": { 3901 + "get-intrinsic": "^1.2.4", 3902 + "has-tostringtag": "^1.0.2", 3903 + "hasown": "^2.0.1" 3904 + }, 3905 + "engines": { 3906 + "node": ">= 0.4" 3907 + } 3908 + }, 3909 + "node_modules/es-shim-unscopables": { 3910 + "version": "1.0.2", 3911 + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", 3912 + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", 3913 + "dev": true, 3914 + "dependencies": { 3915 + "hasown": "^2.0.0" 3916 + } 3917 + }, 3918 + "node_modules/es-to-primitive": { 3919 + "version": "1.2.1", 3920 + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 3921 + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 3922 + "dev": true, 3923 + "dependencies": { 3924 + "is-callable": "^1.1.4", 3925 + "is-date-object": "^1.0.1", 3926 + "is-symbol": "^1.0.2" 3927 + }, 3928 + "engines": { 3929 + "node": ">= 0.4" 3930 + }, 3931 + "funding": { 3932 + "url": "https://github.com/sponsors/ljharb" 3933 + } 3934 + }, 2495 3935 "node_modules/es5-ext": { 2496 3936 "version": "0.10.64", 2497 3937 "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", ··· 2614 4054 "url": "https://github.com/sponsors/sindresorhus" 2615 4055 } 2616 4056 }, 4057 + "node_modules/eslint": { 4058 + "version": "8.57.0", 4059 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", 4060 + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", 4061 + "dev": true, 4062 + "dependencies": { 4063 + "@eslint-community/eslint-utils": "^4.2.0", 4064 + "@eslint-community/regexpp": "^4.6.1", 4065 + "@eslint/eslintrc": "^2.1.4", 4066 + "@eslint/js": "8.57.0", 4067 + "@humanwhocodes/config-array": "^0.11.14", 4068 + "@humanwhocodes/module-importer": "^1.0.1", 4069 + "@nodelib/fs.walk": "^1.2.8", 4070 + "@ungap/structured-clone": "^1.2.0", 4071 + "ajv": "^6.12.4", 4072 + "chalk": "^4.0.0", 4073 + "cross-spawn": "^7.0.2", 4074 + "debug": "^4.3.2", 4075 + "doctrine": "^3.0.0", 4076 + "escape-string-regexp": "^4.0.0", 4077 + "eslint-scope": "^7.2.2", 4078 + "eslint-visitor-keys": "^3.4.3", 4079 + "espree": "^9.6.1", 4080 + "esquery": "^1.4.2", 4081 + "esutils": "^2.0.2", 4082 + "fast-deep-equal": "^3.1.3", 4083 + "file-entry-cache": "^6.0.1", 4084 + "find-up": "^5.0.0", 4085 + "glob-parent": "^6.0.2", 4086 + "globals": "^13.19.0", 4087 + "graphemer": "^1.4.0", 4088 + "ignore": "^5.2.0", 4089 + "imurmurhash": "^0.1.4", 4090 + "is-glob": "^4.0.0", 4091 + "is-path-inside": "^3.0.3", 4092 + "js-yaml": "^4.1.0", 4093 + "json-stable-stringify-without-jsonify": "^1.0.1", 4094 + "levn": "^0.4.1", 4095 + "lodash.merge": "^4.6.2", 4096 + "minimatch": "^3.1.2", 4097 + "natural-compare": "^1.4.0", 4098 + "optionator": "^0.9.3", 4099 + "strip-ansi": "^6.0.1", 4100 + "text-table": "^0.2.0" 4101 + }, 4102 + "bin": { 4103 + "eslint": "bin/eslint.js" 4104 + }, 4105 + "engines": { 4106 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 4107 + }, 4108 + "funding": { 4109 + "url": "https://opencollective.com/eslint" 4110 + } 4111 + }, 4112 + "node_modules/eslint-config-next": { 4113 + "version": "14.2.3", 4114 + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.3.tgz", 4115 + "integrity": "sha512-ZkNztm3Q7hjqvB1rRlOX8P9E/cXRL9ajRcs8jufEtwMfTVYRqnmtnaSu57QqHyBlovMuiB8LEzfLBkh5RYV6Fg==", 4116 + "dev": true, 4117 + "dependencies": { 4118 + "@next/eslint-plugin-next": "14.2.3", 4119 + "@rushstack/eslint-patch": "^1.3.3", 4120 + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0", 4121 + "eslint-import-resolver-node": "^0.3.6", 4122 + "eslint-import-resolver-typescript": "^3.5.2", 4123 + "eslint-plugin-import": "^2.28.1", 4124 + "eslint-plugin-jsx-a11y": "^6.7.1", 4125 + "eslint-plugin-react": "^7.33.2", 4126 + "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" 4127 + }, 4128 + "peerDependencies": { 4129 + "eslint": "^7.23.0 || ^8.0.0", 4130 + "typescript": ">=3.3.1" 4131 + }, 4132 + "peerDependenciesMeta": { 4133 + "typescript": { 4134 + "optional": true 4135 + } 4136 + } 4137 + }, 4138 + "node_modules/eslint-import-resolver-node": { 4139 + "version": "0.3.9", 4140 + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", 4141 + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", 4142 + "dev": true, 4143 + "dependencies": { 4144 + "debug": "^3.2.7", 4145 + "is-core-module": "^2.13.0", 4146 + "resolve": "^1.22.4" 4147 + } 4148 + }, 4149 + "node_modules/eslint-import-resolver-node/node_modules/debug": { 4150 + "version": "3.2.7", 4151 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 4152 + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 4153 + "dev": true, 4154 + "dependencies": { 4155 + "ms": "^2.1.1" 4156 + } 4157 + }, 4158 + "node_modules/eslint-import-resolver-typescript": { 4159 + "version": "3.6.1", 4160 + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", 4161 + "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", 4162 + "dev": true, 4163 + "dependencies": { 4164 + "debug": "^4.3.4", 4165 + "enhanced-resolve": "^5.12.0", 4166 + "eslint-module-utils": "^2.7.4", 4167 + "fast-glob": "^3.3.1", 4168 + "get-tsconfig": "^4.5.0", 4169 + "is-core-module": "^2.11.0", 4170 + "is-glob": "^4.0.3" 4171 + }, 4172 + "engines": { 4173 + "node": "^14.18.0 || >=16.0.0" 4174 + }, 4175 + "funding": { 4176 + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" 4177 + }, 4178 + "peerDependencies": { 4179 + "eslint": "*", 4180 + "eslint-plugin-import": "*" 4181 + } 4182 + }, 4183 + "node_modules/eslint-module-utils": { 4184 + "version": "2.8.1", 4185 + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", 4186 + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", 4187 + "dev": true, 4188 + "dependencies": { 4189 + "debug": "^3.2.7" 4190 + }, 4191 + "engines": { 4192 + "node": ">=4" 4193 + }, 4194 + "peerDependenciesMeta": { 4195 + "eslint": { 4196 + "optional": true 4197 + } 4198 + } 4199 + }, 4200 + "node_modules/eslint-module-utils/node_modules/debug": { 4201 + "version": "3.2.7", 4202 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 4203 + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 4204 + "dev": true, 4205 + "dependencies": { 4206 + "ms": "^2.1.1" 4207 + } 4208 + }, 4209 + "node_modules/eslint-plugin-import": { 4210 + "version": "2.29.1", 4211 + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", 4212 + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", 4213 + "dev": true, 4214 + "dependencies": { 4215 + "array-includes": "^3.1.7", 4216 + "array.prototype.findlastindex": "^1.2.3", 4217 + "array.prototype.flat": "^1.3.2", 4218 + "array.prototype.flatmap": "^1.3.2", 4219 + "debug": "^3.2.7", 4220 + "doctrine": "^2.1.0", 4221 + "eslint-import-resolver-node": "^0.3.9", 4222 + "eslint-module-utils": "^2.8.0", 4223 + "hasown": "^2.0.0", 4224 + "is-core-module": "^2.13.1", 4225 + "is-glob": "^4.0.3", 4226 + "minimatch": "^3.1.2", 4227 + "object.fromentries": "^2.0.7", 4228 + "object.groupby": "^1.0.1", 4229 + "object.values": "^1.1.7", 4230 + "semver": "^6.3.1", 4231 + "tsconfig-paths": "^3.15.0" 4232 + }, 4233 + "engines": { 4234 + "node": ">=4" 4235 + }, 4236 + "peerDependencies": { 4237 + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" 4238 + } 4239 + }, 4240 + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { 4241 + "version": "1.1.11", 4242 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 4243 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 4244 + "dev": true, 4245 + "dependencies": { 4246 + "balanced-match": "^1.0.0", 4247 + "concat-map": "0.0.1" 4248 + } 4249 + }, 4250 + "node_modules/eslint-plugin-import/node_modules/debug": { 4251 + "version": "3.2.7", 4252 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 4253 + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 4254 + "dev": true, 4255 + "dependencies": { 4256 + "ms": "^2.1.1" 4257 + } 4258 + }, 4259 + "node_modules/eslint-plugin-import/node_modules/doctrine": { 4260 + "version": "2.1.0", 4261 + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", 4262 + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", 4263 + "dev": true, 4264 + "dependencies": { 4265 + "esutils": "^2.0.2" 4266 + }, 4267 + "engines": { 4268 + "node": ">=0.10.0" 4269 + } 4270 + }, 4271 + "node_modules/eslint-plugin-import/node_modules/minimatch": { 4272 + "version": "3.1.2", 4273 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 4274 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 4275 + "dev": true, 4276 + "dependencies": { 4277 + "brace-expansion": "^1.1.7" 4278 + }, 4279 + "engines": { 4280 + "node": "*" 4281 + } 4282 + }, 4283 + "node_modules/eslint-plugin-import/node_modules/semver": { 4284 + "version": "6.3.1", 4285 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 4286 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 4287 + "dev": true, 4288 + "bin": { 4289 + "semver": "bin/semver.js" 4290 + } 4291 + }, 4292 + "node_modules/eslint-plugin-jsx-a11y": { 4293 + "version": "6.8.0", 4294 + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", 4295 + "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", 4296 + "dev": true, 4297 + "dependencies": { 4298 + "@babel/runtime": "^7.23.2", 4299 + "aria-query": "^5.3.0", 4300 + "array-includes": "^3.1.7", 4301 + "array.prototype.flatmap": "^1.3.2", 4302 + "ast-types-flow": "^0.0.8", 4303 + "axe-core": "=4.7.0", 4304 + "axobject-query": "^3.2.1", 4305 + "damerau-levenshtein": "^1.0.8", 4306 + "emoji-regex": "^9.2.2", 4307 + "es-iterator-helpers": "^1.0.15", 4308 + "hasown": "^2.0.0", 4309 + "jsx-ast-utils": "^3.3.5", 4310 + "language-tags": "^1.0.9", 4311 + "minimatch": "^3.1.2", 4312 + "object.entries": "^1.1.7", 4313 + "object.fromentries": "^2.0.7" 4314 + }, 4315 + "engines": { 4316 + "node": ">=4.0" 4317 + }, 4318 + "peerDependencies": { 4319 + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" 4320 + } 4321 + }, 4322 + "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": { 4323 + "version": "1.1.11", 4324 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 4325 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 4326 + "dev": true, 4327 + "dependencies": { 4328 + "balanced-match": "^1.0.0", 4329 + "concat-map": "0.0.1" 4330 + } 4331 + }, 4332 + "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { 4333 + "version": "3.1.2", 4334 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 4335 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 4336 + "dev": true, 4337 + "dependencies": { 4338 + "brace-expansion": "^1.1.7" 4339 + }, 4340 + "engines": { 4341 + "node": "*" 4342 + } 4343 + }, 4344 + "node_modules/eslint-plugin-react": { 4345 + "version": "7.34.1", 4346 + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", 4347 + "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", 4348 + "dev": true, 4349 + "dependencies": { 4350 + "array-includes": "^3.1.7", 4351 + "array.prototype.findlast": "^1.2.4", 4352 + "array.prototype.flatmap": "^1.3.2", 4353 + "array.prototype.toreversed": "^1.1.2", 4354 + "array.prototype.tosorted": "^1.1.3", 4355 + "doctrine": "^2.1.0", 4356 + "es-iterator-helpers": "^1.0.17", 4357 + "estraverse": "^5.3.0", 4358 + "jsx-ast-utils": "^2.4.1 || ^3.0.0", 4359 + "minimatch": "^3.1.2", 4360 + "object.entries": "^1.1.7", 4361 + "object.fromentries": "^2.0.7", 4362 + "object.hasown": "^1.1.3", 4363 + "object.values": "^1.1.7", 4364 + "prop-types": "^15.8.1", 4365 + "resolve": "^2.0.0-next.5", 4366 + "semver": "^6.3.1", 4367 + "string.prototype.matchall": "^4.0.10" 4368 + }, 4369 + "engines": { 4370 + "node": ">=4" 4371 + }, 4372 + "peerDependencies": { 4373 + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" 4374 + } 4375 + }, 4376 + "node_modules/eslint-plugin-react-hooks": { 4377 + "version": "4.6.2", 4378 + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", 4379 + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", 4380 + "dev": true, 4381 + "engines": { 4382 + "node": ">=10" 4383 + }, 4384 + "peerDependencies": { 4385 + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" 4386 + } 4387 + }, 4388 + "node_modules/eslint-plugin-react/node_modules/brace-expansion": { 4389 + "version": "1.1.11", 4390 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 4391 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 4392 + "dev": true, 4393 + "dependencies": { 4394 + "balanced-match": "^1.0.0", 4395 + "concat-map": "0.0.1" 4396 + } 4397 + }, 4398 + "node_modules/eslint-plugin-react/node_modules/doctrine": { 4399 + "version": "2.1.0", 4400 + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", 4401 + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", 4402 + "dev": true, 4403 + "dependencies": { 4404 + "esutils": "^2.0.2" 4405 + }, 4406 + "engines": { 4407 + "node": ">=0.10.0" 4408 + } 4409 + }, 4410 + "node_modules/eslint-plugin-react/node_modules/minimatch": { 4411 + "version": "3.1.2", 4412 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 4413 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 4414 + "dev": true, 4415 + "dependencies": { 4416 + "brace-expansion": "^1.1.7" 4417 + }, 4418 + "engines": { 4419 + "node": "*" 4420 + } 4421 + }, 4422 + "node_modules/eslint-plugin-react/node_modules/resolve": { 4423 + "version": "2.0.0-next.5", 4424 + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", 4425 + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", 4426 + "dev": true, 4427 + "dependencies": { 4428 + "is-core-module": "^2.13.0", 4429 + "path-parse": "^1.0.7", 4430 + "supports-preserve-symlinks-flag": "^1.0.0" 4431 + }, 4432 + "bin": { 4433 + "resolve": "bin/resolve" 4434 + }, 4435 + "funding": { 4436 + "url": "https://github.com/sponsors/ljharb" 4437 + } 4438 + }, 4439 + "node_modules/eslint-plugin-react/node_modules/semver": { 4440 + "version": "6.3.1", 4441 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 4442 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 4443 + "dev": true, 4444 + "bin": { 4445 + "semver": "bin/semver.js" 4446 + } 4447 + }, 4448 + "node_modules/eslint-scope": { 4449 + "version": "7.2.2", 4450 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", 4451 + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", 4452 + "dev": true, 4453 + "dependencies": { 4454 + "esrecurse": "^4.3.0", 4455 + "estraverse": "^5.2.0" 4456 + }, 4457 + "engines": { 4458 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 4459 + }, 4460 + "funding": { 4461 + "url": "https://opencollective.com/eslint" 4462 + } 4463 + }, 4464 + "node_modules/eslint-visitor-keys": { 4465 + "version": "3.4.3", 4466 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", 4467 + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", 4468 + "dev": true, 4469 + "engines": { 4470 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 4471 + }, 4472 + "funding": { 4473 + "url": "https://opencollective.com/eslint" 4474 + } 4475 + }, 4476 + "node_modules/eslint/node_modules/ansi-regex": { 4477 + "version": "5.0.1", 4478 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 4479 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 4480 + "dev": true, 4481 + "engines": { 4482 + "node": ">=8" 4483 + } 4484 + }, 4485 + "node_modules/eslint/node_modules/brace-expansion": { 4486 + "version": "1.1.11", 4487 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 4488 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 4489 + "dev": true, 4490 + "dependencies": { 4491 + "balanced-match": "^1.0.0", 4492 + "concat-map": "0.0.1" 4493 + } 4494 + }, 4495 + "node_modules/eslint/node_modules/glob-parent": { 4496 + "version": "6.0.2", 4497 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 4498 + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 4499 + "dev": true, 4500 + "dependencies": { 4501 + "is-glob": "^4.0.3" 4502 + }, 4503 + "engines": { 4504 + "node": ">=10.13.0" 4505 + } 4506 + }, 4507 + "node_modules/eslint/node_modules/minimatch": { 4508 + "version": "3.1.2", 4509 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 4510 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 4511 + "dev": true, 4512 + "dependencies": { 4513 + "brace-expansion": "^1.1.7" 4514 + }, 4515 + "engines": { 4516 + "node": "*" 4517 + } 4518 + }, 4519 + "node_modules/eslint/node_modules/strip-ansi": { 4520 + "version": "6.0.1", 4521 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 4522 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 4523 + "dev": true, 4524 + "dependencies": { 4525 + "ansi-regex": "^5.0.1" 4526 + }, 4527 + "engines": { 4528 + "node": ">=8" 4529 + } 4530 + }, 2617 4531 "node_modules/esniff": { 2618 4532 "version": "2.0.1", 2619 4533 "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", ··· 2629 4543 "node": ">=0.10" 2630 4544 } 2631 4545 }, 4546 + "node_modules/espree": { 4547 + "version": "9.6.1", 4548 + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", 4549 + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", 4550 + "dev": true, 4551 + "dependencies": { 4552 + "acorn": "^8.9.0", 4553 + "acorn-jsx": "^5.3.2", 4554 + "eslint-visitor-keys": "^3.4.1" 4555 + }, 4556 + "engines": { 4557 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 4558 + }, 4559 + "funding": { 4560 + "url": "https://opencollective.com/eslint" 4561 + } 4562 + }, 4563 + "node_modules/esquery": { 4564 + "version": "1.5.0", 4565 + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", 4566 + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", 4567 + "dev": true, 4568 + "dependencies": { 4569 + "estraverse": "^5.1.0" 4570 + }, 4571 + "engines": { 4572 + "node": ">=0.10" 4573 + } 4574 + }, 4575 + "node_modules/esrecurse": { 4576 + "version": "4.3.0", 4577 + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 4578 + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 4579 + "dev": true, 4580 + "dependencies": { 4581 + "estraverse": "^5.2.0" 4582 + }, 4583 + "engines": { 4584 + "node": ">=4.0" 4585 + } 4586 + }, 4587 + "node_modules/estraverse": { 4588 + "version": "5.3.0", 4589 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 4590 + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 4591 + "dev": true, 4592 + "engines": { 4593 + "node": ">=4.0" 4594 + } 4595 + }, 2632 4596 "node_modules/estree-walker": { 2633 4597 "version": "0.6.1", 2634 4598 "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 2635 4599 "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", 2636 4600 "dev": true 4601 + }, 4602 + "node_modules/esutils": { 4603 + "version": "2.0.3", 4604 + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 4605 + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 4606 + "dev": true, 4607 + "engines": { 4608 + "node": ">=0.10.0" 4609 + } 2637 4610 }, 2638 4611 "node_modules/event-emitter": { 2639 4612 "version": "0.3.5", ··· 2666 4639 "type": "^2.7.2" 2667 4640 } 2668 4641 }, 4642 + "node_modules/fast-deep-equal": { 4643 + "version": "3.1.3", 4644 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 4645 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 4646 + "dev": true 4647 + }, 2669 4648 "node_modules/fast-glob": { 2670 4649 "version": "3.3.2", 2671 4650 "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", ··· 2681 4660 "engines": { 2682 4661 "node": ">=8.6.0" 2683 4662 } 4663 + }, 4664 + "node_modules/fast-json-stable-stringify": { 4665 + "version": "2.1.0", 4666 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 4667 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 4668 + "dev": true 4669 + }, 4670 + "node_modules/fast-levenshtein": { 4671 + "version": "2.0.6", 4672 + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 4673 + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 4674 + "dev": true 2684 4675 }, 2685 4676 "node_modules/fastq": { 2686 4677 "version": "1.17.1", ··· 2714 4705 "node": "^12.20 || >= 14.13" 2715 4706 } 2716 4707 }, 4708 + "node_modules/file-entry-cache": { 4709 + "version": "6.0.1", 4710 + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 4711 + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 4712 + "dev": true, 4713 + "dependencies": { 4714 + "flat-cache": "^3.0.4" 4715 + }, 4716 + "engines": { 4717 + "node": "^10.12.0 || >=12.0.0" 4718 + } 4719 + }, 2717 4720 "node_modules/fill-range": { 2718 4721 "version": "7.0.1", 2719 4722 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", ··· 2726 4729 "node": ">=8" 2727 4730 } 2728 4731 }, 4732 + "node_modules/find-up": { 4733 + "version": "5.0.0", 4734 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 4735 + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 4736 + "dev": true, 4737 + "dependencies": { 4738 + "locate-path": "^6.0.0", 4739 + "path-exists": "^4.0.0" 4740 + }, 4741 + "engines": { 4742 + "node": ">=10" 4743 + }, 4744 + "funding": { 4745 + "url": "https://github.com/sponsors/sindresorhus" 4746 + } 4747 + }, 4748 + "node_modules/flat-cache": { 4749 + "version": "3.2.0", 4750 + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", 4751 + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", 4752 + "dev": true, 4753 + "dependencies": { 4754 + "flatted": "^3.2.9", 4755 + "keyv": "^4.5.3", 4756 + "rimraf": "^3.0.2" 4757 + }, 4758 + "engines": { 4759 + "node": "^10.12.0 || >=12.0.0" 4760 + } 4761 + }, 4762 + "node_modules/flat-cache/node_modules/brace-expansion": { 4763 + "version": "1.1.11", 4764 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 4765 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 4766 + "dev": true, 4767 + "dependencies": { 4768 + "balanced-match": "^1.0.0", 4769 + "concat-map": "0.0.1" 4770 + } 4771 + }, 4772 + "node_modules/flat-cache/node_modules/glob": { 4773 + "version": "7.2.3", 4774 + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 4775 + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 4776 + "dev": true, 4777 + "dependencies": { 4778 + "fs.realpath": "^1.0.0", 4779 + "inflight": "^1.0.4", 4780 + "inherits": "2", 4781 + "minimatch": "^3.1.1", 4782 + "once": "^1.3.0", 4783 + "path-is-absolute": "^1.0.0" 4784 + }, 4785 + "engines": { 4786 + "node": "*" 4787 + }, 4788 + "funding": { 4789 + "url": "https://github.com/sponsors/isaacs" 4790 + } 4791 + }, 4792 + "node_modules/flat-cache/node_modules/minimatch": { 4793 + "version": "3.1.2", 4794 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 4795 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 4796 + "dev": true, 4797 + "dependencies": { 4798 + "brace-expansion": "^1.1.7" 4799 + }, 4800 + "engines": { 4801 + "node": "*" 4802 + } 4803 + }, 4804 + "node_modules/flat-cache/node_modules/rimraf": { 4805 + "version": "3.0.2", 4806 + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 4807 + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 4808 + "dev": true, 4809 + "dependencies": { 4810 + "glob": "^7.1.3" 4811 + }, 4812 + "bin": { 4813 + "rimraf": "bin.js" 4814 + }, 4815 + "funding": { 4816 + "url": "https://github.com/sponsors/isaacs" 4817 + } 4818 + }, 4819 + "node_modules/flatted": { 4820 + "version": "3.3.1", 4821 + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", 4822 + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", 4823 + "dev": true 4824 + }, 4825 + "node_modules/for-each": { 4826 + "version": "0.3.3", 4827 + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 4828 + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 4829 + "dev": true, 4830 + "dependencies": { 4831 + "is-callable": "^1.1.3" 4832 + } 4833 + }, 2729 4834 "node_modules/foreground-child": { 2730 4835 "version": "3.1.1", 2731 4836 "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", ··· 2796 4901 "url": "https://github.com/sponsors/ljharb" 2797 4902 } 2798 4903 }, 4904 + "node_modules/function.prototype.name": { 4905 + "version": "1.1.6", 4906 + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", 4907 + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", 4908 + "dev": true, 4909 + "dependencies": { 4910 + "call-bind": "^1.0.2", 4911 + "define-properties": "^1.2.0", 4912 + "es-abstract": "^1.22.1", 4913 + "functions-have-names": "^1.2.3" 4914 + }, 4915 + "engines": { 4916 + "node": ">= 0.4" 4917 + }, 4918 + "funding": { 4919 + "url": "https://github.com/sponsors/ljharb" 4920 + } 4921 + }, 4922 + "node_modules/functions-have-names": { 4923 + "version": "1.2.3", 4924 + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", 4925 + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", 4926 + "dev": true, 4927 + "funding": { 4928 + "url": "https://github.com/sponsors/ljharb" 4929 + } 4930 + }, 4931 + "node_modules/get-intrinsic": { 4932 + "version": "1.2.4", 4933 + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", 4934 + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", 4935 + "dev": true, 4936 + "dependencies": { 4937 + "es-errors": "^1.3.0", 4938 + "function-bind": "^1.1.2", 4939 + "has-proto": "^1.0.1", 4940 + "has-symbols": "^1.0.3", 4941 + "hasown": "^2.0.0" 4942 + }, 4943 + "engines": { 4944 + "node": ">= 0.4" 4945 + }, 4946 + "funding": { 4947 + "url": "https://github.com/sponsors/ljharb" 4948 + } 4949 + }, 4950 + "node_modules/get-nonce": { 4951 + "version": "1.0.1", 4952 + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", 4953 + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", 4954 + "engines": { 4955 + "node": ">=6" 4956 + } 4957 + }, 2799 4958 "node_modules/get-source": { 2800 4959 "version": "2.0.12", 2801 4960 "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", ··· 2811 4970 "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", 2812 4971 "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", 2813 4972 "dev": true 4973 + }, 4974 + "node_modules/get-symbol-description": { 4975 + "version": "1.0.2", 4976 + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", 4977 + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", 4978 + "dev": true, 4979 + "dependencies": { 4980 + "call-bind": "^1.0.5", 4981 + "es-errors": "^1.3.0", 4982 + "get-intrinsic": "^1.2.4" 4983 + }, 4984 + "engines": { 4985 + "node": ">= 0.4" 4986 + }, 4987 + "funding": { 4988 + "url": "https://github.com/sponsors/ljharb" 4989 + } 2814 4990 }, 2815 4991 "node_modules/get-tsconfig": { 2816 4992 "version": "4.7.5", ··· 2864 5040 "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", 2865 5041 "dev": true 2866 5042 }, 5043 + "node_modules/globals": { 5044 + "version": "13.24.0", 5045 + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", 5046 + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", 5047 + "dev": true, 5048 + "dependencies": { 5049 + "type-fest": "^0.20.2" 5050 + }, 5051 + "engines": { 5052 + "node": ">=8" 5053 + }, 5054 + "funding": { 5055 + "url": "https://github.com/sponsors/sindresorhus" 5056 + } 5057 + }, 5058 + "node_modules/globalthis": { 5059 + "version": "1.0.4", 5060 + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", 5061 + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", 5062 + "dev": true, 5063 + "dependencies": { 5064 + "define-properties": "^1.2.1", 5065 + "gopd": "^1.0.1" 5066 + }, 5067 + "engines": { 5068 + "node": ">= 0.4" 5069 + }, 5070 + "funding": { 5071 + "url": "https://github.com/sponsors/ljharb" 5072 + } 5073 + }, 5074 + "node_modules/globby": { 5075 + "version": "11.1.0", 5076 + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", 5077 + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", 5078 + "dev": true, 5079 + "dependencies": { 5080 + "array-union": "^2.1.0", 5081 + "dir-glob": "^3.0.1", 5082 + "fast-glob": "^3.2.9", 5083 + "ignore": "^5.2.0", 5084 + "merge2": "^1.4.1", 5085 + "slash": "^3.0.0" 5086 + }, 5087 + "engines": { 5088 + "node": ">=10" 5089 + }, 5090 + "funding": { 5091 + "url": "https://github.com/sponsors/sindresorhus" 5092 + } 5093 + }, 5094 + "node_modules/gopd": { 5095 + "version": "1.0.1", 5096 + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", 5097 + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", 5098 + "dev": true, 5099 + "dependencies": { 5100 + "get-intrinsic": "^1.1.3" 5101 + }, 5102 + "funding": { 5103 + "url": "https://github.com/sponsors/ljharb" 5104 + } 5105 + }, 2867 5106 "node_modules/graceful-fs": { 2868 5107 "version": "4.2.11", 2869 5108 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 2870 5109 "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" 2871 5110 }, 5111 + "node_modules/graphemer": { 5112 + "version": "1.4.0", 5113 + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", 5114 + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", 5115 + "dev": true 5116 + }, 2872 5117 "node_modules/hanji": { 2873 5118 "version": "0.0.5", 2874 5119 "resolved": "https://registry.npmjs.org/hanji/-/hanji-0.0.5.tgz", ··· 2879 5124 "sisteransi": "^1.0.5" 2880 5125 } 2881 5126 }, 5127 + "node_modules/has-bigints": { 5128 + "version": "1.0.2", 5129 + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", 5130 + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", 5131 + "dev": true, 5132 + "funding": { 5133 + "url": "https://github.com/sponsors/ljharb" 5134 + } 5135 + }, 5136 + "node_modules/has-flag": { 5137 + "version": "4.0.0", 5138 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 5139 + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 5140 + "dev": true, 5141 + "engines": { 5142 + "node": ">=8" 5143 + } 5144 + }, 5145 + "node_modules/has-property-descriptors": { 5146 + "version": "1.0.2", 5147 + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", 5148 + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", 5149 + "dev": true, 5150 + "dependencies": { 5151 + "es-define-property": "^1.0.0" 5152 + }, 5153 + "funding": { 5154 + "url": "https://github.com/sponsors/ljharb" 5155 + } 5156 + }, 5157 + "node_modules/has-proto": { 5158 + "version": "1.0.3", 5159 + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", 5160 + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", 5161 + "dev": true, 5162 + "engines": { 5163 + "node": ">= 0.4" 5164 + }, 5165 + "funding": { 5166 + "url": "https://github.com/sponsors/ljharb" 5167 + } 5168 + }, 5169 + "node_modules/has-symbols": { 5170 + "version": "1.0.3", 5171 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 5172 + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 5173 + "dev": true, 5174 + "engines": { 5175 + "node": ">= 0.4" 5176 + }, 5177 + "funding": { 5178 + "url": "https://github.com/sponsors/ljharb" 5179 + } 5180 + }, 5181 + "node_modules/has-tostringtag": { 5182 + "version": "1.0.2", 5183 + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", 5184 + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", 5185 + "dev": true, 5186 + "dependencies": { 5187 + "has-symbols": "^1.0.3" 5188 + }, 5189 + "engines": { 5190 + "node": ">= 0.4" 5191 + }, 5192 + "funding": { 5193 + "url": "https://github.com/sponsors/ljharb" 5194 + } 5195 + }, 2882 5196 "node_modules/hasown": { 2883 5197 "version": "2.0.2", 2884 5198 "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", ··· 2910 5224 "node": ">= 14" 2911 5225 } 2912 5226 }, 5227 + "node_modules/ignore": { 5228 + "version": "5.3.1", 5229 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", 5230 + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", 5231 + "dev": true, 5232 + "engines": { 5233 + "node": ">= 4" 5234 + } 5235 + }, 5236 + "node_modules/import-fresh": { 5237 + "version": "3.3.0", 5238 + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 5239 + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 5240 + "dev": true, 5241 + "dependencies": { 5242 + "parent-module": "^1.0.0", 5243 + "resolve-from": "^4.0.0" 5244 + }, 5245 + "engines": { 5246 + "node": ">=6" 5247 + }, 5248 + "funding": { 5249 + "url": "https://github.com/sponsors/sindresorhus" 5250 + } 5251 + }, 2913 5252 "node_modules/imurmurhash": { 2914 5253 "version": "0.1.4", 2915 5254 "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", ··· 2935 5274 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 2936 5275 "dev": true 2937 5276 }, 5277 + "node_modules/internal-slot": { 5278 + "version": "1.0.7", 5279 + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", 5280 + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", 5281 + "dev": true, 5282 + "dependencies": { 5283 + "es-errors": "^1.3.0", 5284 + "hasown": "^2.0.0", 5285 + "side-channel": "^1.0.4" 5286 + }, 5287 + "engines": { 5288 + "node": ">= 0.4" 5289 + } 5290 + }, 5291 + "node_modules/invariant": { 5292 + "version": "2.2.4", 5293 + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", 5294 + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", 5295 + "dependencies": { 5296 + "loose-envify": "^1.0.0" 5297 + } 5298 + }, 5299 + "node_modules/is-array-buffer": { 5300 + "version": "3.0.4", 5301 + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", 5302 + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", 5303 + "dev": true, 5304 + "dependencies": { 5305 + "call-bind": "^1.0.2", 5306 + "get-intrinsic": "^1.2.1" 5307 + }, 5308 + "engines": { 5309 + "node": ">= 0.4" 5310 + }, 5311 + "funding": { 5312 + "url": "https://github.com/sponsors/ljharb" 5313 + } 5314 + }, 5315 + "node_modules/is-async-function": { 5316 + "version": "2.0.0", 5317 + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", 5318 + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", 5319 + "dev": true, 5320 + "dependencies": { 5321 + "has-tostringtag": "^1.0.0" 5322 + }, 5323 + "engines": { 5324 + "node": ">= 0.4" 5325 + }, 5326 + "funding": { 5327 + "url": "https://github.com/sponsors/ljharb" 5328 + } 5329 + }, 5330 + "node_modules/is-bigint": { 5331 + "version": "1.0.4", 5332 + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", 5333 + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", 5334 + "dev": true, 5335 + "dependencies": { 5336 + "has-bigints": "^1.0.1" 5337 + }, 5338 + "funding": { 5339 + "url": "https://github.com/sponsors/ljharb" 5340 + } 5341 + }, 2938 5342 "node_modules/is-binary-path": { 2939 5343 "version": "2.1.0", 2940 5344 "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", ··· 2947 5351 "node": ">=8" 2948 5352 } 2949 5353 }, 5354 + "node_modules/is-boolean-object": { 5355 + "version": "1.1.2", 5356 + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", 5357 + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", 5358 + "dev": true, 5359 + "dependencies": { 5360 + "call-bind": "^1.0.2", 5361 + "has-tostringtag": "^1.0.0" 5362 + }, 5363 + "engines": { 5364 + "node": ">= 0.4" 5365 + }, 5366 + "funding": { 5367 + "url": "https://github.com/sponsors/ljharb" 5368 + } 5369 + }, 5370 + "node_modules/is-callable": { 5371 + "version": "1.2.7", 5372 + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 5373 + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", 5374 + "dev": true, 5375 + "engines": { 5376 + "node": ">= 0.4" 5377 + }, 5378 + "funding": { 5379 + "url": "https://github.com/sponsors/ljharb" 5380 + } 5381 + }, 2950 5382 "node_modules/is-core-module": { 2951 5383 "version": "2.13.1", 2952 5384 "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", ··· 2959 5391 "url": "https://github.com/sponsors/ljharb" 2960 5392 } 2961 5393 }, 5394 + "node_modules/is-data-view": { 5395 + "version": "1.0.1", 5396 + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", 5397 + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", 5398 + "dev": true, 5399 + "dependencies": { 5400 + "is-typed-array": "^1.1.13" 5401 + }, 5402 + "engines": { 5403 + "node": ">= 0.4" 5404 + }, 5405 + "funding": { 5406 + "url": "https://github.com/sponsors/ljharb" 5407 + } 5408 + }, 5409 + "node_modules/is-date-object": { 5410 + "version": "1.0.5", 5411 + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", 5412 + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", 5413 + "dev": true, 5414 + "dependencies": { 5415 + "has-tostringtag": "^1.0.0" 5416 + }, 5417 + "engines": { 5418 + "node": ">= 0.4" 5419 + }, 5420 + "funding": { 5421 + "url": "https://github.com/sponsors/ljharb" 5422 + } 5423 + }, 2962 5424 "node_modules/is-extglob": { 2963 5425 "version": "2.1.1", 2964 5426 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", ··· 2968 5430 "node": ">=0.10.0" 2969 5431 } 2970 5432 }, 5433 + "node_modules/is-finalizationregistry": { 5434 + "version": "1.0.2", 5435 + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", 5436 + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", 5437 + "dev": true, 5438 + "dependencies": { 5439 + "call-bind": "^1.0.2" 5440 + }, 5441 + "funding": { 5442 + "url": "https://github.com/sponsors/ljharb" 5443 + } 5444 + }, 2971 5445 "node_modules/is-fullwidth-code-point": { 2972 5446 "version": "3.0.0", 2973 5447 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", ··· 2977 5451 "node": ">=8" 2978 5452 } 2979 5453 }, 5454 + "node_modules/is-generator-function": { 5455 + "version": "1.0.10", 5456 + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", 5457 + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", 5458 + "dev": true, 5459 + "dependencies": { 5460 + "has-tostringtag": "^1.0.0" 5461 + }, 5462 + "engines": { 5463 + "node": ">= 0.4" 5464 + }, 5465 + "funding": { 5466 + "url": "https://github.com/sponsors/ljharb" 5467 + } 5468 + }, 2980 5469 "node_modules/is-glob": { 2981 5470 "version": "4.0.3", 2982 5471 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", ··· 2989 5478 "node": ">=0.10.0" 2990 5479 } 2991 5480 }, 5481 + "node_modules/is-map": { 5482 + "version": "2.0.3", 5483 + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", 5484 + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", 5485 + "dev": true, 5486 + "engines": { 5487 + "node": ">= 0.4" 5488 + }, 5489 + "funding": { 5490 + "url": "https://github.com/sponsors/ljharb" 5491 + } 5492 + }, 5493 + "node_modules/is-negative-zero": { 5494 + "version": "2.0.3", 5495 + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", 5496 + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", 5497 + "dev": true, 5498 + "engines": { 5499 + "node": ">= 0.4" 5500 + }, 5501 + "funding": { 5502 + "url": "https://github.com/sponsors/ljharb" 5503 + } 5504 + }, 2992 5505 "node_modules/is-number": { 2993 5506 "version": "7.0.0", 2994 5507 "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", ··· 2998 5511 "node": ">=0.12.0" 2999 5512 } 3000 5513 }, 5514 + "node_modules/is-number-object": { 5515 + "version": "1.0.7", 5516 + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", 5517 + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", 5518 + "dev": true, 5519 + "dependencies": { 5520 + "has-tostringtag": "^1.0.0" 5521 + }, 5522 + "engines": { 5523 + "node": ">= 0.4" 5524 + }, 5525 + "funding": { 5526 + "url": "https://github.com/sponsors/ljharb" 5527 + } 5528 + }, 5529 + "node_modules/is-path-inside": { 5530 + "version": "3.0.3", 5531 + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", 5532 + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", 5533 + "dev": true, 5534 + "engines": { 5535 + "node": ">=8" 5536 + } 5537 + }, 3001 5538 "node_modules/is-promise": { 3002 5539 "version": "2.2.2", 3003 5540 "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", 3004 5541 "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", 3005 5542 "dev": true 3006 5543 }, 5544 + "node_modules/is-regex": { 5545 + "version": "1.1.4", 5546 + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", 5547 + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", 5548 + "dev": true, 5549 + "dependencies": { 5550 + "call-bind": "^1.0.2", 5551 + "has-tostringtag": "^1.0.0" 5552 + }, 5553 + "engines": { 5554 + "node": ">= 0.4" 5555 + }, 5556 + "funding": { 5557 + "url": "https://github.com/sponsors/ljharb" 5558 + } 5559 + }, 5560 + "node_modules/is-set": { 5561 + "version": "2.0.3", 5562 + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", 5563 + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", 5564 + "dev": true, 5565 + "engines": { 5566 + "node": ">= 0.4" 5567 + }, 5568 + "funding": { 5569 + "url": "https://github.com/sponsors/ljharb" 5570 + } 5571 + }, 5572 + "node_modules/is-shared-array-buffer": { 5573 + "version": "1.0.3", 5574 + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", 5575 + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", 5576 + "dev": true, 5577 + "dependencies": { 5578 + "call-bind": "^1.0.7" 5579 + }, 5580 + "engines": { 5581 + "node": ">= 0.4" 5582 + }, 5583 + "funding": { 5584 + "url": "https://github.com/sponsors/ljharb" 5585 + } 5586 + }, 5587 + "node_modules/is-string": { 5588 + "version": "1.0.7", 5589 + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", 5590 + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", 5591 + "dev": true, 5592 + "dependencies": { 5593 + "has-tostringtag": "^1.0.0" 5594 + }, 5595 + "engines": { 5596 + "node": ">= 0.4" 5597 + }, 5598 + "funding": { 5599 + "url": "https://github.com/sponsors/ljharb" 5600 + } 5601 + }, 5602 + "node_modules/is-symbol": { 5603 + "version": "1.0.4", 5604 + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", 5605 + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", 5606 + "dev": true, 5607 + "dependencies": { 5608 + "has-symbols": "^1.0.2" 5609 + }, 5610 + "engines": { 5611 + "node": ">= 0.4" 5612 + }, 5613 + "funding": { 5614 + "url": "https://github.com/sponsors/ljharb" 5615 + } 5616 + }, 5617 + "node_modules/is-typed-array": { 5618 + "version": "1.1.13", 5619 + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", 5620 + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", 5621 + "dev": true, 5622 + "dependencies": { 5623 + "which-typed-array": "^1.1.14" 5624 + }, 5625 + "engines": { 5626 + "node": ">= 0.4" 5627 + }, 5628 + "funding": { 5629 + "url": "https://github.com/sponsors/ljharb" 5630 + } 5631 + }, 5632 + "node_modules/is-weakmap": { 5633 + "version": "2.0.2", 5634 + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", 5635 + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", 5636 + "dev": true, 5637 + "engines": { 5638 + "node": ">= 0.4" 5639 + }, 5640 + "funding": { 5641 + "url": "https://github.com/sponsors/ljharb" 5642 + } 5643 + }, 5644 + "node_modules/is-weakref": { 5645 + "version": "1.0.2", 5646 + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", 5647 + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", 5648 + "dev": true, 5649 + "dependencies": { 5650 + "call-bind": "^1.0.2" 5651 + }, 5652 + "funding": { 5653 + "url": "https://github.com/sponsors/ljharb" 5654 + } 5655 + }, 5656 + "node_modules/is-weakset": { 5657 + "version": "2.0.3", 5658 + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", 5659 + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", 5660 + "dev": true, 5661 + "dependencies": { 5662 + "call-bind": "^1.0.7", 5663 + "get-intrinsic": "^1.2.4" 5664 + }, 5665 + "engines": { 5666 + "node": ">= 0.4" 5667 + }, 5668 + "funding": { 5669 + "url": "https://github.com/sponsors/ljharb" 5670 + } 5671 + }, 5672 + "node_modules/isarray": { 5673 + "version": "2.0.5", 5674 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", 5675 + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", 5676 + "dev": true 5677 + }, 3007 5678 "node_modules/isexe": { 3008 5679 "version": "2.0.0", 3009 5680 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 3010 5681 "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 3011 5682 "dev": true 3012 5683 }, 5684 + "node_modules/isomorphic.js": { 5685 + "version": "0.2.5", 5686 + "resolved": "https://registry.npmjs.org/isomorphic.js/-/isomorphic.js-0.2.5.tgz", 5687 + "integrity": "sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==", 5688 + "funding": { 5689 + "type": "GitHub Sponsors ❤", 5690 + "url": "https://github.com/sponsors/dmonad" 5691 + } 5692 + }, 5693 + "node_modules/iterator.prototype": { 5694 + "version": "1.1.2", 5695 + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", 5696 + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", 5697 + "dev": true, 5698 + "dependencies": { 5699 + "define-properties": "^1.2.1", 5700 + "get-intrinsic": "^1.2.1", 5701 + "has-symbols": "^1.0.3", 5702 + "reflect.getprototypeof": "^1.0.4", 5703 + "set-function-name": "^2.0.1" 5704 + } 5705 + }, 3013 5706 "node_modules/jackspeak": { 3014 5707 "version": "2.3.6", 3015 5708 "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", ··· 3042 5735 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 3043 5736 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 3044 5737 }, 5738 + "node_modules/js-yaml": { 5739 + "version": "4.1.0", 5740 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 5741 + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 5742 + "dev": true, 5743 + "dependencies": { 5744 + "argparse": "^2.0.1" 5745 + }, 5746 + "bin": { 5747 + "js-yaml": "bin/js-yaml.js" 5748 + } 5749 + }, 5750 + "node_modules/json-buffer": { 5751 + "version": "3.0.1", 5752 + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", 5753 + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", 5754 + "dev": true 5755 + }, 3045 5756 "node_modules/json-diff": { 3046 5757 "version": "0.9.0", 3047 5758 "resolved": "https://registry.npmjs.org/json-diff/-/json-diff-0.9.0.tgz", ··· 3059 5770 "node": "*" 3060 5771 } 3061 5772 }, 5773 + "node_modules/json-schema-traverse": { 5774 + "version": "0.4.1", 5775 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 5776 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 5777 + "dev": true 5778 + }, 5779 + "node_modules/json-stable-stringify-without-jsonify": { 5780 + "version": "1.0.1", 5781 + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 5782 + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 5783 + "dev": true 5784 + }, 5785 + "node_modules/json5": { 5786 + "version": "1.0.2", 5787 + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", 5788 + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", 5789 + "dev": true, 5790 + "dependencies": { 5791 + "minimist": "^1.2.0" 5792 + }, 5793 + "bin": { 5794 + "json5": "lib/cli.js" 5795 + } 5796 + }, 5797 + "node_modules/jsx-ast-utils": { 5798 + "version": "3.3.5", 5799 + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", 5800 + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", 5801 + "dev": true, 5802 + "dependencies": { 5803 + "array-includes": "^3.1.6", 5804 + "array.prototype.flat": "^1.3.1", 5805 + "object.assign": "^4.1.4", 5806 + "object.values": "^1.1.6" 5807 + }, 5808 + "engines": { 5809 + "node": ">=4.0" 5810 + } 5811 + }, 5812 + "node_modules/keyv": { 5813 + "version": "4.5.4", 5814 + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", 5815 + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", 5816 + "dev": true, 5817 + "dependencies": { 5818 + "json-buffer": "3.0.1" 5819 + } 5820 + }, 5821 + "node_modules/language-subtag-registry": { 5822 + "version": "0.3.22", 5823 + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", 5824 + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", 5825 + "dev": true 5826 + }, 5827 + "node_modules/language-tags": { 5828 + "version": "1.0.9", 5829 + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", 5830 + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", 5831 + "dev": true, 5832 + "dependencies": { 5833 + "language-subtag-registry": "^0.3.20" 5834 + }, 5835 + "engines": { 5836 + "node": ">=0.10" 5837 + } 5838 + }, 5839 + "node_modules/levn": { 5840 + "version": "0.4.1", 5841 + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 5842 + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 5843 + "dev": true, 5844 + "dependencies": { 5845 + "prelude-ls": "^1.2.1", 5846 + "type-check": "~0.4.0" 5847 + }, 5848 + "engines": { 5849 + "node": ">= 0.8.0" 5850 + } 5851 + }, 5852 + "node_modules/lib0": { 5853 + "version": "0.2.94", 5854 + "resolved": "https://registry.npmjs.org/lib0/-/lib0-0.2.94.tgz", 5855 + "integrity": "sha512-hZ3p54jL4Wpu7IOg26uC7dnEWiMyNlUrb9KoG7+xYs45WkQwpVvKFndVq2+pqLYKe1u8Fp3+zAfZHVvTK34PvQ==", 5856 + "dependencies": { 5857 + "isomorphic.js": "^0.2.4" 5858 + }, 5859 + "bin": { 5860 + "0ecdsa-generate-keypair": "bin/0ecdsa-generate-keypair.js", 5861 + "0gentesthtml": "bin/gentesthtml.js", 5862 + "0serve": "bin/0serve.js" 5863 + }, 5864 + "engines": { 5865 + "node": ">=16" 5866 + }, 5867 + "funding": { 5868 + "type": "GitHub Sponsors ❤", 5869 + "url": "https://github.com/sponsors/dmonad" 5870 + } 5871 + }, 3062 5872 "node_modules/lilconfig": { 3063 5873 "version": "2.1.0", 3064 5874 "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", ··· 3074 5884 "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", 3075 5885 "dev": true 3076 5886 }, 5887 + "node_modules/locate-path": { 5888 + "version": "6.0.0", 5889 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 5890 + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 5891 + "dev": true, 5892 + "dependencies": { 5893 + "p-locate": "^5.0.0" 5894 + }, 5895 + "engines": { 5896 + "node": ">=10" 5897 + }, 5898 + "funding": { 5899 + "url": "https://github.com/sponsors/sindresorhus" 5900 + } 5901 + }, 5902 + "node_modules/lodash.merge": { 5903 + "version": "4.6.2", 5904 + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 5905 + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 5906 + "dev": true 5907 + }, 3077 5908 "node_modules/lodash.throttle": { 3078 5909 "version": "4.1.1", 3079 5910 "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", ··· 3209 6040 "url": "https://github.com/sponsors/isaacs" 3210 6041 } 3211 6042 }, 6043 + "node_modules/minimist": { 6044 + "version": "1.2.8", 6045 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 6046 + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 6047 + "dev": true, 6048 + "funding": { 6049 + "url": "https://github.com/sponsors/ljharb" 6050 + } 6051 + }, 3212 6052 "node_modules/minipass": { 3213 6053 "version": "7.1.1", 3214 6054 "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", ··· 3288 6128 "engines": { 3289 6129 "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 3290 6130 } 6131 + }, 6132 + "node_modules/natural-compare": { 6133 + "version": "1.4.0", 6134 + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 6135 + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 6136 + "dev": true 3291 6137 }, 3292 6138 "node_modules/next": { 3293 6139 "version": "14.2.3", ··· 3468 6314 "node": ">= 6" 3469 6315 } 3470 6316 }, 6317 + "node_modules/object-inspect": { 6318 + "version": "1.13.1", 6319 + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", 6320 + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", 6321 + "dev": true, 6322 + "funding": { 6323 + "url": "https://github.com/sponsors/ljharb" 6324 + } 6325 + }, 6326 + "node_modules/object-keys": { 6327 + "version": "1.1.1", 6328 + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 6329 + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 6330 + "dev": true, 6331 + "engines": { 6332 + "node": ">= 0.4" 6333 + } 6334 + }, 6335 + "node_modules/object.assign": { 6336 + "version": "4.1.5", 6337 + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", 6338 + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", 6339 + "dev": true, 6340 + "dependencies": { 6341 + "call-bind": "^1.0.5", 6342 + "define-properties": "^1.2.1", 6343 + "has-symbols": "^1.0.3", 6344 + "object-keys": "^1.1.1" 6345 + }, 6346 + "engines": { 6347 + "node": ">= 0.4" 6348 + }, 6349 + "funding": { 6350 + "url": "https://github.com/sponsors/ljharb" 6351 + } 6352 + }, 6353 + "node_modules/object.entries": { 6354 + "version": "1.1.8", 6355 + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", 6356 + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", 6357 + "dev": true, 6358 + "dependencies": { 6359 + "call-bind": "^1.0.7", 6360 + "define-properties": "^1.2.1", 6361 + "es-object-atoms": "^1.0.0" 6362 + }, 6363 + "engines": { 6364 + "node": ">= 0.4" 6365 + } 6366 + }, 6367 + "node_modules/object.fromentries": { 6368 + "version": "2.0.8", 6369 + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", 6370 + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", 6371 + "dev": true, 6372 + "dependencies": { 6373 + "call-bind": "^1.0.7", 6374 + "define-properties": "^1.2.1", 6375 + "es-abstract": "^1.23.2", 6376 + "es-object-atoms": "^1.0.0" 6377 + }, 6378 + "engines": { 6379 + "node": ">= 0.4" 6380 + }, 6381 + "funding": { 6382 + "url": "https://github.com/sponsors/ljharb" 6383 + } 6384 + }, 6385 + "node_modules/object.groupby": { 6386 + "version": "1.0.3", 6387 + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", 6388 + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", 6389 + "dev": true, 6390 + "dependencies": { 6391 + "call-bind": "^1.0.7", 6392 + "define-properties": "^1.2.1", 6393 + "es-abstract": "^1.23.2" 6394 + }, 6395 + "engines": { 6396 + "node": ">= 0.4" 6397 + } 6398 + }, 6399 + "node_modules/object.hasown": { 6400 + "version": "1.1.4", 6401 + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", 6402 + "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", 6403 + "dev": true, 6404 + "dependencies": { 6405 + "define-properties": "^1.2.1", 6406 + "es-abstract": "^1.23.2", 6407 + "es-object-atoms": "^1.0.0" 6408 + }, 6409 + "engines": { 6410 + "node": ">= 0.4" 6411 + }, 6412 + "funding": { 6413 + "url": "https://github.com/sponsors/ljharb" 6414 + } 6415 + }, 6416 + "node_modules/object.values": { 6417 + "version": "1.2.0", 6418 + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", 6419 + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", 6420 + "dev": true, 6421 + "dependencies": { 6422 + "call-bind": "^1.0.7", 6423 + "define-properties": "^1.2.1", 6424 + "es-object-atoms": "^1.0.0" 6425 + }, 6426 + "engines": { 6427 + "node": ">= 0.4" 6428 + }, 6429 + "funding": { 6430 + "url": "https://github.com/sponsors/ljharb" 6431 + } 6432 + }, 3471 6433 "node_modules/once": { 3472 6434 "version": "1.4.0", 3473 6435 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", ··· 3477 6439 "wrappy": "1" 3478 6440 } 3479 6441 }, 6442 + "node_modules/optionator": { 6443 + "version": "0.9.4", 6444 + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", 6445 + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", 6446 + "dev": true, 6447 + "dependencies": { 6448 + "deep-is": "^0.1.3", 6449 + "fast-levenshtein": "^2.0.6", 6450 + "levn": "^0.4.1", 6451 + "prelude-ls": "^1.2.1", 6452 + "type-check": "^0.4.0", 6453 + "word-wrap": "^1.2.5" 6454 + }, 6455 + "engines": { 6456 + "node": ">= 0.8.0" 6457 + } 6458 + }, 6459 + "node_modules/orderedmap": { 6460 + "version": "2.1.1", 6461 + "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz", 6462 + "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==" 6463 + }, 6464 + "node_modules/p-limit": { 6465 + "version": "3.1.0", 6466 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 6467 + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 6468 + "dev": true, 6469 + "dependencies": { 6470 + "yocto-queue": "^0.1.0" 6471 + }, 6472 + "engines": { 6473 + "node": ">=10" 6474 + }, 6475 + "funding": { 6476 + "url": "https://github.com/sponsors/sindresorhus" 6477 + } 6478 + }, 6479 + "node_modules/p-locate": { 6480 + "version": "5.0.0", 6481 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 6482 + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 6483 + "dev": true, 6484 + "dependencies": { 6485 + "p-limit": "^3.0.2" 6486 + }, 6487 + "engines": { 6488 + "node": ">=10" 6489 + }, 6490 + "funding": { 6491 + "url": "https://github.com/sponsors/sindresorhus" 6492 + } 6493 + }, 6494 + "node_modules/parent-module": { 6495 + "version": "1.0.1", 6496 + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 6497 + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 6498 + "dev": true, 6499 + "dependencies": { 6500 + "callsites": "^3.0.0" 6501 + }, 6502 + "engines": { 6503 + "node": ">=6" 6504 + } 6505 + }, 6506 + "node_modules/path-exists": { 6507 + "version": "4.0.0", 6508 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 6509 + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 6510 + "dev": true, 6511 + "engines": { 6512 + "node": ">=8" 6513 + } 6514 + }, 6515 + "node_modules/path-is-absolute": { 6516 + "version": "1.0.1", 6517 + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 6518 + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 6519 + "dev": true, 6520 + "engines": { 6521 + "node": ">=0.10.0" 6522 + } 6523 + }, 3480 6524 "node_modules/path-key": { 3481 6525 "version": "3.1.1", 3482 6526 "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", ··· 3514 6558 "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==", 3515 6559 "dev": true 3516 6560 }, 6561 + "node_modules/path-type": { 6562 + "version": "4.0.0", 6563 + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 6564 + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 6565 + "dev": true, 6566 + "engines": { 6567 + "node": ">=8" 6568 + } 6569 + }, 3517 6570 "node_modules/picocolors": { 3518 6571 "version": "1.0.1", 3519 6572 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", ··· 3549 6602 "node": ">= 6" 3550 6603 } 3551 6604 }, 6605 + "node_modules/possible-typed-array-names": { 6606 + "version": "1.0.0", 6607 + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", 6608 + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", 6609 + "dev": true, 6610 + "engines": { 6611 + "node": ">= 0.4" 6612 + } 6613 + }, 3552 6614 "node_modules/postcss": { 3553 6615 "version": "8.4.38", 3554 6616 "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", ··· 3710 6772 "url": "https://github.com/sponsors/porsager" 3711 6773 } 3712 6774 }, 6775 + "node_modules/prelude-ls": { 6776 + "version": "1.2.1", 6777 + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 6778 + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 6779 + "dev": true, 6780 + "engines": { 6781 + "node": ">= 0.8.0" 6782 + } 6783 + }, 3713 6784 "node_modules/prettier": { 3714 6785 "version": "3.2.5", 3715 6786 "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", ··· 3731 6802 "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", 3732 6803 "dev": true 3733 6804 }, 6805 + "node_modules/prop-types": { 6806 + "version": "15.8.1", 6807 + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", 6808 + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", 6809 + "dev": true, 6810 + "dependencies": { 6811 + "loose-envify": "^1.4.0", 6812 + "object-assign": "^4.1.1", 6813 + "react-is": "^16.13.1" 6814 + } 6815 + }, 6816 + "node_modules/prosemirror-model": { 6817 + "version": "1.21.0", 6818 + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.21.0.tgz", 6819 + "integrity": "sha512-zLpS1mVCZLA7VTp82P+BfMiYVPcX1/z0Mf3gsjKZtzMWubwn2pN7CceMV0DycjlgE5JeXPR7UF4hJPbBV98oWA==", 6820 + "dependencies": { 6821 + "orderedmap": "^2.0.0" 6822 + } 6823 + }, 6824 + "node_modules/prosemirror-schema-basic": { 6825 + "version": "1.2.2", 6826 + "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.2.tgz", 6827 + "integrity": "sha512-/dT4JFEGyO7QnNTe9UaKUhjDXbTNkiWTq/N4VpKaF79bBjSExVV2NXmJpcM7z/gD7mbqNjxbmWW5nf1iNSSGnw==", 6828 + "dependencies": { 6829 + "prosemirror-model": "^1.19.0" 6830 + } 6831 + }, 6832 + "node_modules/prosemirror-state": { 6833 + "version": "1.4.3", 6834 + "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz", 6835 + "integrity": "sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==", 6836 + "dependencies": { 6837 + "prosemirror-model": "^1.0.0", 6838 + "prosemirror-transform": "^1.0.0", 6839 + "prosemirror-view": "^1.27.0" 6840 + } 6841 + }, 6842 + "node_modules/prosemirror-transform": { 6843 + "version": "1.9.0", 6844 + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.9.0.tgz", 6845 + "integrity": "sha512-5UXkr1LIRx3jmpXXNKDhv8OyAOeLTGuXNwdVfg8x27uASna/wQkr9p6fD3eupGOi4PLJfbezxTyi/7fSJypXHg==", 6846 + "dependencies": { 6847 + "prosemirror-model": "^1.21.0" 6848 + } 6849 + }, 6850 + "node_modules/prosemirror-view": { 6851 + "version": "1.33.6", 6852 + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.33.6.tgz", 6853 + "integrity": "sha512-zRLUNgLIQfd8IfGprsXxWTjdA8xEAFJe8cDNrOptj6Mop9sj+BMeVbJvceyAYCm5G2dOdT2prctH7K9dfnpIMw==", 6854 + "dependencies": { 6855 + "prosemirror-model": "^1.20.0", 6856 + "prosemirror-state": "^1.0.0", 6857 + "prosemirror-transform": "^1.1.0" 6858 + } 6859 + }, 6860 + "node_modules/punycode": { 6861 + "version": "2.3.1", 6862 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", 6863 + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", 6864 + "dev": true, 6865 + "engines": { 6866 + "node": ">=6" 6867 + } 6868 + }, 3734 6869 "node_modules/queue-microtask": { 3735 6870 "version": "1.2.3", 3736 6871 "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", ··· 3774 6909 "react": "^18.3.1" 3775 6910 } 3776 6911 }, 6912 + "node_modules/react-is": { 6913 + "version": "16.13.1", 6914 + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 6915 + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", 6916 + "dev": true 6917 + }, 6918 + "node_modules/react-remove-scroll": { 6919 + "version": "2.5.5", 6920 + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", 6921 + "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", 6922 + "dependencies": { 6923 + "react-remove-scroll-bar": "^2.3.3", 6924 + "react-style-singleton": "^2.2.1", 6925 + "tslib": "^2.1.0", 6926 + "use-callback-ref": "^1.3.0", 6927 + "use-sidecar": "^1.1.2" 6928 + }, 6929 + "engines": { 6930 + "node": ">=10" 6931 + }, 6932 + "peerDependencies": { 6933 + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", 6934 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" 6935 + }, 6936 + "peerDependenciesMeta": { 6937 + "@types/react": { 6938 + "optional": true 6939 + } 6940 + } 6941 + }, 6942 + "node_modules/react-remove-scroll-bar": { 6943 + "version": "2.3.6", 6944 + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", 6945 + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", 6946 + "dependencies": { 6947 + "react-style-singleton": "^2.2.1", 6948 + "tslib": "^2.0.0" 6949 + }, 6950 + "engines": { 6951 + "node": ">=10" 6952 + }, 6953 + "peerDependencies": { 6954 + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", 6955 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" 6956 + }, 6957 + "peerDependenciesMeta": { 6958 + "@types/react": { 6959 + "optional": true 6960 + } 6961 + } 6962 + }, 6963 + "node_modules/react-style-singleton": { 6964 + "version": "2.2.1", 6965 + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", 6966 + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", 6967 + "dependencies": { 6968 + "get-nonce": "^1.0.0", 6969 + "invariant": "^2.2.4", 6970 + "tslib": "^2.0.0" 6971 + }, 6972 + "engines": { 6973 + "node": ">=10" 6974 + }, 6975 + "peerDependencies": { 6976 + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", 6977 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" 6978 + }, 6979 + "peerDependenciesMeta": { 6980 + "@types/react": { 6981 + "optional": true 6982 + } 6983 + } 6984 + }, 3777 6985 "node_modules/react-use-measure": { 3778 6986 "version": "2.1.1", 3779 6987 "resolved": "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.1.tgz", ··· 3816 7024 "node": ">=8.10.0" 3817 7025 } 3818 7026 }, 7027 + "node_modules/reflect.getprototypeof": { 7028 + "version": "1.0.6", 7029 + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", 7030 + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", 7031 + "dev": true, 7032 + "dependencies": { 7033 + "call-bind": "^1.0.7", 7034 + "define-properties": "^1.2.1", 7035 + "es-abstract": "^1.23.1", 7036 + "es-errors": "^1.3.0", 7037 + "get-intrinsic": "^1.2.4", 7038 + "globalthis": "^1.0.3", 7039 + "which-builtin-type": "^1.1.3" 7040 + }, 7041 + "engines": { 7042 + "node": ">= 0.4" 7043 + }, 7044 + "funding": { 7045 + "url": "https://github.com/sponsors/ljharb" 7046 + } 7047 + }, 7048 + "node_modules/regenerator-runtime": { 7049 + "version": "0.14.1", 7050 + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", 7051 + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" 7052 + }, 7053 + "node_modules/regexp.prototype.flags": { 7054 + "version": "1.5.2", 7055 + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", 7056 + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", 7057 + "dev": true, 7058 + "dependencies": { 7059 + "call-bind": "^1.0.6", 7060 + "define-properties": "^1.2.1", 7061 + "es-errors": "^1.3.0", 7062 + "set-function-name": "^2.0.1" 7063 + }, 7064 + "engines": { 7065 + "node": ">= 0.4" 7066 + }, 7067 + "funding": { 7068 + "url": "https://github.com/sponsors/ljharb" 7069 + } 7070 + }, 3819 7071 "node_modules/replicache": { 3820 7072 "version": "14.2.2", 3821 7073 "resolved": "https://registry.npmjs.org/replicache/-/replicache-14.2.2.tgz", ··· 3848 7100 }, 3849 7101 "funding": { 3850 7102 "url": "https://github.com/sponsors/ljharb" 7103 + } 7104 + }, 7105 + "node_modules/resolve-from": { 7106 + "version": "4.0.0", 7107 + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 7108 + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 7109 + "dev": true, 7110 + "engines": { 7111 + "node": ">=4" 3851 7112 } 3852 7113 }, 3853 7114 "node_modules/resolve-pkg-maps": { ··· 3947 7208 ], 3948 7209 "dependencies": { 3949 7210 "queue-microtask": "^1.2.2" 7211 + } 7212 + }, 7213 + "node_modules/safe-array-concat": { 7214 + "version": "1.1.2", 7215 + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", 7216 + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", 7217 + "dev": true, 7218 + "dependencies": { 7219 + "call-bind": "^1.0.7", 7220 + "get-intrinsic": "^1.2.4", 7221 + "has-symbols": "^1.0.3", 7222 + "isarray": "^2.0.5" 7223 + }, 7224 + "engines": { 7225 + "node": ">=0.4" 7226 + }, 7227 + "funding": { 7228 + "url": "https://github.com/sponsors/ljharb" 7229 + } 7230 + }, 7231 + "node_modules/safe-regex-test": { 7232 + "version": "1.0.3", 7233 + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", 7234 + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", 7235 + "dev": true, 7236 + "dependencies": { 7237 + "call-bind": "^1.0.6", 7238 + "es-errors": "^1.3.0", 7239 + "is-regex": "^1.1.4" 7240 + }, 7241 + "engines": { 7242 + "node": ">= 0.4" 7243 + }, 7244 + "funding": { 7245 + "url": "https://github.com/sponsors/ljharb" 3950 7246 } 3951 7247 }, 3952 7248 "node_modules/scheduler": { ··· 3970 7266 "node": ">=10" 3971 7267 } 3972 7268 }, 7269 + "node_modules/semver": { 7270 + "version": "7.6.2", 7271 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", 7272 + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", 7273 + "dev": true, 7274 + "bin": { 7275 + "semver": "bin/semver.js" 7276 + }, 7277 + "engines": { 7278 + "node": ">=10" 7279 + } 7280 + }, 7281 + "node_modules/set-function-length": { 7282 + "version": "1.2.2", 7283 + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", 7284 + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", 7285 + "dev": true, 7286 + "dependencies": { 7287 + "define-data-property": "^1.1.4", 7288 + "es-errors": "^1.3.0", 7289 + "function-bind": "^1.1.2", 7290 + "get-intrinsic": "^1.2.4", 7291 + "gopd": "^1.0.1", 7292 + "has-property-descriptors": "^1.0.2" 7293 + }, 7294 + "engines": { 7295 + "node": ">= 0.4" 7296 + } 7297 + }, 7298 + "node_modules/set-function-name": { 7299 + "version": "2.0.2", 7300 + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", 7301 + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", 7302 + "dev": true, 7303 + "dependencies": { 7304 + "define-data-property": "^1.1.4", 7305 + "es-errors": "^1.3.0", 7306 + "functions-have-names": "^1.2.3", 7307 + "has-property-descriptors": "^1.0.2" 7308 + }, 7309 + "engines": { 7310 + "node": ">= 0.4" 7311 + } 7312 + }, 3973 7313 "node_modules/shebang-command": { 3974 7314 "version": "2.0.0", 3975 7315 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", ··· 3991 7331 "node": ">=8" 3992 7332 } 3993 7333 }, 7334 + "node_modules/side-channel": { 7335 + "version": "1.0.6", 7336 + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", 7337 + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", 7338 + "dev": true, 7339 + "dependencies": { 7340 + "call-bind": "^1.0.7", 7341 + "es-errors": "^1.3.0", 7342 + "get-intrinsic": "^1.2.4", 7343 + "object-inspect": "^1.13.1" 7344 + }, 7345 + "engines": { 7346 + "node": ">= 0.4" 7347 + }, 7348 + "funding": { 7349 + "url": "https://github.com/sponsors/ljharb" 7350 + } 7351 + }, 3994 7352 "node_modules/signal-exit": { 3995 7353 "version": "4.1.0", 3996 7354 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", ··· 4008 7366 "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", 4009 7367 "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", 4010 7368 "dev": true 7369 + }, 7370 + "node_modules/slash": { 7371 + "version": "3.0.0", 7372 + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 7373 + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 7374 + "dev": true, 7375 + "engines": { 7376 + "node": ">=8" 7377 + } 4011 7378 }, 4012 7379 "node_modules/source-map": { 4013 7380 "version": "0.6.1", ··· 4130 7497 "node": ">=8" 4131 7498 } 4132 7499 }, 7500 + "node_modules/string.prototype.matchall": { 7501 + "version": "4.0.11", 7502 + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", 7503 + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", 7504 + "dev": true, 7505 + "dependencies": { 7506 + "call-bind": "^1.0.7", 7507 + "define-properties": "^1.2.1", 7508 + "es-abstract": "^1.23.2", 7509 + "es-errors": "^1.3.0", 7510 + "es-object-atoms": "^1.0.0", 7511 + "get-intrinsic": "^1.2.4", 7512 + "gopd": "^1.0.1", 7513 + "has-symbols": "^1.0.3", 7514 + "internal-slot": "^1.0.7", 7515 + "regexp.prototype.flags": "^1.5.2", 7516 + "set-function-name": "^2.0.2", 7517 + "side-channel": "^1.0.6" 7518 + }, 7519 + "engines": { 7520 + "node": ">= 0.4" 7521 + }, 7522 + "funding": { 7523 + "url": "https://github.com/sponsors/ljharb" 7524 + } 7525 + }, 7526 + "node_modules/string.prototype.trim": { 7527 + "version": "1.2.9", 7528 + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", 7529 + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", 7530 + "dev": true, 7531 + "dependencies": { 7532 + "call-bind": "^1.0.7", 7533 + "define-properties": "^1.2.1", 7534 + "es-abstract": "^1.23.0", 7535 + "es-object-atoms": "^1.0.0" 7536 + }, 7537 + "engines": { 7538 + "node": ">= 0.4" 7539 + }, 7540 + "funding": { 7541 + "url": "https://github.com/sponsors/ljharb" 7542 + } 7543 + }, 7544 + "node_modules/string.prototype.trimend": { 7545 + "version": "1.0.8", 7546 + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", 7547 + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", 7548 + "dev": true, 7549 + "dependencies": { 7550 + "call-bind": "^1.0.7", 7551 + "define-properties": "^1.2.1", 7552 + "es-object-atoms": "^1.0.0" 7553 + }, 7554 + "funding": { 7555 + "url": "https://github.com/sponsors/ljharb" 7556 + } 7557 + }, 7558 + "node_modules/string.prototype.trimstart": { 7559 + "version": "1.0.8", 7560 + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", 7561 + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", 7562 + "dev": true, 7563 + "dependencies": { 7564 + "call-bind": "^1.0.7", 7565 + "define-properties": "^1.2.1", 7566 + "es-object-atoms": "^1.0.0" 7567 + }, 7568 + "engines": { 7569 + "node": ">= 0.4" 7570 + }, 7571 + "funding": { 7572 + "url": "https://github.com/sponsors/ljharb" 7573 + } 7574 + }, 4133 7575 "node_modules/strip-ansi": { 4134 7576 "version": "7.1.0", 4135 7577 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", ··· 4167 7609 "node": ">=8" 4168 7610 } 4169 7611 }, 7612 + "node_modules/strip-bom": { 7613 + "version": "3.0.0", 7614 + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 7615 + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", 7616 + "dev": true, 7617 + "engines": { 7618 + "node": ">=4" 7619 + } 7620 + }, 7621 + "node_modules/strip-json-comments": { 7622 + "version": "3.1.1", 7623 + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 7624 + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 7625 + "dev": true, 7626 + "engines": { 7627 + "node": ">=8" 7628 + }, 7629 + "funding": { 7630 + "url": "https://github.com/sponsors/sindresorhus" 7631 + } 7632 + }, 4170 7633 "node_modules/styled-jsx": { 4171 7634 "version": "5.1.1", 4172 7635 "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", ··· 4230 7693 "npm": ">=8" 4231 7694 } 4232 7695 }, 7696 + "node_modules/supports-color": { 7697 + "version": "7.2.0", 7698 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 7699 + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 7700 + "dev": true, 7701 + "dependencies": { 7702 + "has-flag": "^4.0.0" 7703 + }, 7704 + "engines": { 7705 + "node": ">=8" 7706 + } 7707 + }, 4233 7708 "node_modules/supports-preserve-symlinks-flag": { 4234 7709 "version": "1.0.0", 4235 7710 "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", ··· 4291 7766 "node": ">=10.13.0" 4292 7767 } 4293 7768 }, 7769 + "node_modules/tapable": { 7770 + "version": "2.2.1", 7771 + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", 7772 + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", 7773 + "dev": true, 7774 + "engines": { 7775 + "node": ">=6" 7776 + } 7777 + }, 4294 7778 "node_modules/tar": { 4295 7779 "version": "7.1.0", 4296 7780 "resolved": "https://registry.npmjs.org/tar/-/tar-7.1.0.tgz", ··· 4307 7791 "engines": { 4308 7792 "node": ">=18" 4309 7793 } 7794 + }, 7795 + "node_modules/text-table": { 7796 + "version": "0.2.0", 7797 + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 7798 + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", 7799 + "dev": true 4310 7800 }, 4311 7801 "node_modules/thenify": { 4312 7802 "version": "3.3.1", ··· 4356 7846 "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 4357 7847 "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" 4358 7848 }, 7849 + "node_modules/ts-api-utils": { 7850 + "version": "1.3.0", 7851 + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", 7852 + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", 7853 + "dev": true, 7854 + "engines": { 7855 + "node": ">=16" 7856 + }, 7857 + "peerDependencies": { 7858 + "typescript": ">=4.2.0" 7859 + } 7860 + }, 4359 7861 "node_modules/ts-interface-checker": { 4360 7862 "version": "0.1.13", 4361 7863 "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", 4362 7864 "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", 4363 7865 "dev": true 4364 7866 }, 7867 + "node_modules/tsconfig-paths": { 7868 + "version": "3.15.0", 7869 + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", 7870 + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", 7871 + "dev": true, 7872 + "dependencies": { 7873 + "@types/json5": "^0.0.29", 7874 + "json5": "^1.0.2", 7875 + "minimist": "^1.2.6", 7876 + "strip-bom": "^3.0.0" 7877 + } 7878 + }, 4365 7879 "node_modules/tslib": { 4366 7880 "version": "2.6.2", 4367 7881 "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", ··· 4373 7887 "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", 4374 7888 "dev": true 4375 7889 }, 7890 + "node_modules/type-check": { 7891 + "version": "0.4.0", 7892 + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 7893 + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 7894 + "dev": true, 7895 + "dependencies": { 7896 + "prelude-ls": "^1.2.1" 7897 + }, 7898 + "engines": { 7899 + "node": ">= 0.8.0" 7900 + } 7901 + }, 7902 + "node_modules/type-fest": { 7903 + "version": "0.20.2", 7904 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 7905 + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 7906 + "dev": true, 7907 + "engines": { 7908 + "node": ">=10" 7909 + }, 7910 + "funding": { 7911 + "url": "https://github.com/sponsors/sindresorhus" 7912 + } 7913 + }, 7914 + "node_modules/typed-array-buffer": { 7915 + "version": "1.0.2", 7916 + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", 7917 + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", 7918 + "dev": true, 7919 + "dependencies": { 7920 + "call-bind": "^1.0.7", 7921 + "es-errors": "^1.3.0", 7922 + "is-typed-array": "^1.1.13" 7923 + }, 7924 + "engines": { 7925 + "node": ">= 0.4" 7926 + } 7927 + }, 7928 + "node_modules/typed-array-byte-length": { 7929 + "version": "1.0.1", 7930 + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", 7931 + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", 7932 + "dev": true, 7933 + "dependencies": { 7934 + "call-bind": "^1.0.7", 7935 + "for-each": "^0.3.3", 7936 + "gopd": "^1.0.1", 7937 + "has-proto": "^1.0.3", 7938 + "is-typed-array": "^1.1.13" 7939 + }, 7940 + "engines": { 7941 + "node": ">= 0.4" 7942 + }, 7943 + "funding": { 7944 + "url": "https://github.com/sponsors/ljharb" 7945 + } 7946 + }, 7947 + "node_modules/typed-array-byte-offset": { 7948 + "version": "1.0.2", 7949 + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", 7950 + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", 7951 + "dev": true, 7952 + "dependencies": { 7953 + "available-typed-arrays": "^1.0.7", 7954 + "call-bind": "^1.0.7", 7955 + "for-each": "^0.3.3", 7956 + "gopd": "^1.0.1", 7957 + "has-proto": "^1.0.3", 7958 + "is-typed-array": "^1.1.13" 7959 + }, 7960 + "engines": { 7961 + "node": ">= 0.4" 7962 + }, 7963 + "funding": { 7964 + "url": "https://github.com/sponsors/ljharb" 7965 + } 7966 + }, 7967 + "node_modules/typed-array-length": { 7968 + "version": "1.0.6", 7969 + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", 7970 + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", 7971 + "dev": true, 7972 + "dependencies": { 7973 + "call-bind": "^1.0.7", 7974 + "for-each": "^0.3.3", 7975 + "gopd": "^1.0.1", 7976 + "has-proto": "^1.0.3", 7977 + "is-typed-array": "^1.1.13", 7978 + "possible-typed-array-names": "^1.0.0" 7979 + }, 7980 + "engines": { 7981 + "node": ">= 0.4" 7982 + }, 7983 + "funding": { 7984 + "url": "https://github.com/sponsors/ljharb" 7985 + } 7986 + }, 4376 7987 "node_modules/typescript": { 4377 7988 "version": "5.4.5", 4378 7989 "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", ··· 4384 7995 }, 4385 7996 "engines": { 4386 7997 "node": ">=14.17" 7998 + } 7999 + }, 8000 + "node_modules/unbox-primitive": { 8001 + "version": "1.0.2", 8002 + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", 8003 + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", 8004 + "dev": true, 8005 + "dependencies": { 8006 + "call-bind": "^1.0.2", 8007 + "has-bigints": "^1.0.2", 8008 + "has-symbols": "^1.0.3", 8009 + "which-boxed-primitive": "^1.0.2" 8010 + }, 8011 + "funding": { 8012 + "url": "https://github.com/sponsors/ljharb" 4387 8013 } 4388 8014 }, 4389 8015 "node_modules/undici": { ··· 4433 8059 "browserslist": ">= 4.21.0" 4434 8060 } 4435 8061 }, 8062 + "node_modules/uri-js": { 8063 + "version": "4.4.1", 8064 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 8065 + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 8066 + "dev": true, 8067 + "dependencies": { 8068 + "punycode": "^2.1.0" 8069 + } 8070 + }, 8071 + "node_modules/use-callback-ref": { 8072 + "version": "1.3.2", 8073 + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", 8074 + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", 8075 + "dependencies": { 8076 + "tslib": "^2.0.0" 8077 + }, 8078 + "engines": { 8079 + "node": ">=10" 8080 + }, 8081 + "peerDependencies": { 8082 + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", 8083 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" 8084 + }, 8085 + "peerDependenciesMeta": { 8086 + "@types/react": { 8087 + "optional": true 8088 + } 8089 + } 8090 + }, 8091 + "node_modules/use-sidecar": { 8092 + "version": "1.1.2", 8093 + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", 8094 + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", 8095 + "dependencies": { 8096 + "detect-node-es": "^1.1.0", 8097 + "tslib": "^2.0.0" 8098 + }, 8099 + "engines": { 8100 + "node": ">=10" 8101 + }, 8102 + "peerDependencies": { 8103 + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", 8104 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" 8105 + }, 8106 + "peerDependenciesMeta": { 8107 + "@types/react": { 8108 + "optional": true 8109 + } 8110 + } 8111 + }, 4436 8112 "node_modules/util-deprecate": { 4437 8113 "version": "1.0.2", 4438 8114 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", ··· 4477 8153 "node": ">= 8" 4478 8154 } 4479 8155 }, 8156 + "node_modules/which-boxed-primitive": { 8157 + "version": "1.0.2", 8158 + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", 8159 + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", 8160 + "dev": true, 8161 + "dependencies": { 8162 + "is-bigint": "^1.0.1", 8163 + "is-boolean-object": "^1.1.0", 8164 + "is-number-object": "^1.0.4", 8165 + "is-string": "^1.0.5", 8166 + "is-symbol": "^1.0.3" 8167 + }, 8168 + "funding": { 8169 + "url": "https://github.com/sponsors/ljharb" 8170 + } 8171 + }, 8172 + "node_modules/which-builtin-type": { 8173 + "version": "1.1.3", 8174 + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", 8175 + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", 8176 + "dev": true, 8177 + "dependencies": { 8178 + "function.prototype.name": "^1.1.5", 8179 + "has-tostringtag": "^1.0.0", 8180 + "is-async-function": "^2.0.0", 8181 + "is-date-object": "^1.0.5", 8182 + "is-finalizationregistry": "^1.0.2", 8183 + "is-generator-function": "^1.0.10", 8184 + "is-regex": "^1.1.4", 8185 + "is-weakref": "^1.0.2", 8186 + "isarray": "^2.0.5", 8187 + "which-boxed-primitive": "^1.0.2", 8188 + "which-collection": "^1.0.1", 8189 + "which-typed-array": "^1.1.9" 8190 + }, 8191 + "engines": { 8192 + "node": ">= 0.4" 8193 + }, 8194 + "funding": { 8195 + "url": "https://github.com/sponsors/ljharb" 8196 + } 8197 + }, 8198 + "node_modules/which-collection": { 8199 + "version": "1.0.2", 8200 + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", 8201 + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", 8202 + "dev": true, 8203 + "dependencies": { 8204 + "is-map": "^2.0.3", 8205 + "is-set": "^2.0.3", 8206 + "is-weakmap": "^2.0.2", 8207 + "is-weakset": "^2.0.3" 8208 + }, 8209 + "engines": { 8210 + "node": ">= 0.4" 8211 + }, 8212 + "funding": { 8213 + "url": "https://github.com/sponsors/ljharb" 8214 + } 8215 + }, 8216 + "node_modules/which-typed-array": { 8217 + "version": "1.1.15", 8218 + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", 8219 + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", 8220 + "dev": true, 8221 + "dependencies": { 8222 + "available-typed-arrays": "^1.0.7", 8223 + "call-bind": "^1.0.7", 8224 + "for-each": "^0.3.3", 8225 + "gopd": "^1.0.1", 8226 + "has-tostringtag": "^1.0.2" 8227 + }, 8228 + "engines": { 8229 + "node": ">= 0.4" 8230 + }, 8231 + "funding": { 8232 + "url": "https://github.com/sponsors/ljharb" 8233 + } 8234 + }, 8235 + "node_modules/word-wrap": { 8236 + "version": "1.2.5", 8237 + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", 8238 + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", 8239 + "dev": true, 8240 + "engines": { 8241 + "node": ">=0.10.0" 8242 + } 8243 + }, 4480 8244 "node_modules/wordwrap": { 4481 8245 "version": "1.0.0", 4482 8246 "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", ··· 4679 8443 "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==", 4680 8444 "dev": true 4681 8445 }, 8446 + "node_modules/y-prosemirror": { 8447 + "version": "1.2.5", 8448 + "resolved": "https://registry.npmjs.org/y-prosemirror/-/y-prosemirror-1.2.5.tgz", 8449 + "integrity": "sha512-T/JATxC8P2Dbvq/dAiaiztD1a8KEwRP8oLRlT8YlaZdNlLGE1Ea0IJ8If25UlDYmk+4+uqLbqT/S+dzUmwwgbA==", 8450 + "dependencies": { 8451 + "lib0": "^0.2.42" 8452 + }, 8453 + "engines": { 8454 + "node": ">=16.0.0", 8455 + "npm": ">=8.0.0" 8456 + }, 8457 + "funding": { 8458 + "type": "GitHub Sponsors ❤", 8459 + "url": "https://github.com/sponsors/dmonad" 8460 + }, 8461 + "peerDependencies": { 8462 + "prosemirror-model": "^1.7.1", 8463 + "prosemirror-state": "^1.2.3", 8464 + "prosemirror-view": "^1.9.10", 8465 + "y-protocols": "^1.0.1", 8466 + "yjs": "^13.5.38" 8467 + } 8468 + }, 8469 + "node_modules/y-protocols": { 8470 + "version": "1.0.6", 8471 + "resolved": "https://registry.npmjs.org/y-protocols/-/y-protocols-1.0.6.tgz", 8472 + "integrity": "sha512-vHRF2L6iT3rwj1jub/K5tYcTT/mEYDUppgNPXwp8fmLpui9f7Yeq3OEtTLVF012j39QnV+KEQpNqoN7CWU7Y9Q==", 8473 + "peer": true, 8474 + "dependencies": { 8475 + "lib0": "^0.2.85" 8476 + }, 8477 + "engines": { 8478 + "node": ">=16.0.0", 8479 + "npm": ">=8.0.0" 8480 + }, 8481 + "funding": { 8482 + "type": "GitHub Sponsors ❤", 8483 + "url": "https://github.com/sponsors/dmonad" 8484 + }, 8485 + "peerDependencies": { 8486 + "yjs": "^13.0.0" 8487 + } 8488 + }, 4682 8489 "node_modules/yallist": { 4683 8490 "version": "5.0.0", 4684 8491 "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", ··· 4698 8505 }, 4699 8506 "engines": { 4700 8507 "node": ">= 14" 8508 + } 8509 + }, 8510 + "node_modules/yjs": { 8511 + "version": "13.6.15", 8512 + "resolved": "https://registry.npmjs.org/yjs/-/yjs-13.6.15.tgz", 8513 + "integrity": "sha512-moFv4uNYhp8BFxIk3AkpoAnnjts7gwdpiG8RtyFiKbMtxKCS0zVZ5wPaaGpwC3V2N/K8TK8MwtSI3+WO9CHWjQ==", 8514 + "dependencies": { 8515 + "lib0": "^0.2.86" 8516 + }, 8517 + "engines": { 8518 + "node": ">=16.0.0", 8519 + "npm": ">=8.0.0" 8520 + }, 8521 + "funding": { 8522 + "type": "GitHub Sponsors ❤", 8523 + "url": "https://github.com/sponsors/dmonad" 8524 + } 8525 + }, 8526 + "node_modules/yocto-queue": { 8527 + "version": "0.1.0", 8528 + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 8529 + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 8530 + "dev": true, 8531 + "engines": { 8532 + "node": ">=10" 8533 + }, 8534 + "funding": { 8535 + "url": "https://github.com/sponsors/sindresorhus" 4701 8536 } 4702 8537 }, 4703 8538 "node_modules/youch": {
+9 -1
package.json
··· 16 16 "@react-stately/color": "^3.6.0", 17 17 "@spectrum-css/colorarea": "^5.1.0", 18 18 "@spectrum-css/colorhandle": "^8.1.0", 19 + "@nytimes/react-prosemirror": "^0.6.1", 19 20 "@supabase/supabase-js": "^2.43.2", 20 21 "@vercel/kv": "^1.0.1", 22 + "base64-js": "^1.5.1", 21 23 "drizzle-orm": "^0.30.10", 22 24 "next": "^14.2.3", 23 25 "postgres": "^3.4.4", 26 + "prosemirror-schema-basic": "^1.2.2", 27 + "prosemirror-state": "^1.4.3", 24 28 "react": "^18.3.1", 25 29 "react-dom": "^18.3.1", 26 30 "react-use-measure": "^2.1.1", 27 - "replicache": "^14.2.2" 31 + "replicache": "^14.2.2", 32 + "y-prosemirror": "^1.2.5", 33 + "yjs": "^13.6.15" 28 34 }, 29 35 "devDependencies": { 30 36 "@cloudflare/workers-types": "^4.20240512.0", 31 37 "@types/react": "18.3.2", 32 38 "autoprefixer": "^10.4.19", 33 39 "drizzle-kit": "^0.21.2", 40 + "eslint": "8.57.0", 41 + "eslint-config-next": "14.2.3", 34 42 "postcss": "^8.4.38", 35 43 "prettier": "3.2.5", 36 44 "supabase": "^1.167.4",
+11 -3
replicache/attributes.ts
··· 1 1 export const Attributes = { 2 - "block/card": { 2 + "card/block": { 3 3 type: "reference", 4 4 cardinality: "many", 5 5 }, 6 - "card/content": { 6 + "block/position": { 7 7 type: "text", 8 8 cardinality: "one", 9 9 }, 10 - }; 10 + "block/text": { 11 + type: "text", 12 + cardinality: "one", 13 + }, 14 + "block/card": { 15 + type: "reference", 16 + cardinality: "one", 17 + }, 18 + } as const;
+41 -12
replicache/index.tsx
··· 1 1 "use client"; 2 + import * as base64 from "base64-js"; 3 + import * as Y from "yjs"; 2 4 import { createContext, useContext, useEffect, useState } from "react"; 3 5 import { DeepReadonlyObject, Replicache, WriteTransaction } from "replicache"; 4 6 import { Pull } from "./pull"; 5 - import { mutations } from "./mutations"; 7 + import { MutationContext, mutations } from "./mutations"; 6 8 import { Attributes } from "./attributes"; 7 9 import { Push } from "./push"; 8 10 import { FactWithIndexes } from "./utils"; 9 11 import { createClient } from "@supabase/supabase-js"; 10 12 import { Database } from "../supabase/database.types"; 11 13 12 - export type Fact = { 14 + export type Fact<A extends keyof typeof Attributes> = { 13 15 id: string; 14 16 entity: string; 15 - attribute: keyof typeof Attributes; 16 - data: { type: "reference"; value: string } | { type: "text"; value: string }; 17 + attribute: A; 18 + data: Data<A>; 17 19 }; 18 20 21 + type Data<A extends keyof typeof Attributes> = { 22 + text: { type: "text"; value: string }; 23 + reference: { type: "reference"; value: string }; 24 + }[(typeof Attributes)[A]["type"]]; 25 + 19 26 let ReplicacheContext = createContext({ 20 27 rep: null as null | Replicache<ReplicacheMutators>, 21 28 }); ··· 53 60 Attributes[f.attribute as keyof typeof Attributes]; 54 61 if (!attribute) return; 55 62 let id = f.id || crypto.randomUUID(); 63 + let data = { ...f.data }; 56 64 if (attribute.cardinality === "one") { 57 65 let existingFact = await tx 58 - .scan<Fact>({ 66 + .scan<Fact<typeof f.attribute>>({ 59 67 indexName: "eav", 60 68 prefix: `${f.entity}-${f.attribute}`, 61 69 }) 62 70 .toArray(); 63 - if (existingFact[0]) id = existingFact[0].id; 71 + if (existingFact[0]) { 72 + id = existingFact[0].id; 73 + if (attribute.type === "text") { 74 + const oldUpdate = base64.toByteArray( 75 + ( 76 + existingFact[0]?.data as Fact< 77 + typeof f.attribute 78 + >["data"] 79 + ).value, 80 + ); 81 + const newUpdate = base64.toByteArray(f.data.value); 82 + const updateBytes = Y.mergeUpdatesV2([ 83 + oldUpdate, 84 + newUpdate, 85 + ]); 86 + data.value = base64.fromByteArray(updateBytes); 87 + } 88 + } 64 89 } 65 - await tx.set(id, FactWithIndexes({ id, ...f })); 90 + await tx.set(id, FactWithIndexes({ id, ...f, data })); 66 91 }, 67 - }); 92 + } as MutationContext); 68 93 }, 69 94 ]; 70 95 }), ··· 101 126 setRep(null); 102 127 channel.unsubscribe(); 103 128 }; 104 - }, []); 129 + }, [props.name]); 105 130 return ( 106 131 <ReplicacheContext.Provider value={{ rep }}> 107 132 {props.children} ··· 109 134 ); 110 135 } 111 136 112 - export function useEntity(entity: string, attribute: string) { 113 - let [data, setData] = useState<null | DeepReadonlyObject<Fact>[]>(null); 137 + export function useEntity(entity: string, attribute: keyof typeof Attributes) { 138 + let [data, setData] = useState< 139 + null | DeepReadonlyObject<Fact<typeof attribute>>[] 140 + >(null); 114 141 let { rep } = useReplicache(); 115 142 useEffect(() => { 116 143 if (!rep) return; 117 144 return rep.subscribe( 118 145 (tx) => { 119 146 return tx 120 - .scan<Fact>({ indexName: "eav", prefix: `${entity}-${attribute}` }) 147 + .scan< 148 + Fact<typeof attribute> 149 + >({ indexName: "eav", prefix: `${entity}-${attribute}` }) 121 150 .toArray(); 122 151 }, 123 152 { onData: setData },
+10 -10
replicache/mutations.ts
··· 1 1 import { Fact } from "."; 2 + import { Attributes } from "./attributes"; 2 3 3 - type MutationContext = { 4 + export type MutationContext = { 4 5 createEntity: (entityID: string) => Promise<boolean>; 5 - assertFact: (f: Omit<Fact, "id"> & { id?: string }) => Promise<void>; 6 + assertFact: <A extends keyof typeof Attributes>( 7 + f: Omit<Fact<A>, "id"> & { id?: string }, 8 + ) => Promise<void>; 6 9 }; 7 10 8 11 type Mutation<T> = (args: T, ctx: MutationContext) => Promise<void>; ··· 11 14 args, 12 15 ctx, 13 16 ) => { 14 - //How do we create the new entity? 15 - // We don't actually sync the entities to the client yet, but maybe we should 16 - // Should I keep the mutation id on a parent or 17 + console.log(args.parent); 17 18 await ctx.createEntity(args.newEntityID); 18 19 await ctx.assertFact({ 19 20 entity: args.parent, 20 21 data: { type: "reference", value: args.newEntityID }, 21 - attribute: "block/card", 22 + attribute: "card/block", 22 23 }); 23 24 }; 24 25 25 - const assertFact: Mutation<Omit<Fact, "id"> & { id?: string }> = async ( 26 - args, 27 - ctx, 28 - ) => { 26 + const assertFact: Mutation< 27 + Omit<Fact<keyof typeof Attributes>, "id"> & { id?: string } 28 + > = async (args, ctx) => { 29 29 await ctx.assertFact(args); 30 30 }; 31 31
+62 -39
replicache/push.ts
··· 1 1 "use server"; 2 2 import { PushRequest, PushResponse } from "replicache"; 3 + import * as base64 from "base64-js"; 4 + import * as Y from "yjs"; 3 5 import { mutations } from "./mutations"; 4 6 import { drizzle } from "drizzle-orm/postgres-js"; 5 7 import * as driz from "drizzle-orm"; ··· 9 11 import { getClientGroup } from "./utils"; 10 12 import { createClient } from "@supabase/supabase-js"; 11 13 import { Database } from "../supabase/database.types"; 14 + import { Fact } from "."; 12 15 13 16 const client = postgres(process.env.DB_URL as string); 14 17 let supabase = createClient<Database>( ··· 31 34 if (!mutations[name]) { 32 35 continue; 33 36 } 34 - try { 35 - db.transaction(async (tx) => { 37 + db.transaction(async (tx) => { 38 + try { 36 39 await mutations[name](mutation.args as any, { 37 40 async createEntity(entity) { 38 - tx.insert(entities).values({ 39 - id: entity, 40 - }); 41 - return false; 41 + console.log( 42 + await tx.insert(entities).values({ 43 + id: entity, 44 + }), 45 + ); 46 + return true; 42 47 }, 43 48 async assertFact(f) { 44 49 let attribute = Attributes[f.attribute as keyof typeof Attributes]; 45 50 if (!attribute) return; 46 51 let id = f.id || crypto.randomUUID(); 52 + let data = { ...f.data }; 47 53 if (attribute.cardinality === "one") { 48 54 let existingFact = await tx 49 - .select({ id: facts.id }) 55 + .select({ id: facts.id, data: facts.data }) 50 56 .from(facts) 51 57 .where( 52 58 driz.and( ··· 54 60 driz.eq(facts.entity, f.entity), 55 61 ), 56 62 ); 57 - if (existingFact[0]) id = existingFact[0].id; 63 + if (existingFact[0]) { 64 + id = existingFact[0].id; 65 + if (attribute.type === "text") { 66 + const oldUpdate = base64.toByteArray( 67 + (existingFact[0]?.data as Fact<typeof f.attribute>["data"]) 68 + .value, 69 + ); 70 + console.log("mergin updates"); 71 + const newUpdate = base64.toByteArray(f.data.value); 72 + const updateBytes = Y.mergeUpdatesV2([oldUpdate, newUpdate]); 73 + data.value = base64.fromByteArray(updateBytes); 74 + } 75 + } 58 76 } 59 - await tx 60 - .insert(facts) 61 - .values({ 62 - id: id, 63 - entity: f.entity, 64 - data: driz.sql`${f.data}::jsonb`, 65 - attribute: f.attribute, 66 - }) 67 - .onConflictDoUpdate({ 68 - target: facts.id, 69 - set: { data: driz.sql`${f.data}::jsonb` }, 70 - }); 77 + await tx.transaction( 78 + async (tx2) => 79 + await tx2 80 + .insert(facts) 81 + .values({ 82 + id: id, 83 + entity: f.entity, 84 + data: driz.sql`${data}::jsonb`, 85 + attribute: f.attribute, 86 + }) 87 + .onConflictDoUpdate({ 88 + target: facts.id, 89 + set: { data: driz.sql`${f.data}::jsonb` }, 90 + }) 91 + .catch((e) => { 92 + console.log(`error on inserting fact: `, JSON.stringify(e)); 93 + }), 94 + ); 71 95 }, 72 96 }); 73 - await tx 74 - .insert(replicache_clients) 75 - .values({ 76 - client_group: pushRequest.clientGroupID, 77 - client_id: mutation.clientID, 78 - last_mutation: mutation.id, 79 - }) 80 - .onConflictDoUpdate({ 81 - target: replicache_clients.client_id, 82 - set: { last_mutation: mutation.id }, 83 - }); 84 - }); 85 - } catch (e) { 86 - console.log( 87 - `Error occured while running mutation: ${name}`, 88 - JSON.stringify(e), 89 - ); 90 - } 97 + } catch (e) { 98 + console.log( 99 + `Error occured while running mutation: ${name}`, 100 + JSON.stringify(e), 101 + ); 102 + } 103 + await tx 104 + .insert(replicache_clients) 105 + .values({ 106 + client_group: pushRequest.clientGroupID, 107 + client_id: mutation.clientID, 108 + last_mutation: mutation.id, 109 + }) 110 + .onConflictDoUpdate({ 111 + target: replicache_clients.client_id, 112 + set: { last_mutation: mutation.id }, 113 + }); 114 + }); 91 115 } 92 116 93 117 let channel = supabase.channel(`rootEntity:${rootEntity}`); 94 - console.log(channel); 95 118 await channel.send({ 96 119 type: "broadcast", 97 120 event: "poke",