-13
.editorconfig
-13
.editorconfig
+2
.npmrc
+2
.npmrc
+10
mise.lock
+10
mise.lock
+6
-2
mise.toml
+6
-2
mise.toml
+20
-21
package.json
+20
-21
package.json
···
8
8
"fmt": "prettier --cache --write ."
9
9
},
10
10
"dependencies": {
11
-
"@atcute/bluemoji": "^2.0.0",
12
-
"@atcute/bluesky": "^2.1.1",
11
+
"@atcute/bluemoji": "^1.0.4",
12
+
"@atcute/bluesky": "^1.0.15",
13
13
"@atcute/bluesky-richtext-parser": "^1.0.7",
14
-
"@atcute/bluesky-richtext-segmenter": "^2.0.0",
14
+
"@atcute/bluesky-richtext-segmenter": "^1.0.5",
15
15
"@atcute/bluesky-search-parser": "^0.1.0",
16
-
"@atcute/cbor": "^2.2.3",
17
-
"@atcute/cid": "^2.2.2",
18
-
"@atcute/client": "^3.1.0",
19
-
"@atcute/oauth-browser-client": "^1.0.18",
16
+
"@atcute/cbor": "^2.2.0",
17
+
"@atcute/cid": "^2.2.0",
18
+
"@atcute/client": "^2.0.9",
19
+
"@atcute/oauth-browser-client": "^1.0.16",
20
20
"@atcute/tid": "^1.0.2",
21
-
"@atlaskit/pragmatic-drag-and-drop": "^1.6.0",
21
+
"@atlaskit/pragmatic-drag-and-drop": "^1.5.2",
22
22
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.0.3",
23
-
"@floating-ui/dom": "^1.7.0",
23
+
"@floating-ui/dom": "^1.6.13",
24
24
"@floating-ui/utils": "^0.2.9",
25
-
"@mary/array-fns": "jsr:^0.1.4",
26
-
"@mary/async-iterator-fns": "jsr:^0.1.1",
27
-
"@mary/batch-fetch": "jsr:^0.1.0",
28
-
"@mary/date-fns": "jsr:^0.1.3",
29
-
"@mary/events": "jsr:^0.2.0",
30
-
"@mary/exif-rm": "jsr:^0.2.2",
25
+
"@mary/array-fns": "npm:@jsr/mary__array-fns@^0.1.4",
26
+
"@mary/async-iterator-fns": "npm:@jsr/mary__async-iterator-fns@^0.1.1",
27
+
"@mary/date-fns": "npm:@jsr/mary__date-fns@^0.1.3",
28
+
"@mary/events": "npm:@jsr/mary__events@^0.2.0",
29
+
"@mary/exif-rm": "npm:@jsr/mary__exif-rm@^0.2.2",
31
30
"@mary/solid-freeze": "npm:@externdefs/solid-freeze@^0.1.1",
32
31
"@mary/solid-query": "npm:@externdefs/solid-query@^0.1.5",
33
32
"comlink": "^4.4.2",
34
-
"hls.js": "^1.6.2",
33
+
"hls.js": "^1.6.0",
35
34
"idb": "^8.0.2",
36
35
"nanoid": "^5.1.5",
37
36
"solid-floating-ui": "~0.2.1",
38
-
"solid-js": "^1.9.6",
39
-
"webm-muxer": "^5.1.2"
37
+
"solid-js": "^1.9.5",
38
+
"webm-muxer": "^5.1.1"
40
39
},
41
40
"devDependencies": {
42
41
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
···
48
47
"prettier-plugin-tailwindcss": "^0.6.11",
49
48
"tailwindcss": "^3.4.17",
50
49
"terser": "^5.39.0",
51
-
"typescript": "~5.8.3",
52
-
"vite": "^6.3.4",
50
+
"typescript": "5.7.2",
51
+
"vite": "6.0.5",
53
52
"vite-plugin-pwa": "0.21.0",
54
53
"vite-plugin-solid": "^2.11.6",
55
-
"wrangler": "^4.14.1"
54
+
"wrangler": "^4.6.0"
56
55
},
57
56
"pnpm": {
58
57
"patchedDependencies": {
+8
-8
patches/solid-js.patch
+8
-8
patches/solid-js.patch
···
1
1
diff --git a/dist/solid.js b/dist/solid.js
2
-
index f8d7c6698944fb9deb3c1e0ffb77071da6fe562c..0751e68eb39091cc51236d0d6abb637dd7b08436 100644
2
+
index 2571609363d5758d32e2aa88489acca146a6d308..4a1e0bf4e523fb075340e0c2ccef0a4a9ab12f7f 100644
3
3
--- a/dist/solid.js
4
4
+++ b/dist/solid.js
5
-
@@ -1586,7 +1586,6 @@ function Show(props) {
5
+
@@ -1581,7 +1581,6 @@ function Show(props) {
6
6
keyed
7
7
? c
8
8
: () => {
9
9
- if (!untrack(condition)) throw narrowedError("Show");
10
-
return conditionValue();
10
+
return props.when;
11
11
}
12
12
)
13
-
@@ -1636,7 +1635,6 @@ function Switch(props) {
14
-
mp.keyed
15
-
? conditionValue()
13
+
@@ -1628,7 +1627,6 @@ function Switch(props) {
14
+
keyed
15
+
? when
16
16
: () => {
17
-
- if (untrack(switchFunc)()?.[0] !== index) throw narrowedError("Match");
18
-
return conditionValue();
17
+
- if (untrack(evalConditions)[0] !== index) throw narrowedError("Match");
18
+
return cond.when;
19
19
}
20
20
)
+1143
-1144
pnpm-lock.yaml
+1143
-1144
pnpm-lock.yaml
···
17
17
hash: 0b06407b66b7af88765fb6e01e112677a8c09ce518cb4f547cee8a0044471acd
18
18
path: patches/@tanstack__query-core@5.17.19.patch
19
19
solid-js:
20
-
hash: 34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268
20
+
hash: 9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c
21
21
path: patches/solid-js.patch
22
22
vite-plugin-pwa:
23
23
hash: 003379ded749ad87080f87b428b17f04c4c88b6b64544df4d928aab76fbf6325
···
31
31
.:
32
32
dependencies:
33
33
'@atcute/bluemoji':
34
-
specifier: ^2.0.0
35
-
version: 2.0.0(@atcute/bluesky@2.1.1(@atcute/client@3.1.0))(@atcute/client@3.1.0)
34
+
specifier: ^1.0.4
35
+
version: 1.0.4(@atcute/bluesky@1.0.15(@atcute/client@2.0.9))(@atcute/client@2.0.9)
36
36
'@atcute/bluesky':
37
-
specifier: ^2.1.1
38
-
version: 2.1.1(@atcute/client@3.1.0)
37
+
specifier: ^1.0.15
38
+
version: 1.0.15(@atcute/client@2.0.9)
39
39
'@atcute/bluesky-richtext-parser':
40
40
specifier: ^1.0.7
41
41
version: 1.0.7
42
42
'@atcute/bluesky-richtext-segmenter':
43
-
specifier: ^2.0.0
44
-
version: 2.0.0(@atcute/bluesky@2.1.1(@atcute/client@3.1.0))(@atcute/client@3.1.0)
43
+
specifier: ^1.0.5
44
+
version: 1.0.5(@atcute/bluesky@1.0.15(@atcute/client@2.0.9))(@atcute/client@2.0.9)
45
45
'@atcute/bluesky-search-parser':
46
46
specifier: ^0.1.0
47
47
version: 0.1.0
48
48
'@atcute/cbor':
49
-
specifier: ^2.2.3
50
-
version: 2.2.3
49
+
specifier: ^2.2.0
50
+
version: 2.2.0
51
51
'@atcute/cid':
52
-
specifier: ^2.2.2
53
-
version: 2.2.2
52
+
specifier: ^2.2.0
53
+
version: 2.2.0
54
54
'@atcute/client':
55
-
specifier: ^3.1.0
56
-
version: 3.1.0
55
+
specifier: ^2.0.9
56
+
version: 2.0.9
57
57
'@atcute/oauth-browser-client':
58
-
specifier: ^1.0.18
59
-
version: 1.0.18
58
+
specifier: ^1.0.16
59
+
version: 1.0.16
60
60
'@atcute/tid':
61
61
specifier: ^1.0.2
62
62
version: 1.0.2
63
63
'@atlaskit/pragmatic-drag-and-drop':
64
-
specifier: ^1.6.0
65
-
version: 1.6.0
64
+
specifier: ^1.5.2
65
+
version: 1.5.2
66
66
'@atlaskit/pragmatic-drag-and-drop-hitbox':
67
67
specifier: ^1.0.3
68
68
version: 1.0.3
69
69
'@floating-ui/dom':
70
-
specifier: ^1.7.0
71
-
version: 1.7.0
70
+
specifier: ^1.6.13
71
+
version: 1.6.13
72
72
'@floating-ui/utils':
73
73
specifier: ^0.2.9
74
74
version: 0.2.9(patch_hash=1cf283fbaa686f96f7b3029bbc0955bff698af6f4a75ba6c276ad1a7a7c40aea)
75
75
'@mary/array-fns':
76
-
specifier: jsr:^0.1.4
76
+
specifier: npm:@jsr/mary__array-fns@^0.1.4
77
77
version: '@jsr/mary__array-fns@0.1.4'
78
78
'@mary/async-iterator-fns':
79
-
specifier: jsr:^0.1.1
79
+
specifier: npm:@jsr/mary__async-iterator-fns@^0.1.1
80
80
version: '@jsr/mary__async-iterator-fns@0.1.1'
81
-
'@mary/batch-fetch':
82
-
specifier: jsr:^0.1.0
83
-
version: '@jsr/mary__batch-fetch@0.1.0'
84
81
'@mary/date-fns':
85
-
specifier: jsr:^0.1.3
82
+
specifier: npm:@jsr/mary__date-fns@^0.1.3
86
83
version: '@jsr/mary__date-fns@0.1.3'
87
84
'@mary/events':
88
-
specifier: jsr:^0.2.0
85
+
specifier: npm:@jsr/mary__events@^0.2.0
89
86
version: '@jsr/mary__events@0.2.0'
90
87
'@mary/exif-rm':
91
-
specifier: jsr:^0.2.2
88
+
specifier: npm:@jsr/mary__exif-rm@^0.2.2
92
89
version: '@jsr/mary__exif-rm@0.2.2'
93
90
'@mary/solid-freeze':
94
91
specifier: npm:@externdefs/solid-freeze@^0.1.1
95
-
version: '@externdefs/solid-freeze@0.1.1(solid-js@1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268))'
92
+
version: '@externdefs/solid-freeze@0.1.1(solid-js@1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c))'
96
93
'@mary/solid-query':
97
94
specifier: npm:@externdefs/solid-query@^0.1.5
98
-
version: '@externdefs/solid-query@0.1.5(solid-js@1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268))'
95
+
version: '@externdefs/solid-query@0.1.5(solid-js@1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c))'
99
96
comlink:
100
97
specifier: ^4.4.2
101
98
version: 4.4.2
102
99
hls.js:
103
-
specifier: ^1.6.2
104
-
version: 1.6.2
100
+
specifier: ^1.6.0
101
+
version: 1.6.0
105
102
idb:
106
103
specifier: ^8.0.2
107
104
version: 8.0.2
···
110
107
version: 5.1.5
111
108
solid-floating-ui:
112
109
specifier: ~0.2.1
113
-
version: 0.2.1(@floating-ui/dom@1.7.0)(solid-js@1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268))
110
+
version: 0.2.1(@floating-ui/dom@1.6.13)(solid-js@1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c))
114
111
solid-js:
115
-
specifier: ^1.9.6
116
-
version: 1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268)
112
+
specifier: ^1.9.5
113
+
version: 1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c)
117
114
webm-muxer:
118
-
specifier: ^5.1.2
119
-
version: 5.1.2
115
+
specifier: ^5.1.1
116
+
version: 5.1.1
120
117
devDependencies:
121
118
'@trivago/prettier-plugin-sort-imports':
122
119
specifier: ^5.2.2
···
132
129
version: 10.4.21(postcss@8.5.3)
133
130
babel-plugin-transform-typescript-const-enums:
134
131
specifier: ^0.1.0
135
-
version: 0.1.0(@babel/core@7.27.1)
132
+
version: 0.1.0(@babel/core@7.26.10)
136
133
prettier:
137
134
specifier: ^3.5.3
138
135
version: 3.5.3
···
146
143
specifier: ^5.39.0
147
144
version: 5.39.0
148
145
typescript:
149
-
specifier: ~5.8.3
150
-
version: 5.8.3
146
+
specifier: 5.7.2
147
+
version: 5.7.2
151
148
vite:
152
-
specifier: ^6.3.4
153
-
version: 6.3.4(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.1)
149
+
specifier: 6.0.5
150
+
version: 6.0.5(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.0)
154
151
vite-plugin-pwa:
155
152
specifier: 0.21.0
156
-
version: 0.21.0(patch_hash=003379ded749ad87080f87b428b17f04c4c88b6b64544df4d928aab76fbf6325)(@types/babel__core@7.20.5)(vite@6.3.4(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.1))
153
+
version: 0.21.0(patch_hash=003379ded749ad87080f87b428b17f04c4c88b6b64544df4d928aab76fbf6325)(@types/babel__core@7.20.5)(vite@6.0.5(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.0))
157
154
vite-plugin-solid:
158
155
specifier: ^2.11.6
159
-
version: 2.11.6(solid-js@1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268))(vite@6.3.4(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.1))
156
+
version: 2.11.6(solid-js@1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c))(vite@6.0.5(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.0))
160
157
wrangler:
161
-
specifier: ^4.14.1
162
-
version: 4.14.1
158
+
specifier: ^4.6.0
159
+
version: 4.6.0
163
160
164
161
packages:
165
162
···
177
174
peerDependencies:
178
175
ajv: '>=8'
179
176
180
-
'@atcute/bluemoji@2.0.0':
181
-
resolution: {integrity: sha512-tgcsW4H50oWo6uHMkUVU2IgObfX63mYp/qxWfoLkKPFWbwz68SiwedaCY/E+Cw8anWGF0urFjDemmga7B5Z0QA==}
177
+
'@atcute/bluemoji@1.0.4':
178
+
resolution: {integrity: sha512-Rzujybon6EFuycWPID5bzjYIVdPPWWjVfPqELhByJTLe2vq3SlEubUCmz3VfhDu/Bb8wlBP2tIT5w4oq3vJLrg==}
182
179
peerDependencies:
183
-
'@atcute/bluesky': ^2.0.0
184
-
'@atcute/client': ^3.0.0
180
+
'@atcute/bluesky': ^1.0.0
181
+
'@atcute/client': ^1.0.0 || ^2.0.0
185
182
186
183
'@atcute/bluesky-richtext-parser@1.0.7':
187
184
resolution: {integrity: sha512-nOvU699OXiGMbyswao7JJnY0C9WkwE7PVC/m5WWt0UN9fsXSOor9IZWw+v9SATp+94BTJoG38XyUomUaJnoQRA==}
188
185
189
-
'@atcute/bluesky-richtext-segmenter@2.0.0':
190
-
resolution: {integrity: sha512-BummI6zgdXSx9f5TJg2oR2ervCJhG8zcbAMDLWjccNLt/0P38lIRsXqOBdIIAZoBtk8g5LpgnnICdiMsDM2iDQ==}
186
+
'@atcute/bluesky-richtext-segmenter@1.0.5':
187
+
resolution: {integrity: sha512-D0FfmJVwppky9naL1OGKcQjtgO0lDLhkG4iCQHpShuHhEZ9FUdf3eUb/eQpVRNJGaJ4ShjEOHA6FlAizcjMkGQ==}
191
188
peerDependencies:
192
-
'@atcute/bluesky': ^2.0.0
193
-
'@atcute/client': ^3.0.0
189
+
'@atcute/bluesky': ^1.0.0
190
+
'@atcute/client': ^1.0.0 || ^2.0.0
194
191
195
192
'@atcute/bluesky-search-parser@0.1.0':
196
193
resolution: {integrity: sha512-bTClwD9VGwaECOyWe1mf8V6t+7/77e3tiUHTE6CSrHXOJ/yM8N2xbn+dIi2ki2JLHvgvBN9wsWpFLykgfWhBaw==}
197
194
198
-
'@atcute/bluesky@2.1.1':
199
-
resolution: {integrity: sha512-wEZfFW58J6yC1SqHcVJOn4qbHENTTzjeCEWthRT5HvKovADLqk54HSMSAuXDMBUbintSTBr0khQNZQ3ZdgzDdQ==}
195
+
'@atcute/bluesky@1.0.15':
196
+
resolution: {integrity: sha512-+EFiybmKQ97aBAgtaD+cKRJER5AMn3cZMkEwEg/pDdWyzxYJ9m1UgemmLdTgI8VrxPufKqdXS2nl7uO7TY6BPA==}
200
197
peerDependencies:
201
-
'@atcute/client': ^3.0.0
198
+
'@atcute/client': ^1.0.0 || ^2.0.0
202
199
203
-
'@atcute/cbor@2.2.3':
204
-
resolution: {integrity: sha512-yvzaPI6ChNlqYN41qY8cVGCubgb6N/Y2kpNQnjC5waAZ4Xy2WH7ohuyiv0BQDvgzPT4ww1+9G+zBFxcfM2PH/Q==}
200
+
'@atcute/cbor@2.2.0':
201
+
resolution: {integrity: sha512-W3ttcDJHiB5N6MbfEpJbTINZSjg0KB8gpBds8UWOGmybqUnuz43HZkFSpF/Vom0KilYg6QWU/ZM4X8SXZE+kow==}
205
202
206
-
'@atcute/cid@2.2.2':
207
-
resolution: {integrity: sha512-deAGMqLAyplt7eIukhkjlsGubvrcMrtXkDKlUYZDo4WUdL7hSjBywtPXf6SbMK+Mjvst7l2+83OqTcY5AuuxtA==}
203
+
'@atcute/cid@2.2.0':
204
+
resolution: {integrity: sha512-ty+WjGcTfi1JJtcRNz6bsJMqT69lEIl4Ts7vl4U8SBHbxjbb6Tk/pcnQZVClKRYduRoZ1XhS9n5qOSIbIMctDA==}
208
205
209
-
'@atcute/client@3.1.0':
210
-
resolution: {integrity: sha512-+rQPsHXSf0DUm8XoHoaH7Y2E8tIpbsW84djyPj7dqAyrFIjvGuJ1X1DvMufwbTIcmLerdy+dzl34iZcz/h3Vhg==}
206
+
'@atcute/client@2.0.9':
207
+
resolution: {integrity: sha512-QNDm9gMP6x9LY77ArwY+urQOBtQW74/onEAz42c40JxRm6Rl9K9cU4ROvNKJ+5cpVmEm1sthEWVRmDr5CSZENA==}
211
208
212
-
'@atcute/multibase@1.1.3':
213
-
resolution: {integrity: sha512-vQQO0tDuQPguBvHdgV3ryn7R8U6beQ50KA/juYm+dCeT/3hOK2stMbX+IaW8JEuwkT5lJsU8wDIOicQT4mB7Ag==}
209
+
'@atcute/multibase@1.1.2':
210
+
resolution: {integrity: sha512-KFX+c7a/u2jSNcRw0rLaUHG/XEKf1A1c8XF5soHnsb1JMCShihf/anfZ1kJ4no/IlIp9HEHV3PQRQO2sWL6ASQ==}
214
211
215
-
'@atcute/oauth-browser-client@1.0.18':
216
-
resolution: {integrity: sha512-VPr7XIsdoHemoVhqDNe/kAKYK3k1o6IJvce7ngsBWoLq5gnls9S7cgRF4f9ucP/FAxDfZ7RQbWh7t6ethfwLrQ==}
212
+
'@atcute/oauth-browser-client@1.0.16':
213
+
resolution: {integrity: sha512-BKkA4TPyaLIO+hVxcxZoDfLFUgsd3A47UyzWAbe3BpSoN8Kywy/CqWuAVlqdiUhO1iG+vVqGQhjKy4UxutaU4g==}
217
214
218
215
'@atcute/tid@1.0.2':
219
216
resolution: {integrity: sha512-ahmjroNyeDPJhtuf3+HTJropaH04HmJ8fhntDu73Gpz/RkAF7+nkz6kcP2QTgfvMCgMPAJUdskAAP82GPDTY9w==}
···
224
221
'@atlaskit/pragmatic-drag-and-drop-hitbox@1.0.3':
225
222
resolution: {integrity: sha512-/Sbu/HqN2VGLYBhnsG7SbRNg98XKkbF6L7XDdBi+izRybfaK1FeMfodPpm/xnBHPJzwYMdkE0qtLyv6afhgMUA==}
226
223
227
-
'@atlaskit/pragmatic-drag-and-drop@1.6.0':
228
-
resolution: {integrity: sha512-J5ZnU6h0wjda1M1BKimzt4oRKeyVsTQzlRUqlbIUjfNioWFdSnIkPogWIn9tV2B68jphL1QNuZdEkKxcJygU2w==}
224
+
'@atlaskit/pragmatic-drag-and-drop@1.5.2':
225
+
resolution: {integrity: sha512-fDuTwlDD11r3ev5tLJ6JnzQUiG9v77c8zGcNdO7RRNtZZbOHam8CFhmyFGY4E/mLjvgYng0UkcyCrSBc4FXYZw==}
229
226
230
-
'@babel/code-frame@7.27.1':
231
-
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
227
+
'@babel/code-frame@7.26.2':
228
+
resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
232
229
engines: {node: '>=6.9.0'}
233
230
234
-
'@babel/compat-data@7.27.1':
235
-
resolution: {integrity: sha512-Q+E+rd/yBzNQhXkG+zQnF58e4zoZfBedaxwzPmicKsiK3nt8iJYrSrDbjwFFDGC4f+rPafqRaPH6TsDoSvMf7A==}
231
+
'@babel/compat-data@7.26.8':
232
+
resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==}
236
233
engines: {node: '>=6.9.0'}
237
234
238
-
'@babel/core@7.27.1':
239
-
resolution: {integrity: sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==}
235
+
'@babel/core@7.26.10':
236
+
resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==}
240
237
engines: {node: '>=6.9.0'}
241
238
242
-
'@babel/generator@7.27.1':
243
-
resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==}
239
+
'@babel/generator@7.27.0':
240
+
resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==}
244
241
engines: {node: '>=6.9.0'}
245
242
246
-
'@babel/helper-annotate-as-pure@7.27.1':
247
-
resolution: {integrity: sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==}
243
+
'@babel/helper-annotate-as-pure@7.25.9':
244
+
resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==}
248
245
engines: {node: '>=6.9.0'}
249
246
250
-
'@babel/helper-compilation-targets@7.27.1':
251
-
resolution: {integrity: sha512-2YaDd/Rd9E598B5+WIc8wJPmWETiiJXFYVE60oX8FDohv7rAUU3CQj+A1MgeEmcsk2+dQuEjIe/GDvig0SqL4g==}
247
+
'@babel/helper-compilation-targets@7.27.0':
248
+
resolution: {integrity: sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==}
252
249
engines: {node: '>=6.9.0'}
253
250
254
-
'@babel/helper-create-class-features-plugin@7.27.1':
255
-
resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==}
251
+
'@babel/helper-create-class-features-plugin@7.27.0':
252
+
resolution: {integrity: sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==}
256
253
engines: {node: '>=6.9.0'}
257
254
peerDependencies:
258
255
'@babel/core': ^7.0.0
259
256
260
-
'@babel/helper-create-regexp-features-plugin@7.27.1':
261
-
resolution: {integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==}
257
+
'@babel/helper-create-regexp-features-plugin@7.27.0':
258
+
resolution: {integrity: sha512-fO8l08T76v48BhpNRW/nQ0MxfnSdoSKUJBMjubOAYffsVuGG5qOfMq7N6Es7UJvi7Y8goXXo07EfcHZXDPuELQ==}
262
259
engines: {node: '>=6.9.0'}
263
260
peerDependencies:
264
261
'@babel/core': ^7.0.0
···
268
265
peerDependencies:
269
266
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
270
267
271
-
'@babel/helper-member-expression-to-functions@7.27.1':
272
-
resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==}
268
+
'@babel/helper-member-expression-to-functions@7.25.9':
269
+
resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==}
273
270
engines: {node: '>=6.9.0'}
274
271
275
272
'@babel/helper-module-imports@7.18.6':
276
273
resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
277
274
engines: {node: '>=6.9.0'}
278
275
279
-
'@babel/helper-module-imports@7.27.1':
280
-
resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
276
+
'@babel/helper-module-imports@7.25.9':
277
+
resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
281
278
engines: {node: '>=6.9.0'}
282
279
283
-
'@babel/helper-module-transforms@7.27.1':
284
-
resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==}
280
+
'@babel/helper-module-transforms@7.26.0':
281
+
resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
285
282
engines: {node: '>=6.9.0'}
286
283
peerDependencies:
287
284
'@babel/core': ^7.0.0
288
285
289
-
'@babel/helper-optimise-call-expression@7.27.1':
290
-
resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==}
286
+
'@babel/helper-optimise-call-expression@7.25.9':
287
+
resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==}
291
288
engines: {node: '>=6.9.0'}
292
289
293
-
'@babel/helper-plugin-utils@7.27.1':
294
-
resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==}
290
+
'@babel/helper-plugin-utils@7.26.5':
291
+
resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==}
295
292
engines: {node: '>=6.9.0'}
296
293
297
-
'@babel/helper-remap-async-to-generator@7.27.1':
298
-
resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==}
294
+
'@babel/helper-remap-async-to-generator@7.25.9':
295
+
resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==}
299
296
engines: {node: '>=6.9.0'}
300
297
peerDependencies:
301
298
'@babel/core': ^7.0.0
302
299
303
-
'@babel/helper-replace-supers@7.27.1':
304
-
resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==}
300
+
'@babel/helper-replace-supers@7.26.5':
301
+
resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==}
305
302
engines: {node: '>=6.9.0'}
306
303
peerDependencies:
307
304
'@babel/core': ^7.0.0
308
305
309
-
'@babel/helper-skip-transparent-expression-wrappers@7.27.1':
310
-
resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==}
306
+
'@babel/helper-skip-transparent-expression-wrappers@7.25.9':
307
+
resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==}
311
308
engines: {node: '>=6.9.0'}
312
309
313
-
'@babel/helper-string-parser@7.27.1':
314
-
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
310
+
'@babel/helper-string-parser@7.25.9':
311
+
resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
315
312
engines: {node: '>=6.9.0'}
316
313
317
-
'@babel/helper-validator-identifier@7.27.1':
318
-
resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
314
+
'@babel/helper-validator-identifier@7.25.9':
315
+
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
319
316
engines: {node: '>=6.9.0'}
320
317
321
-
'@babel/helper-validator-option@7.27.1':
322
-
resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
318
+
'@babel/helper-validator-option@7.25.9':
319
+
resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
323
320
engines: {node: '>=6.9.0'}
324
321
325
-
'@babel/helper-wrap-function@7.27.1':
326
-
resolution: {integrity: sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==}
322
+
'@babel/helper-wrap-function@7.25.9':
323
+
resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==}
327
324
engines: {node: '>=6.9.0'}
328
325
329
-
'@babel/helpers@7.27.1':
330
-
resolution: {integrity: sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==}
326
+
'@babel/helpers@7.27.0':
327
+
resolution: {integrity: sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==}
331
328
engines: {node: '>=6.9.0'}
332
329
333
-
'@babel/parser@7.27.1':
334
-
resolution: {integrity: sha512-I0dZ3ZpCrJ1c04OqlNsQcKiZlsrXf/kkE4FXzID9rIOYICsAbA8mMDzhW/luRNAHdCNt7os/u8wenklZDlUVUQ==}
330
+
'@babel/parser@7.27.0':
331
+
resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==}
335
332
engines: {node: '>=6.0.0'}
336
333
hasBin: true
337
334
338
-
'@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1':
339
-
resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==}
335
+
'@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9':
336
+
resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==}
340
337
engines: {node: '>=6.9.0'}
341
338
peerDependencies:
342
339
'@babel/core': ^7.0.0
343
340
344
-
'@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1':
345
-
resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==}
341
+
'@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9':
342
+
resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==}
346
343
engines: {node: '>=6.9.0'}
347
344
peerDependencies:
348
345
'@babel/core': ^7.0.0
349
346
350
-
'@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1':
351
-
resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==}
347
+
'@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9':
348
+
resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==}
352
349
engines: {node: '>=6.9.0'}
353
350
peerDependencies:
354
351
'@babel/core': ^7.0.0
355
352
356
-
'@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1':
357
-
resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==}
353
+
'@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9':
354
+
resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==}
358
355
engines: {node: '>=6.9.0'}
359
356
peerDependencies:
360
357
'@babel/core': ^7.13.0
361
358
362
-
'@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1':
363
-
resolution: {integrity: sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==}
359
+
'@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9':
360
+
resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==}
364
361
engines: {node: '>=6.9.0'}
365
362
peerDependencies:
366
363
'@babel/core': ^7.0.0
···
371
368
peerDependencies:
372
369
'@babel/core': ^7.0.0-0
373
370
374
-
'@babel/plugin-syntax-import-assertions@7.27.1':
375
-
resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==}
371
+
'@babel/plugin-syntax-import-assertions@7.26.0':
372
+
resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==}
376
373
engines: {node: '>=6.9.0'}
377
374
peerDependencies:
378
375
'@babel/core': ^7.0.0-0
379
376
380
-
'@babel/plugin-syntax-import-attributes@7.27.1':
381
-
resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==}
377
+
'@babel/plugin-syntax-import-attributes@7.26.0':
378
+
resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==}
382
379
engines: {node: '>=6.9.0'}
383
380
peerDependencies:
384
381
'@babel/core': ^7.0.0-0
385
382
386
-
'@babel/plugin-syntax-jsx@7.27.1':
387
-
resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==}
383
+
'@babel/plugin-syntax-jsx@7.25.9':
384
+
resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==}
388
385
engines: {node: '>=6.9.0'}
389
386
peerDependencies:
390
387
'@babel/core': ^7.0.0-0
···
395
392
peerDependencies:
396
393
'@babel/core': ^7.0.0
397
394
398
-
'@babel/plugin-transform-arrow-functions@7.27.1':
399
-
resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==}
395
+
'@babel/plugin-transform-arrow-functions@7.25.9':
396
+
resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==}
400
397
engines: {node: '>=6.9.0'}
401
398
peerDependencies:
402
399
'@babel/core': ^7.0.0-0
403
400
404
-
'@babel/plugin-transform-async-generator-functions@7.27.1':
405
-
resolution: {integrity: sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==}
401
+
'@babel/plugin-transform-async-generator-functions@7.26.8':
402
+
resolution: {integrity: sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==}
406
403
engines: {node: '>=6.9.0'}
407
404
peerDependencies:
408
405
'@babel/core': ^7.0.0-0
409
406
410
-
'@babel/plugin-transform-async-to-generator@7.27.1':
411
-
resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==}
407
+
'@babel/plugin-transform-async-to-generator@7.25.9':
408
+
resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==}
412
409
engines: {node: '>=6.9.0'}
413
410
peerDependencies:
414
411
'@babel/core': ^7.0.0-0
415
412
416
-
'@babel/plugin-transform-block-scoped-functions@7.27.1':
417
-
resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==}
413
+
'@babel/plugin-transform-block-scoped-functions@7.26.5':
414
+
resolution: {integrity: sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==}
418
415
engines: {node: '>=6.9.0'}
419
416
peerDependencies:
420
417
'@babel/core': ^7.0.0-0
421
418
422
-
'@babel/plugin-transform-block-scoping@7.27.1':
423
-
resolution: {integrity: sha512-QEcFlMl9nGTgh1rn2nIeU5bkfb9BAjaQcWbiP4LvKxUot52ABcTkpcyJ7f2Q2U2RuQ84BNLgts3jRme2dTx6Fw==}
419
+
'@babel/plugin-transform-block-scoping@7.27.0':
420
+
resolution: {integrity: sha512-u1jGphZ8uDI2Pj/HJj6YQ6XQLZCNjOlprjxB5SVz6rq2T6SwAR+CdrWK0CP7F+9rDVMXdB0+r6Am5G5aobOjAQ==}
424
421
engines: {node: '>=6.9.0'}
425
422
peerDependencies:
426
423
'@babel/core': ^7.0.0-0
427
424
428
-
'@babel/plugin-transform-class-properties@7.27.1':
429
-
resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==}
425
+
'@babel/plugin-transform-class-properties@7.25.9':
426
+
resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==}
430
427
engines: {node: '>=6.9.0'}
431
428
peerDependencies:
432
429
'@babel/core': ^7.0.0-0
433
430
434
-
'@babel/plugin-transform-class-static-block@7.27.1':
435
-
resolution: {integrity: sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==}
431
+
'@babel/plugin-transform-class-static-block@7.26.0':
432
+
resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==}
436
433
engines: {node: '>=6.9.0'}
437
434
peerDependencies:
438
435
'@babel/core': ^7.12.0
439
436
440
-
'@babel/plugin-transform-classes@7.27.1':
441
-
resolution: {integrity: sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==}
437
+
'@babel/plugin-transform-classes@7.25.9':
438
+
resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==}
442
439
engines: {node: '>=6.9.0'}
443
440
peerDependencies:
444
441
'@babel/core': ^7.0.0-0
445
442
446
-
'@babel/plugin-transform-computed-properties@7.27.1':
447
-
resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==}
443
+
'@babel/plugin-transform-computed-properties@7.25.9':
444
+
resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==}
448
445
engines: {node: '>=6.9.0'}
449
446
peerDependencies:
450
447
'@babel/core': ^7.0.0-0
451
448
452
-
'@babel/plugin-transform-destructuring@7.27.1':
453
-
resolution: {integrity: sha512-ttDCqhfvpE9emVkXbPD8vyxxh4TWYACVybGkDj+oReOGwnp066ITEivDlLwe0b1R0+evJ13IXQuLNB5w1fhC5Q==}
449
+
'@babel/plugin-transform-destructuring@7.25.9':
450
+
resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==}
454
451
engines: {node: '>=6.9.0'}
455
452
peerDependencies:
456
453
'@babel/core': ^7.0.0-0
457
454
458
-
'@babel/plugin-transform-dotall-regex@7.27.1':
459
-
resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==}
455
+
'@babel/plugin-transform-dotall-regex@7.25.9':
456
+
resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==}
460
457
engines: {node: '>=6.9.0'}
461
458
peerDependencies:
462
459
'@babel/core': ^7.0.0-0
463
460
464
-
'@babel/plugin-transform-duplicate-keys@7.27.1':
465
-
resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==}
461
+
'@babel/plugin-transform-duplicate-keys@7.25.9':
462
+
resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==}
466
463
engines: {node: '>=6.9.0'}
467
464
peerDependencies:
468
465
'@babel/core': ^7.0.0-0
469
466
470
-
'@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1':
471
-
resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==}
467
+
'@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9':
468
+
resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==}
472
469
engines: {node: '>=6.9.0'}
473
470
peerDependencies:
474
471
'@babel/core': ^7.0.0
475
472
476
-
'@babel/plugin-transform-dynamic-import@7.27.1':
477
-
resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==}
473
+
'@babel/plugin-transform-dynamic-import@7.25.9':
474
+
resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==}
478
475
engines: {node: '>=6.9.0'}
479
476
peerDependencies:
480
477
'@babel/core': ^7.0.0-0
481
478
482
-
'@babel/plugin-transform-exponentiation-operator@7.27.1':
483
-
resolution: {integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==}
479
+
'@babel/plugin-transform-exponentiation-operator@7.26.3':
480
+
resolution: {integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==}
484
481
engines: {node: '>=6.9.0'}
485
482
peerDependencies:
486
483
'@babel/core': ^7.0.0-0
487
484
488
-
'@babel/plugin-transform-export-namespace-from@7.27.1':
489
-
resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==}
485
+
'@babel/plugin-transform-export-namespace-from@7.25.9':
486
+
resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==}
490
487
engines: {node: '>=6.9.0'}
491
488
peerDependencies:
492
489
'@babel/core': ^7.0.0-0
493
490
494
-
'@babel/plugin-transform-for-of@7.27.1':
495
-
resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==}
491
+
'@babel/plugin-transform-for-of@7.26.9':
492
+
resolution: {integrity: sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==}
496
493
engines: {node: '>=6.9.0'}
497
494
peerDependencies:
498
495
'@babel/core': ^7.0.0-0
499
496
500
-
'@babel/plugin-transform-function-name@7.27.1':
501
-
resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==}
497
+
'@babel/plugin-transform-function-name@7.25.9':
498
+
resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==}
502
499
engines: {node: '>=6.9.0'}
503
500
peerDependencies:
504
501
'@babel/core': ^7.0.0-0
505
502
506
-
'@babel/plugin-transform-json-strings@7.27.1':
507
-
resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==}
503
+
'@babel/plugin-transform-json-strings@7.25.9':
504
+
resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==}
508
505
engines: {node: '>=6.9.0'}
509
506
peerDependencies:
510
507
'@babel/core': ^7.0.0-0
511
508
512
-
'@babel/plugin-transform-literals@7.27.1':
513
-
resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==}
509
+
'@babel/plugin-transform-literals@7.25.9':
510
+
resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==}
514
511
engines: {node: '>=6.9.0'}
515
512
peerDependencies:
516
513
'@babel/core': ^7.0.0-0
517
514
518
-
'@babel/plugin-transform-logical-assignment-operators@7.27.1':
519
-
resolution: {integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==}
515
+
'@babel/plugin-transform-logical-assignment-operators@7.25.9':
516
+
resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==}
520
517
engines: {node: '>=6.9.0'}
521
518
peerDependencies:
522
519
'@babel/core': ^7.0.0-0
523
520
524
-
'@babel/plugin-transform-member-expression-literals@7.27.1':
525
-
resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==}
521
+
'@babel/plugin-transform-member-expression-literals@7.25.9':
522
+
resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==}
526
523
engines: {node: '>=6.9.0'}
527
524
peerDependencies:
528
525
'@babel/core': ^7.0.0-0
529
526
530
-
'@babel/plugin-transform-modules-amd@7.27.1':
531
-
resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==}
527
+
'@babel/plugin-transform-modules-amd@7.25.9':
528
+
resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==}
532
529
engines: {node: '>=6.9.0'}
533
530
peerDependencies:
534
531
'@babel/core': ^7.0.0-0
535
532
536
-
'@babel/plugin-transform-modules-commonjs@7.27.1':
537
-
resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==}
533
+
'@babel/plugin-transform-modules-commonjs@7.26.3':
534
+
resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==}
538
535
engines: {node: '>=6.9.0'}
539
536
peerDependencies:
540
537
'@babel/core': ^7.0.0-0
541
538
542
-
'@babel/plugin-transform-modules-systemjs@7.27.1':
543
-
resolution: {integrity: sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==}
539
+
'@babel/plugin-transform-modules-systemjs@7.25.9':
540
+
resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==}
544
541
engines: {node: '>=6.9.0'}
545
542
peerDependencies:
546
543
'@babel/core': ^7.0.0-0
547
544
548
-
'@babel/plugin-transform-modules-umd@7.27.1':
549
-
resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==}
545
+
'@babel/plugin-transform-modules-umd@7.25.9':
546
+
resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==}
550
547
engines: {node: '>=6.9.0'}
551
548
peerDependencies:
552
549
'@babel/core': ^7.0.0-0
553
550
554
-
'@babel/plugin-transform-named-capturing-groups-regex@7.27.1':
555
-
resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==}
551
+
'@babel/plugin-transform-named-capturing-groups-regex@7.25.9':
552
+
resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==}
556
553
engines: {node: '>=6.9.0'}
557
554
peerDependencies:
558
555
'@babel/core': ^7.0.0
559
556
560
-
'@babel/plugin-transform-new-target@7.27.1':
561
-
resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==}
557
+
'@babel/plugin-transform-new-target@7.25.9':
558
+
resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==}
562
559
engines: {node: '>=6.9.0'}
563
560
peerDependencies:
564
561
'@babel/core': ^7.0.0-0
565
562
566
-
'@babel/plugin-transform-nullish-coalescing-operator@7.27.1':
567
-
resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==}
563
+
'@babel/plugin-transform-nullish-coalescing-operator@7.26.6':
564
+
resolution: {integrity: sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==}
568
565
engines: {node: '>=6.9.0'}
569
566
peerDependencies:
570
567
'@babel/core': ^7.0.0-0
571
568
572
-
'@babel/plugin-transform-numeric-separator@7.27.1':
573
-
resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==}
569
+
'@babel/plugin-transform-numeric-separator@7.25.9':
570
+
resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==}
574
571
engines: {node: '>=6.9.0'}
575
572
peerDependencies:
576
573
'@babel/core': ^7.0.0-0
577
574
578
-
'@babel/plugin-transform-object-rest-spread@7.27.1':
579
-
resolution: {integrity: sha512-/sSliVc9gHE20/7D5qsdGlq7RG5NCDTWsAhyqzGuq174EtWJoGzIu1BQ7G56eDsTcy1jseBZwv50olSdXOlGuA==}
575
+
'@babel/plugin-transform-object-rest-spread@7.25.9':
576
+
resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==}
580
577
engines: {node: '>=6.9.0'}
581
578
peerDependencies:
582
579
'@babel/core': ^7.0.0-0
583
580
584
-
'@babel/plugin-transform-object-super@7.27.1':
585
-
resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==}
581
+
'@babel/plugin-transform-object-super@7.25.9':
582
+
resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==}
586
583
engines: {node: '>=6.9.0'}
587
584
peerDependencies:
588
585
'@babel/core': ^7.0.0-0
589
586
590
-
'@babel/plugin-transform-optional-catch-binding@7.27.1':
591
-
resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==}
587
+
'@babel/plugin-transform-optional-catch-binding@7.25.9':
588
+
resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==}
592
589
engines: {node: '>=6.9.0'}
593
590
peerDependencies:
594
591
'@babel/core': ^7.0.0-0
595
592
596
-
'@babel/plugin-transform-optional-chaining@7.27.1':
597
-
resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==}
593
+
'@babel/plugin-transform-optional-chaining@7.25.9':
594
+
resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==}
598
595
engines: {node: '>=6.9.0'}
599
596
peerDependencies:
600
597
'@babel/core': ^7.0.0-0
601
598
602
-
'@babel/plugin-transform-parameters@7.27.1':
603
-
resolution: {integrity: sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==}
599
+
'@babel/plugin-transform-parameters@7.25.9':
600
+
resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==}
604
601
engines: {node: '>=6.9.0'}
605
602
peerDependencies:
606
603
'@babel/core': ^7.0.0-0
607
604
608
-
'@babel/plugin-transform-private-methods@7.27.1':
609
-
resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==}
605
+
'@babel/plugin-transform-private-methods@7.25.9':
606
+
resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==}
610
607
engines: {node: '>=6.9.0'}
611
608
peerDependencies:
612
609
'@babel/core': ^7.0.0-0
613
610
614
-
'@babel/plugin-transform-private-property-in-object@7.27.1':
615
-
resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==}
611
+
'@babel/plugin-transform-private-property-in-object@7.25.9':
612
+
resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==}
616
613
engines: {node: '>=6.9.0'}
617
614
peerDependencies:
618
615
'@babel/core': ^7.0.0-0
619
616
620
-
'@babel/plugin-transform-property-literals@7.27.1':
621
-
resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==}
617
+
'@babel/plugin-transform-property-literals@7.25.9':
618
+
resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==}
622
619
engines: {node: '>=6.9.0'}
623
620
peerDependencies:
624
621
'@babel/core': ^7.0.0-0
625
622
626
-
'@babel/plugin-transform-regenerator@7.27.1':
627
-
resolution: {integrity: sha512-B19lbbL7PMrKr52BNPjCqg1IyNUIjTcxKj8uX9zHO+PmWN93s19NDr/f69mIkEp2x9nmDJ08a7lgHaTTzvW7mw==}
623
+
'@babel/plugin-transform-regenerator@7.27.0':
624
+
resolution: {integrity: sha512-LX/vCajUJQDqE7Aum/ELUMZAY19+cDpghxrnyt5I1tV6X5PyC86AOoWXWFYFeIvauyeSA6/ktn4tQVn/3ZifsA==}
628
625
engines: {node: '>=6.9.0'}
629
626
peerDependencies:
630
627
'@babel/core': ^7.0.0-0
631
628
632
-
'@babel/plugin-transform-regexp-modifiers@7.27.1':
633
-
resolution: {integrity: sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==}
629
+
'@babel/plugin-transform-regexp-modifiers@7.26.0':
630
+
resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==}
634
631
engines: {node: '>=6.9.0'}
635
632
peerDependencies:
636
633
'@babel/core': ^7.0.0
637
634
638
-
'@babel/plugin-transform-reserved-words@7.27.1':
639
-
resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==}
635
+
'@babel/plugin-transform-reserved-words@7.25.9':
636
+
resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==}
640
637
engines: {node: '>=6.9.0'}
641
638
peerDependencies:
642
639
'@babel/core': ^7.0.0-0
643
640
644
-
'@babel/plugin-transform-shorthand-properties@7.27.1':
645
-
resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==}
641
+
'@babel/plugin-transform-shorthand-properties@7.25.9':
642
+
resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==}
646
643
engines: {node: '>=6.9.0'}
647
644
peerDependencies:
648
645
'@babel/core': ^7.0.0-0
649
646
650
-
'@babel/plugin-transform-spread@7.27.1':
651
-
resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==}
647
+
'@babel/plugin-transform-spread@7.25.9':
648
+
resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==}
652
649
engines: {node: '>=6.9.0'}
653
650
peerDependencies:
654
651
'@babel/core': ^7.0.0-0
655
652
656
-
'@babel/plugin-transform-sticky-regex@7.27.1':
657
-
resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==}
653
+
'@babel/plugin-transform-sticky-regex@7.25.9':
654
+
resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==}
658
655
engines: {node: '>=6.9.0'}
659
656
peerDependencies:
660
657
'@babel/core': ^7.0.0-0
661
658
662
-
'@babel/plugin-transform-template-literals@7.27.1':
663
-
resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==}
659
+
'@babel/plugin-transform-template-literals@7.26.8':
660
+
resolution: {integrity: sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==}
664
661
engines: {node: '>=6.9.0'}
665
662
peerDependencies:
666
663
'@babel/core': ^7.0.0-0
667
664
668
-
'@babel/plugin-transform-typeof-symbol@7.27.1':
669
-
resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==}
665
+
'@babel/plugin-transform-typeof-symbol@7.27.0':
666
+
resolution: {integrity: sha512-+LLkxA9rKJpNoGsbLnAgOCdESl73vwYn+V6b+5wHbrE7OGKVDPHIQvbFSzqE6rwqaCw2RE+zdJrlLkcf8YOA0w==}
670
667
engines: {node: '>=6.9.0'}
671
668
peerDependencies:
672
669
'@babel/core': ^7.0.0-0
673
670
674
-
'@babel/plugin-transform-unicode-escapes@7.27.1':
675
-
resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==}
671
+
'@babel/plugin-transform-unicode-escapes@7.25.9':
672
+
resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==}
676
673
engines: {node: '>=6.9.0'}
677
674
peerDependencies:
678
675
'@babel/core': ^7.0.0-0
679
676
680
-
'@babel/plugin-transform-unicode-property-regex@7.27.1':
681
-
resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==}
677
+
'@babel/plugin-transform-unicode-property-regex@7.25.9':
678
+
resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==}
682
679
engines: {node: '>=6.9.0'}
683
680
peerDependencies:
684
681
'@babel/core': ^7.0.0-0
685
682
686
-
'@babel/plugin-transform-unicode-regex@7.27.1':
687
-
resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==}
683
+
'@babel/plugin-transform-unicode-regex@7.25.9':
684
+
resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==}
688
685
engines: {node: '>=6.9.0'}
689
686
peerDependencies:
690
687
'@babel/core': ^7.0.0-0
691
688
692
-
'@babel/plugin-transform-unicode-sets-regex@7.27.1':
693
-
resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==}
689
+
'@babel/plugin-transform-unicode-sets-regex@7.25.9':
690
+
resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==}
694
691
engines: {node: '>=6.9.0'}
695
692
peerDependencies:
696
693
'@babel/core': ^7.0.0
697
694
698
-
'@babel/preset-env@7.27.1':
699
-
resolution: {integrity: sha512-TZ5USxFpLgKDpdEt8YWBR7p6g+bZo6sHaXLqP2BY/U0acaoI8FTVflcYCr/v94twM1C5IWFdZ/hscq9WjUeLXA==}
695
+
'@babel/preset-env@7.26.9':
696
+
resolution: {integrity: sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==}
700
697
engines: {node: '>=6.9.0'}
701
698
peerDependencies:
702
699
'@babel/core': ^7.0.0-0
···
706
703
peerDependencies:
707
704
'@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
708
705
709
-
'@babel/runtime@7.27.1':
710
-
resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==}
706
+
'@babel/runtime@7.27.0':
707
+
resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==}
711
708
engines: {node: '>=6.9.0'}
712
709
713
-
'@babel/template@7.27.1':
714
-
resolution: {integrity: sha512-Fyo3ghWMqkHHpHQCoBs2VnYjR4iWFFjguTDEqA5WgZDOrFesVjMhMM2FSqTKSoUSDO1VQtavj8NFpdRBEvJTtg==}
710
+
'@babel/template@7.27.0':
711
+
resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==}
715
712
engines: {node: '>=6.9.0'}
716
713
717
-
'@babel/traverse@7.27.1':
718
-
resolution: {integrity: sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==}
714
+
'@babel/traverse@7.27.0':
715
+
resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==}
719
716
engines: {node: '>=6.9.0'}
720
717
721
-
'@babel/types@7.27.1':
722
-
resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==}
718
+
'@babel/types@7.27.0':
719
+
resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==}
723
720
engines: {node: '>=6.9.0'}
724
721
725
722
'@cloudflare/kv-asset-handler@0.4.0':
···
735
732
workerd:
736
733
optional: true
737
734
738
-
'@cloudflare/workerd-darwin-64@1.20250428.0':
739
-
resolution: {integrity: sha512-6nVe9oV4Hdec6ctzMtW80TiDvNTd2oFPi3VsKqSDVaJSJbL+4b6seyJ7G/UEPI+si6JhHBSLV2/9lNXNGLjClA==}
735
+
'@cloudflare/workerd-darwin-64@1.20250321.0':
736
+
resolution: {integrity: sha512-y273GfLaNCxkL8hTfo0c8FZKkOPdq+CPZAKJXPWB+YpS1JCOULu6lNTptpD7ZtF14dTYPkn5Weug31TTlviJmw==}
740
737
engines: {node: '>=16'}
741
738
cpu: [x64]
742
739
os: [darwin]
743
740
744
-
'@cloudflare/workerd-darwin-arm64@1.20250428.0':
745
-
resolution: {integrity: sha512-/TB7bh7SIJ5f+6r4PHsAz7+9Qal/TK1cJuKFkUno1kqGlZbdrMwH0ATYwlWC/nBFeu2FB3NUolsTntEuy23hnQ==}
741
+
'@cloudflare/workerd-darwin-arm64@1.20250321.0':
742
+
resolution: {integrity: sha512-qvf7/gkkQq7fAsoMlntJSimN/WfwQqxi2oL0aWZMGodTvs/yRHO2I4oE0eOihVdK1BXyBHJXNxEvNDBjF0+Yuw==}
746
743
engines: {node: '>=16'}
747
744
cpu: [arm64]
748
745
os: [darwin]
749
746
750
-
'@cloudflare/workerd-linux-64@1.20250428.0':
751
-
resolution: {integrity: sha512-9eCbj+R3CKqpiXP6DfAA20DxKge+OTj7Hyw3ZewiEhWH9INIHiJwJQYybu4iq9kJEGjnGvxgguLFjSCWm26hgg==}
747
+
'@cloudflare/workerd-linux-64@1.20250321.0':
748
+
resolution: {integrity: sha512-AEp3xjWFrNPO/h0StCOgOb0bWCcNThnkESpy91Wf4mfUF2p7tOCdp37Nk/1QIRqSxnfv4Hgxyi7gcWud9cJuMw==}
752
749
engines: {node: '>=16'}
753
750
cpu: [x64]
754
751
os: [linux]
755
752
756
-
'@cloudflare/workerd-linux-arm64@1.20250428.0':
757
-
resolution: {integrity: sha512-D9NRBnW46nl1EQsP13qfkYb5lbt4C6nxl38SBKY/NOcZAUoHzNB5K0GaK8LxvpkM7X/97ySojlMfR5jh5DNXYQ==}
753
+
'@cloudflare/workerd-linux-arm64@1.20250321.0':
754
+
resolution: {integrity: sha512-wRWyMIoPIS1UBXCisW0FYTgGsfZD4AVS0hXA5nuLc0c21CvzZpmmTjqEWMcwPFenwy/MNL61NautVOC4qJqQ3Q==}
758
755
engines: {node: '>=16'}
759
756
cpu: [arm64]
760
757
os: [linux]
761
758
762
-
'@cloudflare/workerd-windows-64@1.20250428.0':
763
-
resolution: {integrity: sha512-RQCRj28eitjKD0tmei6iFOuWqMuHMHdNGEigRmbkmuTlpbWHNAoHikgCzZQ/dkKDdatA76TmcpbyECNf31oaTA==}
759
+
'@cloudflare/workerd-windows-64@1.20250321.0':
760
+
resolution: {integrity: sha512-8vYP3QYO0zo2faUDfWl88jjfUvz7Si9GS3mUYaTh/TR9LcAUtsO7muLxPamqEyoxNFtbQgy08R4rTid94KRi3w==}
764
761
engines: {node: '>=16'}
765
762
cpu: [x64]
766
763
os: [win32]
···
769
766
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
770
767
engines: {node: '>=12'}
771
768
772
-
'@emnapi/runtime@1.4.3':
773
-
resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==}
769
+
'@emnapi/runtime@1.4.0':
770
+
resolution: {integrity: sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==}
774
771
775
-
'@esbuild/aix-ppc64@0.25.2':
776
-
resolution: {integrity: sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==}
772
+
'@esbuild/aix-ppc64@0.24.0':
773
+
resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==}
777
774
engines: {node: '>=18'}
778
775
cpu: [ppc64]
779
776
os: [aix]
780
777
781
-
'@esbuild/aix-ppc64@0.25.3':
782
-
resolution: {integrity: sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==}
778
+
'@esbuild/aix-ppc64@0.24.2':
779
+
resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==}
783
780
engines: {node: '>=18'}
784
781
cpu: [ppc64]
785
782
os: [aix]
786
783
787
-
'@esbuild/android-arm64@0.25.2':
788
-
resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==}
784
+
'@esbuild/android-arm64@0.24.0':
785
+
resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==}
789
786
engines: {node: '>=18'}
790
787
cpu: [arm64]
791
788
os: [android]
792
789
793
-
'@esbuild/android-arm64@0.25.3':
794
-
resolution: {integrity: sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==}
790
+
'@esbuild/android-arm64@0.24.2':
791
+
resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==}
795
792
engines: {node: '>=18'}
796
793
cpu: [arm64]
797
794
os: [android]
798
795
799
-
'@esbuild/android-arm@0.25.2':
800
-
resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==}
796
+
'@esbuild/android-arm@0.24.0':
797
+
resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==}
801
798
engines: {node: '>=18'}
802
799
cpu: [arm]
803
800
os: [android]
804
801
805
-
'@esbuild/android-arm@0.25.3':
806
-
resolution: {integrity: sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==}
802
+
'@esbuild/android-arm@0.24.2':
803
+
resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==}
807
804
engines: {node: '>=18'}
808
805
cpu: [arm]
809
806
os: [android]
810
807
811
-
'@esbuild/android-x64@0.25.2':
812
-
resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==}
808
+
'@esbuild/android-x64@0.24.0':
809
+
resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==}
813
810
engines: {node: '>=18'}
814
811
cpu: [x64]
815
812
os: [android]
816
813
817
-
'@esbuild/android-x64@0.25.3':
818
-
resolution: {integrity: sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==}
814
+
'@esbuild/android-x64@0.24.2':
815
+
resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==}
819
816
engines: {node: '>=18'}
820
817
cpu: [x64]
821
818
os: [android]
822
819
823
-
'@esbuild/darwin-arm64@0.25.2':
824
-
resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==}
820
+
'@esbuild/darwin-arm64@0.24.0':
821
+
resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==}
825
822
engines: {node: '>=18'}
826
823
cpu: [arm64]
827
824
os: [darwin]
828
825
829
-
'@esbuild/darwin-arm64@0.25.3':
830
-
resolution: {integrity: sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==}
826
+
'@esbuild/darwin-arm64@0.24.2':
827
+
resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==}
831
828
engines: {node: '>=18'}
832
829
cpu: [arm64]
833
830
os: [darwin]
834
831
835
-
'@esbuild/darwin-x64@0.25.2':
836
-
resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==}
832
+
'@esbuild/darwin-x64@0.24.0':
833
+
resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==}
837
834
engines: {node: '>=18'}
838
835
cpu: [x64]
839
836
os: [darwin]
840
837
841
-
'@esbuild/darwin-x64@0.25.3':
842
-
resolution: {integrity: sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==}
838
+
'@esbuild/darwin-x64@0.24.2':
839
+
resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==}
843
840
engines: {node: '>=18'}
844
841
cpu: [x64]
845
842
os: [darwin]
846
843
847
-
'@esbuild/freebsd-arm64@0.25.2':
848
-
resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==}
844
+
'@esbuild/freebsd-arm64@0.24.0':
845
+
resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==}
849
846
engines: {node: '>=18'}
850
847
cpu: [arm64]
851
848
os: [freebsd]
852
849
853
-
'@esbuild/freebsd-arm64@0.25.3':
854
-
resolution: {integrity: sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==}
850
+
'@esbuild/freebsd-arm64@0.24.2':
851
+
resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==}
855
852
engines: {node: '>=18'}
856
853
cpu: [arm64]
857
854
os: [freebsd]
858
855
859
-
'@esbuild/freebsd-x64@0.25.2':
860
-
resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==}
856
+
'@esbuild/freebsd-x64@0.24.0':
857
+
resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==}
861
858
engines: {node: '>=18'}
862
859
cpu: [x64]
863
860
os: [freebsd]
864
861
865
-
'@esbuild/freebsd-x64@0.25.3':
866
-
resolution: {integrity: sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==}
862
+
'@esbuild/freebsd-x64@0.24.2':
863
+
resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==}
867
864
engines: {node: '>=18'}
868
865
cpu: [x64]
869
866
os: [freebsd]
870
867
871
-
'@esbuild/linux-arm64@0.25.2':
872
-
resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==}
868
+
'@esbuild/linux-arm64@0.24.0':
869
+
resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==}
873
870
engines: {node: '>=18'}
874
871
cpu: [arm64]
875
872
os: [linux]
876
873
877
-
'@esbuild/linux-arm64@0.25.3':
878
-
resolution: {integrity: sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==}
874
+
'@esbuild/linux-arm64@0.24.2':
875
+
resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==}
879
876
engines: {node: '>=18'}
880
877
cpu: [arm64]
881
878
os: [linux]
882
879
883
-
'@esbuild/linux-arm@0.25.2':
884
-
resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==}
880
+
'@esbuild/linux-arm@0.24.0':
881
+
resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==}
885
882
engines: {node: '>=18'}
886
883
cpu: [arm]
887
884
os: [linux]
888
885
889
-
'@esbuild/linux-arm@0.25.3':
890
-
resolution: {integrity: sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==}
886
+
'@esbuild/linux-arm@0.24.2':
887
+
resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==}
891
888
engines: {node: '>=18'}
892
889
cpu: [arm]
893
890
os: [linux]
894
891
895
-
'@esbuild/linux-ia32@0.25.2':
896
-
resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==}
892
+
'@esbuild/linux-ia32@0.24.0':
893
+
resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==}
897
894
engines: {node: '>=18'}
898
895
cpu: [ia32]
899
896
os: [linux]
900
897
901
-
'@esbuild/linux-ia32@0.25.3':
902
-
resolution: {integrity: sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==}
898
+
'@esbuild/linux-ia32@0.24.2':
899
+
resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==}
903
900
engines: {node: '>=18'}
904
901
cpu: [ia32]
905
902
os: [linux]
906
903
907
-
'@esbuild/linux-loong64@0.25.2':
908
-
resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==}
904
+
'@esbuild/linux-loong64@0.24.0':
905
+
resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==}
909
906
engines: {node: '>=18'}
910
907
cpu: [loong64]
911
908
os: [linux]
912
909
913
-
'@esbuild/linux-loong64@0.25.3':
914
-
resolution: {integrity: sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==}
910
+
'@esbuild/linux-loong64@0.24.2':
911
+
resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==}
915
912
engines: {node: '>=18'}
916
913
cpu: [loong64]
917
914
os: [linux]
918
915
919
-
'@esbuild/linux-mips64el@0.25.2':
920
-
resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==}
916
+
'@esbuild/linux-mips64el@0.24.0':
917
+
resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==}
921
918
engines: {node: '>=18'}
922
919
cpu: [mips64el]
923
920
os: [linux]
924
921
925
-
'@esbuild/linux-mips64el@0.25.3':
926
-
resolution: {integrity: sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==}
922
+
'@esbuild/linux-mips64el@0.24.2':
923
+
resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==}
927
924
engines: {node: '>=18'}
928
925
cpu: [mips64el]
929
926
os: [linux]
930
927
931
-
'@esbuild/linux-ppc64@0.25.2':
932
-
resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==}
928
+
'@esbuild/linux-ppc64@0.24.0':
929
+
resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==}
933
930
engines: {node: '>=18'}
934
931
cpu: [ppc64]
935
932
os: [linux]
936
933
937
-
'@esbuild/linux-ppc64@0.25.3':
938
-
resolution: {integrity: sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==}
934
+
'@esbuild/linux-ppc64@0.24.2':
935
+
resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==}
939
936
engines: {node: '>=18'}
940
937
cpu: [ppc64]
941
938
os: [linux]
942
939
943
-
'@esbuild/linux-riscv64@0.25.2':
944
-
resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==}
940
+
'@esbuild/linux-riscv64@0.24.0':
941
+
resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==}
945
942
engines: {node: '>=18'}
946
943
cpu: [riscv64]
947
944
os: [linux]
948
945
949
-
'@esbuild/linux-riscv64@0.25.3':
950
-
resolution: {integrity: sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==}
946
+
'@esbuild/linux-riscv64@0.24.2':
947
+
resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==}
951
948
engines: {node: '>=18'}
952
949
cpu: [riscv64]
953
950
os: [linux]
954
951
955
-
'@esbuild/linux-s390x@0.25.2':
956
-
resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==}
952
+
'@esbuild/linux-s390x@0.24.0':
953
+
resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==}
957
954
engines: {node: '>=18'}
958
955
cpu: [s390x]
959
956
os: [linux]
960
957
961
-
'@esbuild/linux-s390x@0.25.3':
962
-
resolution: {integrity: sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==}
958
+
'@esbuild/linux-s390x@0.24.2':
959
+
resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==}
963
960
engines: {node: '>=18'}
964
961
cpu: [s390x]
965
962
os: [linux]
966
963
967
-
'@esbuild/linux-x64@0.25.2':
968
-
resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==}
964
+
'@esbuild/linux-x64@0.24.0':
965
+
resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==}
969
966
engines: {node: '>=18'}
970
967
cpu: [x64]
971
968
os: [linux]
972
969
973
-
'@esbuild/linux-x64@0.25.3':
974
-
resolution: {integrity: sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==}
970
+
'@esbuild/linux-x64@0.24.2':
971
+
resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==}
975
972
engines: {node: '>=18'}
976
973
cpu: [x64]
977
974
os: [linux]
978
975
979
-
'@esbuild/netbsd-arm64@0.25.2':
980
-
resolution: {integrity: sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==}
976
+
'@esbuild/netbsd-arm64@0.24.2':
977
+
resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==}
981
978
engines: {node: '>=18'}
982
979
cpu: [arm64]
983
980
os: [netbsd]
984
981
985
-
'@esbuild/netbsd-arm64@0.25.3':
986
-
resolution: {integrity: sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==}
987
-
engines: {node: '>=18'}
988
-
cpu: [arm64]
989
-
os: [netbsd]
990
-
991
-
'@esbuild/netbsd-x64@0.25.2':
992
-
resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==}
982
+
'@esbuild/netbsd-x64@0.24.0':
983
+
resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==}
993
984
engines: {node: '>=18'}
994
985
cpu: [x64]
995
986
os: [netbsd]
996
987
997
-
'@esbuild/netbsd-x64@0.25.3':
998
-
resolution: {integrity: sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==}
988
+
'@esbuild/netbsd-x64@0.24.2':
989
+
resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==}
999
990
engines: {node: '>=18'}
1000
991
cpu: [x64]
1001
992
os: [netbsd]
1002
993
1003
-
'@esbuild/openbsd-arm64@0.25.2':
1004
-
resolution: {integrity: sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==}
994
+
'@esbuild/openbsd-arm64@0.24.0':
995
+
resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==}
1005
996
engines: {node: '>=18'}
1006
997
cpu: [arm64]
1007
998
os: [openbsd]
1008
999
1009
-
'@esbuild/openbsd-arm64@0.25.3':
1010
-
resolution: {integrity: sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==}
1000
+
'@esbuild/openbsd-arm64@0.24.2':
1001
+
resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==}
1011
1002
engines: {node: '>=18'}
1012
1003
cpu: [arm64]
1013
1004
os: [openbsd]
1014
1005
1015
-
'@esbuild/openbsd-x64@0.25.2':
1016
-
resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==}
1006
+
'@esbuild/openbsd-x64@0.24.0':
1007
+
resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==}
1017
1008
engines: {node: '>=18'}
1018
1009
cpu: [x64]
1019
1010
os: [openbsd]
1020
1011
1021
-
'@esbuild/openbsd-x64@0.25.3':
1022
-
resolution: {integrity: sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==}
1012
+
'@esbuild/openbsd-x64@0.24.2':
1013
+
resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==}
1023
1014
engines: {node: '>=18'}
1024
1015
cpu: [x64]
1025
1016
os: [openbsd]
1026
1017
1027
-
'@esbuild/sunos-x64@0.25.2':
1028
-
resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==}
1018
+
'@esbuild/sunos-x64@0.24.0':
1019
+
resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==}
1029
1020
engines: {node: '>=18'}
1030
1021
cpu: [x64]
1031
1022
os: [sunos]
1032
1023
1033
-
'@esbuild/sunos-x64@0.25.3':
1034
-
resolution: {integrity: sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==}
1024
+
'@esbuild/sunos-x64@0.24.2':
1025
+
resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==}
1035
1026
engines: {node: '>=18'}
1036
1027
cpu: [x64]
1037
1028
os: [sunos]
1038
1029
1039
-
'@esbuild/win32-arm64@0.25.2':
1040
-
resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==}
1030
+
'@esbuild/win32-arm64@0.24.0':
1031
+
resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==}
1041
1032
engines: {node: '>=18'}
1042
1033
cpu: [arm64]
1043
1034
os: [win32]
1044
1035
1045
-
'@esbuild/win32-arm64@0.25.3':
1046
-
resolution: {integrity: sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==}
1036
+
'@esbuild/win32-arm64@0.24.2':
1037
+
resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==}
1047
1038
engines: {node: '>=18'}
1048
1039
cpu: [arm64]
1049
1040
os: [win32]
1050
1041
1051
-
'@esbuild/win32-ia32@0.25.2':
1052
-
resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==}
1042
+
'@esbuild/win32-ia32@0.24.0':
1043
+
resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==}
1053
1044
engines: {node: '>=18'}
1054
1045
cpu: [ia32]
1055
1046
os: [win32]
1056
1047
1057
-
'@esbuild/win32-ia32@0.25.3':
1058
-
resolution: {integrity: sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==}
1048
+
'@esbuild/win32-ia32@0.24.2':
1049
+
resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==}
1059
1050
engines: {node: '>=18'}
1060
1051
cpu: [ia32]
1061
1052
os: [win32]
1062
1053
1063
-
'@esbuild/win32-x64@0.25.2':
1064
-
resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==}
1054
+
'@esbuild/win32-x64@0.24.0':
1055
+
resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==}
1065
1056
engines: {node: '>=18'}
1066
1057
cpu: [x64]
1067
1058
os: [win32]
1068
1059
1069
-
'@esbuild/win32-x64@0.25.3':
1070
-
resolution: {integrity: sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==}
1060
+
'@esbuild/win32-x64@0.24.2':
1061
+
resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==}
1071
1062
engines: {node: '>=18'}
1072
1063
cpu: [x64]
1073
1064
os: [win32]
···
1086
1077
resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==}
1087
1078
engines: {node: '>=14'}
1088
1079
1089
-
'@floating-ui/core@1.7.0':
1090
-
resolution: {integrity: sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==}
1080
+
'@floating-ui/core@1.6.9':
1081
+
resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==}
1091
1082
1092
-
'@floating-ui/dom@1.7.0':
1093
-
resolution: {integrity: sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg==}
1083
+
'@floating-ui/dom@1.6.13':
1084
+
resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==}
1094
1085
1095
1086
'@floating-ui/utils@0.2.9':
1096
1087
resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==}
···
1234
1225
'@jsr/mary__async-iterator-fns@0.1.1':
1235
1226
resolution: {integrity: sha512-ef/TDpu6yGTAb4fbGEjSFPO7u49WrxJeXa9T6fvmjlpEfR84qxrjTR6MEUQ1hMySD0+O9yQKvBl/KL5x7K9+iA==, tarball: https://npm.jsr.io/~/11/@jsr/mary__async-iterator-fns/0.1.1.tgz}
1236
1227
1237
-
'@jsr/mary__batch-fetch@0.1.0':
1238
-
resolution: {integrity: sha512-A5SmTfDUMjr+AaJA+wFg4eKKVQm6/51CYTg5ssO+vcnaCJoP1Y0RURG6VkMno9QUholf3AAldfzRgQOXDZbFgg==, tarball: https://npm.jsr.io/~/11/@jsr/mary__batch-fetch/0.1.0.tgz}
1239
-
1240
1228
'@jsr/mary__date-fns@0.1.3':
1241
1229
resolution: {integrity: sha512-kjS04BESEHO9ZTqjOxk4ip8DsAdVDmt/jC5V4zVIYq3VD/04+WJK9kjdQda23eVZMuF9ZZY0zMswU7UXG+PSrg==, tarball: https://npm.jsr.io/~/11/@jsr/mary__date-fns/0.1.3.tgz}
1242
1230
···
1326
1314
rollup:
1327
1315
optional: true
1328
1316
1329
-
'@rollup/rollup-android-arm-eabi@4.40.1':
1330
-
resolution: {integrity: sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==}
1317
+
'@rollup/rollup-android-arm-eabi@4.37.0':
1318
+
resolution: {integrity: sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ==}
1331
1319
cpu: [arm]
1332
1320
os: [android]
1333
1321
1334
-
'@rollup/rollup-android-arm64@4.40.1':
1335
-
resolution: {integrity: sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==}
1322
+
'@rollup/rollup-android-arm64@4.37.0':
1323
+
resolution: {integrity: sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA==}
1336
1324
cpu: [arm64]
1337
1325
os: [android]
1338
1326
1339
-
'@rollup/rollup-darwin-arm64@4.40.1':
1340
-
resolution: {integrity: sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==}
1327
+
'@rollup/rollup-darwin-arm64@4.37.0':
1328
+
resolution: {integrity: sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA==}
1341
1329
cpu: [arm64]
1342
1330
os: [darwin]
1343
1331
1344
-
'@rollup/rollup-darwin-x64@4.40.1':
1345
-
resolution: {integrity: sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==}
1332
+
'@rollup/rollup-darwin-x64@4.37.0':
1333
+
resolution: {integrity: sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ==}
1346
1334
cpu: [x64]
1347
1335
os: [darwin]
1348
1336
1349
-
'@rollup/rollup-freebsd-arm64@4.40.1':
1350
-
resolution: {integrity: sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==}
1337
+
'@rollup/rollup-freebsd-arm64@4.37.0':
1338
+
resolution: {integrity: sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA==}
1351
1339
cpu: [arm64]
1352
1340
os: [freebsd]
1353
1341
1354
-
'@rollup/rollup-freebsd-x64@4.40.1':
1355
-
resolution: {integrity: sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==}
1342
+
'@rollup/rollup-freebsd-x64@4.37.0':
1343
+
resolution: {integrity: sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA==}
1356
1344
cpu: [x64]
1357
1345
os: [freebsd]
1358
1346
1359
-
'@rollup/rollup-linux-arm-gnueabihf@4.40.1':
1360
-
resolution: {integrity: sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==}
1347
+
'@rollup/rollup-linux-arm-gnueabihf@4.37.0':
1348
+
resolution: {integrity: sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w==}
1361
1349
cpu: [arm]
1362
1350
os: [linux]
1363
1351
1364
-
'@rollup/rollup-linux-arm-musleabihf@4.40.1':
1365
-
resolution: {integrity: sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==}
1352
+
'@rollup/rollup-linux-arm-musleabihf@4.37.0':
1353
+
resolution: {integrity: sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag==}
1366
1354
cpu: [arm]
1367
1355
os: [linux]
1368
1356
1369
-
'@rollup/rollup-linux-arm64-gnu@4.40.1':
1370
-
resolution: {integrity: sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==}
1357
+
'@rollup/rollup-linux-arm64-gnu@4.37.0':
1358
+
resolution: {integrity: sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA==}
1371
1359
cpu: [arm64]
1372
1360
os: [linux]
1373
1361
1374
-
'@rollup/rollup-linux-arm64-musl@4.40.1':
1375
-
resolution: {integrity: sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==}
1362
+
'@rollup/rollup-linux-arm64-musl@4.37.0':
1363
+
resolution: {integrity: sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ==}
1376
1364
cpu: [arm64]
1377
1365
os: [linux]
1378
1366
1379
-
'@rollup/rollup-linux-loongarch64-gnu@4.40.1':
1380
-
resolution: {integrity: sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==}
1367
+
'@rollup/rollup-linux-loongarch64-gnu@4.37.0':
1368
+
resolution: {integrity: sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA==}
1381
1369
cpu: [loong64]
1382
1370
os: [linux]
1383
1371
1384
-
'@rollup/rollup-linux-powerpc64le-gnu@4.40.1':
1385
-
resolution: {integrity: sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==}
1372
+
'@rollup/rollup-linux-powerpc64le-gnu@4.37.0':
1373
+
resolution: {integrity: sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ==}
1386
1374
cpu: [ppc64]
1387
1375
os: [linux]
1388
1376
1389
-
'@rollup/rollup-linux-riscv64-gnu@4.40.1':
1390
-
resolution: {integrity: sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==}
1377
+
'@rollup/rollup-linux-riscv64-gnu@4.37.0':
1378
+
resolution: {integrity: sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw==}
1391
1379
cpu: [riscv64]
1392
1380
os: [linux]
1393
1381
1394
-
'@rollup/rollup-linux-riscv64-musl@4.40.1':
1395
-
resolution: {integrity: sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==}
1382
+
'@rollup/rollup-linux-riscv64-musl@4.37.0':
1383
+
resolution: {integrity: sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA==}
1396
1384
cpu: [riscv64]
1397
1385
os: [linux]
1398
1386
1399
-
'@rollup/rollup-linux-s390x-gnu@4.40.1':
1400
-
resolution: {integrity: sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==}
1387
+
'@rollup/rollup-linux-s390x-gnu@4.37.0':
1388
+
resolution: {integrity: sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A==}
1401
1389
cpu: [s390x]
1402
1390
os: [linux]
1403
1391
1404
-
'@rollup/rollup-linux-x64-gnu@4.40.1':
1405
-
resolution: {integrity: sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==}
1392
+
'@rollup/rollup-linux-x64-gnu@4.37.0':
1393
+
resolution: {integrity: sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ==}
1406
1394
cpu: [x64]
1407
1395
os: [linux]
1408
1396
1409
-
'@rollup/rollup-linux-x64-musl@4.40.1':
1410
-
resolution: {integrity: sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==}
1397
+
'@rollup/rollup-linux-x64-musl@4.37.0':
1398
+
resolution: {integrity: sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w==}
1411
1399
cpu: [x64]
1412
1400
os: [linux]
1413
1401
1414
-
'@rollup/rollup-win32-arm64-msvc@4.40.1':
1415
-
resolution: {integrity: sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==}
1402
+
'@rollup/rollup-win32-arm64-msvc@4.37.0':
1403
+
resolution: {integrity: sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg==}
1416
1404
cpu: [arm64]
1417
1405
os: [win32]
1418
1406
1419
-
'@rollup/rollup-win32-ia32-msvc@4.40.1':
1420
-
resolution: {integrity: sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==}
1407
+
'@rollup/rollup-win32-ia32-msvc@4.37.0':
1408
+
resolution: {integrity: sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA==}
1421
1409
cpu: [ia32]
1422
1410
os: [win32]
1423
1411
1424
-
'@rollup/rollup-win32-x64-msvc@4.40.1':
1425
-
resolution: {integrity: sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==}
1412
+
'@rollup/rollup-win32-x64-msvc@4.37.0':
1413
+
resolution: {integrity: sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA==}
1426
1414
cpu: [x64]
1427
1415
os: [win32]
1428
1416
···
1451
1439
'@types/babel__core@7.20.5':
1452
1440
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
1453
1441
1454
-
'@types/babel__generator@7.27.0':
1455
-
resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
1442
+
'@types/babel__generator@7.6.8':
1443
+
resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
1456
1444
1457
1445
'@types/babel__template@7.4.4':
1458
1446
resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
···
1469
1457
'@types/estree@0.0.39':
1470
1458
resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==}
1471
1459
1460
+
'@types/estree@1.0.6':
1461
+
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
1462
+
1472
1463
'@types/estree@1.0.7':
1473
1464
resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
1474
1465
···
1541
1532
peerDependencies:
1542
1533
postcss: ^8.1.0
1543
1534
1544
-
babel-plugin-jsx-dom-expressions@0.39.8:
1545
-
resolution: {integrity: sha512-/MVOIIjonylDXnrWmG23ZX82m9mtKATsVHB7zYlPfDR9Vdd/NBE48if+wv27bSkBtyO7EPMUlcUc4J63QwuACQ==}
1535
+
babel-plugin-jsx-dom-expressions@0.39.7:
1536
+
resolution: {integrity: sha512-8GzVmFla7jaTNWW8W+lTMl9YGva4/06CtwJjySnkYtt8G1v9weCzc2SuF1DfrudcCNb2Doetc1FRg33swBYZCA==}
1546
1537
peerDependencies:
1547
1538
'@babel/core': ^7.20.12
1548
1539
···
1566
1557
peerDependencies:
1567
1558
'@babel/core': ^7.24.4
1568
1559
1569
-
babel-preset-solid@1.9.6:
1570
-
resolution: {integrity: sha512-HXTK9f93QxoH8dYn1M2mJdOlWgMsR88Lg/ul6QCZGkNTktjTE5HAf93YxQumHoCudLEtZrU1cFCMFOVho6GqFg==}
1560
+
babel-preset-solid@1.9.5:
1561
+
resolution: {integrity: sha512-85I3osODJ1LvZbv8wFozROV1vXq32BubqHXAGu73A//TRs3NLI1OFP83AQBUTSQHwgZQmARjHlJciym3we+V+w==}
1571
1562
peerDependencies:
1572
1563
'@babel/core': ^7.0.0
1573
1564
···
1594
1585
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
1595
1586
engines: {node: '>=8'}
1596
1587
1597
-
browserslist@4.24.5:
1598
-
resolution: {integrity: sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==}
1588
+
browserslist@4.24.4:
1589
+
resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==}
1599
1590
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
1600
1591
hasBin: true
1601
1592
···
1606
1597
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
1607
1598
engines: {node: '>= 6'}
1608
1599
1609
-
caniuse-lite@1.0.30001716:
1610
-
resolution: {integrity: sha512-49/c1+x3Kwz7ZIWt+4DvK3aMJy9oYXXG6/97JKsnjdCk/6n9vVyWL8NAwVt95Lwt9eigI10Hl782kDfZUUlRXw==}
1600
+
caniuse-lite@1.0.30001707:
1601
+
resolution: {integrity: sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==}
1611
1602
1612
1603
chalk@4.1.2:
1613
1604
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
···
1651
1642
convert-source-map@2.0.0:
1652
1643
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
1653
1644
1654
-
cookie@0.7.2:
1655
-
resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==}
1645
+
cookie@0.5.0:
1646
+
resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
1656
1647
engines: {node: '>= 0.6'}
1657
1648
1658
-
core-js-compat@3.42.0:
1659
-
resolution: {integrity: sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==}
1649
+
core-js-compat@3.41.0:
1650
+
resolution: {integrity: sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==}
1660
1651
1661
1652
cross-spawn@7.0.6:
1662
1653
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
···
1693
1684
defu@6.1.4:
1694
1685
resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
1695
1686
1696
-
detect-libc@2.0.4:
1697
-
resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==}
1687
+
detect-libc@2.0.3:
1688
+
resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
1698
1689
engines: {node: '>=8'}
1699
1690
1700
1691
didyoumean@1.2.2:
···
1711
1702
engines: {node: '>=0.10.0'}
1712
1703
hasBin: true
1713
1704
1714
-
electron-to-chromium@1.5.149:
1715
-
resolution: {integrity: sha512-UyiO82eb9dVOx8YO3ajDf9jz2kKyt98DEITRdeLPstOEuTlLzDA4Gyq5K9he71TQziU5jUVu2OAu5N48HmQiyQ==}
1705
+
electron-to-chromium@1.5.128:
1706
+
resolution: {integrity: sha512-bo1A4HH/NS522Ws0QNFIzyPcyUUNV/yyy70Ho1xqfGYzPUme2F/xr4tlEOuM6/A538U1vDA7a4XfCd1CKRegKQ==}
1716
1707
1717
1708
emoji-regex@8.0.0:
1718
1709
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
···
1720
1711
emoji-regex@9.2.2:
1721
1712
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
1722
1713
1723
-
entities@6.0.0:
1724
-
resolution: {integrity: sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==}
1714
+
entities@4.5.0:
1715
+
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
1725
1716
engines: {node: '>=0.12'}
1726
1717
1727
-
esbuild@0.25.2:
1728
-
resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==}
1718
+
esbuild@0.24.0:
1719
+
resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==}
1729
1720
engines: {node: '>=18'}
1730
1721
hasBin: true
1731
1722
1732
-
esbuild@0.25.3:
1733
-
resolution: {integrity: sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==}
1723
+
esbuild@0.24.2:
1724
+
resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==}
1734
1725
engines: {node: '>=18'}
1735
1726
hasBin: true
1736
1727
···
1752
1743
resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==}
1753
1744
engines: {node: '>=6'}
1754
1745
1755
-
exsolve@1.0.5:
1756
-
resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==}
1746
+
exsolve@1.0.4:
1747
+
resolution: {integrity: sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==}
1757
1748
1758
1749
fast-deep-equal@3.1.3:
1759
1750
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
···
1771
1762
fastq@1.19.1:
1772
1763
resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
1773
1764
1774
-
fdir@6.4.4:
1775
-
resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==}
1765
+
fdir@6.4.3:
1766
+
resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==}
1776
1767
peerDependencies:
1777
1768
picomatch: ^3 || ^4
1778
1769
peerDependenciesMeta:
···
1845
1836
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1846
1837
engines: {node: '>=8'}
1847
1838
1848
-
hls.js@1.6.2:
1849
-
resolution: {integrity: sha512-rx+pETSCJEDThm/JCm8CuadcAC410cVjb1XVXFNDKFuylaayHk1+tFxhkjvnMDAfqsJHxZXDAJ3Uc2d5xQyWlQ==}
1839
+
hls.js@1.6.0:
1840
+
resolution: {integrity: sha512-AlW8ymcDKZuKtzXCUmEy4nOcHRkebnShH6t6hC2+QJQP0WXlTUSSO9Kp22uSEYdCgpwkXEJsfOhqxrgO2tDctQ==}
1850
1841
1851
1842
html-entities@2.3.3:
1852
1843
resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==}
···
2001
1992
engines: {node: '>=10.0.0'}
2002
1993
hasBin: true
2003
1994
2004
-
miniflare@4.20250428.1:
2005
-
resolution: {integrity: sha512-M3qcJXjeAEimHrEeWXEhrJiC3YHB5M3QSqqK67pOTI+lHn0QyVG/2iFUjVJ/nv+i10uxeAEva8GRGeu+tKRCmQ==}
1995
+
miniflare@4.20250321.1:
1996
+
resolution: {integrity: sha512-pQuVtF6vQ1zMvPCo3Z19mzSFjgnlEnybzNzAJZipsqIk6kMXpYBZq+d8cWmeQFkBYlgeZKeKJ4EBKT6KapfTNg==}
2006
1997
engines: {node: '>=18.0.0'}
2007
1998
hasBin: true
2008
1999
···
2069
2060
package-json-from-dist@1.0.1:
2070
2061
resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
2071
2062
2072
-
parse5@7.3.0:
2073
-
resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
2063
+
parse5@7.2.1:
2064
+
resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==}
2074
2065
2075
2066
path-is-absolute@1.0.1:
2076
2067
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
···
2250
2241
2251
2242
regenerate@1.4.2:
2252
2243
resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
2244
+
2245
+
regenerator-runtime@0.14.1:
2246
+
resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
2247
+
2248
+
regenerator-transform@0.15.2:
2249
+
resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
2253
2250
2254
2251
regexpu-core@6.2.0:
2255
2252
resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==}
···
2280
2277
engines: {node: '>=10.0.0'}
2281
2278
hasBin: true
2282
2279
2283
-
rollup@4.40.1:
2284
-
resolution: {integrity: sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==}
2280
+
rollup@4.37.0:
2281
+
resolution: {integrity: sha512-iAtQy/L4QFU+rTJ1YUjXqJOJzuwEghqWzCEYD2FEghT7Gsy1VdABntrO4CLopA5IkflTyqNiLNwPcOJ3S7UKLg==}
2285
2282
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
2286
2283
hasBin: true
2287
2284
···
2339
2336
'@floating-ui/dom': ^1.0
2340
2337
solid-js: ^1.3
2341
2338
2342
-
solid-js@1.9.6:
2343
-
resolution: {integrity: sha512-PoasAJvLk60hRtOTe9ulvALOdLjjqxuxcGZRolBQqxOnXrBXHGzqMT4ijNhGsDAYdOgEa8ZYaAE94PSldrFSkA==}
2339
+
solid-js@1.9.5:
2340
+
resolution: {integrity: sha512-ogI3DaFcyn6UhYhrgcyRAMbu/buBJitYQASZz5WzfQVPP10RD2AbCoRZ517psnezrasyCbWzIxZ6kVqet768xw==}
2344
2341
2345
2342
solid-refresh@0.6.3:
2346
2343
resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==}
···
2435
2432
thenify@3.3.1:
2436
2433
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
2437
2434
2438
-
tinyglobby@0.2.13:
2439
-
resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==}
2435
+
tinyglobby@0.2.12:
2436
+
resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==}
2440
2437
engines: {node: '>=12.0.0'}
2441
2438
2442
2439
to-regex-range@5.0.1:
···
2456
2453
resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==}
2457
2454
engines: {node: '>=10'}
2458
2455
2459
-
typescript@5.8.3:
2460
-
resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
2456
+
typescript@5.7.2:
2457
+
resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==}
2461
2458
engines: {node: '>=14.17'}
2462
2459
hasBin: true
2463
2460
2464
-
ufo@1.6.1:
2465
-
resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
2461
+
ufo@1.5.4:
2462
+
resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==}
2466
2463
2467
2464
undici@5.29.0:
2468
2465
resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==}
···
2531
2528
'@testing-library/jest-dom':
2532
2529
optional: true
2533
2530
2534
-
vite@6.3.4:
2535
-
resolution: {integrity: sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==}
2531
+
vite@6.0.5:
2532
+
resolution: {integrity: sha512-akD5IAH/ID5imgue2DYhzsEwCi0/4VKY31uhMLEYJwPP4TiUp8pL5PIK+Wo7H8qT8JY9i+pVfPydcFPYD1EL7g==}
2536
2533
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
2537
2534
hasBin: true
2538
2535
peerDependencies:
···
2582
2579
webidl-conversions@4.0.2:
2583
2580
resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
2584
2581
2585
-
webm-muxer@5.1.2:
2586
-
resolution: {integrity: sha512-gl9pXKRD/zr/njtW6P2Z/a4qSWFHjEL1OxMjoRVR10eZCw0b/J3Z0pX5RAX8x03Q78P585KVxQQkd4lWuek5rQ==}
2582
+
webm-muxer@5.1.1:
2583
+
resolution: {integrity: sha512-oqGiFrwVr0LoVEIgSIISV+CURkPje1K2WiTzH+FUT4A70PcZHSPkwihBxwr+jumr76sQmhMHo9mvP82AuNiCiA==}
2587
2584
2588
2585
whatwg-url@7.1.0:
2589
2586
resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==}
···
2642
2639
workbox-window@7.3.0:
2643
2640
resolution: {integrity: sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==}
2644
2641
2645
-
workerd@1.20250428.0:
2646
-
resolution: {integrity: sha512-JJNWkHkwPQKQdvtM9UORijgYdcdJsihA4SfYjwh02IUQsdMyZ9jizV1sX9yWi9B9ptlohTW8UNHJEATuphGgdg==}
2642
+
workerd@1.20250321.0:
2643
+
resolution: {integrity: sha512-vyuz9pdJ+7o1lC79vQ2UVRLXPARa2Lq94PbTfqEcYQeSxeR9X+YqhNq2yysv8Zs5vpokmexLCtMniPp9u+2LVQ==}
2647
2644
engines: {node: '>=16'}
2648
2645
hasBin: true
2649
2646
2650
-
wrangler@4.14.1:
2651
-
resolution: {integrity: sha512-EU7IThP7i68TBftJJSveogvWZ5k/WRijcJh3UclDWiWWhDZTPbL6LOJEFhHKqFzHOaC4Y2Aewt48rfTz0e7oCw==}
2647
+
wrangler@4.6.0:
2648
+
resolution: {integrity: sha512-2a2ZD0adlvxQ1H+nRKkuuD0dkgaYTOPlC7gBolItk5TfqOSliEV4m6DtZtKtJp33ioM+Uy6TlEWPpA2TrDveEQ==}
2652
2649
engines: {node: '>=18.0.0'}
2653
2650
hasBin: true
2654
2651
peerDependencies:
2655
-
'@cloudflare/workers-types': ^4.20250428.0
2652
+
'@cloudflare/workers-types': ^4.20250321.0
2656
2653
peerDependenciesMeta:
2657
2654
'@cloudflare/workers-types':
2658
2655
optional: true
···
2683
2680
yallist@3.1.1:
2684
2681
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
2685
2682
2686
-
yaml@2.7.1:
2687
-
resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==}
2683
+
yaml@2.7.0:
2684
+
resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==}
2688
2685
engines: {node: '>= 14'}
2689
2686
hasBin: true
2690
2687
2691
-
youch@3.3.4:
2692
-
resolution: {integrity: sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==}
2688
+
youch@3.2.3:
2689
+
resolution: {integrity: sha512-ZBcWz/uzZaQVdCvfV4uk616Bbpf2ee+F/AvuKDR5EwX/Y4v06xWdtMluqTD7+KlZdM93lLm9gMZYo0sKBS0pgw==}
2693
2690
2694
2691
zod@3.22.3:
2695
2692
resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==}
···
2710
2707
jsonpointer: 5.0.1
2711
2708
leven: 3.1.0
2712
2709
2713
-
'@atcute/bluemoji@2.0.0(@atcute/bluesky@2.1.1(@atcute/client@3.1.0))(@atcute/client@3.1.0)':
2710
+
'@atcute/bluemoji@1.0.4(@atcute/bluesky@1.0.15(@atcute/client@2.0.9))(@atcute/client@2.0.9)':
2714
2711
dependencies:
2715
-
'@atcute/bluesky': 2.1.1(@atcute/client@3.1.0)
2716
-
'@atcute/client': 3.1.0
2712
+
'@atcute/bluesky': 1.0.15(@atcute/client@2.0.9)
2713
+
'@atcute/client': 2.0.9
2717
2714
2718
2715
'@atcute/bluesky-richtext-parser@1.0.7': {}
2719
2716
2720
-
'@atcute/bluesky-richtext-segmenter@2.0.0(@atcute/bluesky@2.1.1(@atcute/client@3.1.0))(@atcute/client@3.1.0)':
2717
+
'@atcute/bluesky-richtext-segmenter@1.0.5(@atcute/bluesky@1.0.15(@atcute/client@2.0.9))(@atcute/client@2.0.9)':
2721
2718
dependencies:
2722
-
'@atcute/bluesky': 2.1.1(@atcute/client@3.1.0)
2723
-
'@atcute/client': 3.1.0
2719
+
'@atcute/bluesky': 1.0.15(@atcute/client@2.0.9)
2720
+
'@atcute/client': 2.0.9
2724
2721
2725
2722
'@atcute/bluesky-search-parser@0.1.0': {}
2726
2723
2727
-
'@atcute/bluesky@2.1.1(@atcute/client@3.1.0)':
2724
+
'@atcute/bluesky@1.0.15(@atcute/client@2.0.9)':
2728
2725
dependencies:
2729
-
'@atcute/client': 3.1.0
2726
+
'@atcute/client': 2.0.9
2730
2727
2731
-
'@atcute/cbor@2.2.3':
2728
+
'@atcute/cbor@2.2.0':
2732
2729
dependencies:
2733
-
'@atcute/cid': 2.2.2
2734
-
'@atcute/multibase': 1.1.3
2730
+
'@atcute/cid': 2.2.0
2731
+
'@atcute/multibase': 1.1.2
2735
2732
'@atcute/uint8array': 1.0.1
2736
2733
2737
-
'@atcute/cid@2.2.2':
2734
+
'@atcute/cid@2.2.0':
2738
2735
dependencies:
2739
-
'@atcute/multibase': 1.1.3
2736
+
'@atcute/multibase': 1.1.2
2740
2737
'@atcute/uint8array': 1.0.1
2741
2738
2742
-
'@atcute/client@3.1.0': {}
2739
+
'@atcute/client@2.0.9': {}
2743
2740
2744
-
'@atcute/multibase@1.1.3':
2741
+
'@atcute/multibase@1.1.2':
2745
2742
dependencies:
2746
2743
'@atcute/uint8array': 1.0.1
2747
2744
2748
-
'@atcute/oauth-browser-client@1.0.18':
2745
+
'@atcute/oauth-browser-client@1.0.16':
2749
2746
dependencies:
2750
-
'@atcute/client': 3.1.0
2751
-
'@atcute/multibase': 1.1.3
2747
+
'@atcute/client': 2.0.9
2748
+
'@atcute/multibase': 1.1.2
2752
2749
'@atcute/uint8array': 1.0.1
2753
2750
2754
2751
'@atcute/tid@1.0.2': {}
···
2757
2754
2758
2755
'@atlaskit/pragmatic-drag-and-drop-hitbox@1.0.3':
2759
2756
dependencies:
2760
-
'@atlaskit/pragmatic-drag-and-drop': 1.6.0
2761
-
'@babel/runtime': 7.27.1
2757
+
'@atlaskit/pragmatic-drag-and-drop': 1.5.2
2758
+
'@babel/runtime': 7.27.0
2762
2759
2763
-
'@atlaskit/pragmatic-drag-and-drop@1.6.0':
2760
+
'@atlaskit/pragmatic-drag-and-drop@1.5.2':
2764
2761
dependencies:
2765
-
'@babel/runtime': 7.27.1
2762
+
'@babel/runtime': 7.27.0
2766
2763
bind-event-listener: 3.0.0
2767
2764
raf-schd: 4.0.3
2768
2765
2769
-
'@babel/code-frame@7.27.1':
2766
+
'@babel/code-frame@7.26.2':
2770
2767
dependencies:
2771
-
'@babel/helper-validator-identifier': 7.27.1
2768
+
'@babel/helper-validator-identifier': 7.25.9
2772
2769
js-tokens: 4.0.0
2773
2770
picocolors: 1.1.1
2774
2771
2775
-
'@babel/compat-data@7.27.1': {}
2772
+
'@babel/compat-data@7.26.8': {}
2776
2773
2777
-
'@babel/core@7.27.1':
2774
+
'@babel/core@7.26.10':
2778
2775
dependencies:
2779
2776
'@ampproject/remapping': 2.3.0
2780
-
'@babel/code-frame': 7.27.1
2781
-
'@babel/generator': 7.27.1
2782
-
'@babel/helper-compilation-targets': 7.27.1
2783
-
'@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1)
2784
-
'@babel/helpers': 7.27.1
2785
-
'@babel/parser': 7.27.1
2786
-
'@babel/template': 7.27.1
2787
-
'@babel/traverse': 7.27.1
2788
-
'@babel/types': 7.27.1
2777
+
'@babel/code-frame': 7.26.2
2778
+
'@babel/generator': 7.27.0
2779
+
'@babel/helper-compilation-targets': 7.27.0
2780
+
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10)
2781
+
'@babel/helpers': 7.27.0
2782
+
'@babel/parser': 7.27.0
2783
+
'@babel/template': 7.27.0
2784
+
'@babel/traverse': 7.27.0
2785
+
'@babel/types': 7.27.0
2789
2786
convert-source-map: 2.0.0
2790
2787
debug: 4.4.0
2791
2788
gensync: 1.0.0-beta.2
···
2794
2791
transitivePeerDependencies:
2795
2792
- supports-color
2796
2793
2797
-
'@babel/generator@7.27.1':
2794
+
'@babel/generator@7.27.0':
2798
2795
dependencies:
2799
-
'@babel/parser': 7.27.1
2800
-
'@babel/types': 7.27.1
2796
+
'@babel/parser': 7.27.0
2797
+
'@babel/types': 7.27.0
2801
2798
'@jridgewell/gen-mapping': 0.3.8
2802
2799
'@jridgewell/trace-mapping': 0.3.25
2803
2800
jsesc: 3.1.0
2804
2801
2805
-
'@babel/helper-annotate-as-pure@7.27.1':
2802
+
'@babel/helper-annotate-as-pure@7.25.9':
2806
2803
dependencies:
2807
-
'@babel/types': 7.27.1
2804
+
'@babel/types': 7.27.0
2808
2805
2809
-
'@babel/helper-compilation-targets@7.27.1':
2806
+
'@babel/helper-compilation-targets@7.27.0':
2810
2807
dependencies:
2811
-
'@babel/compat-data': 7.27.1
2812
-
'@babel/helper-validator-option': 7.27.1
2813
-
browserslist: 4.24.5
2808
+
'@babel/compat-data': 7.26.8
2809
+
'@babel/helper-validator-option': 7.25.9
2810
+
browserslist: 4.24.4
2814
2811
lru-cache: 5.1.1
2815
2812
semver: 6.3.1
2816
2813
2817
-
'@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.1)':
2814
+
'@babel/helper-create-class-features-plugin@7.27.0(@babel/core@7.26.10)':
2818
2815
dependencies:
2819
-
'@babel/core': 7.27.1
2820
-
'@babel/helper-annotate-as-pure': 7.27.1
2821
-
'@babel/helper-member-expression-to-functions': 7.27.1
2822
-
'@babel/helper-optimise-call-expression': 7.27.1
2823
-
'@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1)
2824
-
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
2825
-
'@babel/traverse': 7.27.1
2816
+
'@babel/core': 7.26.10
2817
+
'@babel/helper-annotate-as-pure': 7.25.9
2818
+
'@babel/helper-member-expression-to-functions': 7.25.9
2819
+
'@babel/helper-optimise-call-expression': 7.25.9
2820
+
'@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.10)
2821
+
'@babel/helper-skip-transparent-expression-wrappers': 7.25.9
2822
+
'@babel/traverse': 7.27.0
2826
2823
semver: 6.3.1
2827
2824
transitivePeerDependencies:
2828
2825
- supports-color
2829
2826
2830
-
'@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.27.1)':
2827
+
'@babel/helper-create-regexp-features-plugin@7.27.0(@babel/core@7.26.10)':
2831
2828
dependencies:
2832
-
'@babel/core': 7.27.1
2833
-
'@babel/helper-annotate-as-pure': 7.27.1
2829
+
'@babel/core': 7.26.10
2830
+
'@babel/helper-annotate-as-pure': 7.25.9
2834
2831
regexpu-core: 6.2.0
2835
2832
semver: 6.3.1
2836
2833
2837
-
'@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.27.1)':
2834
+
'@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.26.10)':
2838
2835
dependencies:
2839
-
'@babel/core': 7.27.1
2840
-
'@babel/helper-compilation-targets': 7.27.1
2841
-
'@babel/helper-plugin-utils': 7.27.1
2836
+
'@babel/core': 7.26.10
2837
+
'@babel/helper-compilation-targets': 7.27.0
2838
+
'@babel/helper-plugin-utils': 7.26.5
2842
2839
debug: 4.4.0
2843
2840
lodash.debounce: 4.0.8
2844
2841
resolve: 1.22.10
2845
2842
transitivePeerDependencies:
2846
2843
- supports-color
2847
2844
2848
-
'@babel/helper-member-expression-to-functions@7.27.1':
2845
+
'@babel/helper-member-expression-to-functions@7.25.9':
2849
2846
dependencies:
2850
-
'@babel/traverse': 7.27.1
2851
-
'@babel/types': 7.27.1
2847
+
'@babel/traverse': 7.27.0
2848
+
'@babel/types': 7.27.0
2852
2849
transitivePeerDependencies:
2853
2850
- supports-color
2854
2851
2855
2852
'@babel/helper-module-imports@7.18.6':
2856
2853
dependencies:
2857
-
'@babel/types': 7.27.1
2854
+
'@babel/types': 7.27.0
2858
2855
2859
-
'@babel/helper-module-imports@7.27.1':
2856
+
'@babel/helper-module-imports@7.25.9':
2860
2857
dependencies:
2861
-
'@babel/traverse': 7.27.1
2862
-
'@babel/types': 7.27.1
2858
+
'@babel/traverse': 7.27.0
2859
+
'@babel/types': 7.27.0
2863
2860
transitivePeerDependencies:
2864
2861
- supports-color
2865
2862
2866
-
'@babel/helper-module-transforms@7.27.1(@babel/core@7.27.1)':
2863
+
'@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)':
2867
2864
dependencies:
2868
-
'@babel/core': 7.27.1
2869
-
'@babel/helper-module-imports': 7.27.1
2870
-
'@babel/helper-validator-identifier': 7.27.1
2871
-
'@babel/traverse': 7.27.1
2865
+
'@babel/core': 7.26.10
2866
+
'@babel/helper-module-imports': 7.25.9
2867
+
'@babel/helper-validator-identifier': 7.25.9
2868
+
'@babel/traverse': 7.27.0
2872
2869
transitivePeerDependencies:
2873
2870
- supports-color
2874
2871
2875
-
'@babel/helper-optimise-call-expression@7.27.1':
2872
+
'@babel/helper-optimise-call-expression@7.25.9':
2876
2873
dependencies:
2877
-
'@babel/types': 7.27.1
2874
+
'@babel/types': 7.27.0
2878
2875
2879
-
'@babel/helper-plugin-utils@7.27.1': {}
2876
+
'@babel/helper-plugin-utils@7.26.5': {}
2880
2877
2881
-
'@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.27.1)':
2878
+
'@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.10)':
2882
2879
dependencies:
2883
-
'@babel/core': 7.27.1
2884
-
'@babel/helper-annotate-as-pure': 7.27.1
2885
-
'@babel/helper-wrap-function': 7.27.1
2886
-
'@babel/traverse': 7.27.1
2880
+
'@babel/core': 7.26.10
2881
+
'@babel/helper-annotate-as-pure': 7.25.9
2882
+
'@babel/helper-wrap-function': 7.25.9
2883
+
'@babel/traverse': 7.27.0
2887
2884
transitivePeerDependencies:
2888
2885
- supports-color
2889
2886
2890
-
'@babel/helper-replace-supers@7.27.1(@babel/core@7.27.1)':
2887
+
'@babel/helper-replace-supers@7.26.5(@babel/core@7.26.10)':
2891
2888
dependencies:
2892
-
'@babel/core': 7.27.1
2893
-
'@babel/helper-member-expression-to-functions': 7.27.1
2894
-
'@babel/helper-optimise-call-expression': 7.27.1
2895
-
'@babel/traverse': 7.27.1
2889
+
'@babel/core': 7.26.10
2890
+
'@babel/helper-member-expression-to-functions': 7.25.9
2891
+
'@babel/helper-optimise-call-expression': 7.25.9
2892
+
'@babel/traverse': 7.27.0
2896
2893
transitivePeerDependencies:
2897
2894
- supports-color
2898
2895
2899
-
'@babel/helper-skip-transparent-expression-wrappers@7.27.1':
2896
+
'@babel/helper-skip-transparent-expression-wrappers@7.25.9':
2900
2897
dependencies:
2901
-
'@babel/traverse': 7.27.1
2902
-
'@babel/types': 7.27.1
2898
+
'@babel/traverse': 7.27.0
2899
+
'@babel/types': 7.27.0
2903
2900
transitivePeerDependencies:
2904
2901
- supports-color
2905
2902
2906
-
'@babel/helper-string-parser@7.27.1': {}
2903
+
'@babel/helper-string-parser@7.25.9': {}
2907
2904
2908
-
'@babel/helper-validator-identifier@7.27.1': {}
2905
+
'@babel/helper-validator-identifier@7.25.9': {}
2909
2906
2910
-
'@babel/helper-validator-option@7.27.1': {}
2907
+
'@babel/helper-validator-option@7.25.9': {}
2911
2908
2912
-
'@babel/helper-wrap-function@7.27.1':
2909
+
'@babel/helper-wrap-function@7.25.9':
2913
2910
dependencies:
2914
-
'@babel/template': 7.27.1
2915
-
'@babel/traverse': 7.27.1
2916
-
'@babel/types': 7.27.1
2911
+
'@babel/template': 7.27.0
2912
+
'@babel/traverse': 7.27.0
2913
+
'@babel/types': 7.27.0
2917
2914
transitivePeerDependencies:
2918
2915
- supports-color
2919
2916
2920
-
'@babel/helpers@7.27.1':
2917
+
'@babel/helpers@7.27.0':
2921
2918
dependencies:
2922
-
'@babel/template': 7.27.1
2923
-
'@babel/types': 7.27.1
2919
+
'@babel/template': 7.27.0
2920
+
'@babel/types': 7.27.0
2924
2921
2925
-
'@babel/parser@7.27.1':
2922
+
'@babel/parser@7.27.0':
2926
2923
dependencies:
2927
-
'@babel/types': 7.27.1
2924
+
'@babel/types': 7.27.0
2928
2925
2929
-
'@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.27.1)':
2926
+
'@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.10)':
2930
2927
dependencies:
2931
-
'@babel/core': 7.27.1
2932
-
'@babel/helper-plugin-utils': 7.27.1
2933
-
'@babel/traverse': 7.27.1
2928
+
'@babel/core': 7.26.10
2929
+
'@babel/helper-plugin-utils': 7.26.5
2930
+
'@babel/traverse': 7.27.0
2934
2931
transitivePeerDependencies:
2935
2932
- supports-color
2936
2933
2937
-
'@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.27.1)':
2934
+
'@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.10)':
2938
2935
dependencies:
2939
-
'@babel/core': 7.27.1
2940
-
'@babel/helper-plugin-utils': 7.27.1
2936
+
'@babel/core': 7.26.10
2937
+
'@babel/helper-plugin-utils': 7.26.5
2941
2938
2942
-
'@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.27.1)':
2939
+
'@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.10)':
2943
2940
dependencies:
2944
-
'@babel/core': 7.27.1
2945
-
'@babel/helper-plugin-utils': 7.27.1
2941
+
'@babel/core': 7.26.10
2942
+
'@babel/helper-plugin-utils': 7.26.5
2946
2943
2947
-
'@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.27.1)':
2944
+
'@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.10)':
2948
2945
dependencies:
2949
-
'@babel/core': 7.27.1
2950
-
'@babel/helper-plugin-utils': 7.27.1
2951
-
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
2952
-
'@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.1)
2946
+
'@babel/core': 7.26.10
2947
+
'@babel/helper-plugin-utils': 7.26.5
2948
+
'@babel/helper-skip-transparent-expression-wrappers': 7.25.9
2949
+
'@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.10)
2953
2950
transitivePeerDependencies:
2954
2951
- supports-color
2955
2952
2956
-
'@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.27.1)':
2953
+
'@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.10)':
2957
2954
dependencies:
2958
-
'@babel/core': 7.27.1
2959
-
'@babel/helper-plugin-utils': 7.27.1
2960
-
'@babel/traverse': 7.27.1
2955
+
'@babel/core': 7.26.10
2956
+
'@babel/helper-plugin-utils': 7.26.5
2957
+
'@babel/traverse': 7.27.0
2961
2958
transitivePeerDependencies:
2962
2959
- supports-color
2963
2960
2964
-
'@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.27.1)':
2961
+
'@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.10)':
2965
2962
dependencies:
2966
-
'@babel/core': 7.27.1
2963
+
'@babel/core': 7.26.10
2967
2964
2968
-
'@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.27.1)':
2965
+
'@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.10)':
2969
2966
dependencies:
2970
-
'@babel/core': 7.27.1
2971
-
'@babel/helper-plugin-utils': 7.27.1
2967
+
'@babel/core': 7.26.10
2968
+
'@babel/helper-plugin-utils': 7.26.5
2972
2969
2973
-
'@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.1)':
2970
+
'@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.10)':
2974
2971
dependencies:
2975
-
'@babel/core': 7.27.1
2976
-
'@babel/helper-plugin-utils': 7.27.1
2972
+
'@babel/core': 7.26.10
2973
+
'@babel/helper-plugin-utils': 7.26.5
2977
2974
2978
-
'@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.1)':
2975
+
'@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.10)':
2979
2976
dependencies:
2980
-
'@babel/core': 7.27.1
2981
-
'@babel/helper-plugin-utils': 7.27.1
2977
+
'@babel/core': 7.26.10
2978
+
'@babel/helper-plugin-utils': 7.26.5
2982
2979
2983
-
'@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.27.1)':
2980
+
'@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.10)':
2984
2981
dependencies:
2985
-
'@babel/core': 7.27.1
2986
-
'@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1)
2987
-
'@babel/helper-plugin-utils': 7.27.1
2982
+
'@babel/core': 7.26.10
2983
+
'@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10)
2984
+
'@babel/helper-plugin-utils': 7.26.5
2988
2985
2989
-
'@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.27.1)':
2986
+
'@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.10)':
2990
2987
dependencies:
2991
-
'@babel/core': 7.27.1
2992
-
'@babel/helper-plugin-utils': 7.27.1
2988
+
'@babel/core': 7.26.10
2989
+
'@babel/helper-plugin-utils': 7.26.5
2993
2990
2994
-
'@babel/plugin-transform-async-generator-functions@7.27.1(@babel/core@7.27.1)':
2991
+
'@babel/plugin-transform-async-generator-functions@7.26.8(@babel/core@7.26.10)':
2995
2992
dependencies:
2996
-
'@babel/core': 7.27.1
2997
-
'@babel/helper-plugin-utils': 7.27.1
2998
-
'@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.1)
2999
-
'@babel/traverse': 7.27.1
2993
+
'@babel/core': 7.26.10
2994
+
'@babel/helper-plugin-utils': 7.26.5
2995
+
'@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.10)
2996
+
'@babel/traverse': 7.27.0
3000
2997
transitivePeerDependencies:
3001
2998
- supports-color
3002
2999
3003
-
'@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.27.1)':
3000
+
'@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.10)':
3004
3001
dependencies:
3005
-
'@babel/core': 7.27.1
3006
-
'@babel/helper-module-imports': 7.27.1
3007
-
'@babel/helper-plugin-utils': 7.27.1
3008
-
'@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.1)
3002
+
'@babel/core': 7.26.10
3003
+
'@babel/helper-module-imports': 7.25.9
3004
+
'@babel/helper-plugin-utils': 7.26.5
3005
+
'@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.10)
3009
3006
transitivePeerDependencies:
3010
3007
- supports-color
3011
3008
3012
-
'@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.27.1)':
3009
+
'@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.26.10)':
3013
3010
dependencies:
3014
-
'@babel/core': 7.27.1
3015
-
'@babel/helper-plugin-utils': 7.27.1
3011
+
'@babel/core': 7.26.10
3012
+
'@babel/helper-plugin-utils': 7.26.5
3016
3013
3017
-
'@babel/plugin-transform-block-scoping@7.27.1(@babel/core@7.27.1)':
3014
+
'@babel/plugin-transform-block-scoping@7.27.0(@babel/core@7.26.10)':
3018
3015
dependencies:
3019
-
'@babel/core': 7.27.1
3020
-
'@babel/helper-plugin-utils': 7.27.1
3016
+
'@babel/core': 7.26.10
3017
+
'@babel/helper-plugin-utils': 7.26.5
3021
3018
3022
-
'@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.1)':
3019
+
'@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.10)':
3023
3020
dependencies:
3024
-
'@babel/core': 7.27.1
3025
-
'@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
3026
-
'@babel/helper-plugin-utils': 7.27.1
3021
+
'@babel/core': 7.26.10
3022
+
'@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.10)
3023
+
'@babel/helper-plugin-utils': 7.26.5
3027
3024
transitivePeerDependencies:
3028
3025
- supports-color
3029
3026
3030
-
'@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.27.1)':
3027
+
'@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.10)':
3031
3028
dependencies:
3032
-
'@babel/core': 7.27.1
3033
-
'@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
3034
-
'@babel/helper-plugin-utils': 7.27.1
3029
+
'@babel/core': 7.26.10
3030
+
'@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.10)
3031
+
'@babel/helper-plugin-utils': 7.26.5
3035
3032
transitivePeerDependencies:
3036
3033
- supports-color
3037
3034
3038
-
'@babel/plugin-transform-classes@7.27.1(@babel/core@7.27.1)':
3035
+
'@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.10)':
3039
3036
dependencies:
3040
-
'@babel/core': 7.27.1
3041
-
'@babel/helper-annotate-as-pure': 7.27.1
3042
-
'@babel/helper-compilation-targets': 7.27.1
3043
-
'@babel/helper-plugin-utils': 7.27.1
3044
-
'@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1)
3045
-
'@babel/traverse': 7.27.1
3037
+
'@babel/core': 7.26.10
3038
+
'@babel/helper-annotate-as-pure': 7.25.9
3039
+
'@babel/helper-compilation-targets': 7.27.0
3040
+
'@babel/helper-plugin-utils': 7.26.5
3041
+
'@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.10)
3042
+
'@babel/traverse': 7.27.0
3046
3043
globals: 11.12.0
3047
3044
transitivePeerDependencies:
3048
3045
- supports-color
3049
3046
3050
-
'@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.27.1)':
3047
+
'@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.10)':
3051
3048
dependencies:
3052
-
'@babel/core': 7.27.1
3053
-
'@babel/helper-plugin-utils': 7.27.1
3054
-
'@babel/template': 7.27.1
3049
+
'@babel/core': 7.26.10
3050
+
'@babel/helper-plugin-utils': 7.26.5
3051
+
'@babel/template': 7.27.0
3055
3052
3056
-
'@babel/plugin-transform-destructuring@7.27.1(@babel/core@7.27.1)':
3053
+
'@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.10)':
3057
3054
dependencies:
3058
-
'@babel/core': 7.27.1
3059
-
'@babel/helper-plugin-utils': 7.27.1
3055
+
'@babel/core': 7.26.10
3056
+
'@babel/helper-plugin-utils': 7.26.5
3060
3057
3061
-
'@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.27.1)':
3058
+
'@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.10)':
3062
3059
dependencies:
3063
-
'@babel/core': 7.27.1
3064
-
'@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1)
3065
-
'@babel/helper-plugin-utils': 7.27.1
3060
+
'@babel/core': 7.26.10
3061
+
'@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10)
3062
+
'@babel/helper-plugin-utils': 7.26.5
3066
3063
3067
-
'@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.27.1)':
3064
+
'@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.10)':
3068
3065
dependencies:
3069
-
'@babel/core': 7.27.1
3070
-
'@babel/helper-plugin-utils': 7.27.1
3066
+
'@babel/core': 7.26.10
3067
+
'@babel/helper-plugin-utils': 7.26.5
3071
3068
3072
-
'@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.27.1)':
3069
+
'@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.10)':
3073
3070
dependencies:
3074
-
'@babel/core': 7.27.1
3075
-
'@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1)
3076
-
'@babel/helper-plugin-utils': 7.27.1
3071
+
'@babel/core': 7.26.10
3072
+
'@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10)
3073
+
'@babel/helper-plugin-utils': 7.26.5
3077
3074
3078
-
'@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.27.1)':
3075
+
'@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.10)':
3079
3076
dependencies:
3080
-
'@babel/core': 7.27.1
3081
-
'@babel/helper-plugin-utils': 7.27.1
3077
+
'@babel/core': 7.26.10
3078
+
'@babel/helper-plugin-utils': 7.26.5
3082
3079
3083
-
'@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.27.1)':
3080
+
'@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.10)':
3084
3081
dependencies:
3085
-
'@babel/core': 7.27.1
3086
-
'@babel/helper-plugin-utils': 7.27.1
3082
+
'@babel/core': 7.26.10
3083
+
'@babel/helper-plugin-utils': 7.26.5
3087
3084
3088
-
'@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.27.1)':
3085
+
'@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.10)':
3089
3086
dependencies:
3090
-
'@babel/core': 7.27.1
3091
-
'@babel/helper-plugin-utils': 7.27.1
3087
+
'@babel/core': 7.26.10
3088
+
'@babel/helper-plugin-utils': 7.26.5
3092
3089
3093
-
'@babel/plugin-transform-for-of@7.27.1(@babel/core@7.27.1)':
3090
+
'@babel/plugin-transform-for-of@7.26.9(@babel/core@7.26.10)':
3094
3091
dependencies:
3095
-
'@babel/core': 7.27.1
3096
-
'@babel/helper-plugin-utils': 7.27.1
3097
-
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
3092
+
'@babel/core': 7.26.10
3093
+
'@babel/helper-plugin-utils': 7.26.5
3094
+
'@babel/helper-skip-transparent-expression-wrappers': 7.25.9
3098
3095
transitivePeerDependencies:
3099
3096
- supports-color
3100
3097
3101
-
'@babel/plugin-transform-function-name@7.27.1(@babel/core@7.27.1)':
3098
+
'@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.10)':
3102
3099
dependencies:
3103
-
'@babel/core': 7.27.1
3104
-
'@babel/helper-compilation-targets': 7.27.1
3105
-
'@babel/helper-plugin-utils': 7.27.1
3106
-
'@babel/traverse': 7.27.1
3100
+
'@babel/core': 7.26.10
3101
+
'@babel/helper-compilation-targets': 7.27.0
3102
+
'@babel/helper-plugin-utils': 7.26.5
3103
+
'@babel/traverse': 7.27.0
3107
3104
transitivePeerDependencies:
3108
3105
- supports-color
3109
3106
3110
-
'@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.27.1)':
3107
+
'@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.10)':
3111
3108
dependencies:
3112
-
'@babel/core': 7.27.1
3113
-
'@babel/helper-plugin-utils': 7.27.1
3109
+
'@babel/core': 7.26.10
3110
+
'@babel/helper-plugin-utils': 7.26.5
3114
3111
3115
-
'@babel/plugin-transform-literals@7.27.1(@babel/core@7.27.1)':
3112
+
'@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.10)':
3116
3113
dependencies:
3117
-
'@babel/core': 7.27.1
3118
-
'@babel/helper-plugin-utils': 7.27.1
3114
+
'@babel/core': 7.26.10
3115
+
'@babel/helper-plugin-utils': 7.26.5
3119
3116
3120
-
'@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.27.1)':
3117
+
'@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.10)':
3121
3118
dependencies:
3122
-
'@babel/core': 7.27.1
3123
-
'@babel/helper-plugin-utils': 7.27.1
3119
+
'@babel/core': 7.26.10
3120
+
'@babel/helper-plugin-utils': 7.26.5
3124
3121
3125
-
'@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.27.1)':
3122
+
'@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.10)':
3126
3123
dependencies:
3127
-
'@babel/core': 7.27.1
3128
-
'@babel/helper-plugin-utils': 7.27.1
3124
+
'@babel/core': 7.26.10
3125
+
'@babel/helper-plugin-utils': 7.26.5
3129
3126
3130
-
'@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.27.1)':
3127
+
'@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.10)':
3131
3128
dependencies:
3132
-
'@babel/core': 7.27.1
3133
-
'@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1)
3134
-
'@babel/helper-plugin-utils': 7.27.1
3129
+
'@babel/core': 7.26.10
3130
+
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10)
3131
+
'@babel/helper-plugin-utils': 7.26.5
3135
3132
transitivePeerDependencies:
3136
3133
- supports-color
3137
3134
3138
-
'@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.1)':
3135
+
'@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.10)':
3139
3136
dependencies:
3140
-
'@babel/core': 7.27.1
3141
-
'@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1)
3142
-
'@babel/helper-plugin-utils': 7.27.1
3137
+
'@babel/core': 7.26.10
3138
+
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10)
3139
+
'@babel/helper-plugin-utils': 7.26.5
3143
3140
transitivePeerDependencies:
3144
3141
- supports-color
3145
3142
3146
-
'@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.27.1)':
3143
+
'@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.10)':
3147
3144
dependencies:
3148
-
'@babel/core': 7.27.1
3149
-
'@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1)
3150
-
'@babel/helper-plugin-utils': 7.27.1
3151
-
'@babel/helper-validator-identifier': 7.27.1
3152
-
'@babel/traverse': 7.27.1
3145
+
'@babel/core': 7.26.10
3146
+
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10)
3147
+
'@babel/helper-plugin-utils': 7.26.5
3148
+
'@babel/helper-validator-identifier': 7.25.9
3149
+
'@babel/traverse': 7.27.0
3153
3150
transitivePeerDependencies:
3154
3151
- supports-color
3155
3152
3156
-
'@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.27.1)':
3153
+
'@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.10)':
3157
3154
dependencies:
3158
-
'@babel/core': 7.27.1
3159
-
'@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1)
3160
-
'@babel/helper-plugin-utils': 7.27.1
3155
+
'@babel/core': 7.26.10
3156
+
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10)
3157
+
'@babel/helper-plugin-utils': 7.26.5
3161
3158
transitivePeerDependencies:
3162
3159
- supports-color
3163
3160
3164
-
'@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.27.1)':
3161
+
'@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.10)':
3165
3162
dependencies:
3166
-
'@babel/core': 7.27.1
3167
-
'@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1)
3168
-
'@babel/helper-plugin-utils': 7.27.1
3163
+
'@babel/core': 7.26.10
3164
+
'@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10)
3165
+
'@babel/helper-plugin-utils': 7.26.5
3169
3166
3170
-
'@babel/plugin-transform-new-target@7.27.1(@babel/core@7.27.1)':
3167
+
'@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.10)':
3171
3168
dependencies:
3172
-
'@babel/core': 7.27.1
3173
-
'@babel/helper-plugin-utils': 7.27.1
3169
+
'@babel/core': 7.26.10
3170
+
'@babel/helper-plugin-utils': 7.26.5
3174
3171
3175
-
'@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.1)':
3172
+
'@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.26.10)':
3176
3173
dependencies:
3177
-
'@babel/core': 7.27.1
3178
-
'@babel/helper-plugin-utils': 7.27.1
3174
+
'@babel/core': 7.26.10
3175
+
'@babel/helper-plugin-utils': 7.26.5
3179
3176
3180
-
'@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.27.1)':
3177
+
'@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.10)':
3181
3178
dependencies:
3182
-
'@babel/core': 7.27.1
3183
-
'@babel/helper-plugin-utils': 7.27.1
3179
+
'@babel/core': 7.26.10
3180
+
'@babel/helper-plugin-utils': 7.26.5
3184
3181
3185
-
'@babel/plugin-transform-object-rest-spread@7.27.1(@babel/core@7.27.1)':
3182
+
'@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.10)':
3186
3183
dependencies:
3187
-
'@babel/core': 7.27.1
3188
-
'@babel/helper-compilation-targets': 7.27.1
3189
-
'@babel/helper-plugin-utils': 7.27.1
3190
-
'@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.1)
3184
+
'@babel/core': 7.26.10
3185
+
'@babel/helper-compilation-targets': 7.27.0
3186
+
'@babel/helper-plugin-utils': 7.26.5
3187
+
'@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.10)
3191
3188
3192
-
'@babel/plugin-transform-object-super@7.27.1(@babel/core@7.27.1)':
3189
+
'@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.10)':
3193
3190
dependencies:
3194
-
'@babel/core': 7.27.1
3195
-
'@babel/helper-plugin-utils': 7.27.1
3196
-
'@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1)
3191
+
'@babel/core': 7.26.10
3192
+
'@babel/helper-plugin-utils': 7.26.5
3193
+
'@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.10)
3197
3194
transitivePeerDependencies:
3198
3195
- supports-color
3199
3196
3200
-
'@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.27.1)':
3197
+
'@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.10)':
3201
3198
dependencies:
3202
-
'@babel/core': 7.27.1
3203
-
'@babel/helper-plugin-utils': 7.27.1
3199
+
'@babel/core': 7.26.10
3200
+
'@babel/helper-plugin-utils': 7.26.5
3204
3201
3205
-
'@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.1)':
3202
+
'@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.10)':
3206
3203
dependencies:
3207
-
'@babel/core': 7.27.1
3208
-
'@babel/helper-plugin-utils': 7.27.1
3209
-
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
3204
+
'@babel/core': 7.26.10
3205
+
'@babel/helper-plugin-utils': 7.26.5
3206
+
'@babel/helper-skip-transparent-expression-wrappers': 7.25.9
3210
3207
transitivePeerDependencies:
3211
3208
- supports-color
3212
3209
3213
-
'@babel/plugin-transform-parameters@7.27.1(@babel/core@7.27.1)':
3210
+
'@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.10)':
3214
3211
dependencies:
3215
-
'@babel/core': 7.27.1
3216
-
'@babel/helper-plugin-utils': 7.27.1
3212
+
'@babel/core': 7.26.10
3213
+
'@babel/helper-plugin-utils': 7.26.5
3217
3214
3218
-
'@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.1)':
3215
+
'@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.10)':
3219
3216
dependencies:
3220
-
'@babel/core': 7.27.1
3221
-
'@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
3222
-
'@babel/helper-plugin-utils': 7.27.1
3217
+
'@babel/core': 7.26.10
3218
+
'@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.10)
3219
+
'@babel/helper-plugin-utils': 7.26.5
3223
3220
transitivePeerDependencies:
3224
3221
- supports-color
3225
3222
3226
-
'@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.27.1)':
3223
+
'@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.10)':
3227
3224
dependencies:
3228
-
'@babel/core': 7.27.1
3229
-
'@babel/helper-annotate-as-pure': 7.27.1
3230
-
'@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
3231
-
'@babel/helper-plugin-utils': 7.27.1
3225
+
'@babel/core': 7.26.10
3226
+
'@babel/helper-annotate-as-pure': 7.25.9
3227
+
'@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.10)
3228
+
'@babel/helper-plugin-utils': 7.26.5
3232
3229
transitivePeerDependencies:
3233
3230
- supports-color
3234
3231
3235
-
'@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.27.1)':
3232
+
'@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.10)':
3236
3233
dependencies:
3237
-
'@babel/core': 7.27.1
3238
-
'@babel/helper-plugin-utils': 7.27.1
3234
+
'@babel/core': 7.26.10
3235
+
'@babel/helper-plugin-utils': 7.26.5
3239
3236
3240
-
'@babel/plugin-transform-regenerator@7.27.1(@babel/core@7.27.1)':
3237
+
'@babel/plugin-transform-regenerator@7.27.0(@babel/core@7.26.10)':
3241
3238
dependencies:
3242
-
'@babel/core': 7.27.1
3243
-
'@babel/helper-plugin-utils': 7.27.1
3239
+
'@babel/core': 7.26.10
3240
+
'@babel/helper-plugin-utils': 7.26.5
3241
+
regenerator-transform: 0.15.2
3244
3242
3245
-
'@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.27.1)':
3243
+
'@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.10)':
3246
3244
dependencies:
3247
-
'@babel/core': 7.27.1
3248
-
'@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1)
3249
-
'@babel/helper-plugin-utils': 7.27.1
3245
+
'@babel/core': 7.26.10
3246
+
'@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10)
3247
+
'@babel/helper-plugin-utils': 7.26.5
3250
3248
3251
-
'@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.27.1)':
3249
+
'@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.10)':
3252
3250
dependencies:
3253
-
'@babel/core': 7.27.1
3254
-
'@babel/helper-plugin-utils': 7.27.1
3251
+
'@babel/core': 7.26.10
3252
+
'@babel/helper-plugin-utils': 7.26.5
3255
3253
3256
-
'@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.27.1)':
3254
+
'@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.10)':
3257
3255
dependencies:
3258
-
'@babel/core': 7.27.1
3259
-
'@babel/helper-plugin-utils': 7.27.1
3256
+
'@babel/core': 7.26.10
3257
+
'@babel/helper-plugin-utils': 7.26.5
3260
3258
3261
-
'@babel/plugin-transform-spread@7.27.1(@babel/core@7.27.1)':
3259
+
'@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.10)':
3262
3260
dependencies:
3263
-
'@babel/core': 7.27.1
3264
-
'@babel/helper-plugin-utils': 7.27.1
3265
-
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
3261
+
'@babel/core': 7.26.10
3262
+
'@babel/helper-plugin-utils': 7.26.5
3263
+
'@babel/helper-skip-transparent-expression-wrappers': 7.25.9
3266
3264
transitivePeerDependencies:
3267
3265
- supports-color
3268
3266
3269
-
'@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.27.1)':
3267
+
'@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.10)':
3270
3268
dependencies:
3271
-
'@babel/core': 7.27.1
3272
-
'@babel/helper-plugin-utils': 7.27.1
3269
+
'@babel/core': 7.26.10
3270
+
'@babel/helper-plugin-utils': 7.26.5
3273
3271
3274
-
'@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.27.1)':
3272
+
'@babel/plugin-transform-template-literals@7.26.8(@babel/core@7.26.10)':
3275
3273
dependencies:
3276
-
'@babel/core': 7.27.1
3277
-
'@babel/helper-plugin-utils': 7.27.1
3274
+
'@babel/core': 7.26.10
3275
+
'@babel/helper-plugin-utils': 7.26.5
3278
3276
3279
-
'@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.27.1)':
3277
+
'@babel/plugin-transform-typeof-symbol@7.27.0(@babel/core@7.26.10)':
3280
3278
dependencies:
3281
-
'@babel/core': 7.27.1
3282
-
'@babel/helper-plugin-utils': 7.27.1
3279
+
'@babel/core': 7.26.10
3280
+
'@babel/helper-plugin-utils': 7.26.5
3283
3281
3284
-
'@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.27.1)':
3282
+
'@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.10)':
3285
3283
dependencies:
3286
-
'@babel/core': 7.27.1
3287
-
'@babel/helper-plugin-utils': 7.27.1
3284
+
'@babel/core': 7.26.10
3285
+
'@babel/helper-plugin-utils': 7.26.5
3288
3286
3289
-
'@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.27.1)':
3287
+
'@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.10)':
3290
3288
dependencies:
3291
-
'@babel/core': 7.27.1
3292
-
'@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1)
3293
-
'@babel/helper-plugin-utils': 7.27.1
3289
+
'@babel/core': 7.26.10
3290
+
'@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10)
3291
+
'@babel/helper-plugin-utils': 7.26.5
3294
3292
3295
-
'@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.27.1)':
3293
+
'@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.10)':
3296
3294
dependencies:
3297
-
'@babel/core': 7.27.1
3298
-
'@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1)
3299
-
'@babel/helper-plugin-utils': 7.27.1
3295
+
'@babel/core': 7.26.10
3296
+
'@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10)
3297
+
'@babel/helper-plugin-utils': 7.26.5
3300
3298
3301
-
'@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.27.1)':
3299
+
'@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.10)':
3302
3300
dependencies:
3303
-
'@babel/core': 7.27.1
3304
-
'@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1)
3305
-
'@babel/helper-plugin-utils': 7.27.1
3301
+
'@babel/core': 7.26.10
3302
+
'@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10)
3303
+
'@babel/helper-plugin-utils': 7.26.5
3306
3304
3307
-
'@babel/preset-env@7.27.1(@babel/core@7.27.1)':
3305
+
'@babel/preset-env@7.26.9(@babel/core@7.26.10)':
3308
3306
dependencies:
3309
-
'@babel/compat-data': 7.27.1
3310
-
'@babel/core': 7.27.1
3311
-
'@babel/helper-compilation-targets': 7.27.1
3312
-
'@babel/helper-plugin-utils': 7.27.1
3313
-
'@babel/helper-validator-option': 7.27.1
3314
-
'@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.27.1)
3315
-
'@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.27.1)
3316
-
'@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.27.1)
3317
-
'@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.27.1)
3318
-
'@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.27.1)
3319
-
'@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.27.1)
3320
-
'@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.27.1)
3321
-
'@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.1)
3322
-
'@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.27.1)
3323
-
'@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.27.1)
3324
-
'@babel/plugin-transform-async-generator-functions': 7.27.1(@babel/core@7.27.1)
3325
-
'@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.27.1)
3326
-
'@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.27.1)
3327
-
'@babel/plugin-transform-block-scoping': 7.27.1(@babel/core@7.27.1)
3328
-
'@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.1)
3329
-
'@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.27.1)
3330
-
'@babel/plugin-transform-classes': 7.27.1(@babel/core@7.27.1)
3331
-
'@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.27.1)
3332
-
'@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.27.1)
3333
-
'@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.27.1)
3334
-
'@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.27.1)
3335
-
'@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.27.1)
3336
-
'@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.27.1)
3337
-
'@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.27.1)
3338
-
'@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.27.1)
3339
-
'@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.27.1)
3340
-
'@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.27.1)
3341
-
'@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.27.1)
3342
-
'@babel/plugin-transform-literals': 7.27.1(@babel/core@7.27.1)
3343
-
'@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.27.1)
3344
-
'@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.27.1)
3345
-
'@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.27.1)
3346
-
'@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1)
3347
-
'@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.27.1)
3348
-
'@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.27.1)
3349
-
'@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.27.1)
3350
-
'@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.27.1)
3351
-
'@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.1)
3352
-
'@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.27.1)
3353
-
'@babel/plugin-transform-object-rest-spread': 7.27.1(@babel/core@7.27.1)
3354
-
'@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.27.1)
3355
-
'@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.27.1)
3356
-
'@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.1)
3357
-
'@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.1)
3358
-
'@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.1)
3359
-
'@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.27.1)
3360
-
'@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.27.1)
3361
-
'@babel/plugin-transform-regenerator': 7.27.1(@babel/core@7.27.1)
3362
-
'@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.27.1)
3363
-
'@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.27.1)
3364
-
'@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.27.1)
3365
-
'@babel/plugin-transform-spread': 7.27.1(@babel/core@7.27.1)
3366
-
'@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.27.1)
3367
-
'@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.1)
3368
-
'@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.27.1)
3369
-
'@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.27.1)
3370
-
'@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.27.1)
3371
-
'@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.27.1)
3372
-
'@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.27.1)
3373
-
'@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.27.1)
3374
-
babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.27.1)
3375
-
babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.27.1)
3376
-
babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.27.1)
3377
-
core-js-compat: 3.42.0
3307
+
'@babel/compat-data': 7.26.8
3308
+
'@babel/core': 7.26.10
3309
+
'@babel/helper-compilation-targets': 7.27.0
3310
+
'@babel/helper-plugin-utils': 7.26.5
3311
+
'@babel/helper-validator-option': 7.25.9
3312
+
'@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.10)
3313
+
'@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.10)
3314
+
'@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.10)
3315
+
'@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.10)
3316
+
'@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.10)
3317
+
'@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.10)
3318
+
'@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.10)
3319
+
'@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10)
3320
+
'@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.10)
3321
+
'@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.10)
3322
+
'@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.10)
3323
+
'@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.10)
3324
+
'@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.26.10)
3325
+
'@babel/plugin-transform-block-scoping': 7.27.0(@babel/core@7.26.10)
3326
+
'@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.10)
3327
+
'@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.10)
3328
+
'@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.10)
3329
+
'@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.10)
3330
+
'@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.10)
3331
+
'@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.10)
3332
+
'@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.10)
3333
+
'@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.10)
3334
+
'@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.10)
3335
+
'@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.10)
3336
+
'@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.10)
3337
+
'@babel/plugin-transform-for-of': 7.26.9(@babel/core@7.26.10)
3338
+
'@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.10)
3339
+
'@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.10)
3340
+
'@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.10)
3341
+
'@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.10)
3342
+
'@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.10)
3343
+
'@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.10)
3344
+
'@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.10)
3345
+
'@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.10)
3346
+
'@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.10)
3347
+
'@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.10)
3348
+
'@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.10)
3349
+
'@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.26.10)
3350
+
'@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.10)
3351
+
'@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.10)
3352
+
'@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.10)
3353
+
'@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.10)
3354
+
'@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.10)
3355
+
'@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.10)
3356
+
'@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.10)
3357
+
'@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.10)
3358
+
'@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.10)
3359
+
'@babel/plugin-transform-regenerator': 7.27.0(@babel/core@7.26.10)
3360
+
'@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.10)
3361
+
'@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.10)
3362
+
'@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.10)
3363
+
'@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.10)
3364
+
'@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.10)
3365
+
'@babel/plugin-transform-template-literals': 7.26.8(@babel/core@7.26.10)
3366
+
'@babel/plugin-transform-typeof-symbol': 7.27.0(@babel/core@7.26.10)
3367
+
'@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.10)
3368
+
'@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.10)
3369
+
'@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.10)
3370
+
'@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.10)
3371
+
'@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.10)
3372
+
babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.26.10)
3373
+
babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.26.10)
3374
+
babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.26.10)
3375
+
core-js-compat: 3.41.0
3378
3376
semver: 6.3.1
3379
3377
transitivePeerDependencies:
3380
3378
- supports-color
3381
3379
3382
-
'@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.27.1)':
3380
+
'@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.10)':
3383
3381
dependencies:
3384
-
'@babel/core': 7.27.1
3385
-
'@babel/helper-plugin-utils': 7.27.1
3386
-
'@babel/types': 7.27.1
3382
+
'@babel/core': 7.26.10
3383
+
'@babel/helper-plugin-utils': 7.26.5
3384
+
'@babel/types': 7.27.0
3387
3385
esutils: 2.0.3
3388
3386
3389
-
'@babel/runtime@7.27.1': {}
3387
+
'@babel/runtime@7.27.0':
3388
+
dependencies:
3389
+
regenerator-runtime: 0.14.1
3390
3390
3391
-
'@babel/template@7.27.1':
3391
+
'@babel/template@7.27.0':
3392
3392
dependencies:
3393
-
'@babel/code-frame': 7.27.1
3394
-
'@babel/parser': 7.27.1
3395
-
'@babel/types': 7.27.1
3393
+
'@babel/code-frame': 7.26.2
3394
+
'@babel/parser': 7.27.0
3395
+
'@babel/types': 7.27.0
3396
3396
3397
-
'@babel/traverse@7.27.1':
3397
+
'@babel/traverse@7.27.0':
3398
3398
dependencies:
3399
-
'@babel/code-frame': 7.27.1
3400
-
'@babel/generator': 7.27.1
3401
-
'@babel/parser': 7.27.1
3402
-
'@babel/template': 7.27.1
3403
-
'@babel/types': 7.27.1
3399
+
'@babel/code-frame': 7.26.2
3400
+
'@babel/generator': 7.27.0
3401
+
'@babel/parser': 7.27.0
3402
+
'@babel/template': 7.27.0
3403
+
'@babel/types': 7.27.0
3404
3404
debug: 4.4.0
3405
3405
globals: 11.12.0
3406
3406
transitivePeerDependencies:
3407
3407
- supports-color
3408
3408
3409
-
'@babel/types@7.27.1':
3409
+
'@babel/types@7.27.0':
3410
3410
dependencies:
3411
-
'@babel/helper-string-parser': 7.27.1
3412
-
'@babel/helper-validator-identifier': 7.27.1
3411
+
'@babel/helper-string-parser': 7.25.9
3412
+
'@babel/helper-validator-identifier': 7.25.9
3413
3413
3414
3414
'@cloudflare/kv-asset-handler@0.4.0':
3415
3415
dependencies:
3416
3416
mime: 3.0.0
3417
3417
3418
-
'@cloudflare/unenv-preset@2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250428.0)':
3418
+
'@cloudflare/unenv-preset@2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250321.0)':
3419
3419
dependencies:
3420
3420
unenv: 2.0.0-rc.15
3421
3421
optionalDependencies:
3422
-
workerd: 1.20250428.0
3422
+
workerd: 1.20250321.0
3423
3423
3424
-
'@cloudflare/workerd-darwin-64@1.20250428.0':
3424
+
'@cloudflare/workerd-darwin-64@1.20250321.0':
3425
3425
optional: true
3426
3426
3427
-
'@cloudflare/workerd-darwin-arm64@1.20250428.0':
3427
+
'@cloudflare/workerd-darwin-arm64@1.20250321.0':
3428
3428
optional: true
3429
3429
3430
-
'@cloudflare/workerd-linux-64@1.20250428.0':
3430
+
'@cloudflare/workerd-linux-64@1.20250321.0':
3431
3431
optional: true
3432
3432
3433
-
'@cloudflare/workerd-linux-arm64@1.20250428.0':
3433
+
'@cloudflare/workerd-linux-arm64@1.20250321.0':
3434
3434
optional: true
3435
3435
3436
-
'@cloudflare/workerd-windows-64@1.20250428.0':
3436
+
'@cloudflare/workerd-windows-64@1.20250321.0':
3437
3437
optional: true
3438
3438
3439
3439
'@cspotcode/source-map-support@0.8.1':
3440
3440
dependencies:
3441
3441
'@jridgewell/trace-mapping': 0.3.9
3442
3442
3443
-
'@emnapi/runtime@1.4.3':
3443
+
'@emnapi/runtime@1.4.0':
3444
3444
dependencies:
3445
3445
tslib: 2.8.1
3446
3446
optional: true
3447
3447
3448
-
'@esbuild/aix-ppc64@0.25.2':
3448
+
'@esbuild/aix-ppc64@0.24.0':
3449
3449
optional: true
3450
3450
3451
-
'@esbuild/aix-ppc64@0.25.3':
3451
+
'@esbuild/aix-ppc64@0.24.2':
3452
3452
optional: true
3453
3453
3454
-
'@esbuild/android-arm64@0.25.2':
3454
+
'@esbuild/android-arm64@0.24.0':
3455
3455
optional: true
3456
3456
3457
-
'@esbuild/android-arm64@0.25.3':
3457
+
'@esbuild/android-arm64@0.24.2':
3458
3458
optional: true
3459
3459
3460
-
'@esbuild/android-arm@0.25.2':
3460
+
'@esbuild/android-arm@0.24.0':
3461
3461
optional: true
3462
3462
3463
-
'@esbuild/android-arm@0.25.3':
3463
+
'@esbuild/android-arm@0.24.2':
3464
3464
optional: true
3465
3465
3466
-
'@esbuild/android-x64@0.25.2':
3466
+
'@esbuild/android-x64@0.24.0':
3467
3467
optional: true
3468
3468
3469
-
'@esbuild/android-x64@0.25.3':
3469
+
'@esbuild/android-x64@0.24.2':
3470
3470
optional: true
3471
3471
3472
-
'@esbuild/darwin-arm64@0.25.2':
3472
+
'@esbuild/darwin-arm64@0.24.0':
3473
3473
optional: true
3474
3474
3475
-
'@esbuild/darwin-arm64@0.25.3':
3475
+
'@esbuild/darwin-arm64@0.24.2':
3476
3476
optional: true
3477
3477
3478
-
'@esbuild/darwin-x64@0.25.2':
3478
+
'@esbuild/darwin-x64@0.24.0':
3479
3479
optional: true
3480
3480
3481
-
'@esbuild/darwin-x64@0.25.3':
3481
+
'@esbuild/darwin-x64@0.24.2':
3482
3482
optional: true
3483
3483
3484
-
'@esbuild/freebsd-arm64@0.25.2':
3484
+
'@esbuild/freebsd-arm64@0.24.0':
3485
3485
optional: true
3486
3486
3487
-
'@esbuild/freebsd-arm64@0.25.3':
3487
+
'@esbuild/freebsd-arm64@0.24.2':
3488
3488
optional: true
3489
3489
3490
-
'@esbuild/freebsd-x64@0.25.2':
3490
+
'@esbuild/freebsd-x64@0.24.0':
3491
3491
optional: true
3492
3492
3493
-
'@esbuild/freebsd-x64@0.25.3':
3493
+
'@esbuild/freebsd-x64@0.24.2':
3494
3494
optional: true
3495
3495
3496
-
'@esbuild/linux-arm64@0.25.2':
3496
+
'@esbuild/linux-arm64@0.24.0':
3497
3497
optional: true
3498
3498
3499
-
'@esbuild/linux-arm64@0.25.3':
3499
+
'@esbuild/linux-arm64@0.24.2':
3500
3500
optional: true
3501
3501
3502
-
'@esbuild/linux-arm@0.25.2':
3502
+
'@esbuild/linux-arm@0.24.0':
3503
3503
optional: true
3504
3504
3505
-
'@esbuild/linux-arm@0.25.3':
3505
+
'@esbuild/linux-arm@0.24.2':
3506
3506
optional: true
3507
3507
3508
-
'@esbuild/linux-ia32@0.25.2':
3508
+
'@esbuild/linux-ia32@0.24.0':
3509
3509
optional: true
3510
3510
3511
-
'@esbuild/linux-ia32@0.25.3':
3511
+
'@esbuild/linux-ia32@0.24.2':
3512
3512
optional: true
3513
3513
3514
-
'@esbuild/linux-loong64@0.25.2':
3514
+
'@esbuild/linux-loong64@0.24.0':
3515
3515
optional: true
3516
3516
3517
-
'@esbuild/linux-loong64@0.25.3':
3517
+
'@esbuild/linux-loong64@0.24.2':
3518
3518
optional: true
3519
3519
3520
-
'@esbuild/linux-mips64el@0.25.2':
3520
+
'@esbuild/linux-mips64el@0.24.0':
3521
3521
optional: true
3522
3522
3523
-
'@esbuild/linux-mips64el@0.25.3':
3523
+
'@esbuild/linux-mips64el@0.24.2':
3524
3524
optional: true
3525
3525
3526
-
'@esbuild/linux-ppc64@0.25.2':
3526
+
'@esbuild/linux-ppc64@0.24.0':
3527
3527
optional: true
3528
3528
3529
-
'@esbuild/linux-ppc64@0.25.3':
3529
+
'@esbuild/linux-ppc64@0.24.2':
3530
3530
optional: true
3531
3531
3532
-
'@esbuild/linux-riscv64@0.25.2':
3532
+
'@esbuild/linux-riscv64@0.24.0':
3533
3533
optional: true
3534
3534
3535
-
'@esbuild/linux-riscv64@0.25.3':
3535
+
'@esbuild/linux-riscv64@0.24.2':
3536
3536
optional: true
3537
3537
3538
-
'@esbuild/linux-s390x@0.25.2':
3538
+
'@esbuild/linux-s390x@0.24.0':
3539
3539
optional: true
3540
3540
3541
-
'@esbuild/linux-s390x@0.25.3':
3541
+
'@esbuild/linux-s390x@0.24.2':
3542
3542
optional: true
3543
3543
3544
-
'@esbuild/linux-x64@0.25.2':
3544
+
'@esbuild/linux-x64@0.24.0':
3545
3545
optional: true
3546
3546
3547
-
'@esbuild/linux-x64@0.25.3':
3547
+
'@esbuild/linux-x64@0.24.2':
3548
3548
optional: true
3549
3549
3550
-
'@esbuild/netbsd-arm64@0.25.2':
3550
+
'@esbuild/netbsd-arm64@0.24.2':
3551
3551
optional: true
3552
3552
3553
-
'@esbuild/netbsd-arm64@0.25.3':
3553
+
'@esbuild/netbsd-x64@0.24.0':
3554
3554
optional: true
3555
3555
3556
-
'@esbuild/netbsd-x64@0.25.2':
3556
+
'@esbuild/netbsd-x64@0.24.2':
3557
3557
optional: true
3558
3558
3559
-
'@esbuild/netbsd-x64@0.25.3':
3559
+
'@esbuild/openbsd-arm64@0.24.0':
3560
3560
optional: true
3561
3561
3562
-
'@esbuild/openbsd-arm64@0.25.2':
3562
+
'@esbuild/openbsd-arm64@0.24.2':
3563
3563
optional: true
3564
3564
3565
-
'@esbuild/openbsd-arm64@0.25.3':
3565
+
'@esbuild/openbsd-x64@0.24.0':
3566
3566
optional: true
3567
3567
3568
-
'@esbuild/openbsd-x64@0.25.2':
3568
+
'@esbuild/openbsd-x64@0.24.2':
3569
3569
optional: true
3570
3570
3571
-
'@esbuild/openbsd-x64@0.25.3':
3571
+
'@esbuild/sunos-x64@0.24.0':
3572
3572
optional: true
3573
3573
3574
-
'@esbuild/sunos-x64@0.25.2':
3574
+
'@esbuild/sunos-x64@0.24.2':
3575
3575
optional: true
3576
3576
3577
-
'@esbuild/sunos-x64@0.25.3':
3577
+
'@esbuild/win32-arm64@0.24.0':
3578
3578
optional: true
3579
3579
3580
-
'@esbuild/win32-arm64@0.25.2':
3580
+
'@esbuild/win32-arm64@0.24.2':
3581
3581
optional: true
3582
3582
3583
-
'@esbuild/win32-arm64@0.25.3':
3583
+
'@esbuild/win32-ia32@0.24.0':
3584
3584
optional: true
3585
3585
3586
-
'@esbuild/win32-ia32@0.25.2':
3586
+
'@esbuild/win32-ia32@0.24.2':
3587
3587
optional: true
3588
3588
3589
-
'@esbuild/win32-ia32@0.25.3':
3589
+
'@esbuild/win32-x64@0.24.0':
3590
3590
optional: true
3591
3591
3592
-
'@esbuild/win32-x64@0.25.2':
3592
+
'@esbuild/win32-x64@0.24.2':
3593
3593
optional: true
3594
3594
3595
-
'@esbuild/win32-x64@0.25.3':
3596
-
optional: true
3597
-
3598
-
'@externdefs/solid-freeze@0.1.1(solid-js@1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268))':
3595
+
'@externdefs/solid-freeze@0.1.1(solid-js@1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c))':
3599
3596
dependencies:
3600
-
solid-js: 1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268)
3597
+
solid-js: 1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c)
3601
3598
3602
-
'@externdefs/solid-query@0.1.5(solid-js@1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268))':
3599
+
'@externdefs/solid-query@0.1.5(solid-js@1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c))':
3603
3600
dependencies:
3604
3601
'@tanstack/query-core': 5.17.19(patch_hash=0b06407b66b7af88765fb6e01e112677a8c09ce518cb4f547cee8a0044471acd)
3605
-
solid-js: 1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268)
3602
+
solid-js: 1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c)
3606
3603
3607
3604
'@fastify/busboy@2.1.1': {}
3608
3605
3609
-
'@floating-ui/core@1.7.0':
3606
+
'@floating-ui/core@1.6.9':
3610
3607
dependencies:
3611
3608
'@floating-ui/utils': 0.2.9(patch_hash=1cf283fbaa686f96f7b3029bbc0955bff698af6f4a75ba6c276ad1a7a7c40aea)
3612
3609
3613
-
'@floating-ui/dom@1.7.0':
3610
+
'@floating-ui/dom@1.6.13':
3614
3611
dependencies:
3615
-
'@floating-ui/core': 1.7.0
3612
+
'@floating-ui/core': 1.6.9
3616
3613
'@floating-ui/utils': 0.2.9(patch_hash=1cf283fbaa686f96f7b3029bbc0955bff698af6f4a75ba6c276ad1a7a7c40aea)
3617
3614
3618
3615
'@floating-ui/utils@0.2.9(patch_hash=1cf283fbaa686f96f7b3029bbc0955bff698af6f4a75ba6c276ad1a7a7c40aea)': {}
···
3683
3680
3684
3681
'@img/sharp-wasm32@0.33.5':
3685
3682
dependencies:
3686
-
'@emnapi/runtime': 1.4.3
3683
+
'@emnapi/runtime': 1.4.0
3687
3684
optional: true
3688
3685
3689
3686
'@img/sharp-win32-ia32@0.33.5':
···
3732
3729
3733
3730
'@jsr/mary__async-iterator-fns@0.1.1': {}
3734
3731
3735
-
'@jsr/mary__batch-fetch@0.1.0': {}
3736
-
3737
3732
'@jsr/mary__date-fns@0.1.3': {}
3738
3733
3739
3734
'@jsr/mary__events@0.2.0': {}
···
3765
3760
'@pkgjs/parseargs@0.11.0':
3766
3761
optional: true
3767
3762
3768
-
'@rollup/plugin-babel@5.3.1(@babel/core@7.27.1)(@types/babel__core@7.20.5)(rollup@2.79.2)':
3763
+
'@rollup/plugin-babel@5.3.1(@babel/core@7.26.10)(@types/babel__core@7.20.5)(rollup@2.79.2)':
3769
3764
dependencies:
3770
-
'@babel/core': 7.27.1
3771
-
'@babel/helper-module-imports': 7.27.1
3765
+
'@babel/core': 7.26.10
3766
+
'@babel/helper-module-imports': 7.25.9
3772
3767
'@rollup/pluginutils': 3.1.0(rollup@2.79.2)
3773
3768
rollup: 2.79.2
3774
3769
optionalDependencies:
···
3815
3810
optionalDependencies:
3816
3811
rollup: 2.79.2
3817
3812
3818
-
'@rollup/rollup-android-arm-eabi@4.40.1':
3813
+
'@rollup/rollup-android-arm-eabi@4.37.0':
3819
3814
optional: true
3820
3815
3821
-
'@rollup/rollup-android-arm64@4.40.1':
3816
+
'@rollup/rollup-android-arm64@4.37.0':
3822
3817
optional: true
3823
3818
3824
-
'@rollup/rollup-darwin-arm64@4.40.1':
3819
+
'@rollup/rollup-darwin-arm64@4.37.0':
3825
3820
optional: true
3826
3821
3827
-
'@rollup/rollup-darwin-x64@4.40.1':
3822
+
'@rollup/rollup-darwin-x64@4.37.0':
3828
3823
optional: true
3829
3824
3830
-
'@rollup/rollup-freebsd-arm64@4.40.1':
3825
+
'@rollup/rollup-freebsd-arm64@4.37.0':
3831
3826
optional: true
3832
3827
3833
-
'@rollup/rollup-freebsd-x64@4.40.1':
3828
+
'@rollup/rollup-freebsd-x64@4.37.0':
3834
3829
optional: true
3835
3830
3836
-
'@rollup/rollup-linux-arm-gnueabihf@4.40.1':
3831
+
'@rollup/rollup-linux-arm-gnueabihf@4.37.0':
3837
3832
optional: true
3838
3833
3839
-
'@rollup/rollup-linux-arm-musleabihf@4.40.1':
3834
+
'@rollup/rollup-linux-arm-musleabihf@4.37.0':
3840
3835
optional: true
3841
3836
3842
-
'@rollup/rollup-linux-arm64-gnu@4.40.1':
3837
+
'@rollup/rollup-linux-arm64-gnu@4.37.0':
3843
3838
optional: true
3844
3839
3845
-
'@rollup/rollup-linux-arm64-musl@4.40.1':
3840
+
'@rollup/rollup-linux-arm64-musl@4.37.0':
3846
3841
optional: true
3847
3842
3848
-
'@rollup/rollup-linux-loongarch64-gnu@4.40.1':
3843
+
'@rollup/rollup-linux-loongarch64-gnu@4.37.0':
3849
3844
optional: true
3850
3845
3851
-
'@rollup/rollup-linux-powerpc64le-gnu@4.40.1':
3846
+
'@rollup/rollup-linux-powerpc64le-gnu@4.37.0':
3852
3847
optional: true
3853
3848
3854
-
'@rollup/rollup-linux-riscv64-gnu@4.40.1':
3849
+
'@rollup/rollup-linux-riscv64-gnu@4.37.0':
3855
3850
optional: true
3856
3851
3857
-
'@rollup/rollup-linux-riscv64-musl@4.40.1':
3852
+
'@rollup/rollup-linux-riscv64-musl@4.37.0':
3858
3853
optional: true
3859
3854
3860
-
'@rollup/rollup-linux-s390x-gnu@4.40.1':
3855
+
'@rollup/rollup-linux-s390x-gnu@4.37.0':
3861
3856
optional: true
3862
3857
3863
-
'@rollup/rollup-linux-x64-gnu@4.40.1':
3858
+
'@rollup/rollup-linux-x64-gnu@4.37.0':
3864
3859
optional: true
3865
3860
3866
-
'@rollup/rollup-linux-x64-musl@4.40.1':
3861
+
'@rollup/rollup-linux-x64-musl@4.37.0':
3867
3862
optional: true
3868
3863
3869
-
'@rollup/rollup-win32-arm64-msvc@4.40.1':
3864
+
'@rollup/rollup-win32-arm64-msvc@4.37.0':
3870
3865
optional: true
3871
3866
3872
-
'@rollup/rollup-win32-ia32-msvc@4.40.1':
3867
+
'@rollup/rollup-win32-ia32-msvc@4.37.0':
3873
3868
optional: true
3874
3869
3875
-
'@rollup/rollup-win32-x64-msvc@4.40.1':
3870
+
'@rollup/rollup-win32-x64-msvc@4.37.0':
3876
3871
optional: true
3877
3872
3878
3873
'@surma/rollup-plugin-off-main-thread@2.2.3':
···
3886
3881
3887
3882
'@trivago/prettier-plugin-sort-imports@5.2.2(prettier@3.5.3)':
3888
3883
dependencies:
3889
-
'@babel/generator': 7.27.1
3890
-
'@babel/parser': 7.27.1
3891
-
'@babel/traverse': 7.27.1
3892
-
'@babel/types': 7.27.1
3884
+
'@babel/generator': 7.27.0
3885
+
'@babel/parser': 7.27.0
3886
+
'@babel/traverse': 7.27.0
3887
+
'@babel/types': 7.27.0
3893
3888
javascript-natural-sort: 0.7.1
3894
3889
lodash: 4.17.21
3895
3890
prettier: 3.5.3
···
3898
3893
3899
3894
'@types/babel__core@7.20.5':
3900
3895
dependencies:
3901
-
'@babel/parser': 7.27.1
3902
-
'@babel/types': 7.27.1
3903
-
'@types/babel__generator': 7.27.0
3896
+
'@babel/parser': 7.27.0
3897
+
'@babel/types': 7.27.0
3898
+
'@types/babel__generator': 7.6.8
3904
3899
'@types/babel__template': 7.4.4
3905
3900
'@types/babel__traverse': 7.20.7
3906
3901
3907
-
'@types/babel__generator@7.27.0':
3902
+
'@types/babel__generator@7.6.8':
3908
3903
dependencies:
3909
-
'@babel/types': 7.27.1
3904
+
'@babel/types': 7.27.0
3910
3905
3911
3906
'@types/babel__template@7.4.4':
3912
3907
dependencies:
3913
-
'@babel/parser': 7.27.1
3914
-
'@babel/types': 7.27.1
3908
+
'@babel/parser': 7.27.0
3909
+
'@babel/types': 7.27.0
3915
3910
3916
3911
'@types/babel__traverse@7.20.7':
3917
3912
dependencies:
3918
-
'@babel/types': 7.27.1
3913
+
'@babel/types': 7.27.0
3919
3914
3920
3915
'@types/dom-close-watcher@1.0.0': {}
3921
3916
3922
3917
'@types/dom-webcodecs@0.1.14': {}
3923
3918
3924
3919
'@types/estree@0.0.39': {}
3920
+
3921
+
'@types/estree@1.0.6': {}
3925
3922
3926
3923
'@types/estree@1.0.7': {}
3927
3924
···
3973
3970
3974
3971
autoprefixer@10.4.21(postcss@8.5.3):
3975
3972
dependencies:
3976
-
browserslist: 4.24.5
3977
-
caniuse-lite: 1.0.30001716
3973
+
browserslist: 4.24.4
3974
+
caniuse-lite: 1.0.30001707
3978
3975
fraction.js: 4.3.7
3979
3976
normalize-range: 0.1.2
3980
3977
picocolors: 1.1.1
3981
3978
postcss: 8.5.3
3982
3979
postcss-value-parser: 4.2.0
3983
3980
3984
-
babel-plugin-jsx-dom-expressions@0.39.8(@babel/core@7.27.1):
3981
+
babel-plugin-jsx-dom-expressions@0.39.7(@babel/core@7.26.10):
3985
3982
dependencies:
3986
-
'@babel/core': 7.27.1
3983
+
'@babel/core': 7.26.10
3987
3984
'@babel/helper-module-imports': 7.18.6
3988
-
'@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1)
3989
-
'@babel/types': 7.27.1
3985
+
'@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10)
3986
+
'@babel/types': 7.27.0
3990
3987
html-entities: 2.3.3
3991
-
parse5: 7.3.0
3988
+
parse5: 7.2.1
3992
3989
validate-html-nesting: 1.2.2
3993
3990
3994
-
babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.27.1):
3991
+
babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.26.10):
3995
3992
dependencies:
3996
-
'@babel/compat-data': 7.27.1
3997
-
'@babel/core': 7.27.1
3998
-
'@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.1)
3993
+
'@babel/compat-data': 7.26.8
3994
+
'@babel/core': 7.26.10
3995
+
'@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.10)
3999
3996
semver: 6.3.1
4000
3997
transitivePeerDependencies:
4001
3998
- supports-color
4002
3999
4003
-
babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.27.1):
4000
+
babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.26.10):
4004
4001
dependencies:
4005
-
'@babel/core': 7.27.1
4006
-
'@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.1)
4007
-
core-js-compat: 3.42.0
4002
+
'@babel/core': 7.26.10
4003
+
'@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.10)
4004
+
core-js-compat: 3.41.0
4008
4005
transitivePeerDependencies:
4009
4006
- supports-color
4010
4007
4011
-
babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.27.1):
4008
+
babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.26.10):
4012
4009
dependencies:
4013
-
'@babel/core': 7.27.1
4014
-
'@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.1)
4010
+
'@babel/core': 7.26.10
4011
+
'@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.10)
4015
4012
transitivePeerDependencies:
4016
4013
- supports-color
4017
4014
4018
-
babel-plugin-transform-typescript-const-enums@0.1.0(@babel/core@7.27.1):
4015
+
babel-plugin-transform-typescript-const-enums@0.1.0(@babel/core@7.26.10):
4019
4016
dependencies:
4020
-
'@babel/core': 7.27.1
4021
-
'@babel/helper-plugin-utils': 7.27.1
4022
-
'@babel/types': 7.27.1
4017
+
'@babel/core': 7.26.10
4018
+
'@babel/helper-plugin-utils': 7.26.5
4019
+
'@babel/types': 7.27.0
4023
4020
4024
-
babel-preset-solid@1.9.6(@babel/core@7.27.1):
4021
+
babel-preset-solid@1.9.5(@babel/core@7.26.10):
4025
4022
dependencies:
4026
-
'@babel/core': 7.27.1
4027
-
babel-plugin-jsx-dom-expressions: 0.39.8(@babel/core@7.27.1)
4023
+
'@babel/core': 7.26.10
4024
+
babel-plugin-jsx-dom-expressions: 0.39.7(@babel/core@7.26.10)
4028
4025
4029
4026
balanced-match@1.0.2: {}
4030
4027
···
4047
4044
dependencies:
4048
4045
fill-range: 7.1.1
4049
4046
4050
-
browserslist@4.24.5:
4047
+
browserslist@4.24.4:
4051
4048
dependencies:
4052
-
caniuse-lite: 1.0.30001716
4053
-
electron-to-chromium: 1.5.149
4049
+
caniuse-lite: 1.0.30001707
4050
+
electron-to-chromium: 1.5.128
4054
4051
node-releases: 2.0.19
4055
-
update-browserslist-db: 1.1.3(browserslist@4.24.5)
4052
+
update-browserslist-db: 1.1.3(browserslist@4.24.4)
4056
4053
4057
4054
buffer-from@1.1.2: {}
4058
4055
4059
4056
camelcase-css@2.0.1: {}
4060
4057
4061
-
caniuse-lite@1.0.30001716: {}
4058
+
caniuse-lite@1.0.30001707: {}
4062
4059
4063
4060
chalk@4.1.2:
4064
4061
dependencies:
···
4107
4104
4108
4105
convert-source-map@2.0.0: {}
4109
4106
4110
-
cookie@0.7.2: {}
4107
+
cookie@0.5.0: {}
4111
4108
4112
-
core-js-compat@3.42.0:
4109
+
core-js-compat@3.41.0:
4113
4110
dependencies:
4114
-
browserslist: 4.24.5
4111
+
browserslist: 4.24.4
4115
4112
4116
4113
cross-spawn@7.0.6:
4117
4114
dependencies:
···
4135
4132
4136
4133
defu@6.1.4: {}
4137
4134
4138
-
detect-libc@2.0.4:
4135
+
detect-libc@2.0.3:
4139
4136
optional: true
4140
4137
4141
4138
didyoumean@1.2.2: {}
···
4148
4145
dependencies:
4149
4146
jake: 10.9.2
4150
4147
4151
-
electron-to-chromium@1.5.149: {}
4148
+
electron-to-chromium@1.5.128: {}
4152
4149
4153
4150
emoji-regex@8.0.0: {}
4154
4151
4155
4152
emoji-regex@9.2.2: {}
4156
4153
4157
-
entities@6.0.0: {}
4154
+
entities@4.5.0: {}
4158
4155
4159
-
esbuild@0.25.2:
4156
+
esbuild@0.24.0:
4160
4157
optionalDependencies:
4161
-
'@esbuild/aix-ppc64': 0.25.2
4162
-
'@esbuild/android-arm': 0.25.2
4163
-
'@esbuild/android-arm64': 0.25.2
4164
-
'@esbuild/android-x64': 0.25.2
4165
-
'@esbuild/darwin-arm64': 0.25.2
4166
-
'@esbuild/darwin-x64': 0.25.2
4167
-
'@esbuild/freebsd-arm64': 0.25.2
4168
-
'@esbuild/freebsd-x64': 0.25.2
4169
-
'@esbuild/linux-arm': 0.25.2
4170
-
'@esbuild/linux-arm64': 0.25.2
4171
-
'@esbuild/linux-ia32': 0.25.2
4172
-
'@esbuild/linux-loong64': 0.25.2
4173
-
'@esbuild/linux-mips64el': 0.25.2
4174
-
'@esbuild/linux-ppc64': 0.25.2
4175
-
'@esbuild/linux-riscv64': 0.25.2
4176
-
'@esbuild/linux-s390x': 0.25.2
4177
-
'@esbuild/linux-x64': 0.25.2
4178
-
'@esbuild/netbsd-arm64': 0.25.2
4179
-
'@esbuild/netbsd-x64': 0.25.2
4180
-
'@esbuild/openbsd-arm64': 0.25.2
4181
-
'@esbuild/openbsd-x64': 0.25.2
4182
-
'@esbuild/sunos-x64': 0.25.2
4183
-
'@esbuild/win32-arm64': 0.25.2
4184
-
'@esbuild/win32-ia32': 0.25.2
4185
-
'@esbuild/win32-x64': 0.25.2
4158
+
'@esbuild/aix-ppc64': 0.24.0
4159
+
'@esbuild/android-arm': 0.24.0
4160
+
'@esbuild/android-arm64': 0.24.0
4161
+
'@esbuild/android-x64': 0.24.0
4162
+
'@esbuild/darwin-arm64': 0.24.0
4163
+
'@esbuild/darwin-x64': 0.24.0
4164
+
'@esbuild/freebsd-arm64': 0.24.0
4165
+
'@esbuild/freebsd-x64': 0.24.0
4166
+
'@esbuild/linux-arm': 0.24.0
4167
+
'@esbuild/linux-arm64': 0.24.0
4168
+
'@esbuild/linux-ia32': 0.24.0
4169
+
'@esbuild/linux-loong64': 0.24.0
4170
+
'@esbuild/linux-mips64el': 0.24.0
4171
+
'@esbuild/linux-ppc64': 0.24.0
4172
+
'@esbuild/linux-riscv64': 0.24.0
4173
+
'@esbuild/linux-s390x': 0.24.0
4174
+
'@esbuild/linux-x64': 0.24.0
4175
+
'@esbuild/netbsd-x64': 0.24.0
4176
+
'@esbuild/openbsd-arm64': 0.24.0
4177
+
'@esbuild/openbsd-x64': 0.24.0
4178
+
'@esbuild/sunos-x64': 0.24.0
4179
+
'@esbuild/win32-arm64': 0.24.0
4180
+
'@esbuild/win32-ia32': 0.24.0
4181
+
'@esbuild/win32-x64': 0.24.0
4186
4182
4187
-
esbuild@0.25.3:
4183
+
esbuild@0.24.2:
4188
4184
optionalDependencies:
4189
-
'@esbuild/aix-ppc64': 0.25.3
4190
-
'@esbuild/android-arm': 0.25.3
4191
-
'@esbuild/android-arm64': 0.25.3
4192
-
'@esbuild/android-x64': 0.25.3
4193
-
'@esbuild/darwin-arm64': 0.25.3
4194
-
'@esbuild/darwin-x64': 0.25.3
4195
-
'@esbuild/freebsd-arm64': 0.25.3
4196
-
'@esbuild/freebsd-x64': 0.25.3
4197
-
'@esbuild/linux-arm': 0.25.3
4198
-
'@esbuild/linux-arm64': 0.25.3
4199
-
'@esbuild/linux-ia32': 0.25.3
4200
-
'@esbuild/linux-loong64': 0.25.3
4201
-
'@esbuild/linux-mips64el': 0.25.3
4202
-
'@esbuild/linux-ppc64': 0.25.3
4203
-
'@esbuild/linux-riscv64': 0.25.3
4204
-
'@esbuild/linux-s390x': 0.25.3
4205
-
'@esbuild/linux-x64': 0.25.3
4206
-
'@esbuild/netbsd-arm64': 0.25.3
4207
-
'@esbuild/netbsd-x64': 0.25.3
4208
-
'@esbuild/openbsd-arm64': 0.25.3
4209
-
'@esbuild/openbsd-x64': 0.25.3
4210
-
'@esbuild/sunos-x64': 0.25.3
4211
-
'@esbuild/win32-arm64': 0.25.3
4212
-
'@esbuild/win32-ia32': 0.25.3
4213
-
'@esbuild/win32-x64': 0.25.3
4185
+
'@esbuild/aix-ppc64': 0.24.2
4186
+
'@esbuild/android-arm': 0.24.2
4187
+
'@esbuild/android-arm64': 0.24.2
4188
+
'@esbuild/android-x64': 0.24.2
4189
+
'@esbuild/darwin-arm64': 0.24.2
4190
+
'@esbuild/darwin-x64': 0.24.2
4191
+
'@esbuild/freebsd-arm64': 0.24.2
4192
+
'@esbuild/freebsd-x64': 0.24.2
4193
+
'@esbuild/linux-arm': 0.24.2
4194
+
'@esbuild/linux-arm64': 0.24.2
4195
+
'@esbuild/linux-ia32': 0.24.2
4196
+
'@esbuild/linux-loong64': 0.24.2
4197
+
'@esbuild/linux-mips64el': 0.24.2
4198
+
'@esbuild/linux-ppc64': 0.24.2
4199
+
'@esbuild/linux-riscv64': 0.24.2
4200
+
'@esbuild/linux-s390x': 0.24.2
4201
+
'@esbuild/linux-x64': 0.24.2
4202
+
'@esbuild/netbsd-arm64': 0.24.2
4203
+
'@esbuild/netbsd-x64': 0.24.2
4204
+
'@esbuild/openbsd-arm64': 0.24.2
4205
+
'@esbuild/openbsd-x64': 0.24.2
4206
+
'@esbuild/sunos-x64': 0.24.2
4207
+
'@esbuild/win32-arm64': 0.24.2
4208
+
'@esbuild/win32-ia32': 0.24.2
4209
+
'@esbuild/win32-x64': 0.24.2
4214
4210
4215
4211
escalade@3.2.0: {}
4216
4212
···
4222
4218
4223
4219
exit-hook@2.2.1: {}
4224
4220
4225
-
exsolve@1.0.5: {}
4221
+
exsolve@1.0.4: {}
4226
4222
4227
4223
fast-deep-equal@3.1.3: {}
4228
4224
···
4242
4238
dependencies:
4243
4239
reusify: 1.1.0
4244
4240
4245
-
fdir@6.4.4(picomatch@4.0.2):
4241
+
fdir@6.4.3(picomatch@4.0.2):
4246
4242
optionalDependencies:
4247
4243
picomatch: 4.0.2
4248
4244
···
4316
4312
4317
4313
has-flag@4.0.0: {}
4318
4314
4319
-
hls.js@1.6.2: {}
4315
+
hls.js@1.6.0: {}
4320
4316
4321
4317
html-entities@2.3.3: {}
4322
4318
···
4432
4428
4433
4429
mime@3.0.0: {}
4434
4430
4435
-
miniflare@4.20250428.1:
4431
+
miniflare@4.20250321.1:
4436
4432
dependencies:
4437
4433
'@cspotcode/source-map-support': 0.8.1
4438
4434
acorn: 8.14.0
···
4441
4437
glob-to-regexp: 0.4.1
4442
4438
stoppable: 1.1.0
4443
4439
undici: 5.29.0
4444
-
workerd: 1.20250428.0
4440
+
workerd: 1.20250321.0
4445
4441
ws: 8.18.0
4446
-
youch: 3.3.4
4442
+
youch: 3.2.3
4447
4443
zod: 3.22.3
4448
4444
transitivePeerDependencies:
4449
4445
- bufferutil
···
4495
4491
4496
4492
package-json-from-dist@1.0.1: {}
4497
4493
4498
-
parse5@7.3.0:
4494
+
parse5@7.2.1:
4499
4495
dependencies:
4500
-
entities: 6.0.0
4496
+
entities: 4.5.0
4501
4497
4502
4498
path-is-absolute@1.0.1: {}
4503
4499
···
4539
4535
postcss-load-config@4.0.2(postcss@8.5.3):
4540
4536
dependencies:
4541
4537
lilconfig: 3.1.3
4542
-
yaml: 2.7.1
4538
+
yaml: 2.7.0
4543
4539
optionalDependencies:
4544
4540
postcss: 8.5.3
4545
4541
···
4599
4595
4600
4596
regenerate@1.4.2: {}
4601
4597
4598
+
regenerator-runtime@0.14.1: {}
4599
+
4600
+
regenerator-transform@0.15.2:
4601
+
dependencies:
4602
+
'@babel/runtime': 7.27.0
4603
+
4602
4604
regexpu-core@6.2.0:
4603
4605
dependencies:
4604
4606
regenerate: 1.4.2
···
4628
4630
optionalDependencies:
4629
4631
fsevents: 2.3.3
4630
4632
4631
-
rollup@4.40.1:
4633
+
rollup@4.37.0:
4632
4634
dependencies:
4633
-
'@types/estree': 1.0.7
4635
+
'@types/estree': 1.0.6
4634
4636
optionalDependencies:
4635
-
'@rollup/rollup-android-arm-eabi': 4.40.1
4636
-
'@rollup/rollup-android-arm64': 4.40.1
4637
-
'@rollup/rollup-darwin-arm64': 4.40.1
4638
-
'@rollup/rollup-darwin-x64': 4.40.1
4639
-
'@rollup/rollup-freebsd-arm64': 4.40.1
4640
-
'@rollup/rollup-freebsd-x64': 4.40.1
4641
-
'@rollup/rollup-linux-arm-gnueabihf': 4.40.1
4642
-
'@rollup/rollup-linux-arm-musleabihf': 4.40.1
4643
-
'@rollup/rollup-linux-arm64-gnu': 4.40.1
4644
-
'@rollup/rollup-linux-arm64-musl': 4.40.1
4645
-
'@rollup/rollup-linux-loongarch64-gnu': 4.40.1
4646
-
'@rollup/rollup-linux-powerpc64le-gnu': 4.40.1
4647
-
'@rollup/rollup-linux-riscv64-gnu': 4.40.1
4648
-
'@rollup/rollup-linux-riscv64-musl': 4.40.1
4649
-
'@rollup/rollup-linux-s390x-gnu': 4.40.1
4650
-
'@rollup/rollup-linux-x64-gnu': 4.40.1
4651
-
'@rollup/rollup-linux-x64-musl': 4.40.1
4652
-
'@rollup/rollup-win32-arm64-msvc': 4.40.1
4653
-
'@rollup/rollup-win32-ia32-msvc': 4.40.1
4654
-
'@rollup/rollup-win32-x64-msvc': 4.40.1
4637
+
'@rollup/rollup-android-arm-eabi': 4.37.0
4638
+
'@rollup/rollup-android-arm64': 4.37.0
4639
+
'@rollup/rollup-darwin-arm64': 4.37.0
4640
+
'@rollup/rollup-darwin-x64': 4.37.0
4641
+
'@rollup/rollup-freebsd-arm64': 4.37.0
4642
+
'@rollup/rollup-freebsd-x64': 4.37.0
4643
+
'@rollup/rollup-linux-arm-gnueabihf': 4.37.0
4644
+
'@rollup/rollup-linux-arm-musleabihf': 4.37.0
4645
+
'@rollup/rollup-linux-arm64-gnu': 4.37.0
4646
+
'@rollup/rollup-linux-arm64-musl': 4.37.0
4647
+
'@rollup/rollup-linux-loongarch64-gnu': 4.37.0
4648
+
'@rollup/rollup-linux-powerpc64le-gnu': 4.37.0
4649
+
'@rollup/rollup-linux-riscv64-gnu': 4.37.0
4650
+
'@rollup/rollup-linux-riscv64-musl': 4.37.0
4651
+
'@rollup/rollup-linux-s390x-gnu': 4.37.0
4652
+
'@rollup/rollup-linux-x64-gnu': 4.37.0
4653
+
'@rollup/rollup-linux-x64-musl': 4.37.0
4654
+
'@rollup/rollup-win32-arm64-msvc': 4.37.0
4655
+
'@rollup/rollup-win32-ia32-msvc': 4.37.0
4656
+
'@rollup/rollup-win32-x64-msvc': 4.37.0
4655
4657
fsevents: 2.3.3
4656
4658
4657
4659
run-parallel@1.2.0:
···
4676
4678
sharp@0.33.5:
4677
4679
dependencies:
4678
4680
color: 4.2.3
4679
-
detect-libc: 2.0.4
4681
+
detect-libc: 2.0.3
4680
4682
semver: 7.7.1
4681
4683
optionalDependencies:
4682
4684
'@img/sharp-darwin-arm64': 0.33.5
···
4715
4717
4716
4718
smob@1.5.0: {}
4717
4719
4718
-
solid-floating-ui@0.2.1(@floating-ui/dom@1.7.0)(solid-js@1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268)):
4720
+
solid-floating-ui@0.2.1(@floating-ui/dom@1.6.13)(solid-js@1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c)):
4719
4721
dependencies:
4720
-
'@floating-ui/dom': 1.7.0
4721
-
solid-js: 1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268)
4722
+
'@floating-ui/dom': 1.6.13
4723
+
solid-js: 1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c)
4722
4724
4723
-
solid-js@1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268):
4725
+
solid-js@1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c):
4724
4726
dependencies:
4725
4727
csstype: 3.1.3
4726
4728
seroval: 1.2.1
4727
4729
seroval-plugins: 1.2.1(seroval@1.2.1)
4728
4730
4729
-
solid-refresh@0.6.3(solid-js@1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268)):
4731
+
solid-refresh@0.6.3(solid-js@1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c)):
4730
4732
dependencies:
4731
-
'@babel/generator': 7.27.1
4732
-
'@babel/helper-module-imports': 7.27.1
4733
-
'@babel/types': 7.27.1
4734
-
solid-js: 1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268)
4733
+
'@babel/generator': 7.27.0
4734
+
'@babel/helper-module-imports': 7.25.9
4735
+
'@babel/types': 7.27.0
4736
+
solid-js: 1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c)
4735
4737
transitivePeerDependencies:
4736
4738
- supports-color
4737
4739
···
4852
4854
dependencies:
4853
4855
any-promise: 1.3.0
4854
4856
4855
-
tinyglobby@0.2.13:
4857
+
tinyglobby@0.2.12:
4856
4858
dependencies:
4857
-
fdir: 6.4.4(picomatch@4.0.2)
4859
+
fdir: 6.4.3(picomatch@4.0.2)
4858
4860
picomatch: 4.0.2
4859
4861
4860
4862
to-regex-range@5.0.1:
···
4872
4874
4873
4875
type-fest@0.16.0: {}
4874
4876
4875
-
typescript@5.8.3: {}
4877
+
typescript@5.7.2: {}
4876
4878
4877
-
ufo@1.6.1: {}
4879
+
ufo@1.5.4: {}
4878
4880
4879
4881
undici@5.29.0:
4880
4882
dependencies:
···
4883
4885
unenv@2.0.0-rc.15:
4884
4886
dependencies:
4885
4887
defu: 6.1.4
4886
-
exsolve: 1.0.5
4888
+
exsolve: 1.0.4
4887
4889
ohash: 2.0.11
4888
4890
pathe: 2.0.3
4889
-
ufo: 1.6.1
4891
+
ufo: 1.5.4
4890
4892
4891
4893
unicode-canonical-property-names-ecmascript@2.0.1: {}
4892
4894
···
4907
4909
4908
4910
upath@1.2.0: {}
4909
4911
4910
-
update-browserslist-db@1.1.3(browserslist@4.24.5):
4912
+
update-browserslist-db@1.1.3(browserslist@4.24.4):
4911
4913
dependencies:
4912
-
browserslist: 4.24.5
4914
+
browserslist: 4.24.4
4913
4915
escalade: 3.2.0
4914
4916
picocolors: 1.1.1
4915
4917
···
4917
4919
4918
4920
validate-html-nesting@1.2.2: {}
4919
4921
4920
-
vite-plugin-pwa@0.21.0(patch_hash=003379ded749ad87080f87b428b17f04c4c88b6b64544df4d928aab76fbf6325)(@types/babel__core@7.20.5)(vite@6.3.4(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.1)):
4922
+
vite-plugin-pwa@0.21.0(patch_hash=003379ded749ad87080f87b428b17f04c4c88b6b64544df4d928aab76fbf6325)(@types/babel__core@7.20.5)(vite@6.0.5(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.0)):
4921
4923
dependencies:
4922
4924
debug: 4.4.0
4923
4925
pretty-bytes: 6.1.1
4924
-
tinyglobby: 0.2.13
4925
-
vite: 6.3.4(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.1)
4926
+
tinyglobby: 0.2.12
4927
+
vite: 6.0.5(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.0)
4926
4928
workbox-build: 7.3.0(@types/babel__core@7.20.5)
4927
4929
workbox-window: 7.3.0
4928
4930
transitivePeerDependencies:
4929
4931
- '@types/babel__core'
4930
4932
- supports-color
4931
4933
4932
-
vite-plugin-solid@2.11.6(solid-js@1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268))(vite@6.3.4(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.1)):
4934
+
vite-plugin-solid@2.11.6(solid-js@1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c))(vite@6.0.5(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.0)):
4933
4935
dependencies:
4934
-
'@babel/core': 7.27.1
4936
+
'@babel/core': 7.26.10
4935
4937
'@types/babel__core': 7.20.5
4936
-
babel-preset-solid: 1.9.6(@babel/core@7.27.1)
4938
+
babel-preset-solid: 1.9.5(@babel/core@7.26.10)
4937
4939
merge-anything: 5.1.7
4938
-
solid-js: 1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268)
4939
-
solid-refresh: 0.6.3(solid-js@1.9.6(patch_hash=34b4d8d8690680b566072e58ba66c5cec2f5a8fe0073abbee0445c8e02182268))
4940
-
vite: 6.3.4(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.1)
4941
-
vitefu: 1.0.6(vite@6.3.4(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.1))
4940
+
solid-js: 1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c)
4941
+
solid-refresh: 0.6.3(solid-js@1.9.5(patch_hash=9a1f52b880286fb75dd8b75f1dbd1f4c0ed3fc3e607aeacc391a7e5ea64bbf9c))
4942
+
vite: 6.0.5(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.0)
4943
+
vitefu: 1.0.6(vite@6.0.5(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.0))
4942
4944
transitivePeerDependencies:
4943
4945
- supports-color
4944
4946
4945
-
vite@6.3.4(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.1):
4947
+
vite@6.0.5(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.0):
4946
4948
dependencies:
4947
-
esbuild: 0.25.3
4948
-
fdir: 6.4.4(picomatch@4.0.2)
4949
-
picomatch: 4.0.2
4949
+
esbuild: 0.24.0
4950
4950
postcss: 8.5.3
4951
-
rollup: 4.40.1
4952
-
tinyglobby: 0.2.13
4951
+
rollup: 4.37.0
4953
4952
optionalDependencies:
4954
4953
fsevents: 2.3.3
4955
4954
jiti: 1.21.7
4956
4955
terser: 5.39.0
4957
-
yaml: 2.7.1
4956
+
yaml: 2.7.0
4958
4957
4959
-
vitefu@1.0.6(vite@6.3.4(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.1)):
4958
+
vitefu@1.0.6(vite@6.0.5(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.0)):
4960
4959
optionalDependencies:
4961
-
vite: 6.3.4(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.1)
4960
+
vite: 6.0.5(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.0)
4962
4961
4963
4962
webidl-conversions@4.0.2: {}
4964
4963
4965
-
webm-muxer@5.1.2:
4964
+
webm-muxer@5.1.1:
4966
4965
dependencies:
4967
4966
'@types/dom-webcodecs': 0.1.14
4968
4967
'@types/wicg-file-system-access': 2020.9.8
···
4989
4988
workbox-build@7.3.0(@types/babel__core@7.20.5):
4990
4989
dependencies:
4991
4990
'@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1)
4992
-
'@babel/core': 7.27.1
4993
-
'@babel/preset-env': 7.27.1(@babel/core@7.27.1)
4994
-
'@babel/runtime': 7.27.1
4995
-
'@rollup/plugin-babel': 5.3.1(@babel/core@7.27.1)(@types/babel__core@7.20.5)(rollup@2.79.2)
4991
+
'@babel/core': 7.26.10
4992
+
'@babel/preset-env': 7.26.9(@babel/core@7.26.10)
4993
+
'@babel/runtime': 7.27.0
4994
+
'@rollup/plugin-babel': 5.3.1(@babel/core@7.26.10)(@types/babel__core@7.20.5)(rollup@2.79.2)
4996
4995
'@rollup/plugin-node-resolve': 15.3.1(rollup@2.79.2)
4997
4996
'@rollup/plugin-replace': 2.4.2(rollup@2.79.2)
4998
4997
'@rollup/plugin-terser': 0.4.4(rollup@2.79.2)
···
5090
5089
'@types/trusted-types': 2.0.7
5091
5090
workbox-core: 7.3.0
5092
5091
5093
-
workerd@1.20250428.0:
5092
+
workerd@1.20250321.0:
5094
5093
optionalDependencies:
5095
-
'@cloudflare/workerd-darwin-64': 1.20250428.0
5096
-
'@cloudflare/workerd-darwin-arm64': 1.20250428.0
5097
-
'@cloudflare/workerd-linux-64': 1.20250428.0
5098
-
'@cloudflare/workerd-linux-arm64': 1.20250428.0
5099
-
'@cloudflare/workerd-windows-64': 1.20250428.0
5094
+
'@cloudflare/workerd-darwin-64': 1.20250321.0
5095
+
'@cloudflare/workerd-darwin-arm64': 1.20250321.0
5096
+
'@cloudflare/workerd-linux-64': 1.20250321.0
5097
+
'@cloudflare/workerd-linux-arm64': 1.20250321.0
5098
+
'@cloudflare/workerd-windows-64': 1.20250321.0
5100
5099
5101
-
wrangler@4.14.1:
5100
+
wrangler@4.6.0:
5102
5101
dependencies:
5103
5102
'@cloudflare/kv-asset-handler': 0.4.0
5104
-
'@cloudflare/unenv-preset': 2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250428.0)
5103
+
'@cloudflare/unenv-preset': 2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250321.0)
5105
5104
blake3-wasm: 2.1.5
5106
-
esbuild: 0.25.2
5107
-
miniflare: 4.20250428.1
5105
+
esbuild: 0.24.2
5106
+
miniflare: 4.20250321.1
5108
5107
path-to-regexp: 6.3.0
5109
5108
unenv: 2.0.0-rc.15
5110
-
workerd: 1.20250428.0
5109
+
workerd: 1.20250321.0
5111
5110
optionalDependencies:
5112
5111
fsevents: 2.3.3
5113
5112
sharp: 0.33.5
···
5133
5132
5134
5133
yallist@3.1.1: {}
5135
5134
5136
-
yaml@2.7.1: {}
5135
+
yaml@2.7.0: {}
5137
5136
5138
-
youch@3.3.4:
5137
+
youch@3.2.3:
5139
5138
dependencies:
5140
-
cookie: 0.7.2
5139
+
cookie: 0.5.0
5141
5140
mustache: 4.2.0
5142
5141
stacktracey: 2.1.8
5143
5142
+3
-3
src/api/cache/profile-shadow.ts
+3
-3
src/api/cache/profile-shadow.ts
···
33
33
| AppBskyActorDefs.ProfileViewBasic
34
34
| AppBskyActorDefs.ProfileViewDetailed;
35
35
36
-
const emitter = new EventEmitter<{ [uri: At.Did]: [] }>();
36
+
const emitter = new EventEmitter<{ [uri: At.DID]: [] }>();
37
37
const shadows = new WeakMap<AllProfileView, ProfileShadow>();
38
38
39
39
export const useProfileShadow = (profile: AccessorMaybe<AllProfileView>): Accessor<ProfileShadowView> => {
···
66
66
};
67
67
};
68
68
69
-
export const updateProfileShadow = (queryClient: QueryClient, did: At.Did, value: Partial<ProfileShadow>) => {
69
+
export const updateProfileShadow = (queryClient: QueryClient, did: At.DID, value: Partial<ProfileShadow>) => {
70
70
for (const profile of findProfilesInCache(queryClient, did)) {
71
71
shadows.set(profile, { ...shadows.get(profile), ...value });
72
72
}
···
74
74
batch(() => emitter.emit(did));
75
75
};
76
76
77
-
export function findProfilesInCache(queryClient: QueryClient, did: At.Did): Generator<AllProfileView> {
77
+
export function findProfilesInCache(queryClient: QueryClient, did: At.DID): Generator<AllProfileView> {
78
78
return iterateQueryCache<AllProfileView>(queryClient, [
79
79
findAllProfilesInBookmarkFeed(did),
80
80
findAllProfilesInNotificationFeed(did),
+3
-1
src/api/models/post-thread.tsx
+3
-1
src/api/models/post-thread.tsx
···
69
69
export interface PostDescendantItem extends BaseDescendant {
70
70
type: 'post';
71
71
post: AppBskyFeedDefs.PostView;
72
+
context: AppBskyFeedDefs.ThreadContext | undefined;
72
73
prev: boolean;
73
74
next: boolean;
74
75
}
···
119
120
thread: Brand.Union<AppBskyFeedDefs.ThreadViewPost>;
120
121
preferences: ThreadViewPreferences;
121
122
moderationOptions: ModerationOptions;
122
-
selfDid?: At.Did;
123
+
selfDid?: At.DID;
123
124
}): ThreadData => {
124
125
const { followsFirst, sort, treeView } = preferences;
125
126
···
329
330
id: post.uri,
330
331
type: 'post',
331
332
post: post,
333
+
context: reply.threadContext,
332
334
prev: depth !== 0,
333
335
next: children.length !== 0,
334
336
lines: nlines,
+1
-1
src/api/moderation/entities/generic.ts
+1
-1
src/api/moderation/entities/generic.ts
+5
-5
src/api/moderation/index.ts
+5
-5
src/api/moderation/index.ts
···
280
280
281
281
export interface ModerationLabeler {
282
282
/** DID of the labeler */
283
-
did: At.Did;
283
+
did: At.DID;
284
284
/** Profile details of the labeler */
285
285
profile: {
286
286
avatar?: string;
···
309
309
/** Preferences for global-defined labels */
310
310
labels: LabelPreferenceMapping;
311
311
/** Preferences for labels from subscribed labelers */
312
-
labelers: Record<At.Did, ModerationLabelerPreferences>;
312
+
labelers: Record<At.DID, ModerationLabelerPreferences>;
313
313
/** Keyword filters */
314
314
keywords: KeywordFilter[];
315
315
316
316
/** List of users to hide reposts from */
317
-
hideReposts: At.Did[];
317
+
hideReposts: At.DID[];
318
318
}
319
319
320
320
export interface ModerationOptions {
321
321
_filtersCache?: [raw: string, match: RegExp][];
322
322
323
323
preferences: ModerationPreferences;
324
-
labelerDefinitions: Record<At.Did, ModerationLabeler>;
324
+
labelerDefinitions: Record<At.DID, ModerationLabeler>;
325
325
}
326
326
327
327
export const decideLabelModeration = (
328
328
accu: ModerationCause[],
329
329
target: LabelTarget,
330
330
labels: Label[] | undefined,
331
-
userDid: At.Did,
331
+
userDid: At.DID,
332
332
opts: ModerationOptions,
333
333
) => {
334
334
if (labels /* && labels.length > 0 */) {
+9
-9
src/api/mutations/post.ts
+9
-9
src/api/mutations/post.ts
···
5
5
import { useSession } from '~/lib/states/session';
6
6
7
7
import { type PostShadowView, updatePostShadow } from '../cache/post-shadow';
8
-
import { parseCanonicalResourceUri } from '../types/at-uri';
8
+
import { parseAtUri } from '../types/at-uri';
9
9
import { getCurrentDate } from '../utils/misc';
10
10
import { createRecord, deleteRecord } from '../utils/records';
11
11
import { createToggleMutationQueue } from '../utils/toggle-mutation';
···
15
15
shadow: () => PostShadowView,
16
16
) => {
17
17
const queryClient = useQueryClient();
18
-
const { client } = useAgent();
18
+
const { rpc } = useAgent();
19
19
const { currentAccount } = useSession();
20
20
21
21
const postUri = post().uri;
···
30
30
return prevLikeUri;
31
31
}
32
32
33
-
const result = await createRecord(client, {
33
+
const result = await createRecord(rpc, {
34
34
repo: currentAccount!.did,
35
35
collection: 'app.bsky.feed.like',
36
36
record: {
···
45
45
46
46
return result.uri;
47
47
} else if (prevLikeUri) {
48
-
const uri = parseCanonicalResourceUri(prevLikeUri);
48
+
const uri = parseAtUri(prevLikeUri);
49
49
50
-
await deleteRecord(client, {
50
+
await deleteRecord(rpc, {
51
51
repo: currentAccount!.did,
52
52
collection: 'app.bsky.feed.like',
53
53
rkey: uri.rkey,
···
74
74
shadow: () => PostShadowView,
75
75
) => {
76
76
const queryClient = useQueryClient();
77
-
const { client } = useAgent();
77
+
const { rpc } = useAgent();
78
78
const { currentAccount } = useSession();
79
79
80
80
const postUri = post().uri;
···
89
89
return prevRepostUri;
90
90
}
91
91
92
-
const result = await createRecord(client, {
92
+
const result = await createRecord(rpc, {
93
93
repo: currentAccount!.did,
94
94
collection: 'app.bsky.feed.repost',
95
95
record: {
···
104
104
105
105
return result.uri;
106
106
} else if (prevRepostUri) {
107
-
const uri = parseCanonicalResourceUri(prevRepostUri);
107
+
const uri = parseAtUri(prevRepostUri);
108
108
109
-
await deleteRecord(client, {
109
+
await deleteRecord(rpc, {
110
110
repo: currentAccount!.did,
111
111
collection: 'app.bsky.feed.repost',
112
112
rkey: uri.rkey,
+5
-5
src/api/mutations/profile.ts
+5
-5
src/api/mutations/profile.ts
···
5
5
import { useSession } from '~/lib/states/session';
6
6
7
7
import { type ProfileShadowView, updateProfileShadow } from '../cache/profile-shadow';
8
-
import { parseCanonicalResourceUri } from '../types/at-uri';
8
+
import { parseAtUri } from '../types/at-uri';
9
9
import { getCurrentDate } from '../utils/misc';
10
10
import { createRecord, deleteRecord } from '../utils/records';
11
11
import { createToggleMutationQueue } from '../utils/toggle-mutation';
···
15
15
shadow: () => ProfileShadowView,
16
16
) => {
17
17
const queryClient = useQueryClient();
18
-
const { client } = useAgent();
18
+
const { rpc } = useAgent();
19
19
const { currentAccount } = useSession();
20
20
21
21
const did = profile().did;
···
30
30
return prevFollowUri;
31
31
}
32
32
33
-
const result = await createRecord(client, {
33
+
const result = await createRecord(rpc, {
34
34
repo: currentAccount!.did,
35
35
collection: 'app.bsky.graph.follow',
36
36
record: {
···
42
42
43
43
return result.uri;
44
44
} else if (prevFollowUri) {
45
-
const uri = parseCanonicalResourceUri(prevFollowUri);
45
+
const uri = parseAtUri(prevFollowUri);
46
46
47
-
await deleteRecord(client, {
47
+
await deleteRecord(rpc, {
48
48
repo: currentAccount!.did,
49
49
collection: 'app.bsky.graph.follow',
50
50
rkey: uri.rkey,
+3
-8
src/api/queries/blob.ts
+3
-8
src/api/queries/blob.ts
···
1
-
import { type Client, ok } from '@atcute/client';
1
+
import type { XRPC } from '@atcute/client';
2
2
import type { At } from '@atcute/client/lexicons';
3
3
4
-
export const uploadBlob = async (client: Client, blob: Blob): Promise<At.Blob<any>> => {
5
-
const data = await ok(
6
-
client.post('com.atproto.repo.uploadBlob', {
7
-
input: blob,
8
-
}),
9
-
);
10
-
4
+
export const uploadBlob = async (rpc: XRPC, blob: Blob): Promise<At.Blob<any>> => {
5
+
const { data } = await rpc.call('com.atproto.repo.uploadBlob', { data: blob });
11
6
return data.blob;
12
7
};
+7
-10
src/api/queries/bookmark-feed.ts
+7
-10
src/api/queries/bookmark-feed.ts
···
1
1
import { tokenize } from '@atcute/bluesky-search-parser';
2
-
import { ok } from '@atcute/client';
3
2
import type { AppBskyFeedDefs } from '@atcute/client/lexicons';
4
3
import { mapDefined } from '@mary/array-fns';
5
4
import { filter, map, take, toArray } from '@mary/async-iterator-fns';
···
42
41
43
42
export const createBookmarkFeedQuery = (tagId: () => string, search: () => string) => {
44
43
const bookmarks = inject(BookmarksService);
45
-
const { client } = useAgent();
44
+
const { rpc } = useAgent();
46
45
47
46
const listing = createInfiniteQuery(() => {
48
47
const $tagId = tagId();
···
96
95
let map: Map<string, AppBskyFeedDefs.PostView>;
97
96
98
97
try {
99
-
const data = await ok(
100
-
client.get('app.bsky.feed.getPosts', {
101
-
signal: ctx.signal,
102
-
params: {
103
-
uris: raws.map((item) => item.view.uri),
104
-
},
105
-
}),
106
-
);
98
+
const { data } = await rpc.get('app.bsky.feed.getPosts', {
99
+
signal: ctx.signal,
100
+
params: {
101
+
uris: raws.map((item) => item.view.uri),
102
+
},
103
+
});
107
104
108
105
map = new Map(data.posts.map((view) => [view.uri, view]));
109
106
} catch {}
+2
-3
src/api/queries/composer.ts
+2
-3
src/api/queries/composer.ts
···
1
-
import type { At } from '@atcute/client/lexicons';
2
1
import { createQuery } from '@mary/solid-query';
3
2
4
3
const LINK_PROXY_ENDPOINT = 'https://cardyb.bsky.app/v1/extract';
···
13
12
}
14
13
15
14
export interface LinkMeta {
16
-
uri: At.GenericUri;
15
+
uri: string;
17
16
title: string;
18
17
description: string;
19
18
thumb: Blob | undefined;
···
57
56
}
58
57
59
58
const meta: LinkMeta = {
60
-
uri: $uri as At.GenericUri,
59
+
uri: $uri,
61
60
title: data.title,
62
61
description: data.description,
63
62
thumb: thumb,
+11
-14
src/api/queries/feed.ts
+11
-14
src/api/queries/feed.ts
···
1
1
import { modifyMutable, reconcile } from 'solid-js/store';
2
2
3
-
import { ok } from '@atcute/client';
4
3
import type { AppBskyFeedDefs, At } from '@atcute/client/lexicons';
5
4
import { createQuery } from '@mary/solid-query';
6
5
···
9
8
import { useSession } from '~/lib/states/session';
10
9
import { omit } from '~/lib/utils/misc';
11
10
12
-
import { makeAtUri, parseCanonicalResourceUri } from '../types/at-uri';
11
+
import { makeAtUri, parseAtUri } from '../types/at-uri';
13
12
import { isDid } from '../types/identity';
14
13
15
14
import { resolveHandle } from './handle';
16
15
17
16
export const createFeedMetaQuery = (feedUri: () => string) => {
18
-
const { client } = useAgent();
17
+
const { rpc } = useAgent();
19
18
const { currentAccount } = useSession();
20
19
21
20
return createQuery((queryClient) => {
···
24
23
return {
25
24
queryKey: ['feed-meta', $feedUri],
26
25
async queryFn(ctx): Promise<AppBskyFeedDefs.GeneratorView> {
27
-
const uri = parseCanonicalResourceUri($feedUri);
26
+
const uri = parseAtUri($feedUri);
28
27
29
-
let did: At.Did;
28
+
let did: At.DID;
30
29
if (isDid(uri.repo)) {
31
30
did = uri.repo;
32
31
} else {
33
-
did = await resolveHandle(client, uri.repo, ctx.signal);
32
+
did = await resolveHandle(rpc, uri.repo, ctx.signal);
34
33
}
35
34
36
-
const data = await ok(
37
-
client.get('app.bsky.feed.getFeedGenerator', {
38
-
signal: ctx.signal,
39
-
params: {
40
-
feed: makeAtUri(did, uri.collection, uri.rkey),
41
-
},
42
-
}),
43
-
);
35
+
const { data } = await rpc.get('app.bsky.feed.getFeedGenerator', {
36
+
signal: ctx.signal,
37
+
params: {
38
+
feed: makeAtUri(did, uri.collection, uri.rkey),
39
+
},
40
+
});
44
41
45
42
if (currentAccount) {
46
43
const found = currentAccount.preferences.feeds.find((item): item is SavedGeneratorFeed => {
+11
-14
src/api/queries/handle.ts
+11
-14
src/api/queries/handle.ts
···
1
-
import { type Client, ok } from '@atcute/client';
2
-
import type { At } from '@atcute/client/lexicons';
1
+
import { XRPC } from '@atcute/client';
3
2
import { createQuery } from '@mary/solid-query';
4
3
5
4
import { useAgent } from '~/lib/states/agent';
6
5
7
-
export const useResolveHandleQuery = (handle: () => At.Handle) => {
8
-
const { client } = useAgent();
6
+
export const useResolveHandleQuery = (handle: () => string) => {
7
+
const { rpc } = useAgent();
9
8
10
9
return createQuery(() => {
11
10
const $handle = handle();
···
13
12
return {
14
13
queryKey: ['resolve-handle', $handle],
15
14
async queryFn(ctx) {
16
-
return resolveHandle(client, $handle, ctx.signal);
15
+
return resolveHandle(rpc, $handle, ctx.signal);
17
16
},
18
17
};
19
18
});
20
19
};
21
20
22
-
export const resolveHandle = async (client: Client, handle: At.Handle, signal?: AbortSignal) => {
23
-
const data = await ok(
24
-
client.get('com.atproto.identity.resolveHandle', {
25
-
signal: signal,
26
-
params: {
27
-
handle: handle,
28
-
},
29
-
}),
30
-
);
21
+
export const resolveHandle = async (rpc: XRPC, handle: string, signal?: AbortSignal) => {
22
+
const { data } = await rpc.get('com.atproto.identity.resolveHandle', {
23
+
signal: signal,
24
+
params: {
25
+
handle: handle,
26
+
},
27
+
});
31
28
32
29
return data.did;
33
30
};
+13
-15
src/api/queries/labeler.ts
+13
-15
src/api/queries/labeler.ts
···
1
-
import { ClientResponseError, ok } from '@atcute/client';
1
+
import { XRPCError } from '@atcute/client';
2
2
import type { AppBskyLabelerDefs, At } from '@atcute/client/lexicons';
3
3
import { createQuery } from '@mary/solid-query';
4
4
···
6
6
7
7
import { interpretLabelerDefinition } from '../moderation/labeler';
8
8
9
-
export const createLabelerMetaQuery = (did: () => At.Did) => {
10
-
const { client } = useAgent();
9
+
export const createLabelerMetaQuery = (did: () => At.DID) => {
10
+
const { rpc } = useAgent();
11
11
12
12
const query = createQuery(() => {
13
13
const $did = did();
···
15
15
return {
16
16
queryKey: ['labeler-definition', $did],
17
17
async queryFn(ctx) {
18
-
const data = await ok(
19
-
client.get('app.bsky.labeler.getServices', {
20
-
signal: ctx.signal,
21
-
params: {
22
-
dids: [$did],
23
-
detailed: true,
24
-
},
25
-
}),
26
-
);
18
+
const { data } = await rpc.get('app.bsky.labeler.getServices', {
19
+
signal: ctx.signal,
20
+
params: {
21
+
dids: [$did],
22
+
detailed: true,
23
+
},
24
+
});
27
25
28
26
const service = data.views[0] as AppBskyLabelerDefs.LabelerViewDetailed;
29
27
30
28
if (!service) {
31
-
throw new ClientResponseError({
32
-
status: 400,
33
-
data: { error: `NotFound`, message: `Labeler not found: ${$did}` },
29
+
throw new XRPCError(400, {
30
+
kind: 'NotFound',
31
+
description: `Labeler not found: ${$did}`,
34
32
});
35
33
}
36
34
+10
-14
src/api/queries/list-members.ts
+10
-14
src/api/queries/list-members.ts
···
1
-
import { ok } from '@atcute/client';
2
-
import type { At } from '@atcute/client/lexicons';
3
1
import { type QueryFunctionContext as QC, createInfiniteQuery } from '@mary/solid-query';
4
2
5
3
import { useAgent } from '~/lib/states/agent';
6
4
7
-
export const createListMembersQuery = (listUri: () => At.ResourceUri) => {
8
-
const { client } = useAgent();
5
+
export const createListMembersQuery = (listUri: () => string) => {
6
+
const { rpc } = useAgent();
9
7
10
8
return createInfiniteQuery(() => {
11
9
const $listUri = listUri();
···
13
11
return {
14
12
queryKey: ['list-members', $listUri],
15
13
async queryFn(ctx: QC<never, string | undefined>) {
16
-
const data = await ok(
17
-
client.get('app.bsky.graph.getList', {
18
-
signal: ctx.signal,
19
-
params: {
20
-
list: $listUri,
21
-
limit: 50,
22
-
cursor: ctx.pageParam,
23
-
},
24
-
}),
25
-
);
14
+
const { data } = await rpc.get('app.bsky.graph.getList', {
15
+
signal: ctx.signal,
16
+
params: {
17
+
list: $listUri,
18
+
limit: 50,
19
+
cursor: ctx.pageParam,
20
+
},
21
+
});
26
22
27
23
return {
28
24
cursor: data.cursor,
+12
-15
src/api/queries/list.ts
+12
-15
src/api/queries/list.ts
···
1
1
import { modifyMutable, reconcile } from 'solid-js/store';
2
2
3
-
import { ok } from '@atcute/client';
4
3
import type { AppBskyGraphDefs, At } from '@atcute/client/lexicons';
5
4
import { createQuery } from '@mary/solid-query';
6
5
···
9
8
import { useSession } from '~/lib/states/session';
10
9
import { omit } from '~/lib/utils/misc';
11
10
12
-
import { makeAtUri, parseCanonicalResourceUri } from '../types/at-uri';
11
+
import { makeAtUri, parseAtUri } from '../types/at-uri';
13
12
import { isDid } from '../types/identity';
14
13
15
14
import { resolveHandle } from './handle';
16
15
17
16
export const createListMetaQuery = (listUri: () => string) => {
18
-
const { client } = useAgent();
17
+
const { rpc } = useAgent();
19
18
const { currentAccount } = useSession();
20
19
21
20
return createQuery((queryClient) => {
···
24
23
return {
25
24
queryKey: ['list-meta', $listUri],
26
25
async queryFn(ctx) {
27
-
const uri = parseCanonicalResourceUri($listUri);
26
+
const uri = parseAtUri($listUri);
28
27
29
-
let did: At.Did;
28
+
let did: At.DID;
30
29
if (isDid(uri.repo)) {
31
30
did = uri.repo;
32
31
} else {
33
-
did = await resolveHandle(client, uri.repo, ctx.signal);
32
+
did = await resolveHandle(rpc, uri.repo, ctx.signal);
34
33
}
35
34
36
-
const data = await ok(
37
-
client.get('app.bsky.graph.getList', {
38
-
signal: ctx.signal,
39
-
params: {
40
-
list: makeAtUri(did, uri.collection, uri.rkey),
41
-
limit: 1,
42
-
},
43
-
}),
44
-
);
35
+
const { data } = await rpc.get('app.bsky.graph.getList', {
36
+
signal: ctx.signal,
37
+
params: {
38
+
list: makeAtUri(did, uri.collection, uri.rkey),
39
+
limit: 1,
40
+
},
41
+
});
45
42
46
43
if (currentAccount) {
47
44
const found = currentAccount.preferences.feeds.find((item): item is SavedListFeed => {
+23
-30
src/api/queries/my-lists.ts
+23
-30
src/api/queries/my-lists.ts
···
1
-
import { ok } from '@atcute/client';
2
1
import type { AppBskyGraphDefs } from '@atcute/client/lexicons';
3
2
import { createQuery } from '@mary/solid-query';
4
3
···
8
7
export type MyListsFilter = 'all' | 'curation' | 'moderation' | 'all-including-subscribed';
9
8
10
9
export const createMyListsQuery = (filter: MyListsFilter) => {
11
-
const { client } = useAgent();
10
+
const { rpc } = useAgent();
12
11
const { currentAccount } = useSession();
13
12
14
13
return createQuery(() => ({
···
16
15
async queryFn({ signal }) {
17
16
const promises = [
18
17
accumulate(async (cursor) => {
19
-
const data = await ok(
20
-
client.get('app.bsky.graph.getLists', {
21
-
signal,
22
-
params: {
23
-
actor: currentAccount!.did,
24
-
cursor,
25
-
limit: 100,
26
-
},
27
-
}),
28
-
);
18
+
const { data } = await rpc.get('app.bsky.graph.getLists', {
19
+
signal,
20
+
params: {
21
+
actor: currentAccount!.did,
22
+
cursor,
23
+
limit: 100,
24
+
},
25
+
});
29
26
30
27
return {
31
28
cursor: data.cursor,
···
37
34
if (filter === 'all-including-subscribed' || filter === 'moderation') {
38
35
promises.push(
39
36
accumulate(async (cursor) => {
40
-
const data = await ok(
41
-
client.get('app.bsky.graph.getListMutes', {
42
-
signal,
43
-
params: {
44
-
cursor,
45
-
limit: 100,
46
-
},
47
-
}),
48
-
);
37
+
const { data } = await rpc.get('app.bsky.graph.getListMutes', {
38
+
signal,
39
+
params: {
40
+
cursor,
41
+
limit: 100,
42
+
},
43
+
});
49
44
50
45
return {
51
46
cursor: data.cursor,
···
56
51
57
52
promises.push(
58
53
accumulate(async (cursor) => {
59
-
const data = await ok(
60
-
client.get('app.bsky.graph.getListBlocks', {
61
-
signal,
62
-
params: {
63
-
cursor,
64
-
limit: 100,
65
-
},
66
-
}),
67
-
);
54
+
const { data } = await rpc.get('app.bsky.graph.getListBlocks', {
55
+
signal,
56
+
params: {
57
+
cursor,
58
+
limit: 100,
59
+
},
60
+
});
68
61
69
62
return {
70
63
cursor: data.cursor,
+4
-7
src/api/queries/notification-count.tsx
+4
-7
src/api/queries/notification-count.tsx
···
1
-
import { ok } from '@atcute/client';
2
1
import { createQuery } from '@mary/solid-query';
3
2
4
3
import { useAgent } from '~/lib/states/agent';
···
6
5
7
6
export const createNotificationCountQuery = (options?: { readonly disabled?: boolean }) => {
8
7
const { currentAccount } = useSession();
9
-
const { client } = useAgent();
8
+
const { rpc } = useAgent();
10
9
11
10
const query = createQuery(() => ({
12
11
queryKey: ['notification', 'count'],
13
12
enabled: currentAccount !== undefined && !options?.disabled,
14
13
async queryFn() {
15
-
const data = await ok(
16
-
client.get('app.bsky.notification.getUnreadCount', {
17
-
params: {},
18
-
}),
19
-
);
14
+
const { data } = await rpc.get('app.bsky.notification.getUnreadCount', {
15
+
params: {},
16
+
});
20
17
21
18
return data;
22
19
},
+21
-32
src/api/queries/notification-feed.tsx
+21
-32
src/api/queries/notification-feed.tsx
···
1
1
import { createSignal } from 'solid-js';
2
2
3
-
import { ok } from '@atcute/client';
4
3
import type { AppBskyFeedDefs, AppBskyNotificationListNotifications } from '@atcute/client/lexicons';
5
4
import { chunked, mapDefined } from '@mary/array-fns';
6
5
import { type QueryFunctionContext as QC, createInfiniteQuery, useQueryClient } from '@mary/solid-query';
7
6
8
7
import { useAgent } from '~/lib/states/agent';
9
8
10
-
import { parseCanonicalResourceUri } from '../types/at-uri';
9
+
import { parseAtUri } from '../types/at-uri';
11
10
import { dequal } from '../utils/dequal';
12
11
import { resetInfiniteData } from '../utils/query';
13
12
···
85
84
export type NotificationsFilter = 'all' | 'mentions';
86
85
87
86
export const createNotificationFeedQuery = (filter: () => NotificationsFilter) => {
88
-
const { client } = useAgent();
87
+
const { rpc } = useAgent();
89
88
const queryClient = useQueryClient();
90
89
91
90
const [firstFetchedAt, setFirstFetchedAt] = createSignal(0);
···
105
104
reasons = ['mention', 'reply', 'quote'];
106
105
}
107
106
108
-
const data = await ok(
109
-
client.get('app.bsky.notification.listNotifications', {
110
-
signal: signal,
111
-
params: {
112
-
limit: 40,
113
-
reasons: reasons,
114
-
cursor: pageParam?.cursor,
115
-
},
116
-
}),
117
-
);
107
+
const { data } = await rpc.get('app.bsky.notification.listNotifications', {
108
+
signal: signal,
109
+
params: {
110
+
limit: 40,
111
+
reasons: reasons,
112
+
cursor: pageParam?.cursor,
113
+
},
114
+
});
118
115
119
116
const notifs = data.notifications;
120
117
const firstSeenAt = pageParam?.seenAt;
···
132
129
const subjectUri = item.reasonSubject;
133
130
134
131
// skip if they're not related to posts.
135
-
if (
136
-
!subjectUri ||
137
-
parseCanonicalResourceUri(subjectUri).collection !== 'app.bsky.feed.post'
138
-
) {
132
+
if (!subjectUri || parseAtUri(subjectUri).collection !== 'app.bsky.feed.post') {
139
133
return;
140
134
}
141
135
···
148
142
149
143
const chunkedPosts = await Promise.all(
150
144
chunked(Array.from(postUris), 25).map(async (uris) => {
151
-
const data = await ok(
152
-
client.get('app.bsky.feed.getPosts', {
153
-
params: {
154
-
uris: uris,
155
-
},
156
-
}),
157
-
);
145
+
const { data } = await rpc.get('app.bsky.feed.getPosts', {
146
+
params: {
147
+
uris: uris,
148
+
},
149
+
});
158
150
159
151
return data.posts;
160
152
}),
···
246
238
const indexedAt = new Date(notifs[0]?.indexedAt ?? 0).getTime();
247
239
const seenAt = Math.max(now, indexedAt);
248
240
249
-
const promise = ok(
250
-
client.post('app.bsky.notification.updateSeen', {
251
-
as: null,
252
-
input: {
253
-
seenAt: new Date(seenAt).toISOString(),
254
-
},
255
-
}),
256
-
);
241
+
const promise = rpc.call('app.bsky.notification.updateSeen', {
242
+
data: {
243
+
seenAt: new Date(seenAt).toISOString(),
244
+
},
245
+
});
257
246
258
247
queryClient.cancelQueries({
259
248
exact: true,
+11
-14
src/api/queries/post-quotes.ts
+11
-14
src/api/queries/post-quotes.ts
···
1
-
import { ok } from '@atcute/client';
2
-
import type { AppBskyFeedGetQuotes, At } from '@atcute/client/lexicons';
1
+
import type { AppBskyFeedGetQuotes } from '@atcute/client/lexicons';
3
2
import { type QueryFunctionContext as QC, createInfiniteQuery } from '@mary/solid-query';
4
3
5
4
import { useAgent } from '~/lib/states/agent';
6
5
7
-
export const createPostQuotesQuery = (uri: () => At.ResourceUri) => {
8
-
const { client } = useAgent();
6
+
export const createPostQuotesQuery = (uri: () => string) => {
7
+
const { rpc } = useAgent();
9
8
10
9
return createInfiniteQuery(() => {
11
10
const $uri = uri();
···
14
13
queryKey: ['post-quotes', $uri],
15
14
structuralSharing: false,
16
15
async queryFn(ctx: QC<never, string | undefined>): Promise<AppBskyFeedGetQuotes.Output> {
17
-
const data = await ok(
18
-
client.get('app.bsky.feed.getQuotes', {
19
-
signal: ctx.signal,
20
-
params: {
21
-
uri: $uri,
22
-
limit: 50,
23
-
cursor: ctx.pageParam,
24
-
},
25
-
}),
26
-
);
16
+
const { data } = await rpc.get('app.bsky.feed.getQuotes', {
17
+
signal: ctx.signal,
18
+
params: {
19
+
uri: $uri,
20
+
limit: 50,
21
+
cursor: ctx.pageParam,
22
+
},
23
+
});
27
24
28
25
return data;
29
26
},
+15
-20
src/api/queries/post-thread.ts
+15
-20
src/api/queries/post-thread.ts
···
1
-
import { ClientResponseError, ok } from '@atcute/client';
2
-
import type { AppBskyFeedDefs, At, Brand } from '@atcute/client/lexicons';
1
+
import { XRPCError } from '@atcute/client';
2
+
import type { AppBskyFeedDefs, Brand } from '@atcute/client/lexicons';
3
3
import { createQuery } from '@mary/solid-query';
4
4
5
5
import { useAgent } from '~/lib/states/agent';
···
11
11
12
12
type ThreadReturn = Brand.Union<AppBskyFeedDefs.ThreadViewPost | AppBskyFeedDefs.BlockedPost>;
13
13
14
-
export const usePostThreadQuery = (uri: () => At.ResourceUri) => {
15
-
const { client } = useAgent();
14
+
export const usePostThreadQuery = (uri: () => string) => {
15
+
const { rpc } = useAgent();
16
16
17
17
return createQuery((queryClient) => {
18
18
const $uri = uri();
···
21
21
queryKey: ['post-thread', $uri],
22
22
structuralSharing: false,
23
23
async queryFn(ctx): Promise<ThreadReturn> {
24
-
const data = await ok(
25
-
client.get('app.bsky.feed.getPostThread', {
26
-
signal: ctx.signal,
27
-
params: {
28
-
uri: $uri,
29
-
depth: MAX_DEPTH,
30
-
parentHeight: MAX_HEIGHT,
31
-
},
32
-
}),
33
-
);
24
+
const { data } = await rpc.get('app.bsky.feed.getPostThread', {
25
+
signal: ctx.signal,
26
+
params: {
27
+
uri: $uri,
28
+
depth: MAX_DEPTH,
29
+
parentHeight: MAX_HEIGHT,
30
+
},
31
+
});
34
32
35
33
const thread = data.thread;
36
34
37
35
if (thread.$type === 'app.bsky.feed.defs#notFoundPost') {
38
-
throw new ClientResponseError({
39
-
status: 400,
40
-
data: {
41
-
error: `NotFound`,
42
-
message: `Post not found: ${$uri}`,
43
-
},
36
+
throw new XRPCError(400, {
37
+
kind: 'NotFound',
38
+
description: `Post not found: ${$uri}`,
44
39
});
45
40
}
46
41
+11
-14
src/api/queries/post.ts
+11
-14
src/api/queries/post.ts
···
1
-
import { ok } from '@atcute/client';
2
1
import type { At } from '@atcute/client/lexicons';
3
2
import { createQuery } from '@mary/solid-query';
4
3
5
4
import { useAgent } from '~/lib/states/agent';
6
5
7
6
import { findPostsInCache } from '../cache/post-shadow';
8
-
import { makeAtUri, parseCanonicalResourceUri } from '../types/at-uri';
7
+
import { makeAtUri, parseAtUri } from '../types/at-uri';
9
8
import { isDid } from '../types/identity';
10
9
11
10
import { resolveHandle } from './handle';
12
11
13
12
export const createPostQuery = (postUri: () => string) => {
14
-
const { client } = useAgent();
13
+
const { rpc } = useAgent();
15
14
16
15
return createQuery((queryClient) => {
17
16
const $postUri = postUri();
···
19
18
return {
20
19
queryKey: ['post', $postUri],
21
20
async queryFn(ctx) {
22
-
const uri = parseCanonicalResourceUri($postUri);
21
+
const uri = parseAtUri($postUri);
23
22
24
-
let did: At.Did;
23
+
let did: At.DID;
25
24
if (isDid(uri.repo)) {
26
25
did = uri.repo;
27
26
} else {
28
-
did = await resolveHandle(client, uri.repo, ctx.signal);
27
+
did = await resolveHandle(rpc, uri.repo, ctx.signal);
29
28
}
30
29
31
-
const data = await ok(
32
-
client.get('app.bsky.feed.getPosts', {
33
-
signal: ctx.signal,
34
-
params: {
35
-
uris: [makeAtUri(did, uri.collection, uri.rkey)],
36
-
},
37
-
}),
38
-
);
30
+
const { data } = await rpc.get('app.bsky.feed.getPosts', {
31
+
signal: ctx.signal,
32
+
params: {
33
+
uris: [makeAtUri(did, uri.collection, uri.rkey)],
34
+
},
35
+
});
39
36
40
37
const post = data.posts[0];
41
38
+8
-11
src/api/queries/profile-autocomplete.ts
+8
-11
src/api/queries/profile-autocomplete.ts
···
1
-
import { ok } from '@atcute/client';
2
1
import { createQuery, keepPreviousData } from '@mary/solid-query';
3
2
4
3
import { useAgent } from '~/lib/states/agent';
···
11
10
query: () => string,
12
11
opts?: ProfileAutocompleteQueryOptions,
13
12
) => {
14
-
const { client } = useAgent();
13
+
const { rpc } = useAgent();
15
14
16
15
return createQuery(() => {
17
16
const $query = query();
···
27
26
enabled: isEnabled,
28
27
placeholderData: isEnabled ? keepPreviousData : undefined,
29
28
async queryFn({ signal }) {
30
-
const data = await ok(
31
-
client.get('app.bsky.actor.searchActorsTypeahead', {
32
-
signal,
33
-
params: {
34
-
q: trimmed,
35
-
limit: 10,
36
-
},
37
-
}),
38
-
);
29
+
const { data } = await rpc.get('app.bsky.actor.searchActorsTypeahead', {
30
+
signal,
31
+
params: {
32
+
q: trimmed,
33
+
limit: 10,
34
+
},
35
+
});
39
36
40
37
return data;
41
38
},
+10
-14
src/api/queries/profile-feeds.ts
+10
-14
src/api/queries/profile-feeds.ts
···
1
-
import { ok } from '@atcute/client';
2
-
import type { At } from '@atcute/client/lexicons';
3
1
import { type QueryFunctionContext as QC, createInfiniteQuery } from '@mary/solid-query';
4
2
5
3
import { useAgent } from '~/lib/states/agent';
6
4
7
-
export const createProfileFeedsQuery = (didOrHandle: () => At.Identifier) => {
8
-
const { client } = useAgent();
5
+
export const createProfileFeedsQuery = (didOrHandle: () => string) => {
6
+
const { rpc } = useAgent();
9
7
10
8
return createInfiniteQuery(() => {
11
9
const $didOrHandle = didOrHandle();
···
13
11
return {
14
12
queryKey: ['profile-feeds', $didOrHandle],
15
13
async queryFn(ctx: QC<never, string | undefined>) {
16
-
const data = await ok(
17
-
client.get('app.bsky.feed.getActorFeeds', {
18
-
signal: ctx.signal,
19
-
params: {
20
-
actor: $didOrHandle,
21
-
limit: 100,
22
-
cursor: ctx.pageParam,
23
-
},
24
-
}),
25
-
);
14
+
const { data } = await rpc.get('app.bsky.feed.getActorFeeds', {
15
+
signal: ctx.signal,
16
+
params: {
17
+
actor: $didOrHandle,
18
+
limit: 100,
19
+
cursor: ctx.pageParam,
20
+
},
21
+
});
26
22
27
23
data.feeds.sort((a, b) => (b.likeCount ?? 0) - (a.likeCount ?? 0));
28
24
return data;
+11
-14
src/api/queries/profile-followers.ts
+11
-14
src/api/queries/profile-followers.ts
···
1
-
import { ok } from '@atcute/client';
2
-
import type { AppBskyActorDefs, At } from '@atcute/client/lexicons';
1
+
import type { AppBskyActorDefs } from '@atcute/client/lexicons';
3
2
import { type InfiniteData, type QueryFunctionContext as QC, createInfiniteQuery } from '@mary/solid-query';
4
3
5
4
import { useAgent } from '~/lib/states/agent';
6
5
7
6
import { type ProfilesListWithSubjectPage, toProfilesListWithSubjectPage } from '../types/profile-response';
8
7
9
-
export const createProfileFollowersQuery = (didOrHandle: () => At.Identifier) => {
10
-
const { client } = useAgent();
8
+
export const createProfileFollowersQuery = (didOrHandle: () => string) => {
9
+
const { rpc } = useAgent();
11
10
12
11
return createInfiniteQuery((queryClient) => {
13
12
const $didOrHandle = didOrHandle();
···
15
14
return {
16
15
queryKey: ['profile-followers', $didOrHandle],
17
16
async queryFn(ctx: QC<never, string | undefined>): Promise<ProfilesListWithSubjectPage> {
18
-
const data = await ok(
19
-
client.get('app.bsky.graph.getFollowers', {
20
-
signal: ctx.signal,
21
-
params: {
22
-
actor: $didOrHandle,
23
-
limit: 50,
24
-
cursor: ctx.pageParam,
25
-
},
26
-
}),
27
-
);
17
+
const { data } = await rpc.get('app.bsky.graph.getFollowers', {
18
+
signal: ctx.signal,
19
+
params: {
20
+
actor: $didOrHandle,
21
+
limit: 50,
22
+
cursor: ctx.pageParam,
23
+
},
24
+
});
28
25
29
26
return toProfilesListWithSubjectPage(data, 'followers');
30
27
},
+11
-14
src/api/queries/profile-following.ts
+11
-14
src/api/queries/profile-following.ts
···
1
-
import { ok } from '@atcute/client';
2
-
import type { AppBskyActorDefs, At } from '@atcute/client/lexicons';
1
+
import type { AppBskyActorDefs } from '@atcute/client/lexicons';
3
2
import { type InfiniteData, type QueryFunctionContext as QC, createInfiniteQuery } from '@mary/solid-query';
4
3
5
4
import { useAgent } from '~/lib/states/agent';
6
5
7
6
import { type ProfilesListWithSubjectPage, toProfilesListWithSubjectPage } from '../types/profile-response';
8
7
9
-
export const createProfileFollowingQuery = (didOrHandle: () => At.Identifier) => {
10
-
const { client } = useAgent();
8
+
export const createProfileFollowingQuery = (didOrHandle: () => string) => {
9
+
const { rpc } = useAgent();
11
10
12
11
return createInfiniteQuery((queryClient) => {
13
12
const $didOrHandle = didOrHandle();
···
15
14
return {
16
15
queryKey: ['profile-following', $didOrHandle],
17
16
async queryFn(ctx: QC<never, string | undefined>): Promise<ProfilesListWithSubjectPage> {
18
-
const data = await ok(
19
-
client.get('app.bsky.graph.getFollows', {
20
-
signal: ctx.signal,
21
-
params: {
22
-
actor: $didOrHandle,
23
-
limit: 50,
24
-
cursor: ctx.pageParam,
25
-
},
26
-
}),
27
-
);
17
+
const { data } = await rpc.get('app.bsky.graph.getFollows', {
18
+
signal: ctx.signal,
19
+
params: {
20
+
actor: $didOrHandle,
21
+
limit: 50,
22
+
cursor: ctx.pageParam,
23
+
},
24
+
});
28
25
29
26
return toProfilesListWithSubjectPage(data, 'follows');
30
27
},
+11
-14
src/api/queries/profile-known-followers.ts
+11
-14
src/api/queries/profile-known-followers.ts
···
1
-
import { ok } from '@atcute/client';
2
-
import type { AppBskyActorDefs, At } from '@atcute/client/lexicons';
1
+
import type { AppBskyActorDefs } from '@atcute/client/lexicons';
3
2
import { type InfiniteData, type QueryFunctionContext as QC, createInfiniteQuery } from '@mary/solid-query';
4
3
5
4
import { useAgent } from '~/lib/states/agent';
6
5
7
6
import { type ProfilesListWithSubjectPage, toProfilesListWithSubjectPage } from '../types/profile-response';
8
7
9
-
export const createProfileKnownFollowersQuery = (didOrHandle: () => At.Identifier) => {
10
-
const { client } = useAgent();
8
+
export const createProfileKnownFollowersQuery = (didOrHandle: () => string) => {
9
+
const { rpc } = useAgent();
11
10
12
11
return createInfiniteQuery((queryClient) => {
13
12
const $didOrHandle = didOrHandle();
···
15
14
return {
16
15
queryKey: ['profile-known-followers', $didOrHandle],
17
16
async queryFn(ctx: QC<never, string | undefined>): Promise<ProfilesListWithSubjectPage> {
18
-
const data = await ok(
19
-
client.get('app.bsky.graph.getKnownFollowers', {
20
-
signal: ctx.signal,
21
-
params: {
22
-
actor: $didOrHandle,
23
-
limit: 50,
24
-
cursor: ctx.pageParam,
25
-
},
26
-
}),
27
-
);
17
+
const { data } = await rpc.get('app.bsky.graph.getKnownFollowers', {
18
+
signal: ctx.signal,
19
+
params: {
20
+
actor: $didOrHandle,
21
+
limit: 50,
22
+
cursor: ctx.pageParam,
23
+
},
24
+
});
28
25
29
26
return toProfilesListWithSubjectPage(data, 'followers');
30
27
},
+10
-14
src/api/queries/profile-lists.ts
+10
-14
src/api/queries/profile-lists.ts
···
1
-
import { ok } from '@atcute/client';
2
-
import type { At } from '@atcute/client/lexicons';
3
1
import { type QueryFunctionContext as QC, createInfiniteQuery } from '@mary/solid-query';
4
2
5
3
import { useAgent } from '~/lib/states/agent';
6
4
7
-
export const createProfileListsQuery = (didOrHandle: () => At.Identifier) => {
8
-
const { client } = useAgent();
5
+
export const createProfileListsQuery = (didOrHandle: () => string) => {
6
+
const { rpc } = useAgent();
9
7
10
8
const collator = new Intl.Collator('en-US');
11
9
···
15
13
return {
16
14
queryKey: ['profile-lists', $didOrHandle],
17
15
async queryFn(ctx: QC<never, string | undefined>) {
18
-
const data = await ok(
19
-
client.get('app.bsky.graph.getLists', {
20
-
signal: ctx.signal,
21
-
params: {
22
-
actor: $didOrHandle,
23
-
limit: 100,
24
-
cursor: ctx.pageParam,
25
-
},
26
-
}),
27
-
);
16
+
const { data } = await rpc.get('app.bsky.graph.getLists', {
17
+
signal: ctx.signal,
18
+
params: {
19
+
actor: $didOrHandle,
20
+
limit: 100,
21
+
cursor: ctx.pageParam,
22
+
},
23
+
});
28
24
29
25
data.lists.sort((a, b) => collator.compare(a.name, b.name));
30
26
return data;
+17
-12
src/api/queries/profile.ts
+17
-12
src/api/queries/profile.ts
···
1
1
import { modifyMutable, reconcile } from 'solid-js/store';
2
2
3
-
import { ok } from '@atcute/client';
4
3
import type { AppBskyActorDefs, At } from '@atcute/client/lexicons';
5
4
import { createQuery } from '@mary/solid-query';
6
5
7
6
import { useAgent } from '~/lib/states/agent';
8
7
import { useSession } from '~/lib/states/session';
9
8
9
+
import { findProfilesInCache } from '../cache/profile-shadow';
10
10
import { dequal } from '../utils/dequal';
11
11
12
12
export interface ProfileQueryOptions {
···
14
14
gcTime?: number;
15
15
}
16
16
17
-
export const createProfileQuery = (didOrHandle: () => At.Identifier, opts: ProfileQueryOptions = {}) => {
18
-
const { client } = useAgent();
17
+
export const createProfileQuery = (didOrHandle: () => string, opts: ProfileQueryOptions = {}) => {
18
+
const { rpc } = useAgent();
19
19
const { currentAccount } = useSession();
20
20
21
21
return createQuery((queryClient) => {
···
26
26
staleTime: opts.staleTime,
27
27
gcTime: opts.gcTime,
28
28
async queryFn(ctx): Promise<AppBskyActorDefs.ProfileViewDetailed> {
29
-
const data = await ok(
30
-
client.get('app.bsky.actor.getProfile', {
31
-
signal: ctx.signal,
32
-
params: {
33
-
actor: $didOrHandle!,
34
-
},
35
-
}),
36
-
);
29
+
const { data } = await rpc.get('app.bsky.actor.getProfile', {
30
+
signal: ctx.signal,
31
+
params: {
32
+
actor: $didOrHandle!,
33
+
},
34
+
});
37
35
38
36
if (currentAccount !== undefined && currentAccount.did === data.did) {
39
37
// Unset `knownFollowers` as we don't need that on our own profile.
···
53
51
return data;
54
52
},
55
53
placeholderData(): AppBskyActorDefs.ProfileViewDetailed | undefined {
56
-
return queryClient.getQueryData(['profile-precache', $didOrHandle]);
54
+
const precache = queryClient.getQueryData(['profile-precache', $didOrHandle]);
55
+
if (precache) {
56
+
return precache as any;
57
+
}
58
+
59
+
for (const profile of findProfilesInCache(queryClient, $didOrHandle as At.DID)) {
60
+
return profile as any;
61
+
}
57
62
},
58
63
initialData(): AppBskyActorDefs.ProfileViewDetailed | undefined {
59
64
if (currentAccount !== undefined && currentAccount.did === $didOrHandle) {
+9
-12
src/api/queries/search-feeds.ts
+9
-12
src/api/queries/search-feeds.ts
···
1
-
import { ok } from '@atcute/client';
2
1
import type { AppBskyUnspeccedGetPopularFeedGenerators } from '@atcute/client/lexicons';
3
2
import { type QueryFunctionContext as QC, createInfiniteQuery } from '@mary/solid-query';
4
3
5
4
import { useAgent } from '~/lib/states/agent';
6
5
7
6
export const createSearchFeedsQuery = (query: () => string) => {
8
-
const { client } = useAgent();
7
+
const { rpc } = useAgent();
9
8
10
9
return createInfiniteQuery(() => {
11
10
const q = query();
···
15
14
async queryFn(
16
15
ctx: QC<never, string | undefined>,
17
16
): Promise<AppBskyUnspeccedGetPopularFeedGenerators.Output> {
18
-
const data = await ok(
19
-
client.get('app.bsky.unspecced.getPopularFeedGenerators', {
20
-
signal: ctx.signal,
21
-
params: {
22
-
query: q,
23
-
limit: 50,
24
-
cursor: ctx.pageParam,
25
-
},
26
-
}),
27
-
);
17
+
const { data } = await rpc.get('app.bsky.unspecced.getPopularFeedGenerators', {
18
+
signal: ctx.signal,
19
+
params: {
20
+
query: q,
21
+
limit: 50,
22
+
cursor: ctx.pageParam,
23
+
},
24
+
});
28
25
29
26
return data;
30
27
},
+9
-12
src/api/queries/search-profiles.ts
+9
-12
src/api/queries/search-profiles.ts
···
1
-
import { ok } from '@atcute/client';
2
1
import { type QueryFunctionContext as QC, createInfiniteQuery } from '@mary/solid-query';
3
2
4
3
import { useAgent } from '~/lib/states/agent';
···
6
5
import { type ProfilesListPage, toProfilesListPage } from '../types/profile-response';
7
6
8
7
export const createSearchProfilesQuery = (query: () => string) => {
9
-
const { client } = useAgent();
8
+
const { rpc } = useAgent();
10
9
11
10
return createInfiniteQuery(() => {
12
11
const q = query();
···
14
13
return {
15
14
queryKey: ['search-profiles', q],
16
15
async queryFn(ctx: QC<never, string | undefined>): Promise<ProfilesListPage> {
17
-
const data = await ok(
18
-
client.get('app.bsky.actor.searchActors', {
19
-
signal: ctx.signal,
20
-
params: {
21
-
q: q,
22
-
limit: 50,
23
-
cursor: ctx.pageParam,
24
-
},
25
-
}),
26
-
);
16
+
const { data } = await rpc.get('app.bsky.actor.searchActors', {
17
+
signal: ctx.signal,
18
+
params: {
19
+
q: q,
20
+
limit: 50,
21
+
cursor: ctx.pageParam,
22
+
},
23
+
});
27
24
28
25
return toProfilesListPage(data, 'actors');
29
26
},
+10
-14
src/api/queries/subject-likers.ts
+10
-14
src/api/queries/subject-likers.ts
···
1
-
import { ok } from '@atcute/client';
2
-
import type { At } from '@atcute/client/lexicons';
3
1
import type { QueryFunctionContext as QC } from '@mary/solid-query';
4
2
import { createInfiniteQuery } from '@mary/solid-query';
5
3
···
7
5
8
6
import type { ProfilesListPage } from '../types/profile-response';
9
7
10
-
export const createSubjectLikersQuery = (uri: () => At.ResourceUri) => {
11
-
const { client } = useAgent();
8
+
export const createSubjectLikersQuery = (uri: () => string) => {
9
+
const { rpc } = useAgent();
12
10
13
11
return createInfiniteQuery(() => {
14
12
const $uri = uri();
···
17
15
queryKey: ['subject-likers', $uri],
18
16
structuralSharing: false,
19
17
async queryFn(ctx: QC<never, string | undefined>): Promise<ProfilesListPage> {
20
-
const data = await ok(
21
-
client.get('app.bsky.feed.getLikes', {
22
-
signal: ctx.signal,
23
-
params: {
24
-
uri: $uri,
25
-
limit: 50,
26
-
cursor: ctx.pageParam,
27
-
},
28
-
}),
29
-
);
18
+
const { data } = await rpc.get('app.bsky.feed.getLikes', {
19
+
signal: ctx.signal,
20
+
params: {
21
+
uri: $uri,
22
+
limit: 50,
23
+
cursor: ctx.pageParam,
24
+
},
25
+
});
30
26
31
27
return {
32
28
cursor: data.cursor,
+10
-14
src/api/queries/subject-reposters.ts
+10
-14
src/api/queries/subject-reposters.ts
···
1
-
import { ok } from '@atcute/client';
2
-
import type { At } from '@atcute/client/lexicons';
3
1
import type { QueryFunctionContext as QC } from '@mary/solid-query';
4
2
import { createInfiniteQuery } from '@mary/solid-query';
5
3
···
7
5
8
6
import { type ProfilesListPage, toProfilesListPage } from '../types/profile-response';
9
7
10
-
export const createSubjectRepostersQuery = (uri: () => At.ResourceUri) => {
11
-
const { client } = useAgent();
8
+
export const createSubjectRepostersQuery = (uri: () => string) => {
9
+
const { rpc } = useAgent();
12
10
13
11
return createInfiniteQuery(() => {
14
12
const $uri = uri();
···
17
15
queryKey: ['subject-reposters', $uri],
18
16
structuralSharing: false,
19
17
async queryFn(ctx: QC<never, string | undefined>): Promise<ProfilesListPage> {
20
-
const data = await ok(
21
-
client.get('app.bsky.feed.getRepostedBy', {
22
-
signal: ctx.signal,
23
-
params: {
24
-
uri: $uri,
25
-
limit: 50,
26
-
cursor: ctx.pageParam,
27
-
},
28
-
}),
29
-
);
18
+
const { data } = await rpc.get('app.bsky.feed.getRepostedBy', {
19
+
signal: ctx.signal,
20
+
params: {
21
+
uri: $uri,
22
+
limit: 50,
23
+
cursor: ctx.pageParam,
24
+
},
25
+
});
30
26
31
27
return toProfilesListPage(data, 'repostedBy');
32
28
},
+75
-85
src/api/queries/timeline.ts
+75
-85
src/api/queries/timeline.ts
···
1
1
import { createEffect, createMemo, createRenderEffect, onCleanup, untrack } from 'solid-js';
2
2
3
-
import { type Client, ok } from '@atcute/client';
3
+
import type { XRPC } from '@atcute/client';
4
4
import type { AppBskyFeedDefs, AppBskyFeedGetTimeline, AppBskyFeedPost, At } from '@atcute/client/lexicons';
5
5
import { type FalsyValue, definite } from '@mary/array-fns';
6
6
import { type InfiniteData, createInfiniteQuery, createQuery, useQueryClient } from '@mary/solid-query';
···
31
31
getModerationUI,
32
32
} from '../moderation';
33
33
import { ContextContentList, PreferenceHide, TargetContent } from '../moderation/constants';
34
-
import { parseCanonicalResourceUri } from '../types/at-uri';
34
+
import { parseAtUri } from '../types/at-uri';
35
35
import { unwrapRecordEmbed } from '../utils/bluesky/embed';
36
36
import { unwrapRecordEmbedView } from '../utils/bluesky/embed-view';
37
37
import { EQUALS_DEQUAL } from '../utils/dequal';
···
49
49
50
50
export interface FeedTimelineParams {
51
51
type: 'feed';
52
-
uri: At.ResourceUri;
52
+
uri: string;
53
53
showReplies: boolean;
54
54
showReposts: boolean;
55
55
showQuotes: boolean;
···
57
57
58
58
export interface ListTimelineParams {
59
59
type: 'list';
60
-
uri: At.ResourceUri;
60
+
uri: string;
61
61
showReplies: boolean;
62
62
showQuotes: boolean;
63
63
}
64
64
65
65
export interface ProfileTimelineParams {
66
66
type: 'profile';
67
-
actor: At.Did;
67
+
actor: At.DID;
68
68
tab: 'posts' | 'replies' | 'likes' | 'media';
69
69
}
70
70
···
126
126
export const useTimelineQuery = (_params: () => TimelineParams) => {
127
127
const getParams = createMemo(() => _params(), EQUALS_DEQUAL);
128
128
129
-
const { client } = useAgent();
129
+
const { rpc } = useAgent();
130
130
const { currentAccount } = useSession();
131
131
const queryClient = useQueryClient();
132
132
···
195
195
postFilter = createLabelPostFilter(moderation);
196
196
}
197
197
198
-
const timeline = await fetchPage(client, params, limit, cursor, ctx.signal);
198
+
const timeline = await fetchPage(rpc, params, limit, cursor, ctx.signal);
199
199
200
200
const feed = timeline.feed;
201
201
const newCursor = timeline.cursor;
···
238
238
// const offset = params.type !== 'profile' ? timelineData!.pages[0].pinAmount : 0;
239
239
const offset = timelineData!.pages[0].pinAmount;
240
240
241
-
const timeline = await fetchPage(client, params, offset + 1, undefined, ctx.signal);
241
+
const timeline = await fetchPage(rpc, params, offset + 1, undefined, ctx.signal);
242
242
const feed = timeline.feed;
243
243
244
244
return { hash: getTimelineHash(feed) };
···
308
308
309
309
//// Raw fetch
310
310
const fetchPage = async (
311
-
client: Client,
311
+
rpc: XRPC,
312
312
params: TimelineParams,
313
313
limit: number,
314
314
cursor: string | undefined,
···
317
317
const type = params.type;
318
318
319
319
if (type === 'following') {
320
-
const data = await ok(
321
-
client.get('app.bsky.feed.getTimeline', {
322
-
signal: signal,
323
-
params: {
324
-
algorithm: 'reverse-chronological',
325
-
cursor: cursor,
326
-
limit: limit,
327
-
},
328
-
}),
329
-
);
320
+
const response = await rpc.get('app.bsky.feed.getTimeline', {
321
+
signal: signal,
322
+
params: {
323
+
algorithm: 'reverse-chronological',
324
+
cursor: cursor,
325
+
limit: limit,
326
+
},
327
+
});
330
328
331
-
return data;
329
+
return response.data;
332
330
} else if (type === 'feed') {
333
-
const data = await ok(
334
-
client.get('app.bsky.feed.getFeed', {
335
-
signal: signal,
336
-
headers: {
337
-
'accent-language': navigator.languages.join(','),
338
-
},
339
-
params: {
340
-
feed: params.uri,
341
-
cursor: cursor,
342
-
limit: limit,
343
-
},
344
-
}),
345
-
);
331
+
const response = await rpc.get('app.bsky.feed.getFeed', {
332
+
signal: signal,
333
+
headers: {
334
+
'accent-language': navigator.languages.join(','),
335
+
},
336
+
params: {
337
+
feed: params.uri,
338
+
cursor: cursor,
339
+
limit: limit,
340
+
},
341
+
});
342
+
343
+
const data = response.data;
346
344
347
345
return {
348
346
// Discover feed, wooo.
···
350
348
feed: data.feed,
351
349
};
352
350
} else if (type === 'list') {
353
-
const data = await ok(
354
-
client.get('app.bsky.feed.getListFeed', {
351
+
const response = await rpc.get('app.bsky.feed.getListFeed', {
352
+
signal: signal,
353
+
params: {
354
+
list: params.uri,
355
+
cursor: cursor,
356
+
limit: limit,
357
+
},
358
+
});
359
+
360
+
return response.data;
361
+
} else if (type === 'profile') {
362
+
if (params.tab === 'likes') {
363
+
const response = await rpc.get('app.bsky.feed.getActorLikes', {
355
364
signal: signal,
356
365
params: {
357
-
list: params.uri,
366
+
actor: params.actor,
358
367
cursor: cursor,
359
368
limit: limit,
360
369
},
361
-
}),
362
-
);
363
-
364
-
return data;
365
-
} else if (type === 'profile') {
366
-
if (params.tab === 'likes') {
367
-
const data = await ok(
368
-
client.get('app.bsky.feed.getActorLikes', {
369
-
signal: signal,
370
-
params: {
371
-
actor: params.actor,
372
-
cursor: cursor,
373
-
limit: limit,
374
-
},
375
-
}),
376
-
);
370
+
});
377
371
378
-
return data;
372
+
return response.data;
379
373
} else {
380
-
const data = await ok(
381
-
client.get('app.bsky.feed.getAuthorFeed', {
382
-
signal: signal,
383
-
params: {
384
-
actor: params.actor,
385
-
cursor: cursor,
386
-
limit: limit,
387
-
includePins: params.tab !== 'media',
388
-
filter:
389
-
params.tab === 'media'
390
-
? 'posts_with_media'
391
-
: params.tab === 'replies'
392
-
? 'posts_with_replies'
393
-
: 'posts_and_author_threads',
394
-
},
395
-
}),
396
-
);
397
-
398
-
return data;
399
-
}
400
-
} else if (type === 'search') {
401
-
const data = await ok(
402
-
client.get('app.bsky.feed.searchPosts', {
374
+
const response = await rpc.get('app.bsky.feed.getAuthorFeed', {
403
375
signal: signal,
404
376
params: {
405
-
sort: params.sort,
406
-
q: params.query,
377
+
actor: params.actor,
407
378
cursor: cursor,
408
379
limit: limit,
380
+
includePins: params.tab !== 'media',
381
+
filter:
382
+
params.tab === 'media'
383
+
? 'posts_with_media'
384
+
: params.tab === 'replies'
385
+
? 'posts_with_replies'
386
+
: 'posts_and_author_threads',
409
387
},
410
-
}),
411
-
);
388
+
});
389
+
390
+
return response.data;
391
+
}
392
+
} else if (type === 'search') {
393
+
const response = await rpc.get('app.bsky.feed.searchPosts', {
394
+
signal: signal,
395
+
params: {
396
+
sort: params.sort,
397
+
q: params.query,
398
+
cursor: cursor,
399
+
limit: limit,
400
+
},
401
+
});
402
+
403
+
const data = response.data;
412
404
413
405
return { cursor: data.cursor, feed: data.posts.map((view) => ({ post: view })) };
414
406
} else {
···
534
526
const post = item.post.record as PostRecord;
535
527
const record = unwrapRecordEmbed(post.embed);
536
528
537
-
return (
538
-
record === undefined || parseCanonicalResourceUri(record.record.uri).collection === 'app.bsky.feed.post'
539
-
);
529
+
return record === undefined || parseAtUri(record.record.uri).collection === 'app.bsky.feed.post';
540
530
};
541
531
};
542
532
···
585
575
};
586
576
};
587
577
588
-
const createHomeSliceFilter = (uid: At.Did, followsOnly: boolean): SliceFilter | undefined => {
578
+
const createHomeSliceFilter = (uid: At.DID, followsOnly: boolean): SliceFilter | undefined => {
589
579
return (slice) => {
590
580
const items = slice.items;
591
581
const first = items[0];
···
617
607
};
618
608
};
619
609
620
-
const createProfileSliceFilter = (did: At.Did): SliceFilter | undefined => {
610
+
const createProfileSliceFilter = (did: At.DID): SliceFilter | undefined => {
621
611
return (slice) => {
622
612
const items = slice.items;
623
613
const first = items[0];
+1
-1
src/api/queries-cache/bookmark-feed.ts
+1
-1
src/api/queries-cache/bookmark-feed.ts
···
35
35
};
36
36
};
37
37
38
-
export const findAllProfiles = (did: At.Did): CacheMatcher<AppBskyActorDefs.ProfileViewBasic> => {
38
+
export const findAllProfiles = (did: At.DID): CacheMatcher<AppBskyActorDefs.ProfileViewBasic> => {
39
39
return {
40
40
filter: {
41
41
queryKey: ['bookmarks-feed'],
+1
-1
src/api/queries-cache/notification-feed.ts
+1
-1
src/api/queries-cache/notification-feed.ts
+1
-1
src/api/queries-cache/post-thread.ts
+1
-1
src/api/queries-cache/post-thread.ts
+1
-1
src/api/queries-cache/profile-autocomplete.ts
+1
-1
src/api/queries-cache/profile-autocomplete.ts
···
2
2
3
3
import type { CacheMatcher } from '../cache/utils';
4
4
5
-
export const findAllProfiles = (did: At.Did): CacheMatcher<AppBskyActorDefs.ProfileViewBasic> => {
5
+
export const findAllProfiles = (did: At.DID): CacheMatcher<AppBskyActorDefs.ProfileViewBasic> => {
6
6
return {
7
7
filter: {
8
8
queryKey: ['profile-autocomplete'],
+1
-1
src/api/queries-cache/profile-list.ts
+1
-1
src/api/queries-cache/profile-list.ts
···
4
4
import type { CacheMatcher } from '../cache/utils';
5
5
import type { ProfilesListPage, ProfilesListWithSubjectPage } from '../types/profile-response';
6
6
7
-
export const findAllProfiles = (did: At.Did): CacheMatcher<AppBskyActorDefs.ProfileView> => {
7
+
export const findAllProfiles = (did: At.DID): CacheMatcher<AppBskyActorDefs.ProfileView> => {
8
8
return {
9
9
filter: [
10
10
{ queryKey: ['profile-followers'] },
+1
-1
src/api/queries-cache/profile.ts
+1
-1
src/api/queries-cache/profile.ts
···
2
2
3
3
import type { CacheMatcher } from '../cache/utils';
4
4
5
-
export const findAllProfiles = (did: At.Did): CacheMatcher<AppBskyActorDefs.ProfileViewDetailed> => {
5
+
export const findAllProfiles = (did: At.DID): CacheMatcher<AppBskyActorDefs.ProfileViewDetailed> => {
6
6
return {
7
7
filter: {
8
8
queryKey: ['profile', did],
+1
-1
src/api/queries-cache/timeline.ts
+1
-1
src/api/queries-cache/timeline.ts
+10
-14
src/api/types/at-uri.ts
+10
-14
src/api/types/at-uri.ts
···
5
5
export const ATURI_RE =
6
6
/^at:\/\/(did:[a-z]+:[a-zA-Z0-9._:%\-]*[a-zA-Z0-9._\-]|(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])\/([a-zA-Z0-9-.]+)\/((?!\.{1,2}$)[a-zA-Z0-9_~.:-]{1,512})(?:#(\/[a-zA-Z0-9._~:@!$&%')(*+,;=\-[\]/\\]*))?$/;
7
7
8
-
export interface ParsedCanonicalResourceUri {
9
-
repo: At.Did;
10
-
collection: At.Nsid;
11
-
rkey: At.RecordKey;
8
+
export interface ParsedAtUri {
9
+
repo: string;
10
+
collection: string;
11
+
rkey: string;
12
12
fragment: string | undefined;
13
13
}
14
14
15
-
export const parseCanonicalResourceUri = (str: string): ParsedCanonicalResourceUri => {
15
+
export const parseAtUri = (str: string): ParsedAtUri => {
16
16
const match = ATURI_RE.exec(str);
17
-
assert(match !== null, `failed to parse canonical-at-uri for ${str}`);
17
+
assert(match !== null, `failed to parse at-uri for ${str}`);
18
18
19
19
return {
20
-
repo: match[1] as At.Did,
21
-
collection: match[2] as At.Nsid,
22
-
rkey: match[3] as At.RecordKey,
20
+
repo: match[1] as At.DID,
21
+
collection: match[2],
22
+
rkey: match[3],
23
23
fragment: match[4],
24
24
};
25
25
};
26
26
27
-
export const makeAtUri = (
28
-
repo: At.Identifier,
29
-
collection: keyof Records | (string & {}),
30
-
rkey: At.RecordKey,
31
-
): At.ResourceUri => {
27
+
export const makeAtUri = (repo: string, collection: keyof Records | (string & {}), rkey: string) => {
32
28
return `at://${repo}/${collection}/${rkey}`;
33
29
};
+2
-2
src/api/utils/bluesky/embed-view.ts
+2
-2
src/api/utils/bluesky/embed-view.ts
···
1
1
import type { AppBskyEmbedRecordWithMedia, AppBskyFeedDefs } from '@atcute/client/lexicons';
2
2
3
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
3
+
import { parseAtUri } from '~/api/types/at-uri';
4
4
5
5
export interface EmbedsView {
6
6
media?: AppBskyEmbedRecordWithMedia.View['media'];
···
47
47
case 'app.bsky.embed.record#viewNotFound':
48
48
case 'app.bsky.embed.record#viewDetached':
49
49
case 'app.bsky.embed.record#viewBlocked': {
50
-
const uri = parseCanonicalResourceUri(embed.uri);
50
+
const uri = parseAtUri(embed.uri);
51
51
if (uri.collection === 'app.bsky.feed.post') {
52
52
return embed;
53
53
}
+8
-10
src/api/utils/did.ts
+8
-10
src/api/utils/did.ts
···
1
-
import { type Client, ok } from '@atcute/client';
1
+
import type { XRPC } from '@atcute/client';
2
2
import type { At } from '@atcute/client/lexicons';
3
3
4
4
import { isDid } from '../types/identity';
5
5
6
-
const getDid = async (client: Client, actor: At.Handle, signal?: AbortSignal) => {
7
-
let did: At.Did;
6
+
const getDid = async (rpc: XRPC, actor: string, signal?: AbortSignal) => {
7
+
let did: At.DID;
8
8
if (isDid(actor)) {
9
9
did = actor;
10
10
} else {
11
-
const data = await ok(
12
-
client.get('com.atproto.identity.resolveHandle', {
13
-
signal: signal,
14
-
params: { handle: actor },
15
-
}),
16
-
);
11
+
const response = await rpc.get('com.atproto.identity.resolveHandle', {
12
+
signal: signal,
13
+
params: { handle: actor },
14
+
});
17
15
18
-
did = data.did;
16
+
did = response.data.did;
19
17
}
20
18
21
19
return did;
+5
-5
src/api/utils/error.ts
+5
-5
src/api/utils/error.ts
···
1
-
import { ClientResponseError } from '@atcute/client';
1
+
import { XRPCError } from '@atcute/client';
2
2
import { TokenRefreshError } from '@atcute/oauth-browser-client';
3
3
4
-
export const formatXRPCError = (err: ClientResponseError): string => {
5
-
const name = err.error;
4
+
export const formatXRPCError = (err: XRPCError): string => {
5
+
const name = err.kind;
6
6
return (name ? name + ': ' : '') + err.description;
7
7
};
8
8
···
11
11
return `Account session is no longer valid`;
12
12
}
13
13
14
-
if (err instanceof ClientResponseError) {
15
-
const kind = err.error;
14
+
if (err instanceof XRPCError) {
15
+
const kind = err.kind;
16
16
17
17
if (kind === 'invalid_token') {
18
18
return `Account session is no longer valid`;
+30
-51
src/api/utils/records.ts
+30
-51
src/api/utils/records.ts
···
1
-
import { type Client, ok } from '@atcute/client';
1
+
import type { XRPC } from '@atcute/client';
2
2
import type {
3
3
At,
4
4
ComAtprotoRepoGetRecord,
···
9
9
type RecordType = keyof Records;
10
10
11
11
export interface CreateRecordOptions<K extends RecordType> {
12
-
repo: At.Did;
12
+
repo: At.DID;
13
13
collection: K;
14
14
rkey?: string;
15
15
record: Records[K];
···
17
17
validate?: boolean;
18
18
}
19
19
20
-
export const createRecord = async <K extends RecordType>(client: Client, options: CreateRecordOptions<K>) => {
21
-
const data = await ok(
22
-
client.post('com.atproto.repo.createRecord', {
23
-
input: options,
24
-
}),
25
-
);
20
+
export const createRecord = async <K extends RecordType>(rpc: XRPC, options: CreateRecordOptions<K>) => {
21
+
const { data } = await rpc.call('com.atproto.repo.createRecord', { data: options });
26
22
27
23
return data;
28
24
};
29
25
30
26
export interface PutRecordOptions<K extends RecordType> {
31
-
repo: At.Did;
27
+
repo: At.DID;
32
28
collection: K;
33
29
rkey: string;
34
30
record: Records[K];
35
31
swapCommit?: string;
36
-
swapRecord?: At.Cid | null;
32
+
swapRecord?: At.CID | null;
37
33
validate?: boolean;
38
34
}
39
35
40
-
export const putRecord = async <K extends RecordType>(client: Client, options: PutRecordOptions<K>) => {
41
-
const data = await ok(
42
-
client.post('com.atproto.repo.putRecord', {
43
-
input: options,
44
-
}),
45
-
);
36
+
export const putRecord = async <K extends RecordType>(rpc: XRPC, options: PutRecordOptions<K>) => {
37
+
const { data } = await rpc.call('com.atproto.repo.putRecord', { data: options });
46
38
47
39
return data;
48
40
};
49
41
50
42
export interface DeleteRecordOptions<K extends RecordType> {
51
-
repo: At.Did;
43
+
repo: At.DID;
52
44
collection: K;
53
45
rkey: string;
54
46
swapCommit?: string;
55
47
swapRecord?: string;
56
48
}
57
49
58
-
export const deleteRecord = async <K extends RecordType>(client: Client, options: DeleteRecordOptions<K>) => {
59
-
await ok(
60
-
client.post('com.atproto.repo.deleteRecord', {
61
-
input: options,
62
-
}),
63
-
);
50
+
export const deleteRecord = async <K extends RecordType>(rpc: XRPC, options: DeleteRecordOptions<K>) => {
51
+
await rpc.call('com.atproto.repo.deleteRecord', {
52
+
data: options,
53
+
});
64
54
};
65
55
66
56
export interface GetRecordOptions<K extends RecordType> {
67
-
signal?: AbortSignal;
68
-
repo: At.Did;
57
+
repo: At.DID;
69
58
collection: K;
70
59
rkey: string;
71
60
cid?: string;
···
76
65
}
77
66
78
67
export const getRecord = async <K extends RecordType>(
79
-
client: Client,
68
+
rpc: XRPC,
80
69
options: GetRecordOptions<K>,
81
70
): Promise<GetRecordOutput<Records[K]>> => {
82
-
const data = await ok(
83
-
client.get('com.atproto.repo.getRecord', {
84
-
signal: options.signal,
85
-
params: {
86
-
repo: options.repo,
87
-
collection: options.collection,
88
-
rkey: options.rkey,
89
-
cid: options.cid,
90
-
},
91
-
}),
92
-
);
71
+
const { data } = await rpc.get('com.atproto.repo.getRecord', {
72
+
params: options,
73
+
});
93
74
94
75
return data as any;
95
76
};
96
77
97
78
export interface ListRecordsOptions<K extends RecordType> {
98
79
signal?: AbortSignal;
99
-
repo: At.Did;
80
+
repo: At.DID;
100
81
collection: K;
101
82
cursor?: string;
102
83
limit?: number;
···
104
85
105
86
export interface ListRecordsOutput<T> extends ComAtprotoRepoListRecords.Output {
106
87
cursor?: string;
107
-
records: { cid: At.Cid; uri: At.ResourceUri; value: T }[];
88
+
records: { cid: At.CID; uri: At.Uri; value: T }[];
108
89
}
109
90
110
91
export const listRecords = async <K extends RecordType>(
111
-
client: Client,
92
+
rpc: XRPC,
112
93
options: ListRecordsOptions<K>,
113
94
): Promise<ListRecordsOutput<Records[K]>> => {
114
-
const data = await ok(
115
-
client.get('com.atproto.repo.listRecords', {
116
-
signal: options.signal,
117
-
params: {
118
-
repo: options.repo,
119
-
collection: options.collection,
120
-
limit: options.limit,
121
-
cursor: options.cursor,
122
-
},
123
-
}),
124
-
);
95
+
const { data } = await rpc.get('com.atproto.repo.listRecords', {
96
+
signal: options.signal,
97
+
params: {
98
+
repo: options.repo,
99
+
collection: options.collection,
100
+
limit: options.limit,
101
+
cursor: options.cursor,
102
+
},
103
+
});
125
104
126
105
return data as any;
127
106
};
-4
src/basa-env.d.ts
-4
src/basa-env.d.ts
···
57
57
58
58
interface Queries {
59
59
'x.basa.describeServer': {
60
-
response: { json: XBasaDescribeServer.Output };
61
-
/** @deprecated */
62
60
output: XBasaDescribeServer.Output;
63
61
};
64
62
'x.basa.translate': {
65
63
params: XBasaTranslate.Params;
66
-
response: { json: XBasaTranslate.Output };
67
-
/** @deprecated */
68
64
output: XBasaTranslate.Output;
69
65
};
70
66
}
+2
-2
src/components/bookmarks/bookmark-feed-item.tsx
+2
-2
src/components/bookmarks/bookmark-feed-item.tsx
···
6
6
import { getModerationUI } from '~/api/moderation';
7
7
import { ContextContentList } from '~/api/moderation/constants';
8
8
import { moderatePost } from '~/api/moderation/entities/post';
9
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
9
+
import { parseAtUri } from '~/api/types/at-uri';
10
10
11
11
import { history } from '~/globals/navigation';
12
12
···
40
40
41
41
const shadow = usePostShadow(post);
42
42
43
-
const uri = parseCanonicalResourceUri(post.uri);
43
+
const uri = parseAtUri(post.uri);
44
44
const authorHref = `/${author.did}`;
45
45
const href = `/${author.did}/${uri.rkey}`;
46
46
+8
-11
src/components/composer/composer-input.tsx
+8
-11
src/components/composer/composer-input.tsx
···
12
12
createSignal,
13
13
} from 'solid-js';
14
14
15
-
import { ok } from '@atcute/client';
16
15
import type { AppBskyActorDefs } from '@atcute/client/lexicons';
17
16
18
17
import { safeUrlParse } from '~/api/utils/strings';
···
63
62
const onChange = props.onChange;
64
63
const onSubmit = props.onSubmit;
65
64
66
-
const { client } = useAgent();
65
+
const { rpc } = useAgent();
67
66
68
67
const [inputCursor, setInputCursor] = createSignal<number>();
69
68
const [menuSelection, setMenuSelection] = createSignal<number>();
···
136
135
const MATCH_LIMIT = 5;
137
136
138
137
if (type === Suggestion.MENTION) {
139
-
const data = await ok(
140
-
client.get('app.bsky.actor.searchActorsTypeahead', {
141
-
params: {
142
-
q: match.query,
143
-
limit: MATCH_LIMIT,
144
-
},
145
-
}),
146
-
);
138
+
const response = await rpc.get('app.bsky.actor.searchActorsTypeahead', {
139
+
params: {
140
+
q: match.query,
141
+
limit: MATCH_LIMIT,
142
+
},
143
+
});
147
144
148
-
return data.actors.map((item) => ({ type: Suggestion.MENTION, data: item }));
145
+
return response.data.actors.map((item) => ({ type: Suggestion.MENTION, data: item }));
149
146
}
150
147
151
148
assert(false, `expected match`);
+3
-3
src/components/composer/embeds/link-embed.tsx
+3
-3
src/components/composer/embeds/link-embed.tsx
···
1
1
import { Match, Switch, onCleanup } from 'solid-js';
2
2
3
-
import type { AppBskyEmbedExternal, At } from '@atcute/client/lexicons';
3
+
import type { AppBskyEmbedExternal } from '@atcute/client/lexicons';
4
4
5
5
import { createLinkMetaQuery } from '~/api/queries/composer';
6
6
···
38
38
{(state) => {
39
39
const meta = state.external;
40
40
41
-
let thumbUrl: At.GenericUri | undefined;
41
+
let thumbUrl: string | undefined;
42
42
if (meta.thumb) {
43
43
const did = currentAccount!.did;
44
44
const cid = meta.thumb.ref.$link;
···
85
85
title: data.title,
86
86
description: data.description,
87
87
uri: data.uri,
88
-
thumb: thumbUrl as At.GenericUri,
88
+
thumb: thumbUrl,
89
89
},
90
90
};
91
91
+2
-3
src/components/composer/gifs/gif-search-dialog.tsx
+2
-3
src/components/composer/gifs/gif-search-dialog.tsx
···
1
1
import { For, Match, Switch, createSignal } from 'solid-js';
2
2
3
-
import type { At } from '@atcute/client/lexicons';
4
3
import { chunked } from '@mary/array-fns';
5
4
6
5
import { type Gif, createGifSearchQuery } from '~/api/queries/composer-gif';
···
111
110
export default GifSearchDialog;
112
111
113
112
export interface GifMedia {
114
-
embedUrl: At.GenericUri;
113
+
embedUrl: string;
115
114
alt: string;
116
115
ratio: { width: number; height: number };
117
116
···
129
128
const [, id, file] = /\/([^/]+?AAAAC)\/([^/]+?)\.gif\/?$/.exec(url)!;
130
129
131
130
return {
132
-
embedUrl: (url + `?hh=${dimensions[1]}&ww=${dimensions[0]}`) as At.GenericUri,
131
+
embedUrl: url + `?hh=${dimensions[1]}&ww=${dimensions[0]}`,
133
132
alt: gif.content_description,
134
133
ratio: { width: dimensions[0], height: dimensions[1] },
135
134
+57
-73
src/components/composer/lib/api.ts
+57
-73
src/components/composer/lib/api.ts
···
1
1
import { nanoid } from 'nanoid/non-secure';
2
2
3
-
import { Client, ClientResponseError, ok, simpleFetchHandler } from '@atcute/client';
3
+
import { XRPC, XRPCError, simpleFetchHandler } from '@atcute/client';
4
4
import type {
5
5
AppBskyEmbedImages,
6
6
AppBskyEmbedRecord,
···
26
26
import { uploadBlob } from '~/api/queries/blob';
27
27
import type { LinkMeta } from '~/api/queries/composer';
28
28
import { resolveHandle } from '~/api/queries/handle';
29
-
import { makeAtUri, parseCanonicalResourceUri } from '~/api/types/at-uri';
29
+
import { makeAtUri, parseAtUri } from '~/api/types/at-uri';
30
30
import { isDid } from '~/api/types/identity';
31
31
import { getRecord } from '~/api/utils/records';
32
32
import { trimRichText } from '~/api/utils/richtext';
···
57
57
let cidPromise: Promise<typeof import('./cid')>;
58
58
59
59
export const publish = async ({ agent, queryClient, state, onLog: log }: PublishOptions) => {
60
-
const client = agent.client;
60
+
const rpc = agent.rpc;
61
61
const did = agent.did!;
62
62
63
63
const now = new Date();
···
74
74
queryKey: ['post', replyUri],
75
75
staleTime: 30_000,
76
76
async queryFn(ctx) {
77
-
const uri = parseCanonicalResourceUri(replyUri);
77
+
const uri = parseAtUri(replyUri);
78
78
79
-
let did: At.Did;
79
+
let did: At.DID;
80
80
if (isDid(uri.repo)) {
81
81
did = uri.repo;
82
82
} else {
83
-
did = await resolveHandle(client, uri.repo, ctx.signal);
83
+
did = await resolveHandle(rpc, uri.repo, ctx.signal);
84
84
}
85
85
86
-
const data = await ok(
87
-
client.get('app.bsky.feed.getPosts', {
88
-
signal: ctx.signal,
89
-
params: {
90
-
uris: [makeAtUri(did, uri.collection, uri.rkey)],
91
-
},
92
-
}),
93
-
);
86
+
const { data } = await rpc.get('app.bsky.feed.getPosts', {
87
+
signal: ctx.signal,
88
+
params: {
89
+
uris: [makeAtUri(did, uri.collection, uri.rkey)],
90
+
},
91
+
});
94
92
95
93
const post = data.posts[0];
96
94
···
115
113
}
116
114
117
115
if (state.redraftUri) {
118
-
const uri = parseCanonicalResourceUri(state.redraftUri);
116
+
const uri = parseAtUri(state.redraftUri);
119
117
120
118
writes.push({
121
119
$type: 'com.atproto.repo.applyWrites#delete',
···
228
226
229
227
log?.(`Posting`);
230
228
231
-
await ok(
232
-
client.post('com.atproto.repo.applyWrites', {
233
-
input: {
234
-
repo: did,
235
-
writes: writes,
236
-
},
237
-
}),
238
-
);
229
+
await rpc.call('com.atproto.repo.applyWrites', {
230
+
data: {
231
+
repo: did,
232
+
writes: writes,
233
+
},
234
+
});
239
235
240
236
if (state.redraftUri) {
241
237
updatePostShadow(queryClient, state.redraftUri, { deleted: true });
···
302
298
303
299
switch (source.type) {
304
300
case 'local': {
305
-
const uploaded = await uploadBlob(client, source.blob);
301
+
const uploaded = await uploadBlob(rpc, source.blob);
306
302
307
303
return {
308
304
image: uploaded,
···
343
339
344
340
const blob = source.blob;
345
341
346
-
const videoClient = new Client({
347
-
handler: simpleFetchHandler({ service: 'https://video.bsky.app' }),
348
-
});
342
+
const videoRpc = new XRPC({ handler: simpleFetchHandler({ service: 'https://video.bsky.app' }) });
349
343
350
344
// Get upload limit status
351
345
{
···
366
360
// GET https://porcini.us-east.host.bsky.network/xrpc/chat.bsky.convo.getLog
367
361
// atproto-proxy: did:web:api.bsky.chat#bsky_chat
368
362
//
369
-
const tokenData = await ok(
370
-
client.get('com.atproto.server.getServiceAuth', {
371
-
params: {
372
-
aud: 'did:web:video.bsky.app',
373
-
lxm: 'app.bsky.video.getUploadLimits',
374
-
},
375
-
}),
376
-
);
363
+
const { data: tokenData } = await rpc.get('com.atproto.server.getServiceAuth', {
364
+
params: {
365
+
aud: 'did:web:video.bsky.app',
366
+
lxm: 'app.bsky.video.getUploadLimits',
367
+
},
368
+
});
377
369
378
-
const data = await ok(
379
-
videoClient.get('app.bsky.video.getUploadLimits', {
380
-
headers: {
381
-
authorization: `Bearer ${tokenData.token}`,
382
-
},
383
-
}),
384
-
);
370
+
const { data } = await videoRpc.get('app.bsky.video.getUploadLimits', {
371
+
headers: {
372
+
authorization: `Bearer ${tokenData.token}`,
373
+
},
374
+
});
385
375
386
376
if (!data.canUpload) {
387
377
let message = data.message || `You've reached the limit on video uploads`;
···
418
408
419
409
// Create an access token *to the PDS*, allowing the video service to
420
410
// upload the final blobs to our repository on our behalf.
421
-
const tokenData = await ok(
422
-
client.get('com.atproto.server.getServiceAuth', {
423
-
params: {
424
-
// `did:web:porcini.us-east.host.bsky.network`
425
-
aud: `did:web:${new URL(session.info.aud).host}`,
426
-
lxm: 'com.atproto.repo.uploadBlob',
427
-
exp: Date.now() / 1000 + 60 * 30, // 30 minutes
428
-
},
429
-
}),
430
-
);
411
+
const { data: tokenData } = await rpc.get('com.atproto.server.getServiceAuth', {
412
+
params: {
413
+
// `did:web:porcini.us-east.host.bsky.network`
414
+
aud: `did:web:${new URL(session.info.aud).host}`,
415
+
lxm: 'com.atproto.repo.uploadBlob',
416
+
exp: Date.now() / 1000 + 60 * 30, // 30 minutes
417
+
},
418
+
});
431
419
432
420
jobId = await new Promise((resolve, reject) => {
433
421
const xhr = new XMLHttpRequest();
···
487
475
let status: AppBskyVideoDefs.JobStatus;
488
476
489
477
try {
490
-
const data = await ok(
491
-
videoClient.get('app.bsky.video.getJobStatus', {
492
-
params: {
493
-
jobId: jobId,
494
-
},
495
-
}),
496
-
);
478
+
const { data } = await videoRpc.get('app.bsky.video.getJobStatus', {
479
+
params: {
480
+
jobId: jobId,
481
+
},
482
+
});
497
483
498
484
status = data.jobStatus;
499
485
pollFailures = 0;
···
560
546
561
547
log?.(`Uploading GIF thumbnail`);
562
548
const compressed = await compressPostImage(gifBlob);
563
-
const blob = await uploadBlob(client, compressed.blob);
549
+
const blob = await uploadBlob(rpc, compressed.blob);
564
550
565
551
thumbBlob = blob;
566
552
}
···
598
584
log?.(`Uploading link thumbnail`);
599
585
600
586
const compressed = await compressPostImage(thumb);
601
-
const blob = await uploadBlob(client, compressed.blob);
587
+
const blob = await uploadBlob(rpc, compressed.blob);
602
588
603
589
thumbBlob = blob;
604
590
}
···
683
669
if (type === 'link' || type === 'autolink') {
684
670
facets.push({
685
671
index: index,
686
-
features: [{ $type: 'app.bsky.richtext.facet#link', uri: token.url as At.GenericUri }],
672
+
features: [{ $type: 'app.bsky.richtext.facet#link', uri: token.url }],
687
673
});
688
674
} else if (type === 'mention') {
689
-
const handle = token.handle as At.Handle;
675
+
const handle = token.handle;
690
676
691
677
if (handle === 'handle.invalid') {
692
678
throw new InvalidHandleError(handle);
693
679
}
694
680
695
681
try {
696
-
const data = await ok(
697
-
client.get('com.atproto.identity.resolveHandle', {
698
-
params: {
699
-
handle: handle,
700
-
},
701
-
}),
702
-
);
682
+
const response = await rpc.get('com.atproto.identity.resolveHandle', {
683
+
params: {
684
+
handle: handle,
685
+
},
686
+
});
703
687
704
-
const did = data.did;
688
+
const did = response.data.did;
705
689
706
690
if (!hasSilent) {
707
691
facets.push({
···
715
699
});
716
700
}
717
701
} catch (err) {
718
-
if (err instanceof ClientResponseError && err.error === 'InvalidRequest') {
702
+
if (err instanceof XRPCError && err.kind === 'InvalidRequest') {
719
703
throw new InvalidHandleError(handle);
720
704
}
721
705
···
727
711
features: [{ $type: 'app.bsky.richtext.facet#tag', tag: token.name }],
728
712
});
729
713
} else if (type === 'emote') {
730
-
const { value } = await getRecord(client, {
714
+
const { value } = await getRecord(rpc, {
731
715
repo: did,
732
716
collection: 'blue.moji.collection.item',
733
717
rkey: token.name,
+6
-8
src/components/composer/lib/link-detection.ts
+6
-8
src/components/composer/lib/link-detection.ts
···
1
-
import type { At } from '@atcute/client/lexicons';
2
-
3
1
import { makeAtUri } from '~/api/types/at-uri';
4
2
import { safeUrlParse } from '~/api/utils/strings';
5
3
···
17
15
18
16
if (host === 'bsky.app') {
19
17
if ((match = BSKY_POST_LINK_RE.exec(path))) {
20
-
const didOrHandle = match[1] as At.Identifier;
18
+
const handleOrDid = match[1];
21
19
const rkey = match[2];
22
20
23
21
return {
24
22
type: 'quote',
25
-
uri: makeAtUri(didOrHandle, 'app.bsky.feed.post', rkey),
23
+
uri: makeAtUri(handleOrDid, 'app.bsky.feed.post', rkey),
26
24
origin: false,
27
25
};
28
26
}
29
27
30
28
if ((match = BSKY_FEED_LINK_RE.exec(path))) {
31
-
const didOrHandle = match[1] as At.Identifier;
29
+
const handleOrDid = match[1];
32
30
const rkey = match[2];
33
31
34
32
return {
35
33
type: 'feed',
36
-
uri: makeAtUri(didOrHandle, 'app.bsky.feed.generator', rkey),
34
+
uri: makeAtUri(handleOrDid, 'app.bsky.feed.generator', rkey),
37
35
};
38
36
}
39
37
40
38
if ((match = BSKY_LIST_LINK_RE.exec(path))) {
41
-
const didOrHandle = match[1] as At.Identifier;
39
+
const handleOrDid = match[1];
42
40
const rkey = match[2];
43
41
44
42
return {
45
43
type: 'list',
46
-
uri: makeAtUri(didOrHandle, 'app.bsky.graph.list', rkey),
44
+
uri: makeAtUri(handleOrDid, 'app.bsky.graph.list', rkey),
47
45
};
48
46
}
49
47
}
+2
-2
src/components/embeds/embed.tsx
+2
-2
src/components/embeds/embed.tsx
···
2
2
3
3
import { type ModerationCause, getModerationUI } from '~/api/moderation';
4
4
import { ContextContentMedia } from '~/api/moderation/constants';
5
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
5
+
import { parseAtUri } from '~/api/types/at-uri';
6
6
import { type MediaEmbedView, type RecordEmbedView, unwrapEmbedView } from '~/api/utils/bluesky/embed-view';
7
7
8
8
import ContentHider from '../moderation/content-hider';
···
100
100
}
101
101
102
102
if (type === 'app.bsky.embed.record#viewNotFound' || type === 'app.bsky.embed.record#viewBlocked') {
103
-
const uri = parseCanonicalResourceUri(embed.uri);
103
+
const uri = parseAtUri(embed.uri);
104
104
105
105
if (type === 'app.bsky.embed.record#viewBlocked' && uri.collection === 'app.bsky.feed.post') {
106
106
return <QuoteBlockedEmbed embed={embed} uri={uri} />;
+2
-2
src/components/embeds/feed-embed.tsx
+2
-2
src/components/embeds/feed-embed.tsx
···
5
5
6
6
import { moderateGeneric } from '~/api/moderation/entities/generic';
7
7
import { precacheFeed } from '~/api/queries-cache/feed-precache';
8
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
8
+
import { parseAtUri } from '~/api/types/at-uri';
9
9
10
10
import { inject } from '~/lib/states/singleton';
11
11
import ModerationService from '~/lib/states/singletons/moderation';
···
26
26
27
27
const moderation = createMemo(() => moderateGeneric(feed, feed.creator.did, moderationOptions()));
28
28
29
-
const href = `/${feed.creator.did}/feeds/${parseCanonicalResourceUri(feed.uri).rkey}`;
29
+
const href = `/${feed.creator.did}/feeds/${parseAtUri(feed.uri).rkey}`;
30
30
31
31
return (
32
32
<a
+2
-2
src/components/embeds/quote-blocked-embed.tsx
+2
-2
src/components/embeds/quote-blocked-embed.tsx
···
1
1
import type { AppBskyEmbedRecord } from '@atcute/client/lexicons';
2
2
3
-
import type { ParsedCanonicalResourceUri } from '~/api/types/at-uri';
3
+
import type { ParsedAtUri } from '~/api/types/at-uri';
4
4
5
5
import BlockOutlinedIcon from '../icons-central/block-outline';
6
6
7
7
export interface QuoteBlockedEmbedProps {
8
8
embed: AppBskyEmbedRecord.ViewBlocked;
9
-
uri: ParsedCanonicalResourceUri;
9
+
uri: ParsedAtUri;
10
10
}
11
11
12
12
const QuoteBlockedEmbed = ({ embed, uri }: QuoteBlockedEmbedProps) => {
+2
-2
src/components/embeds/quote-embed.tsx
+2
-2
src/components/embeds/quote-embed.tsx
···
5
5
import { getModerationUI } from '~/api/moderation';
6
6
import { ContextContentMedia } from '~/api/moderation/constants';
7
7
import { moderateQuote } from '~/api/moderation/entities/quote';
8
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
8
+
import { parseAtUri } from '~/api/types/at-uri';
9
9
import { unwrapMediaEmbedView } from '~/api/utils/bluesky/embed-view';
10
10
11
11
import { inject } from '~/lib/states/singleton';
···
32
32
const record = quote.value as AppBskyFeedPost.Record;
33
33
const author = quote.author;
34
34
35
-
const uri = parseCanonicalResourceUri(quote.uri);
35
+
const uri = parseAtUri(quote.uri);
36
36
const href = `/${author.did}/${uri.rkey}`;
37
37
38
38
const text = record.text.trim();
+2
-4
src/components/error-view.tsx
+2
-4
src/components/error-view.tsx
···
1
1
import { Match, Switch } from 'solid-js';
2
2
3
-
import { ClientResponseError } from '@atcute/client';
3
+
import { XRPCError } from '@atcute/client';
4
4
import type { AppBskyActorDefs } from '@atcute/client/lexicons';
5
5
import { TokenRefreshError } from '@atcute/oauth-browser-client';
6
6
import { useQueryClient } from '@mary/solid-query';
···
65
65
export default ErrorView;
66
66
67
67
const isInvalidTokenError = (err: unknown): boolean => {
68
-
return (
69
-
err instanceof TokenRefreshError || (err instanceof ClientResponseError && err.error === 'invalid_token')
70
-
);
68
+
return err instanceof TokenRefreshError || (err instanceof XRPCError && err.kind === 'invalid_token');
71
69
};
+3
-3
src/components/explore/my-feeds-section.tsx
+3
-3
src/components/explore/my-feeds-section.tsx
···
1
1
import { For, createMemo } from 'solid-js';
2
2
3
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
3
+
import { parseAtUri } from '~/api/types/at-uri';
4
4
5
5
import type { SavedFeed } from '~/lib/preferences/account';
6
6
import { useSession } from '~/lib/states/session';
···
55
55
let href: string;
56
56
switch (type) {
57
57
case 'generator': {
58
-
const uri = parseCanonicalResourceUri(feed.info.uri);
58
+
const uri = parseAtUri(feed.info.uri);
59
59
href = `/${uri.repo}/feeds/${uri.rkey}`;
60
60
break;
61
61
}
62
62
case 'list': {
63
-
const uri = parseCanonicalResourceUri(feed.info.uri);
63
+
const uri = parseAtUri(feed.info.uri);
64
64
href = `/${uri.repo}/lists/${uri.rkey}`;
65
65
break;
66
66
}
+6
-2
src/components/feeds/feed-info-prompt.tsx
+6
-2
src/components/feeds/feed-info-prompt.tsx
···
1
1
import type { AppBskyFeedDefs } from '@atcute/client/lexicons';
2
2
3
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
3
+
import { parseAtUri } from '~/api/types/at-uri';
4
4
5
5
import { useModalContext } from '~/globals/modals';
6
6
7
7
import { formatLong } from '~/lib/intl/number';
8
8
9
9
import Avatar from '~/components/avatar';
10
+
import Button from '~/components/button';
11
+
import Divider from '~/components/divider';
10
12
import * as Prompt from '~/components/prompt';
11
13
14
+
import HeartOutlinedIcon from '../icons-central/heart-outline';
15
+
12
16
export interface FeedInfoPromptProps {
13
17
/** Expected to be static */
14
18
feed: AppBskyFeedDefs.GeneratorView;
···
20
24
const feed = props.feed;
21
25
22
26
const authorUrl = `/${feed.creator.did}`;
23
-
const feedUrl = `${authorUrl}/feeds/${parseCanonicalResourceUri(feed.uri).rkey}`;
27
+
const feedUrl = `${authorUrl}/feeds/${parseAtUri(feed.uri).rkey}`;
24
28
25
29
return (
26
30
<Prompt.Container maxWidth="md">
+2
-2
src/components/feeds/feed-item.tsx
+2
-2
src/components/feeds/feed-item.tsx
···
5
5
6
6
import { moderateGeneric } from '~/api/moderation/entities/generic';
7
7
import { precacheFeed } from '~/api/queries-cache/feed-precache';
8
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
8
+
import { parseAtUri } from '~/api/types/at-uri';
9
9
10
10
import { history } from '~/globals/navigation';
11
11
···
27
27
const moderationOptions = inject(ModerationService);
28
28
29
29
const creator = item.creator;
30
-
const href = `/${creator.did}/feeds/${parseCanonicalResourceUri(item.uri).rkey}`;
30
+
const href = `/${creator.did}/feeds/${parseAtUri(item.uri).rkey}`;
31
31
32
32
const moderation = createMemo(() => moderateGeneric(item, creator.did, moderationOptions()));
33
33
+2
-2
src/components/lists/lib/utils.ts
+2
-2
src/components/lists/lib/utils.ts
···
1
1
import type { AppBskyGraphDefs } from '@atcute/client/lexicons';
2
2
3
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
3
+
import { parseAtUri } from '~/api/types/at-uri';
4
4
5
5
export const getListPurposeLabel = (purpose: AppBskyGraphDefs.ListPurpose) => {
6
6
switch (purpose) {
···
15
15
16
16
export const getListUrl = (list: AppBskyGraphDefs.ListView) => {
17
17
const did = list.creator.did;
18
-
const { rkey } = parseCanonicalResourceUri(list.uri);
18
+
const { rkey } = parseAtUri(list.uri);
19
19
20
20
switch (list.purpose) {
21
21
case 'app.bsky.graph.defs#curatelist':
+1
-1
src/components/main/sign-in-dialog.tsx
+1
-1
src/components/main/sign-in-dialog.tsx
+29
-32
src/components/moderation/block-account-prompt.tsx
+29
-32
src/components/moderation/block-account-prompt.tsx
···
3
3
import type { AppBskyActorDefs, At } from '@atcute/client/lexicons';
4
4
import { QueryClient, createMutation } from '@mary/solid-query';
5
5
6
-
import { type ProfileShadowView, updateProfileShadow, useProfileShadow } from '~/api/cache/profile-shadow';
6
+
import { updateProfileShadow, useProfileShadow } from '~/api/cache/profile-shadow';
7
7
import { createListMetaQuery } from '~/api/queries/list';
8
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
8
+
import { parseAtUri } from '~/api/types/at-uri';
9
9
import { getCurrentDate } from '~/api/utils/misc';
10
10
import { createRecord, deleteRecord } from '~/api/utils/records';
11
11
···
22
22
import * as Prompt from '../prompt';
23
23
24
24
export interface BlockAccountPrompt {
25
+
/** Expected to be static */
25
26
profile: AppBskyActorDefs.ProfileViewDetailed;
26
27
}
27
28
28
29
const BlockAccountPrompt = (props: BlockAccountPrompt) => {
29
-
const profile = () => props.profile;
30
-
const shadow = useProfileShadow(profile);
30
+
const profile = props.profile;
31
+
const shadow = useProfileShadow(props.profile);
31
32
32
33
return (
33
34
<Switch>
34
-
<Match when={profile().viewer?.blockingByList}>
35
-
<BlockedByList profile={profile()} shadow={shadow()} />
35
+
<Match when={/* @once */ profile.viewer?.blockingByList}>
36
+
<BlockedByList {...props} />
36
37
</Match>
37
38
38
39
<Match when={shadow().blockUri}>
39
-
<UnblockPrompt profile={profile()} shadow={shadow()} />
40
+
<UnblockPrompt {...props} />
40
41
</Match>
41
42
42
43
<Match when>
43
-
<BlockPrompt profile={profile()} shadow={shadow()} />
44
+
<BlockPrompt {...props} />
44
45
</Match>
45
46
</Switch>
46
47
);
···
48
49
49
50
export default BlockAccountPrompt;
50
51
51
-
interface BlockAccountPromptInnerProps extends BlockAccountPrompt {
52
-
shadow: ProfileShadowView;
53
-
}
54
-
55
-
const BlockPrompt = (props: BlockAccountPromptInnerProps) => {
52
+
const BlockPrompt = ({ profile }: BlockAccountPrompt) => {
56
53
const { close } = useModalContext();
57
54
58
55
const { currentAccount } = useSession();
59
-
const { client } = useAgent();
56
+
const { rpc } = useAgent();
60
57
61
58
const mutation = createMutation((queryClient) => ({
62
59
async mutationFn() {
63
-
return await createRecord(client, {
60
+
return await createRecord(rpc, {
64
61
repo: currentAccount!.did,
65
62
collection: 'app.bsky.graph.block',
66
63
record: {
67
64
$type: 'app.bsky.graph.block',
68
65
createdAt: getCurrentDate(),
69
-
subject: props.profile.did,
66
+
subject: profile.did,
70
67
},
71
68
});
72
69
},
73
70
onSuccess(ret) {
74
71
close();
75
-
updateProfileShadow(queryClient, props.profile.did, { blockUri: ret.uri });
72
+
updateProfileShadow(queryClient, profile.did, { blockUri: ret.uri });
76
73
77
74
setTimeout(() => {
78
-
resetThreadQueries(queryClient, props.profile.did);
75
+
resetThreadQueries(queryClient, profile.did);
79
76
}, 1_500);
80
77
},
81
78
onError() {
···
85
82
86
83
return (
87
84
<Prompt.Container maxWidth="md" disabled={mutation.isPending}>
88
-
<Prompt.Title>{/* @once */ `Block @${props.profile.handle.toLowerCase()}?`}</Prompt.Title>
85
+
<Prompt.Title>{/* @once */ `Block @${profile.handle.toLowerCase()}?`}</Prompt.Title>
89
86
90
87
<Prompt.Description>Here's what happens if you do:</Prompt.Description>
91
88
···
125
122
);
126
123
};
127
124
128
-
const UnblockPrompt = (props: BlockAccountPromptInnerProps) => {
125
+
const UnblockPrompt = ({ profile }: BlockAccountPrompt) => {
129
126
const { close } = useModalContext();
130
127
131
-
const { client } = useAgent();
128
+
const { rpc } = useAgent();
129
+
const { repo, rkey } = parseAtUri(profile.viewer!.blocking!);
132
130
133
131
const mutation = createMutation((queryClient) => ({
134
132
async mutationFn() {
135
-
const { repo, rkey } = parseCanonicalResourceUri(props.shadow.blockUri!);
136
-
137
-
return await deleteRecord(client, {
138
-
repo: repo as At.Did,
133
+
return await deleteRecord(rpc, {
134
+
repo: repo as At.DID,
139
135
collection: 'app.bsky.graph.block',
140
136
rkey: rkey,
141
137
});
142
138
},
143
139
onSuccess() {
144
140
close();
145
-
updateProfileShadow(queryClient, props.profile.did, { blockUri: undefined });
141
+
updateProfileShadow(queryClient, profile.did, { blockUri: undefined });
146
142
147
143
setTimeout(() => {
148
-
resetThreadQueries(queryClient, props.profile.did);
144
+
resetThreadQueries(queryClient, profile.did);
149
145
}, 1_500);
150
146
},
151
147
onError() {
···
155
151
156
152
return (
157
153
<Prompt.Container maxWidth="md" disabled={mutation.isPending}>
158
-
<Prompt.Title>{/* @once */ `Unblock @${props.profile.handle.toLowerCase()}?`}</Prompt.Title>
154
+
<Prompt.Title>{/* @once */ `Unblock @${profile.handle.toLowerCase()}?`}</Prompt.Title>
159
155
160
156
<Prompt.Description>Here's what happens if you do:</Prompt.Description>
161
157
···
195
191
);
196
192
};
197
193
198
-
const BlockedByList = (props: BlockAccountPromptInnerProps) => {
194
+
const BlockedByList = ({ profile }: BlockAccountPrompt) => {
199
195
const { close } = useModalContext();
200
196
201
-
const query = createListMetaQuery(() => props.profile.viewer!.blockingByList!.uri);
197
+
const listBasic = profile.viewer!.blockingByList!;
198
+
const query = createListMetaQuery(() => listBasic.uri);
202
199
203
200
return (
204
201
<Prompt.Container>
205
-
<Prompt.Title>{/* @once */ `Can't unblock @${props.profile.handle.toLowerCase()}`}</Prompt.Title>
202
+
<Prompt.Title>{/* @once */ `Can't unblock @${profile.handle.toLowerCase()}`}</Prompt.Title>
206
203
<Prompt.Description>
207
204
You've currently opted to block all accounts that are in this moderation list:
208
205
</Prompt.Description>
···
228
225
);
229
226
};
230
227
231
-
const resetThreadQueries = (queryClient: QueryClient, did: At.Did) => {
228
+
const resetThreadQueries = (queryClient: QueryClient, did: At.DID) => {
232
229
const substring = `at://${did}/`;
233
230
234
231
queryClient.resetQueries({
+12
-19
src/components/moderation/mute-account-prompt.tsx
+12
-19
src/components/moderation/mute-account-prompt.tsx
···
1
1
import { Match, Switch, onMount } from 'solid-js';
2
2
3
-
import { ok } from '@atcute/client';
4
3
import type { AppBskyActorDefs } from '@atcute/client/lexicons';
5
4
import { createMutation } from '@mary/solid-query';
6
5
···
50
49
const MutePrompt = ({ profile }: MuteAccountPromptProps) => {
51
50
const { close } = useModalContext();
52
51
53
-
const { client } = useAgent();
52
+
const { rpc } = useAgent();
54
53
55
54
const mutation = createMutation((queryClient) => ({
56
55
async mutationFn() {
57
-
await ok(
58
-
client.post('app.bsky.graph.muteActor', {
59
-
as: null,
60
-
input: {
61
-
actor: profile.did,
62
-
},
63
-
}),
64
-
);
56
+
await rpc.call('app.bsky.graph.muteActor', {
57
+
data: {
58
+
actor: profile.did,
59
+
},
60
+
});
65
61
},
66
62
onSuccess() {
67
63
close();
···
119
115
const UnmutePrompt = ({ profile }: MuteAccountPromptProps) => {
120
116
const { close } = useModalContext();
121
117
122
-
const { client } = useAgent();
118
+
const { rpc } = useAgent();
123
119
124
120
const mutation = createMutation((queryClient) => ({
125
121
async mutationFn() {
126
-
await ok(
127
-
client.post('app.bsky.graph.unmuteActor', {
128
-
as: null,
129
-
input: {
130
-
actor: profile.did,
131
-
},
132
-
}),
133
-
);
122
+
await rpc.call('app.bsky.graph.unmuteActor', {
123
+
data: {
124
+
actor: profile.did,
125
+
},
126
+
});
134
127
},
135
128
onSuccess() {
136
129
close();
+2
-2
src/components/notifications/notification-item.tsx
+2
-2
src/components/notifications/notification-item.tsx
···
19
19
NotificationSlice,
20
20
RepostNotificationSlice,
21
21
} from '~/api/queries/notification-feed';
22
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
22
+
import { parseAtUri } from '~/api/types/at-uri';
23
23
import { type MediaEmbedView, unwrapMediaEmbedView } from '~/api/utils/bluesky/embed-view';
24
24
25
25
import { history } from '~/globals/navigation';
···
95
95
}
96
96
} else {
97
97
const post = item.view;
98
-
const uri = parseCanonicalResourceUri(post.uri);
98
+
const uri = parseAtUri(post.uri);
99
99
href = `/${uri.repo}/${uri.rkey}`;
100
100
}
101
101
+7
-7
src/components/profiles/edit-profile-dialog.tsx
+7
-7
src/components/profiles/edit-profile-dialog.tsx
···
1
1
import { Show, createMemo, createSignal } from 'solid-js';
2
2
3
-
import { ClientResponseError } from '@atcute/client';
3
+
import { XRPCError } from '@atcute/client';
4
4
import type { AppBskyActorDefs, At } from '@atcute/client/lexicons';
5
5
import { createMutation } from '@mary/solid-query';
6
6
···
34
34
const EditProfileDialog = ({ profile }: EditProfileDialogProps) => {
35
35
const { close } = useModalContext();
36
36
37
-
const { client } = useAgent();
37
+
const { rpc } = useAgent();
38
38
const { currentAccount } = useSession();
39
39
40
40
const snapshot = {
···
78
78
let bannerPromise: Promise<At.Blob<any>> | undefined;
79
79
80
80
if ($avatar instanceof Blob) {
81
-
avatarPromise = compressProfileImage($avatar, 1000, 1000).then((res) => uploadBlob(client, res.blob));
81
+
avatarPromise = compressProfileImage($avatar, 1000, 1000).then((res) => uploadBlob(rpc, res.blob));
82
82
}
83
83
if ($banner instanceof Blob) {
84
-
bannerPromise = compressProfileImage($banner, 3000, 1000).then((res) => uploadBlob(client, res.blob));
84
+
bannerPromise = compressProfileImage($banner, 3000, 1000).then((res) => uploadBlob(rpc, res.blob));
85
85
}
86
86
87
87
let retriesRemaining = 3;
88
88
while (true) {
89
-
const existing = await getRecord(client, {
89
+
const existing = await getRecord(rpc, {
90
90
repo,
91
91
collection: 'app.bsky.actor.profile',
92
92
rkey: 'self',
···
114
114
}
115
115
116
116
try {
117
-
await putRecord(client, {
117
+
await putRecord(rpc, {
118
118
repo,
119
119
collection: 'app.bsky.actor.profile',
120
120
rkey: 'self',
···
122
122
swapRecord: existing?.cid ?? null,
123
123
});
124
124
} catch (err) {
125
-
if (err instanceof ClientResponseError && err.error === 'InvalidSwapError') {
125
+
if (err instanceof XRPCError && err.kind === 'InvalidSwapError') {
126
126
if (retriesRemaining--) {
127
127
continue;
128
128
}
+2
-2
src/components/profiles/profile-view-header.tsx
+2
-2
src/components/profiles/profile-view-header.tsx
···
6
6
import { getModerationUI } from '~/api/moderation';
7
7
import { ContextProfileMedia, ContextProfileView } from '~/api/moderation/constants';
8
8
import { moderateProfile } from '~/api/moderation/entities/profile';
9
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
9
+
import { parseAtUri } from '~/api/types/at-uri';
10
10
11
11
import { openModal } from '~/globals/modals';
12
12
···
259
259
<Match when={viewer()?.mutedByList}>
260
260
{(list) => {
261
261
const href = () => {
262
-
const uri = parseCanonicalResourceUri(list().uri);
262
+
const uri = parseAtUri(list().uri);
263
263
return `/${uri.repo}/lists/${uri.rkey}`;
264
264
};
265
265
+8
-11
src/components/search/suggestions/from-actor-autocompletion-view.tsx
+8
-11
src/components/search/suggestions/from-actor-autocompletion-view.tsx
···
1
1
import { For, Show, createMemo } from 'solid-js';
2
2
3
-
import { ok } from '@atcute/client';
4
3
import { createQuery, keepPreviousData } from '@mary/solid-query';
5
4
6
5
import { createProfileQuery } from '~/api/queries/profile';
···
18
17
}) => {
19
18
const { currentAccount } = useSession();
20
19
21
-
const { client } = useAgent();
20
+
const { rpc } = useAgent();
22
21
const isFocused = useIsFocused();
23
22
24
23
const match = createMemo(() => {
···
33
32
enabled: $match !== '' && isFocused(),
34
33
placeholderData: keepPreviousData,
35
34
async queryFn({ signal }) {
36
-
const data = await ok(
37
-
client.get('app.bsky.actor.searchActorsTypeahead', {
38
-
signal,
39
-
params: {
40
-
q: $match,
41
-
limit: 10,
42
-
},
43
-
}),
44
-
);
35
+
const { data } = await rpc.get('app.bsky.actor.searchActorsTypeahead', {
36
+
signal,
37
+
params: {
38
+
q: $match,
39
+
limit: 10,
40
+
},
41
+
});
45
42
46
43
return data;
47
44
},
+7
-10
src/components/settings/app-passwords/add-app-password-prompt.tsx
+7
-10
src/components/settings/app-passwords/add-app-password-prompt.tsx
···
1
1
import { Match, Switch, createSignal } from 'solid-js';
2
2
3
-
import { ok } from '@atcute/client';
4
3
import { createMutation } from '@mary/solid-query';
5
4
6
5
import { autofocusNode, modelChecked, modelText } from '~/lib/input-refs';
···
14
13
export interface AddAppPasswordPromptProps {}
15
14
16
15
const AddAppPasswordPrompt = ({}: AddAppPasswordPromptProps) => {
17
-
const { client } = useAgent();
16
+
const { rpc } = useAgent();
18
17
19
18
const [name, setName] = createSignal('');
20
19
const [privileged, setPrivileged] = createSignal(false);
···
23
22
const mutation = createMutation((queryClient) => {
24
23
return {
25
24
async mutationFn() {
26
-
const data = await ok(
27
-
client.post('com.atproto.server.createAppPassword', {
28
-
input: {
29
-
name: name().replace(/^\s+|\s+$|(?<=\s)\s+/g, ''),
30
-
privileged: privileged(),
31
-
},
32
-
}),
33
-
);
25
+
const { data } = await rpc.call('com.atproto.server.createAppPassword', {
26
+
data: {
27
+
name: name().replace(/^\s+|\s+$|(?<=\s)\s+/g, ''),
28
+
privileged: privileged(),
29
+
},
30
+
});
34
31
35
32
return data;
36
33
},
+5
-5
src/components/settings/bluemoji/add-emote-prompt.tsx
+5
-5
src/components/settings/bluemoji/add-emote-prompt.tsx
···
42
42
const AddEmotePrompt = ({ blob, onAdd }: AddEmotePromptProps) => {
43
43
const { close } = useModalContext();
44
44
45
-
const { client } = useAgent();
45
+
const { rpc } = useAgent();
46
46
const { currentAccount } = useSession();
47
47
48
48
const blobUrl = URL.createObjectURL(blob);
···
71
71
72
72
const { png_128, webp_128 } = await getCompressedEmotes(blob, cover() ? 'cover' : 'contain');
73
73
74
-
const orig_prom = uploadBlob(client, blob);
75
-
const png_prom = png_128 !== blob ? uploadBlob(client, png_128) : orig_prom;
76
-
const webp_prom = webp_128 !== blob ? uploadBlob(client, webp_128) : orig_prom;
74
+
const orig_prom = uploadBlob(rpc, blob);
75
+
const png_prom = png_128 !== blob ? uploadBlob(rpc, png_128) : orig_prom;
76
+
const webp_prom = webp_128 !== blob ? uploadBlob(rpc, webp_128) : orig_prom;
77
77
78
78
const [orig_blob, png_blob, webp_blob] = await Promise.all([orig_prom, png_prom, webp_prom]);
79
79
80
-
await createRecord(client, {
80
+
await createRecord(rpc, {
81
81
repo: currentAccount!.did,
82
82
collection: 'blue.moji.collection.item',
83
83
rkey: $name,
+3
-3
src/components/settings/content-translation/add-basa-instance-prompt.tsx
+3
-3
src/components/settings/content-translation/add-basa-instance-prompt.tsx
···
1
1
import { createMemo, createSignal } from 'solid-js';
2
2
3
-
import { Client, ok, simpleFetchHandler } from '@atcute/client';
3
+
import { XRPC, simpleFetchHandler } from '@atcute/client';
4
4
import { createMutation } from '@mary/solid-query';
5
5
6
6
import { formatQueryError } from '~/api/utils/error';
···
47
47
48
48
const mutation = createMutation(() => ({
49
49
async mutationFn({ url }: { url: URL }) {
50
-
const client = new Client({ handler: simpleFetchHandler({ service: url }) });
51
-
await ok(client.get('x.basa.describeServer'));
50
+
const rpc = new XRPC({ handler: simpleFetchHandler({ service: url }) });
51
+
await rpc.get('x.basa.describeServer', {});
52
52
},
53
53
onSuccess(_data, { url }) {
54
54
const href = url.toString();
+2
-2
src/components/threads/highlighted-post.tsx
+2
-2
src/components/threads/highlighted-post.tsx
···
7
7
import { ContextContentView } from '~/api/moderation/constants';
8
8
import { moderatePost } from '~/api/moderation/entities/post';
9
9
import { createPostLikeMutation, createPostRepostMutation } from '~/api/mutations/post';
10
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
10
+
import { parseAtUri } from '~/api/types/at-uri';
11
11
12
12
import { primarySystemLanguage } from '~/globals/locales';
13
13
import { openModal } from '~/globals/modals';
···
63
63
64
64
const shadow = usePostShadow(post);
65
65
66
-
const uri = parseCanonicalResourceUri(post().uri);
66
+
const uri = parseAtUri(post().uri);
67
67
const authorDid = author().did;
68
68
69
69
const isOurPost = currentAccount && authorDid === currentAccount.did;
+2
-2
src/components/threads/overflow-thread-item.tsx
+2
-2
src/components/threads/overflow-thread-item.tsx
···
1
1
import type { OverflowAncestorItem, OverflowDescendantItem } from '~/api/models/post-thread';
2
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
2
+
import { parseAtUri } from '~/api/types/at-uri';
3
3
4
4
import MoreHorizOutlinedIcon from '../icons-central/more-horiz-outline';
5
5
···
20
20
return (
21
21
<a
22
22
href={(() => {
23
-
const uri = parseCanonicalResourceUri(props.item.uri);
23
+
const uri = parseAtUri(props.item.uri);
24
24
return `/${uri.repo}/${uri.rkey}`;
25
25
})()}
26
26
class={
+3
-2
src/components/threads/post-thread-item.tsx
+3
-2
src/components/threads/post-thread-item.tsx
···
9
9
import { ContextContentList } from '~/api/moderation/constants';
10
10
import { moderatePost } from '~/api/moderation/entities/post';
11
11
import { precacheProfile } from '~/api/queries-cache/profile-precache';
12
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
12
+
import { parseAtUri } from '~/api/types/at-uri';
13
13
14
14
import { history } from '~/globals/navigation';
15
15
···
54
54
55
55
const shadow = usePostShadow(post);
56
56
57
-
const uri = parseCanonicalResourceUri(post().uri);
57
+
const uri = parseAtUri(post().uri);
58
58
const authorHref = `/${author().did}`;
59
59
const href = `/${author().did}/${uri.rkey}`;
60
60
···
113
113
<div class="min-w-0 grow py-3">
114
114
<PostMeta
115
115
post={/* @once */ post()}
116
+
context={(item() as PostDescendantItem).context}
116
117
href={href}
117
118
authorHref={authorHref}
118
119
gutterBottom
+12
-12
src/components/threads/post-translation.tsx
+12
-12
src/components/threads/post-translation.tsx
···
1
1
import { Match, Switch, createMemo, createSignal } from 'solid-js';
2
2
3
-
import { Client, ok, simpleFetchHandler } from '@atcute/client';
3
+
import { XRPC, simpleFetchHandler } from '@atcute/client';
4
4
import { sampleOne } from '@mary/array-fns';
5
5
import { createQuery } from '@mary/solid-query';
6
6
···
66
66
targetLang = found;
67
67
}
68
68
69
-
const client = new Client({ handler: simpleFetchHandler({ service: $instanceUrl! }) });
70
-
const data = await ok(
71
-
client.get('x.basa.translate', {
72
-
params: {
73
-
engine: 'google',
74
-
text: $text,
75
-
from: $source,
76
-
to: targetLang,
77
-
},
78
-
}),
79
-
);
69
+
console.log(targetLang);
70
+
71
+
const rpc = new XRPC({ handler: simpleFetchHandler({ service: $instanceUrl! }) });
72
+
const { data } = await rpc.get('x.basa.translate', {
73
+
params: {
74
+
engine: 'google',
75
+
text: $text,
76
+
from: $source,
77
+
to: targetLang,
78
+
},
79
+
});
80
80
81
81
return data;
82
82
},
+13
-54
src/components/timeline/delete-post-prompt.tsx
+13
-54
src/components/timeline/delete-post-prompt.tsx
···
1
-
import { ClientResponseError, ok } from '@atcute/client';
2
-
import type { AppBskyFeedDefs, AppBskyFeedPost } from '@atcute/client/lexicons';
1
+
import type { AppBskyFeedDefs } from '@atcute/client/lexicons';
3
2
import { useQueryClient } from '@mary/solid-query';
4
3
5
4
import { updatePostShadow } from '~/api/cache/post-shadow';
6
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
5
+
import { parseAtUri } from '~/api/types/at-uri';
6
+
import { deleteRecord } from '~/api/utils/records';
7
7
8
8
import { useAgent } from '~/lib/states/agent';
9
9
import { useSession } from '~/lib/states/session';
···
19
19
20
20
const DeletePostPrompt = ({ post, onPostDelete }: DeletePostPromptProps) => {
21
21
const { currentAccount } = useSession();
22
-
const { client } = useAgent();
22
+
const { rpc } = useAgent();
23
23
24
24
const queryClient = useQueryClient();
25
25
26
-
const onDelete = async () => {
27
-
const uri = parseCanonicalResourceUri(post.uri);
28
-
29
-
const write = await client.post('com.atproto.repo.applyWrites', {
30
-
input: {
31
-
repo: currentAccount!.did,
32
-
writes: [
33
-
{
34
-
$type: 'com.atproto.repo.applyWrites#delete',
35
-
collection: 'app.bsky.feed.post',
36
-
rkey: uri.rkey,
37
-
},
38
-
],
39
-
},
26
+
const onDelete = () => {
27
+
const uri = parseAtUri(post.uri);
28
+
const promise = deleteRecord(rpc, {
29
+
repo: currentAccount!.did,
30
+
collection: 'app.bsky.feed.post',
31
+
rkey: uri.rkey,
40
32
});
41
33
42
-
if (write.ok) {
43
-
updatePostShadow(queryClient, post.uri, { deleted: true });
44
-
onPostDelete?.();
45
-
return;
46
-
}
34
+
updatePostShadow(queryClient, post.uri, { deleted: true });
47
35
48
-
if (write.data.error !== 'InternalServerError') {
49
-
throw new ClientResponseError(write);
36
+
if (onPostDelete) {
37
+
promise.then(onPostDelete);
50
38
}
51
-
52
-
await ok(
53
-
client.post('com.atproto.repo.putRecord', {
54
-
input: {
55
-
repo: currentAccount!.did,
56
-
collection: 'app.bsky.feed.post',
57
-
rkey: uri.rkey,
58
-
validate: false,
59
-
record: {
60
-
$type: 'app.bsky.feed.post',
61
-
text: '',
62
-
createdAt: '1970-01-01T00:00:00.000Z',
63
-
} satisfies AppBskyFeedPost.Record,
64
-
},
65
-
}),
66
-
);
67
-
68
-
await ok(
69
-
client.post('com.atproto.repo.deleteRecord', {
70
-
input: {
71
-
repo: currentAccount!.did,
72
-
collection: 'app.bsky.feed.post',
73
-
rkey: uri.rkey,
74
-
},
75
-
}),
76
-
);
77
-
78
-
updatePostShadow(queryClient, post.uri, { deleted: true });
79
-
onPostDelete?.();
80
39
};
81
40
82
41
return (
+5
-5
src/components/timeline/pin-post-prompt.tsx
+5
-5
src/components/timeline/pin-post-prompt.tsx
···
1
1
import { Match, Show, Switch, batch } from 'solid-js';
2
2
3
-
import { ClientResponseError } from '@atcute/client';
3
+
import { XRPCError } from '@atcute/client';
4
4
import type { AppBskyFeedDefs } from '@atcute/client/lexicons';
5
5
import { createMutation } from '@mary/solid-query';
6
6
···
23
23
24
24
const PinPostPrompt = ({ post }: PinPostPromptProps) => {
25
25
const { currentAccount } = useSession();
26
-
const { client } = useAgent();
26
+
const { rpc } = useAgent();
27
27
28
28
const { close } = useModalContext();
29
29
···
40
40
updatePostShadow(queryClient, post.uri, { pinned: next });
41
41
42
42
while (true) {
43
-
const existing = await getRecord(client, {
43
+
const existing = await getRecord(rpc, {
44
44
repo,
45
45
collection: 'app.bsky.actor.profile',
46
46
rkey: 'self',
···
63
63
record.pinnedPost = next ? { uri: post.uri, cid: post.cid } : undefined;
64
64
65
65
try {
66
-
await putRecord(client, {
66
+
await putRecord(rpc, {
67
67
repo,
68
68
collection: 'app.bsky.actor.profile',
69
69
rkey: 'self',
···
71
71
swapRecord: existing?.cid ?? null,
72
72
});
73
73
} catch (err) {
74
-
if (err instanceof ClientResponseError && err.error === 'InvalidSwapError') {
74
+
if (err instanceof XRPCError && err.kind === 'InvalidSwapError') {
75
75
if (retriesRemaining--) {
76
76
continue;
77
77
}
+3
-3
src/components/timeline/post-feed-item.tsx
+3
-3
src/components/timeline/post-feed-item.tsx
···
9
9
import { ContextContentList } from '~/api/moderation/constants';
10
10
import { moderatePost } from '~/api/moderation/entities/post';
11
11
import { precacheProfile } from '~/api/queries-cache/profile-precache';
12
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
12
+
import { parseAtUri } from '~/api/types/at-uri';
13
13
14
14
import { history } from '~/globals/navigation';
15
15
···
36
36
/** Expected to be static */
37
37
item: UiTimelineItem;
38
38
highlighted?: boolean;
39
-
timelineDid?: At.Did;
39
+
timelineDid?: At.DID;
40
40
}
41
41
42
42
const PostFeedItem = ({ item, highlighted, timelineDid }: PostFeedItemProps) => {
···
55
55
56
56
const shadow = usePostShadow(post);
57
57
58
-
const uri = parseCanonicalResourceUri(post.uri);
58
+
const uri = parseAtUri(post.uri);
59
59
const authorHref = `/${authorDid}`;
60
60
const href = `/${authorDid}/${uri.rkey}`;
61
61
+23
-3
src/components/timeline/post-meta.tsx
+23
-3
src/components/timeline/post-meta.tsx
···
5
5
6
6
import { openModal } from '~/globals/modals';
7
7
8
+
import Avatar from '../avatar';
9
+
import HeartSolidIcon from '../icons-central/heart-solid';
8
10
import MoreHorizOutlinedIcon from '../icons-central/more-horiz-outline';
9
11
import TimeAgo from '../time-ago';
10
12
···
13
15
export interface PostMetaProps {
14
16
/** Expected to be static */
15
17
post: AppBskyFeedDefs.PostView;
18
+
context?: AppBskyFeedDefs.ThreadContext;
19
+
/** Expected to be static */
16
20
authorHref: string;
21
+
/** Expected to be static */
17
22
href: string;
18
-
compact?: boolean;
23
+
/** Expected to be static */
19
24
gutterBottom?: boolean;
20
25
onPostDelete?: () => void;
21
26
onPostRedraft?: () => void;
22
27
}
23
28
24
-
const PostMeta = ({ post, authorHref, href, gutterBottom, onPostDelete, onPostRedraft }: PostMetaProps) => {
29
+
const PostMeta = (props: PostMetaProps) => {
25
30
const queryClient = useQueryClient();
26
31
32
+
const post = props.post;
33
+
const href = props.href;
34
+
const authorHref = props.authorHref;
35
+
const gutterBottom = props.gutterBottom;
36
+
37
+
const onPostDelete = props.onPostDelete;
38
+
const onPostRedraft = props.onPostRedraft;
39
+
27
40
const author = post.author;
28
41
const indexedAt = post.indexedAt;
29
42
···
53
66
</TimeAgo>
54
67
</div>
55
68
56
-
<div class="shrink-0">
69
+
<div class="flex shrink-0 items-center gap-4">
70
+
{props.context?.rootAuthorLike && (
71
+
<div class="relative">
72
+
<Avatar type="user" size={null} class="h-[18px] w-[18px]" />
73
+
<HeartSolidIcon class="absolute -bottom-1 -left-1.5 h-[14px] w-[14px] stroke-background stroke-[3] text-p-red-600" />
74
+
</div>
75
+
)}
76
+
57
77
<button
58
78
onClick={(ev) => {
59
79
const anchor = ev.currentTarget;
+2
-2
src/components/timeline/post-reply-context.tsx
+2
-2
src/components/timeline/post-reply-context.tsx
···
2
2
3
3
import type { UiTimelineItem } from '~/api/models/timeline';
4
4
import { createProfileQuery } from '~/api/queries/profile';
5
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
5
+
import { parseAtUri } from '~/api/types/at-uri';
6
6
7
7
import { useSession } from '~/lib/states/session';
8
8
···
43
43
44
44
const raw = (post.record as AppBskyFeedPost.Record).reply?.parent;
45
45
if (raw) {
46
-
const did = parseCanonicalResourceUri(raw.uri).repo;
46
+
const did = parseAtUri(raw.uri).repo;
47
47
if (did === currentAccount?.did) {
48
48
return <div class="mb-0.5 flex text-de text-contrast-muted">Replying to you</div>;
49
49
}
+2
-2
src/components/timeline/revise-post-prompt.tsx
+2
-2
src/components/timeline/revise-post-prompt.tsx
···
1
1
import type { AppBskyFeedDefs, AppBskyFeedPost, AppBskyFeedThreadgate } from '@atcute/client/lexicons';
2
2
3
-
import { parseCanonicalResourceUri } from '~/api/types/at-uri';
3
+
import { parseAtUri } from '~/api/types/at-uri';
4
4
import { type MediaEmbed, type RecordEmbed, unwrapEmbed } from '~/api/utils/bluesky/embed';
5
5
import { serializeRichText } from '~/api/utils/richtext-stringify';
6
6
···
133
133
const ref = embed.record;
134
134
135
135
const uri = ref.uri;
136
-
const { collection } = parseCanonicalResourceUri(uri);
136
+
const { collection } = parseAtUri(uri);
137
137
138
138
switch (collection) {
139
139
case 'app.bsky.feed.post': {
+1
-1
src/components/timeline/timeline-list.tsx
+1
-1
src/components/timeline/timeline-list.tsx
+1
-1
src/lib/atproto/labeler.ts
+1
-1
src/lib/atproto/labeler.ts
+2
-4
src/lib/preferences/account.ts
+2
-4
src/lib/preferences/account.ts
···
28
28
29
29
export interface ModerationLabelerPreferences {
30
30
updated: number;
31
-
definitions: Record<At.Did, ModerationLabeler>;
31
+
definitions: Record<At.DID, ModerationLabeler>;
32
32
}
33
33
34
34
export type SavedFeed = SavedGeneratorFeed | SavedListFeed | SavedSearchFeed;
···
53
53
}
54
54
55
55
export interface PersistedThreadgate {
56
-
allow?: Array<
57
-
{ type: 'following' } | { type: 'follower' } | { type: 'mention' } | { type: 'list'; uri: At.ResourceUri }
58
-
>;
56
+
allow?: Array<{ type: 'following' } | { type: 'mention' } | { type: 'list'; uri: At.Uri }>;
59
57
}
60
58
61
59
export interface PersistedPostgate {
+2
-2
src/lib/preferences/sessions.ts
+2
-2
src/lib/preferences/sessions.ts
···
2
2
3
3
export interface SessionPreferenceSchema {
4
4
$version: 1;
5
-
active: At.Did | undefined;
5
+
active: At.DID | undefined;
6
6
accounts: AccountData[];
7
7
}
8
8
9
9
export interface AccountData {
10
10
/** Account DID */
11
-
readonly did: At.Did;
11
+
readonly did: At.DID;
12
12
profile: AppBskyActorDefs.ProfileViewDetailed;
13
13
}
-4
src/lib/preferences/snippets/composer.ts
-4
src/lib/preferences/snippets/composer.ts
···
11
11
switch (rule.$type) {
12
12
case 'app.bsky.feed.threadgate#followingRule':
13
13
return { type: 'following' };
14
-
case 'app.bsky.feed.threadgate#followerRule':
15
-
return { type: 'follower' };
16
14
case 'app.bsky.feed.threadgate#mentionRule':
17
15
return { type: 'mention' };
18
16
case 'app.bsky.feed.threadgate#listRule':
···
28
26
switch (rule.type) {
29
27
case 'following':
30
28
return { $type: 'app.bsky.feed.threadgate#followingRule' };
31
-
case 'follower':
32
-
return { $type: 'app.bsky.feed.threadgate#followerRule' };
33
29
case 'mention':
34
30
return { $type: 'app.bsky.feed.threadgate#mentionRule' };
35
31
case 'list':
+5
-5
src/lib/states/agent.tsx
+5
-5
src/lib/states/agent.tsx
···
1
1
import { type JSX, type ParentProps, createContext, createMemo, useContext } from 'solid-js';
2
2
3
-
import { Client, simpleFetchHandler } from '@atcute/client';
3
+
import { XRPC, simpleFetchHandler } from '@atcute/client';
4
4
import type { At } from '@atcute/client/lexicons';
5
5
import type { OAuthUserAgent } from '@atcute/oauth-browser-client';
6
6
import { QueryClient, QueryClientProvider } from '@mary/solid-query';
···
14
14
import { useSession } from './session';
15
15
16
16
export interface AgentContext {
17
-
did: At.Did | null;
18
-
client: Client;
17
+
did: At.DID | null;
18
+
rpc: XRPC;
19
19
handler: OAuthUserAgent | null;
20
20
persister: ReturnType<typeof createQueryPersister>;
21
21
}
···
32
32
return {
33
33
did: currentAccount.did,
34
34
handler: currentAccount.agent ?? null,
35
-
client: currentAccount.client,
35
+
rpc: currentAccount.rpc,
36
36
persister: createQueryPersister({ name: `queryCache-${currentAccount.did}` }),
37
37
};
38
38
}
···
40
40
return {
41
41
did: null,
42
42
handler: null,
43
-
client: new Client({ handler: simpleFetchHandler({ service: DEFAULT_APPVIEW_URL }) }),
43
+
rpc: new XRPC({ handler: simpleFetchHandler({ service: DEFAULT_APPVIEW_URL }) }),
44
44
persister: createQueryPersister({ name: `queryCache-public` }),
45
45
};
46
46
});
+16
-16
src/lib/states/session.tsx
+16
-16
src/lib/states/session.tsx
···
10
10
useContext,
11
11
} from 'solid-js';
12
12
13
-
import { Client, ClientResponseError, type FetchHandler, type FetchHandlerObject } from '@atcute/client';
13
+
import { type FetchHandler, type FetchHandlerObject, XRPC, XRPCError } from '@atcute/client';
14
14
import type { At } from '@atcute/client/lexicons';
15
15
import { OAuthUserAgent, deleteStoredSession, getSession } from '@atcute/oauth-browser-client';
16
16
import { mapDefined } from '@mary/array-fns';
···
27
27
import { assert } from '../utils/invariant';
28
28
29
29
export interface CurrentAccountState {
30
-
readonly did: At.Did;
30
+
readonly did: At.DID;
31
31
readonly data: AccountData;
32
32
readonly preferences: PerAccountPreferenceSchema;
33
33
34
-
readonly client: Client;
34
+
readonly rpc: XRPC;
35
35
readonly agent: OAuthUserAgent | undefined;
36
36
readonly _cleanup: () => void;
37
37
}
···
40
40
readonly currentAccount: CurrentAccountState | undefined;
41
41
42
42
getAccounts(): AccountData[];
43
-
resumeSession(did: At.Did): Promise<void>;
44
-
removeAccount(did: At.Did): Promise<void>;
43
+
resumeSession(did: At.DID): Promise<void>;
44
+
removeAccount(did: At.DID): Promise<void>;
45
45
46
46
logout(): Promise<void>;
47
47
}
···
60
60
};
61
61
62
62
const createAccountState = (
63
-
did: At.Did,
63
+
did: At.DID,
64
64
session: OAuthUserAgent | undefined,
65
-
client: Client,
65
+
rpc: XRPC,
66
66
): CurrentAccountState => {
67
67
return createRoot((cleanup): CurrentAccountState => {
68
68
const preferences = createAccountPreferences(did);
···
75
75
76
76
const labelers = createMemo((): Labeler[] => {
77
77
return Object.entries(preferences.moderation.labelers).map(([did, info]): Labeler => {
78
-
return { did: did as At.Did, redact: info.redact };
78
+
return { did: did as At.DID, redact: info.redact };
79
79
});
80
80
});
81
81
82
82
// A bit of a hack, but works right now.
83
-
client.handler = attachLabelerHeaders(client.handler, labelers);
83
+
rpc.handle = attachLabelerHeaders(rpc.handle, labelers);
84
84
85
85
createEffect(() => {
86
86
const signal = abortable();
···
129
129
return $data;
130
130
},
131
131
132
-
client: client,
132
+
rpc: rpc,
133
133
agent: session,
134
134
_cleanup: cleanup,
135
135
};
···
144
144
getAccounts(): AccountData[] {
145
145
return sessions.accounts;
146
146
},
147
-
async resumeSession(did: At.Did): Promise<void> {
147
+
async resumeSession(did: At.DID): Promise<void> {
148
148
const account = sessions.accounts.find((acc) => acc.did === did);
149
149
if (!account) {
150
150
return;
···
181
181
// Dirty hack to account for the fact that we aren't dumping the user
182
182
// directly to the login modal.
183
183
handler = () => {
184
-
throw new ClientResponseError({ status: 400, data: { error: 'invalid_token' } });
184
+
throw new XRPCError(400, { kind: 'invalid_token' });
185
185
};
186
186
}
187
187
188
-
const rpc = new Client({ handler });
188
+
const rpc = new XRPC({ handler });
189
189
190
190
signal.throwIfAborted();
191
191
···
197
197
});
198
198
},
199
199
200
-
async removeAccount(did: At.Did): Promise<void> {
200
+
async removeAccount(did: At.DID): Promise<void> {
201
201
const $state = untrack(state);
202
202
const isLoggedIn = $state !== undefined && $state.did === did;
203
203
···
246
246
return session;
247
247
};
248
248
249
-
const createAccountPreferences = (did: At.Did) => {
249
+
const createAccountPreferences = (did: At.DID) => {
250
250
const key = `account-${did}`;
251
251
return createReactiveLocalStorage<PerAccountPreferenceSchema>(key, (version, prev) => {
252
252
if (version === 0) {
···
282
282
},
283
283
displayName: 'Popular With Friends',
284
284
description: '',
285
-
avatar: '' as At.GenericUri,
285
+
avatar: '',
286
286
indexedAt: '0000-00-00T00:00:00.000Z',
287
287
},
288
288
},
+11
-30
src/lib/states/singleton.tsx
+11
-30
src/lib/states/singleton.tsx
···
1
-
import { type ParentProps, createContext, createRoot, getOwner, useContext } from 'solid-js';
1
+
import { type ParentProps, createContext, getOwner, runWithOwner, useContext } from 'solid-js';
2
2
3
3
import { assert } from '../utils/invariant';
4
4
5
-
interface Singleton<T> {
6
-
n: string;
7
-
c: () => T;
8
-
}
9
-
10
-
interface SingletonContext {
11
-
inject<T>(singleton: Singleton<T>): T;
5
+
export interface SingletonContext {
6
+
inject<T>(construct: () => T): T;
12
7
}
13
8
14
9
const Context = createContext<SingletonContext>();
15
10
16
11
export const SingletonProvider = (props: ParentProps) => {
17
12
const owner = getOwner();
18
-
const registry = new Map<
19
-
string,
20
-
{
21
-
c: any;
22
-
v: any;
23
-
d: () => void;
24
-
}
25
-
>();
13
+
const instances = new Map<() => any, any>();
26
14
27
15
const context: SingletonContext = {
28
-
inject({ n: name, c: construct }) {
29
-
let registered = registry.get(name);
30
-
if (registered === undefined || registered.c !== construct) {
31
-
registered?.d();
32
-
registered = createRoot((dispose) => ({ c: construct, d: dispose, v: construct() }), owner);
33
-
34
-
registry.set(name, registered);
16
+
inject(construct) {
17
+
let instance = instances.get(construct);
18
+
if (instance === undefined) {
19
+
instances.set(construct, (instance = runWithOwner(owner, construct)));
35
20
}
36
21
37
-
return registered.v;
22
+
return instance;
38
23
},
39
24
};
40
25
41
26
return <Context.Provider value={context}>{props.children}</Context.Provider>;
42
27
};
43
28
44
-
export const define = <T,>(name: string, construct: () => T): Singleton<T> => {
45
-
return { n: name, c: construct };
46
-
};
47
-
48
-
export const inject = <T,>(singleton: Singleton<T>): T => {
29
+
export const inject = <T,>(construct: () => T): T => {
49
30
const context = useContext(Context);
50
31
assert(context !== undefined, `Expected inject to be called under <SingletonProvider>`);
51
32
52
-
return context.inject(singleton);
33
+
return context.inject(construct);
53
34
};
+2
-3
src/lib/states/singletons/bookmarks.ts
+2
-3
src/lib/states/singletons/bookmarks.ts
···
5
5
import { assert } from '~/lib/utils/invariant';
6
6
7
7
import { useSession } from '../session';
8
-
import { define } from '../singleton';
9
8
10
-
const BookmarksService = define('bookmarks', () => {
9
+
const BookmarksService = () => {
11
10
const { currentAccount } = useSession();
12
11
13
12
let promise: Promise<IDBPDatabase<BookmarkDBSchema>> | undefined;
···
52
51
})());
53
52
},
54
53
};
55
-
});
54
+
};
56
55
57
56
export default BookmarksService;
+24
-24
src/lib/states/singletons/moderation.ts
+24
-24
src/lib/states/singletons/moderation.ts
···
1
1
import { createMemo } from 'solid-js';
2
2
import { unwrap } from 'solid-js/store';
3
3
4
-
import { ok } from '@atcute/client';
5
-
import type { At } from '@atcute/client/lexicons';
4
+
import type { AppBskyLabelerDefs, At } from '@atcute/client/lexicons';
6
5
import { mapDefined } from '@mary/array-fns';
7
-
import { createBatchedFetch } from '@mary/batch-fetch';
8
-
import { type QueryFunctionContext as QC, createQueries } from '@mary/solid-query';
6
+
import { createQueries } from '@mary/solid-query';
9
7
10
8
import { BLUESKY_MODERATION_DID } from '~/api/defaults';
11
9
import type { ModerationLabeler, ModerationOptions, ModerationPreferences } from '~/api/moderation';
12
10
import { interpretLabelerDefinition } from '~/api/moderation/labeler';
13
11
12
+
import { createBatchedFetch } from '~/lib/utils/batch-fetch';
13
+
14
14
import { useAgent } from '../agent';
15
15
import { useSession } from '../session';
16
-
import { define } from '../singleton';
17
16
18
-
const ModerationService = define('moderation', () => {
19
-
const { client, persister } = useAgent();
17
+
type Labeler = AppBskyLabelerDefs.LabelerViewDetailed;
18
+
19
+
const ModerationService = () => {
20
+
const { rpc, persister } = useAgent();
20
21
const { currentAccount } = useSession();
21
22
22
23
const modPreferences = createMemo((): ModerationPreferences => {
···
38
39
return currentAccount.preferences.moderation;
39
40
});
40
41
41
-
const fetchLabeler = createBatchedFetch<At.Did, ModerationLabeler>({
42
+
const fetchLabeler = createBatchedFetch<At.DID, At.DID, ModerationLabeler>({
42
43
limit: 20,
43
44
timeout: 1,
44
-
idFromResource: (labeler) => labeler.did,
45
-
async fetch(dids, signal) {
46
-
const data = await ok(
47
-
client.get('app.bsky.labeler.getServices', {
48
-
signal,
49
-
params: {
50
-
dids: dids,
51
-
detailed: true,
52
-
},
53
-
}),
54
-
);
45
+
idFromQuery: (query) => query,
46
+
idFromData: (data) => data.did,
47
+
async fetch(dids) {
48
+
const { data } = await rpc.get('app.bsky.labeler.getServices', {
49
+
params: {
50
+
dids: dids,
51
+
detailed: true,
52
+
},
53
+
});
55
54
56
-
const views = data.views.filter((view) => view.$type === 'app.bsky.labeler.defs#labelerViewDetailed');
55
+
const views = data.views as Labeler[];
56
+
57
57
return views.map((view) => interpretLabelerDefinition(view));
58
58
},
59
59
});
···
61
61
const labelerDefs = createQueries(() => {
62
62
return {
63
63
queries: Object.keys(modPreferences().labelers).map((_did) => {
64
-
const did = _did as At.Did;
64
+
const did = _did as At.DID;
65
65
66
66
return {
67
67
queryKey: ['labeler-definition', did],
68
-
queryFn: ({ signal }: QC) => fetchLabeler(did, signal),
68
+
queryFn: () => fetchLabeler(did),
69
69
staleTime: 21600000, // 6 hours
70
70
gcTime: 86400000, // 24 hours
71
71
refetchOnWindowFocus: true,
···
76
76
const defs = mapDefined(results, (result) => result.data);
77
77
const fields = Object.fromEntries(defs.map((def) => [def.did, def]));
78
78
79
-
return fields as Record<At.Did, ModerationLabeler>;
79
+
return fields as Record<At.DID, ModerationLabeler>;
80
80
},
81
81
};
82
82
});
···
90
90
});
91
91
92
92
return modOptions;
93
-
});
93
+
};
94
94
95
95
export default ModerationService;
+106
src/lib/utils/batch-fetch.ts
+106
src/lib/utils/batch-fetch.ts
···
1
+
// we would sometimes rely on fetching multiple individual posts, and it would
2
+
// be preferrable if it can be batched.
3
+
4
+
type Promisable<T> = T | Promise<T>;
5
+
6
+
export type QueryId = string | number;
7
+
8
+
export interface BatchedFetchOptions<Query, Id extends QueryId, Data> {
9
+
limit: number;
10
+
timeout: number;
11
+
fetch: (queries: Query[]) => Promisable<Data[]>;
12
+
key?: (query: Query) => string | number;
13
+
idFromQuery: (query: Query) => Id;
14
+
idFromData: (data: Data) => Id;
15
+
}
16
+
17
+
interface BatchedFetchMap<Query, Id, Data> {
18
+
key: string | number | undefined;
19
+
timeout: any;
20
+
queries: Query[];
21
+
pending: Map<Id, PromiseWithResolvers<Data>>;
22
+
}
23
+
24
+
export class ResourceMissingError extends Error {
25
+
name = 'ResourceMissingError';
26
+
}
27
+
28
+
/*#__NO_SIDE_EFFECTS__*/
29
+
export const createBatchedFetch = <Query, Id extends QueryId, Data>(
30
+
options: BatchedFetchOptions<Query, Id, Data>,
31
+
) => {
32
+
const { limit, timeout, fetch, key: _key, idFromData, idFromQuery } = options;
33
+
34
+
let curr: BatchedFetchMap<Query, Id, Data> | undefined;
35
+
36
+
return (query: Query): Promise<Data> => {
37
+
const id = idFromQuery(query);
38
+
const key = _key?.(query);
39
+
40
+
let map = curr;
41
+
42
+
if (!map || map.queries.length >= limit || map.key !== key) {
43
+
map = curr = {
44
+
key,
45
+
timeout: undefined,
46
+
queries: [],
47
+
pending: new Map(),
48
+
};
49
+
}
50
+
51
+
let deferred = map.pending.get(id);
52
+
53
+
if (!deferred) {
54
+
deferred = Promise.withResolvers<Data>();
55
+
56
+
map.queries.push(query);
57
+
map.pending.set(id, deferred);
58
+
}
59
+
60
+
clearTimeout(map.timeout);
61
+
62
+
map.timeout = setTimeout(() => {
63
+
if (curr === map) {
64
+
curr = undefined;
65
+
}
66
+
67
+
perform(map!, fetch, idFromData);
68
+
}, timeout);
69
+
70
+
return deferred.promise;
71
+
};
72
+
};
73
+
74
+
const perform = async <Query, Id extends QueryId, Data>(
75
+
map: BatchedFetchMap<Query, Id, Data>,
76
+
fetch: (queries: Query[]) => Promisable<Data[]>,
77
+
idFromData: (data: Data) => Id,
78
+
) => {
79
+
const queries = map.queries;
80
+
const pending = map.pending;
81
+
82
+
let errored = false;
83
+
84
+
try {
85
+
const dataset = await fetch(queries);
86
+
87
+
for (const data of dataset) {
88
+
const id = idFromData(data);
89
+
const deferred = pending.get(id);
90
+
91
+
deferred?.resolve(data);
92
+
}
93
+
} catch (error) {
94
+
errored = true;
95
+
96
+
for (const deferred of pending.values()) {
97
+
deferred.reject(error);
98
+
}
99
+
} finally {
100
+
if (!errored) {
101
+
for (const deferred of pending.values()) {
102
+
deferred.reject(new ResourceMissingError());
103
+
}
104
+
}
105
+
}
106
+
};
+6
-12
src/lib/utils/invariant.ts
+6
-12
src/lib/utils/invariant.ts
···
1
-
export const assert: {
2
-
(condition: any, message?: string): asserts condition;
3
-
} = (condition, message): asserts condition => {
1
+
export function assert(condition: any, message?: string): asserts condition {
4
2
if (import.meta.env.DEV && !condition) {
5
3
throw new Error(`Assertion failed` + (message ? `: ${message}` : ``));
6
4
}
7
-
};
5
+
}
8
6
9
-
export const assertStrong: {
10
-
(condition: any, message?: string): asserts condition;
11
-
} = (condition, message): asserts condition => {
7
+
export function assertStrong(condition: any, message?: string): asserts condition {
12
8
if (!condition) {
13
9
if (import.meta.env.DEV) {
14
10
throw new Error(`Assertion failed` + (message ? `: ${message}` : ``));
···
16
12
17
13
throw new Error(`Assertion failed`);
18
14
}
19
-
};
15
+
}
20
16
21
-
export const assertUnreachable: {
22
-
(_: never, message?: string): never;
23
-
} = (_, message) => {
17
+
export function assertUnreachable(_: never, message?: string): never {
24
18
assertStrong(false, message);
25
-
};
19
+
}
+5
-1
src/main.tsx
+5
-1
src/main.tsx
···
39
39
},
40
40
});
41
41
42
+
localStorage.removeItem('oauth-dpopNonces');
43
+
localStorage.removeItem('oauth-sessions');
44
+
localStorage.removeItem('oauth-states');
45
+
42
46
const InnerApp = () => {
43
47
const [ready, setReady] = createSignal(false);
44
48
const session = useSession();
45
49
46
50
onMount(() => {
47
-
const resumeAccount = async (did: At.Did | undefined) => {
51
+
const resumeAccount = async (did: At.DID | undefined) => {
48
52
try {
49
53
if (did) {
50
54
await session.resumeSession(did);
+2
-2
src/views/bluemoji-emotes.tsx
+2
-2
src/views/bluemoji-emotes.tsx
···
45
45
openModal(() => <AddEmotePrompt blob={blob} onAdd={() => {}} />);
46
46
};
47
47
48
-
const { client } = useAgent();
48
+
const { rpc } = useAgent();
49
49
const { currentAccount } = useSession();
50
50
51
51
const query = createInfiniteQuery(() => ({
52
52
queryKey: ['bluemoji', 'emotes'],
53
53
async queryFn(ctx) {
54
-
return listRecords(client, {
54
+
return listRecords(rpc, {
55
55
repo: currentAccount!.did,
56
56
collection: 'blue.moji.collection.item',
57
57
limit: 100,
+7
-9
src/views/oauth-callback.tsx
+7
-9
src/views/oauth-callback.tsx
···
1
1
import { Match, Switch, createResource } from 'solid-js';
2
2
3
-
import { Client, ok } from '@atcute/client';
3
+
import { XRPC } from '@atcute/client';
4
4
import {
5
5
AuthorizationError,
6
6
OAuthResponseError,
···
27
27
const did = session.info.sub;
28
28
29
29
const agent = new OAuthUserAgent(session);
30
-
const client = new Client({ handler: agent });
30
+
const rpc = new XRPC({ handler: agent });
31
31
32
-
const profile = await ok(
33
-
client.get('app.bsky.actor.getProfile', {
34
-
params: {
35
-
actor: did,
36
-
},
37
-
}),
38
-
);
32
+
const { data: profile } = await rpc.get('app.bsky.actor.getProfile', {
33
+
params: {
34
+
actor: did,
35
+
},
36
+
});
39
37
40
38
{
41
39
// Update UI preferences
+1
-6
src/views/post-likes.tsx
+1
-6
src/views/post-likes.tsx
···
1
-
import type { At } from '@atcute/client/lexicons';
2
-
3
1
import { createSubjectLikersQuery } from '~/api/queries/subject-likers';
4
2
import { makeAtUri } from '~/api/types/at-uri';
5
3
···
12
10
import VirtualItem from '~/components/virtual-item';
13
11
14
12
const PostLikesPage = () => {
15
-
const { did, rkey } = useParams<{
16
-
did: At.Did;
17
-
rkey: At.RecordKey;
18
-
}>();
13
+
const { did, rkey } = useParams();
19
14
20
15
const uri = makeAtUri(did, 'app.bsky.feed.post', rkey);
21
16
const likers = createSubjectLikersQuery(() => uri);
+1
-6
src/views/post-quotes.tsx
+1
-6
src/views/post-quotes.tsx
···
1
-
import type { At } from '@atcute/client/lexicons';
2
-
3
1
import { createPostQuotesQuery } from '~/api/queries/post-quotes';
4
2
import { makeAtUri } from '~/api/types/at-uri';
5
3
···
11
9
import VirtualItem from '~/components/virtual-item';
12
10
13
11
const PostQuotesPage = () => {
14
-
const { did, rkey } = useParams<{
15
-
did: At.Did;
16
-
rkey: At.RecordKey;
17
-
}>();
12
+
const { did, rkey } = useParams();
18
13
19
14
const uri = makeAtUri(did, 'app.bsky.feed.post', rkey);
20
15
const quotes = createPostQuotesQuery(() => uri);
+1
-6
src/views/post-reposts.tsx
+1
-6
src/views/post-reposts.tsx
···
1
-
import type { At } from '@atcute/client/lexicons';
2
-
3
1
import { createSubjectRepostersQuery } from '~/api/queries/subject-reposters';
4
2
import { makeAtUri } from '~/api/types/at-uri';
5
3
···
12
10
import VirtualItem from '~/components/virtual-item';
13
11
14
12
const PostLikesPage = () => {
15
-
const { did, rkey } = useParams<{
16
-
did: At.Did;
17
-
rkey: At.RecordKey;
18
-
}>();
13
+
const { did, rkey } = useParams();
19
14
20
15
const uri = makeAtUri(did, 'app.bsky.feed.post', rkey);
21
16
const reposters = createSubjectRepostersQuery(() => uri);
+7
-10
src/views/post-thread.tsx
+7
-10
src/views/post-thread.tsx
···
1
1
import { For, Match, Switch, createEffect, createMemo, createSignal } from 'solid-js';
2
2
3
-
import { ClientResponseError } from '@atcute/client';
3
+
import { XRPCError } from '@atcute/client';
4
4
import type { AppBskyFeedDefs, AppBskyFeedPost, At, Brand } from '@atcute/client/lexicons';
5
5
import { useQueryClient } from '@mary/solid-query';
6
6
···
38
38
import VirtualItem from '~/components/virtual-item';
39
39
40
40
const PostThreadPage = () => {
41
-
const { didOrHandle, rkey } = useParams<{
42
-
didOrHandle: At.Identifier;
43
-
rkey: At.RecordKey;
44
-
}>();
41
+
const { didOrHandle, rkey } = useParams();
45
42
46
43
const queryClient = useQueryClient();
47
44
···
78
75
79
76
<Switch>
80
77
<Match when={query.error} keyed>
81
-
{(err) => {
82
-
if (err instanceof ClientResponseError) {
83
-
if (err.error === 'NotFound') {
78
+
{(error) => {
79
+
if (error instanceof XRPCError) {
80
+
if (error.kind === 'NotFound') {
84
81
return (
85
82
<div class="px-4 py-3">
86
83
<div class="rounded-md border border-outline p-3">
···
91
88
}
92
89
}
93
90
94
-
return <ErrorView error={err} onRetry={() => query.refetch()} />;
91
+
return <ErrorView error={error} onRetry={() => query.refetch()} />;
95
92
}}
96
93
</Match>
97
94
···
105
102
const data = accessor();
106
103
const type = data.$type;
107
104
108
-
let did: At.Did | undefined;
105
+
let did: At.DID | undefined;
109
106
110
107
if (type === 'app.bsky.feed.defs#threadViewPost') {
111
108
did = data.post.author.did;
+1
-6
src/views/profile-curation-list.tsx
+1
-6
src/views/profile-curation-list.tsx
···
1
1
import { Match, Switch } from 'solid-js';
2
2
3
-
import type { At } from '@atcute/client/lexicons';
4
-
5
3
import { createListMetaQuery } from '~/api/queries/list';
6
4
import { makeAtUri } from '~/api/types/at-uri';
7
5
···
13
11
import TimelineList from '~/components/timeline/timeline-list';
14
12
15
13
const CurationListPage = () => {
16
-
const { did, rkey } = useParams<{
17
-
did: At.Did;
18
-
rkey: At.RecordKey;
19
-
}>();
14
+
const { did, rkey } = useParams();
20
15
21
16
const uri = makeAtUri(did, 'app.bsky.graph.list', rkey);
22
17
const meta = createListMetaQuery(() => uri);
+1
-5
src/views/profile-feed.tsx
+1
-5
src/views/profile-feed.tsx
···
1
1
import { Match, Show, Switch } from 'solid-js';
2
2
3
-
import type { At } from '@atcute/client/lexicons';
4
3
import { useQueryClient } from '@mary/solid-query';
5
4
6
5
import { createFeedMetaQuery } from '~/api/queries/feed';
···
24
23
import TimelineList from '~/components/timeline/timeline-list';
25
24
26
25
const FeedPage = () => {
27
-
const { didOrHandle, rkey } = useParams<{
28
-
didOrHandle: At.Identifier;
29
-
rkey: At.RecordKey;
30
-
}>();
26
+
const { didOrHandle, rkey } = useParams();
31
27
32
28
const queryClient = useQueryClient();
33
29
+1
-5
src/views/profile-feeds.tsx
+1
-5
src/views/profile-feeds.tsx
···
1
-
import type { At } from '@atcute/client/lexicons';
2
-
3
1
import { createProfileQuery } from '~/api/queries/profile';
4
2
import { createProfileFeedsQuery } from '~/api/queries/profile-feeds';
5
3
···
11
9
import VirtualItem from '~/components/virtual-item';
12
10
13
11
const ProfileFeedsPage = () => {
14
-
const { did } = useParams<{
15
-
did: At.Did;
16
-
}>();
12
+
const { did } = useParams();
17
13
18
14
const feeds = createProfileFeedsQuery(() => did);
19
15
const profile = createProfileQuery(() => did);
+1
-5
src/views/profile-followers.tsx
+1
-5
src/views/profile-followers.tsx
···
1
1
import { createMemo } from 'solid-js';
2
2
3
-
import type { At } from '@atcute/client/lexicons';
4
-
5
3
import { createProfileFollowersQuery } from '~/api/queries/profile-followers';
6
4
7
5
import { useParams, useTitle } from '~/lib/navigation/router';
···
13
11
import VirtualItem from '~/components/virtual-item';
14
12
15
13
const ProfileFollowersPage = () => {
16
-
const { did } = useParams<{
17
-
did: At.Did;
18
-
}>();
14
+
const { did } = useParams();
19
15
20
16
const followers = createProfileFollowersQuery(() => did);
21
17
const subject = createMemo(() => followers.data?.pages[0].subject);
+1
-5
src/views/profile-following.tsx
+1
-5
src/views/profile-following.tsx
···
1
1
import { createMemo } from 'solid-js';
2
2
3
-
import type { At } from '@atcute/client/lexicons';
4
-
5
3
import { createProfileFollowingQuery } from '~/api/queries/profile-following';
6
4
7
5
import { useParams, useTitle } from '~/lib/navigation/router';
···
13
11
import VirtualItem from '~/components/virtual-item';
14
12
15
13
const ProfileFollowingPage = () => {
16
-
const { did } = useParams<{
17
-
did: At.Did;
18
-
}>();
14
+
const { did } = useParams();
19
15
20
16
const following = createProfileFollowingQuery(() => did);
21
17
const subject = createMemo(() => following.data?.pages[0].subject);
+1
-5
src/views/profile-known-followers.tsx
+1
-5
src/views/profile-known-followers.tsx
···
1
1
import { createMemo } from 'solid-js';
2
2
3
-
import type { At } from '@atcute/client/lexicons';
4
-
5
3
import { createProfileKnownFollowersQuery } from '~/api/queries/profile-known-followers';
6
4
7
5
import { useParams, useTitle } from '~/lib/navigation/router';
···
13
11
import VirtualItem from '~/components/virtual-item';
14
12
15
13
const ProfileKnownFollowersPage = () => {
16
-
const { did } = useParams<{
17
-
did: At.Did;
18
-
}>();
14
+
const { did } = useParams();
19
15
20
16
const followers = createProfileKnownFollowersQuery(() => did);
21
17
const subject = createMemo(() => followers.data?.pages[0].subject);
+4
-4
src/views/profile-labels.tsx
+4
-4
src/views/profile-labels.tsx
···
49
49
const { did } = useParams();
50
50
const { currentAccount } = useSession();
51
51
52
-
const query = createLabelerMetaQuery(() => did as At.Did);
52
+
const query = createLabelerMetaQuery(() => did as At.DID);
53
53
54
54
const config = createMemo(() => {
55
55
if (!currentAccount) {
···
57
57
}
58
58
59
59
const preferences = currentAccount.preferences;
60
-
return preferences.moderation.labelers[did as At.Did];
60
+
return preferences.moderation.labelers[did as At.DID];
61
61
});
62
62
63
63
useTitle(() => {
···
98
98
const preferences = currentAccount!.preferences;
99
99
const labelers = preferences.moderation.labelers;
100
100
101
-
labelers[did as At.Did] = {
101
+
labelers[did as At.DID] = {
102
102
labels: {},
103
103
privileged: false,
104
104
redact: false,
···
140
140
const preferences = currentAccount!.preferences;
141
141
const labelers = preferences.moderation.labelers;
142
142
143
-
delete labelers[did as At.Did];
143
+
delete labelers[did as At.DID];
144
144
}}
145
145
/>
146
146
));
+1
-5
src/views/profile-list.tsx
+1
-5
src/views/profile-list.tsx
···
1
1
import { Match, Switch } from 'solid-js';
2
2
3
-
import type { At } from '@atcute/client/lexicons';
4
3
import { useQueryClient } from '@mary/solid-query';
5
4
6
5
import { createListMetaQuery } from '~/api/queries/list';
···
16
15
import * as Page from '~/components/page';
17
16
18
17
const ListStubPage = () => {
19
-
const { didOrHandle, rkey } = useParams<{
20
-
didOrHandle: At.Identifier;
21
-
rkey: At.RecordKey;
22
-
}>();
18
+
const { didOrHandle, rkey } = useParams();
23
19
24
20
const queryClient = useQueryClient();
25
21
+1
-5
src/views/profile-lists.tsx
+1
-5
src/views/profile-lists.tsx
···
1
-
import type { At } from '@atcute/client/lexicons';
2
-
3
1
import { createProfileQuery } from '~/api/queries/profile';
4
2
import { createProfileListsQuery } from '~/api/queries/profile-lists';
5
3
···
10
8
import PagedList from '~/components/paged-list';
11
9
12
10
const ProfileListsPage = () => {
13
-
const { did } = useParams<{
14
-
did: At.Did;
15
-
}>();
11
+
const { did } = useParams();
16
12
17
13
const lists = createProfileListsQuery(() => did);
18
14
const profile = createProfileQuery(() => did);
+3
-6
src/views/profile-moderation-list.tsx
+3
-6
src/views/profile-moderation-list.tsx
···
1
1
import { Match, Show, Switch, createMemo } from 'solid-js';
2
2
3
-
import type { AppBskyGraphDefs, At } from '@atcute/client/lexicons';
3
+
import type { AppBskyGraphDefs } from '@atcute/client/lexicons';
4
4
import { useQueryClient } from '@mary/solid-query';
5
5
6
6
import { ContextContentMedia } from '~/api/moderation/constants';
···
29
29
import VirtualItem from '~/components/virtual-item';
30
30
31
31
const ProfileModerationListPage = () => {
32
-
const { did, rkey } = useParams<{
33
-
did: At.Did;
34
-
rkey: At.RecordKey;
35
-
}>();
32
+
const { did, rkey } = useParams();
36
33
37
34
const uri = makeAtUri(did, 'app.bsky.graph.list', rkey);
38
35
const query = createListMetaQuery(() => uri);
···
163
160
);
164
161
};
165
162
166
-
const MembersList = ({ uri }: { uri: At.ResourceUri }) => {
163
+
const MembersList = ({ uri }: { uri: string }) => {
167
164
const members = createListMembersQuery(() => uri);
168
165
169
166
return (
+1
-5
src/views/profile-search.tsx
+1
-5
src/views/profile-search.tsx
···
1
1
import { createSignal } from 'solid-js';
2
2
3
-
import type { At } from '@atcute/client/lexicons';
4
-
5
3
import { createProfileQuery } from '~/api/queries/profile';
6
4
import { isDid } from '~/api/types/identity';
7
5
···
16
14
import SearchSuggestionsView from '~/components/search/search-suggestions-view';
17
15
18
16
const ProfileSearchPage = () => {
19
-
const { didOrHandle } = useParams<{
20
-
didOrHandle: At.Identifier;
21
-
}>();
17
+
const { didOrHandle } = useParams();
22
18
23
19
const [query, setQuery] = createSignal('');
24
20
const profile = createProfileQuery(() => didOrHandle);
+9
-11
src/views/profile.tsx
+9
-11
src/views/profile.tsx
···
1
1
import { Match, Show, Switch, createMemo } from 'solid-js';
2
2
3
-
import { ClientResponseError } from '@atcute/client';
4
-
import type { AppBskyActorDefs, At } from '@atcute/client/lexicons';
3
+
import { XRPCError } from '@atcute/client';
4
+
import type { AppBskyActorDefs } from '@atcute/client/lexicons';
5
5
import { useQueryClient } from '@mary/solid-query';
6
6
7
7
import { useProfileShadow } from '~/api/cache/profile-shadow';
···
31
31
import VirtualItem from '~/components/virtual-item';
32
32
33
33
const ProfilePage = () => {
34
-
const { didOrHandle } = useParams<{
35
-
didOrHandle: At.Identifier;
36
-
}>();
34
+
const { didOrHandle } = useParams();
37
35
38
36
const queryClient = useQueryClient();
39
37
const profile = createProfileQuery(() => didOrHandle);
···
117
115
<Match when={profile.error} keyed>
118
116
{(err) => {
119
117
if (
120
-
err instanceof ClientResponseError &&
121
-
(err.error === 'InvalidRequest' ||
122
-
err.error === 'AccountTakedown' ||
123
-
err.error === 'AccountDeactivated')
118
+
err instanceof XRPCError &&
119
+
(err.kind === 'InvalidRequest' ||
120
+
err.kind === 'AccountTakedown' ||
121
+
err.kind === 'AccountDeactivated')
124
122
) {
125
123
const text =
126
-
err.error === 'AccountTakedown'
124
+
err.kind === 'AccountTakedown'
127
125
? `This account is taken down`
128
-
: err.error === 'AccountDeactivated'
126
+
: err.kind === 'AccountDeactivated'
129
127
? `This account has deactivated`
130
128
: `This account doesn't exist`;
131
129
+6
-7
src/views/settings-account.tsx
+6
-7
src/views/settings-account.tsx
···
1
-
import { ok } from '@atcute/client';
2
1
import { createQuery } from '@mary/solid-query';
3
2
4
3
import { useTitle } from '~/lib/navigation/router';
···
8
7
import * as Page from '~/components/page';
9
8
10
9
const AccountSettingsPage = () => {
11
-
const { did, client, persister } = useAgent();
10
+
const { did, rpc, persister } = useAgent();
12
11
13
12
const repo = createQuery(() => ({
14
13
queryKey: ['describe-repo'],
15
14
persister: persister as any,
16
15
async queryFn() {
17
-
const [repo, server] = await Promise.all([
18
-
ok(client.get('com.atproto.repo.describeRepo', { params: { repo: did! } })),
19
-
ok(client.get('com.atproto.server.describeServer')),
16
+
const [repoResponse, serverResponse] = await Promise.all([
17
+
rpc.get('com.atproto.repo.describeRepo', { params: { repo: did! } }),
18
+
rpc.handle('/xrpc/com.atproto.server.describeServer', {}),
20
19
]);
21
20
22
21
return {
23
-
handle: repo.handle,
24
-
pds: server.did.replace(/^did:web:/, ''),
22
+
handle: repoResponse.data.handle,
23
+
pds: new URL(serverResponse.url).host,
25
24
};
26
25
},
27
26
}));
+6
-10
src/views/settings-app-passwords.tsx
+6
-10
src/views/settings-app-passwords.tsx
···
1
1
import { For, Match, Show, Switch } from 'solid-js';
2
2
3
-
import { ok } from '@atcute/client';
4
3
import type { ComAtprotoServerListAppPasswords } from '@atcute/client/lexicons';
5
4
import { createMutation, createQuery } from '@mary/solid-query';
6
5
···
23
22
import AddAppPasswordPrompt from '~/components/settings/app-passwords/add-app-password-prompt';
24
23
25
24
const AppPasswordsSettingsPage = () => {
26
-
const { client } = useAgent();
25
+
const { rpc } = useAgent();
27
26
28
27
const passwords = createQuery(() => {
29
28
return {
30
29
queryKey: ['app-passwords'],
31
30
async queryFn() {
32
-
const data = await ok(client.get('com.atproto.server.listAppPasswords'));
31
+
const { data } = await rpc.get('com.atproto.server.listAppPasswords', {});
33
32
34
33
return data.passwords;
35
34
},
···
106
105
}
107
106
108
107
const PasswordEntry = ({ item }: PasswordEntryProps) => {
109
-
const { client } = useAgent();
108
+
const { rpc } = useAgent();
110
109
111
110
const isPrivileged = item.privileged;
112
111
113
112
const mutation = createMutation((queryClient) => {
114
113
return {
115
114
async mutationFn() {
116
-
await ok(
117
-
client.post('com.atproto.server.revokeAppPassword', {
118
-
as: null,
119
-
input: { name: item.name },
120
-
}),
121
-
);
115
+
await rpc.call('com.atproto.server.revokeAppPassword', {
116
+
data: { name: item.name },
117
+
});
122
118
},
123
119
async onSuccess() {
124
120
await queryClient.invalidateQueries({ queryKey: ['app-passwords'] });