An API you can curl, or open in a browser, to receive Bluesky data as markdown!
11
fork

Configure Feed

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

Initial commit from Create Next App

jack 373e92f0

+1401
+41
.gitignore
··· 1 + # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 + 3 + # dependencies 4 + /node_modules 5 + /.pnp 6 + .pnp.* 7 + .yarn/* 8 + !.yarn/patches 9 + !.yarn/plugins 10 + !.yarn/releases 11 + !.yarn/versions 12 + 13 + # testing 14 + /coverage 15 + 16 + # next.js 17 + /.next/ 18 + /out/ 19 + 20 + # production 21 + /build 22 + 23 + # misc 24 + .DS_Store 25 + *.pem 26 + 27 + # debug 28 + npm-debug.log* 29 + yarn-debug.log* 30 + yarn-error.log* 31 + .pnpm-debug.log* 32 + 33 + # env files (can opt-in for committing if needed) 34 + .env* 35 + 36 + # vercel 37 + .vercel 38 + 39 + # typescript 40 + *.tsbuildinfo 41 + next-env.d.ts
+36
README.md
··· 1 + This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). 2 + 3 + ## Getting Started 4 + 5 + First, run the development server: 6 + 7 + ```bash 8 + npm run dev 9 + # or 10 + yarn dev 11 + # or 12 + pnpm dev 13 + # or 14 + bun dev 15 + ``` 16 + 17 + Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. 18 + 19 + You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. 20 + 21 + This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. 22 + 23 + ## Learn More 24 + 25 + To learn more about Next.js, take a look at the following resources: 26 + 27 + - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. 28 + - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. 29 + 30 + You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! 31 + 32 + ## Deploy on Vercel 33 + 34 + The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. 35 + 36 + Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
app/favicon.ico

This is a binary file and will not be displayed.

+42
app/globals.css
··· 1 + :root { 2 + --background: #ffffff; 3 + --foreground: #171717; 4 + } 5 + 6 + @media (prefers-color-scheme: dark) { 7 + :root { 8 + --background: #0a0a0a; 9 + --foreground: #ededed; 10 + } 11 + } 12 + 13 + html, 14 + body { 15 + max-width: 100vw; 16 + overflow-x: hidden; 17 + } 18 + 19 + body { 20 + color: var(--foreground); 21 + background: var(--background); 22 + font-family: Arial, Helvetica, sans-serif; 23 + -webkit-font-smoothing: antialiased; 24 + -moz-osx-font-smoothing: grayscale; 25 + } 26 + 27 + * { 28 + box-sizing: border-box; 29 + padding: 0; 30 + margin: 0; 31 + } 32 + 33 + a { 34 + color: inherit; 35 + text-decoration: none; 36 + } 37 + 38 + @media (prefers-color-scheme: dark) { 39 + html { 40 + color-scheme: dark; 41 + } 42 + }
+32
app/layout.tsx
··· 1 + import type { Metadata } from "next"; 2 + import { Geist, Geist_Mono } from "next/font/google"; 3 + import "./globals.css"; 4 + 5 + const geistSans = Geist({ 6 + variable: "--font-geist-sans", 7 + subsets: ["latin"], 8 + }); 9 + 10 + const geistMono = Geist_Mono({ 11 + variable: "--font-geist-mono", 12 + subsets: ["latin"], 13 + }); 14 + 15 + export const metadata: Metadata = { 16 + title: "Create Next App", 17 + description: "Generated by create next app", 18 + }; 19 + 20 + export default function RootLayout({ 21 + children, 22 + }: Readonly<{ 23 + children: React.ReactNode; 24 + }>) { 25 + return ( 26 + <html lang="en"> 27 + <body className={`${geistSans.variable} ${geistMono.variable}`}> 28 + {children} 29 + </body> 30 + </html> 31 + ); 32 + }
+141
app/page.module.css
··· 1 + .page { 2 + --background: #fafafa; 3 + --foreground: #fff; 4 + 5 + --text-primary: #000; 6 + --text-secondary: #666; 7 + 8 + --button-primary-hover: #383838; 9 + --button-secondary-hover: #f2f2f2; 10 + --button-secondary-border: #ebebeb; 11 + 12 + display: flex; 13 + min-height: 100vh; 14 + align-items: center; 15 + justify-content: center; 16 + font-family: var(--font-geist-sans); 17 + background-color: var(--background); 18 + } 19 + 20 + .main { 21 + display: flex; 22 + min-height: 100vh; 23 + width: 100%; 24 + max-width: 800px; 25 + flex-direction: column; 26 + align-items: flex-start; 27 + justify-content: space-between; 28 + background-color: var(--foreground); 29 + padding: 120px 60px; 30 + } 31 + 32 + .intro { 33 + display: flex; 34 + flex-direction: column; 35 + align-items: flex-start; 36 + text-align: left; 37 + gap: 24px; 38 + } 39 + 40 + .intro h1 { 41 + max-width: 320px; 42 + font-size: 40px; 43 + font-weight: 600; 44 + line-height: 48px; 45 + letter-spacing: -2.4px; 46 + text-wrap: balance; 47 + color: var(--text-primary); 48 + } 49 + 50 + .intro p { 51 + max-width: 440px; 52 + font-size: 18px; 53 + line-height: 32px; 54 + text-wrap: balance; 55 + color: var(--text-secondary); 56 + } 57 + 58 + .intro a { 59 + font-weight: 500; 60 + color: var(--text-primary); 61 + } 62 + 63 + .ctas { 64 + display: flex; 65 + flex-direction: row; 66 + width: 100%; 67 + max-width: 440px; 68 + gap: 16px; 69 + font-size: 14px; 70 + } 71 + 72 + .ctas a { 73 + display: flex; 74 + justify-content: center; 75 + align-items: center; 76 + height: 40px; 77 + padding: 0 16px; 78 + border-radius: 128px; 79 + border: 1px solid transparent; 80 + transition: 0.2s; 81 + cursor: pointer; 82 + width: fit-content; 83 + font-weight: 500; 84 + } 85 + 86 + a.primary { 87 + background: var(--text-primary); 88 + color: var(--background); 89 + gap: 8px; 90 + } 91 + 92 + a.secondary { 93 + border-color: var(--button-secondary-border); 94 + } 95 + 96 + /* Enable hover only on non-touch devices */ 97 + @media (hover: hover) and (pointer: fine) { 98 + a.primary:hover { 99 + background: var(--button-primary-hover); 100 + border-color: transparent; 101 + } 102 + 103 + a.secondary:hover { 104 + background: var(--button-secondary-hover); 105 + border-color: transparent; 106 + } 107 + } 108 + 109 + @media (max-width: 600px) { 110 + .main { 111 + padding: 48px 24px; 112 + } 113 + 114 + .intro { 115 + gap: 16px; 116 + } 117 + 118 + .intro h1 { 119 + font-size: 32px; 120 + line-height: 40px; 121 + letter-spacing: -1.92px; 122 + } 123 + } 124 + 125 + @media (prefers-color-scheme: dark) { 126 + .logo { 127 + filter: invert(); 128 + } 129 + 130 + .page { 131 + --background: #000; 132 + --foreground: #000; 133 + 134 + --text-primary: #ededed; 135 + --text-secondary: #999; 136 + 137 + --button-primary-hover: #ccc; 138 + --button-secondary-hover: #1a1a1a; 139 + --button-secondary-border: #1a1a1a; 140 + } 141 + }
+66
app/page.tsx
··· 1 + import Image from "next/image"; 2 + import styles from "./page.module.css"; 3 + 4 + export default function Home() { 5 + return ( 6 + <div className={styles.page}> 7 + <main className={styles.main}> 8 + <Image 9 + className={styles.logo} 10 + src="/next.svg" 11 + alt="Next.js logo" 12 + width={100} 13 + height={20} 14 + priority 15 + /> 16 + <div className={styles.intro}> 17 + <h1>To get started, edit the page.tsx file.</h1> 18 + <p> 19 + Looking for a starting point or more instructions? Head over to{" "} 20 + <a 21 + href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" 22 + target="_blank" 23 + rel="noopener noreferrer" 24 + > 25 + Templates 26 + </a>{" "} 27 + or the{" "} 28 + <a 29 + href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" 30 + target="_blank" 31 + rel="noopener noreferrer" 32 + > 33 + Learning 34 + </a>{" "} 35 + center. 36 + </p> 37 + </div> 38 + <div className={styles.ctas}> 39 + <a 40 + className={styles.primary} 41 + href="https://vercel.com/new?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app" 42 + target="_blank" 43 + rel="noopener noreferrer" 44 + > 45 + <Image 46 + className={styles.logo} 47 + src="/vercel.svg" 48 + alt="Vercel logomark" 49 + width={16} 50 + height={16} 51 + /> 52 + Deploy Now 53 + </a> 54 + <a 55 + className={styles.secondary} 56 + href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app" 57 + target="_blank" 58 + rel="noopener noreferrer" 59 + > 60 + Documentation 61 + </a> 62 + </div> 63 + </main> 64 + </div> 65 + ); 66 + }
+7
next.config.ts
··· 1 + import type { NextConfig } from "next"; 2 + 3 + const nextConfig: NextConfig = { 4 + /* config options here */ 5 + }; 6 + 7 + export default nextConfig;
+976
package-lock.json
··· 1 + { 2 + "name": "bsky-markdown-api", 3 + "version": "0.1.0", 4 + "lockfileVersion": 3, 5 + "requires": true, 6 + "packages": { 7 + "": { 8 + "name": "bsky-markdown-api", 9 + "version": "0.1.0", 10 + "dependencies": { 11 + "next": "16.1.6", 12 + "react": "19.2.3", 13 + "react-dom": "19.2.3" 14 + }, 15 + "devDependencies": { 16 + "@types/node": "^20", 17 + "@types/react": "^19", 18 + "@types/react-dom": "^19", 19 + "typescript": "^5" 20 + } 21 + }, 22 + "node_modules/@emnapi/runtime": { 23 + "version": "1.9.0", 24 + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.0.tgz", 25 + "integrity": "sha512-QN75eB0IH2ywSpRpNddCRfQIhmJYBCJ1x5Lb3IscKAL8bMnVAKnRg8dCoXbHzVLLH7P38N2Z3mtulB7W0J0FKw==", 26 + "license": "MIT", 27 + "optional": true, 28 + "dependencies": { 29 + "tslib": "^2.4.0" 30 + } 31 + }, 32 + "node_modules/@img/colour": { 33 + "version": "1.1.0", 34 + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", 35 + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", 36 + "license": "MIT", 37 + "optional": true, 38 + "engines": { 39 + "node": ">=18" 40 + } 41 + }, 42 + "node_modules/@img/sharp-darwin-arm64": { 43 + "version": "0.34.5", 44 + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", 45 + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", 46 + "cpu": [ 47 + "arm64" 48 + ], 49 + "license": "Apache-2.0", 50 + "optional": true, 51 + "os": [ 52 + "darwin" 53 + ], 54 + "engines": { 55 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 56 + }, 57 + "funding": { 58 + "url": "https://opencollective.com/libvips" 59 + }, 60 + "optionalDependencies": { 61 + "@img/sharp-libvips-darwin-arm64": "1.2.4" 62 + } 63 + }, 64 + "node_modules/@img/sharp-darwin-x64": { 65 + "version": "0.34.5", 66 + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", 67 + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", 68 + "cpu": [ 69 + "x64" 70 + ], 71 + "license": "Apache-2.0", 72 + "optional": true, 73 + "os": [ 74 + "darwin" 75 + ], 76 + "engines": { 77 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 78 + }, 79 + "funding": { 80 + "url": "https://opencollective.com/libvips" 81 + }, 82 + "optionalDependencies": { 83 + "@img/sharp-libvips-darwin-x64": "1.2.4" 84 + } 85 + }, 86 + "node_modules/@img/sharp-libvips-darwin-arm64": { 87 + "version": "1.2.4", 88 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", 89 + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", 90 + "cpu": [ 91 + "arm64" 92 + ], 93 + "license": "LGPL-3.0-or-later", 94 + "optional": true, 95 + "os": [ 96 + "darwin" 97 + ], 98 + "funding": { 99 + "url": "https://opencollective.com/libvips" 100 + } 101 + }, 102 + "node_modules/@img/sharp-libvips-darwin-x64": { 103 + "version": "1.2.4", 104 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", 105 + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", 106 + "cpu": [ 107 + "x64" 108 + ], 109 + "license": "LGPL-3.0-or-later", 110 + "optional": true, 111 + "os": [ 112 + "darwin" 113 + ], 114 + "funding": { 115 + "url": "https://opencollective.com/libvips" 116 + } 117 + }, 118 + "node_modules/@img/sharp-libvips-linux-arm": { 119 + "version": "1.2.4", 120 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", 121 + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", 122 + "cpu": [ 123 + "arm" 124 + ], 125 + "license": "LGPL-3.0-or-later", 126 + "optional": true, 127 + "os": [ 128 + "linux" 129 + ], 130 + "funding": { 131 + "url": "https://opencollective.com/libvips" 132 + } 133 + }, 134 + "node_modules/@img/sharp-libvips-linux-arm64": { 135 + "version": "1.2.4", 136 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", 137 + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", 138 + "cpu": [ 139 + "arm64" 140 + ], 141 + "license": "LGPL-3.0-or-later", 142 + "optional": true, 143 + "os": [ 144 + "linux" 145 + ], 146 + "funding": { 147 + "url": "https://opencollective.com/libvips" 148 + } 149 + }, 150 + "node_modules/@img/sharp-libvips-linux-ppc64": { 151 + "version": "1.2.4", 152 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", 153 + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", 154 + "cpu": [ 155 + "ppc64" 156 + ], 157 + "license": "LGPL-3.0-or-later", 158 + "optional": true, 159 + "os": [ 160 + "linux" 161 + ], 162 + "funding": { 163 + "url": "https://opencollective.com/libvips" 164 + } 165 + }, 166 + "node_modules/@img/sharp-libvips-linux-riscv64": { 167 + "version": "1.2.4", 168 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", 169 + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", 170 + "cpu": [ 171 + "riscv64" 172 + ], 173 + "license": "LGPL-3.0-or-later", 174 + "optional": true, 175 + "os": [ 176 + "linux" 177 + ], 178 + "funding": { 179 + "url": "https://opencollective.com/libvips" 180 + } 181 + }, 182 + "node_modules/@img/sharp-libvips-linux-s390x": { 183 + "version": "1.2.4", 184 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", 185 + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", 186 + "cpu": [ 187 + "s390x" 188 + ], 189 + "license": "LGPL-3.0-or-later", 190 + "optional": true, 191 + "os": [ 192 + "linux" 193 + ], 194 + "funding": { 195 + "url": "https://opencollective.com/libvips" 196 + } 197 + }, 198 + "node_modules/@img/sharp-libvips-linux-x64": { 199 + "version": "1.2.4", 200 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", 201 + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", 202 + "cpu": [ 203 + "x64" 204 + ], 205 + "license": "LGPL-3.0-or-later", 206 + "optional": true, 207 + "os": [ 208 + "linux" 209 + ], 210 + "funding": { 211 + "url": "https://opencollective.com/libvips" 212 + } 213 + }, 214 + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { 215 + "version": "1.2.4", 216 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", 217 + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", 218 + "cpu": [ 219 + "arm64" 220 + ], 221 + "license": "LGPL-3.0-or-later", 222 + "optional": true, 223 + "os": [ 224 + "linux" 225 + ], 226 + "funding": { 227 + "url": "https://opencollective.com/libvips" 228 + } 229 + }, 230 + "node_modules/@img/sharp-libvips-linuxmusl-x64": { 231 + "version": "1.2.4", 232 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", 233 + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", 234 + "cpu": [ 235 + "x64" 236 + ], 237 + "license": "LGPL-3.0-or-later", 238 + "optional": true, 239 + "os": [ 240 + "linux" 241 + ], 242 + "funding": { 243 + "url": "https://opencollective.com/libvips" 244 + } 245 + }, 246 + "node_modules/@img/sharp-linux-arm": { 247 + "version": "0.34.5", 248 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", 249 + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", 250 + "cpu": [ 251 + "arm" 252 + ], 253 + "license": "Apache-2.0", 254 + "optional": true, 255 + "os": [ 256 + "linux" 257 + ], 258 + "engines": { 259 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 260 + }, 261 + "funding": { 262 + "url": "https://opencollective.com/libvips" 263 + }, 264 + "optionalDependencies": { 265 + "@img/sharp-libvips-linux-arm": "1.2.4" 266 + } 267 + }, 268 + "node_modules/@img/sharp-linux-arm64": { 269 + "version": "0.34.5", 270 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", 271 + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", 272 + "cpu": [ 273 + "arm64" 274 + ], 275 + "license": "Apache-2.0", 276 + "optional": true, 277 + "os": [ 278 + "linux" 279 + ], 280 + "engines": { 281 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 282 + }, 283 + "funding": { 284 + "url": "https://opencollective.com/libvips" 285 + }, 286 + "optionalDependencies": { 287 + "@img/sharp-libvips-linux-arm64": "1.2.4" 288 + } 289 + }, 290 + "node_modules/@img/sharp-linux-ppc64": { 291 + "version": "0.34.5", 292 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", 293 + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", 294 + "cpu": [ 295 + "ppc64" 296 + ], 297 + "license": "Apache-2.0", 298 + "optional": true, 299 + "os": [ 300 + "linux" 301 + ], 302 + "engines": { 303 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 304 + }, 305 + "funding": { 306 + "url": "https://opencollective.com/libvips" 307 + }, 308 + "optionalDependencies": { 309 + "@img/sharp-libvips-linux-ppc64": "1.2.4" 310 + } 311 + }, 312 + "node_modules/@img/sharp-linux-riscv64": { 313 + "version": "0.34.5", 314 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", 315 + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", 316 + "cpu": [ 317 + "riscv64" 318 + ], 319 + "license": "Apache-2.0", 320 + "optional": true, 321 + "os": [ 322 + "linux" 323 + ], 324 + "engines": { 325 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 326 + }, 327 + "funding": { 328 + "url": "https://opencollective.com/libvips" 329 + }, 330 + "optionalDependencies": { 331 + "@img/sharp-libvips-linux-riscv64": "1.2.4" 332 + } 333 + }, 334 + "node_modules/@img/sharp-linux-s390x": { 335 + "version": "0.34.5", 336 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", 337 + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", 338 + "cpu": [ 339 + "s390x" 340 + ], 341 + "license": "Apache-2.0", 342 + "optional": true, 343 + "os": [ 344 + "linux" 345 + ], 346 + "engines": { 347 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 348 + }, 349 + "funding": { 350 + "url": "https://opencollective.com/libvips" 351 + }, 352 + "optionalDependencies": { 353 + "@img/sharp-libvips-linux-s390x": "1.2.4" 354 + } 355 + }, 356 + "node_modules/@img/sharp-linux-x64": { 357 + "version": "0.34.5", 358 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", 359 + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", 360 + "cpu": [ 361 + "x64" 362 + ], 363 + "license": "Apache-2.0", 364 + "optional": true, 365 + "os": [ 366 + "linux" 367 + ], 368 + "engines": { 369 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 370 + }, 371 + "funding": { 372 + "url": "https://opencollective.com/libvips" 373 + }, 374 + "optionalDependencies": { 375 + "@img/sharp-libvips-linux-x64": "1.2.4" 376 + } 377 + }, 378 + "node_modules/@img/sharp-linuxmusl-arm64": { 379 + "version": "0.34.5", 380 + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", 381 + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", 382 + "cpu": [ 383 + "arm64" 384 + ], 385 + "license": "Apache-2.0", 386 + "optional": true, 387 + "os": [ 388 + "linux" 389 + ], 390 + "engines": { 391 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 392 + }, 393 + "funding": { 394 + "url": "https://opencollective.com/libvips" 395 + }, 396 + "optionalDependencies": { 397 + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" 398 + } 399 + }, 400 + "node_modules/@img/sharp-linuxmusl-x64": { 401 + "version": "0.34.5", 402 + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", 403 + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", 404 + "cpu": [ 405 + "x64" 406 + ], 407 + "license": "Apache-2.0", 408 + "optional": true, 409 + "os": [ 410 + "linux" 411 + ], 412 + "engines": { 413 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 414 + }, 415 + "funding": { 416 + "url": "https://opencollective.com/libvips" 417 + }, 418 + "optionalDependencies": { 419 + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" 420 + } 421 + }, 422 + "node_modules/@img/sharp-wasm32": { 423 + "version": "0.34.5", 424 + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", 425 + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", 426 + "cpu": [ 427 + "wasm32" 428 + ], 429 + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", 430 + "optional": true, 431 + "dependencies": { 432 + "@emnapi/runtime": "^1.7.0" 433 + }, 434 + "engines": { 435 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 436 + }, 437 + "funding": { 438 + "url": "https://opencollective.com/libvips" 439 + } 440 + }, 441 + "node_modules/@img/sharp-win32-arm64": { 442 + "version": "0.34.5", 443 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", 444 + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", 445 + "cpu": [ 446 + "arm64" 447 + ], 448 + "license": "Apache-2.0 AND LGPL-3.0-or-later", 449 + "optional": true, 450 + "os": [ 451 + "win32" 452 + ], 453 + "engines": { 454 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 455 + }, 456 + "funding": { 457 + "url": "https://opencollective.com/libvips" 458 + } 459 + }, 460 + "node_modules/@img/sharp-win32-ia32": { 461 + "version": "0.34.5", 462 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", 463 + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", 464 + "cpu": [ 465 + "ia32" 466 + ], 467 + "license": "Apache-2.0 AND LGPL-3.0-or-later", 468 + "optional": true, 469 + "os": [ 470 + "win32" 471 + ], 472 + "engines": { 473 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 474 + }, 475 + "funding": { 476 + "url": "https://opencollective.com/libvips" 477 + } 478 + }, 479 + "node_modules/@img/sharp-win32-x64": { 480 + "version": "0.34.5", 481 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", 482 + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", 483 + "cpu": [ 484 + "x64" 485 + ], 486 + "license": "Apache-2.0 AND LGPL-3.0-or-later", 487 + "optional": true, 488 + "os": [ 489 + "win32" 490 + ], 491 + "engines": { 492 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 493 + }, 494 + "funding": { 495 + "url": "https://opencollective.com/libvips" 496 + } 497 + }, 498 + "node_modules/@next/env": { 499 + "version": "16.1.6", 500 + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.1.6.tgz", 501 + "integrity": "sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ==", 502 + "license": "MIT" 503 + }, 504 + "node_modules/@next/swc-darwin-arm64": { 505 + "version": "16.1.6", 506 + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.1.6.tgz", 507 + "integrity": "sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw==", 508 + "cpu": [ 509 + "arm64" 510 + ], 511 + "license": "MIT", 512 + "optional": true, 513 + "os": [ 514 + "darwin" 515 + ], 516 + "engines": { 517 + "node": ">= 10" 518 + } 519 + }, 520 + "node_modules/@next/swc-darwin-x64": { 521 + "version": "16.1.6", 522 + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.1.6.tgz", 523 + "integrity": "sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ==", 524 + "cpu": [ 525 + "x64" 526 + ], 527 + "license": "MIT", 528 + "optional": true, 529 + "os": [ 530 + "darwin" 531 + ], 532 + "engines": { 533 + "node": ">= 10" 534 + } 535 + }, 536 + "node_modules/@next/swc-linux-arm64-gnu": { 537 + "version": "16.1.6", 538 + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.1.6.tgz", 539 + "integrity": "sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==", 540 + "cpu": [ 541 + "arm64" 542 + ], 543 + "license": "MIT", 544 + "optional": true, 545 + "os": [ 546 + "linux" 547 + ], 548 + "engines": { 549 + "node": ">= 10" 550 + } 551 + }, 552 + "node_modules/@next/swc-linux-arm64-musl": { 553 + "version": "16.1.6", 554 + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.1.6.tgz", 555 + "integrity": "sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==", 556 + "cpu": [ 557 + "arm64" 558 + ], 559 + "license": "MIT", 560 + "optional": true, 561 + "os": [ 562 + "linux" 563 + ], 564 + "engines": { 565 + "node": ">= 10" 566 + } 567 + }, 568 + "node_modules/@next/swc-linux-x64-gnu": { 569 + "version": "16.1.6", 570 + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.1.6.tgz", 571 + "integrity": "sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ==", 572 + "cpu": [ 573 + "x64" 574 + ], 575 + "license": "MIT", 576 + "optional": true, 577 + "os": [ 578 + "linux" 579 + ], 580 + "engines": { 581 + "node": ">= 10" 582 + } 583 + }, 584 + "node_modules/@next/swc-linux-x64-musl": { 585 + "version": "16.1.6", 586 + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.1.6.tgz", 587 + "integrity": "sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==", 588 + "cpu": [ 589 + "x64" 590 + ], 591 + "license": "MIT", 592 + "optional": true, 593 + "os": [ 594 + "linux" 595 + ], 596 + "engines": { 597 + "node": ">= 10" 598 + } 599 + }, 600 + "node_modules/@next/swc-win32-arm64-msvc": { 601 + "version": "16.1.6", 602 + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.1.6.tgz", 603 + "integrity": "sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw==", 604 + "cpu": [ 605 + "arm64" 606 + ], 607 + "license": "MIT", 608 + "optional": true, 609 + "os": [ 610 + "win32" 611 + ], 612 + "engines": { 613 + "node": ">= 10" 614 + } 615 + }, 616 + "node_modules/@next/swc-win32-x64-msvc": { 617 + "version": "16.1.6", 618 + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.1.6.tgz", 619 + "integrity": "sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A==", 620 + "cpu": [ 621 + "x64" 622 + ], 623 + "license": "MIT", 624 + "optional": true, 625 + "os": [ 626 + "win32" 627 + ], 628 + "engines": { 629 + "node": ">= 10" 630 + } 631 + }, 632 + "node_modules/@swc/helpers": { 633 + "version": "0.5.15", 634 + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", 635 + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", 636 + "license": "Apache-2.0", 637 + "dependencies": { 638 + "tslib": "^2.8.0" 639 + } 640 + }, 641 + "node_modules/@types/node": { 642 + "version": "20.19.37", 643 + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.37.tgz", 644 + "integrity": "sha512-8kzdPJ3FsNsVIurqBs7oodNnCEVbni9yUEkaHbgptDACOPW04jimGagZ51E6+lXUwJjgnBw+hyko/lkFWCldqw==", 645 + "dev": true, 646 + "license": "MIT", 647 + "dependencies": { 648 + "undici-types": "~6.21.0" 649 + } 650 + }, 651 + "node_modules/@types/react": { 652 + "version": "19.2.14", 653 + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", 654 + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", 655 + "dev": true, 656 + "license": "MIT", 657 + "dependencies": { 658 + "csstype": "^3.2.2" 659 + } 660 + }, 661 + "node_modules/@types/react-dom": { 662 + "version": "19.2.3", 663 + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", 664 + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", 665 + "dev": true, 666 + "license": "MIT", 667 + "peerDependencies": { 668 + "@types/react": "^19.2.0" 669 + } 670 + }, 671 + "node_modules/baseline-browser-mapping": { 672 + "version": "2.10.8", 673 + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.8.tgz", 674 + "integrity": "sha512-PCLz/LXGBsNTErbtB6i5u4eLpHeMfi93aUv5duMmj6caNu6IphS4q6UevDnL36sZQv9lrP11dbPKGMaXPwMKfQ==", 675 + "license": "Apache-2.0", 676 + "bin": { 677 + "baseline-browser-mapping": "dist/cli.cjs" 678 + }, 679 + "engines": { 680 + "node": ">=6.0.0" 681 + } 682 + }, 683 + "node_modules/caniuse-lite": { 684 + "version": "1.0.30001779", 685 + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001779.tgz", 686 + "integrity": "sha512-U5og2PN7V4DMgF50YPNtnZJGWVLFjjsN3zb6uMT5VGYIewieDj1upwfuVNXf4Kor+89c3iCRJnSzMD5LmTvsfA==", 687 + "funding": [ 688 + { 689 + "type": "opencollective", 690 + "url": "https://opencollective.com/browserslist" 691 + }, 692 + { 693 + "type": "tidelift", 694 + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 695 + }, 696 + { 697 + "type": "github", 698 + "url": "https://github.com/sponsors/ai" 699 + } 700 + ], 701 + "license": "CC-BY-4.0" 702 + }, 703 + "node_modules/client-only": { 704 + "version": "0.0.1", 705 + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", 706 + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", 707 + "license": "MIT" 708 + }, 709 + "node_modules/csstype": { 710 + "version": "3.2.3", 711 + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", 712 + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", 713 + "dev": true, 714 + "license": "MIT" 715 + }, 716 + "node_modules/detect-libc": { 717 + "version": "2.1.2", 718 + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", 719 + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", 720 + "license": "Apache-2.0", 721 + "optional": true, 722 + "engines": { 723 + "node": ">=8" 724 + } 725 + }, 726 + "node_modules/nanoid": { 727 + "version": "3.3.11", 728 + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", 729 + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", 730 + "funding": [ 731 + { 732 + "type": "github", 733 + "url": "https://github.com/sponsors/ai" 734 + } 735 + ], 736 + "license": "MIT", 737 + "bin": { 738 + "nanoid": "bin/nanoid.cjs" 739 + }, 740 + "engines": { 741 + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 742 + } 743 + }, 744 + "node_modules/next": { 745 + "version": "16.1.6", 746 + "resolved": "https://registry.npmjs.org/next/-/next-16.1.6.tgz", 747 + "integrity": "sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==", 748 + "license": "MIT", 749 + "dependencies": { 750 + "@next/env": "16.1.6", 751 + "@swc/helpers": "0.5.15", 752 + "baseline-browser-mapping": "^2.8.3", 753 + "caniuse-lite": "^1.0.30001579", 754 + "postcss": "8.4.31", 755 + "styled-jsx": "5.1.6" 756 + }, 757 + "bin": { 758 + "next": "dist/bin/next" 759 + }, 760 + "engines": { 761 + "node": ">=20.9.0" 762 + }, 763 + "optionalDependencies": { 764 + "@next/swc-darwin-arm64": "16.1.6", 765 + "@next/swc-darwin-x64": "16.1.6", 766 + "@next/swc-linux-arm64-gnu": "16.1.6", 767 + "@next/swc-linux-arm64-musl": "16.1.6", 768 + "@next/swc-linux-x64-gnu": "16.1.6", 769 + "@next/swc-linux-x64-musl": "16.1.6", 770 + "@next/swc-win32-arm64-msvc": "16.1.6", 771 + "@next/swc-win32-x64-msvc": "16.1.6", 772 + "sharp": "^0.34.4" 773 + }, 774 + "peerDependencies": { 775 + "@opentelemetry/api": "^1.1.0", 776 + "@playwright/test": "^1.51.1", 777 + "babel-plugin-react-compiler": "*", 778 + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", 779 + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", 780 + "sass": "^1.3.0" 781 + }, 782 + "peerDependenciesMeta": { 783 + "@opentelemetry/api": { 784 + "optional": true 785 + }, 786 + "@playwright/test": { 787 + "optional": true 788 + }, 789 + "babel-plugin-react-compiler": { 790 + "optional": true 791 + }, 792 + "sass": { 793 + "optional": true 794 + } 795 + } 796 + }, 797 + "node_modules/picocolors": { 798 + "version": "1.1.1", 799 + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 800 + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 801 + "license": "ISC" 802 + }, 803 + "node_modules/postcss": { 804 + "version": "8.4.31", 805 + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", 806 + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", 807 + "funding": [ 808 + { 809 + "type": "opencollective", 810 + "url": "https://opencollective.com/postcss/" 811 + }, 812 + { 813 + "type": "tidelift", 814 + "url": "https://tidelift.com/funding/github/npm/postcss" 815 + }, 816 + { 817 + "type": "github", 818 + "url": "https://github.com/sponsors/ai" 819 + } 820 + ], 821 + "license": "MIT", 822 + "dependencies": { 823 + "nanoid": "^3.3.6", 824 + "picocolors": "^1.0.0", 825 + "source-map-js": "^1.0.2" 826 + }, 827 + "engines": { 828 + "node": "^10 || ^12 || >=14" 829 + } 830 + }, 831 + "node_modules/react": { 832 + "version": "19.2.3", 833 + "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", 834 + "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", 835 + "license": "MIT", 836 + "engines": { 837 + "node": ">=0.10.0" 838 + } 839 + }, 840 + "node_modules/react-dom": { 841 + "version": "19.2.3", 842 + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz", 843 + "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==", 844 + "license": "MIT", 845 + "dependencies": { 846 + "scheduler": "^0.27.0" 847 + }, 848 + "peerDependencies": { 849 + "react": "^19.2.3" 850 + } 851 + }, 852 + "node_modules/scheduler": { 853 + "version": "0.27.0", 854 + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", 855 + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", 856 + "license": "MIT" 857 + }, 858 + "node_modules/semver": { 859 + "version": "7.7.4", 860 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", 861 + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", 862 + "license": "ISC", 863 + "optional": true, 864 + "bin": { 865 + "semver": "bin/semver.js" 866 + }, 867 + "engines": { 868 + "node": ">=10" 869 + } 870 + }, 871 + "node_modules/sharp": { 872 + "version": "0.34.5", 873 + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", 874 + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", 875 + "hasInstallScript": true, 876 + "license": "Apache-2.0", 877 + "optional": true, 878 + "dependencies": { 879 + "@img/colour": "^1.0.0", 880 + "detect-libc": "^2.1.2", 881 + "semver": "^7.7.3" 882 + }, 883 + "engines": { 884 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 885 + }, 886 + "funding": { 887 + "url": "https://opencollective.com/libvips" 888 + }, 889 + "optionalDependencies": { 890 + "@img/sharp-darwin-arm64": "0.34.5", 891 + "@img/sharp-darwin-x64": "0.34.5", 892 + "@img/sharp-libvips-darwin-arm64": "1.2.4", 893 + "@img/sharp-libvips-darwin-x64": "1.2.4", 894 + "@img/sharp-libvips-linux-arm": "1.2.4", 895 + "@img/sharp-libvips-linux-arm64": "1.2.4", 896 + "@img/sharp-libvips-linux-ppc64": "1.2.4", 897 + "@img/sharp-libvips-linux-riscv64": "1.2.4", 898 + "@img/sharp-libvips-linux-s390x": "1.2.4", 899 + "@img/sharp-libvips-linux-x64": "1.2.4", 900 + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", 901 + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", 902 + "@img/sharp-linux-arm": "0.34.5", 903 + "@img/sharp-linux-arm64": "0.34.5", 904 + "@img/sharp-linux-ppc64": "0.34.5", 905 + "@img/sharp-linux-riscv64": "0.34.5", 906 + "@img/sharp-linux-s390x": "0.34.5", 907 + "@img/sharp-linux-x64": "0.34.5", 908 + "@img/sharp-linuxmusl-arm64": "0.34.5", 909 + "@img/sharp-linuxmusl-x64": "0.34.5", 910 + "@img/sharp-wasm32": "0.34.5", 911 + "@img/sharp-win32-arm64": "0.34.5", 912 + "@img/sharp-win32-ia32": "0.34.5", 913 + "@img/sharp-win32-x64": "0.34.5" 914 + } 915 + }, 916 + "node_modules/source-map-js": { 917 + "version": "1.2.1", 918 + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 919 + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 920 + "license": "BSD-3-Clause", 921 + "engines": { 922 + "node": ">=0.10.0" 923 + } 924 + }, 925 + "node_modules/styled-jsx": { 926 + "version": "5.1.6", 927 + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", 928 + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", 929 + "license": "MIT", 930 + "dependencies": { 931 + "client-only": "0.0.1" 932 + }, 933 + "engines": { 934 + "node": ">= 12.0.0" 935 + }, 936 + "peerDependencies": { 937 + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" 938 + }, 939 + "peerDependenciesMeta": { 940 + "@babel/core": { 941 + "optional": true 942 + }, 943 + "babel-plugin-macros": { 944 + "optional": true 945 + } 946 + } 947 + }, 948 + "node_modules/tslib": { 949 + "version": "2.8.1", 950 + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 951 + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 952 + "license": "0BSD" 953 + }, 954 + "node_modules/typescript": { 955 + "version": "5.9.3", 956 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", 957 + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", 958 + "dev": true, 959 + "license": "Apache-2.0", 960 + "bin": { 961 + "tsc": "bin/tsc", 962 + "tsserver": "bin/tsserver" 963 + }, 964 + "engines": { 965 + "node": ">=14.17" 966 + } 967 + }, 968 + "node_modules/undici-types": { 969 + "version": "6.21.0", 970 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", 971 + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", 972 + "dev": true, 973 + "license": "MIT" 974 + } 975 + } 976 + }
+21
package.json
··· 1 + { 2 + "name": "bsky-markdown-api", 3 + "version": "0.1.0", 4 + "private": true, 5 + "scripts": { 6 + "dev": "next dev", 7 + "build": "next build", 8 + "start": "next start" 9 + }, 10 + "dependencies": { 11 + "next": "16.1.6", 12 + "react": "19.2.3", 13 + "react-dom": "19.2.3" 14 + }, 15 + "devDependencies": { 16 + "@types/node": "^20", 17 + "@types/react": "^19", 18 + "@types/react-dom": "^19", 19 + "typescript": "^5" 20 + } 21 + }
+1
public/file.svg
··· 1 + <svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>
+1
public/globe.svg
··· 1 + <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>
+1
public/next.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
+1
public/vercel.svg
··· 1 + <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg>
+1
public/window.svg
··· 1 + <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg>
+34
tsconfig.json
··· 1 + { 2 + "compilerOptions": { 3 + "target": "ES2017", 4 + "lib": ["dom", "dom.iterable", "esnext"], 5 + "allowJs": true, 6 + "skipLibCheck": true, 7 + "strict": true, 8 + "noEmit": true, 9 + "esModuleInterop": true, 10 + "module": "esnext", 11 + "moduleResolution": "bundler", 12 + "resolveJsonModule": true, 13 + "isolatedModules": true, 14 + "jsx": "react-jsx", 15 + "incremental": true, 16 + "plugins": [ 17 + { 18 + "name": "next" 19 + } 20 + ], 21 + "paths": { 22 + "@/*": ["./*"] 23 + } 24 + }, 25 + "include": [ 26 + "next-env.d.ts", 27 + "**/*.ts", 28 + "**/*.tsx", 29 + ".next/types/**/*.ts", 30 + ".next/dev/types/**/*.ts", 31 + "**/*.mts" 32 + ], 33 + "exclude": ["node_modules"] 34 + }