+4
-1
index.html
+4
-1
index.html
···
2
2
<html lang="en">
3
3
<head>
4
4
<meta charset="utf-8" />
5
-
<meta name="viewport" content="width=device-width, initial-scale=1.0, interactive-widget=resizes-content" />
5
+
<meta
6
+
name="viewport"
7
+
content="width=device-width, initial-scale=1.0, interactive-widget=resizes-content"
8
+
/>
6
9
<title>Aglais</title>
7
10
<script type="module" src="./src/main"></script>
8
11
</head>
+6
-6
package.json
+6
-6
package.json
···
9
9
"fmt": "prettier --cache --write ."
10
10
},
11
11
"dependencies": {
12
+
"@atcute/base32": "^1.0.0",
13
+
"@atcute/bluesky": "^1.0.0",
14
+
"@atcute/cbor": "^1.0.0",
15
+
"@atcute/cid": "^1.0.0",
16
+
"@atcute/client": "^1.0.0",
17
+
"@atcute/tid": "^1.0.0",
12
18
"@floating-ui/dom": "^1.6.10",
13
19
"@floating-ui/utils": "^0.2.7",
14
-
"@mary/atproto-cid": "npm:@jsr/mary__atproto-cid@^0.1.4",
15
-
"@mary/atproto-tid": "npm:@jsr/mary__atproto-tid@^0.1.1",
16
-
"@mary/base32": "npm:@jsr/mary__base32@^0.1.0",
17
-
"@mary/bluesky-client": "npm:@jsr/mary__bluesky-client@^0.5.27",
18
20
"@mary/events": "npm:@jsr/mary__events@^0.1.0",
19
21
"@mary/exif-rm": "npm:@jsr/mary__exif-rm@^0.2.1",
20
22
"@mary/solid-freeze": "npm:@externdefs/solid-freeze@^0.1.1",
21
23
"@mary/solid-query": "npm:@externdefs/solid-query@^0.1.5",
22
-
"cborg": "4.2.3",
23
24
"idb": "^8.0.0",
24
25
"nanoid": "^5.0.7",
25
26
"solid-floating-ui": "~0.2.1",
···
42
43
"pnpm": {
43
44
"patchedDependencies": {
44
45
"@tanstack/query-core@5.17.19": "patches/@tanstack__query-core@5.17.19.patch",
45
-
"cborg@4.2.3": "patches/cborg@4.2.3.patch",
46
46
"solid-js@1.8.20": "patches/solid-js@1.8.20.patch",
47
47
"vite-plugin-pwa@0.17.4": "patches/vite-plugin-pwa@0.17.4.patch",
48
48
"vite@5.4.0": "patches/vite@5.4.0.patch",
-98
patches/cborg@4.2.3.patch
-98
patches/cborg@4.2.3.patch
···
1
-
diff --git a/cborg.js b/cborg.js
2
-
index 40c159ebc30998a52395abadc744c4736b5cfc32..c8c964f03069a68e5ca533b0fc4f1ef5bd228476 100644
3
-
--- a/cborg.js
4
-
+++ b/cborg.js
5
-
@@ -4,11 +4,11 @@ import { Token, Type } from './lib/token.js'
6
-
7
-
/**
8
-
* Export the types that were present in the original manual cborg.d.ts
9
-
- * @typedef {import('./interface').TagDecoder} TagDecoder
10
-
+ * @typedef {import('./interface.js').TagDecoder} TagDecoder
11
-
* There was originally just `TypeEncoder` so don't break types by renaming or not exporting
12
-
- * @typedef {import('./interface').OptionalTypeEncoder} TypeEncoder
13
-
- * @typedef {import('./interface').DecodeOptions} DecodeOptions
14
-
- * @typedef {import('./interface').EncodeOptions} EncodeOptions
15
-
+ * @typedef {import('./interface.js').OptionalTypeEncoder} TypeEncoder
16
-
+ * @typedef {import('./interface.js').DecodeOptions} DecodeOptions
17
-
+ * @typedef {import('./interface.js').EncodeOptions} EncodeOptions
18
-
*/
19
-
20
-
export {
21
-
diff --git a/interface.ts b/interface.d.ts
22
-
similarity index 95%
23
-
rename from interface.ts
24
-
rename to interface.d.ts
25
-
index 020264da98b4ab5d184d5ef471e8c957c32b4da1..b26c48daab83440ab51773c922fe92d2af111acd 100644
26
-
--- a/interface.ts
27
-
+++ b/interface.d.ts
28
-
@@ -1,5 +1,5 @@
29
-
-import { Token } from './lib/token'
30
-
-import { Bl } from './lib/bl'
31
-
+import { Token } from './lib/token.js'
32
-
+import { Bl } from './lib/bl.js'
33
-
34
-
export type TokenOrNestedTokens = Token | Token[] | TokenOrNestedTokens[]
35
-
36
-
diff --git a/lib/encode.js b/lib/encode.js
37
-
index acd7bac1f580d27e8c0052c493e891136d0e8c47..3ae4185291dea9885d5a769f6e4818890ea1f87f 100644
38
-
--- a/lib/encode.js
39
-
+++ b/lib/encode.js
40
-
@@ -15,12 +15,12 @@ import { encodeTag } from './6tag.js'
41
-
import { encodeFloat } from './7float.js'
42
-
43
-
/**
44
-
- * @typedef {import('../interface').EncodeOptions} EncodeOptions
45
-
- * @typedef {import('../interface').OptionalTypeEncoder} OptionalTypeEncoder
46
-
- * @typedef {import('../interface').Reference} Reference
47
-
- * @typedef {import('../interface').StrictTypeEncoder} StrictTypeEncoder
48
-
- * @typedef {import('../interface').TokenTypeEncoder} TokenTypeEncoder
49
-
- * @typedef {import('../interface').TokenOrNestedTokens} TokenOrNestedTokens
50
-
+ * @typedef {import('../interface.js').EncodeOptions} EncodeOptions
51
-
+ * @typedef {import('../interface.js').OptionalTypeEncoder} OptionalTypeEncoder
52
-
+ * @typedef {import('../interface.js').Reference} Reference
53
-
+ * @typedef {import('../interface.js').StrictTypeEncoder} StrictTypeEncoder
54
-
+ * @typedef {import('../interface.js').TokenTypeEncoder} TokenTypeEncoder
55
-
+ * @typedef {import('../interface.js').TokenOrNestedTokens} TokenOrNestedTokens
56
-
*/
57
-
58
-
/** @type {EncodeOptions} */
59
-
diff --git a/types/cborg.d.ts b/types/cborg.d.ts
60
-
index 93b8775a86ba5420211ef2f55b474abca0f5256e..8b521fc2b55fd13403d9ebef079b50e47f4aeb84 100644
61
-
--- a/types/cborg.d.ts
62
-
+++ b/types/cborg.d.ts
63
-
@@ -1,19 +1,19 @@
64
-
/**
65
-
* There was originally just `TypeEncoder` so don't break types by renaming or not exporting
66
-
*/
67
-
-export type TagDecoder = import('./interface').TagDecoder;
68
-
+export type TagDecoder = import('./interface.js').TagDecoder;
69
-
/**
70
-
* Export the types that were present in the original manual cborg.d.ts
71
-
*/
72
-
-export type TypeEncoder = import('./interface').OptionalTypeEncoder;
73
-
+export type TypeEncoder = import('./interface.js').OptionalTypeEncoder;
74
-
/**
75
-
* Export the types that were present in the original manual cborg.d.ts
76
-
*/
77
-
-export type DecodeOptions = import('./interface').DecodeOptions;
78
-
+export type DecodeOptions = import('./interface.js').DecodeOptions;
79
-
/**
80
-
* Export the types that were present in the original manual cborg.d.ts
81
-
*/
82
-
-export type EncodeOptions = import('./interface').EncodeOptions;
83
-
+export type EncodeOptions = import('./interface.js').EncodeOptions;
84
-
import { decode } from './lib/decode.js';
85
-
import { decodeFirst } from './lib/decode.js';
86
-
import { Tokeniser } from './lib/decode.js';
87
-
diff --git a/types/interface.d.ts b/types/interface.d.ts
88
-
index 40b734f397df16956bd5e99c396f31027fbb2231..6692903b3fb3390c92b534258e421fc977697136 100644
89
-
--- a/types/interface.d.ts
90
-
+++ b/types/interface.d.ts
91
-
@@ -1,5 +1,5 @@
92
-
-import { Token } from './lib/token';
93
-
-import { Bl } from './lib/bl';
94
-
+import { Token } from './lib/token.js';
95
-
+import { Bl } from './lib/bl.js';
96
-
export type TokenOrNestedTokens = Token | Token[] | TokenOrNestedTokens[];
97
-
export interface Reference {
98
-
parent: Reference | undefined;
+69
-52
pnpm-lock.yaml
+69
-52
pnpm-lock.yaml
···
8
8
'@tanstack/query-core@5.17.19':
9
9
hash: mh34qchsf4y2z6x2owv2ljabky
10
10
path: patches/@tanstack__query-core@5.17.19.patch
11
-
cborg@4.2.3:
12
-
hash: xp5eyjlfdngupbia63w3vt7fta
13
-
path: patches/cborg@4.2.3.patch
14
11
solid-js@1.8.20:
15
12
hash: 76exa6qxo2meqzgohn3ssck4qe
16
13
path: patches/solid-js@1.8.20.patch
···
28
25
29
26
.:
30
27
dependencies:
28
+
'@atcute/base32':
29
+
specifier: ^1.0.0
30
+
version: 1.0.0
31
+
'@atcute/bluesky':
32
+
specifier: ^1.0.0
33
+
version: 1.0.0(@atcute/client@1.0.0)
34
+
'@atcute/cbor':
35
+
specifier: ^1.0.0
36
+
version: 1.0.0
37
+
'@atcute/cid':
38
+
specifier: ^1.0.0
39
+
version: 1.0.0
40
+
'@atcute/client':
41
+
specifier: ^1.0.0
42
+
version: 1.0.0
43
+
'@atcute/tid':
44
+
specifier: ^1.0.0
45
+
version: 1.0.0
31
46
'@floating-ui/dom':
32
47
specifier: ^1.6.10
33
48
version: 1.6.10
34
49
'@floating-ui/utils':
35
50
specifier: ^0.2.7
36
51
version: 0.2.7
37
-
'@mary/atproto-cid':
38
-
specifier: npm:@jsr/mary__atproto-cid@^0.1.4
39
-
version: '@jsr/mary__atproto-cid@0.1.4'
40
-
'@mary/atproto-tid':
41
-
specifier: npm:@jsr/mary__atproto-tid@^0.1.1
42
-
version: '@jsr/mary__atproto-tid@0.1.1'
43
-
'@mary/base32':
44
-
specifier: npm:@jsr/mary__base32@^0.1.0
45
-
version: '@jsr/mary__base32@0.1.0'
46
-
'@mary/bluesky-client':
47
-
specifier: npm:@jsr/mary__bluesky-client@^0.5.27
48
-
version: '@jsr/mary__bluesky-client@0.5.27'
49
52
'@mary/events':
50
53
specifier: npm:@jsr/mary__events@^0.1.0
51
54
version: '@jsr/mary__events@0.1.0'
···
58
61
'@mary/solid-query':
59
62
specifier: npm:@externdefs/solid-query@^0.1.5
60
63
version: '@externdefs/solid-query@0.1.5(solid-js@1.8.20(patch_hash=76exa6qxo2meqzgohn3ssck4qe))'
61
-
cborg:
62
-
specifier: 4.2.3
63
-
version: 4.2.3(patch_hash=xp5eyjlfdngupbia63w3vt7fta)
64
64
idb:
65
65
specifier: ^8.0.0
66
66
version: 8.0.0
···
126
126
engines: {node: '>=10'}
127
127
peerDependencies:
128
128
ajv: '>=8'
129
+
130
+
'@atcute/base32@1.0.0':
131
+
resolution: {integrity: sha512-Mbjsv6kd/ymvDMGjCoh9eqhlpFsoJ6zYguU6xtKxqh1wGhe5rvBOfMRXsEqcp7srn8Bfp8QhevqLgmwrWvzqrA==}
132
+
133
+
'@atcute/bluesky@1.0.0':
134
+
resolution: {integrity: sha512-GG5oMa0QZj7aOyszbrjZNZVdaF3+yCG26kl1rxuV5EAI9v+EgjB5C3M6zedmP1im9Q/ZXONvevgypfeFjqBibw==}
135
+
peerDependencies:
136
+
'@atcute/client': ^1.0.0
137
+
138
+
'@atcute/cbor@1.0.0':
139
+
resolution: {integrity: sha512-aHbURHim6cem7ZRLYg+Q9CkbGAPAV9P2pms7V/p5OkpP/dAb7RgoFwf49vg1454xrCtfFOhCtheUnmxLROdG3Q==}
140
+
141
+
'@atcute/cid@1.0.0':
142
+
resolution: {integrity: sha512-JnWv3sg48zDBP318ErPYPI482Vw1Nm7e7WG+VYGSLRLp56b9LgcIh28p28gEmPtmsnM9hTAkKvJdi+CAkNDQUA==}
143
+
144
+
'@atcute/client@1.0.0':
145
+
resolution: {integrity: sha512-C9Xvl1vaCjy6xLRE/uprDgWyyp/efM0HDqkeROcUSA1nuIEYL1wXqbMRFiwT6y9b81GHO8GAJ+p/pEDGIHOJ0A==}
146
+
147
+
'@atcute/tid@1.0.0':
148
+
resolution: {integrity: sha512-hwvo19zlhSskYRmIzTQqj1Kxd9IX+x8B593flXTaR5jO+/3krUwlRnXd/pnZp5wZqAI/j2OlcPGadX93rsoozg==}
149
+
150
+
'@atcute/varint@1.0.0':
151
+
resolution: {integrity: sha512-NEBOGkdaDY8cjlDg49kefIsRM7iv/4oReEnOr3bN4tF3IxBGdc6Io1NCJz1xNBNdUL+3VDG3CKHiRji91HXaTg==}
129
152
130
153
'@babel/code-frame@7.24.7':
131
154
resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==}
···
1081
1104
'@jridgewell/trace-mapping@0.3.9':
1082
1105
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
1083
1106
1084
-
'@jsr/mary__atproto-cid@0.1.4':
1085
-
resolution: {integrity: sha512-sq6bpcLTluVL2De73sAeAuf6HIKveEO8/sUd4/Y+ntQ1HIvmMv5HX5gLhiPIwT1nAA+Cmsk2aXMUuSLjgP0oyA==, tarball: https://npm.jsr.io/~/11/@jsr/mary__atproto-cid/0.1.4.tgz}
1086
-
1087
-
'@jsr/mary__atproto-tid@0.1.1':
1088
-
resolution: {integrity: sha512-wQumCF4gT+D/AGjlBc0s6h2/9m9gv+W7uaE5ovy4IBEVNccddZgbLMIuA4w5iH0iFir1gICI+Bbaq+NnCBJRww==, tarball: https://npm.jsr.io/~/11/@jsr/mary__atproto-tid/0.1.1.tgz}
1089
-
1090
-
'@jsr/mary__base32@0.1.0':
1091
-
resolution: {integrity: sha512-DCSSLoazbiumZdEAyBlNS6T/NtOPPJPwZH3hzyLnHZ/HKI5HT1ajZBAPLXVNzsIsFC3AgYpX/IXGGR2bS8AB6w==, tarball: https://npm.jsr.io/~/11/@jsr/mary__base32/0.1.0.tgz}
1092
-
1093
-
'@jsr/mary__bluesky-client@0.5.27':
1094
-
resolution: {integrity: sha512-0n8Zksy8OeTIH3HG89cQeu6fDLzT3X7f/9nyMcVjoVvBmYoXl3qfeLm9OUYDnwgAydyE60NTCU3MTSHYTeZn9w==, tarball: https://npm.jsr.io/~/11/@jsr/mary__bluesky-client/0.5.27.tgz}
1095
-
1096
1107
'@jsr/mary__events@0.1.0':
1097
1108
resolution: {integrity: sha512-oS6jVOaXTaNEa6avRncwrEtUYaBKrq/HEybPa9Z3aoeMs+RSly0vn0KcOj/fy2H6iTBkeh3wa8+/9nFjhKyKIg==, tarball: https://npm.jsr.io/~/11/@jsr/mary__events/0.1.0.tgz}
1098
1109
1099
1110
'@jsr/mary__exif-rm@0.2.1':
1100
1111
resolution: {integrity: sha512-hw7UqNH2puQooIRvZk4IPP4Xyo1IjbynjW9idqmqJepwR7DDeBs61riHZdiax3lUoW7Gzz+tuPQmdkWH/v2i5Q==, tarball: https://npm.jsr.io/~/11/@jsr/mary__exif-rm/0.2.1.tgz}
1101
-
1102
-
'@jsr/mary__varint@0.1.0':
1103
-
resolution: {integrity: sha512-iT8XYsAyHnR5EfkWkBxqE2ecTHuvcuVEZQEts8sInADA3O3E/IepPY5qwFSwNCnUXfQ6+RIMi1RhJ9kahrTI5w==, tarball: https://npm.jsr.io/~/11/@jsr/mary__varint/0.1.0.tgz}
1104
1112
1105
1113
'@nodelib/fs.scandir@2.1.5':
1106
1114
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
···
1433
1441
capnp-ts@0.7.0:
1434
1442
resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==}
1435
1443
1436
-
cborg@4.2.3:
1437
-
resolution: {integrity: sha512-XBFbEJ6WMfn9L7woc2t+EzOxF8vGqddoopKBbrhIvZBt2WIUgSlT8xLmM6Aq1xv8eWt4yOSjwxWjYeuHU3CpJA==}
1438
-
hasBin: true
1439
-
1440
1444
chalk@2.4.2:
1441
1445
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
1442
1446
engines: {node: '>=4'}
···
1663
1667
foreground-child@3.3.0:
1664
1668
resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
1665
1669
engines: {node: '>=14'}
1670
+
1671
+
fp16@0.3.0:
1672
+
resolution: {integrity: sha512-Iw6hLaH345EETQGU56NiAcJ173IraDRdJrVy+0fBMPdkZhzKNN/k3eqXFyNmnyx2/jnIzF2nr0mHh5nHrQBMEQ==}
1666
1673
1667
1674
fraction.js@4.3.7:
1668
1675
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
···
2780
2787
jsonpointer: 5.0.1
2781
2788
leven: 3.1.0
2782
2789
2790
+
'@atcute/base32@1.0.0': {}
2791
+
2792
+
'@atcute/bluesky@1.0.0(@atcute/client@1.0.0)':
2793
+
dependencies:
2794
+
'@atcute/client': 1.0.0
2795
+
2796
+
'@atcute/cbor@1.0.0':
2797
+
dependencies:
2798
+
'@atcute/base32': 1.0.0
2799
+
'@atcute/cid': 1.0.0
2800
+
fp16: 0.3.0
2801
+
2802
+
'@atcute/cid@1.0.0':
2803
+
dependencies:
2804
+
'@atcute/base32': 1.0.0
2805
+
'@atcute/varint': 1.0.0
2806
+
2807
+
'@atcute/client@1.0.0': {}
2808
+
2809
+
'@atcute/tid@1.0.0': {}
2810
+
2811
+
'@atcute/varint@1.0.0': {}
2812
+
2783
2813
'@babel/code-frame@7.24.7':
2784
2814
dependencies:
2785
2815
'@babel/highlight': 7.24.7
···
3778
3808
'@jridgewell/resolve-uri': 3.1.2
3779
3809
'@jridgewell/sourcemap-codec': 1.5.0
3780
3810
3781
-
'@jsr/mary__atproto-cid@0.1.4':
3782
-
dependencies:
3783
-
'@jsr/mary__base32': 0.1.0
3784
-
'@jsr/mary__varint': 0.1.0
3785
-
3786
-
'@jsr/mary__atproto-tid@0.1.1': {}
3787
-
3788
-
'@jsr/mary__base32@0.1.0': {}
3789
-
3790
-
'@jsr/mary__bluesky-client@0.5.27': {}
3791
-
3792
3811
'@jsr/mary__events@0.1.0': {}
3793
3812
3794
3813
'@jsr/mary__exif-rm@0.2.1': {}
3795
-
3796
-
'@jsr/mary__varint@0.1.0': {}
3797
3814
3798
3815
'@nodelib/fs.scandir@2.1.5':
3799
3816
dependencies:
···
4124
4141
transitivePeerDependencies:
4125
4142
- supports-color
4126
4143
4127
-
cborg@4.2.3(patch_hash=xp5eyjlfdngupbia63w3vt7fta): {}
4128
-
4129
4144
chalk@2.4.2:
4130
4145
dependencies:
4131
4146
ansi-styles: 3.2.1
···
4421
4436
dependencies:
4422
4437
cross-spawn: 7.0.3
4423
4438
signal-exit: 4.1.0
4439
+
4440
+
fp16@0.3.0: {}
4424
4441
4425
4442
fraction.js@4.3.7: {}
4426
4443
+1
-1
src/api/cache/post-shadow.ts
+1
-1
src/api/cache/post-shadow.ts
···
1
1
import { batch, createRenderEffect, createSignal, onCleanup, type Accessor } from 'solid-js';
2
2
3
-
import type { AppBskyFeedDefs } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyFeedDefs } from '@atcute/client/lexicons';
4
4
import { EventEmitter } from '@mary/events';
5
5
import type { QueryClient } from '@mary/solid-query';
6
6
+1
-1
src/api/cache/profile-shadow.ts
+1
-1
src/api/cache/profile-shadow.ts
···
1
1
import { batch, createRenderEffect, createSignal, onCleanup, type Accessor } from 'solid-js';
2
2
3
-
import type { AppBskyActorDefs, At } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyActorDefs, At } from '@atcute/client/lexicons';
4
4
import { EventEmitter } from '@mary/events';
5
5
import type { QueryClient } from '@mary/solid-query';
6
6
+1
-1
src/api/models/post-thread.tsx
+1
-1
src/api/models/post-thread.tsx
+1
-1
src/api/models/timeline.ts
+1
-1
src/api/models/timeline.ts
+1
-1
src/api/moderation/entities/generic.ts
+1
-1
src/api/moderation/entities/generic.ts
+1
-1
src/api/moderation/entities/post.ts
+1
-1
src/api/moderation/entities/post.ts
+1
-1
src/api/moderation/entities/profile.ts
+1
-1
src/api/moderation/entities/profile.ts
+1
-1
src/api/moderation/entities/quote.ts
+1
-1
src/api/moderation/entities/quote.ts
+1
-1
src/api/moderation/index.ts
+1
-1
src/api/moderation/index.ts
+1
-1
src/api/moderation/labeler.ts
+1
-1
src/api/moderation/labeler.ts
+1
-1
src/api/mutations/post.ts
+1
-1
src/api/mutations/post.ts
+1
-1
src/api/mutations/profile.ts
+1
-1
src/api/mutations/profile.ts
+1
-1
src/api/queries-cache/bookmark-feed.ts
+1
-1
src/api/queries-cache/bookmark-feed.ts
···
1
-
import type { AppBskyActorDefs, AppBskyFeedDefs, At } from '@mary/bluesky-client/lexicons';
1
+
import type { AppBskyActorDefs, AppBskyFeedDefs, At } from '@atcute/client/lexicons';
2
2
import type { InfiniteData } from '@mary/solid-query';
3
3
4
4
import type { CacheMatcher } from '../cache/utils';
+1
-1
src/api/queries-cache/notification-feed.ts
+1
-1
src/api/queries-cache/notification-feed.ts
···
1
-
import type { AppBskyActorDefs, AppBskyFeedDefs, At } from '@mary/bluesky-client/lexicons';
1
+
import type { AppBskyActorDefs, AppBskyFeedDefs, At } from '@atcute/client/lexicons';
2
2
import type { InfiniteData } from '@mary/solid-query';
3
3
4
4
import type { CacheMatcher } from '../cache/utils';
+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-followers.ts
+1
-1
src/api/queries-cache/profile-followers.ts
···
1
-
import type { AppBskyActorDefs, AppBskyGraphGetFollowers, At } from '@mary/bluesky-client/lexicons';
1
+
import type { AppBskyActorDefs, AppBskyGraphGetFollowers, At } from '@atcute/client/lexicons';
2
2
import type { InfiniteData } from '@mary/solid-query';
3
3
4
4
import type { CacheMatcher } from '../cache/utils';
+1
-1
src/api/queries-cache/profile-following.ts
+1
-1
src/api/queries-cache/profile-following.ts
···
1
-
import type { AppBskyActorDefs, At, AppBskyGraphGetFollows } from '@mary/bluesky-client/lexicons';
1
+
import type { AppBskyActorDefs, At, AppBskyGraphGetFollows } from '@atcute/client/lexicons';
2
2
import type { InfiniteData } from '@mary/solid-query';
3
3
4
4
import type { CacheMatcher } from '../cache/utils';
+1
-1
src/api/queries-cache/profile-known-followers.ts
+1
-1
src/api/queries-cache/profile-known-followers.ts
···
1
-
import type { AppBskyActorDefs, AppBskyGraphGetKnownFollowers, At } from '@mary/bluesky-client/lexicons';
1
+
import type { AppBskyActorDefs, AppBskyGraphGetKnownFollowers, At } from '@atcute/client/lexicons';
2
2
import type { InfiniteData } from '@mary/solid-query';
3
3
4
4
import type { CacheMatcher } from '../cache/utils';
+1
-1
src/api/queries-cache/profile-precache.ts
+1
-1
src/api/queries-cache/profile-precache.ts
+1
-1
src/api/queries-cache/profile.ts
+1
-1
src/api/queries-cache/profile.ts
+1
-1
src/api/queries-cache/subject-likers.ts
+1
-1
src/api/queries-cache/subject-likers.ts
+1
-1
src/api/queries-cache/subject-reposters.ts
+1
-1
src/api/queries-cache/subject-reposters.ts
···
1
-
import type { AppBskyActorDefs, AppBskyFeedGetRepostedBy, At } from '@mary/bluesky-client/lexicons';
1
+
import type { AppBskyActorDefs, AppBskyFeedGetRepostedBy, At } from '@atcute/client/lexicons';
2
2
import type { InfiniteData } from '@mary/solid-query';
3
3
4
4
import type { CacheMatcher } from '../cache/utils';
+1
-1
src/api/queries-cache/timeline.ts
+1
-1
src/api/queries-cache/timeline.ts
···
1
-
import type { AppBskyActorDefs, AppBskyFeedDefs, At } from '@mary/bluesky-client/lexicons';
1
+
import type { AppBskyActorDefs, AppBskyFeedDefs, At } from '@atcute/client/lexicons';
2
2
import type { InfiniteData } from '@mary/solid-query';
3
3
4
4
import type { CacheMatcher } from '../cache/utils';
+3
-3
src/api/queries/blob.ts
+3
-3
src/api/queries/blob.ts
···
1
-
import type { BskyXRPC } from '@mary/bluesky-client';
2
-
import type { At } from '@mary/bluesky-client/lexicons';
1
+
import type { XRPC } from '@atcute/client';
2
+
import type { At } from '@atcute/client/lexicons';
3
3
4
-
export const uploadBlob = async (rpc: BskyXRPC, blob: Blob): Promise<At.Blob<any>> => {
4
+
export const uploadBlob = async (rpc: XRPC, blob: Blob): Promise<At.Blob<any>> => {
5
5
const { data } = await rpc.call('com.atproto.repo.uploadBlob', { data: blob });
6
6
return data.blob;
7
7
};
+1
-1
src/api/queries/bookmark-feed.ts
+1
-1
src/api/queries/bookmark-feed.ts
···
1
-
import type { AppBskyFeedDefs } from '@mary/bluesky-client/lexicons';
1
+
import type { AppBskyFeedDefs } from '@atcute/client/lexicons';
2
2
import { createInfiniteQuery, createQuery } from '@mary/solid-query';
3
3
4
4
import type { BookmarkItem, HydratedBookmarkItem } from '~/lib/aglais-bookmarks/db';
+1
-1
src/api/queries/feed.ts
+1
-1
src/api/queries/feed.ts
+2
-2
src/api/queries/handle.ts
+2
-2
src/api/queries/handle.ts
···
1
-
import type { BskyXRPC } from '@mary/bluesky-client';
1
+
import { XRPC } from '@atcute/client';
2
2
import { createQuery } from '@mary/solid-query';
3
3
4
4
import { useAgent } from '~/lib/states/agent';
···
18
18
});
19
19
};
20
20
21
-
export const resolveHandle = async (rpc: BskyXRPC, handle: string, signal?: AbortSignal) => {
21
+
export const resolveHandle = async (rpc: XRPC, handle: string, signal?: AbortSignal) => {
22
22
const { data } = await rpc.get('com.atproto.identity.resolveHandle', {
23
23
signal: signal,
24
24
params: {
+2
-2
src/api/queries/labeler.ts
+2
-2
src/api/queries/labeler.ts
···
1
-
import type { AppBskyLabelerDefs, At } from '@mary/bluesky-client/lexicons';
2
-
import { XRPCError } from '@mary/bluesky-client/xrpc';
1
+
import { XRPCError } from '@atcute/client';
2
+
import type { AppBskyLabelerDefs, At } from '@atcute/client/lexicons';
3
3
import { createQuery } from '@mary/solid-query';
4
4
5
5
import { useAgent } from '~/lib/states/agent';
+1
-1
src/api/queries/list.ts
+1
-1
src/api/queries/list.ts
+1
-1
src/api/queries/notification-feed.tsx
+1
-1
src/api/queries/notification-feed.tsx
···
1
1
import { createSignal } from 'solid-js';
2
2
3
-
import type { AppBskyFeedDefs, AppBskyNotificationListNotifications } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyFeedDefs, AppBskyNotificationListNotifications } from '@atcute/client/lexicons';
4
4
import { createInfiniteQuery, useQueryClient, type QueryFunctionContext as QC } from '@mary/solid-query';
5
5
6
6
import { mapDefined } from '~/lib/misc';
+2
-2
src/api/queries/post-thread.ts
+2
-2
src/api/queries/post-thread.ts
···
1
-
import type { AppBskyFeedDefs, Brand } from '@mary/bluesky-client/lexicons';
1
+
import type { AppBskyFeedDefs, Brand } from '@atcute/client/lexicons';
2
2
import { createQuery } from '@mary/solid-query';
3
+
import { XRPCError } from '@atcute/client';
3
4
4
5
import { useAgent } from '~/lib/states/agent';
5
6
6
-
import { XRPCError } from '@mary/bluesky-client/xrpc';
7
7
import { findPostsInCache } from '../cache/post-shadow';
8
8
9
9
const MAX_HEIGHT = 10;
+1
-1
src/api/queries/post.ts
+1
-1
src/api/queries/post.ts
+1
-1
src/api/queries/profile-followers.ts
+1
-1
src/api/queries/profile-followers.ts
···
1
-
import type { AppBskyActorDefs, AppBskyGraphGetFollowers } from '@mary/bluesky-client/lexicons';
1
+
import type { AppBskyActorDefs, AppBskyGraphGetFollowers } from '@atcute/client/lexicons';
2
2
import { createInfiniteQuery, type InfiniteData, type QueryFunctionContext as QC } from '@mary/solid-query';
3
3
import { useAgent } from '~/lib/states/agent';
4
4
+1
-1
src/api/queries/profile-following.ts
+1
-1
src/api/queries/profile-following.ts
···
1
-
import type { AppBskyActorDefs, AppBskyGraphGetFollows } from '@mary/bluesky-client/lexicons';
1
+
import type { AppBskyActorDefs, AppBskyGraphGetFollows } from '@atcute/client/lexicons';
2
2
import { createInfiniteQuery, type InfiniteData, type QueryFunctionContext as QC } from '@mary/solid-query';
3
3
4
4
import { useAgent } from '~/lib/states/agent';
+1
-1
src/api/queries/profile-known-followers.ts
+1
-1
src/api/queries/profile-known-followers.ts
···
1
-
import type { AppBskyActorDefs, AppBskyGraphGetFollowers } from '@mary/bluesky-client/lexicons';
1
+
import type { AppBskyActorDefs, AppBskyGraphGetFollowers } from '@atcute/client/lexicons';
2
2
import { createInfiniteQuery, type InfiniteData, type QueryFunctionContext as QC } from '@mary/solid-query';
3
3
4
4
import { useAgent } from '~/lib/states/agent';
+1
-1
src/api/queries/profile.ts
+1
-1
src/api/queries/profile.ts
+1
-1
src/api/queries/subject-likers.ts
+1
-1
src/api/queries/subject-likers.ts
+1
-1
src/api/queries/subject-reposters.ts
+1
-1
src/api/queries/subject-reposters.ts
···
1
-
import type { AppBskyFeedGetRepostedBy } from '@mary/bluesky-client/lexicons';
1
+
import type { AppBskyFeedGetRepostedBy } from '@atcute/client/lexicons';
2
2
import type { QueryFunctionContext as QC } from '@mary/solid-query';
3
3
import { createInfiniteQuery } from '@mary/solid-query';
4
4
+3
-3
src/api/queries/timeline.ts
+3
-3
src/api/queries/timeline.ts
···
1
1
import { createEffect, createMemo, createRenderEffect, onCleanup, untrack } from 'solid-js';
2
2
3
-
import type { BskyXRPC } from '@mary/bluesky-client';
3
+
import type { XRPC } from '@atcute/client';
4
4
import type {
5
5
AppBskyEmbedRecord,
6
6
AppBskyFeedDefs,
7
7
AppBskyFeedGetTimeline,
8
8
AppBskyFeedPost,
9
9
At,
10
-
} from '@mary/bluesky-client/lexicons';
10
+
} from '@atcute/client/lexicons';
11
11
import { createInfiniteQuery, createQuery, useQueryClient, type InfiniteData } from '@mary/solid-query';
12
12
13
13
import { globalEvents } from '~/globals/events';
···
277
277
278
278
//// Raw fetch
279
279
const fetchPage = async (
280
-
rpc: BskyXRPC,
280
+
rpc: XRPC,
281
281
params: TimelineParams,
282
282
limit: number,
283
283
cursor: string | undefined,
+1
-1
src/api/richtext/parser/parse.ts
+1
-1
src/api/richtext/parser/parse.ts
···
92
92
const WS_RE = / +(?=\n)|\n(?=(?: *\n){2} *)/g;
93
93
export const EOF_WS_RE = /\s+$| +(?=\n)|\n(?=(?: *\n){2}) */g;
94
94
95
-
export const PLAIN_WS_RE = /^\s+|\s+$| +(?=\n)|\n(?=(?: *\n){2}) */g
95
+
export const PLAIN_WS_RE = /^\s+|\s+$| +(?=\n)|\n(?=(?: *\n){2}) */g;
96
96
97
97
const MENTION_RE = /[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*(?:\.[a-zA-Z]{2,})(@)?/y;
98
98
const HASHTAG_RE = /(?!\ufe0f|\u20e3)[\p{N}]*[\p{L}\p{M}\p{Pc}][\p{L}\p{M}\p{Pc}\p{N}]*(#)?/uy;
+1
-1
src/api/richtext/segment.ts
+1
-1
src/api/richtext/segment.ts
+4
-3
src/api/utils/did-doc.ts
+4
-3
src/api/utils/did-doc.ts
···
1
-
import { BskyXRPC, getPdsEndpoint, type DidDocument } from '@mary/bluesky-client';
2
-
import type { At } from '@mary/bluesky-client/lexicons';
1
+
import { XRPC } from '@atcute/client';
2
+
import type { At } from '@atcute/client/lexicons';
3
+
import { getPdsEndpoint, type DidDocument } from '@atcute/client/utils/did';
3
4
4
5
import { DEFAULT_APP_VIEW } from '../defaults';
5
6
import type { DataServer } from '../types';
···
29
30
if (isDid(identifier)) {
30
31
did = identifier;
31
32
} else {
32
-
const rpc = new BskyXRPC({ service: DEFAULT_APP_VIEW });
33
+
const rpc = new XRPC({ service: DEFAULT_APP_VIEW });
33
34
const response = await rpc.get('com.atproto.identity.resolveHandle', {
34
35
params: {
35
36
handle: identifier,
+3
-3
src/api/utils/did.ts
+3
-3
src/api/utils/did.ts
···
1
-
import type { BskyXRPC } from '@mary/bluesky-client';
2
-
import type { At } from '@mary/bluesky-client/lexicons';
1
+
import type { XRPC } from '@atcute/client';
2
+
import type { At } from '@atcute/client/lexicons';
3
3
4
4
import { isDid } from './strings';
5
5
6
-
const getDid = async (rpc: BskyXRPC, actor: string, signal?: AbortSignal) => {
6
+
const getDid = async (rpc: XRPC, actor: string, signal?: AbortSignal) => {
7
7
let did: At.DID;
8
8
if (isDid(actor)) {
9
9
did = actor;
+1
-1
src/api/utils/error.ts
+1
-1
src/api/utils/error.ts
+6
-6
src/api/utils/mutation.ts
+6
-6
src/api/utils/mutation.ts
···
1
-
import { BskyXRPC } from '@mary/bluesky-client';
2
-
import type { At, ComAtprotoRepoGetRecord, Records } from '@mary/bluesky-client/lexicons';
1
+
import type { XRPC } from '@atcute/client';
2
+
import type { At, ComAtprotoRepoGetRecord, Records } from '@atcute/client/lexicons';
3
3
4
4
type RecordType = keyof Records;
5
5
···
12
12
validate?: boolean;
13
13
}
14
14
15
-
export const createRecord = async <K extends RecordType>(rpc: BskyXRPC, options: CreateRecordOptions<K>) => {
15
+
export const createRecord = async <K extends RecordType>(rpc: XRPC, options: CreateRecordOptions<K>) => {
16
16
const { data } = await rpc.call('com.atproto.repo.createRecord', { data: options });
17
17
18
18
return data;
···
28
28
validate?: boolean;
29
29
}
30
30
31
-
export const putRecord = async <K extends RecordType>(rpc: BskyXRPC, options: PutRecordOptions<K>) => {
31
+
export const putRecord = async <K extends RecordType>(rpc: XRPC, options: PutRecordOptions<K>) => {
32
32
const { data } = await rpc.call('com.atproto.repo.putRecord', { data: options });
33
33
34
34
return data;
···
42
42
swapRecord?: string;
43
43
}
44
44
45
-
export const deleteRecord = async <K extends RecordType>(rpc: BskyXRPC, options: DeleteRecordOptions<K>) => {
45
+
export const deleteRecord = async <K extends RecordType>(rpc: XRPC, options: DeleteRecordOptions<K>) => {
46
46
await rpc.call('com.atproto.repo.deleteRecord', {
47
47
data: options,
48
48
});
···
60
60
}
61
61
62
62
export const getRecord = async <K extends RecordType>(
63
-
rpc: BskyXRPC,
63
+
rpc: XRPC,
64
64
options: GetRecordOptions<K>,
65
65
): Promise<GetRecordOutput<Records[K]>> => {
66
66
const { data } = await rpc.get('com.atproto.repo.getRecord', {
+1
-1
src/api/utils/post.ts
+1
-1
src/api/utils/post.ts
+1
-1
src/api/utils/strings.ts
+1
-1
src/api/utils/strings.ts
+2
-1
src/components/avatar.tsx
+2
-1
src/components/avatar.tsx
···
1
-
import type { AppBskyActorDefs } from '@mary/bluesky-client/lexicons';
2
1
import { Match, Switch } from 'solid-js';
2
+
3
+
import type { AppBskyActorDefs } from '@atcute/client/lexicons';
3
4
4
5
import { ContextProfileMedia, getModerationUI, type ModerationCause } from '~/api/moderation';
5
6
+1
-1
src/components/bookmarks/add-post-to-folder-dialog.tsx
+1
-1
src/components/bookmarks/add-post-to-folder-dialog.tsx
···
1
1
import { createMemo, For } from 'solid-js';
2
2
3
-
import type { AppBskyFeedDefs } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyFeedDefs } from '@atcute/client/lexicons';
4
4
import { useQueryClient } from '@mary/solid-query';
5
5
6
6
import { createBookmarkMetaQuery } from '~/api/queries/bookmark';
+1
-1
src/components/bookmarks/bookmark-feed-item.tsx
+1
-1
src/components/bookmarks/bookmark-feed-item.tsx
···
1
1
import { createMemo } from 'solid-js';
2
2
3
-
import type { AppBskyFeedPost } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyFeedPost } from '@atcute/client/lexicons';
4
4
5
5
import { usePostShadow } from '~/api/cache/post-shadow';
6
6
import { ContextContentList, getModerationUI } from '~/api/moderation';
+1
-1
src/components/bookmarks/bookmark-folder-form-dialog.tsx
+1
-1
src/components/bookmarks/bookmark-folder-form-dialog.tsx
+1
-1
src/components/composer/composer-dialog.tsx
+1
-1
src/components/composer/composer-dialog.tsx
···
11
11
} from 'solid-js';
12
12
import { createMutable, unwrap } from 'solid-js/store';
13
13
14
-
import type { AppBskyActorDefs, AppBskyFeedPost } from '@mary/bluesky-client/lexicons';
14
+
import type { AppBskyActorDefs, AppBskyFeedPost } from '@atcute/client/lexicons';
15
15
import { useQueryClient, type CreateQueryResult } from '@mary/solid-query';
16
16
17
17
import { GLOBAL_LABELS, getLocalizedLabel } from '~/api/moderation';
+1
-1
src/components/composer/composer-input.tsx
+1
-1
src/components/composer/composer-input.tsx
+1
-1
src/components/composer/composer-reply-context.tsx
+1
-1
src/components/composer/composer-reply-context.tsx
···
1
1
import { createMemo } from 'solid-js';
2
2
3
-
import type { AppBskyEmbedImages, AppBskyFeedDefs, AppBskyFeedPost } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyEmbedImages, AppBskyFeedDefs, AppBskyFeedPost } from '@atcute/client/lexicons';
4
4
5
5
import { ContextContentMedia, getModerationUI } from '~/api/moderation';
6
6
import { moderatePost } from '~/api/moderation/entities/post';
+1
-1
src/components/composer/embeds/external-embed.tsx
+1
-1
src/components/composer/embeds/external-embed.tsx
+1
-1
src/components/composer/embeds/quote-embed.tsx
+1
-1
src/components/composer/embeds/quote-embed.tsx
+3
-3
src/components/composer/lib/api.ts
+3
-3
src/components/composer/lib/api.ts
···
1
-
import * as TID from '@mary/atproto-tid';
1
+
import { XRPCError } from '@atcute/client';
2
2
import type {
3
3
AppBskyEmbedExternal,
4
4
AppBskyEmbedImages,
···
13
13
ComAtprotoLabelDefs,
14
14
ComAtprotoRepoApplyWrites,
15
15
ComAtprotoRepoStrongRef,
16
-
} from '@mary/bluesky-client/lexicons';
17
-
import { XRPCError } from '@mary/bluesky-client/xrpc';
16
+
} from '@atcute/client/lexicons';
17
+
import * as TID from '@atcute/tid';
18
18
import type { QueryClient } from '@mary/solid-query';
19
19
20
20
import { uploadBlob } from '~/api/queries/blob';
-49
src/components/composer/lib/cbor.ts
-49
src/components/composer/lib/cbor.ts
···
1
-
import * as cborg from 'cborg';
2
-
3
-
import * as base32 from '@mary/base32';
4
-
5
-
import { assert } from '~/lib/invariant';
6
-
7
-
const decodeCidToBytes = (source: string) => {
8
-
// Make sure we're dealing with serialized base32 here.
9
-
assert(source[0] === 'b');
10
-
11
-
const str = source.slice(1);
12
-
return base32.decode(str);
13
-
};
14
-
15
-
const CBORG_ENCODE_OPTIONS: cborg.EncodeOptions = {
16
-
float64: true,
17
-
typeEncoders: {
18
-
number: (num) => {
19
-
if (Number.isNaN(num)) {
20
-
throw new Error('NaN values not supported');
21
-
}
22
-
if (num === Infinity || num === -Infinity) {
23
-
throw new Error('Infinity values not supported');
24
-
}
25
-
26
-
return null;
27
-
},
28
-
undefined: () => {
29
-
throw new Error(`undefined values not supported`);
30
-
},
31
-
Object: (val) => {
32
-
if ('$link' in val && typeof val.$link === 'string') {
33
-
const cid = decodeCidToBytes(val.$link);
34
-
35
-
// CID bytes are prefixed with 0x00 for historical reasons, apparently.
36
-
const bytes = new Uint8Array(cid.byteLength + 1);
37
-
bytes.set(cid, 1);
38
-
39
-
return [new cborg.Token(cborg.Type.tag, 42), new cborg.Token(cborg.Type.bytes, bytes)];
40
-
}
41
-
42
-
return null;
43
-
},
44
-
},
45
-
};
46
-
47
-
export const encodeCbor = (data: any) => {
48
-
return cborg.encode(data, CBORG_ENCODE_OPTIONS);
49
-
};
+4
-64
src/components/composer/lib/cid.ts
+4
-64
src/components/composer/lib/cid.ts
···
1
-
import * as CID from '@mary/atproto-cid';
2
-
3
-
import { encodeCbor } from './cbor';
1
+
import { encode } from '@atcute/cbor';
2
+
import * as CID from '@atcute/cid';
4
3
5
4
// Sanity-check by requiring a $type here, this is because the records are
6
5
// expected to be encoded with it, even though the PDS accepts record writes
7
6
// without the field.
8
7
export const serializeRecordCid = async (record: { $type: string }) => {
9
-
const bytes = encodeCbor(prepareObject(record));
10
-
const cid = await CID.create(0x71, bytes);
8
+
const bytes = encode(record);
11
9
10
+
const cid = await CID.create(0x71, bytes);
12
11
const serialized = CID.format(cid);
13
12
14
13
return serialized;
15
14
};
16
-
17
-
// This function prepares objects for hashing by removing fields with undefined
18
-
// values, as CBOR has an undefined type while JSON doesn't.
19
-
const prepareObject = (v: any): any => {
20
-
// Walk through arrays
21
-
if (isArray(v)) {
22
-
let pure = true;
23
-
24
-
const mapped = v.map((value) => {
25
-
if (value !== (value = prepareObject(value))) {
26
-
pure = false;
27
-
}
28
-
29
-
return value;
30
-
});
31
-
32
-
return pure ? v : mapped;
33
-
}
34
-
35
-
// Walk through plain objects
36
-
if (isPlainObject(v)) {
37
-
const obj: any = {};
38
-
39
-
let pure = true;
40
-
41
-
for (const key in v) {
42
-
let value = v[key];
43
-
44
-
// `value` is undefined
45
-
if (value === undefined) {
46
-
pure = false;
47
-
continue;
48
-
}
49
-
50
-
// `prepareObject` returned a value that's different from what we had before
51
-
if (value !== (value = prepareObject(value))) {
52
-
pure = false;
53
-
}
54
-
55
-
obj[key] = value;
56
-
}
57
-
58
-
// Return as is if we haven't needed to tamper with anything
59
-
return pure ? v : obj;
60
-
}
61
-
62
-
return v;
63
-
};
64
-
65
-
const isArray = Array.isArray;
66
-
67
-
const isPlainObject = (v: any): boolean => {
68
-
if (typeof v !== 'object' || v === null) {
69
-
return false;
70
-
}
71
-
72
-
const proto = Object.getPrototypeOf(v);
73
-
return proto === Object.prototype || proto === null;
74
-
};
+1
-1
src/components/composer/lib/state.tsx
+1
-1
src/components/composer/lib/state.tsx
···
1
1
import { unwrap } from 'solid-js/store';
2
2
3
-
import type { AppBskyFeedDefs, AppBskyFeedThreadgate } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyFeedDefs, AppBskyFeedThreadgate } from '@atcute/client/lexicons';
4
4
5
5
import { parseRt, type PreliminaryRichText } from '~/api/richtext/parser/parse';
6
6
+1
-1
src/components/embeds/embed.tsx
+1
-1
src/components/embeds/embed.tsx
···
4
4
AppBskyEmbedRecord,
5
5
AppBskyFeedDefs,
6
6
Brand,
7
-
} from '@mary/bluesky-client/lexicons';
7
+
} from '@atcute/client/lexicons';
8
8
9
9
import { ContextContentMedia, getModerationUI, type ModerationCause } from '~/api/moderation';
10
10
import { parseAtUri } from '~/api/utils/strings';
+1
-1
src/components/embeds/external-embed.tsx
+1
-1
src/components/embeds/external-embed.tsx
+1
-1
src/components/embeds/feed-embed.tsx
+1
-1
src/components/embeds/feed-embed.tsx
···
1
1
import { createMemo } from 'solid-js';
2
2
3
-
import type { AppBskyFeedDefs } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyFeedDefs } from '@atcute/client/lexicons';
4
4
5
5
import { moderateGeneric } from '~/api/moderation/entities/generic';
6
6
import { parseAtUri } from '~/api/utils/strings';
+1
-1
src/components/embeds/image-embed.tsx
+1
-1
src/components/embeds/image-embed.tsx
+1
-1
src/components/embeds/lib/snippet.tsx
+1
-1
src/components/embeds/lib/snippet.tsx
+1
-1
src/components/embeds/list-embed.tsx
+1
-1
src/components/embeds/list-embed.tsx
···
1
1
import { createMemo } from 'solid-js';
2
2
3
-
import type { AppBskyGraphDefs } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyGraphDefs } from '@atcute/client/lexicons';
4
4
5
5
import { moderateGeneric } from '~/api/moderation/entities/generic';
6
6
import { parseAtUri } from '~/api/utils/strings';
+1
-1
src/components/embeds/quote-embed.tsx
+1
-1
src/components/embeds/quote-embed.tsx
···
5
5
AppBskyEmbedRecord,
6
6
AppBskyFeedDefs,
7
7
AppBskyFeedPost,
8
-
} from '@mary/bluesky-client/lexicons';
8
+
} from '@atcute/client/lexicons';
9
9
10
10
import { ContextContentMedia, getModerationUI } from '~/api/moderation';
11
11
import { moderateQuote } from '~/api/moderation/entities/quote';
+1
-1
src/components/feeds/post-actions.tsx
+1
-1
src/components/feeds/post-actions.tsx
···
1
-
import type { AppBskyFeedDefs } from '@mary/bluesky-client/lexicons';
1
+
import type { AppBskyFeedDefs } from '@atcute/client/lexicons';
2
2
3
3
import { type PostShadowView } from '~/api/cache/post-shadow';
4
4
import { createPostLikeMutation, createPostRepostMutation } from '~/api/mutations/post';
+1
-1
src/components/feeds/post-feed-item.tsx
+1
-1
src/components/feeds/post-feed-item.tsx
···
1
1
import { createMemo } from 'solid-js';
2
2
3
-
import type { AppBskyFeedPost, At } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyFeedPost, At } from '@atcute/client/lexicons';
4
4
import { useQueryClient } from '@mary/solid-query';
5
5
6
6
import { usePostShadow } from '~/api/cache/post-shadow';
+1
-1
src/components/feeds/post-meta.tsx
+1
-1
src/components/feeds/post-meta.tsx
+1
-1
src/components/feeds/post-reply-context.tsx
+1
-1
src/components/feeds/post-reply-context.tsx
+1
-1
src/components/feeds/timeline-list.tsx
+1
-1
src/components/feeds/timeline-list.tsx
+1
-1
src/components/icons-central/link-outline.tsx
+1
-1
src/components/icons-central/link-outline.tsx
+1
-1
src/components/main/sign-in-dialog.tsx
+1
-1
src/components/main/sign-in-dialog.tsx
+1
-1
src/components/moderation/block-account-prompt.tsx
+1
-1
src/components/moderation/block-account-prompt.tsx
···
1
1
import { Match, onMount, Switch } from 'solid-js';
2
2
3
-
import type { AppBskyActorDefs, At } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyActorDefs, At } from '@atcute/client/lexicons';
4
4
import { createMutation } from '@mary/solid-query';
5
5
6
6
import { updateProfileShadow, useProfileShadow } from '~/api/cache/profile-shadow';
+1
-1
src/components/moderation/mute-account-prompt.tsx
+1
-1
src/components/moderation/mute-account-prompt.tsx
···
1
1
import { Match, onMount, Switch } from 'solid-js';
2
2
3
-
import type { AppBskyActorDefs } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyActorDefs } from '@atcute/client/lexicons';
4
4
import { createMutation } from '@mary/solid-query';
5
5
6
6
import { updateProfileShadow, useProfileShadow } from '~/api/cache/profile-shadow';
+1
-1
src/components/notifications/notification-item.tsx
+1
-1
src/components/notifications/notification-item.tsx
···
5
5
AppBskyFeedDefs,
6
6
AppBskyFeedPost,
7
7
AppBskyNotificationListNotifications,
8
-
} from '@mary/bluesky-client/lexicons';
8
+
} from '@atcute/client/lexicons';
9
9
import { useQueryClient } from '@mary/solid-query';
10
10
11
11
import { moderateProfile } from '~/api/moderation/entities/profile';
+1
-1
src/components/profiles/edit-profile-dialog.tsx
+1
-1
src/components/profiles/edit-profile-dialog.tsx
···
1
1
import { createMemo, createSignal, Show } from 'solid-js';
2
2
3
-
import type { AppBskyActorDefs, At } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyActorDefs, At } from '@atcute/client/lexicons';
4
4
import { createMutation } from '@mary/solid-query';
5
5
6
6
import { uploadBlob } from '~/api/queries/blob';
+1
-1
src/components/profiles/profile-item.tsx
+1
-1
src/components/profiles/profile-item.tsx
···
1
1
import { createMemo, type JSX } from 'solid-js';
2
2
3
-
import type { AppBskyActorDefs } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyActorDefs } from '@atcute/client/lexicons';
4
4
import { useQueryClient } from '@mary/solid-query';
5
5
6
6
import { moderateProfile } from '~/api/moderation/entities/profile';
+1
-1
src/components/profiles/profile-view-header.tsx
+1
-1
src/components/profiles/profile-view-header.tsx
···
1
1
import { type Component, type ComponentProps, createMemo, type JSX, Match, Show, Switch } from 'solid-js';
2
2
3
-
import type { AppBskyActorDefs } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyActorDefs } from '@atcute/client/lexicons';
4
4
5
5
import { useProfileShadow } from '~/api/cache/profile-shadow';
6
6
import { ContextProfileMedia, getModerationUI } from '~/api/moderation';
+1
-1
src/components/rich-text.tsx
+1
-1
src/components/rich-text.tsx
···
1
1
import type { JSX } from 'solid-js';
2
2
3
-
import type { AppBskyRichtextFacet } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyRichtextFacet } from '@atcute/client/lexicons';
4
4
5
5
import { segmentRichText } from '~/api/richtext/segment';
6
6
import { isLinkValid, safeUrlParse } from '~/api/utils/strings';
+1
-1
src/components/threads/highlighted-post.tsx
+1
-1
src/components/threads/highlighted-post.tsx
···
1
1
import { createMemo } from 'solid-js';
2
2
3
-
import type { AppBskyFeedDefs, AppBskyFeedPost } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyFeedDefs, AppBskyFeedPost } from '@atcute/client/lexicons';
4
4
5
5
import { usePostShadow } from '~/api/cache/post-shadow';
6
6
import { ContextContentView, getModerationUI } from '~/api/moderation';
+1
-1
src/components/threads/post-thread-item.tsx
+1
-1
src/components/threads/post-thread-item.tsx
···
1
1
import { createMemo, type JSX, Show } from 'solid-js';
2
2
3
-
import type { AppBskyFeedPost } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyFeedPost } from '@atcute/client/lexicons';
4
4
import { useQueryClient } from '@mary/solid-query';
5
5
6
6
import { usePostShadow } from '~/api/cache/post-shadow';
+1
-1
src/lib/aglais-bookmarks/db.ts
+1
-1
src/lib/aglais-bookmarks/db.ts
+1
-1
src/lib/aglais-bookmarks/search.ts
+1
-1
src/lib/aglais-bookmarks/search.ts
+1
-1
src/lib/preferences/account.ts
+1
-1
src/lib/preferences/account.ts
+2
-2
src/lib/preferences/sessions.ts
+2
-2
src/lib/preferences/sessions.ts
···
1
-
import type { AtpSessionData } from '@mary/bluesky-client';
2
-
import type { At } from '@mary/bluesky-client/lexicons';
1
+
import type { At } from '@atcute/client/lexicons';
2
+
import type { AtpSessionData } from '@atcute/client/middlewares/auth';
3
3
4
4
export interface SessionPreferenceSchema {
5
5
$version: 1;
+5
-4
src/lib/states/agent.tsx
+5
-4
src/lib/states/agent.tsx
···
1
1
import { createContext, createMemo, useContext, type JSX, type ParentProps } from 'solid-js';
2
2
3
-
import { BskyXRPC, type BskyAuth } from '@mary/bluesky-client';
3
+
import { XRPC } from '@atcute/client';
4
+
import type { AtpAuth } from '@atcute/client/middlewares/auth';
4
5
import { QueryClient, QueryClientProvider } from '@mary/solid-query';
5
6
6
7
import { assert } from '../invariant';
···
10
11
import { useSession } from './session';
11
12
12
13
export interface AgentContext {
13
-
rpc: BskyXRPC;
14
-
auth: BskyAuth | null;
14
+
rpc: XRPC;
15
+
auth: AtpAuth | null;
15
16
persister: ReturnType<typeof createQueryPersister>;
16
17
}
17
18
···
32
33
}
33
34
34
35
return {
35
-
rpc: new BskyXRPC({ service: 'https://public.api.bsky.app' }),
36
+
rpc: new XRPC({ service: 'https://public.api.bsky.app' }),
36
37
auth: null,
37
38
persister: createQueryPersister({ name: `queryCache-public` }),
38
39
};
+1
-1
src/lib/states/moderation.tsx
+1
-1
src/lib/states/moderation.tsx
···
1
1
import { createContext, createMemo, useContext, type ParentProps } from 'solid-js';
2
2
import { unwrap } from 'solid-js/store';
3
3
4
-
import type { AppBskyLabelerDefs, At } from '@mary/bluesky-client/lexicons';
4
+
import type { AppBskyLabelerDefs, At } from '@atcute/client/lexicons';
5
5
import { createQueries } from '@mary/solid-query';
6
6
7
7
import { BLUESKY_MODERATION_DID } from '~/api/defaults';
+14
-12
src/lib/states/session.tsx
+14
-12
src/lib/states/session.tsx
···
10
10
} from 'solid-js';
11
11
import { unwrap } from 'solid-js/store';
12
12
13
-
import { BskyAuth, BskyMod, BskyXRPC, type AtpAccessJwt, type BskyAuthOptions } from '@mary/bluesky-client';
14
-
import type { At } from '@mary/bluesky-client/lexicons';
15
-
import { decodeJwt } from '@mary/bluesky-client/utils/jwt';
13
+
import { XRPC } from '@atcute/client';
14
+
import type { At } from '@atcute/client/lexicons';
15
+
import { AtpAuth, type AtpAccessJwt, type AtpAuthOptions } from '@atcute/client/middlewares/auth';
16
+
import { AtpMod } from '@atcute/client/middlewares/mod';
17
+
import { decodeJwt } from '@atcute/client/utils/jwt';
16
18
17
19
import { BLUESKY_MODERATION_DID } from '~/api/defaults';
18
20
···
39
41
readonly data: AccountData;
40
42
readonly preferences: PerAccountPreferenceSchema;
41
43
42
-
readonly rpc: BskyXRPC;
43
-
readonly auth: BskyAuth;
44
+
readonly rpc: XRPC;
45
+
readonly auth: AtpAuth;
44
46
readonly _cleanup: () => void;
45
47
}
46
48
···
68
70
});
69
71
};
70
72
71
-
const createAccountState = (account: AccountData, rpc: BskyXRPC, auth: BskyAuth): CurrentAccountState => {
73
+
const createAccountState = (account: AccountData, rpc: XRPC, auth: AtpAuth): CurrentAccountState => {
72
74
return createRoot((cleanup): CurrentAccountState => {
73
75
const preferences = createAccountPreferences(account.did);
74
-
const mod = new BskyMod(rpc);
76
+
const mod = new AtpMod(rpc);
75
77
76
78
const [abortable] = makeAbortable();
77
79
···
130
132
}, null);
131
133
};
132
134
133
-
const getAuthOptions = (): BskyAuthOptions => {
135
+
const getAuthOptions = (): AtpAuthOptions => {
134
136
return {
135
137
onExpired() {
136
138
globalEvents.emit('sessionexpired');
···
158
160
const signal = getSignal();
159
161
const session = unwrap(account.session);
160
162
161
-
const rpc = new BskyXRPC({ service: account.service });
162
-
const auth = new BskyAuth(rpc, getAuthOptions());
163
+
const rpc = new XRPC({ service: account.service });
164
+
const auth = new AtpAuth(rpc, getAuthOptions());
163
165
164
166
await auth.resume(session);
165
167
signal.throwIfAborted();
···
184
186
async login(opts: LoginOptions): Promise<void> {
185
187
const signal = getSignal();
186
188
187
-
const rpc = new BskyXRPC({ service: opts.service });
188
-
const auth = new BskyAuth(rpc, getAuthOptions());
189
+
const rpc = new XRPC({ service: opts.service });
190
+
const auth = new AtpAuth(rpc, getAuthOptions());
189
191
190
192
await auth.login({ identifier: opts.identifier, password: opts.password, code: opts.authFactorToken });
191
193
signal.throwIfAborted();
+1
-1
src/shell.tsx
+1
-1
src/shell.tsx
···
1
1
import { Suspense, lazy, type Accessor, type Component, type ComponentProps } from 'solid-js';
2
2
3
-
import type { AppBskyNotificationGetUnreadCount } from '@mary/bluesky-client/lexicons';
3
+
import type { AppBskyNotificationGetUnreadCount } from '@atcute/client/lexicons';
4
4
import type { DefinedCreateQueryResult } from '@mary/solid-query';
5
5
6
6
import { createNotificationCountQuery } from './api/queries/notification-count';
+2
-2
src/views/post-thread.tsx
+2
-2
src/views/post-thread.tsx
···
1
1
import { For, Match, Switch, createEffect, createMemo } from 'solid-js';
2
2
3
-
import type { AppBskyFeedDefs, AppBskyFeedPost, At, Brand } from '@mary/bluesky-client/lexicons';
4
-
import { XRPCError } from '@mary/bluesky-client/xrpc';
3
+
import { XRPCError } from '@atcute/client';
4
+
import type { AppBskyFeedDefs, AppBskyFeedPost, At, Brand } from '@atcute/client/lexicons';
5
5
import { useQueryClient } from '@mary/solid-query';
6
6
7
7
import {
+1
-1
src/views/profile-labels.tsx
+1
-1
src/views/profile-labels.tsx
+2
-2
src/views/profile.tsx
+2
-2
src/views/profile.tsx
···
1
1
import { createSignal, Match, Show, Switch } from 'solid-js';
2
2
3
-
import type { AppBskyActorDefs } from '@mary/bluesky-client/lexicons';
4
-
import { XRPCError } from '@mary/bluesky-client/xrpc';
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';
+2
-2
src/views/settings-app-passwords.tsx
+2
-2
src/views/settings-app-passwords.tsx
···
1
1
import { For, Match, Show, Switch } from 'solid-js';
2
2
3
-
import type { ComAtprotoServerListAppPasswords } from '@mary/bluesky-client/lexicons';
4
-
import { XRPCError } from '@mary/bluesky-client/xrpc';
3
+
import { XRPCError } from '@atcute/client';
4
+
import type { ComAtprotoServerListAppPasswords } from '@atcute/client/lexicons';
5
5
import { createMutation, createQuery } from '@mary/solid-query';
6
6
7
7
import { openModal } from '~/globals/modals';