tangled
alpha
login
or
join now
mary.my.id
/
aglais
4
fork
atom
personal web client for Bluesky
typescript
solidjs
bluesky
atcute
4
fork
atom
overview
issues
pulls
pipelines
chore: reconfigure typescript
mary.my.id
6 months ago
ade280c4
01f18e56
verified
This commit was signed with the committer's
known signature
.
mary.my.id
SSH Key Fingerprint:
SHA256:ZlTP/auFSGpGnaoDg4mCTG1g9OZvXp62jWR4c6H4O3c=
+102
-49
7 changed files
expand all
collapse all
unified
split
package.json
pnpm-lock.yaml
src
views
_error
index.tsx
tsconfig.app.json
tsconfig.json
tsconfig.node.json
vite.config.ts
+2
-1
package.json
···
3
"private": true,
4
"scripts": {
5
"dev": "vite",
6
-
"build": "vite build",
7
"preview": "vite preview",
8
"fmt": "PRETTIER_EXPERIMENTAL_CLI=1 prettier --cache --write ."
9
},
···
46
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
47
"@types/dom-close-watcher": "^1.0.0",
48
"@types/dom-webcodecs": "^0.1.15",
0
49
"autoprefixer": "^10.4.21",
50
"babel-plugin-transform-typescript-const-enums": "^0.1.0",
51
"prettier": "^3.6.0",
···
3
"private": true,
4
"scripts": {
5
"dev": "vite",
6
+
"build": "tsc -b && vite build",
7
"preview": "vite preview",
8
"fmt": "PRETTIER_EXPERIMENTAL_CLI=1 prettier --cache --write ."
9
},
···
46
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
47
"@types/dom-close-watcher": "^1.0.0",
48
"@types/dom-webcodecs": "^0.1.15",
49
+
"@types/node": "^24.3.0",
50
"autoprefixer": "^10.4.21",
51
"babel-plugin-transform-typescript-const-enums": "^0.1.0",
52
"prettier": "^3.6.0",
+27
-11
pnpm-lock.yaml
···
139
'@types/dom-webcodecs':
140
specifier: ^0.1.15
141
version: 0.1.15
0
0
0
142
autoprefixer:
143
specifier: ^10.4.21
144
version: 10.4.21(postcss@8.5.6)
···
162
version: 5.8.3
163
vite:
164
specifier: ^6.3.5
165
-
version: 6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)
166
vite-plugin-pwa:
167
specifier: 0.21.0
168
-
version: 0.21.0(patch_hash=003379ded749ad87080f87b428b17f04c4c88b6b64544df4d928aab76fbf6325)(@types/babel__core@7.20.5)(vite@6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0))
169
vite-plugin-solid:
170
specifier: ^2.11.6
171
-
version: 2.11.6(solid-js@1.9.7(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))(vite@6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0))
172
wrangler:
173
specifier: ^4.20.5
174
version: 4.20.5
···
1503
'@types/estree@1.0.8':
1504
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
1505
0
0
0
1506
'@types/resolve@1.20.2':
1507
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
1508
···
2497
2498
ufo@1.6.1:
2499
resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
0
0
0
2500
2501
undici@5.29.0:
2502
resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==}
···
4002
'@types/estree@0.0.39': {}
4003
4004
'@types/estree@1.0.8': {}
0
0
0
0
4005
4006
'@types/resolve@1.20.2': {}
4007
···
4950
4951
ufo@1.6.1: {}
4952
0
0
4953
undici@5.29.0:
4954
dependencies:
4955
'@fastify/busboy': 2.1.1
···
4991
4992
validate-html-nesting@1.2.3: {}
4993
4994
-
vite-plugin-pwa@0.21.0(patch_hash=003379ded749ad87080f87b428b17f04c4c88b6b64544df4d928aab76fbf6325)(@types/babel__core@7.20.5)(vite@6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)):
4995
dependencies:
4996
debug: 4.4.1
4997
pretty-bytes: 6.1.1
4998
tinyglobby: 0.2.14
4999
-
vite: 6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)
5000
workbox-build: 7.3.0(@types/babel__core@7.20.5)
5001
workbox-window: 7.3.0
5002
transitivePeerDependencies:
5003
- '@types/babel__core'
5004
- supports-color
5005
5006
-
vite-plugin-solid@2.11.6(solid-js@1.9.7(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))(vite@6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)):
5007
dependencies:
5008
'@babel/core': 7.27.4
5009
'@types/babel__core': 7.20.5
···
5011
merge-anything: 5.1.7
5012
solid-js: 1.9.7(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)
5013
solid-refresh: 0.6.3(solid-js@1.9.7(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))
5014
-
vite: 6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)
5015
-
vitefu: 1.0.7(vite@6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0))
5016
transitivePeerDependencies:
5017
- supports-color
5018
5019
-
vite@6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0):
5020
dependencies:
5021
esbuild: 0.25.5
5022
fdir: 6.4.6(picomatch@4.0.2)
···
5025
rollup: 4.44.0
5026
tinyglobby: 0.2.14
5027
optionalDependencies:
0
5028
fsevents: 2.3.3
5029
jiti: 1.21.7
5030
terser: 5.43.1
5031
yaml: 2.8.0
5032
5033
-
vitefu@1.0.7(vite@6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)):
5034
optionalDependencies:
5035
-
vite: 6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)
5036
5037
webidl-conversions@4.0.2: {}
5038
···
139
'@types/dom-webcodecs':
140
specifier: ^0.1.15
141
version: 0.1.15
142
+
'@types/node':
143
+
specifier: ^24.3.0
144
+
version: 24.3.0
145
autoprefixer:
146
specifier: ^10.4.21
147
version: 10.4.21(postcss@8.5.6)
···
165
version: 5.8.3
166
vite:
167
specifier: ^6.3.5
168
+
version: 6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)
169
vite-plugin-pwa:
170
specifier: 0.21.0
171
+
version: 0.21.0(patch_hash=003379ded749ad87080f87b428b17f04c4c88b6b64544df4d928aab76fbf6325)(@types/babel__core@7.20.5)(vite@6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0))
172
vite-plugin-solid:
173
specifier: ^2.11.6
174
+
version: 2.11.6(solid-js@1.9.7(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))(vite@6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0))
175
wrangler:
176
specifier: ^4.20.5
177
version: 4.20.5
···
1506
'@types/estree@1.0.8':
1507
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
1508
1509
+
'@types/node@24.3.0':
1510
+
resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==}
1511
+
1512
'@types/resolve@1.20.2':
1513
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
1514
···
2503
2504
ufo@1.6.1:
2505
resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
2506
+
2507
+
undici-types@7.10.0:
2508
+
resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
2509
2510
undici@5.29.0:
2511
resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==}
···
4011
'@types/estree@0.0.39': {}
4012
4013
'@types/estree@1.0.8': {}
4014
+
4015
+
'@types/node@24.3.0':
4016
+
dependencies:
4017
+
undici-types: 7.10.0
4018
4019
'@types/resolve@1.20.2': {}
4020
···
4963
4964
ufo@1.6.1: {}
4965
4966
+
undici-types@7.10.0: {}
4967
+
4968
undici@5.29.0:
4969
dependencies:
4970
'@fastify/busboy': 2.1.1
···
5006
5007
validate-html-nesting@1.2.3: {}
5008
5009
+
vite-plugin-pwa@0.21.0(patch_hash=003379ded749ad87080f87b428b17f04c4c88b6b64544df4d928aab76fbf6325)(@types/babel__core@7.20.5)(vite@6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)):
5010
dependencies:
5011
debug: 4.4.1
5012
pretty-bytes: 6.1.1
5013
tinyglobby: 0.2.14
5014
+
vite: 6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)
5015
workbox-build: 7.3.0(@types/babel__core@7.20.5)
5016
workbox-window: 7.3.0
5017
transitivePeerDependencies:
5018
- '@types/babel__core'
5019
- supports-color
5020
5021
+
vite-plugin-solid@2.11.6(solid-js@1.9.7(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))(vite@6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)):
5022
dependencies:
5023
'@babel/core': 7.27.4
5024
'@types/babel__core': 7.20.5
···
5026
merge-anything: 5.1.7
5027
solid-js: 1.9.7(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)
5028
solid-refresh: 0.6.3(solid-js@1.9.7(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))
5029
+
vite: 6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)
5030
+
vitefu: 1.0.7(vite@6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0))
5031
transitivePeerDependencies:
5032
- supports-color
5033
5034
+
vite@6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0):
5035
dependencies:
5036
esbuild: 0.25.5
5037
fdir: 6.4.6(picomatch@4.0.2)
···
5040
rollup: 4.44.0
5041
tinyglobby: 0.2.14
5042
optionalDependencies:
5043
+
'@types/node': 24.3.0
5044
fsevents: 2.3.3
5045
jiti: 1.21.7
5046
terser: 5.43.1
5047
yaml: 2.8.0
5048
5049
+
vitefu@1.0.7(vite@6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)):
5050
optionalDependencies:
5051
+
vite: 6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)
5052
5053
webidl-conversions@4.0.2: {}
5054
+1
-1
src/views/_error/index.tsx
···
5
reset: () => void;
6
}
7
8
-
const ErrorPage = ({ error, reset: retry }: ErrorPageProps) => {
9
useTitle(() => `Something went wrong :( — ${import.meta.env.VITE_APP_NAME}`);
10
11
console.error(error);
···
5
reset: () => void;
6
}
7
8
+
const ErrorPage = ({ error, reset: _retry }: ErrorPageProps) => {
9
useTitle(() => `Something went wrong :( — ${import.meta.env.VITE_APP_NAME}`);
10
11
console.error(error);
+40
tsconfig.app.json
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
{
2
+
"compilerOptions": {
3
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
4
+
5
+
"target": "ESNext",
6
+
"lib": ["ESNext", "DOM", "DOM.Iterable"],
7
+
"types": [
8
+
"dom-close-watcher",
9
+
"dom-webcodecs",
10
+
"@atcute/atproto",
11
+
"@atcute/bluemoji",
12
+
"@atcute/bluesky",
13
+
"@kelinci/basa-lexicons"
14
+
],
15
+
"skipLibCheck": true,
16
+
17
+
"module": "ESNext",
18
+
"moduleResolution": "bundler",
19
+
"moduleDetection": "force",
20
+
"allowImportingTsExtensions": true,
21
+
"noEmit": true,
22
+
"jsx": "preserve",
23
+
"jsxImportSource": "solid-js",
24
+
25
+
"incremental": true,
26
+
"strict": true,
27
+
"verbatimModuleSyntax": true,
28
+
"noUnusedLocals": true,
29
+
"noUnusedParameters": true,
30
+
"noFallthroughCasesInSwitch": true,
31
+
"noUncheckedSideEffectImports": true,
32
+
33
+
"useDefineForClassFields": false,
34
+
35
+
"paths": {
36
+
"~/*": ["./src/*"]
37
+
}
38
+
},
39
+
"include": ["src"]
40
+
}
+2
-35
tsconfig.json
···
1
{
2
-
"compilerOptions": {
3
-
"target": "ESNext",
4
-
"lib": ["DOM", "DOM.Iterable", "ESNext"],
5
-
"types": [
6
-
"dom-close-watcher",
7
-
"dom-webcodecs",
8
-
"@atcute/atproto",
9
-
"@atcute/bluemoji",
10
-
"@atcute/bluesky",
11
-
"@kelinci/basa-lexicons",
12
-
],
13
-
"skipLibCheck": true,
14
-
15
-
"module": "ESNext",
16
-
"moduleResolution": "Bundler",
17
-
"allowImportingTsExtensions": true,
18
-
"resolveJsonModule": true,
19
-
"noEmit": true,
20
-
"jsx": "preserve",
21
-
"jsxImportSource": "solid-js",
22
-
23
-
"incremental": true,
24
-
"strict": true,
25
-
"verbatimModuleSyntax": true,
26
-
"noUnusedLocals": true,
27
-
"noUnusedParameters": true,
28
-
"noFallthroughCasesInSwitch": true,
29
-
30
-
"useDefineForClassFields": false,
31
-
32
-
"paths": {
33
-
"~/*": ["./src/*"],
34
-
},
35
-
},
36
-
"include": ["src"],
37
}
···
1
{
2
+
"files": [],
3
+
"references": [{ "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }],
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
}
+27
tsconfig.node.json
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
{
2
+
"compilerOptions": {
3
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
4
+
5
+
"target": "ESNext",
6
+
"lib": ["ESNext"],
7
+
"types": ["node"],
8
+
"skipLibCheck": true,
9
+
10
+
"module": "ESNext",
11
+
"moduleResolution": "bundler",
12
+
"moduleDetection": "force",
13
+
"allowImportingTsExtensions": true,
14
+
"noEmit": true,
15
+
16
+
"incremental": true,
17
+
"strict": true,
18
+
"verbatimModuleSyntax": true,
19
+
"noUnusedLocals": true,
20
+
"noUnusedParameters": true,
21
+
"noFallthroughCasesInSwitch": true,
22
+
"noUncheckedSideEffectImports": true,
23
+
24
+
"useDefineForClassFields": false
25
+
},
26
+
"include": ["vite.config.ts"]
27
+
}
+3
-1
vite.config.js
vite.config.ts
···
100
101
// Transform the icon components to remove the `() => _tmpl$()` wrapper
102
{
0
103
transform(code, id) {
104
if (!id.includes('/icons-central/')) {
105
return;
···
107
108
const transformed = code.replace(
109
/(?<=createIcon\()\(\)\s*=>*.([\w$]+)\(\)(?=\))/g,
110
-
(match, id) => id,
111
);
112
113
return { code: transformed, map: null };
···
116
117
// Injects OAuth-related variables
118
{
0
119
config(_conf, { command }) {
120
if (command === 'build') {
121
process.env.VITE_OAUTH_CLIENT_ID = metadata.client_id;
···
100
101
// Transform the icon components to remove the `() => _tmpl$()` wrapper
102
{
103
+
name: 'aglais-icon-transform',
104
transform(code, id) {
105
if (!id.includes('/icons-central/')) {
106
return;
···
108
109
const transformed = code.replace(
110
/(?<=createIcon\()\(\)\s*=>*.([\w$]+)\(\)(?=\))/g,
111
+
(_match, id) => id,
112
);
113
114
return { code: transformed, map: null };
···
117
118
// Injects OAuth-related variables
119
{
120
+
name: 'aglais-oauth-inject',
121
config(_conf, { command }) {
122
if (command === 'build') {
123
process.env.VITE_OAUTH_CLIENT_ID = metadata.client_id;