this repo has no description

Added mutex to fix duplicated posts

Changed files
+179 -57
src
+172 -57
deno.lock
··· 1 1 { 2 - "version": "4", 2 + "version": "5", 3 3 "specifiers": { 4 4 "npm:@atcute/bluesky@^2.0.2": "2.0.2_@atcute+client@3.0.1", 5 5 "npm:@atcute/client@^3.0.1": "3.0.1", ··· 7 7 "npm:@sveltejs/vite-plugin-svelte@^5.0.3": "5.0.3_svelte@5.28.1__acorn@8.14.1_vite@6.3.2__picomatch@4.0.2", 8 8 "npm:@tsconfig/svelte@^5.0.4": "5.0.4", 9 9 "npm:moment@^2.30.1": "2.30.1", 10 + "npm:mutex-ts@^1.2.1": "1.2.1", 10 11 "npm:svelte-check@^4.1.5": "4.1.6_svelte@5.28.1__acorn@8.14.1_typescript@5.7.3", 11 12 "npm:svelte-infinite-loading@^1.4.0": "1.4.0", 12 13 "npm:svelte@^5.23.1": "5.28.1_acorn@8.14.1", ··· 54 55 "integrity": "sha512-GEhUCk9c4XbNxi+0YZHZsV4fYNd6HejfWuN4Ti4c02DauX+LyX5WY1Y3WfyZ8Pxxl0zqhs+MLtW98cMh86vv6g==" 55 56 }, 56 57 "@esbuild/aix-ppc64@0.25.2": { 57 - "integrity": "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==" 58 + "integrity": "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==", 59 + "os": ["aix"], 60 + "cpu": ["ppc64"] 58 61 }, 59 62 "@esbuild/android-arm64@0.25.2": { 60 - "integrity": "sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==" 63 + "integrity": "sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==", 64 + "os": ["android"], 65 + "cpu": ["arm64"] 61 66 }, 62 67 "@esbuild/android-arm@0.25.2": { 63 - "integrity": "sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==" 68 + "integrity": "sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==", 69 + "os": ["android"], 70 + "cpu": ["arm"] 64 71 }, 65 72 "@esbuild/android-x64@0.25.2": { 66 - "integrity": "sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==" 73 + "integrity": "sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==", 74 + "os": ["android"], 75 + "cpu": ["x64"] 67 76 }, 68 77 "@esbuild/darwin-arm64@0.25.2": { 69 - "integrity": "sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==" 78 + "integrity": "sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==", 79 + "os": ["darwin"], 80 + "cpu": ["arm64"] 70 81 }, 71 82 "@esbuild/darwin-x64@0.25.2": { 72 - "integrity": "sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==" 83 + "integrity": "sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==", 84 + "os": ["darwin"], 85 + "cpu": ["x64"] 73 86 }, 74 87 "@esbuild/freebsd-arm64@0.25.2": { 75 - "integrity": "sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==" 88 + "integrity": "sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==", 89 + "os": ["freebsd"], 90 + "cpu": ["arm64"] 76 91 }, 77 92 "@esbuild/freebsd-x64@0.25.2": { 78 - "integrity": "sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==" 93 + "integrity": "sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==", 94 + "os": ["freebsd"], 95 + "cpu": ["x64"] 79 96 }, 80 97 "@esbuild/linux-arm64@0.25.2": { 81 - "integrity": "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==" 98 + "integrity": "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==", 99 + "os": ["linux"], 100 + "cpu": ["arm64"] 82 101 }, 83 102 "@esbuild/linux-arm@0.25.2": { 84 - "integrity": "sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==" 103 + "integrity": "sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==", 104 + "os": ["linux"], 105 + "cpu": ["arm"] 85 106 }, 86 107 "@esbuild/linux-ia32@0.25.2": { 87 - "integrity": "sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==" 108 + "integrity": "sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==", 109 + "os": ["linux"], 110 + "cpu": ["ia32"] 88 111 }, 89 112 "@esbuild/linux-loong64@0.25.2": { 90 - "integrity": "sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==" 113 + "integrity": "sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==", 114 + "os": ["linux"], 115 + "cpu": ["loong64"] 91 116 }, 92 117 "@esbuild/linux-mips64el@0.25.2": { 93 - "integrity": "sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==" 118 + "integrity": "sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==", 119 + "os": ["linux"], 120 + "cpu": ["mips64el"] 94 121 }, 95 122 "@esbuild/linux-ppc64@0.25.2": { 96 - "integrity": "sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==" 123 + "integrity": "sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==", 124 + "os": ["linux"], 125 + "cpu": ["ppc64"] 97 126 }, 98 127 "@esbuild/linux-riscv64@0.25.2": { 99 - "integrity": "sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==" 128 + "integrity": "sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==", 129 + "os": ["linux"], 130 + "cpu": ["riscv64"] 100 131 }, 101 132 "@esbuild/linux-s390x@0.25.2": { 102 - "integrity": "sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==" 133 + "integrity": "sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==", 134 + "os": ["linux"], 135 + "cpu": ["s390x"] 103 136 }, 104 137 "@esbuild/linux-x64@0.25.2": { 105 - "integrity": "sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==" 138 + "integrity": "sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==", 139 + "os": ["linux"], 140 + "cpu": ["x64"] 106 141 }, 107 142 "@esbuild/netbsd-arm64@0.25.2": { 108 - "integrity": "sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==" 143 + "integrity": "sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==", 144 + "os": ["netbsd"], 145 + "cpu": ["arm64"] 109 146 }, 110 147 "@esbuild/netbsd-x64@0.25.2": { 111 - "integrity": "sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==" 148 + "integrity": "sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==", 149 + "os": ["netbsd"], 150 + "cpu": ["x64"] 112 151 }, 113 152 "@esbuild/openbsd-arm64@0.25.2": { 114 - "integrity": "sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==" 153 + "integrity": "sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==", 154 + "os": ["openbsd"], 155 + "cpu": ["arm64"] 115 156 }, 116 157 "@esbuild/openbsd-x64@0.25.2": { 117 - "integrity": "sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==" 158 + "integrity": "sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==", 159 + "os": ["openbsd"], 160 + "cpu": ["x64"] 118 161 }, 119 162 "@esbuild/sunos-x64@0.25.2": { 120 - "integrity": "sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==" 163 + "integrity": "sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==", 164 + "os": ["sunos"], 165 + "cpu": ["x64"] 121 166 }, 122 167 "@esbuild/win32-arm64@0.25.2": { 123 - "integrity": "sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==" 168 + "integrity": "sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==", 169 + "os": ["win32"], 170 + "cpu": ["arm64"] 124 171 }, 125 172 "@esbuild/win32-ia32@0.25.2": { 126 - "integrity": "sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==" 173 + "integrity": "sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==", 174 + "os": ["win32"], 175 + "cpu": ["ia32"] 127 176 }, 128 177 "@esbuild/win32-x64@0.25.2": { 129 - "integrity": "sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==" 178 + "integrity": "sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==", 179 + "os": ["win32"], 180 + "cpu": ["x64"] 130 181 }, 131 182 "@jridgewell/gen-mapping@0.3.8": { 132 183 "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", ··· 153 204 ] 154 205 }, 155 206 "@rollup/rollup-android-arm-eabi@4.40.0": { 156 - "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==" 207 + "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==", 208 + "os": ["android"], 209 + "cpu": ["arm"] 157 210 }, 158 211 "@rollup/rollup-android-arm64@4.40.0": { 159 - "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==" 212 + "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==", 213 + "os": ["android"], 214 + "cpu": ["arm64"] 160 215 }, 161 216 "@rollup/rollup-darwin-arm64@4.40.0": { 162 - "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==" 217 + "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==", 218 + "os": ["darwin"], 219 + "cpu": ["arm64"] 163 220 }, 164 221 "@rollup/rollup-darwin-x64@4.40.0": { 165 - "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==" 222 + "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==", 223 + "os": ["darwin"], 224 + "cpu": ["x64"] 166 225 }, 167 226 "@rollup/rollup-freebsd-arm64@4.40.0": { 168 - "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==" 227 + "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==", 228 + "os": ["freebsd"], 229 + "cpu": ["arm64"] 169 230 }, 170 231 "@rollup/rollup-freebsd-x64@4.40.0": { 171 - "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==" 232 + "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==", 233 + "os": ["freebsd"], 234 + "cpu": ["x64"] 172 235 }, 173 236 "@rollup/rollup-linux-arm-gnueabihf@4.40.0": { 174 - "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==" 237 + "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==", 238 + "os": ["linux"], 239 + "cpu": ["arm"] 175 240 }, 176 241 "@rollup/rollup-linux-arm-musleabihf@4.40.0": { 177 - "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==" 242 + "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==", 243 + "os": ["linux"], 244 + "cpu": ["arm"] 178 245 }, 179 246 "@rollup/rollup-linux-arm64-gnu@4.40.0": { 180 - "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==" 247 + "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==", 248 + "os": ["linux"], 249 + "cpu": ["arm64"] 181 250 }, 182 251 "@rollup/rollup-linux-arm64-musl@4.40.0": { 183 - "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==" 252 + "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==", 253 + "os": ["linux"], 254 + "cpu": ["arm64"] 184 255 }, 185 256 "@rollup/rollup-linux-loongarch64-gnu@4.40.0": { 186 - "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==" 257 + "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==", 258 + "os": ["linux"], 259 + "cpu": ["loong64"] 187 260 }, 188 261 "@rollup/rollup-linux-powerpc64le-gnu@4.40.0": { 189 - "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==" 262 + "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==", 263 + "os": ["linux"], 264 + "cpu": ["ppc64"] 190 265 }, 191 266 "@rollup/rollup-linux-riscv64-gnu@4.40.0": { 192 - "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==" 267 + "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==", 268 + "os": ["linux"], 269 + "cpu": ["riscv64"] 193 270 }, 194 271 "@rollup/rollup-linux-riscv64-musl@4.40.0": { 195 - "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==" 272 + "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==", 273 + "os": ["linux"], 274 + "cpu": ["riscv64"] 196 275 }, 197 276 "@rollup/rollup-linux-s390x-gnu@4.40.0": { 198 - "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==" 277 + "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==", 278 + "os": ["linux"], 279 + "cpu": ["s390x"] 199 280 }, 200 281 "@rollup/rollup-linux-x64-gnu@4.40.0": { 201 - "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==" 282 + "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==", 283 + "os": ["linux"], 284 + "cpu": ["x64"] 202 285 }, 203 286 "@rollup/rollup-linux-x64-musl@4.40.0": { 204 - "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==" 287 + "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==", 288 + "os": ["linux"], 289 + "cpu": ["x64"] 205 290 }, 206 291 "@rollup/rollup-win32-arm64-msvc@4.40.0": { 207 - "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==" 292 + "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==", 293 + "os": ["win32"], 294 + "cpu": ["arm64"] 208 295 }, 209 296 "@rollup/rollup-win32-ia32-msvc@4.40.0": { 210 - "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==" 297 + "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==", 298 + "os": ["win32"], 299 + "cpu": ["ia32"] 211 300 }, 212 301 "@rollup/rollup-win32-x64-msvc@4.40.0": { 213 - "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==" 302 + "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==", 303 + "os": ["win32"], 304 + "cpu": ["x64"] 214 305 }, 215 306 "@sveltejs/acorn-typescript@1.0.5_acorn@8.14.1": { 216 307 "integrity": "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==", ··· 247 338 "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==" 248 339 }, 249 340 "acorn@8.14.1": { 250 - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==" 341 + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", 342 + "bin": true 251 343 }, 252 344 "aria-query@5.3.2": { 253 345 "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==" ··· 275 367 }, 276 368 "esbuild@0.25.2": { 277 369 "integrity": "sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==", 278 - "dependencies": [ 370 + "optionalDependencies": [ 279 371 "@esbuild/aix-ppc64", 280 372 "@esbuild/android-arm", 281 373 "@esbuild/android-arm64", ··· 301 393 "@esbuild/win32-arm64", 302 394 "@esbuild/win32-ia32", 303 395 "@esbuild/win32-x64" 304 - ] 396 + ], 397 + "scripts": true, 398 + "bin": true 305 399 }, 306 400 "esm-env@1.2.2": { 307 401 "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==" ··· 316 410 "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", 317 411 "dependencies": [ 318 412 "picomatch" 413 + ], 414 + "optionalPeers": [ 415 + "picomatch" 319 416 ] 320 417 }, 321 418 "fsevents@2.3.3": { 322 - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==" 419 + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 420 + "os": ["darwin"], 421 + "scripts": true 323 422 }, 324 423 "is-reference@3.0.3": { 325 424 "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", ··· 348 447 "ms@2.1.3": { 349 448 "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 350 449 }, 450 + "mutex-ts@1.2.1": { 451 + "integrity": "sha512-OkcXgf0viuCgYdnm48kiNQ9PzC5OzISQ261svHr/Ybc2vBYC/5xfLXn44hQ+dYRX74v7MCSqV/LKPEbpYdDybw==" 452 + }, 351 453 "nanoid@3.3.11": { 352 - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==" 454 + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", 455 + "bin": true 353 456 }, 354 457 "picocolors@1.1.1": { 355 458 "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" ··· 371 474 "rollup@4.40.0": { 372 475 "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==", 373 476 "dependencies": [ 477 + "@types/estree" 478 + ], 479 + "optionalDependencies": [ 374 480 "@rollup/rollup-android-arm-eabi", 375 481 "@rollup/rollup-android-arm64", 376 482 "@rollup/rollup-darwin-arm64", ··· 391 497 "@rollup/rollup-win32-arm64-msvc", 392 498 "@rollup/rollup-win32-ia32-msvc", 393 499 "@rollup/rollup-win32-x64-msvc", 394 - "@types/estree", 395 500 "fsevents" 396 - ] 501 + ], 502 + "bin": true 397 503 }, 398 504 "sade@1.8.1": { 399 505 "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", ··· 414 520 "sade", 415 521 "svelte", 416 522 "typescript" 417 - ] 523 + ], 524 + "bin": true 418 525 }, 419 526 "svelte-infinite-loading@1.4.0": { 420 527 "integrity": "sha512-Jo+f/yr/HmZQuIiiKKzAHVFXdAUWHW2RBbrcQTil8JVk1sCm/riy7KTJVzjBgQvHasrFQYKF84zvtc9/Y4lFYg==" ··· 446 553 ] 447 554 }, 448 555 "typescript@5.7.3": { 449 - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==" 556 + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", 557 + "bin": true 450 558 }, 451 559 "vite@6.3.2_picomatch@4.0.2": { 452 560 "integrity": "sha512-ZSvGOXKGceizRQIZSz7TGJ0pS3QLlVY/9hwxVh17W3re67je1RKYzFHivZ/t0tubU78Vkyb9WnHPENSBCzbckg==", 453 561 "dependencies": [ 454 562 "esbuild", 455 563 "fdir", 456 - "fsevents", 457 564 "picomatch", 458 565 "postcss", 459 566 "rollup", 460 567 "tinyglobby" 461 - ] 568 + ], 569 + "optionalDependencies": [ 570 + "fsevents" 571 + ], 572 + "bin": true 462 573 }, 463 574 "vitefu@1.0.6_vite@6.3.2__picomatch@4.0.2": { 464 575 "integrity": "sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==", 465 576 "dependencies": [ 577 + "vite" 578 + ], 579 + "optionalPeers": [ 466 580 "vite" 467 581 ] 468 582 }, ··· 479 593 "npm:@sveltejs/vite-plugin-svelte@^5.0.3", 480 594 "npm:@tsconfig/svelte@^5.0.4", 481 595 "npm:moment@^2.30.1", 596 + "npm:mutex-ts@^1.2.1", 482 597 "npm:svelte-check@^4.1.5", 483 598 "npm:svelte-infinite-loading@^1.4.0", 484 599 "npm:svelte@^5.23.1",
+1
package.json
··· 14 14 "@atcute/client": "^3.0.1", 15 15 "@atcute/identity-resolver": "^0.1.2", 16 16 "moment": "^2.30.1", 17 + "mutex-ts": "^1.2.1", 17 18 "svelte-infinite-loading": "^1.4.0" 18 19 }, 19 20 "devDependencies": {
+6
src/lib/pdsfetch.ts
··· 13 13 WebDidDocumentResolver, 14 14 } from "@atcute/identity-resolver"; 15 15 import { Config } from "../../config"; 16 + import { Mutex } from "mutex-ts" 16 17 // import { ComAtprotoRepoListRecords.Record } from "@atcute/client/lexicons"; 17 18 // import { AppBskyFeedPost } from "@atcute/client/lexicons"; 18 19 // import { AppBskyActorDefs } from "@atcute/client/lexicons"; ··· 247 248 }); 248 249 return filteredPosts; 249 250 }; 251 + 252 + const postsMutex = new Mutex(); 250 253 // nightmare function. However it works so I am not touching it 251 254 const getNextPosts = async () => { 255 + const release = await postsMutex.obtain(); 252 256 if (!accountsMetadata.length) { 253 257 accountsMetadata = await getAllMetadataFromPds(); 254 258 } ··· 322 326 } 323 327 return new Post(record, account); 324 328 }); 329 + // release the mutex 330 + release(); 325 331 return newPosts; 326 332 }; 327 333