diff --git a/package-lock.json b/package-lock.json index 73adb93..0ee32b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,6 @@ "name": "atproto-community", "version": "0.0.1", "dependencies": { - "@bryanguffey/astro-standard-site": "^1.0.3", "astro": "^6.1.7" }, "engines": { @@ -89,155 +88,6 @@ "node": "18.20.8 || ^20.3.0 || >=22.0.0" } }, - "node_modules/@atproto/api": { - "version": "0.15.27", - "resolved": "https://registry.npmjs.org/@atproto/api/-/api-0.15.27.tgz", - "integrity": "sha512-ok/WGafh1nz4t8pEQGtAF/32x2E2VDWU4af6BajkO5Gky2jp2q6cv6aB2A5yuvNNcc3XkYMYipsqVHVwLPMF9g==", - "license": "MIT", - "dependencies": { - "@atproto/common-web": "^0.4.2", - "@atproto/lexicon": "^0.4.12", - "@atproto/syntax": "^0.4.0", - "@atproto/xrpc": "^0.7.1", - "await-lock": "^2.2.2", - "multiformats": "^9.9.0", - "tlds": "^1.234.0", - "zod": "^3.23.8" - } - }, - "node_modules/@atproto/api/node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/@atproto/common-web": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.4.21.tgz", - "integrity": "sha512-Odq+wdk3YNasGCjjlpl3bCIPvqYHige5DLfMkIffNv/2PI/iIj5ZvAvMvJlJ59OhReKSxtpI0invx5UQPc3+fw==", - "license": "MIT", - "dependencies": { - "@atproto/lex-data": "^0.0.15", - "@atproto/lex-json": "^0.0.16", - "@atproto/syntax": "^0.5.4", - "zod": "^3.23.8" - } - }, - "node_modules/@atproto/common-web/node_modules/@atproto/syntax": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.5.4.tgz", - "integrity": "sha512-9XJOpMAgsGFxMEIp8nJ8AIWv+krrY1xQMj+wULbbXhQztQV+9aZ0TbG9Jtn3Op2or8Kr6OqyWR4ga9Z189kKDw==", - "license": "MIT", - "dependencies": { - "tslib": "^2.8.1" - } - }, - "node_modules/@atproto/common-web/node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/@atproto/lex-data": { - "version": "0.0.15", - "resolved": "https://registry.npmjs.org/@atproto/lex-data/-/lex-data-0.0.15.tgz", - "integrity": "sha512-ZsbGiaM5S3CnGrcTMbDGON3bLZzCi/Mx9UvcMREKSRujnF68eHgMiXxJqvykP7+QpOX6tYCK93axZkuJVhtSEw==", - "license": "MIT", - "dependencies": { - "multiformats": "^9.9.0", - "tslib": "^2.8.1", - "uint8arrays": "3.0.0", - "unicode-segmenter": "^0.14.0" - } - }, - "node_modules/@atproto/lex-json": { - "version": "0.0.16", - "resolved": "https://registry.npmjs.org/@atproto/lex-json/-/lex-json-0.0.16.tgz", - "integrity": "sha512-IgLgQ0krshVlrIYZ+heTBDbCnM3LmAgWvsaYn5MxvKA3LcBot3PG3ptdO8VOweVZ+WgCLuo39cz9EbUmIbqdtg==", - "license": "MIT", - "dependencies": { - "@atproto/lex-data": "^0.0.15", - "tslib": "^2.8.1" - } - }, - "node_modules/@atproto/lexicon": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.4.14.tgz", - "integrity": "sha512-jiKpmH1QER3Gvc7JVY5brwrfo+etFoe57tKPQX/SmPwjvUsFnJAow5xLIryuBaJgFAhnTZViXKs41t//pahGHQ==", - "license": "MIT", - "dependencies": { - "@atproto/common-web": "^0.4.2", - "@atproto/syntax": "^0.4.0", - "iso-datestring-validator": "^2.2.2", - "multiformats": "^9.9.0", - "zod": "^3.23.8" - } - }, - "node_modules/@atproto/lexicon/node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/@atproto/syntax": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.4.3.tgz", - "integrity": "sha512-YoZUz40YAJr5nPwvCDWgodEOlt5IftZqPJvA0JDWjuZKD8yXddTwSzXSaKQAzGOpuM+/A3uXRtPzJJqlScc+iA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.8.1" - } - }, - "node_modules/@atproto/xrpc": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.7.7.tgz", - "integrity": "sha512-K1ZyO/BU8JNtXX5dmPp7b5UrkLMMqpsIa/Lrj5D3Su+j1Xwq1m6QJ2XJ1AgjEjkI1v4Muzm7klianLE6XGxtmA==", - "license": "MIT", - "dependencies": { - "@atproto/lexicon": "^0.6.0", - "zod": "^3.23.8" - } - }, - "node_modules/@atproto/xrpc/node_modules/@atproto/lexicon": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.6.2.tgz", - "integrity": "sha512-p3Ly6hinVZW0ETuAXZMeUGwuMm3g8HvQMQ41yyEE6AL0hAkfeKFaZKos6BdBrr6CjkpbrDZqE8M+5+QOceysMw==", - "license": "MIT", - "dependencies": { - "@atproto/common-web": "^0.4.18", - "@atproto/syntax": "^0.5.0", - "iso-datestring-validator": "^2.2.2", - "multiformats": "^9.9.0", - "zod": "^3.23.8" - } - }, - "node_modules/@atproto/xrpc/node_modules/@atproto/syntax": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.5.4.tgz", - "integrity": "sha512-9XJOpMAgsGFxMEIp8nJ8AIWv+krrY1xQMj+wULbbXhQztQV+9aZ0TbG9Jtn3Op2or8Kr6OqyWR4ga9Z189kKDw==", - "license": "MIT", - "dependencies": { - "tslib": "^2.8.1" - } - }, - "node_modules/@atproto/xrpc/node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", @@ -284,28 +134,6 @@ "node": ">=6.9.0" } }, - "node_modules/@bryanguffey/astro-standard-site": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@bryanguffey/astro-standard-site/-/astro-standard-site-1.0.3.tgz", - "integrity": "sha512-+4//yk8rRD3ZfC9uOKY7OHu7Shm5qMZSgFTIcDs079hcoV42yF8mK8O0AI6QMFb7iMCPqN9rO+leP+PMEEmR3A==", - "license": "MIT", - "dependencies": { - "@atproto/api": "^0.15.0", - "zod": "^3.24.0" - }, - "peerDependencies": { - "astro": "^5.0.0" - } - }, - "node_modules/@bryanguffey/astro-standard-site/node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, "node_modules/@capsizecss/unpack": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-4.0.0.tgz", @@ -1878,12 +1706,6 @@ "sharp": "^0.34.0" } }, - "node_modules/await-lock": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/await-lock/-/await-lock-2.2.2.tgz", - "integrity": "sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==", - "license": "MIT" - }, "node_modules/axobject-query": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", @@ -2754,12 +2576,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/iso-datestring-validator": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/iso-datestring-validator/-/iso-datestring-validator-2.2.2.tgz", - "integrity": "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==", - "license": "MIT" - }, "node_modules/js-yaml": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", @@ -3630,12 +3446,6 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, - "node_modules/multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", - "license": "(Apache-2.0 AND MIT)" - }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", @@ -4394,15 +4204,6 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/tlds": { - "version": "1.261.0", - "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.261.0.tgz", - "integrity": "sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==", - "license": "MIT", - "bin": { - "tlds": "bin.js" - } - }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -4447,7 +4248,8 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" + "license": "0BSD", + "optional": true }, "node_modules/ufo": { "version": "1.6.3", @@ -4455,15 +4257,6 @@ "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", "license": "MIT" }, - "node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "license": "MIT", - "dependencies": { - "multiformats": "^9.4.2" - } - }, "node_modules/ultrahtml": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.6.0.tgz", @@ -4476,12 +4269,6 @@ "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", "license": "MIT" }, - "node_modules/unicode-segmenter": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/unicode-segmenter/-/unicode-segmenter-0.14.5.tgz", - "integrity": "sha512-jHGmj2LUuqDcX3hqY12Ql+uhUTn8huuxNZGq7GvtF6bSybzH3aFgedYu/KTzQStEgt1Ra2F3HxadNXsNjb3m3g==", - "license": "MIT" - }, "node_modules/unified": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", diff --git a/package.json b/package.json index ca8df09..47c6705 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,6 @@ "astro": "astro" }, "dependencies": { - "@bryanguffey/astro-standard-site": "^1.0.3", "astro": "^6.1.7" } } diff --git a/src/content.config.ts b/src/content.config.ts deleted file mode 100644 index 532caf9..0000000 --- a/src/content.config.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { defineCollection, z } from 'astro:content'; -import { standardSiteLoader } from '@bryanguffey/astro-standard-site/loader'; - -/** - * Wraps the standard-site loader to strip non-serializable fields - * that cause devalue errors in Astro's content store. - */ -function safeStandardSiteLoader(config: Parameters[0]) { - const inner = standardSiteLoader(config); - return { - name: inner.name, - async load(ctx: Parameters[0]) { - const realStore = ctx.store; - const wrappedStore = { - ...realStore, - set(entry: { id: string; data: unknown; digest?: string }) { - // Deep-clone and strip non-serializable data - const data = JSON.parse(JSON.stringify(entry.data, (_key, value) => { - // Strip Uint8Array, Buffer, and other non-POJO types - if (value instanceof Uint8Array || Buffer.isBuffer(value)) return undefined; - return value; - })); - realStore.set({ ...entry, data }); - }, - clear: realStore.clear.bind(realStore), - }; - return inner.load({ ...ctx, store: wrappedStore }); - }, - }; -} - -const blog = defineCollection({ - loader: safeStandardSiteLoader({ - repo: 'atmosphere.community', - service: 'https://hydnum.us-west.host.bsky.network', - limit: 100, - }), - schema: z.object({ - id: z.string(), - uri: z.string(), - cid: z.string(), - title: z.string().optional(), - site: z.string().optional(), - publishedAt: z.coerce.date().optional(), - updatedAt: z.coerce.date().optional(), - path: z.string().optional(), - url: z.string().optional(), - description: z.string().optional(), - tags: z.array(z.string()).default([]), - textContent: z.string().optional(), - content: z.unknown().optional(), - }), -}); - -export const collections = { blog };