1
0
Fork 0
mirror of https://github.com/kou029w/quot.git synced 2025-01-31 14:28:06 +00:00

Compare commits

..

2 commits

Author SHA1 Message Date
330905f690
prepare → build 2022-09-16 21:34:33 +09:00
6b62f80c9c lexical → codemirror 2022-09-16 21:30:29 +09:00
7 changed files with 463 additions and 325 deletions

550
app/package-lock.json generated
View file

@ -8,21 +8,24 @@
"name": "@quot/app", "name": "@quot/app",
"version": "0.0.0", "version": "0.0.0",
"dependencies": { "dependencies": {
"@codemirror/commands": "^6.1.0",
"@codemirror/language": "^6.2.1",
"@codemirror/view": "^6.2.3",
"@exampledev/new.css": "^1.1.3", "@exampledev/new.css": "^1.1.3",
"@fastify/http-proxy": "^8.2.2", "@fastify/http-proxy": "^8.2.2",
"@lexical/history": "^0.4.1", "@lezer/highlight": "^1.0.0",
"@lexical/link": "^0.4.1", "@lezer/lr": "^1.2.3",
"@lexical/rich-text": "^0.4.1",
"@tsconfig/node18-strictest-esm": "^1.0.1", "@tsconfig/node18-strictest-esm": "^1.0.1",
"codemirror": "^6.0.1",
"esbuild": "^0.15.7", "esbuild": "^0.15.7",
"esbuild-register": "^3.3.3", "esbuild-register": "^3.3.3",
"fastify": "^4.5.3", "fastify": "^4.5.3",
"jose": "^4.9.2", "jose": "^4.9.2",
"lexical": "^0.4.1",
"openid-client": "^5.1.9", "openid-client": "^5.1.9",
"solid-js": "^1.5.4" "solid-js": "^1.5.4"
}, },
"devDependencies": { "devDependencies": {
"@lezer/generator": "^1.1.1",
"@types/node": "^18.7.15", "@types/node": "^18.7.15",
"typescript": "^4.8.2" "typescript": "^4.8.2"
}, },
@ -30,6 +33,82 @@
"node": "^18.7.0" "node": "^18.7.0"
} }
}, },
"node_modules/@codemirror/autocomplete": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.2.0.tgz",
"integrity": "sha512-yNCm2CEE4kE4L2Sf7WeyCej1Q3951ccaCWfomrlBkoERKCss+TzuEeqGe5VnAJTEybLy1yzf1BdMUY/988bfpg==",
"dependencies": {
"@codemirror/language": "^6.0.0",
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
"@lezer/common": "^1.0.0"
},
"peerDependencies": {
"@codemirror/language": "^6.0.0",
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
"@lezer/common": "^1.0.0"
}
},
"node_modules/@codemirror/commands": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.1.0.tgz",
"integrity": "sha512-qCj2YqmbBjj0P1iumnlL5lBqZvJPzT+t2UvgjcaXErp5ZvMqFRVgQyrEfdXX6SX5UcvcHKBjXqno+MkUp0aYvQ==",
"dependencies": {
"@codemirror/language": "^6.0.0",
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
"@lezer/common": "^1.0.0"
}
},
"node_modules/@codemirror/language": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.2.1.tgz",
"integrity": "sha512-MC3svxuvIj0MRpFlGHxLS6vPyIdbTr2KKPEW46kCoCXw2ktb4NTkpkPBI/lSP/FoNXLCBJ0mrnUi1OoZxtpW1Q==",
"dependencies": {
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
"@lezer/common": "^1.0.0",
"@lezer/highlight": "^1.0.0",
"@lezer/lr": "^1.0.0",
"style-mod": "^4.0.0"
}
},
"node_modules/@codemirror/lint": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.0.0.tgz",
"integrity": "sha512-nUUXcJW1Xp54kNs+a1ToPLK8MadO0rMTnJB8Zk4Z8gBdrN0kqV7uvUraU/T2yqg+grDNR38Vmy/MrhQN/RgwiA==",
"dependencies": {
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
"crelt": "^1.0.5"
}
},
"node_modules/@codemirror/search": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.2.0.tgz",
"integrity": "sha512-FVhpUvPFUJe8lg2EQJTTcF4RNI9d/OC3PVitvOfhv5OuY7ZgtMfJl22o5eMkzOEsUY2Wxe7BKGLpe2UI5Wq3PQ==",
"dependencies": {
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
"crelt": "^1.0.5"
}
},
"node_modules/@codemirror/state": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.1.1.tgz",
"integrity": "sha512-2s+aXsxmAwnR3Rd+JDHPG/1lw0YsA9PEwl7Re88gHJHGfxyfEzKBmsN4rr53RyPIR4lzbbhJX0DCq0WlqlBIRw=="
},
"node_modules/@codemirror/view": {
"version": "6.2.3",
"resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.2.3.tgz",
"integrity": "sha512-cgN9gWS9+kv9+eOgVJWMrGUk4EwYKBZpuFYvxIlu4CmMye3+U+gMzuZhBgtPDOCbCp30hxFIOO0MENhGfnaC/g==",
"dependencies": {
"@codemirror/state": "^6.0.0",
"style-mod": "^4.0.0",
"w3c-keyname": "^2.2.4"
}
},
"node_modules/@esbuild/linux-loong64": { "node_modules/@esbuild/linux-loong64": {
"version": "0.15.7", "version": "0.15.7",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.7.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.7.tgz",
@ -101,107 +180,38 @@
"undici": "^5.5.1" "undici": "^5.5.1"
} }
}, },
"node_modules/@lexical/clipboard": { "node_modules/@lezer/common": {
"version": "0.4.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/@lexical/clipboard/-/clipboard-0.4.1.tgz", "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.0.1.tgz",
"integrity": "sha512-/BHeh+LaYhNbBbzNcVPcYgSZtNp6HT5z/iHFKJMfhikE+4KKFf3DbLDO5b92AUDyT3s8QQC04Na5ZeRUbK/Jzw==", "integrity": "sha512-8TR5++Q/F//tpDsLd5zkrvEX5xxeemafEaek7mUp7Y+bI8cKQXdSqhzTOBaOogETcMOVr0pT3BBPXp13477ciw=="
"peer": true, },
"node_modules/@lezer/generator": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@lezer/generator/-/generator-1.1.1.tgz",
"integrity": "sha512-GrB5EwOn09yf5YfDk6TcspHcF7PQZP83665moY5VmOURwCmNOx+Qit3mwp7W/EsGpqd4PPRioxNkYwYZii69cw==",
"dev": true,
"dependencies": { "dependencies": {
"@lexical/html": "0.4.1", "@lezer/common": "^1.0.0",
"@lexical/list": "0.4.1", "@lezer/lr": "^1.0.0"
"@lexical/selection": "0.4.1",
"@lexical/utils": "0.4.1"
}, },
"peerDependencies": { "bin": {
"lexical": "0.4.1" "lezer-generator": "dist/lezer-generator.cjs"
} }
}, },
"node_modules/@lexical/history": { "node_modules/@lezer/highlight": {
"version": "0.4.1", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/@lexical/history/-/history-0.4.1.tgz", "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.0.0.tgz",
"integrity": "sha512-n7KUYqCN0jj+NmMrT0bGjbSwn5x7EyDYhw9eghm69/fgHI/qHSJDQUQXa2ep4/0y4kPzYafVZSMrBDYXBxWqmw==", "integrity": "sha512-nsCnNtim90UKsB5YxoX65v3GEIw3iCHw9RM2DtdgkiqAbKh9pCdvi8AWNwkYf10Lu6fxNhXPpkpHbW6mihhvJA==",
"dependencies": { "dependencies": {
"@lexical/utils": "0.4.1" "@lezer/common": "^1.0.0"
},
"peerDependencies": {
"lexical": "0.4.1"
} }
}, },
"node_modules/@lexical/html": { "node_modules/@lezer/lr": {
"version": "0.4.1", "version": "1.2.3",
"resolved": "https://registry.npmjs.org/@lexical/html/-/html-0.4.1.tgz", "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.2.3.tgz",
"integrity": "sha512-nErgYUtghdrVTPZLB7Ad7U1m3SBxEZvPeW4FH4COFLCeTIVMEG4dg0PhURCk28xNAkEHszd4kQ3XFDRB5muOiQ==", "integrity": "sha512-qpB7rBzH8f6Mzjv2AVZRahcm+2Cf7nbIH++uXbvVOL1yIRvVWQ3HAM/saeBLCyz/togB7LGo76qdJYL1uKQlqA==",
"peer": true,
"dependencies": { "dependencies": {
"@lexical/selection": "0.4.1" "@lezer/common": "^1.0.0"
},
"peerDependencies": {
"lexical": "0.4.1"
}
},
"node_modules/@lexical/link": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@lexical/link/-/link-0.4.1.tgz",
"integrity": "sha512-566lQymmuBe3Y7UDyaaTs+VDlElbu1WhnjT9lVDk0BXag7MA8tv/f60XptWnTK1pv/Dobm/CyLmyLae55OuflQ==",
"dependencies": {
"@lexical/utils": "0.4.1"
},
"peerDependencies": {
"lexical": "0.4.1"
}
},
"node_modules/@lexical/list": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@lexical/list/-/list-0.4.1.tgz",
"integrity": "sha512-dP6i18qm1UhUoG6FvqLMn7hoj4htE0jYcmMPYqFyH+f1ir9Ybvr87pV3aFhqH6hdHjQ5tMyM0kURSL1t89GesQ==",
"dependencies": {
"@lexical/utils": "0.4.1"
},
"peerDependencies": {
"lexical": "0.4.1"
}
},
"node_modules/@lexical/rich-text": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@lexical/rich-text/-/rich-text-0.4.1.tgz",
"integrity": "sha512-EI4ul3y1hqMp0VS/4D8aOyR41ysz1KaYgkm6PyrRXEMyK8uKmVubJP83RkOU2fWkTVtdrMjM6aeT1qX849LetA==",
"peerDependencies": {
"@lexical/clipboard": "0.4.1",
"@lexical/selection": "0.4.1",
"@lexical/utils": "0.4.1",
"lexical": "0.4.1"
}
},
"node_modules/@lexical/selection": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@lexical/selection/-/selection-0.4.1.tgz",
"integrity": "sha512-lrPaBtdWYp5FGpLA/mw8vVxQx8XM/GGVXFGam68B7mgMbY9xxKy3/MtvS94J+oRPtzNHEW3SyhkDEm9356r73g==",
"peer": true,
"peerDependencies": {
"lexical": "0.4.1"
}
},
"node_modules/@lexical/table": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@lexical/table/-/table-0.4.1.tgz",
"integrity": "sha512-1BRLB+cYpqXSk0IHk3uHI1Fa6H4rnQ5pySDm+7HSyShjAzQSMBt0BWoX9B0TW/vXysl3p5+vcnU8mGjGyCA0Lg==",
"dependencies": {
"@lexical/utils": "0.4.1"
},
"peerDependencies": {
"lexical": "0.4.1"
}
},
"node_modules/@lexical/utils": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@lexical/utils/-/utils-0.4.1.tgz",
"integrity": "sha512-OUYS7qpu1oHv9vhUGhL60ow5gbyqLG449XGFZrzaKUGnz1iWU/rXP8nEljoqdtai3rg4t0Ahxcbe9cVIubK3hQ==",
"dependencies": {
"@lexical/list": "0.4.1",
"@lexical/table": "0.4.1"
},
"peerDependencies": {
"lexical": "0.4.1"
} }
}, },
"node_modules/@tsconfig/node18-strictest-esm": { "node_modules/@tsconfig/node18-strictest-esm": {
@ -210,9 +220,9 @@
"integrity": "sha512-cHzmAqw7CMbyqROWeBgVhard3F2V6zxOSJnQ4E6SJWruXD5ypuP9/QKekwBdfXQ4oUTaizIICKIwb+v3v33t0w==" "integrity": "sha512-cHzmAqw7CMbyqROWeBgVhard3F2V6zxOSJnQ4E6SJWruXD5ypuP9/QKekwBdfXQ4oUTaizIICKIwb+v3v33t0w=="
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "18.7.15", "version": "18.7.18",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.15.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.18.tgz",
"integrity": "sha512-XnjpaI8Bgc3eBag2Aw4t2Uj/49lLBSStHWfqKvIuXD7FIrZyMLWp8KuAFHAqxMZYTF9l08N1ctUn9YNybZJVmQ==", "integrity": "sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==",
"dev": true "dev": true
}, },
"node_modules/abort-controller": { "node_modules/abort-controller": {
@ -285,6 +295,20 @@
"fastq": "^1.6.1" "fastq": "^1.6.1"
} }
}, },
"node_modules/codemirror": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz",
"integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==",
"dependencies": {
"@codemirror/autocomplete": "^6.0.0",
"@codemirror/commands": "^6.0.0",
"@codemirror/language": "^6.0.0",
"@codemirror/lint": "^6.0.0",
"@codemirror/search": "^6.0.0",
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0"
}
},
"node_modules/cookie": { "node_modules/cookie": {
"version": "0.5.0", "version": "0.5.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
@ -293,10 +317,15 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/crelt": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.5.tgz",
"integrity": "sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA=="
},
"node_modules/csstype": { "node_modules/csstype": {
"version": "3.1.0", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
"integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
}, },
"node_modules/debug": { "node_modules/debug": {
"version": "4.3.4", "version": "4.3.4",
@ -679,9 +708,9 @@
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
}, },
"node_modules/fast-json-stringify": { "node_modules/fast-json-stringify": {
"version": "5.2.0", "version": "5.3.0",
"resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.2.0.tgz", "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.3.0.tgz",
"integrity": "sha512-u5jtrcAK9RINW15iuDKnsuuhqmqre4AmDMp3crRTjUMdAuHMpQUt3IfoMm5wlJm59b74PcajqOl3SjgnC5FPmw==", "integrity": "sha512-jTlJV/VAaYMtYl5G41uEL8UQT7/fT5W6LuxKxIS/Lpm6bXxmR+reF3m3WgP/WwxXybH61O+xhWK7n9uAsY6zGA==",
"dependencies": { "dependencies": {
"@fastify/deepmerge": "^1.0.0", "@fastify/deepmerge": "^1.0.0",
"ajv": "^8.10.0", "ajv": "^8.10.0",
@ -705,9 +734,9 @@
"integrity": "sha512-qKRta6N7BWEFVlyonVY/V+BMLgFqktCUV0QjT259ekAIlbVrMaFnFLxJ4s/JPl4tou56S1BzPufI60bLe29fHA==" "integrity": "sha512-qKRta6N7BWEFVlyonVY/V+BMLgFqktCUV0QjT259ekAIlbVrMaFnFLxJ4s/JPl4tou56S1BzPufI60bLe29fHA=="
}, },
"node_modules/fastify": { "node_modules/fastify": {
"version": "4.5.3", "version": "4.6.0",
"resolved": "https://registry.npmjs.org/fastify/-/fastify-4.5.3.tgz", "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.6.0.tgz",
"integrity": "sha512-Q8Zvkmg7GnioMCDX1jT2Q7iRqjywlnDZ1735D2Ipf7ashCM/3/bqPKv2Jo1ZF2iDExct2eP1C/tdhcj0GG/OuQ==", "integrity": "sha512-EgWUvcJNvsql1R4g5/ce866BYk8SgJKjGh6AI0e9BR+NidP7hqX1ObiwHEVbkR15A9XwMtkKd3TE/tFZCjsqnA==",
"dependencies": { "dependencies": {
"@fastify/ajv-compiler": "^3.1.1", "@fastify/ajv-compiler": "^3.1.1",
"@fastify/error": "^3.0.0", "@fastify/error": "^3.0.0",
@ -739,9 +768,9 @@
} }
}, },
"node_modules/find-my-way": { "node_modules/find-my-way": {
"version": "7.0.1", "version": "7.1.0",
"resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-7.0.1.tgz", "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-7.1.0.tgz",
"integrity": "sha512-w05SaOPg54KqBof/RDA+75n1R48V7ZZNPL3nR17jJJs5dgZpR3ivfrMWOyx7BVFQgCLhYRG05hfgFCohYvSUXA==", "integrity": "sha512-yQYjxgcZmo6SQ1bRPr9ToMcCyzBOZ3L1cbDYTNCHRq7XfQPLSDhbywUAsQCLWlL3uuOUAKvTxeJ2V2i+Z9YqGA==",
"dependencies": { "dependencies": {
"fast-deep-equal": "^3.1.3", "fast-deep-equal": "^3.1.3",
"safe-regex2": "^2.0.0" "safe-regex2": "^2.0.0"
@ -767,9 +796,9 @@
} }
}, },
"node_modules/jose": { "node_modules/jose": {
"version": "4.9.2", "version": "4.9.3",
"resolved": "https://registry.npmjs.org/jose/-/jose-4.9.2.tgz", "resolved": "https://registry.npmjs.org/jose/-/jose-4.9.3.tgz",
"integrity": "sha512-EqKvu2PqJCD3Jrg3PvcYZVS7D21qMVLSYMDAFcOdGUEOpJSLNtJO7NjLANvu3SYHVl6pdP2ff7ve6EZW2nX7Nw==", "integrity": "sha512-f8E/z+T3Q0kA9txzH2DKvH/ds2uggcw0m3vVPSB9HrSkrQ7mojjifvS7aR8cw+lQl2Fcmx9npwaHpM/M3GD8UQ==",
"funding": { "funding": {
"url": "https://github.com/sponsors/panva" "url": "https://github.com/sponsors/panva"
} }
@ -779,15 +808,10 @@
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
}, },
"node_modules/lexical": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/lexical/-/lexical-0.4.1.tgz",
"integrity": "sha512-EXcLh/6LbEuwqXlnPkk8MXZXO16yBzznFqklKva91DF+KU8utX2PLoeRSOtWC8P2YbRdiGQewwKjUVeXqxxOaQ=="
},
"node_modules/light-my-request": { "node_modules/light-my-request": {
"version": "5.5.1", "version": "5.6.1",
"resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.5.1.tgz", "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.6.1.tgz",
"integrity": "sha512-Zd4oZjF7axSyc5rYQsbB0qsgY4LFFviZSbEywxf7Vi5UE3y3c7tYF/GeheQjBNYY+pQ55BF8UGGJTjneoxOS1w==", "integrity": "sha512-sbJnC1UBRivi9L1kICr3CESb82pNiPNB3TvtdIrZZqW0Qh8uDXvoywMmWKZlihDcmw952CMICCzM+54LDf+E+g==",
"dependencies": { "dependencies": {
"cookie": "^0.5.0", "cookie": "^0.5.0",
"process-warning": "^2.0.0", "process-warning": "^2.0.0",
@ -1020,9 +1044,9 @@
"integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==" "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ=="
}, },
"node_modules/solid-js": { "node_modules/solid-js": {
"version": "1.5.4", "version": "1.5.5",
"resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.5.4.tgz", "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.5.5.tgz",
"integrity": "sha512-+65anSHhH27htkhP5LuC912fviMIckgc7/yN+WWrKhS9Kp3dvtDNl5/m4GWX1lpCvcubjShqJjGt16HET5z5Ig==", "integrity": "sha512-5gXszD7ekhe59IyMa3+AvREJnBWVjwaeC7afL8C3UNPj5gQQCrsMs/cXwI3JRpj6D+3TESTyuQ2sY++m4cYiTg==",
"dependencies": { "dependencies": {
"csstype": "^3.1.0" "csstype": "^3.1.0"
} }
@ -1043,10 +1067,15 @@
"node": ">= 10.x" "node": ">= 10.x"
} }
}, },
"node_modules/style-mod": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz",
"integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw=="
},
"node_modules/thread-stream": { "node_modules/thread-stream": {
"version": "2.1.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.1.0.tgz", "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.2.0.tgz",
"integrity": "sha512-5+Pf2Ya31CsZyIPYYkhINzdTZ3guL+jHq7D8lkBybgGcSQIKDbid3NJku3SpCKeE/gACWAccDA/rH2B6doC5aA==", "integrity": "sha512-rUkv4/fnb4rqy/gGy7VuqK6wE1+1DOCOWy4RMeaV69ZHMP11tQKZvZSip1yTgrKCMZzEMcCL/bKfHvSfDHx+iQ==",
"dependencies": { "dependencies": {
"real-require": "^0.2.0" "real-require": "^0.2.0"
} }
@ -1060,9 +1089,9 @@
} }
}, },
"node_modules/typescript": { "node_modules/typescript": {
"version": "4.8.2", "version": "4.8.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz",
"integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==",
"dev": true, "dev": true,
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",
@ -1088,6 +1117,11 @@
"punycode": "^2.1.0" "punycode": "^2.1.0"
} }
}, },
"node_modules/w3c-keyname": {
"version": "2.2.6",
"resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.6.tgz",
"integrity": "sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg=="
},
"node_modules/wrappy": { "node_modules/wrappy": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@ -1120,6 +1154,76 @@
} }
}, },
"dependencies": { "dependencies": {
"@codemirror/autocomplete": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.2.0.tgz",
"integrity": "sha512-yNCm2CEE4kE4L2Sf7WeyCej1Q3951ccaCWfomrlBkoERKCss+TzuEeqGe5VnAJTEybLy1yzf1BdMUY/988bfpg==",
"requires": {
"@codemirror/language": "^6.0.0",
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
"@lezer/common": "^1.0.0"
}
},
"@codemirror/commands": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.1.0.tgz",
"integrity": "sha512-qCj2YqmbBjj0P1iumnlL5lBqZvJPzT+t2UvgjcaXErp5ZvMqFRVgQyrEfdXX6SX5UcvcHKBjXqno+MkUp0aYvQ==",
"requires": {
"@codemirror/language": "^6.0.0",
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
"@lezer/common": "^1.0.0"
}
},
"@codemirror/language": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.2.1.tgz",
"integrity": "sha512-MC3svxuvIj0MRpFlGHxLS6vPyIdbTr2KKPEW46kCoCXw2ktb4NTkpkPBI/lSP/FoNXLCBJ0mrnUi1OoZxtpW1Q==",
"requires": {
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
"@lezer/common": "^1.0.0",
"@lezer/highlight": "^1.0.0",
"@lezer/lr": "^1.0.0",
"style-mod": "^4.0.0"
}
},
"@codemirror/lint": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.0.0.tgz",
"integrity": "sha512-nUUXcJW1Xp54kNs+a1ToPLK8MadO0rMTnJB8Zk4Z8gBdrN0kqV7uvUraU/T2yqg+grDNR38Vmy/MrhQN/RgwiA==",
"requires": {
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
"crelt": "^1.0.5"
}
},
"@codemirror/search": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.2.0.tgz",
"integrity": "sha512-FVhpUvPFUJe8lg2EQJTTcF4RNI9d/OC3PVitvOfhv5OuY7ZgtMfJl22o5eMkzOEsUY2Wxe7BKGLpe2UI5Wq3PQ==",
"requires": {
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
"crelt": "^1.0.5"
}
},
"@codemirror/state": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.1.1.tgz",
"integrity": "sha512-2s+aXsxmAwnR3Rd+JDHPG/1lw0YsA9PEwl7Re88gHJHGfxyfEzKBmsN4rr53RyPIR4lzbbhJX0DCq0WlqlBIRw=="
},
"@codemirror/view": {
"version": "6.2.3",
"resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.2.3.tgz",
"integrity": "sha512-cgN9gWS9+kv9+eOgVJWMrGUk4EwYKBZpuFYvxIlu4CmMye3+U+gMzuZhBgtPDOCbCp30hxFIOO0MENhGfnaC/g==",
"requires": {
"@codemirror/state": "^6.0.0",
"style-mod": "^4.0.0",
"w3c-keyname": "^2.2.4"
}
},
"@esbuild/linux-loong64": { "@esbuild/linux-loong64": {
"version": "0.15.7", "version": "0.15.7",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.7.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.7.tgz",
@ -1182,79 +1286,35 @@
"undici": "^5.5.1" "undici": "^5.5.1"
} }
}, },
"@lexical/clipboard": { "@lezer/common": {
"version": "0.4.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/@lexical/clipboard/-/clipboard-0.4.1.tgz", "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.0.1.tgz",
"integrity": "sha512-/BHeh+LaYhNbBbzNcVPcYgSZtNp6HT5z/iHFKJMfhikE+4KKFf3DbLDO5b92AUDyT3s8QQC04Na5ZeRUbK/Jzw==", "integrity": "sha512-8TR5++Q/F//tpDsLd5zkrvEX5xxeemafEaek7mUp7Y+bI8cKQXdSqhzTOBaOogETcMOVr0pT3BBPXp13477ciw=="
"peer": true, },
"@lezer/generator": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@lezer/generator/-/generator-1.1.1.tgz",
"integrity": "sha512-GrB5EwOn09yf5YfDk6TcspHcF7PQZP83665moY5VmOURwCmNOx+Qit3mwp7W/EsGpqd4PPRioxNkYwYZii69cw==",
"dev": true,
"requires": { "requires": {
"@lexical/html": "0.4.1", "@lezer/common": "^1.0.0",
"@lexical/list": "0.4.1", "@lezer/lr": "^1.0.0"
"@lexical/selection": "0.4.1",
"@lexical/utils": "0.4.1"
} }
}, },
"@lexical/history": { "@lezer/highlight": {
"version": "0.4.1", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/@lexical/history/-/history-0.4.1.tgz", "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.0.0.tgz",
"integrity": "sha512-n7KUYqCN0jj+NmMrT0bGjbSwn5x7EyDYhw9eghm69/fgHI/qHSJDQUQXa2ep4/0y4kPzYafVZSMrBDYXBxWqmw==", "integrity": "sha512-nsCnNtim90UKsB5YxoX65v3GEIw3iCHw9RM2DtdgkiqAbKh9pCdvi8AWNwkYf10Lu6fxNhXPpkpHbW6mihhvJA==",
"requires": { "requires": {
"@lexical/utils": "0.4.1" "@lezer/common": "^1.0.0"
} }
}, },
"@lexical/html": { "@lezer/lr": {
"version": "0.4.1", "version": "1.2.3",
"resolved": "https://registry.npmjs.org/@lexical/html/-/html-0.4.1.tgz", "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.2.3.tgz",
"integrity": "sha512-nErgYUtghdrVTPZLB7Ad7U1m3SBxEZvPeW4FH4COFLCeTIVMEG4dg0PhURCk28xNAkEHszd4kQ3XFDRB5muOiQ==", "integrity": "sha512-qpB7rBzH8f6Mzjv2AVZRahcm+2Cf7nbIH++uXbvVOL1yIRvVWQ3HAM/saeBLCyz/togB7LGo76qdJYL1uKQlqA==",
"peer": true,
"requires": { "requires": {
"@lexical/selection": "0.4.1" "@lezer/common": "^1.0.0"
}
},
"@lexical/link": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@lexical/link/-/link-0.4.1.tgz",
"integrity": "sha512-566lQymmuBe3Y7UDyaaTs+VDlElbu1WhnjT9lVDk0BXag7MA8tv/f60XptWnTK1pv/Dobm/CyLmyLae55OuflQ==",
"requires": {
"@lexical/utils": "0.4.1"
}
},
"@lexical/list": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@lexical/list/-/list-0.4.1.tgz",
"integrity": "sha512-dP6i18qm1UhUoG6FvqLMn7hoj4htE0jYcmMPYqFyH+f1ir9Ybvr87pV3aFhqH6hdHjQ5tMyM0kURSL1t89GesQ==",
"requires": {
"@lexical/utils": "0.4.1"
}
},
"@lexical/rich-text": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@lexical/rich-text/-/rich-text-0.4.1.tgz",
"integrity": "sha512-EI4ul3y1hqMp0VS/4D8aOyR41ysz1KaYgkm6PyrRXEMyK8uKmVubJP83RkOU2fWkTVtdrMjM6aeT1qX849LetA==",
"requires": {}
},
"@lexical/selection": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@lexical/selection/-/selection-0.4.1.tgz",
"integrity": "sha512-lrPaBtdWYp5FGpLA/mw8vVxQx8XM/GGVXFGam68B7mgMbY9xxKy3/MtvS94J+oRPtzNHEW3SyhkDEm9356r73g==",
"peer": true,
"requires": {}
},
"@lexical/table": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@lexical/table/-/table-0.4.1.tgz",
"integrity": "sha512-1BRLB+cYpqXSk0IHk3uHI1Fa6H4rnQ5pySDm+7HSyShjAzQSMBt0BWoX9B0TW/vXysl3p5+vcnU8mGjGyCA0Lg==",
"requires": {
"@lexical/utils": "0.4.1"
}
},
"@lexical/utils": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@lexical/utils/-/utils-0.4.1.tgz",
"integrity": "sha512-OUYS7qpu1oHv9vhUGhL60ow5gbyqLG449XGFZrzaKUGnz1iWU/rXP8nEljoqdtai3rg4t0Ahxcbe9cVIubK3hQ==",
"requires": {
"@lexical/list": "0.4.1",
"@lexical/table": "0.4.1"
} }
}, },
"@tsconfig/node18-strictest-esm": { "@tsconfig/node18-strictest-esm": {
@ -1263,9 +1323,9 @@
"integrity": "sha512-cHzmAqw7CMbyqROWeBgVhard3F2V6zxOSJnQ4E6SJWruXD5ypuP9/QKekwBdfXQ4oUTaizIICKIwb+v3v33t0w==" "integrity": "sha512-cHzmAqw7CMbyqROWeBgVhard3F2V6zxOSJnQ4E6SJWruXD5ypuP9/QKekwBdfXQ4oUTaizIICKIwb+v3v33t0w=="
}, },
"@types/node": { "@types/node": {
"version": "18.7.15", "version": "18.7.18",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.15.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.18.tgz",
"integrity": "sha512-XnjpaI8Bgc3eBag2Aw4t2Uj/49lLBSStHWfqKvIuXD7FIrZyMLWp8KuAFHAqxMZYTF9l08N1ctUn9YNybZJVmQ==", "integrity": "sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==",
"dev": true "dev": true
}, },
"abort-controller": { "abort-controller": {
@ -1320,15 +1380,34 @@
"fastq": "^1.6.1" "fastq": "^1.6.1"
} }
}, },
"codemirror": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz",
"integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==",
"requires": {
"@codemirror/autocomplete": "^6.0.0",
"@codemirror/commands": "^6.0.0",
"@codemirror/language": "^6.0.0",
"@codemirror/lint": "^6.0.0",
"@codemirror/search": "^6.0.0",
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0"
}
},
"cookie": { "cookie": {
"version": "0.5.0", "version": "0.5.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
"integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
}, },
"crelt": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.5.tgz",
"integrity": "sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA=="
},
"csstype": { "csstype": {
"version": "3.1.0", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
"integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
}, },
"debug": { "debug": {
"version": "4.3.4", "version": "4.3.4",
@ -1511,9 +1590,9 @@
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
}, },
"fast-json-stringify": { "fast-json-stringify": {
"version": "5.2.0", "version": "5.3.0",
"resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.2.0.tgz", "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.3.0.tgz",
"integrity": "sha512-u5jtrcAK9RINW15iuDKnsuuhqmqre4AmDMp3crRTjUMdAuHMpQUt3IfoMm5wlJm59b74PcajqOl3SjgnC5FPmw==", "integrity": "sha512-jTlJV/VAaYMtYl5G41uEL8UQT7/fT5W6LuxKxIS/Lpm6bXxmR+reF3m3WgP/WwxXybH61O+xhWK7n9uAsY6zGA==",
"requires": { "requires": {
"@fastify/deepmerge": "^1.0.0", "@fastify/deepmerge": "^1.0.0",
"ajv": "^8.10.0", "ajv": "^8.10.0",
@ -1534,9 +1613,9 @@
"integrity": "sha512-qKRta6N7BWEFVlyonVY/V+BMLgFqktCUV0QjT259ekAIlbVrMaFnFLxJ4s/JPl4tou56S1BzPufI60bLe29fHA==" "integrity": "sha512-qKRta6N7BWEFVlyonVY/V+BMLgFqktCUV0QjT259ekAIlbVrMaFnFLxJ4s/JPl4tou56S1BzPufI60bLe29fHA=="
}, },
"fastify": { "fastify": {
"version": "4.5.3", "version": "4.6.0",
"resolved": "https://registry.npmjs.org/fastify/-/fastify-4.5.3.tgz", "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.6.0.tgz",
"integrity": "sha512-Q8Zvkmg7GnioMCDX1jT2Q7iRqjywlnDZ1735D2Ipf7ashCM/3/bqPKv2Jo1ZF2iDExct2eP1C/tdhcj0GG/OuQ==", "integrity": "sha512-EgWUvcJNvsql1R4g5/ce866BYk8SgJKjGh6AI0e9BR+NidP7hqX1ObiwHEVbkR15A9XwMtkKd3TE/tFZCjsqnA==",
"requires": { "requires": {
"@fastify/ajv-compiler": "^3.1.1", "@fastify/ajv-compiler": "^3.1.1",
"@fastify/error": "^3.0.0", "@fastify/error": "^3.0.0",
@ -1568,9 +1647,9 @@
} }
}, },
"find-my-way": { "find-my-way": {
"version": "7.0.1", "version": "7.1.0",
"resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-7.0.1.tgz", "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-7.1.0.tgz",
"integrity": "sha512-w05SaOPg54KqBof/RDA+75n1R48V7ZZNPL3nR17jJJs5dgZpR3ivfrMWOyx7BVFQgCLhYRG05hfgFCohYvSUXA==", "integrity": "sha512-yQYjxgcZmo6SQ1bRPr9ToMcCyzBOZ3L1cbDYTNCHRq7XfQPLSDhbywUAsQCLWlL3uuOUAKvTxeJ2V2i+Z9YqGA==",
"requires": { "requires": {
"fast-deep-equal": "^3.1.3", "fast-deep-equal": "^3.1.3",
"safe-regex2": "^2.0.0" "safe-regex2": "^2.0.0"
@ -1587,24 +1666,19 @@
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
}, },
"jose": { "jose": {
"version": "4.9.2", "version": "4.9.3",
"resolved": "https://registry.npmjs.org/jose/-/jose-4.9.2.tgz", "resolved": "https://registry.npmjs.org/jose/-/jose-4.9.3.tgz",
"integrity": "sha512-EqKvu2PqJCD3Jrg3PvcYZVS7D21qMVLSYMDAFcOdGUEOpJSLNtJO7NjLANvu3SYHVl6pdP2ff7ve6EZW2nX7Nw==" "integrity": "sha512-f8E/z+T3Q0kA9txzH2DKvH/ds2uggcw0m3vVPSB9HrSkrQ7mojjifvS7aR8cw+lQl2Fcmx9npwaHpM/M3GD8UQ=="
}, },
"json-schema-traverse": { "json-schema-traverse": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
}, },
"lexical": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/lexical/-/lexical-0.4.1.tgz",
"integrity": "sha512-EXcLh/6LbEuwqXlnPkk8MXZXO16yBzznFqklKva91DF+KU8utX2PLoeRSOtWC8P2YbRdiGQewwKjUVeXqxxOaQ=="
},
"light-my-request": { "light-my-request": {
"version": "5.5.1", "version": "5.6.1",
"resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.5.1.tgz", "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.6.1.tgz",
"integrity": "sha512-Zd4oZjF7axSyc5rYQsbB0qsgY4LFFviZSbEywxf7Vi5UE3y3c7tYF/GeheQjBNYY+pQ55BF8UGGJTjneoxOS1w==", "integrity": "sha512-sbJnC1UBRivi9L1kICr3CESb82pNiPNB3TvtdIrZZqW0Qh8uDXvoywMmWKZlihDcmw952CMICCzM+54LDf+E+g==",
"requires": { "requires": {
"cookie": "^0.5.0", "cookie": "^0.5.0",
"process-warning": "^2.0.0", "process-warning": "^2.0.0",
@ -1788,9 +1862,9 @@
"integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==" "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ=="
}, },
"solid-js": { "solid-js": {
"version": "1.5.4", "version": "1.5.5",
"resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.5.4.tgz", "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.5.5.tgz",
"integrity": "sha512-+65anSHhH27htkhP5LuC912fviMIckgc7/yN+WWrKhS9Kp3dvtDNl5/m4GWX1lpCvcubjShqJjGt16HET5z5Ig==", "integrity": "sha512-5gXszD7ekhe59IyMa3+AvREJnBWVjwaeC7afL8C3UNPj5gQQCrsMs/cXwI3JRpj6D+3TESTyuQ2sY++m4cYiTg==",
"requires": { "requires": {
"csstype": "^3.1.0" "csstype": "^3.1.0"
} }
@ -1808,10 +1882,15 @@
"resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz",
"integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==" "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ=="
}, },
"style-mod": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz",
"integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw=="
},
"thread-stream": { "thread-stream": {
"version": "2.1.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.1.0.tgz", "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.2.0.tgz",
"integrity": "sha512-5+Pf2Ya31CsZyIPYYkhINzdTZ3guL+jHq7D8lkBybgGcSQIKDbid3NJku3SpCKeE/gACWAccDA/rH2B6doC5aA==", "integrity": "sha512-rUkv4/fnb4rqy/gGy7VuqK6wE1+1DOCOWy4RMeaV69ZHMP11tQKZvZSip1yTgrKCMZzEMcCL/bKfHvSfDHx+iQ==",
"requires": { "requires": {
"real-require": "^0.2.0" "real-require": "^0.2.0"
} }
@ -1822,9 +1901,9 @@
"integrity": "sha512-ApGvZ6vVvTNdsmt676grvCkUCGwzG9IqXma5Z07xJgiC5L7akUMof5U8G2JTI9Rz/ovtVhJBlY6mNhEvtjzOIg==" "integrity": "sha512-ApGvZ6vVvTNdsmt676grvCkUCGwzG9IqXma5Z07xJgiC5L7akUMof5U8G2JTI9Rz/ovtVhJBlY6mNhEvtjzOIg=="
}, },
"typescript": { "typescript": {
"version": "4.8.2", "version": "4.8.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz",
"integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==",
"dev": true "dev": true
}, },
"undici": { "undici": {
@ -1840,6 +1919,11 @@
"punycode": "^2.1.0" "punycode": "^2.1.0"
} }
}, },
"w3c-keyname": {
"version": "2.2.6",
"resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.6.tgz",
"integrity": "sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg=="
},
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",

View file

@ -3,6 +3,7 @@
"version": "0.0.0", "version": "0.0.0",
"private": true, "private": true,
"scripts": { "scripts": {
"build": "lezer-generator --noTerms --output syntax/quot.grammar.js syntax/quot.grammar",
"test": "tsc --noEmit", "test": "tsc --noEmit",
"start": "TS_NODE_DEV=true node -r esbuild-register main.ts" "start": "TS_NODE_DEV=true node -r esbuild-register main.ts"
}, },
@ -11,21 +12,24 @@
}, },
"packageManager": "npm@8.19.0", "packageManager": "npm@8.19.0",
"dependencies": { "dependencies": {
"@codemirror/commands": "^6.1.0",
"@codemirror/language": "^6.2.1",
"@codemirror/view": "^6.2.3",
"@exampledev/new.css": "^1.1.3", "@exampledev/new.css": "^1.1.3",
"@fastify/http-proxy": "^8.2.2", "@fastify/http-proxy": "^8.2.2",
"@lexical/history": "^0.4.1", "@lezer/highlight": "^1.0.0",
"@lexical/link": "^0.4.1", "@lezer/lr": "^1.2.3",
"@lexical/rich-text": "^0.4.1",
"@tsconfig/node18-strictest-esm": "^1.0.1", "@tsconfig/node18-strictest-esm": "^1.0.1",
"codemirror": "^6.0.1",
"esbuild": "^0.15.7", "esbuild": "^0.15.7",
"esbuild-register": "^3.3.3", "esbuild-register": "^3.3.3",
"fastify": "^4.5.3", "fastify": "^4.5.3",
"jose": "^4.9.2", "jose": "^4.9.2",
"lexical": "^0.4.1",
"openid-client": "^5.1.9", "openid-client": "^5.1.9",
"solid-js": "^1.5.4" "solid-js": "^1.5.4"
}, },
"devDependencies": { "devDependencies": {
"@lezer/generator": "^1.1.1",
"@types/node": "^18.7.15", "@types/node": "^18.7.15",
"typescript": "^4.8.2" "typescript": "^4.8.2"
} }

15
app/syntax/quot.grammar Normal file
View file

@ -0,0 +1,15 @@
@top Document { heading line* }
heading { Heading "\n" }
line { Indent* (AutoLink | Word) (AutoLink | Word | Spaces)* "\n" }
@tokens {
space { $[ \t] }
letter { ![ \t\n]+ }
Heading { letter+ }
Indent { space }
Spaces { space+ }
AutoLink { ("http" | "https") "://" letter+ }
Word { letter+ }
@precedence { AutoLink, Word }
}

View file

@ -0,0 +1,16 @@
// This file was generated by lezer-generator. You probably shouldn't edit it.
import {LRParser} from "@lezer/lr"
export const parser = LRParser.deserialize({
version: 14,
states: "#`OQOPOOOVOPOOQ[OQOOOOOO'#Cd'#CdOgOQO'#ChOrOSO'#ChOOOO'#Cc'#CcQ[OQOOOOOO-E6b-E6bO!QOSO,59SOOOO'#Ce'#CeO!QOSO,59SOOOO,59S,59SOOOO-E6a-E6aO!`OSO1G.nOOOO1G.n1G.nOOOO-E6c-E6cOOOO7+$Y7+$Y",
stateData: "!q~OQPO~OZQO~ORROSTOTTO~ORROSXOTXO~OSYOTYOUYOZ[O~OSYOTYOUYOZ_O~OSYOTYOUYOZaO~OST~",
goto: "y]PPPPPPP^dkPPuQVQR]VSSQVRWSQZTQ^XT`Z^TUQV",
nodeNames: "⚠ Document Heading Indent AutoLink Word Spaces",
maxTerm: 12,
skippedNodes: [0],
repeatNodeCount: 3,
tokenData: "&t~RWOXkXY{YZ!eZpkpq{q#[k#[#]!j#]~kVrRQPTUOXkZpkq~kU!SQRQUSXY!Ypq!YS!_QUSXY!Ypq!Y~!jOZ~V!qTQPTUOXkZpkq#hk#h#i#Q#i~kV#XTQPTUOXkZpkq#hk#h#i#h#i~kV#oTQPTUOXkZpkq#dk#d#e$O#e~kV$VVQPTUOXkZpkq![k![!]$l!]#gk#g#h&^#h~kV$sTQPTUOXkZpkq!Pk!P!Q%S!Q~kV%ZTQPTUOXkZpkq!Pk!P!Q%j!Q~kV%qRQPTUOX%zZp%zq~%zV&TRQPSUTUOX%zZp%zq~%zV&eTQPTUOXkZpkq![k![!]$l!]~k",
tokenizers: [0, 1, 2],
topRules: {"Document":[0,1]},
tokenPrec: 76
})

42
app/syntax/quot.ts Normal file
View file

@ -0,0 +1,42 @@
import { styleTags, tags as t } from "@lezer/highlight";
import {
HighlightStyle,
LRLanguage,
syntaxHighlighting,
} from "@codemirror/language";
import { parser } from "./quot.grammar.js";
export const quotLanguage = LRLanguage.define({
parser: parser.configure({
props: [
styleTags({
Heading: t.heading,
Indent: t.separator,
AutoLink: t.link,
Spaces: t.content,
}),
],
}),
});
export const quotHighlighting = syntaxHighlighting(
HighlightStyle.define([
{
tag: t.heading,
fontWeight: "bold",
fontSize: "1.25em",
marginBlockEnd: "0.5em",
},
{
tag: t.separator,
letterSpacing: "1.5em",
},
{
tag: t.link,
class: "auto-link",
},
{
tag: t.content,
},
])
);

View file

@ -1,6 +1,5 @@
.editor { .editor {
padding: 0.75rem; padding: 0.75rem;
font-size: 1rem;
box-sizing: border-box; box-sizing: border-box;
background-color: var(--nc-bg-2); background-color: var(--nc-bg-2);
color: var(--nc-tx-2); color: var(--nc-tx-2);
@ -10,15 +9,29 @@
box-shadow: 0 1px var(--nc-bg-3); box-shadow: 0 1px var(--nc-bg-3);
} }
.editor :is(h1, h2, h3, h4, h5, h6) { .editor .cm-editor.cm-focused {
padding: unset; outline: unset;
font-size: 1.25rem;
} }
.editor p { .editor .cm-content {
margin: unset; font-family: "sans-serif";
font-size: 1rem;
} }
.editor a:hover { .editor .cm-line {
display: flex;
}
.editor .auto-link:hover {
cursor: pointer;
}
.editor .auto-link {
color: var(--nc-lk-1);
text-decoration: underline;
}
.editor .auto-link:hover {
color: var(--nc-lk-2);
cursor: pointer; cursor: pointer;
} }

View file

@ -1,27 +1,11 @@
import {
$createParagraphNode,
$createTextNode,
$getRoot,
$isElementNode,
createEditor,
} from "lexical";
import { registerHistory, createEmptyHistoryState } from "@lexical/history";
import {
$createHeadingNode,
HeadingNode,
registerRichText,
} from "@lexical/rich-text";
import { $createAutoLinkNode, AutoLinkNode } from "@lexical/link";
import { onCleanup, onMount } from "solid-js"; import { onCleanup, onMount } from "solid-js";
import { minimalSetup } from "codemirror";
import { emacsStyleKeymap, indentWithTab } from "@codemirror/commands";
import { indentUnit } from "@codemirror/language";
import { EditorView, keymap } from "@codemirror/view";
import type Pages from "../../protocol/pages"; import type Pages from "../../protocol/pages";
import "./editor.css"; import "./editor.css";
import { quotHighlighting, quotLanguage } from "../../syntax/quot";
const urlMatcher = /https?:\/\/[^\s]+/;
const editor = createEditor({ nodes: [HeadingNode, AutoLinkNode] });
function ref(el: HTMLElement) {
editor.setRootElement(el);
}
export default (props: { export default (props: {
id: number; id: number;
@ -29,36 +13,15 @@ export default (props: {
text: string; text: string;
onUpdatePage: (content: Pages.RequestContentPage) => void; onUpdatePage: (content: Pages.RequestContentPage) => void;
}) => { }) => {
const initialEditorState = () => { let ref: HTMLElement;
const root = $getRoot(); onMount(() => {
const [title, ...lines] = props.text.split("\n"); const view = new EditorView({
const titleNode = $createHeadingNode("h2"); doc: props.text,
titleNode.append($createTextNode(title)); selection: { anchor: props.text.length },
root.append(titleNode); parent: ref,
for (const line of lines) { extensions: [
const lineNode = $createParagraphNode(); EditorView.updateListener.of((update) => {
const indent = line.match(/^\s*/)?.[0]?.length ?? 0; if (!update.docChanged) return;
lineNode.setIndent(indent);
let text = line.slice(indent);
let match: RegExpMatchArray | null = null;
while ((match = text.match(urlMatcher))) {
const offset = text.slice(0, match.index!);
const input = match[0]!;
const link = $createAutoLinkNode(input);
link.append($createTextNode(match[0]));
lineNode.append($createTextNode(offset), link);
text = text.slice(offset.length + input.length);
}
lineNode.append($createTextNode(text));
root.append(lineNode);
}
};
onCleanup(registerRichText(editor, initialEditorState));
onCleanup(registerHistory(editor, createEmptyHistoryState(), 333));
onCleanup(
editor.registerUpdateListener(() =>
editor.update(() => {
const root = $getRoot();
const defaultTitle = new Date() const defaultTitle = new Date()
.toLocaleDateString(navigator.language, { .toLocaleDateString(navigator.language, {
year: "numeric", year: "numeric",
@ -66,33 +29,34 @@ export default (props: {
day: "2-digit", day: "2-digit",
}) })
.replaceAll("/", "-"); .replaceAll("/", "-");
const [titleNode, ...lineNodes] = root.getChildren(); const [heading, ...lines] = update.state.doc.toJSON();
const title = const title =
titleNode?.getTextContent().trim() || heading?.trim() || (lines.length === 0 ? "" : defaultTitle);
(lineNodes.length === 0 ? "" : defaultTitle);
const lines = lineNodes.map((line) => {
const indent = $isElementNode(line) ? line.getIndent() : 0;
return `${" ".repeat(indent)}${line.getTextContent()}`;
});
const text = [title, ...lines].join("\n"); const text = [title, ...lines].join("\n");
if (props.text !== text) {
props.onUpdatePage({ id: props.id, title, text }); props.onUpdatePage({ id: props.id, title, text });
}),
EditorView.lineWrapping,
indentUnit.of(" "),
keymap.of([indentWithTab, ...emacsStyleKeymap]),
minimalSetup,
quotLanguage,
quotHighlighting,
],
});
ref.addEventListener("click", (e) => {
if (!(e.target instanceof HTMLElement)) return;
if (e.target.classList.contains("auto-link") && e.target.textContent) {
window.open(e.target.textContent, "_blank", "noreferrer");
} }
}) });
) onCleanup(() => view.destroy());
); view.focus();
onMount(() => editor.focus()); });
return ( return (
<article <article
ref={ref} ref={(el) => (ref = el)}
onclick={(e) => { id={props.id.toString(16)}
const el = e.target.parentElement;
if (el instanceof HTMLAnchorElement) {
window.open(el.href, "_blank", "noreferrer");
}
}}
class="editor" class="editor"
contenteditable
/> />
); );
}; };