mirror of
https://github.com/SteamDeckHomebrew/decky-loader.git
synced 2026-06-17 16:57:50 +00:00
basic patch notes viewer, lazy-load settings and store, build frontend as esmodule, add lazy-loaded react-markdown, backend changes to accomodate ESModule frontend
This commit is contained in:
+2
-1
@@ -18,6 +18,7 @@ user = None
|
|||||||
group = None
|
group = None
|
||||||
|
|
||||||
assets_regex = re.compile("^/plugins/.*/assets/.*")
|
assets_regex = re.compile("^/plugins/.*/assets/.*")
|
||||||
|
frontend_regex = re.compile("^/frontend/.*")
|
||||||
|
|
||||||
def get_ssl_context():
|
def get_ssl_context():
|
||||||
return ssl_ctx
|
return ssl_ctx
|
||||||
@@ -27,7 +28,7 @@ def get_csrf_token():
|
|||||||
|
|
||||||
@middleware
|
@middleware
|
||||||
async def csrf_middleware(request, handler):
|
async def csrf_middleware(request, handler):
|
||||||
if str(request.method) == "OPTIONS" or request.headers.get('Authentication') == csrf_token or str(request.rel_url) == "/auth/token" or str(request.rel_url).startswith("/plugins/load_main/") or str(request.rel_url).startswith("/static/") or str(request.rel_url).startswith("/legacy/") or str(request.rel_url).startswith("/steam_resource/") or assets_regex.match(str(request.rel_url)):
|
if str(request.method) == "OPTIONS" or request.headers.get('Authentication') == csrf_token or str(request.rel_url) == "/auth/token" or str(request.rel_url).startswith("/plugins/load_main/") or str(request.rel_url).startswith("/static/") or str(request.rel_url).startswith("/legacy/") or str(request.rel_url).startswith("/steam_resource/") or assets_regex.match(str(request.rel_url)) or frontend_regex.match(str(request.rel_url)):
|
||||||
return await handler(request)
|
return await handler(request)
|
||||||
return Response(text='Forbidden', status='403')
|
return Response(text='Forbidden', status='403')
|
||||||
|
|
||||||
|
|||||||
+10
-4
@@ -1,4 +1,4 @@
|
|||||||
from asyncio import Queue
|
from asyncio import Queue, sleep
|
||||||
from json.decoder import JSONDecodeError
|
from json.decoder import JSONDecodeError
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
from os import listdir, path
|
from os import listdir, path
|
||||||
@@ -75,10 +75,11 @@ class Loader:
|
|||||||
self.loop.create_task(self.handle_reloads())
|
self.loop.create_task(self.handle_reloads())
|
||||||
|
|
||||||
server_instance.add_routes([
|
server_instance.add_routes([
|
||||||
|
web.get("/frontend/{path:.*}", self.handle_frontend_assets),
|
||||||
web.get("/plugins", self.get_plugins),
|
web.get("/plugins", self.get_plugins),
|
||||||
web.get("/plugins/{plugin_name}/frontend_bundle", self.handle_frontend_bundle),
|
web.get("/plugins/{plugin_name}/frontend_bundle", self.handle_frontend_bundle),
|
||||||
web.post("/plugins/{plugin_name}/methods/{method_name}", self.handle_plugin_method_call),
|
web.post("/plugins/{plugin_name}/methods/{method_name}", self.handle_plugin_method_call),
|
||||||
web.get("/plugins/{plugin_name}/assets/{path:.*}", self.handle_frontend_assets),
|
web.get("/plugins/{plugin_name}/assets/{path:.*}", self.handle_plugin_frontend_assets),
|
||||||
|
|
||||||
# The following is legacy plugin code.
|
# The following is legacy plugin code.
|
||||||
web.get("/plugins/load_main/{name}", self.load_plugin_main_view),
|
web.get("/plugins/load_main/{name}", self.load_plugin_main_view),
|
||||||
@@ -86,15 +87,20 @@ class Loader:
|
|||||||
web.get("/steam_resource/{path:.+}", self.get_steam_resource)
|
web.get("/steam_resource/{path:.+}", self.get_steam_resource)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
async def handle_frontend_assets(self, request):
|
||||||
|
file = path.join(path.dirname(__file__), "static", request.match_info["path"])
|
||||||
|
|
||||||
|
return web.FileResponse(file, headers={"Cache-Control": "no-cache"})
|
||||||
|
|
||||||
async def get_plugins(self, request):
|
async def get_plugins(self, request):
|
||||||
plugins = list(self.plugins.values())
|
plugins = list(self.plugins.values())
|
||||||
return web.json_response([{"name": str(i) if not i.legacy else "$LEGACY_"+str(i), "version": i.version} for i in plugins])
|
return web.json_response([{"name": str(i) if not i.legacy else "$LEGACY_"+str(i), "version": i.version} for i in plugins])
|
||||||
|
|
||||||
def handle_frontend_assets(self, request):
|
def handle_plugin_frontend_assets(self, request):
|
||||||
plugin = self.plugins[request.match_info["plugin_name"]]
|
plugin = self.plugins[request.match_info["plugin_name"]]
|
||||||
file = path.join(self.plugin_path, plugin.plugin_directory, "dist/assets", request.match_info["path"])
|
file = path.join(self.plugin_path, plugin.plugin_directory, "dist/assets", request.match_info["path"])
|
||||||
|
|
||||||
return web.FileResponse(file)
|
return web.FileResponse(file, headers={"Cache-Control": "no-cache"})
|
||||||
|
|
||||||
def handle_frontend_bundle(self, request):
|
def handle_frontend_bundle(self, request):
|
||||||
plugin = self.plugins[request.match_info["plugin_name"]]
|
plugin = self.plugins[request.match_info["plugin_name"]]
|
||||||
|
|||||||
+1
-1
@@ -112,7 +112,7 @@ class PluginManager:
|
|||||||
|
|
||||||
async def inject_javascript(self, request=None):
|
async def inject_javascript(self, request=None):
|
||||||
try:
|
try:
|
||||||
await inject_to_tab("SP", "try{window.deckyHasLoaded = true;(async()=>{while(!window.SP_REACT){await new Promise(r => setTimeout(r, 10))};" + open(path.join(path.dirname(__file__), "./static/plugin-loader.iife.js"), "r").read() + "})();}catch(e){console.error(e)}", True)
|
await inject_to_tab("SP", "try{window.deckyHasLoaded = true;(async()=>{while(!window.SP_REACT){await new Promise(r => setTimeout(r, 10))};await import('http://localhost:1337/frontend/index.js')})();}catch(e){console.error(e)}", True)
|
||||||
except:
|
except:
|
||||||
logger.info("Failed to inject JavaScript into tab")
|
logger.info("Failed to inject JavaScript into tab")
|
||||||
pass
|
pass
|
||||||
|
|||||||
+1
-3
@@ -29,9 +29,7 @@ class SettingsManager:
|
|||||||
dump(self.settings, file, indent=4)
|
dump(self.settings, file, indent=4)
|
||||||
|
|
||||||
def getSetting(self, key, default):
|
def getSetting(self, key, default):
|
||||||
if key in self.settings:
|
return self.settings.get(key, default)
|
||||||
return self.settings[key]
|
|
||||||
return default
|
|
||||||
|
|
||||||
def setSetting(self, key, value):
|
def setSetting(self, key, value):
|
||||||
self.settings[key] = value
|
self.settings[key] = value
|
||||||
|
|||||||
+4
-1
@@ -26,6 +26,7 @@ class Updater:
|
|||||||
"check_for_updates": self.check_for_updates
|
"check_for_updates": self.check_for_updates
|
||||||
}
|
}
|
||||||
self.remoteVer = None
|
self.remoteVer = None
|
||||||
|
self.allRemoteVers = None
|
||||||
try:
|
try:
|
||||||
with open(path.join(getcwd(), ".loader.version"), 'r') as version_file:
|
with open(path.join(getcwd(), ".loader.version"), 'r') as version_file:
|
||||||
self.localVer = version_file.readline().replace("\n", "")
|
self.localVer = version_file.readline().replace("\n", "")
|
||||||
@@ -59,15 +60,17 @@ class Updater:
|
|||||||
return {
|
return {
|
||||||
"current": self.localVer,
|
"current": self.localVer,
|
||||||
"remote": self.remoteVer,
|
"remote": self.remoteVer,
|
||||||
|
"all": self.allRemoteVers,
|
||||||
"updatable": self.localVer != None
|
"updatable": self.localVer != None
|
||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
return {"current": "unknown", "remote": self.remoteVer, "updatable": False}
|
return {"current": "unknown", "remote": self.remoteVer, "all": self.allRemoteVers, "updatable": False}
|
||||||
|
|
||||||
async def check_for_updates(self):
|
async def check_for_updates(self):
|
||||||
async with ClientSession() as web:
|
async with ClientSession() as web:
|
||||||
async with web.request("GET", "https://api.github.com/repos/SteamDeckHomebrew/decky-loader/releases", ssl=helpers.get_ssl_context()) as res:
|
async with web.request("GET", "https://api.github.com/repos/SteamDeckHomebrew/decky-loader/releases", ssl=helpers.get_ssl_context()) as res:
|
||||||
remoteVersions = await res.json()
|
remoteVersions = await res.json()
|
||||||
|
self.allRemoteVers = remoteVersions
|
||||||
self.remoteVer = next(filter(lambda ver: ver["prerelease"] and ver["tag_name"].startswith("v") and ver["tag_name"].find("-pre"), remoteVersions), None)
|
self.remoteVer = next(filter(lambda ver: ver["prerelease"] and ver["tag_name"].startswith("v") and ver["tag_name"].find("-pre"), remoteVersions), None)
|
||||||
logger.info("Updated remote version information")
|
logger.info("Updated remote version information")
|
||||||
tab = await get_tab("SP")
|
tab = await get_tab("SP")
|
||||||
|
|||||||
@@ -27,6 +27,8 @@
|
|||||||
"react": "16.14.0",
|
"react": "16.14.0",
|
||||||
"react-dom": "16.14.0",
|
"react-dom": "16.14.0",
|
||||||
"rollup": "^2.76.0",
|
"rollup": "^2.76.0",
|
||||||
|
"rollup-plugin-external-globals": "^0.6.1",
|
||||||
|
"rollup-plugin-polyfill-node": "^0.10.2",
|
||||||
"tslib": "^2.4.0",
|
"tslib": "^2.4.0",
|
||||||
"typescript": "^4.7.4"
|
"typescript": "^4.7.4"
|
||||||
},
|
},
|
||||||
@@ -37,7 +39,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"decky-frontend-lib": "^1.7.8",
|
"decky-frontend-lib": "^1.8.0",
|
||||||
"react-icons": "^4.4.0"
|
"react-icons": "^4.4.0",
|
||||||
|
"react-markdown": "^8.0.3",
|
||||||
|
"remark-gfm": "^3.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+708
-9
@@ -9,7 +9,7 @@ specifiers:
|
|||||||
'@types/react': 16.14.0
|
'@types/react': 16.14.0
|
||||||
'@types/react-router': 5.1.18
|
'@types/react-router': 5.1.18
|
||||||
'@types/webpack': ^5.28.0
|
'@types/webpack': ^5.28.0
|
||||||
decky-frontend-lib: ^1.7.8
|
decky-frontend-lib: ^1.8.0
|
||||||
husky: ^8.0.1
|
husky: ^8.0.1
|
||||||
import-sort-style-module: ^6.0.0
|
import-sort-style-module: ^6.0.0
|
||||||
inquirer: ^8.2.4
|
inquirer: ^8.2.4
|
||||||
@@ -18,13 +18,19 @@ specifiers:
|
|||||||
react: 16.14.0
|
react: 16.14.0
|
||||||
react-dom: 16.14.0
|
react-dom: 16.14.0
|
||||||
react-icons: ^4.4.0
|
react-icons: ^4.4.0
|
||||||
|
react-markdown: ^8.0.3
|
||||||
|
remark-gfm: ^3.0.1
|
||||||
rollup: ^2.76.0
|
rollup: ^2.76.0
|
||||||
|
rollup-plugin-external-globals: ^0.6.1
|
||||||
|
rollup-plugin-polyfill-node: ^0.10.2
|
||||||
tslib: ^2.4.0
|
tslib: ^2.4.0
|
||||||
typescript: ^4.7.4
|
typescript: ^4.7.4
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
decky-frontend-lib: 1.7.8
|
decky-frontend-lib: 1.8.0
|
||||||
react-icons: 4.4.0_react@16.14.0
|
react-icons: 4.4.0_react@16.14.0
|
||||||
|
react-markdown: 8.0.3_vshvapmxg47tngu7tvrsqpq55u
|
||||||
|
remark-gfm: 3.0.1
|
||||||
|
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@rollup/plugin-commonjs': 21.1.0_rollup@2.76.0
|
'@rollup/plugin-commonjs': 21.1.0_rollup@2.76.0
|
||||||
@@ -43,6 +49,8 @@ devDependencies:
|
|||||||
react: 16.14.0
|
react: 16.14.0
|
||||||
react-dom: 16.14.0_react@16.14.0
|
react-dom: 16.14.0_react@16.14.0
|
||||||
rollup: 2.76.0
|
rollup: 2.76.0
|
||||||
|
rollup-plugin-external-globals: 0.6.1_rollup@2.76.0
|
||||||
|
rollup-plugin-polyfill-node: 0.10.2_rollup@2.76.0
|
||||||
tslib: 2.4.0
|
tslib: 2.4.0
|
||||||
typescript: 4.7.4
|
typescript: 4.7.4
|
||||||
|
|
||||||
@@ -304,6 +312,17 @@ packages:
|
|||||||
rollup: 2.76.0
|
rollup: 2.76.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@rollup/plugin-inject/4.0.4_rollup@2.76.0:
|
||||||
|
resolution: {integrity: sha512-4pbcU4J/nS+zuHk+c+OL3WtmEQhqxlZ9uqfjQMQDOHOPld7PsCd8k5LWs8h5wjwJN7MgnAn768F2sDxEP4eNFQ==}
|
||||||
|
peerDependencies:
|
||||||
|
rollup: ^1.20.0 || ^2.0.0
|
||||||
|
dependencies:
|
||||||
|
'@rollup/pluginutils': 3.1.0_rollup@2.76.0
|
||||||
|
estree-walker: 2.0.2
|
||||||
|
magic-string: 0.25.9
|
||||||
|
rollup: 2.76.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@rollup/plugin-json/4.1.0_rollup@2.76.0:
|
/@rollup/plugin-json/4.1.0_rollup@2.76.0:
|
||||||
resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==}
|
resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -368,6 +387,20 @@ packages:
|
|||||||
rollup: 2.76.0
|
rollup: 2.76.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@rollup/pluginutils/4.2.1:
|
||||||
|
resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}
|
||||||
|
engines: {node: '>= 8.0.0'}
|
||||||
|
dependencies:
|
||||||
|
estree-walker: 2.0.2
|
||||||
|
picomatch: 2.3.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/@types/debug/4.1.7:
|
||||||
|
resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==}
|
||||||
|
dependencies:
|
||||||
|
'@types/ms': 0.7.31
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@types/eslint-scope/3.7.4:
|
/@types/eslint-scope/3.7.4:
|
||||||
resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==}
|
resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -394,6 +427,12 @@ packages:
|
|||||||
resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
|
resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@types/hast/2.3.4:
|
||||||
|
resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==}
|
||||||
|
dependencies:
|
||||||
|
'@types/unist': 2.0.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@types/history/4.7.11:
|
/@types/history/4.7.11:
|
||||||
resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==}
|
resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -402,13 +441,26 @@ packages:
|
|||||||
resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
|
resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@types/mdast/3.0.10:
|
||||||
|
resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==}
|
||||||
|
dependencies:
|
||||||
|
'@types/unist': 2.0.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@types/mdurl/1.0.2:
|
||||||
|
resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@types/ms/0.7.31:
|
||||||
|
resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@types/node/18.0.4:
|
/@types/node/18.0.4:
|
||||||
resolution: {integrity: sha512-M0+G6V0Y4YV8cqzHssZpaNCqvYwlCiulmm0PwpNLF55r/+cT8Ol42CHRU1SEaYFH2rTwiiE1aYg/2g2rrtGdPA==}
|
resolution: {integrity: sha512-M0+G6V0Y4YV8cqzHssZpaNCqvYwlCiulmm0PwpNLF55r/+cT8Ol42CHRU1SEaYFH2rTwiiE1aYg/2g2rrtGdPA==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/prop-types/15.7.5:
|
/@types/prop-types/15.7.5:
|
||||||
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
|
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@types/react-router/5.1.18:
|
/@types/react-router/5.1.18:
|
||||||
resolution: {integrity: sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==}
|
resolution: {integrity: sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==}
|
||||||
@@ -422,7 +474,6 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@types/prop-types': 15.7.5
|
'@types/prop-types': 15.7.5
|
||||||
csstype: 3.1.0
|
csstype: 3.1.0
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@types/resolve/1.17.1:
|
/@types/resolve/1.17.1:
|
||||||
resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==}
|
resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==}
|
||||||
@@ -430,6 +481,10 @@ packages:
|
|||||||
'@types/node': 18.0.4
|
'@types/node': 18.0.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@types/unist/2.0.6:
|
||||||
|
resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@types/webpack/5.28.0:
|
/@types/webpack/5.28.0:
|
||||||
resolution: {integrity: sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w==}
|
resolution: {integrity: sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -620,6 +675,10 @@ packages:
|
|||||||
sprintf-js: 1.0.3
|
sprintf-js: 1.0.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/bail/2.0.2:
|
||||||
|
resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/balanced-match/1.0.2:
|
/balanced-match/1.0.2:
|
||||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -693,6 +752,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-yy7XLWCubDobokgzudpkKux8e0UOOnLHE6mlNJBzT3lZJz6s5atSEzjoL+fsCPkI0G8MP5uVdDx1ur/fXEWkZA==}
|
resolution: {integrity: sha512-yy7XLWCubDobokgzudpkKux8e0UOOnLHE6mlNJBzT3lZJz6s5atSEzjoL+fsCPkI0G8MP5uVdDx1ur/fXEWkZA==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/ccount/2.0.1:
|
||||||
|
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/chalk/2.4.2:
|
/chalk/2.4.2:
|
||||||
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
|
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -710,6 +773,10 @@ packages:
|
|||||||
supports-color: 7.2.0
|
supports-color: 7.2.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/character-entities/2.0.2:
|
||||||
|
resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/chardet/0.7.0:
|
/chardet/0.7.0:
|
||||||
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
|
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -762,6 +829,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
|
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/comma-separated-tokens/2.0.2:
|
||||||
|
resolution: {integrity: sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/commander/2.20.3:
|
/commander/2.20.3:
|
||||||
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
|
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -792,7 +863,6 @@ packages:
|
|||||||
|
|
||||||
/csstype/3.1.0:
|
/csstype/3.1.0:
|
||||||
resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==}
|
resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/debug/4.3.4:
|
/debug/4.3.4:
|
||||||
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
|
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
|
||||||
@@ -804,14 +874,19 @@ packages:
|
|||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
ms: 2.1.2
|
ms: 2.1.2
|
||||||
dev: true
|
|
||||||
|
|
||||||
/decky-frontend-lib/1.7.8:
|
/decky-frontend-lib/1.8.0:
|
||||||
resolution: {integrity: sha512-CO6EJDxw/Eb6Ovng29IhZxC7SrlGT/iWMgFtKp7x3e7SVfwk9VHygyYBeVHaicj4n4LMgNE8iehh5k22Keyvbw==}
|
resolution: {integrity: sha512-ZPJdbkNI5d/d/19Hv97FVgFyMerYUzwXavYGv8euLMrbH9XuVM4KAx0mbKkO0SQUl75HKQ3LxsaCpA6QLDr9EA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
minimist: 1.2.6
|
minimist: 1.2.6
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/decode-named-character-reference/1.0.2:
|
||||||
|
resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
|
||||||
|
dependencies:
|
||||||
|
character-entities: 2.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
/deepmerge/4.2.2:
|
/deepmerge/4.2.2:
|
||||||
resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==}
|
resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@@ -823,11 +898,21 @@ packages:
|
|||||||
clone: 1.0.4
|
clone: 1.0.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/dequal/2.0.3:
|
||||||
|
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
|
||||||
|
engines: {node: '>=6'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/detect-newline/2.1.0:
|
/detect-newline/2.1.0:
|
||||||
resolution: {integrity: sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==}
|
resolution: {integrity: sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/diff/5.1.0:
|
||||||
|
resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==}
|
||||||
|
engines: {node: '>=0.3.1'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/electron-to-chromium/1.4.189:
|
/electron-to-chromium/1.4.189:
|
||||||
resolution: {integrity: sha512-dQ6Zn4ll2NofGtxPXaDfY2laIa6NyCQdqXYHdwH90GJQW0LpJJib0ZU/ERtbb0XkBEmUD2eJtagbOie3pdMiPg==}
|
resolution: {integrity: sha512-dQ6Zn4ll2NofGtxPXaDfY2laIa6NyCQdqXYHdwH90GJQW0LpJJib0ZU/ERtbb0XkBEmUD2eJtagbOie3pdMiPg==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -864,6 +949,11 @@ packages:
|
|||||||
engines: {node: '>=0.8.0'}
|
engines: {node: '>=0.8.0'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/escape-string-regexp/5.0.0:
|
||||||
|
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/eslint-scope/5.1.1:
|
/eslint-scope/5.1.1:
|
||||||
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
|
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
|
||||||
engines: {node: '>=8.0.0'}
|
engines: {node: '>=8.0.0'}
|
||||||
@@ -908,6 +998,10 @@ packages:
|
|||||||
engines: {node: '>=0.8.x'}
|
engines: {node: '>=0.8.x'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/extend/3.0.2:
|
||||||
|
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/external-editor/3.1.0:
|
/external-editor/3.1.0:
|
||||||
resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
|
resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -1002,6 +1096,10 @@ packages:
|
|||||||
function-bind: 1.1.1
|
function-bind: 1.1.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/hast-util-whitespace/2.0.0:
|
||||||
|
resolution: {integrity: sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/husky/8.0.1:
|
/husky/8.0.1:
|
||||||
resolution: {integrity: sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==}
|
resolution: {integrity: sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
@@ -1087,6 +1185,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/inline-style-parser/0.1.1:
|
||||||
|
resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/inquirer/8.2.4:
|
/inquirer/8.2.4:
|
||||||
resolution: {integrity: sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==}
|
resolution: {integrity: sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==}
|
||||||
engines: {node: '>=12.0.0'}
|
engines: {node: '>=12.0.0'}
|
||||||
@@ -1112,6 +1214,11 @@ packages:
|
|||||||
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
|
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/is-buffer/2.0.5:
|
||||||
|
resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/is-builtin-module/3.1.0:
|
/is-builtin-module/3.1.0:
|
||||||
resolution: {integrity: sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==}
|
resolution: {integrity: sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@@ -1144,6 +1251,11 @@ packages:
|
|||||||
resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
|
resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/is-plain-obj/4.1.0:
|
||||||
|
resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/is-reference/1.2.1:
|
/is-reference/1.2.1:
|
||||||
resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
|
resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -1199,6 +1311,11 @@ packages:
|
|||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/kleur/4.1.5:
|
||||||
|
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
|
||||||
|
engines: {node: '>=6'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/loader-runner/4.3.0:
|
/loader-runner/4.3.0:
|
||||||
resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
|
resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
|
||||||
engines: {node: '>=6.11.5'}
|
engines: {node: '>=6.11.5'}
|
||||||
@@ -1216,6 +1333,10 @@ packages:
|
|||||||
is-unicode-supported: 0.1.0
|
is-unicode-supported: 0.1.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/longest-streak/3.0.1:
|
||||||
|
resolution: {integrity: sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/loose-envify/1.4.0:
|
/loose-envify/1.4.0:
|
||||||
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
|
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -1228,10 +1349,389 @@ packages:
|
|||||||
sourcemap-codec: 1.4.8
|
sourcemap-codec: 1.4.8
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/markdown-table/3.0.2:
|
||||||
|
resolution: {integrity: sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mdast-util-definitions/5.1.1:
|
||||||
|
resolution: {integrity: sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ==}
|
||||||
|
dependencies:
|
||||||
|
'@types/mdast': 3.0.10
|
||||||
|
'@types/unist': 2.0.6
|
||||||
|
unist-util-visit: 4.1.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mdast-util-find-and-replace/2.2.1:
|
||||||
|
resolution: {integrity: sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw==}
|
||||||
|
dependencies:
|
||||||
|
escape-string-regexp: 5.0.0
|
||||||
|
unist-util-is: 5.1.1
|
||||||
|
unist-util-visit-parents: 5.1.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mdast-util-from-markdown/1.2.0:
|
||||||
|
resolution: {integrity: sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==}
|
||||||
|
dependencies:
|
||||||
|
'@types/mdast': 3.0.10
|
||||||
|
'@types/unist': 2.0.6
|
||||||
|
decode-named-character-reference: 1.0.2
|
||||||
|
mdast-util-to-string: 3.1.0
|
||||||
|
micromark: 3.0.10
|
||||||
|
micromark-util-decode-numeric-character-reference: 1.0.0
|
||||||
|
micromark-util-decode-string: 1.0.2
|
||||||
|
micromark-util-normalize-identifier: 1.0.0
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
unist-util-stringify-position: 3.0.2
|
||||||
|
uvu: 0.5.6
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mdast-util-gfm-autolink-literal/1.0.2:
|
||||||
|
resolution: {integrity: sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==}
|
||||||
|
dependencies:
|
||||||
|
'@types/mdast': 3.0.10
|
||||||
|
ccount: 2.0.1
|
||||||
|
mdast-util-find-and-replace: 2.2.1
|
||||||
|
micromark-util-character: 1.1.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mdast-util-gfm-footnote/1.0.1:
|
||||||
|
resolution: {integrity: sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==}
|
||||||
|
dependencies:
|
||||||
|
'@types/mdast': 3.0.10
|
||||||
|
mdast-util-to-markdown: 1.3.0
|
||||||
|
micromark-util-normalize-identifier: 1.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mdast-util-gfm-strikethrough/1.0.1:
|
||||||
|
resolution: {integrity: sha512-zKJbEPe+JP6EUv0mZ0tQUyLQOC+FADt0bARldONot/nefuISkaZFlmVK4tU6JgfyZGrky02m/I6PmehgAgZgqg==}
|
||||||
|
dependencies:
|
||||||
|
'@types/mdast': 3.0.10
|
||||||
|
mdast-util-to-markdown: 1.3.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mdast-util-gfm-table/1.0.4:
|
||||||
|
resolution: {integrity: sha512-aEuoPwZyP4iIMkf2cLWXxx3EQ6Bmh2yKy9MVCg4i6Sd3cX80dcLEfXO/V4ul3pGH9czBK4kp+FAl+ZHmSUt9/w==}
|
||||||
|
dependencies:
|
||||||
|
markdown-table: 3.0.2
|
||||||
|
mdast-util-from-markdown: 1.2.0
|
||||||
|
mdast-util-to-markdown: 1.3.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mdast-util-gfm-task-list-item/1.0.1:
|
||||||
|
resolution: {integrity: sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==}
|
||||||
|
dependencies:
|
||||||
|
'@types/mdast': 3.0.10
|
||||||
|
mdast-util-to-markdown: 1.3.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mdast-util-gfm/2.0.1:
|
||||||
|
resolution: {integrity: sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ==}
|
||||||
|
dependencies:
|
||||||
|
mdast-util-from-markdown: 1.2.0
|
||||||
|
mdast-util-gfm-autolink-literal: 1.0.2
|
||||||
|
mdast-util-gfm-footnote: 1.0.1
|
||||||
|
mdast-util-gfm-strikethrough: 1.0.1
|
||||||
|
mdast-util-gfm-table: 1.0.4
|
||||||
|
mdast-util-gfm-task-list-item: 1.0.1
|
||||||
|
mdast-util-to-markdown: 1.3.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mdast-util-to-hast/12.2.1:
|
||||||
|
resolution: {integrity: sha512-dyindR2P7qOqXO1hQirZeGtVbiX7xlNQbw7gGaAwN4A1dh4+X8xU/JyYmRoyB8Fu1uPXzp7mlL5QwW7k+knvgA==}
|
||||||
|
dependencies:
|
||||||
|
'@types/hast': 2.3.4
|
||||||
|
'@types/mdast': 3.0.10
|
||||||
|
'@types/mdurl': 1.0.2
|
||||||
|
mdast-util-definitions: 5.1.1
|
||||||
|
mdurl: 1.0.1
|
||||||
|
micromark-util-sanitize-uri: 1.0.0
|
||||||
|
trim-lines: 3.0.1
|
||||||
|
unist-builder: 3.0.0
|
||||||
|
unist-util-generated: 2.0.0
|
||||||
|
unist-util-position: 4.0.3
|
||||||
|
unist-util-visit: 4.1.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mdast-util-to-markdown/1.3.0:
|
||||||
|
resolution: {integrity: sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==}
|
||||||
|
dependencies:
|
||||||
|
'@types/mdast': 3.0.10
|
||||||
|
'@types/unist': 2.0.6
|
||||||
|
longest-streak: 3.0.1
|
||||||
|
mdast-util-to-string: 3.1.0
|
||||||
|
micromark-util-decode-string: 1.0.2
|
||||||
|
unist-util-visit: 4.1.1
|
||||||
|
zwitch: 2.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mdast-util-to-string/3.1.0:
|
||||||
|
resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mdurl/1.0.1:
|
||||||
|
resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/merge-stream/2.0.0:
|
/merge-stream/2.0.0:
|
||||||
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
|
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/micromark-core-commonmark/1.0.6:
|
||||||
|
resolution: {integrity: sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==}
|
||||||
|
dependencies:
|
||||||
|
decode-named-character-reference: 1.0.2
|
||||||
|
micromark-factory-destination: 1.0.0
|
||||||
|
micromark-factory-label: 1.0.2
|
||||||
|
micromark-factory-space: 1.0.0
|
||||||
|
micromark-factory-title: 1.0.2
|
||||||
|
micromark-factory-whitespace: 1.0.0
|
||||||
|
micromark-util-character: 1.1.0
|
||||||
|
micromark-util-chunked: 1.0.0
|
||||||
|
micromark-util-classify-character: 1.0.0
|
||||||
|
micromark-util-html-tag-name: 1.1.0
|
||||||
|
micromark-util-normalize-identifier: 1.0.0
|
||||||
|
micromark-util-resolve-all: 1.0.0
|
||||||
|
micromark-util-subtokenize: 1.0.2
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
uvu: 0.5.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-extension-gfm-autolink-literal/1.0.3:
|
||||||
|
resolution: {integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==}
|
||||||
|
dependencies:
|
||||||
|
micromark-util-character: 1.1.0
|
||||||
|
micromark-util-sanitize-uri: 1.0.0
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
uvu: 0.5.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-extension-gfm-footnote/1.0.4:
|
||||||
|
resolution: {integrity: sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==}
|
||||||
|
dependencies:
|
||||||
|
micromark-core-commonmark: 1.0.6
|
||||||
|
micromark-factory-space: 1.0.0
|
||||||
|
micromark-util-character: 1.1.0
|
||||||
|
micromark-util-normalize-identifier: 1.0.0
|
||||||
|
micromark-util-sanitize-uri: 1.0.0
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
uvu: 0.5.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-extension-gfm-strikethrough/1.0.4:
|
||||||
|
resolution: {integrity: sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==}
|
||||||
|
dependencies:
|
||||||
|
micromark-util-chunked: 1.0.0
|
||||||
|
micromark-util-classify-character: 1.0.0
|
||||||
|
micromark-util-resolve-all: 1.0.0
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
uvu: 0.5.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-extension-gfm-table/1.0.5:
|
||||||
|
resolution: {integrity: sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==}
|
||||||
|
dependencies:
|
||||||
|
micromark-factory-space: 1.0.0
|
||||||
|
micromark-util-character: 1.1.0
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
uvu: 0.5.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-extension-gfm-tagfilter/1.0.1:
|
||||||
|
resolution: {integrity: sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==}
|
||||||
|
dependencies:
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-extension-gfm-task-list-item/1.0.3:
|
||||||
|
resolution: {integrity: sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==}
|
||||||
|
dependencies:
|
||||||
|
micromark-factory-space: 1.0.0
|
||||||
|
micromark-util-character: 1.1.0
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
uvu: 0.5.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-extension-gfm/2.0.1:
|
||||||
|
resolution: {integrity: sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==}
|
||||||
|
dependencies:
|
||||||
|
micromark-extension-gfm-autolink-literal: 1.0.3
|
||||||
|
micromark-extension-gfm-footnote: 1.0.4
|
||||||
|
micromark-extension-gfm-strikethrough: 1.0.4
|
||||||
|
micromark-extension-gfm-table: 1.0.5
|
||||||
|
micromark-extension-gfm-tagfilter: 1.0.1
|
||||||
|
micromark-extension-gfm-task-list-item: 1.0.3
|
||||||
|
micromark-util-combine-extensions: 1.0.0
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-factory-destination/1.0.0:
|
||||||
|
resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==}
|
||||||
|
dependencies:
|
||||||
|
micromark-util-character: 1.1.0
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-factory-label/1.0.2:
|
||||||
|
resolution: {integrity: sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==}
|
||||||
|
dependencies:
|
||||||
|
micromark-util-character: 1.1.0
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
uvu: 0.5.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-factory-space/1.0.0:
|
||||||
|
resolution: {integrity: sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==}
|
||||||
|
dependencies:
|
||||||
|
micromark-util-character: 1.1.0
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-factory-title/1.0.2:
|
||||||
|
resolution: {integrity: sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==}
|
||||||
|
dependencies:
|
||||||
|
micromark-factory-space: 1.0.0
|
||||||
|
micromark-util-character: 1.1.0
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
uvu: 0.5.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-factory-whitespace/1.0.0:
|
||||||
|
resolution: {integrity: sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==}
|
||||||
|
dependencies:
|
||||||
|
micromark-factory-space: 1.0.0
|
||||||
|
micromark-util-character: 1.1.0
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-util-character/1.1.0:
|
||||||
|
resolution: {integrity: sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==}
|
||||||
|
dependencies:
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-util-chunked/1.0.0:
|
||||||
|
resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==}
|
||||||
|
dependencies:
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-util-classify-character/1.0.0:
|
||||||
|
resolution: {integrity: sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==}
|
||||||
|
dependencies:
|
||||||
|
micromark-util-character: 1.1.0
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-util-combine-extensions/1.0.0:
|
||||||
|
resolution: {integrity: sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==}
|
||||||
|
dependencies:
|
||||||
|
micromark-util-chunked: 1.0.0
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-util-decode-numeric-character-reference/1.0.0:
|
||||||
|
resolution: {integrity: sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==}
|
||||||
|
dependencies:
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-util-decode-string/1.0.2:
|
||||||
|
resolution: {integrity: sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==}
|
||||||
|
dependencies:
|
||||||
|
decode-named-character-reference: 1.0.2
|
||||||
|
micromark-util-character: 1.1.0
|
||||||
|
micromark-util-decode-numeric-character-reference: 1.0.0
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-util-encode/1.0.1:
|
||||||
|
resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-util-html-tag-name/1.1.0:
|
||||||
|
resolution: {integrity: sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-util-normalize-identifier/1.0.0:
|
||||||
|
resolution: {integrity: sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==}
|
||||||
|
dependencies:
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-util-resolve-all/1.0.0:
|
||||||
|
resolution: {integrity: sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==}
|
||||||
|
dependencies:
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-util-sanitize-uri/1.0.0:
|
||||||
|
resolution: {integrity: sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==}
|
||||||
|
dependencies:
|
||||||
|
micromark-util-character: 1.1.0
|
||||||
|
micromark-util-encode: 1.0.1
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-util-subtokenize/1.0.2:
|
||||||
|
resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==}
|
||||||
|
dependencies:
|
||||||
|
micromark-util-chunked: 1.0.0
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
uvu: 0.5.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-util-symbol/1.0.1:
|
||||||
|
resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-util-types/1.0.2:
|
||||||
|
resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark/3.0.10:
|
||||||
|
resolution: {integrity: sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==}
|
||||||
|
dependencies:
|
||||||
|
'@types/debug': 4.1.7
|
||||||
|
debug: 4.3.4
|
||||||
|
decode-named-character-reference: 1.0.2
|
||||||
|
micromark-core-commonmark: 1.0.6
|
||||||
|
micromark-factory-space: 1.0.0
|
||||||
|
micromark-util-character: 1.1.0
|
||||||
|
micromark-util-chunked: 1.0.0
|
||||||
|
micromark-util-combine-extensions: 1.0.0
|
||||||
|
micromark-util-decode-numeric-character-reference: 1.0.0
|
||||||
|
micromark-util-encode: 1.0.1
|
||||||
|
micromark-util-normalize-identifier: 1.0.0
|
||||||
|
micromark-util-resolve-all: 1.0.0
|
||||||
|
micromark-util-sanitize-uri: 1.0.0
|
||||||
|
micromark-util-subtokenize: 1.0.2
|
||||||
|
micromark-util-symbol: 1.0.1
|
||||||
|
micromark-util-types: 1.0.2
|
||||||
|
uvu: 0.5.6
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
/mime-db/1.52.0:
|
/mime-db/1.52.0:
|
||||||
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
|
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
@@ -1259,9 +1759,13 @@ packages:
|
|||||||
resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==}
|
resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/mri/1.2.0:
|
||||||
|
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/ms/2.1.2:
|
/ms/2.1.2:
|
||||||
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
|
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/mute-stream/0.0.8:
|
/mute-stream/0.0.8:
|
||||||
resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
|
resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
|
||||||
@@ -1365,6 +1869,10 @@ packages:
|
|||||||
object-assign: 4.1.1
|
object-assign: 4.1.1
|
||||||
react-is: 16.13.1
|
react-is: 16.13.1
|
||||||
|
|
||||||
|
/property-information/6.1.1:
|
||||||
|
resolution: {integrity: sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/punycode/2.1.1:
|
/punycode/2.1.1:
|
||||||
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
|
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@@ -1399,6 +1907,37 @@ packages:
|
|||||||
/react-is/16.13.1:
|
/react-is/16.13.1:
|
||||||
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
|
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
|
||||||
|
|
||||||
|
/react-is/18.2.0:
|
||||||
|
resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/react-markdown/8.0.3_vshvapmxg47tngu7tvrsqpq55u:
|
||||||
|
resolution: {integrity: sha512-We36SfqaKoVNpN1QqsZwWSv/OZt5J15LNgTLWynwAN5b265hrQrsjMtlRNwUvS+YyR3yDM8HpTNc4pK9H/Gc0A==}
|
||||||
|
peerDependencies:
|
||||||
|
'@types/react': '>=16'
|
||||||
|
react: '>=16'
|
||||||
|
dependencies:
|
||||||
|
'@types/hast': 2.3.4
|
||||||
|
'@types/prop-types': 15.7.5
|
||||||
|
'@types/react': 16.14.0
|
||||||
|
'@types/unist': 2.0.6
|
||||||
|
comma-separated-tokens: 2.0.2
|
||||||
|
hast-util-whitespace: 2.0.0
|
||||||
|
prop-types: 15.8.1
|
||||||
|
property-information: 6.1.1
|
||||||
|
react: 16.14.0
|
||||||
|
react-is: 18.2.0
|
||||||
|
remark-parse: 10.0.1
|
||||||
|
remark-rehype: 10.1.0
|
||||||
|
space-separated-tokens: 2.0.1
|
||||||
|
style-to-object: 0.3.0
|
||||||
|
unified: 10.1.2
|
||||||
|
unist-util-visit: 4.1.1
|
||||||
|
vfile: 5.3.4
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
/react/16.14.0:
|
/react/16.14.0:
|
||||||
resolution: {integrity: sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==}
|
resolution: {integrity: sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@@ -1416,6 +1955,36 @@ packages:
|
|||||||
util-deprecate: 1.0.2
|
util-deprecate: 1.0.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/remark-gfm/3.0.1:
|
||||||
|
resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==}
|
||||||
|
dependencies:
|
||||||
|
'@types/mdast': 3.0.10
|
||||||
|
mdast-util-gfm: 2.0.1
|
||||||
|
micromark-extension-gfm: 2.0.1
|
||||||
|
unified: 10.1.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/remark-parse/10.0.1:
|
||||||
|
resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==}
|
||||||
|
dependencies:
|
||||||
|
'@types/mdast': 3.0.10
|
||||||
|
mdast-util-from-markdown: 1.2.0
|
||||||
|
unified: 10.1.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/remark-rehype/10.1.0:
|
||||||
|
resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==}
|
||||||
|
dependencies:
|
||||||
|
'@types/hast': 2.3.4
|
||||||
|
'@types/mdast': 3.0.10
|
||||||
|
mdast-util-to-hast: 12.2.1
|
||||||
|
unified: 10.1.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
/resolve-from/3.0.0:
|
/resolve-from/3.0.0:
|
||||||
resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==}
|
resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -1443,6 +2012,27 @@ packages:
|
|||||||
signal-exit: 3.0.7
|
signal-exit: 3.0.7
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/rollup-plugin-external-globals/0.6.1_rollup@2.76.0:
|
||||||
|
resolution: {integrity: sha512-mlp3KNa5sE4Sp9UUR2rjBrxjG79OyZAh/QC18RHIjM+iYkbBwNXSo8DHRMZWtzJTrH8GxQ+SJvCTN3i14uMXIA==}
|
||||||
|
peerDependencies:
|
||||||
|
rollup: ^2.25.0
|
||||||
|
dependencies:
|
||||||
|
'@rollup/pluginutils': 4.2.1
|
||||||
|
estree-walker: 2.0.2
|
||||||
|
is-reference: 1.2.1
|
||||||
|
magic-string: 0.25.9
|
||||||
|
rollup: 2.76.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/rollup-plugin-polyfill-node/0.10.2_rollup@2.76.0:
|
||||||
|
resolution: {integrity: sha512-5GMywXiLiuQP6ZzED/LO/Q0HyDi2W6b8VN+Zd3oB0opIjyRs494Me2ZMaqKWDNbGiW4jvvzl6L2n4zRgxS9cSQ==}
|
||||||
|
peerDependencies:
|
||||||
|
rollup: ^1.20.0 || ^2.0.0
|
||||||
|
dependencies:
|
||||||
|
'@rollup/plugin-inject': 4.0.4_rollup@2.76.0
|
||||||
|
rollup: 2.76.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/rollup/2.76.0:
|
/rollup/2.76.0:
|
||||||
resolution: {integrity: sha512-9jwRIEY1jOzKLj3nsY/yot41r19ITdQrhs+q3ggNWhr9TQgduHqANvPpS32RNpzGklJu3G1AJfvlZLi/6wFgWA==}
|
resolution: {integrity: sha512-9jwRIEY1jOzKLj3nsY/yot41r19ITdQrhs+q3ggNWhr9TQgduHqANvPpS32RNpzGklJu3G1AJfvlZLi/6wFgWA==}
|
||||||
engines: {node: '>=10.0.0'}
|
engines: {node: '>=10.0.0'}
|
||||||
@@ -1462,6 +2052,13 @@ packages:
|
|||||||
tslib: 2.4.0
|
tslib: 2.4.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/sade/1.8.1:
|
||||||
|
resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
|
||||||
|
engines: {node: '>=6'}
|
||||||
|
dependencies:
|
||||||
|
mri: 1.2.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
/safe-buffer/5.1.2:
|
/safe-buffer/5.1.2:
|
||||||
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
|
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -1521,6 +2118,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
|
resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/space-separated-tokens/2.0.1:
|
||||||
|
resolution: {integrity: sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/sprintf-js/1.0.3:
|
/sprintf-js/1.0.3:
|
||||||
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
|
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -1547,6 +2148,12 @@ packages:
|
|||||||
ansi-regex: 5.0.1
|
ansi-regex: 5.0.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/style-to-object/0.3.0:
|
||||||
|
resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==}
|
||||||
|
dependencies:
|
||||||
|
inline-style-parser: 0.1.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
/supports-color/5.5.0:
|
/supports-color/5.5.0:
|
||||||
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
|
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -1629,6 +2236,14 @@ packages:
|
|||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/trim-lines/3.0.1:
|
||||||
|
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/trough/2.1.0:
|
||||||
|
resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/tslib/2.4.0:
|
/tslib/2.4.0:
|
||||||
resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==}
|
resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -1650,6 +2265,59 @@ packages:
|
|||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/unified/10.1.2:
|
||||||
|
resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==}
|
||||||
|
dependencies:
|
||||||
|
'@types/unist': 2.0.6
|
||||||
|
bail: 2.0.2
|
||||||
|
extend: 3.0.2
|
||||||
|
is-buffer: 2.0.5
|
||||||
|
is-plain-obj: 4.1.0
|
||||||
|
trough: 2.1.0
|
||||||
|
vfile: 5.3.4
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/unist-builder/3.0.0:
|
||||||
|
resolution: {integrity: sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==}
|
||||||
|
dependencies:
|
||||||
|
'@types/unist': 2.0.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/unist-util-generated/2.0.0:
|
||||||
|
resolution: {integrity: sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/unist-util-is/5.1.1:
|
||||||
|
resolution: {integrity: sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/unist-util-position/4.0.3:
|
||||||
|
resolution: {integrity: sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==}
|
||||||
|
dependencies:
|
||||||
|
'@types/unist': 2.0.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/unist-util-stringify-position/3.0.2:
|
||||||
|
resolution: {integrity: sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==}
|
||||||
|
dependencies:
|
||||||
|
'@types/unist': 2.0.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/unist-util-visit-parents/5.1.1:
|
||||||
|
resolution: {integrity: sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==}
|
||||||
|
dependencies:
|
||||||
|
'@types/unist': 2.0.6
|
||||||
|
unist-util-is: 5.1.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/unist-util-visit/4.1.1:
|
||||||
|
resolution: {integrity: sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==}
|
||||||
|
dependencies:
|
||||||
|
'@types/unist': 2.0.6
|
||||||
|
unist-util-is: 5.1.1
|
||||||
|
unist-util-visit-parents: 5.1.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
/update-browserslist-db/1.0.4_browserslist@4.21.2:
|
/update-browserslist-db/1.0.4_browserslist@4.21.2:
|
||||||
resolution: {integrity: sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==}
|
resolution: {integrity: sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -1671,6 +2339,33 @@ packages:
|
|||||||
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
|
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/uvu/0.5.6:
|
||||||
|
resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
dequal: 2.0.3
|
||||||
|
diff: 5.1.0
|
||||||
|
kleur: 4.1.5
|
||||||
|
sade: 1.8.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/vfile-message/3.1.2:
|
||||||
|
resolution: {integrity: sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==}
|
||||||
|
dependencies:
|
||||||
|
'@types/unist': 2.0.6
|
||||||
|
unist-util-stringify-position: 3.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/vfile/5.3.4:
|
||||||
|
resolution: {integrity: sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==}
|
||||||
|
dependencies:
|
||||||
|
'@types/unist': 2.0.6
|
||||||
|
is-buffer: 2.0.5
|
||||||
|
unist-util-stringify-position: 3.0.2
|
||||||
|
vfile-message: 3.1.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
/watchpack/2.4.0:
|
/watchpack/2.4.0:
|
||||||
resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==}
|
resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==}
|
||||||
engines: {node: '>=10.13.0'}
|
engines: {node: '>=10.13.0'}
|
||||||
@@ -1742,3 +2437,7 @@ packages:
|
|||||||
/wrappy/1.0.2:
|
/wrappy/1.0.2:
|
||||||
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
|
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/zwitch/2.0.2:
|
||||||
|
resolution: {integrity: sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==}
|
||||||
|
dev: false
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import commonjs from '@rollup/plugin-commonjs';
|
import commonjs from '@rollup/plugin-commonjs';
|
||||||
import json from '@rollup/plugin-json';
|
import json from '@rollup/plugin-json';
|
||||||
import { nodeResolve } from '@rollup/plugin-node-resolve';
|
import { nodeResolve } from '@rollup/plugin-node-resolve';
|
||||||
|
import externalGlobals from "rollup-plugin-external-globals";
|
||||||
import replace from '@rollup/plugin-replace';
|
import replace from '@rollup/plugin-replace';
|
||||||
import typescript from '@rollup/plugin-typescript';
|
import typescript from '@rollup/plugin-typescript';
|
||||||
import { defineConfig } from 'rollup';
|
import { defineConfig } from 'rollup';
|
||||||
@@ -10,6 +11,14 @@ export default defineConfig({
|
|||||||
plugins: [
|
plugins: [
|
||||||
commonjs(),
|
commonjs(),
|
||||||
nodeResolve(),
|
nodeResolve(),
|
||||||
|
externalGlobals({
|
||||||
|
react: 'SP_REACT',
|
||||||
|
'react-dom': 'SP_REACTDOM',
|
||||||
|
// hack to shut up react-markdown
|
||||||
|
'process': '{cwd: () => {}}',
|
||||||
|
'path': '{dirname: () => {}, join: () => {}, basename: () => {}, extname: () => {}}',
|
||||||
|
'url': '{fileURLToPath: (f) => f}'
|
||||||
|
}),
|
||||||
typescript(),
|
typescript(),
|
||||||
json(),
|
json(),
|
||||||
replace({
|
replace({
|
||||||
@@ -17,13 +26,12 @@ export default defineConfig({
|
|||||||
'process.env.NODE_ENV': JSON.stringify('production'),
|
'process.env.NODE_ENV': JSON.stringify('production'),
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
external: ["react", "react-dom"],
|
preserveEntrySignatures: false,
|
||||||
output: {
|
output: {
|
||||||
file: '../backend/static/plugin-loader.iife.js',
|
dir: '../backend/static',
|
||||||
globals: {
|
format: 'esm',
|
||||||
react: 'SP_REACT',
|
chunkFileNames: (chunkInfo) => {
|
||||||
'react-dom': 'SP_REACTDOM',
|
return 'chunk-[hash].js'
|
||||||
},
|
}
|
||||||
format: 'iife',
|
}
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
import { FunctionComponent } from 'react';
|
||||||
|
import ReactMarkdown, { Options as ReactMarkdownOptions } from 'react-markdown';
|
||||||
|
import remarkGfm from 'remark-gfm';
|
||||||
|
|
||||||
|
const Markdown: FunctionComponent<ReactMarkdownOptions> = (props) => {
|
||||||
|
return <ReactMarkdown remarkPlugins={[remarkGfm]} {...props} />;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Markdown;
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
import { Focusable, updaterFieldClasses } from 'decky-frontend-lib';
|
||||||
|
import { FunctionComponent, ReactNode } from 'react';
|
||||||
|
|
||||||
|
interface InlinePatchNotesProps {
|
||||||
|
date: ReactNode;
|
||||||
|
title: string;
|
||||||
|
children: ReactNode;
|
||||||
|
onClick?: () => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
const InlinePatchNotes: FunctionComponent<InlinePatchNotesProps> = ({ date, title, children, onClick }) => {
|
||||||
|
return (
|
||||||
|
<Focusable className={updaterFieldClasses.PatchNotes} onActivate={onClick}>
|
||||||
|
<div className={updaterFieldClasses.PostedTime}>{date}</div>
|
||||||
|
<div className={updaterFieldClasses.EventDetailTitle}>{title}</div>
|
||||||
|
<div className={updaterFieldClasses.EventDetailsBody}>{children}</div>
|
||||||
|
</Focusable>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default InlinePatchNotes;
|
||||||
@@ -1,9 +1,66 @@
|
|||||||
import { DialogButton, Field, ProgressBarWithInfo, Spinner } from 'decky-frontend-lib';
|
import { Carousel, DialogButton, Field, Focusable, ProgressBarWithInfo, Spinner, showModal } from 'decky-frontend-lib';
|
||||||
|
import { useCallback } from 'react';
|
||||||
|
import { Suspense, lazy } from 'react';
|
||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import { FaArrowDown } from 'react-icons/fa';
|
import { FaArrowDown } from 'react-icons/fa';
|
||||||
|
|
||||||
import { VerInfo, callUpdaterMethod, finishUpdate } from '../../../../updater';
|
import { VerInfo, callUpdaterMethod, finishUpdate } from '../../../../updater';
|
||||||
import { useDeckyState } from '../../../DeckyState';
|
import { useDeckyState } from '../../../DeckyState';
|
||||||
|
import InlinePatchNotes from '../../../patchnotes/InlinePatchNotes';
|
||||||
|
|
||||||
|
const MarkdownRenderer = lazy(() => import('../../../Markdown'));
|
||||||
|
|
||||||
|
// import ReactMarkdown from 'react-markdown'
|
||||||
|
// import remarkGfm from 'remark-gfm'
|
||||||
|
|
||||||
|
function PatchNotesModal({ versionInfo, closeModal }: { versionInfo: VerInfo | null; closeModal?: () => {} }) {
|
||||||
|
return (
|
||||||
|
<Focusable onCancelButton={closeModal}>
|
||||||
|
<Carousel
|
||||||
|
fnItemRenderer={(id: number, ...args: any[]) => {
|
||||||
|
console.log(args, versionInfo);
|
||||||
|
return (
|
||||||
|
<Focusable
|
||||||
|
onActivate={() => {}}
|
||||||
|
style={{
|
||||||
|
marginTop: '40px',
|
||||||
|
height: 'calc( 100% - 40px )',
|
||||||
|
overflowY: 'scroll',
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'center',
|
||||||
|
margin: '40px',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
<h1>{versionInfo?.all?.[id]?.name}</h1>
|
||||||
|
{versionInfo?.all?.[id]?.body ? (
|
||||||
|
<Suspense fallback={<Spinner style={{ width: '24', height: '24' }} />}>
|
||||||
|
<MarkdownRenderer>{versionInfo.all[id].body}</MarkdownRenderer>
|
||||||
|
</Suspense>
|
||||||
|
) : (
|
||||||
|
'no patch notes for this version'
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</Focusable>
|
||||||
|
);
|
||||||
|
}}
|
||||||
|
fnGetId={(id) => {
|
||||||
|
return id;
|
||||||
|
}}
|
||||||
|
nNumItems={versionInfo?.all?.length}
|
||||||
|
nHeight={window.innerHeight - 150}
|
||||||
|
nItemHeight={window.innerHeight - 200}
|
||||||
|
nItemMarginX={0}
|
||||||
|
initialColumn={0}
|
||||||
|
autoFocus={true}
|
||||||
|
fnGetColumnWidth={(...args: any[]) => {
|
||||||
|
console.log('cw', args);
|
||||||
|
return window.innerWidth;
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</Focusable>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
export default function UpdaterSettings() {
|
export default function UpdaterSettings() {
|
||||||
const { isLoaderUpdating, setIsLoaderUpdating } = useDeckyState();
|
const { isLoaderUpdating, setIsLoaderUpdating } = useDeckyState();
|
||||||
@@ -34,56 +91,80 @@ export default function UpdaterSettings() {
|
|||||||
};
|
};
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
const showPatchNotes = useCallback(() => {
|
||||||
|
showModal(<PatchNotesModal versionInfo={versionInfo} />);
|
||||||
|
}, [versionInfo]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Field
|
<>
|
||||||
label="Updates"
|
<Field
|
||||||
description={
|
onOptionsActionDescription="Patch Notes"
|
||||||
versionInfo && (
|
onOptionsButton={showPatchNotes}
|
||||||
<span style={{ whiteSpace: 'pre-line' }}>{`Current version: ${versionInfo.current}\n${
|
label="Updates"
|
||||||
versionInfo.updatable ? `Latest version: ${versionInfo.remote?.tag_name}` : ''
|
description={
|
||||||
}`}</span>
|
versionInfo && (
|
||||||
)
|
<span style={{ whiteSpace: 'pre-line' }}>{`Current version: ${versionInfo.current}\n${
|
||||||
}
|
versionInfo.updatable ? `Latest version: ${versionInfo.remote?.tag_name}` : ''
|
||||||
icon={
|
}`}</span>
|
||||||
!versionInfo ? (
|
)
|
||||||
<Spinner style={{ width: '1em', height: 20, display: 'block' }} />
|
}
|
||||||
|
icon={
|
||||||
|
!versionInfo ? (
|
||||||
|
<Spinner style={{ width: '1em', height: 20, display: 'block' }} />
|
||||||
|
) : (
|
||||||
|
<FaArrowDown style={{ display: 'block' }} />
|
||||||
|
)
|
||||||
|
}
|
||||||
|
>
|
||||||
|
{updateProgress == -1 && !isLoaderUpdating ? (
|
||||||
|
<DialogButton
|
||||||
|
disabled={!versionInfo?.updatable || checkingForUpdates}
|
||||||
|
onClick={
|
||||||
|
!versionInfo?.remote || versionInfo?.remote?.tag_name == versionInfo?.current
|
||||||
|
? async () => {
|
||||||
|
setCheckingForUpdates(true);
|
||||||
|
const res = (await callUpdaterMethod('check_for_updates')) as { result: VerInfo };
|
||||||
|
setVersionInfo(res.result);
|
||||||
|
setCheckingForUpdates(false);
|
||||||
|
}
|
||||||
|
: async () => {
|
||||||
|
setUpdateProgress(0);
|
||||||
|
callUpdaterMethod('do_update');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
{checkingForUpdates
|
||||||
|
? 'Checking'
|
||||||
|
: !versionInfo?.remote || versionInfo?.remote?.tag_name == versionInfo?.current
|
||||||
|
? 'Check For Updates'
|
||||||
|
: 'Install Update'}
|
||||||
|
</DialogButton>
|
||||||
) : (
|
) : (
|
||||||
<FaArrowDown style={{ display: 'block' }} />
|
<ProgressBarWithInfo
|
||||||
)
|
layout="inline"
|
||||||
}
|
bottomSeparator={false}
|
||||||
>
|
nProgress={updateProgress}
|
||||||
{updateProgress == -1 && !isLoaderUpdating ? (
|
indeterminate={reloading}
|
||||||
<DialogButton
|
sOperationText={reloading ? 'Reloading' : 'Updating'}
|
||||||
disabled={!versionInfo?.updatable || checkingForUpdates}
|
/>
|
||||||
onClick={
|
)}
|
||||||
!versionInfo?.remote || versionInfo?.remote?.tag_name == versionInfo?.current
|
</Field>
|
||||||
? async () => {
|
{versionInfo?.remote && (
|
||||||
setCheckingForUpdates(true);
|
<InlinePatchNotes
|
||||||
const res = (await callUpdaterMethod('check_for_updates')) as { result: VerInfo };
|
title={versionInfo?.remote.name}
|
||||||
setVersionInfo(res.result);
|
date={new Intl.RelativeTimeFormat('en-US', {
|
||||||
setCheckingForUpdates(false);
|
numeric: 'auto',
|
||||||
}
|
}).format(
|
||||||
: async () => {
|
Math.ceil((new Date(versionInfo.remote.published_at).getTime() - new Date().getTime()) / 86400000),
|
||||||
setUpdateProgress(0);
|
'day',
|
||||||
callUpdaterMethod('do_update');
|
)}
|
||||||
}
|
onClick={showPatchNotes}
|
||||||
}
|
|
||||||
>
|
>
|
||||||
{checkingForUpdates
|
<Suspense fallback={<Spinner style={{ width: '24', height: '24' }} />}>
|
||||||
? 'Checking'
|
<MarkdownRenderer>{versionInfo?.remote.body}</MarkdownRenderer>
|
||||||
: !versionInfo?.remote || versionInfo?.remote?.tag_name == versionInfo?.current
|
</Suspense>
|
||||||
? 'Check For Updates'
|
</InlinePatchNotes>
|
||||||
: 'Install Update'}
|
|
||||||
</DialogButton>
|
|
||||||
) : (
|
|
||||||
<ProgressBarWithInfo
|
|
||||||
layout="inline"
|
|
||||||
bottomSeparator={false}
|
|
||||||
nProgress={updateProgress}
|
|
||||||
indeterminate={reloading}
|
|
||||||
sOperationText={reloading ? 'Reloading' : 'Updating'}
|
|
||||||
/>
|
|
||||||
)}
|
)}
|
||||||
</Field>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { ModalRoot, QuickAccessTab, Router, showModal, sleep, staticClasses } from 'decky-frontend-lib';
|
import { ModalRoot, QuickAccessTab, Router, SteamSpinner, showModal, sleep, staticClasses } from 'decky-frontend-lib';
|
||||||
|
import { Suspense, lazy } from 'react';
|
||||||
import { FaPlug } from 'react-icons/fa';
|
import { FaPlug } from 'react-icons/fa';
|
||||||
|
|
||||||
import { DeckyState, DeckyStateContextProvider, useDeckyState } from './components/DeckyState';
|
import { DeckyState, DeckyStateContextProvider, useDeckyState } from './components/DeckyState';
|
||||||
@@ -6,8 +7,6 @@ import LegacyPlugin from './components/LegacyPlugin';
|
|||||||
import PluginInstallModal from './components/modals/PluginInstallModal';
|
import PluginInstallModal from './components/modals/PluginInstallModal';
|
||||||
import NotificationBadge from './components/NotificationBadge';
|
import NotificationBadge from './components/NotificationBadge';
|
||||||
import PluginView from './components/PluginView';
|
import PluginView from './components/PluginView';
|
||||||
import SettingsPage from './components/settings';
|
|
||||||
import StorePage from './components/store/Store';
|
|
||||||
import TitleView from './components/TitleView';
|
import TitleView from './components/TitleView';
|
||||||
import Logger from './logger';
|
import Logger from './logger';
|
||||||
import { Plugin } from './plugin';
|
import { Plugin } from './plugin';
|
||||||
@@ -61,11 +60,44 @@ class PluginLoader extends Logger {
|
|||||||
),
|
),
|
||||||
});
|
});
|
||||||
|
|
||||||
this.routerHook.addRoute('/decky/store', () => <StorePage />);
|
const StorePage = lazy(() => import('./components/store/Store'));
|
||||||
|
const SettingsPage = lazy(() => import('./components/settings'));
|
||||||
|
|
||||||
|
this.routerHook.addRoute('/decky/store', () => (
|
||||||
|
<Suspense
|
||||||
|
fallback={
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
marginTop: '40px',
|
||||||
|
height: 'calc( 100% - 40px )',
|
||||||
|
overflowY: 'scroll',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<SteamSpinner />
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<StorePage />
|
||||||
|
</Suspense>
|
||||||
|
));
|
||||||
this.routerHook.addRoute('/decky/settings', () => {
|
this.routerHook.addRoute('/decky/settings', () => {
|
||||||
return (
|
return (
|
||||||
<DeckyStateContextProvider deckyState={this.deckyState}>
|
<DeckyStateContextProvider deckyState={this.deckyState}>
|
||||||
<SettingsPage />
|
<Suspense
|
||||||
|
fallback={
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
marginTop: '40px',
|
||||||
|
height: 'calc( 100% - 40px )',
|
||||||
|
overflowY: 'scroll',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<SteamSpinner />
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<SettingsPage />
|
||||||
|
</Suspense>
|
||||||
</DeckyStateContextProvider>
|
</DeckyStateContextProvider>
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
+14
-11
@@ -11,19 +11,22 @@ export interface DeckyUpdater {
|
|||||||
finish: () => void;
|
finish: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface RemoteVerInfo {
|
||||||
|
assets: {
|
||||||
|
browser_download_url: string;
|
||||||
|
created_at: string;
|
||||||
|
}[];
|
||||||
|
name: string;
|
||||||
|
body: string;
|
||||||
|
prerelease: boolean;
|
||||||
|
published_at: string;
|
||||||
|
tag_name: string;
|
||||||
|
}
|
||||||
|
|
||||||
export interface VerInfo {
|
export interface VerInfo {
|
||||||
current: string;
|
current: string;
|
||||||
remote: {
|
remote: RemoteVerInfo | null;
|
||||||
assets: {
|
all: RemoteVerInfo[] | null;
|
||||||
browser_download_url: string;
|
|
||||||
created_at: string;
|
|
||||||
}[];
|
|
||||||
name: string;
|
|
||||||
body: string;
|
|
||||||
prerelease: boolean;
|
|
||||||
published_at: string;
|
|
||||||
tag_name: string;
|
|
||||||
} | null;
|
|
||||||
updatable: boolean;
|
updatable: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"outDir": "dist",
|
|
||||||
"module": "ESNext",
|
"module": "ESNext",
|
||||||
"target": "ES2020",
|
"target": "ES2020",
|
||||||
"jsx": "react",
|
"jsx": "react",
|
||||||
|
|||||||
Reference in New Issue
Block a user