personal web client for Bluesky
typescript solidjs bluesky atcute

refactor: migrate to atcute library

mary.my.id 9dfc042e edcd393d

verified
Changed files
+222 -404
patches
src
api
components
lib
views
+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
··· 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
··· 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
··· 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 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 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
··· 4 4 AppBskyFeedPost, 5 5 At, 6 6 Brand, 7 - } from '@mary/bluesky-client/lexicons'; 7 + } from '@atcute/client/lexicons'; 8 8 9 9 import type { ThreadViewPreferences } from '~/lib/preferences/account'; 10 10
+1 -1
src/api/models/timeline.ts
··· 1 - import type { AppBskyActorDefs, AppBskyFeedDefs } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyActorDefs, AppBskyFeedDefs } from '@atcute/client/lexicons'; 2 2 3 3 type Post = AppBskyFeedDefs.PostView; 4 4 type TimelineItem = AppBskyFeedDefs.FeedViewPost;
+1 -1
src/api/moderation/entities/generic.ts
··· 1 - import type { At, ComAtprotoLabelDefs } from '@mary/bluesky-client/lexicons'; 1 + import type { At, ComAtprotoLabelDefs } from '@atcute/client/lexicons'; 2 2 3 3 import { TargetContent, decideLabelModeration, type ModerationCause, type ModerationOptions } from '..'; 4 4
+1 -1
src/api/moderation/entities/post.ts
··· 1 - import type { AppBskyFeedDefs, AppBskyFeedPost } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyFeedDefs, AppBskyFeedPost } from '@atcute/client/lexicons'; 2 2 3 3 import { unwrapPostEmbedText } from '~/api/utils/post'; 4 4
+1 -1
src/api/moderation/entities/profile.ts
··· 1 - import type { AppBskyActorDefs } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyActorDefs } from '@atcute/client/lexicons'; 2 2 3 3 import { 4 4 TargetAccount,
+1 -1
src/api/moderation/entities/quote.ts
··· 1 - import type { AppBskyEmbedRecord, AppBskyFeedPost } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyEmbedRecord, AppBskyFeedPost } from '@atcute/client/lexicons'; 2 2 3 3 import { unwrapPostEmbedText } from '~/api/utils/post'; 4 4
+1 -1
src/api/moderation/index.ts
··· 1 - import type { At, ComAtprotoLabelDefs } from '@mary/bluesky-client/lexicons'; 1 + import type { At, ComAtprotoLabelDefs } from '@atcute/client/lexicons'; 2 2 3 3 type Label = ComAtprotoLabelDefs.Label; 4 4
+1 -1
src/api/moderation/labeler.ts
··· 1 - import type { AppBskyLabelerDefs } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyLabelerDefs } from '@atcute/client/lexicons'; 2 2 3 3 import { mapDefined } from '~/lib/misc'; 4 4
+1 -1
src/api/mutations/post.ts
··· 1 - import type { AppBskyFeedDefs } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyFeedDefs } from '@atcute/client/lexicons'; 2 2 import { useQueryClient } from '@mary/solid-query'; 3 3 4 4 import { useAgent } from '~/lib/states/agent';
+1 -1
src/api/mutations/profile.ts
··· 1 - import type { AppBskyActorDefs } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyActorDefs } from '@atcute/client/lexicons'; 2 2 import { useQueryClient } from '@mary/solid-query'; 3 3 4 4 import { useAgent } from '~/lib/states/agent';
+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 - 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
··· 3 3 AppBskyFeedDefs, 4 4 AppBskyFeedGetPostThread, 5 5 At, 6 - } from '@mary/bluesky-client/lexicons'; 6 + } from '@atcute/client/lexicons'; 7 7 8 8 import type { CacheMatcher } from '../cache/utils'; 9 9 import { embedViewRecordToPostView, getEmbeddedPost } from '../utils/post';
+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 - 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 - 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 - import type { AppBskyActorDefs } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyActorDefs } from '@atcute/client/lexicons'; 2 2 import type { QueryClient } from '@mary/solid-query'; 3 3 4 4 export const precacheProfile = (
+1 -1
src/api/queries-cache/profile.ts
··· 1 - import type { AppBskyActorDefs, At } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyActorDefs, At } from '@atcute/client/lexicons'; 2 2 3 3 import type { CacheMatcher } from '../cache/utils'; 4 4
+1 -1
src/api/queries-cache/subject-likers.ts
··· 1 - import type { AppBskyActorDefs, At } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyActorDefs, 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/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 - 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
··· 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 - 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 - import type { AppBskyFeedDefs, At } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyFeedDefs, At } from '@atcute/client/lexicons'; 2 2 import { createQuery } from '@mary/solid-query'; 3 3 4 4 import { useAgent } from '~/lib/states/agent';
+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
··· 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 - import type { At } from '@mary/bluesky-client/lexicons'; 1 + import type { At } from '@atcute/client/lexicons'; 2 2 import { createQuery } from '@mary/solid-query'; 3 3 4 4 import { useAgent } from '~/lib/states/agent';
+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
··· 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 - import type { At } from '@mary/bluesky-client/lexicons'; 1 + import type { At } from '@atcute/client/lexicons'; 2 2 import { createQuery } from '@mary/solid-query'; 3 3 4 4 import { useAgent } from '~/lib/states/agent';
+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 - 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 - 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 - import type { AppBskyActorDefs } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyActorDefs } from '@atcute/client/lexicons'; 2 2 import { createQuery, type QueryPersister } from '@mary/solid-query'; 3 3 4 4 import { useAgent } from '~/lib/states/agent';
+1 -1
src/api/queries/subject-likers.ts
··· 1 - import type { AppBskyActorDefs } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyActorDefs } 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
+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
··· 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
··· 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 - import type { AppBskyRichtextFacet } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyRichtextFacet } from '@atcute/client/lexicons'; 2 2 3 3 import type { UnwrapArray } from '../utils/types'; 4 4 import { textDecoder, textEncoder } from './intl';
+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
··· 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 - import { XRPCError } from '@mary/bluesky-client/xrpc'; 1 + import { XRPCError } from '@atcute/client'; 2 2 3 3 export const formatXRPCError = (err: XRPCError): string => { 4 4 const name = err.kind;
+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
··· 5 5 AppBskyFeedDefs, 6 6 AppBskyFeedPost, 7 7 Brand, 8 - } from '@mary/bluesky-client/lexicons'; 8 + } from '@atcute/client/lexicons'; 9 9 10 10 type RecordEmbed = AppBskyFeedPost.Record['embed']; 11 11 type ViewEmbed = AppBskyFeedDefs.PostView['embed'];
+1 -1
src/api/utils/strings.ts
··· 1 - import type { At } from '@mary/bluesky-client/lexicons'; 1 + import type { At } from '@atcute/client/lexicons'; 2 2 3 3 import { assert } from '~/lib/invariant'; 4 4
+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 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 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 import { createMemo, createSignal } from 'solid-js'; 2 2 3 - import * as TID from '@mary/atproto-tid'; 3 + import * as TID from '@atcute/tid'; 4 4 import { useQueryClient } from '@mary/solid-query'; 5 5 6 6 import { useModalContext } from '~/globals/modals';
+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
··· 11 11 type JSX, 12 12 } from 'solid-js'; 13 13 14 - import type { AppBskyActorDefs } from '@mary/bluesky-client/lexicons'; 14 + import type { AppBskyActorDefs } from '@atcute/client/lexicons'; 15 15 16 16 import { autoPlacement, autoUpdate, offset, shift, size } from '@floating-ui/dom'; 17 17
+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/dialogs/threadgate-menu.tsx
··· 1 1 import { createMemo } from 'solid-js'; 2 2 3 - import type { AppBskyFeedThreadgate } from '@mary/bluesky-client/lexicons'; 3 + import type { AppBskyFeedThreadgate } from '@atcute/client/lexicons'; 4 4 5 5 import { useModalContext } from '~/globals/modals'; 6 6
+1 -1
src/components/composer/embeds/external-embed.tsx
··· 1 1 import { Match, Switch, onCleanup } from 'solid-js'; 2 2 3 - import type { AppBskyEmbedExternal } from '@mary/bluesky-client/lexicons'; 3 + import type { AppBskyEmbedExternal } from '@atcute/client/lexicons'; 4 4 5 5 import { createLinkMetaQuery } from '~/api/queries/composer'; 6 6
+1 -1
src/components/composer/embeds/quote-embed.tsx
··· 1 1 import { Match, Switch } from 'solid-js'; 2 2 3 - import type { AppBskyEmbedRecord } from '@mary/bluesky-client/lexicons'; 3 + import type { AppBskyEmbedRecord } from '@atcute/client/lexicons'; 4 4 5 5 import { createPostQuery } from '~/api/queries/post'; 6 6
+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
··· 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
··· 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 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
··· 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 import { createSignal, type JSX } from 'solid-js'; 2 2 3 - import type { AppBskyEmbedExternal } from '@mary/bluesky-client/lexicons'; 3 + import type { AppBskyEmbedExternal } from '@atcute/client/lexicons'; 4 4 5 5 import { safeUrlParse } from '~/api/utils/strings'; 6 6
+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 - import type { AppBskyEmbedImages } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyEmbedImages } from '@atcute/client/lexicons'; 2 2 3 3 import { openModal } from '~/globals/modals'; 4 4
+1 -1
src/components/embeds/lib/snippet.tsx
··· 1 - import type { AppBskyEmbedExternal } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyEmbedExternal } from '@atcute/client/lexicons'; 2 2 3 3 import { safeUrlParse } from '~/api/utils/strings'; 4 4
+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
··· 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 - 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 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 - import type { AppBskyFeedDefs } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyFeedDefs } from '@atcute/client/lexicons'; 2 2 import { useQueryClient } from '@mary/solid-query'; 3 3 4 4 import { precacheProfile } from '~/api/queries-cache/profile-precache';
+1 -1
src/components/feeds/post-overflow-menu.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 import { useQueryClient } from '@mary/solid-query'; 5 5 6 6 import { updatePostShadow } from '~/api/cache/post-shadow';
+1 -1
src/components/feeds/post-reply-context.tsx
··· 1 - import type { AppBskyFeedPost } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyFeedPost } from '@atcute/client/lexicons'; 2 2 3 3 import type { UiTimelineItem } from '~/api/models/timeline'; 4 4 import { createProfileQuery } from '~/api/queries/profile';
+1 -1
src/components/feeds/timeline-list.tsx
··· 1 - import type { At } from '@mary/bluesky-client/lexicons'; 1 + import type { At } from '@atcute/client/lexicons'; 2 2 3 3 import { useTimelineQuery, type TimelineParams } from '~/api/queries/timeline'; 4 4
+1 -1
src/components/main/sign-in-dialog.tsx
··· 1 1 import { Match, Switch, batch, createSignal } from 'solid-js'; 2 2 3 - import { XRPCError } from '@mary/bluesky-client/xrpc'; 3 + import { XRPCError } from '@atcute/client'; 4 4 import { createMutation } from '@mary/solid-query'; 5 5 6 6 import { DEFAULT_DATA_SERVER } from '~/api/defaults';
+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 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
··· 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 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-follow-button.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 5 5 import { useProfileShadow } from '~/api/cache/profile-shadow'; 6 6 import { createProfileFollowMutation } from '~/api/mutations/profile';
+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-overflow-menu.tsx
··· 1 1 import { createMemo } 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
+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 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 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 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 import type { DBSchema } from 'idb'; 2 2 3 - import type { AppBskyFeedDefs } from '@mary/bluesky-client/lexicons'; 3 + import type { AppBskyFeedDefs } from '@atcute/client/lexicons'; 4 4 5 5 export interface BookmarkDBSchema extends DBSchema { 6 6 tags: {
+1 -1
src/lib/aglais-bookmarks/search.ts
··· 1 - import type { AppBskyFeedDefs, AppBskyFeedPost } from '@mary/bluesky-client/lexicons'; 1 + import type { AppBskyFeedDefs, AppBskyFeedPost } from '@atcute/client/lexicons'; 2 2 import { DID_RE, HANDLE_RE } from '~/api/utils/strings'; 3 3 4 4 const SIMPLE_DATE_RE = /^\d{4}-[01]\d-[0-3]\d$/;
+1 -1
src/lib/preferences/account.ts
··· 1 - import type { At } from '@mary/bluesky-client/lexicons'; 1 + import type { At } from '@atcute/client/lexicons'; 2 2 3 3 import type { ModerationLabeler, ModerationPreferences } from '~/api/moderation'; 4 4
+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
··· 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 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
··· 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 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
··· 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 import { createMemo, Match, Show, Switch } from 'solid-js'; 2 2 3 - import type { At } from '@mary/bluesky-client/lexicons'; 3 + import type { At } from '@atcute/client/lexicons'; 4 4 5 5 import { 6 6 BlurContent,
+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
··· 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';
+1 -1
src/vite-env.d.ts
··· 1 - /// <reference types="svelte" /> 2 1 /// <reference types="vite/client" /> 2 + /// <reference types="@atcute/bluesky/lexicons" />