Attic is a cozy space with lofty ambitions. attic.social
11
fork

Configure Feed

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

lexicons / fix favicon

+70 -2
+4
.gitignore
··· 1 1 /* 2 2 **/*.* 3 + !lexicons 4 + !lexicons/**/*.json 3 5 !src 4 6 !src/app.html 5 7 !src/**/*.ts 6 8 !src/**/*.svelte 9 + !src/routes/favicon.ico 7 10 !static 8 11 !static/**/*.css 12 + !static/**/*.ico 9 13 !static/**/*.png 10 14 !static/**/*.svg 11 15 !static/**/*.txt
+22
lexicons/social/attic/actor/profile.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "social.attic.actor.profile", 4 + "defs": { 5 + "main": { 6 + "key": "literal:self", 7 + "type": "record", 8 + "description": "A declaration of an Attic account profile.", 9 + "record": { 10 + "type": "object", 11 + "required": ["displayName"], 12 + "properties": { 13 + "displayName": { 14 + "type": "string", 15 + "maxGraphemes": 64, 16 + "maxLength": 640 17 + } 18 + } 19 + } 20 + } 21 + } 22 + }
+2 -1
package.json
··· 4 4 "version": "0.0.1", 5 5 "type": "module", 6 6 "scripts": { 7 + "lex": "lex-cli generate", 7 8 "dev": "vite dev", 8 9 "build": "vite build", 9 10 "preview": "vite preview", ··· 12 13 "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch" 13 14 }, 14 15 "devDependencies": { 16 + "@atcute/lex-cli": "^2.5.3", 15 17 "@sveltejs/adapter-auto": "^7.0.0", 16 18 "@sveltejs/kit": "^2.50.2", 17 19 "@sveltejs/vite-plugin-svelte": "^6.2.4", ··· 26 28 "@atcute/client": "^4.2.1", 27 29 "@atcute/identity-resolver": "^1.2.2", 28 30 "@atcute/identity-resolver-node": "^1.0.3", 29 - "@atcute/lexicon-doc": "^2.1.1", 30 31 "@atcute/lexicons": "^1.2.9", 31 32 "@atcute/oauth-node-client": "^1.1.0", 32 33 "@types/node": "^25.3.3",
+1
src/lexicons/index.ts
··· 1 + export * as SocialAtticActorProfile from "./types/social/attic/actor/profile.js";
+32
src/lexicons/types/social/attic/actor/profile.ts
··· 1 + import type {} from "@atcute/lexicons"; 2 + import * as v from "@atcute/lexicons/validations"; 3 + import type {} from "@atcute/lexicons/ambient"; 4 + 5 + const _mainSchema = /*#__PURE__*/ v.record( 6 + /*#__PURE__*/ v.literal("self"), 7 + /*#__PURE__*/ v.object({ 8 + $type: /*#__PURE__*/ v.literal("social.attic.actor.profile"), 9 + /** 10 + * @maxLength 640 11 + * @maxGraphemes 64 12 + */ 13 + displayName: /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ 14 + /*#__PURE__*/ v.stringLength(0, 640), 15 + /*#__PURE__*/ v.stringGraphemes(0, 64), 16 + ]), 17 + }), 18 + ); 19 + 20 + type main$schematype = typeof _mainSchema; 21 + 22 + export interface mainSchema extends main$schematype {} 23 + 24 + export const mainSchema = _mainSchema as mainSchema; 25 + 26 + export interface Main extends v.InferInput<typeof mainSchema> {} 27 + 28 + declare module "@atcute/lexicons/ambient" { 29 + interface Records { 30 + "social.attic.actor.profile": mainSchema; 31 + } 32 + }
+7
src/routes/favicon.ico/+server.ts
··· 1 + import type { RequestHandler } from "./$types.d.ts"; 2 + 3 + export const GET: RequestHandler = async (event) => { 4 + const response = await event.fetch("/images/favicon.ico"); 5 + response.headers.set("Content-Type", "image/x-icon"); 6 + return response; 7 + };
static/images/favicon.ico

This is a binary file and will not be displayed.

+2 -1
svelte.config.js
··· 5 5 kit: { 6 6 adapter: adapter(), 7 7 alias: { 8 - // $lib: "src/lib", 8 + $lexicons: "src/lexicons", 9 + $static: "static", 9 10 }, 10 11 env: { 11 12 publicPrefix: "PUBLIC",