+104
-124
frontend/.svelte-kit/ambient.d.ts
+104
-124
frontend/.svelte-kit/ambient.d.ts
···
26
26
* ```
27
27
*/
28
28
declare module '$env/static/private' {
29
-
export const NVM_INC: string;
30
-
export const NIX_PROFILES: string;
31
-
export const TERM_PROGRAM: string;
32
-
export const NODE: string;
33
-
export const _P9K_TTY: string;
34
-
export const NVM_CD_FLAGS: string;
35
-
export const __ETC_PROFILE_NIX_SOURCED: string;
36
-
export const TERM: string;
37
29
export const SHELL: string;
38
-
export const TMPDIR: string;
39
-
export const HOMEBREW_REPOSITORY: string;
40
-
export const CONDA_SHLVL: string;
30
+
export const LSCOLORS: string;
31
+
export const WINDOWID: string;
32
+
export const NVM_RC_VERSION: string;
33
+
export const COLORTERM: string;
34
+
export const XDG_CONFIG_DIRS: string;
35
+
export const LESS: string;
36
+
export const XPC_FLAGS: string;
41
37
export const TERM_PROGRAM_VERSION: string;
42
-
export const CONDA_PROMPT_MODIFIER: string;
43
-
export const WINDOWID: string;
38
+
export const _P9K_TTY: string;
39
+
export const NODE: string;
40
+
export const __CFBundleIdentifier: string;
41
+
export const SSH_AUTH_SOCK: string;
42
+
export const P9K_TTY: string;
43
+
export const OPENAI_API_KEY: string;
44
44
export const npm_config_local_prefix: string;
45
+
export const HOMEBREW_PREFIX: string;
46
+
export const EDITOR: string;
47
+
export const PWD: string;
48
+
export const NIX_PROFILES: string;
49
+
export const CLAUDE_KEY: string;
50
+
export const LOGNAME: string;
51
+
export const NIX_PATH: string;
52
+
export const BUN_WHICH_IGNORE_CWD: string;
53
+
export const __NIX_DARWIN_SET_ENVIRONMENT_DONE: string;
54
+
export const _: string;
55
+
export const COMMAND_MODE: string;
56
+
export const HOME: string;
57
+
export const LANG: string;
58
+
export const LS_COLORS: string;
59
+
export const npm_package_version: string;
60
+
export const NIX_SSL_CERT_FILE: string;
61
+
export const TMPDIR: string;
62
+
export const INIT_CWD: string;
63
+
export const NIX_USER_PROFILE_DIR: string;
64
+
export const INFOPATH: string;
65
+
export const NVM_DIR: string;
66
+
export const TERM: string;
67
+
export const npm_package_name: string;
45
68
export const ZSH: string;
46
69
export const USER: string;
47
-
export const NVM_DIR: string;
48
-
export const PGPORT: string;
49
-
export const LS_COLORS: string;
50
-
export const COMMAND_MODE: string;
51
-
export const CONDA_EXE: string;
52
-
export const SSH_AUTH_SOCK: string;
53
-
export const PGUSER: string;
54
-
export const __CF_USER_TEXT_ENCODING: string;
55
-
export const PYTORCH_ENABLE_MPS_FALLBACK: string;
70
+
export const HOMEBREW_CELLAR: string;
71
+
export const SHLVL: string;
72
+
export const NVM_CD_FLAGS: string;
73
+
export const PAGER: string;
74
+
export const HOMEBREW_REPOSITORY: string;
75
+
export const _P9K_SSH_TTY: string;
76
+
export const XPC_SERVICE_NAME: string;
77
+
export const npm_config_user_agent: string;
78
+
export const TERMINFO_DIRS: string;
56
79
export const npm_execpath: string;
57
-
export const PGPASSWORD: string;
58
-
export const PGDATABASE: string;
59
-
export const PAGER: string;
60
-
export const _CE_CONDA: string;
61
-
export const LSCOLORS: string;
62
-
export const PATH: string;
63
80
export const npm_package_json: string;
64
-
export const _: string;
65
-
export const __CFBundleIdentifier: string;
66
-
export const CONDA_PREFIX: string;
67
-
export const npm_command: string;
68
-
export const PWD: string;
69
-
export const npm_lifecycle_event: string;
81
+
export const BUN_INSTALL: string;
70
82
export const P9K_SSH: string;
71
-
export const EDITOR: string;
72
-
export const npm_package_name: string;
73
-
export const P9K_TTY: string;
74
-
export const LANG: string;
75
-
export const PGHOST: string;
76
-
export const XPC_FLAGS: string;
77
-
export const NIX_SSL_CERT_FILE: string;
78
-
export const npm_package_version: string;
79
-
export const _CE_M: string;
80
-
export const XPC_SERVICE_NAME: string;
81
-
export const SHLVL: string;
82
-
export const HOME: string;
83
-
export const HOMEBREW_PREFIX: string;
84
-
export const LOGNAME: string;
85
-
export const LESS: string;
86
-
export const CONDA_PYTHON_EXE: string;
87
-
export const npm_lifecycle_script: string;
83
+
export const XDG_DATA_DIRS: string;
84
+
export const PATH: string;
88
85
export const ALACRITTY_WINDOW_ID: string;
89
-
export const XDG_DATA_DIRS: string;
86
+
export const ENVMAN_LOAD: string;
90
87
export const ZED_TERM: string;
91
-
export const NVM_BIN: string;
92
-
export const CONDA_DEFAULT_ENV: string;
93
-
export const BUN_INSTALL: string;
94
-
export const npm_config_user_agent: string;
95
-
export const INFOPATH: string;
96
-
export const HOMEBREW_CELLAR: string;
97
-
export const _P9K_SSH_TTY: string;
98
-
export const PGSSLMODE: string;
99
88
export const npm_node_execpath: string;
100
-
export const COLORTERM: string;
101
-
export const NODE_ENV: string;
89
+
export const OLDPWD: string;
90
+
export const __CF_USER_TEXT_ENCODING: string;
91
+
export const TERM_PROGRAM: string;
102
92
}
103
93
104
94
/**
···
130
120
*/
131
121
declare module '$env/dynamic/private' {
132
122
export const env: {
133
-
NVM_INC: string;
134
-
NIX_PROFILES: string;
135
-
TERM_PROGRAM: string;
136
-
NODE: string;
137
-
_P9K_TTY: string;
138
-
NVM_CD_FLAGS: string;
139
-
__ETC_PROFILE_NIX_SOURCED: string;
140
-
TERM: string;
141
123
SHELL: string;
142
-
TMPDIR: string;
143
-
HOMEBREW_REPOSITORY: string;
144
-
CONDA_SHLVL: string;
124
+
LSCOLORS: string;
125
+
WINDOWID: string;
126
+
NVM_RC_VERSION: string;
127
+
COLORTERM: string;
128
+
XDG_CONFIG_DIRS: string;
129
+
LESS: string;
130
+
XPC_FLAGS: string;
145
131
TERM_PROGRAM_VERSION: string;
146
-
CONDA_PROMPT_MODIFIER: string;
147
-
WINDOWID: string;
132
+
_P9K_TTY: string;
133
+
NODE: string;
134
+
__CFBundleIdentifier: string;
135
+
SSH_AUTH_SOCK: string;
136
+
P9K_TTY: string;
137
+
OPENAI_API_KEY: string;
148
138
npm_config_local_prefix: string;
139
+
HOMEBREW_PREFIX: string;
140
+
EDITOR: string;
141
+
PWD: string;
142
+
NIX_PROFILES: string;
143
+
CLAUDE_KEY: string;
144
+
LOGNAME: string;
145
+
NIX_PATH: string;
146
+
BUN_WHICH_IGNORE_CWD: string;
147
+
__NIX_DARWIN_SET_ENVIRONMENT_DONE: string;
148
+
_: string;
149
+
COMMAND_MODE: string;
150
+
HOME: string;
151
+
LANG: string;
152
+
LS_COLORS: string;
153
+
npm_package_version: string;
154
+
NIX_SSL_CERT_FILE: string;
155
+
TMPDIR: string;
156
+
INIT_CWD: string;
157
+
NIX_USER_PROFILE_DIR: string;
158
+
INFOPATH: string;
159
+
NVM_DIR: string;
160
+
TERM: string;
161
+
npm_package_name: string;
149
162
ZSH: string;
150
163
USER: string;
151
-
NVM_DIR: string;
152
-
PGPORT: string;
153
-
LS_COLORS: string;
154
-
COMMAND_MODE: string;
155
-
CONDA_EXE: string;
156
-
SSH_AUTH_SOCK: string;
157
-
PGUSER: string;
158
-
__CF_USER_TEXT_ENCODING: string;
159
-
PYTORCH_ENABLE_MPS_FALLBACK: string;
164
+
HOMEBREW_CELLAR: string;
165
+
SHLVL: string;
166
+
NVM_CD_FLAGS: string;
167
+
PAGER: string;
168
+
HOMEBREW_REPOSITORY: string;
169
+
_P9K_SSH_TTY: string;
170
+
XPC_SERVICE_NAME: string;
171
+
npm_config_user_agent: string;
172
+
TERMINFO_DIRS: string;
160
173
npm_execpath: string;
161
-
PGPASSWORD: string;
162
-
PGDATABASE: string;
163
-
PAGER: string;
164
-
_CE_CONDA: string;
165
-
LSCOLORS: string;
166
-
PATH: string;
167
174
npm_package_json: string;
168
-
_: string;
169
-
__CFBundleIdentifier: string;
170
-
CONDA_PREFIX: string;
171
-
npm_command: string;
172
-
PWD: string;
173
-
npm_lifecycle_event: string;
175
+
BUN_INSTALL: string;
174
176
P9K_SSH: string;
175
-
EDITOR: string;
176
-
npm_package_name: string;
177
-
P9K_TTY: string;
178
-
LANG: string;
179
-
PGHOST: string;
180
-
XPC_FLAGS: string;
181
-
NIX_SSL_CERT_FILE: string;
182
-
npm_package_version: string;
183
-
_CE_M: string;
184
-
XPC_SERVICE_NAME: string;
185
-
SHLVL: string;
186
-
HOME: string;
187
-
HOMEBREW_PREFIX: string;
188
-
LOGNAME: string;
189
-
LESS: string;
190
-
CONDA_PYTHON_EXE: string;
191
-
npm_lifecycle_script: string;
177
+
XDG_DATA_DIRS: string;
178
+
PATH: string;
192
179
ALACRITTY_WINDOW_ID: string;
193
-
XDG_DATA_DIRS: string;
180
+
ENVMAN_LOAD: string;
194
181
ZED_TERM: string;
195
-
NVM_BIN: string;
196
-
CONDA_DEFAULT_ENV: string;
197
-
BUN_INSTALL: string;
198
-
npm_config_user_agent: string;
199
-
INFOPATH: string;
200
-
HOMEBREW_CELLAR: string;
201
-
_P9K_SSH_TTY: string;
202
-
PGSSLMODE: string;
203
182
npm_node_execpath: string;
204
-
COLORTERM: string;
205
-
NODE_ENV: string;
183
+
OLDPWD: string;
184
+
__CF_USER_TEXT_ENCODING: string;
185
+
TERM_PROGRAM: string;
206
186
[key: `PUBLIC_${string}`]: undefined;
207
187
[key: `${string}`]: string | undefined;
208
188
}
+1
-1
frontend/.svelte-kit/generated/server/internal.js
+1
-1
frontend/.svelte-kit/generated/server/internal.js
···
21
21
app: ({ head, body, assets, nonce, env }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<link rel=\"icon\" href=\"" + assets + "/favicon.png\" />\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n\t\t" + head + "\n\t</head>\n\t<body data-sveltekit-preload-data=\"hover\">\n\t\t<div style=\"display: contents\">" + body + "</div>\n\t</body>\n</html>\n",
22
22
error: ({ status, message }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<title>" + message + "</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\t--bg: white;\n\t\t\t\t--fg: #222;\n\t\t\t\t--divider: #ccc;\n\t\t\t\tbackground: var(--bg);\n\t\t\t\tcolor: var(--fg);\n\t\t\t\tfont-family:\n\t\t\t\t\tsystem-ui,\n\t\t\t\t\t-apple-system,\n\t\t\t\t\tBlinkMacSystemFont,\n\t\t\t\t\t'Segoe UI',\n\t\t\t\t\tRoboto,\n\t\t\t\t\tOxygen,\n\t\t\t\t\tUbuntu,\n\t\t\t\t\tCantarell,\n\t\t\t\t\t'Open Sans',\n\t\t\t\t\t'Helvetica Neue',\n\t\t\t\t\tsans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmax-width: 32rem;\n\t\t\t\tmargin: 0 1rem;\n\t\t\t}\n\n\t\t\t.status {\n\t\t\t\tfont-weight: 200;\n\t\t\t\tfont-size: 3rem;\n\t\t\t\tline-height: 1;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -0.05rem;\n\t\t\t}\n\n\t\t\t.message {\n\t\t\t\tborder-left: 1px solid var(--divider);\n\t\t\t\tpadding: 0 0 0 1rem;\n\t\t\t\tmargin: 0 0 0 1rem;\n\t\t\t\tmin-height: 2.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t.message h1 {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 1em;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t@media (prefers-color-scheme: dark) {\n\t\t\t\tbody {\n\t\t\t\t\t--bg: #222;\n\t\t\t\t\t--fg: #ddd;\n\t\t\t\t\t--divider: #666;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<div class=\"error\">\n\t\t\t<span class=\"status\">" + status + "</span>\n\t\t\t<div class=\"message\">\n\t\t\t\t<h1>" + message + "</h1>\n\t\t\t</div>\n\t\t</div>\n\t</body>\n</html>\n"
23
23
},
24
-
version_hash: "r96mk0"
24
+
version_hash: "13za3h2"
25
25
};
26
26
27
27
export async function get_hooks() {
+17
-20
frontend/bun.lock
+17
-20
frontend/bun.lock
···
3
3
"workspaces": {
4
4
"": {
5
5
"name": "skyshrooms",
6
+
"dependencies": {
7
+
"@atcute/atproto": "^3.0.1",
8
+
"@atcute/bluesky": "^3.0.1",
9
+
"@atcute/client": "^4.0.1",
10
+
},
6
11
"devDependencies": {
7
12
"@chromatic-com/storybook": "^3",
8
13
"@eslint/compat": "^1.2.5",
···
45
50
46
51
"@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="],
47
52
53
+
"@atcute/atproto": ["@atcute/atproto@3.0.1", "", { "dependencies": { "@atcute/lexicons": "^1.0.1" } }, "sha512-c5HW/zIHkW254Lw5vghH46sODUelCfvkIubtCt8UAB9jRhVPYMcNhemehhfVIjq8ytpPn1oLz/4RzTyti1Wx9Q=="],
54
+
55
+
"@atcute/bluesky": ["@atcute/bluesky@3.0.1", "", { "dependencies": { "@atcute/atproto": "^3.0.1", "@atcute/lexicons": "^1.0.1" } }, "sha512-c3Eks9a8GmR2gydg5njQibHoWp6Td7KUaqJ9iZ2oSlOCOTf4dD7nwVBr9m0vTz2iNwYgMt/QJiUWER1gZQGorw=="],
56
+
57
+
"@atcute/client": ["@atcute/client@4.0.1", "", { "dependencies": { "@atcute/identity": "^1.0.1", "@atcute/lexicons": "^1.0.1" } }, "sha512-Wgu0H92bSYxW63ZdTtr1pKwIg1e7+hoqLv4zpPsr6Ei9b8aM3u8PxGczgNBH+w0P4RZsvONbFDElhNvPWV/j8A=="],
58
+
59
+
"@atcute/identity": ["@atcute/identity@1.0.1", "", { "dependencies": { "@atcute/lexicons": "^1.0.1", "@badrap/valita": "^0.4.4" } }, "sha512-hZHDr0BfMlsNDSwifDZHw2NK5igiHdz0VgB78q+v43RJ3BqJBYLD4g2wsax4qUtEoPfenmU42NbPC8PMGChBig=="],
60
+
61
+
"@atcute/lexicons": ["@atcute/lexicons@1.0.1", "", {}, "sha512-3GaVEhXXyFvPF9aCPjB6jbLSJ1k+Q/mJGVvuQ6vTxrlL8lsFdnAv6vSCS7dKTLblAp8L619vhVXOmwni++G3gQ=="],
62
+
48
63
"@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="],
49
64
50
65
"@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="],
···
56
71
"@babel/runtime": ["@babel/runtime@7.27.1", "", {}, "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog=="],
57
72
58
73
"@babel/types": ["@babel/types@7.27.1", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" } }, "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q=="],
74
+
75
+
"@badrap/valita": ["@badrap/valita@0.4.4", "", {}, "sha512-GEhUCk9c4XbNxi+0YZHZsV4fYNd6HejfWuN4Ti4c02DauX+LyX5WY1Y3WfyZ8Pxxl0zqhs+MLtW98cMh86vv6g=="],
59
76
60
77
"@bcoe/v8-coverage": ["@bcoe/v8-coverage@1.0.2", "", {}, "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA=="],
61
78
···
1141
1158
1142
1159
"@vitest/browser/@testing-library/user-event": ["@testing-library/user-event@14.6.1", "", { "peerDependencies": { "@testing-library/dom": ">=7.21.4" } }, "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw=="],
1143
1160
1144
-
"@vitest/coverage-v8/tinyrainbow": ["tinyrainbow@2.0.0", "", {}, "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw=="],
1145
-
1146
1161
"@vitest/expect/@vitest/utils": ["@vitest/utils@2.0.5", "", { "dependencies": { "@vitest/pretty-format": "2.0.5", "estree-walker": "^3.0.3", "loupe": "^3.1.1", "tinyrainbow": "^1.2.0" } }, "sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ=="],
1147
1162
1148
1163
"@vitest/expect/tinyrainbow": ["tinyrainbow@1.2.0", "", {}, "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ=="],
1149
1164
1150
1165
"@vitest/mocker/@vitest/spy": ["@vitest/spy@3.1.2", "", { "dependencies": { "tinyspy": "^3.0.2" } }, "sha512-OEc5fSXMws6sHVe4kOFyDSj/+4MSwst0ib4un0DlcYgQvRuYQ0+M2HyqGaauUMnjq87tmUaMNDxKQx7wNfVqPA=="],
1151
-
1152
-
"@vitest/pretty-format/tinyrainbow": ["tinyrainbow@2.0.0", "", {}, "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw=="],
1153
-
1154
-
"@vitest/runner/@vitest/utils": ["@vitest/utils@3.1.2", "", { "dependencies": { "@vitest/pretty-format": "3.1.2", "loupe": "^3.1.3", "tinyrainbow": "^2.0.0" } }, "sha512-5GGd0ytZ7BH3H6JTj9Kw7Prn1Nbg0wZVrIvou+UWxm54d+WoXXgAgjFJ8wn3LdagWLFSEfpPeyYrByZaGEZHLg=="],
1155
-
1156
-
"@vitest/snapshot/@vitest/pretty-format": ["@vitest/pretty-format@3.1.2", "", { "dependencies": { "tinyrainbow": "^2.0.0" } }, "sha512-R0xAiHuWeDjTSB3kQ3OQpT8Rx3yhdOAIm/JM4axXxnG7Q/fS8XUwggv/A4xzbQA+drYRjzkMnpYnOGAc4oeq8w=="],
1157
-
1158
-
"@vitest/utils/@vitest/pretty-format": ["@vitest/pretty-format@3.1.2", "", { "dependencies": { "tinyrainbow": "^2.0.0" } }, "sha512-R0xAiHuWeDjTSB3kQ3OQpT8Rx3yhdOAIm/JM4axXxnG7Q/fS8XUwggv/A4xzbQA+drYRjzkMnpYnOGAc4oeq8w=="],
1159
1166
1160
1167
"dom-serializer/domhandler": ["domhandler@4.3.1", "", { "dependencies": { "domelementtype": "^2.2.0" } }, "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ=="],
1161
1168
···
1207
1214
1208
1215
"vitest/@vitest/spy": ["@vitest/spy@3.1.2", "", { "dependencies": { "tinyspy": "^3.0.2" } }, "sha512-OEc5fSXMws6sHVe4kOFyDSj/+4MSwst0ib4un0DlcYgQvRuYQ0+M2HyqGaauUMnjq87tmUaMNDxKQx7wNfVqPA=="],
1209
1216
1210
-
"vitest/@vitest/utils": ["@vitest/utils@3.1.2", "", { "dependencies": { "@vitest/pretty-format": "3.1.2", "loupe": "^3.1.3", "tinyrainbow": "^2.0.0" } }, "sha512-5GGd0ytZ7BH3H6JTj9Kw7Prn1Nbg0wZVrIvou+UWxm54d+WoXXgAgjFJ8wn3LdagWLFSEfpPeyYrByZaGEZHLg=="],
1211
-
1212
-
"vitest/tinyrainbow": ["tinyrainbow@2.0.0", "", {}, "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw=="],
1213
-
1214
1217
"wrap-ansi/ansi-styles": ["ansi-styles@6.2.1", "", {}, "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="],
1215
1218
1216
1219
"wrap-ansi-cjs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
···
1224
1227
"@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="],
1225
1228
1226
1229
"@vitest/expect/@vitest/utils/@vitest/pretty-format": ["@vitest/pretty-format@2.0.5", "", { "dependencies": { "tinyrainbow": "^1.2.0" } }, "sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ=="],
1227
-
1228
-
"@vitest/runner/@vitest/utils/@vitest/pretty-format": ["@vitest/pretty-format@3.1.2", "", { "dependencies": { "tinyrainbow": "^2.0.0" } }, "sha512-R0xAiHuWeDjTSB3kQ3OQpT8Rx3yhdOAIm/JM4axXxnG7Q/fS8XUwggv/A4xzbQA+drYRjzkMnpYnOGAc4oeq8w=="],
1229
-
1230
-
"@vitest/runner/@vitest/utils/tinyrainbow": ["tinyrainbow@2.0.0", "", {}, "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw=="],
1231
-
1232
-
"@vitest/snapshot/@vitest/pretty-format/tinyrainbow": ["tinyrainbow@2.0.0", "", {}, "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw=="],
1233
1230
1234
1231
"enquirer/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
1235
1232
+5
frontend/package.json
+5
frontend/package.json
+27
-17
frontend/src/lib/components/ui/ProfileModal.svelte
+27
-17
frontend/src/lib/components/ui/ProfileModal.svelte
···
1
1
<script>
2
2
import demoProfile from '$lib/testData/demoProfile.json';
3
3
4
-
let open = $state(false);
4
+
let signedIn = $state(false);
5
+
let open = $state(true);
6
+
7
+
function initiateSignIn() {
8
+
signedIn = true;
9
+
}
5
10
</script>
6
11
7
12
<div class="menu bonkus flex flex-col justify-center self-end bg-amber-100 p-2 bg-blend-soft-light">
8
13
<div class="header flex flex-row items-center">
9
-
{#if open}
10
-
<div class="flex flex-col px-4">
11
-
<a href="/profile/{demoProfile.id}">
12
-
<p class="pr-4 text-2xl">{demoProfile.username}</p>
13
-
</a>
14
-
<div class="stats">
15
-
<p class="text-lg">Collected {demoProfile.collection} cards</p>
16
-
<p class="text-lg">Won {demoProfile.victories} battles</p>
17
-
<p class="text-lg">Lost {demoProfile.losses} battles</p>
14
+
{#if signedIn}
15
+
{#if open}
16
+
<div class="flex flex-col px-4">
17
+
<a href="/profile/{demoProfile.id}">
18
+
<p class="pr-4 text-2xl">{demoProfile.username}</p>
19
+
</a>
20
+
<div class="stats">
21
+
<p class="text-lg">Collected {demoProfile.collection} cards</p>
22
+
<p class="text-lg">Won {demoProfile.victories} battles</p>
23
+
<p class="text-lg">Lost {demoProfile.losses} battles</p>
24
+
</div>
18
25
</div>
19
-
</div>
26
+
{/if}
27
+
28
+
<img
29
+
onclick={() => (open = !open)}
30
+
class="m-1 size-12 lg:size-24 lg:rounded-xl"
31
+
src={demoProfile.avatar}
32
+
alt=""
33
+
/>
34
+
{:else}
35
+
<a onclick={initiateSignIn} class="text-2xl font-bold">SIGN IN</a>
20
36
{/if}
21
-
<img
22
-
onclick={() => (open = !open)}
23
-
class="m-1 size-12 lg:size-24 lg:rounded-xl"
24
-
src={demoProfile.avatar}
25
-
alt=""
26
-
/>
27
37
</div>
28
38
</div>
29
39
+5
frontend/src/lib/utils/atdemo.ts
+5
frontend/src/lib/utils/atdemo.ts
+21
frontend/src/routes/+layout.svelte
+21
frontend/src/routes/+layout.svelte
···
2
2
import ProfileModal from '$lib/components/ui/ProfileModal.svelte';
3
3
import '../app.css';
4
4
5
+
import { ok } from '@atcute/client';
6
+
7
+
import { handler, rpc } from '$lib/utils/atdemo';
8
+
9
+
async function testClient() {
10
+
const data = await ok(
11
+
rpc.get('app.bsky.actor.getProfile', {
12
+
params: {
13
+
actor: 'bsky.app'
14
+
}
15
+
})
16
+
);
17
+
18
+
console.log(data.displayName);
19
+
}
20
+
21
+
testClient();
5
22
let { children } = $props();
6
23
</script>
24
+
25
+
<svelte:head>
26
+
<link rel="icon" href="/favicon.png" />
27
+
</svelte:head>
7
28
8
29
<div
9
30
class="flex min-h-screen
frontend/static/favicon.png
frontend/static/favicon.png
This is a binary file and will not be displayed.
+17
lexicons/records/net.skyshrooms/profile.json
+17
lexicons/records/net.skyshrooms/profile.json
···
1
+
{
2
+
"lexicon": 1,
3
+
"id": "net.skyshrooms.profile",
4
+
"defs": {
5
+
"main": {
6
+
"type": "record",
7
+
"description": "Collector profile for a trading card game",
8
+
"record": {
9
+
"type": "object",
10
+
"required": ["displayName", "profileImage", "collection", "createdAt"],
11
+
"properties": {
12
+
13
+
}
14
+
}
15
+
}
16
+
}
17
+
}