Add downloada links to projects pages

This commit is contained in:
Jade Ellis 2024-05-03 14:37:50 +01:00
parent ae1b0855ba
commit 621b15a2a9
6 changed files with 557 additions and 4 deletions

View file

@ -48,12 +48,16 @@
"@codemirror/lint": "^6.5.0",
"@codemirror/state": "^6.4.1",
"@codemirror/view": "^6.26.3",
"@isaacs/ttlcache": "^1.4.1",
"@lezer/highlight": "^1.2.0",
"@octokit/types": "^13.5.0",
"@steeze-ui/svelte-icon": "^1.5.0",
"@tusbar/cache-control": "^1.0.1",
"@uiw/codemirror-theme-github": "^4.21.25",
"Notes": "file:Notes-1.0.0.tgz",
"acorn": "^8.11.3",
"magic-string": "^0.30.10",
"octokit": "^3.2.0",
"slugify": "^1.6.6",
"super-sitemap": "^0.14.14",
"svelte-codemirror-editor": "^1.3.0",

View file

@ -0,0 +1,30 @@
<script lang="ts">
import type { Endpoints } from "@octokit/types";
export let releaseData: Endpoints["GET /repos/{owner}/{repo}/releases/latest"]["response"]["data"];
// console.log(releaseData);
</script>
<div class="release">
{#if navigator}
{#if navigator.platform.startsWith("Win")}
{@const asset =releaseData.assets.filter((a) => a.name.endsWith(".exe"))[0]}
{#if asset}
<a href={asset.browser_download_url}>Download for Windows</a>
{/if}
{:else if navigator.platform.startsWith("Mac")}
{@const asset =releaseData.assets.filter((a) => a.name.endsWith(".dmg"))[0]}
{#if asset}
<a href={asset.browser_download_url}>Download for MacOS</a>
{/if}
{:else if navigator.platform.startsWith("Linux")}
{@const asset =releaseData.assets.filter((a) => a.name.endsWith(".AppImage"))[0]}
{#if asset}
<a href={asset.browser_download_url}>Download AppImage</a>
{/if}
{/if}
{/if}
<p>Latest release: <a href={releaseData.html_url}>{releaseData.name}</a></p>
</div>

View file

@ -1,5 +1,12 @@
import { pages } from './projects'
import { error } from '@sveltejs/kit'
import TTLCache, { } from "@isaacs/ttlcache";
import { parse } from "@tusbar/cache-control";
const cache = new TTLCache({ max: 10000, ttl: 1000 })
import type { Endpoints } from "@octokit/types";
let repoRegex = new RegExp("https?://github\.com/(?<repo>[a-zA-Z0-9]+/[a-zA-Z0-9]+)/?")
/** @type {import('./$types').PageServerLoad} */
export async function load({ params }) {
@ -12,7 +19,30 @@ export async function load({ params }) {
throw error(404, 'Post not found')
}
let ghReleaseData: Endpoints["GET /repos/{owner}/{repo}/releases/latest"]["response"]["data"] | undefined;
let repo = (page.repo as string).match(repoRegex)?.groups?.repo
if (repo) {
if (!cache.has(repo)) {
// console.log("cache miss")
ghReleaseData = await fetch("https://api.github.com/repos/" + repo + "/releases/latest").then(async (res) => {
let json = await res.json()
let ttl = (parse(res.headers.get("cache-control") || undefined)?.maxAge || 60) * 1000
cache.set(repo, json, { ttl })
return json
})
} else {
// console.log("cache hit")
ghReleaseData = cache.get(repo) as typeof ghReleaseData
}
// .then((data) => {
// // console.log(data)
// })
}
return {
page
page,
ghReleaseData
}
}

View file

@ -1,9 +1,16 @@
<script lang="ts">
// https://github.com/mattjennings/sveltekit-blog-template/blob/main/src/routes/post/%5Bslug%5D/%2Bpage.svelte
import SvelteSeo from "svelte-seo";
export let data;
import { SITE_URL } from '$lib/metadata';
import { SITE_URL } from "$lib/metadata";
import GhReleasesDownload from "$lib/GhReleasesDownload.svelte";
// let GhReleasesDownload: Promise<any>;
// if (data.ghReleaseData) {
// GhReleasesDownload = import("$lib/GhReleasesDownload.svelte").then((m) => m.default)
// }
// console.log(data.ghReleaseData)
</script>
<SvelteSeo
@ -11,4 +18,14 @@
canonical={SITE_URL + "/projects/" + data.post.slug}
/>
<h1>{data.post.title}</h1>
<svelte:component this={data.component} />
<!-- {#await GhReleasesDownload}
{:then component}
<svelte:component this={component} releaseData={data.ghReleaseData} />
{/await} -->
{#if data.ghReleaseData}
<GhReleasesDownload releaseData={data.ghReleaseData} />
{/if}
<svelte:component this={data.component} />

View file

@ -14,8 +14,10 @@ export async function load({ data }) {
await import("Notes/Projects/" + data.page.filepath.name + ".md")
// console.log(data.page.filepath)
return {
post: data.page,
ghReleaseData: data.ghReleaseData,
component: component.default
}
}

470
pnpm-lock.yaml generated
View file

@ -25,12 +25,21 @@ importers:
'@codemirror/view':
specifier: ^6.26.3
version: 6.26.3
'@isaacs/ttlcache':
specifier: ^1.4.1
version: 1.4.1
'@lezer/highlight':
specifier: ^1.2.0
version: 1.2.0
'@octokit/types':
specifier: ^13.5.0
version: 13.5.0
'@steeze-ui/svelte-icon':
specifier: ^1.5.0
version: 1.5.0(svelte@4.2.15)
'@tusbar/cache-control':
specifier: ^1.0.1
version: 1.0.1
'@uiw/codemirror-theme-github':
specifier: ^4.21.25
version: 4.21.25(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)
@ -43,6 +52,9 @@ importers:
magic-string:
specifier: ^0.30.10
version: 0.30.10
octokit:
specifier: ^3.2.0
version: 3.2.0
slugify:
specifier: ^1.6.6
version: 1.6.6
@ -456,6 +468,10 @@ packages:
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
'@isaacs/ttlcache@1.4.1':
resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==}
engines: {node: '>=12'}
'@jridgewell/gen-mapping@0.3.5':
resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
engines: {node: '>=6.0.0'}
@ -507,6 +523,119 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
'@octokit/app@14.1.0':
resolution: {integrity: sha512-g3uEsGOQCBl1+W1rgfwoRFUIR6PtvB2T1E4RpygeUU5LrLvlOqcxrt5lfykIeRpUPpupreGJUYl70fqMDXdTpw==}
engines: {node: '>= 18'}
'@octokit/auth-app@6.1.1':
resolution: {integrity: sha512-VrTtzRpyuT5nYGUWeGWQqH//hqEZDV+/yb6+w5wmWpmmUA1Tx950XsAc2mBBfvusfcdF2E7w8jZ1r1WwvfZ9pA==}
engines: {node: '>= 18'}
'@octokit/auth-oauth-app@7.1.0':
resolution: {integrity: sha512-w+SyJN/b0l/HEb4EOPRudo7uUOSW51jcK1jwLa+4r7PA8FPFpoxEnHBHMITqCsc/3Vo2qqFjgQfz/xUUvsSQnA==}
engines: {node: '>= 18'}
'@octokit/auth-oauth-device@6.1.0':
resolution: {integrity: sha512-FNQ7cb8kASufd6Ej4gnJ3f1QB5vJitkoV1O0/g6e6lUsQ7+VsSNRHRmFScN2tV4IgKA12frrr/cegUs0t+0/Lw==}
engines: {node: '>= 18'}
'@octokit/auth-oauth-user@4.1.0':
resolution: {integrity: sha512-FrEp8mtFuS/BrJyjpur+4GARteUCrPeR/tZJzD8YourzoVhRics7u7we/aDcKv+yywRNwNi/P4fRi631rG/OyQ==}
engines: {node: '>= 18'}
'@octokit/auth-token@4.0.0':
resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==}
engines: {node: '>= 18'}
'@octokit/auth-unauthenticated@5.0.1':
resolution: {integrity: sha512-oxeWzmBFxWd+XolxKTc4zr+h3mt+yofn4r7OfoIkR/Cj/o70eEGmPsFbueyJE2iBAGpjgTnEOKM3pnuEGVmiqg==}
engines: {node: '>= 18'}
'@octokit/core@5.2.0':
resolution: {integrity: sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==}
engines: {node: '>= 18'}
'@octokit/endpoint@9.0.5':
resolution: {integrity: sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==}
engines: {node: '>= 18'}
'@octokit/graphql@7.1.0':
resolution: {integrity: sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==}
engines: {node: '>= 18'}
'@octokit/oauth-app@6.1.0':
resolution: {integrity: sha512-nIn/8eUJ/BKUVzxUXd5vpzl1rwaVxMyYbQkNZjHrF7Vk/yu98/YDF/N2KeWO7uZ0g3b5EyiFXFkZI8rJ+DH1/g==}
engines: {node: '>= 18'}
'@octokit/oauth-authorization-url@6.0.2':
resolution: {integrity: sha512-CdoJukjXXxqLNK4y/VOiVzQVjibqoj/xHgInekviUJV73y/BSIcwvJ/4aNHPBPKcPWFnd4/lO9uqRV65jXhcLA==}
engines: {node: '>= 18'}
'@octokit/oauth-methods@4.1.0':
resolution: {integrity: sha512-4tuKnCRecJ6CG6gr0XcEXdZtkTDbfbnD5oaHBmLERTjTMZNi2CbfEHZxPU41xXLDG4DfKf+sonu00zvKI9NSbw==}
engines: {node: '>= 18'}
'@octokit/openapi-types@20.0.0':
resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==}
'@octokit/openapi-types@22.2.0':
resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==}
'@octokit/plugin-paginate-graphql@4.0.1':
resolution: {integrity: sha512-R8ZQNmrIKKpHWC6V2gum4x9LG2qF1RxRjo27gjQcG3j+vf2tLsEfE7I/wRWEPzYMaenr1M+qDAtNcwZve1ce1A==}
engines: {node: '>= 18'}
peerDependencies:
'@octokit/core': '>=5'
'@octokit/plugin-paginate-rest@9.2.1':
resolution: {integrity: sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==}
engines: {node: '>= 18'}
peerDependencies:
'@octokit/core': '5'
'@octokit/plugin-rest-endpoint-methods@10.4.1':
resolution: {integrity: sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==}
engines: {node: '>= 18'}
peerDependencies:
'@octokit/core': '5'
'@octokit/plugin-retry@6.0.1':
resolution: {integrity: sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==}
engines: {node: '>= 18'}
peerDependencies:
'@octokit/core': '>=5'
'@octokit/plugin-throttling@8.2.0':
resolution: {integrity: sha512-nOpWtLayKFpgqmgD0y3GqXafMFuKcA4tRPZIfu7BArd2lEZeb1988nhWhwx4aZWmjDmUfdgVf7W+Tt4AmvRmMQ==}
engines: {node: '>= 18'}
peerDependencies:
'@octokit/core': ^5.0.0
'@octokit/request-error@5.1.0':
resolution: {integrity: sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==}
engines: {node: '>= 18'}
'@octokit/request@8.4.0':
resolution: {integrity: sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==}
engines: {node: '>= 18'}
'@octokit/types@12.6.0':
resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==}
'@octokit/types@13.5.0':
resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==}
'@octokit/webhooks-methods@4.1.0':
resolution: {integrity: sha512-zoQyKw8h9STNPqtm28UGOYFE7O6D4Il8VJwhAtMHFt2C4L0VQT1qGKLeefUOqHNs1mNRYSadVv7x0z8U2yyeWQ==}
engines: {node: '>= 18'}
'@octokit/webhooks-types@7.4.0':
resolution: {integrity: sha512-FE2V+QZ2UYlh+9wWd5BPLNXG+J/XUD/PPq0ovS+nCcGX4+3qVbi3jYOmCTW48hg9SBBLtInx9+o7fFt4H5iP0Q==}
'@octokit/webhooks@12.2.0':
resolution: {integrity: sha512-CyuLJ0/P7bKZ+kIYw+fnkeVdhUzNuDKgNSI7pU/m7Nod0T7kP+s4s2f0pNmG9HL8/RZN1S0ZWTDll3VTMrFLAw==}
engines: {node: '>= 18'}
'@oozcitak/dom@1.15.10':
resolution: {integrity: sha512-0JT29/LaxVgRcGKvHmSrUTEvZ8BXvZhGl2LASRUgHqDTC1M5g1pLmVv56IYNyt3bG2CUjDkc67wnyZC14pbQrQ==}
engines: {node: '>=8.0'}
@ -698,6 +827,15 @@ packages:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
'@tusbar/cache-control@1.0.1':
resolution: {integrity: sha512-2X0JN3qtmEKb8Xzref5eP5PefejMjwxNhsSRFCoYAt5j0XreFdE5HD37/JRL2/ywolGrL8LTvQ91jUmBgvYbXQ==}
'@types/aws-lambda@8.10.137':
resolution: {integrity: sha512-YNFwzVarXAOXkjuFxONyDw1vgRNzyH8AuyN19s0bM+ChSu/bzxb5XPxYFLXoqoM+tvgzwR3k7fXcEOW125yJxg==}
'@types/btoa-lite@1.0.2':
resolution: {integrity: sha512-ZYbcE2x7yrvNFJiU7xJGrpF/ihpkM7zKgw8bha3LNJSesvTtUNxbpzaT7WXBIryf6jovisrxTBvymxMeLLj1Mg==}
'@types/cookie@0.6.0':
resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
@ -713,6 +851,9 @@ packages:
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
'@types/jsonwebtoken@9.0.6':
resolution: {integrity: sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw==}
'@types/katex@0.16.7':
resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==}
@ -756,6 +897,10 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
aggregate-error@3.1.0:
resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
engines: {node: '>=8'}
ansi-colors@4.1.3:
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
engines: {node: '>=6'}
@ -811,6 +956,9 @@ packages:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
before-after-hook@2.2.3:
resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
@ -818,6 +966,9 @@ packages:
boolbase@1.0.0:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
bottleneck@2.19.5:
resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==}
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@ -828,9 +979,15 @@ packages:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
btoa-lite@1.0.0:
resolution: {integrity: sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==}
buffer-crc32@0.2.13:
resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
buffer-equal-constant-time@1.0.1:
resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
@ -872,6 +1029,10 @@ packages:
resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
engines: {node: '>= 10.0'}
clean-stack@2.2.0:
resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
engines: {node: '>=6'}
code-red@1.0.4:
resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==}
@ -981,6 +1142,9 @@ packages:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
deprecation@2.3.1:
resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
dequal@2.0.3:
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
engines: {node: '>=6'}
@ -1023,6 +1187,9 @@ packages:
eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
ecdsa-sig-formatter@1.0.11:
resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@ -1164,6 +1331,10 @@ packages:
import-meta-resolve@4.0.0:
resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==}
indent-string@4.0.0:
resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
engines: {node: '>=8'}
inflight@1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
@ -1241,6 +1412,16 @@ packages:
engines: {node: '>=6'}
hasBin: true
jsonwebtoken@9.0.2:
resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==}
engines: {node: '>=12', npm: '>=6'}
jwa@1.4.1:
resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==}
jws@3.2.2:
resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==}
katex@0.16.10:
resolution: {integrity: sha512-ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA==}
hasBin: true
@ -1255,6 +1436,27 @@ packages:
lodash.camelcase@4.3.0:
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
lodash.includes@4.3.0:
resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==}
lodash.isboolean@3.0.3:
resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==}
lodash.isinteger@4.0.4:
resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==}
lodash.isnumber@3.0.3:
resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==}
lodash.isplainobject@4.0.6:
resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
lodash.isstring@4.0.1:
resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==}
lodash.once@4.1.1:
resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==}
lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
@ -1493,6 +1695,10 @@ packages:
nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
octokit@3.2.0:
resolution: {integrity: sha512-f25eJ/8ITwF2BdwymOjK9I5ll9Azt8UbfHE2u5ho0gVdgfpIZkUgMGbQjbvgOYGbtIAYxh7ghH3BUbZrYal1Gw==}
engines: {node: '>= 18'}
once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
@ -1623,6 +1829,9 @@ packages:
resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
engines: {node: '>=6'}
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
safe-stable-stringify@2.4.3:
resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
engines: {node: '>=10'}
@ -1871,6 +2080,12 @@ packages:
unist-util-visit@5.0.0:
resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
universal-github-app-jwt@1.1.2:
resolution: {integrity: sha512-t1iB2FmLFE+yyJY9+3wMx0ejB+MQpEVkH0gQv7dR6FZyltyq+ZZO0uDpbopxhrZ3SLEO4dCEkIujOMldEQ2iOA==}
universal-user-agent@6.0.1:
resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
vfile-message@2.0.4:
resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==}
@ -2191,6 +2406,8 @@ snapshots:
wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0
'@isaacs/ttlcache@1.4.1': {}
'@jridgewell/gen-mapping@0.3.5':
dependencies:
'@jridgewell/set-array': 1.2.1
@ -2248,6 +2465,166 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.17.1
'@octokit/app@14.1.0':
dependencies:
'@octokit/auth-app': 6.1.1
'@octokit/auth-unauthenticated': 5.0.1
'@octokit/core': 5.2.0
'@octokit/oauth-app': 6.1.0
'@octokit/plugin-paginate-rest': 9.2.1(@octokit/core@5.2.0)
'@octokit/types': 12.6.0
'@octokit/webhooks': 12.2.0
'@octokit/auth-app@6.1.1':
dependencies:
'@octokit/auth-oauth-app': 7.1.0
'@octokit/auth-oauth-user': 4.1.0
'@octokit/request': 8.4.0
'@octokit/request-error': 5.1.0
'@octokit/types': 13.5.0
deprecation: 2.3.1
lru-cache: 10.2.2
universal-github-app-jwt: 1.1.2
universal-user-agent: 6.0.1
'@octokit/auth-oauth-app@7.1.0':
dependencies:
'@octokit/auth-oauth-device': 6.1.0
'@octokit/auth-oauth-user': 4.1.0
'@octokit/request': 8.4.0
'@octokit/types': 13.5.0
'@types/btoa-lite': 1.0.2
btoa-lite: 1.0.0
universal-user-agent: 6.0.1
'@octokit/auth-oauth-device@6.1.0':
dependencies:
'@octokit/oauth-methods': 4.1.0
'@octokit/request': 8.4.0
'@octokit/types': 13.5.0
universal-user-agent: 6.0.1
'@octokit/auth-oauth-user@4.1.0':
dependencies:
'@octokit/auth-oauth-device': 6.1.0
'@octokit/oauth-methods': 4.1.0
'@octokit/request': 8.4.0
'@octokit/types': 13.5.0
btoa-lite: 1.0.0
universal-user-agent: 6.0.1
'@octokit/auth-token@4.0.0': {}
'@octokit/auth-unauthenticated@5.0.1':
dependencies:
'@octokit/request-error': 5.1.0
'@octokit/types': 12.6.0
'@octokit/core@5.2.0':
dependencies:
'@octokit/auth-token': 4.0.0
'@octokit/graphql': 7.1.0
'@octokit/request': 8.4.0
'@octokit/request-error': 5.1.0
'@octokit/types': 13.5.0
before-after-hook: 2.2.3
universal-user-agent: 6.0.1
'@octokit/endpoint@9.0.5':
dependencies:
'@octokit/types': 13.5.0
universal-user-agent: 6.0.1
'@octokit/graphql@7.1.0':
dependencies:
'@octokit/request': 8.4.0
'@octokit/types': 13.5.0
universal-user-agent: 6.0.1
'@octokit/oauth-app@6.1.0':
dependencies:
'@octokit/auth-oauth-app': 7.1.0
'@octokit/auth-oauth-user': 4.1.0
'@octokit/auth-unauthenticated': 5.0.1
'@octokit/core': 5.2.0
'@octokit/oauth-authorization-url': 6.0.2
'@octokit/oauth-methods': 4.1.0
'@types/aws-lambda': 8.10.137
universal-user-agent: 6.0.1
'@octokit/oauth-authorization-url@6.0.2': {}
'@octokit/oauth-methods@4.1.0':
dependencies:
'@octokit/oauth-authorization-url': 6.0.2
'@octokit/request': 8.4.0
'@octokit/request-error': 5.1.0
'@octokit/types': 13.5.0
btoa-lite: 1.0.0
'@octokit/openapi-types@20.0.0': {}
'@octokit/openapi-types@22.2.0': {}
'@octokit/plugin-paginate-graphql@4.0.1(@octokit/core@5.2.0)':
dependencies:
'@octokit/core': 5.2.0
'@octokit/plugin-paginate-rest@9.2.1(@octokit/core@5.2.0)':
dependencies:
'@octokit/core': 5.2.0
'@octokit/types': 12.6.0
'@octokit/plugin-rest-endpoint-methods@10.4.1(@octokit/core@5.2.0)':
dependencies:
'@octokit/core': 5.2.0
'@octokit/types': 12.6.0
'@octokit/plugin-retry@6.0.1(@octokit/core@5.2.0)':
dependencies:
'@octokit/core': 5.2.0
'@octokit/request-error': 5.1.0
'@octokit/types': 12.6.0
bottleneck: 2.19.5
'@octokit/plugin-throttling@8.2.0(@octokit/core@5.2.0)':
dependencies:
'@octokit/core': 5.2.0
'@octokit/types': 12.6.0
bottleneck: 2.19.5
'@octokit/request-error@5.1.0':
dependencies:
'@octokit/types': 13.5.0
deprecation: 2.3.1
once: 1.4.0
'@octokit/request@8.4.0':
dependencies:
'@octokit/endpoint': 9.0.5
'@octokit/request-error': 5.1.0
'@octokit/types': 13.5.0
universal-user-agent: 6.0.1
'@octokit/types@12.6.0':
dependencies:
'@octokit/openapi-types': 20.0.0
'@octokit/types@13.5.0':
dependencies:
'@octokit/openapi-types': 22.2.0
'@octokit/webhooks-methods@4.1.0': {}
'@octokit/webhooks-types@7.4.0': {}
'@octokit/webhooks@12.2.0':
dependencies:
'@octokit/request-error': 5.1.0
'@octokit/webhooks-methods': 4.1.0
'@octokit/webhooks-types': 7.4.0
aggregate-error: 3.1.0
'@oozcitak/dom@1.15.10':
dependencies:
'@oozcitak/infra': 1.0.8
@ -2424,6 +2801,12 @@ snapshots:
'@trysound/sax@0.2.0': {}
'@tusbar/cache-control@1.0.1': {}
'@types/aws-lambda@8.10.137': {}
'@types/btoa-lite@1.0.2': {}
'@types/cookie@0.6.0': {}
'@types/debug@4.1.12':
@ -2438,6 +2821,10 @@ snapshots:
'@types/json-schema@7.0.15': {}
'@types/jsonwebtoken@9.0.6':
dependencies:
'@types/node': 20.12.7
'@types/katex@0.16.7': {}
'@types/mdast@4.0.3':
@ -2476,6 +2863,11 @@ snapshots:
acorn@8.11.3: {}
aggregate-error@3.1.0:
dependencies:
clean-stack: 2.2.0
indent-string: 4.0.0
ansi-colors@4.1.3: {}
ansi-regex@5.0.1: {}
@ -2519,10 +2911,14 @@ snapshots:
balanced-match@1.0.2: {}
before-after-hook@2.2.3: {}
binary-extensions@2.3.0: {}
boolbase@1.0.0: {}
bottleneck@2.19.5: {}
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
@ -2536,8 +2932,12 @@ snapshots:
dependencies:
fill-range: 7.0.1
btoa-lite@1.0.0: {}
buffer-crc32@0.2.13: {}
buffer-equal-constant-time@1.0.1: {}
buffer-from@1.1.2: {}
builtin-modules@3.3.0: {}
@ -2581,6 +2981,8 @@ snapshots:
dependencies:
source-map: 0.6.1
clean-stack@2.2.0: {}
code-red@1.0.4:
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
@ -2697,6 +3099,8 @@ snapshots:
deepmerge@4.3.1: {}
deprecation@2.3.1: {}
dequal@2.0.3: {}
detect-indent@6.1.0: {}
@ -2739,6 +3143,10 @@ snapshots:
eastasianwidth@0.2.0: {}
ecdsa-sig-formatter@1.0.11:
dependencies:
safe-buffer: 5.2.1
emoji-regex@8.0.0: {}
emoji-regex@9.2.2: {}
@ -2901,6 +3309,8 @@ snapshots:
import-meta-resolve@4.0.0: {}
indent-string@4.0.0: {}
inflight@1.0.6:
dependencies:
once: 1.4.0
@ -2970,6 +3380,30 @@ snapshots:
json5@2.2.3: {}
jsonwebtoken@9.0.2:
dependencies:
jws: 3.2.2
lodash.includes: 4.3.0
lodash.isboolean: 3.0.3
lodash.isinteger: 4.0.4
lodash.isnumber: 3.0.3
lodash.isplainobject: 4.0.6
lodash.isstring: 4.0.1
lodash.once: 4.1.1
ms: 2.1.2
semver: 7.6.0
jwa@1.4.1:
dependencies:
buffer-equal-constant-time: 1.0.1
ecdsa-sig-formatter: 1.0.11
safe-buffer: 5.2.1
jws@3.2.2:
dependencies:
jwa: 1.4.1
safe-buffer: 5.2.1
katex@0.16.10:
dependencies:
commander: 8.3.0
@ -2980,6 +3414,20 @@ snapshots:
lodash.camelcase@4.3.0: {}
lodash.includes@4.3.0: {}
lodash.isboolean@3.0.3: {}
lodash.isinteger@4.0.4: {}
lodash.isnumber@3.0.3: {}
lodash.isplainobject@4.0.6: {}
lodash.isstring@4.0.1: {}
lodash.once@4.1.1: {}
lodash@4.17.21: {}
longest-streak@2.0.4: {}
@ -3414,6 +3862,19 @@ snapshots:
dependencies:
boolbase: 1.0.0
octokit@3.2.0:
dependencies:
'@octokit/app': 14.1.0
'@octokit/core': 5.2.0
'@octokit/oauth-app': 6.1.0
'@octokit/plugin-paginate-graphql': 4.0.1(@octokit/core@5.2.0)
'@octokit/plugin-paginate-rest': 9.2.1(@octokit/core@5.2.0)
'@octokit/plugin-rest-endpoint-methods': 10.4.1(@octokit/core@5.2.0)
'@octokit/plugin-retry': 6.0.1(@octokit/core@5.2.0)
'@octokit/plugin-throttling': 8.2.0(@octokit/core@5.2.0)
'@octokit/request-error': 5.1.0
'@octokit/types': 12.6.0
once@1.4.0:
dependencies:
wrappy: 1.0.2
@ -3595,6 +4056,8 @@ snapshots:
dependencies:
mri: 1.2.0
safe-buffer@5.2.1: {}
safe-stable-stringify@2.4.3: {}
sander@0.5.1:
@ -3886,6 +4349,13 @@ snapshots:
unist-util-is: 6.0.0
unist-util-visit-parents: 6.0.1
universal-github-app-jwt@1.1.2:
dependencies:
'@types/jsonwebtoken': 9.0.6
jsonwebtoken: 9.0.2
universal-user-agent@6.0.1: {}
vfile-message@2.0.4:
dependencies:
'@types/unist': 2.0.10