An ATProto PDS running on Rivet?
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

wip: start experimenting with drisl database stuff.

Zicklag 5d4a4e66 8fc98082

+919 -272
+6 -3
package.json
··· 5 5 "main": "main.ts", 6 6 "type": "module", 7 7 "scripts": { 8 - "runner": "npx tsx src/start_runner.ts", 9 - "gateway": "npx tsx src/start_gateway.ts" 8 + "runner": "tsx src/start_runner.ts", 9 + "gateway": "tsx src/start_gateway.ts", 10 + "db:generate": "find src/actors -name drizzle.config.ts -exec drizzle-kit generate --config {} \\;" 10 11 }, 11 12 "keywords": [], 12 13 "author": "Zicklag", ··· 14 15 "packageManager": "pnpm@10.30.3", 15 16 "devDependencies": { 16 17 "@types/node": "^25.3.5", 18 + "drizzle-kit": "^0.31.9", 17 19 "tsx": "^4.21.0", 18 20 "typedoc": "^0.28.17" 19 21 }, 20 22 "dependencies": { 21 23 "@atproto/oauth-provider": "^0.15.12", 22 - "@atproto/oauth-provider-api": "^0.3.7", 23 24 "@hono/node-server": "^1.19.11", 24 25 "@hono/node-ws": "^1.3.0", 25 26 "@whatwg-node/server": "^0.10.18", 27 + "arktype": "^2.2.0", 28 + "bcrypt": "^6.0.0", 26 29 "drizzle-orm": "^0.45.1", 27 30 "hono": "^4.12.5", 28 31 "rivetkit": "^2.1.6"
+624 -5
pnpm-lock.yaml
··· 11 11 '@atproto/oauth-provider': 12 12 specifier: ^0.15.12 13 13 version: 0.15.12 14 - '@atproto/oauth-provider-api': 15 - specifier: ^0.3.7 16 - version: 0.3.7 17 14 '@hono/node-server': 18 15 specifier: ^1.19.11 19 16 version: 1.19.11(hono@4.12.5) ··· 23 20 '@whatwg-node/server': 24 21 specifier: ^0.10.18 25 22 version: 0.10.18 23 + arktype: 24 + specifier: ^2.2.0 25 + version: 2.2.0 26 + bcrypt: 27 + specifier: ^6.0.0 28 + version: 6.0.0 26 29 drizzle-orm: 27 30 specifier: ^0.45.1 28 31 version: 0.45.1 ··· 31 34 version: 4.12.5 32 35 rivetkit: 33 36 specifier: ^2.1.6 34 - version: 2.1.6(@hono/node-server@1.19.11(hono@4.12.5))(@hono/node-ws@1.3.0(@hono/node-server@1.19.11(hono@4.12.5))(hono@4.12.5))(@standard-schema/spec@1.0.0)(drizzle-orm@0.45.1)(ws@8.19.0) 37 + version: 2.1.6(@hono/node-server@1.19.11(hono@4.12.5))(@hono/node-ws@1.3.0(@hono/node-server@1.19.11(hono@4.12.5))(hono@4.12.5))(@standard-schema/spec@1.0.0)(drizzle-kit@0.31.9)(drizzle-orm@0.45.1)(ws@8.19.0) 35 38 devDependencies: 36 39 '@types/node': 37 40 specifier: ^25.3.5 38 41 version: 25.3.5 42 + drizzle-kit: 43 + specifier: ^0.31.9 44 + version: 0.31.9 39 45 tsx: 40 46 specifier: ^4.21.0 41 47 version: 4.21.0 ··· 44 50 version: 0.28.17(typescript@5.9.3) 45 51 46 52 packages: 53 + 54 + '@ark/schema@0.56.0': 55 + resolution: {integrity: sha512-ECg3hox/6Z/nLajxXqNhgPtNdHWC9zNsDyskwO28WinoFEnWow4IsERNz9AnXRhTZJnYIlAJ4uGn3nlLk65vZA==} 56 + 57 + '@ark/util@0.56.0': 58 + resolution: {integrity: sha512-BghfRC8b9pNs3vBoDJhcta0/c1J1rsoS1+HgVUreMFPdhz/CRAKReAu57YEllNaSy98rWAdY1gE+gFup7OXpgA==} 47 59 48 60 '@asteasolutions/zod-to-openapi@8.4.3': 49 61 resolution: {integrity: sha512-lwfMTN7kDbFDwMniYZUebiGGHxVGBw9ZSI4IBYjm6Ey22Kd5z/fsQb2k+Okr8WMbCCC553vi/ZM9utl5/XcvuQ==} ··· 174 186 cpu: [x64] 175 187 os: [win32] 176 188 189 + '@drizzle-team/brocli@0.10.2': 190 + resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} 191 + 177 192 '@envelop/instrumentation@1.0.0': 178 193 resolution: {integrity: sha512-cxgkB66RQB95H3X27jlnxCRNTmPuSTgmBAq6/4n2Dtv4hsk4yz8FadA1ggmd0uZzvKqWD6CR+WFgTjhDqg7eyw==} 179 194 engines: {node: '>=18.0.0'} 180 195 196 + '@esbuild-kit/core-utils@3.3.2': 197 + resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} 198 + deprecated: 'Merged into tsx: https://tsx.is' 199 + 200 + '@esbuild-kit/esm-loader@2.6.5': 201 + resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} 202 + deprecated: 'Merged into tsx: https://tsx.is' 203 + 204 + '@esbuild/aix-ppc64@0.25.12': 205 + resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} 206 + engines: {node: '>=18'} 207 + cpu: [ppc64] 208 + os: [aix] 209 + 181 210 '@esbuild/aix-ppc64@0.27.3': 182 211 resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} 183 212 engines: {node: '>=18'} 184 213 cpu: [ppc64] 185 214 os: [aix] 186 215 216 + '@esbuild/android-arm64@0.18.20': 217 + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} 218 + engines: {node: '>=12'} 219 + cpu: [arm64] 220 + os: [android] 221 + 222 + '@esbuild/android-arm64@0.25.12': 223 + resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} 224 + engines: {node: '>=18'} 225 + cpu: [arm64] 226 + os: [android] 227 + 187 228 '@esbuild/android-arm64@0.27.3': 188 229 resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} 189 230 engines: {node: '>=18'} 190 231 cpu: [arm64] 191 232 os: [android] 192 233 234 + '@esbuild/android-arm@0.18.20': 235 + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} 236 + engines: {node: '>=12'} 237 + cpu: [arm] 238 + os: [android] 239 + 240 + '@esbuild/android-arm@0.25.12': 241 + resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} 242 + engines: {node: '>=18'} 243 + cpu: [arm] 244 + os: [android] 245 + 193 246 '@esbuild/android-arm@0.27.3': 194 247 resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} 195 248 engines: {node: '>=18'} 196 249 cpu: [arm] 197 250 os: [android] 198 251 252 + '@esbuild/android-x64@0.18.20': 253 + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} 254 + engines: {node: '>=12'} 255 + cpu: [x64] 256 + os: [android] 257 + 258 + '@esbuild/android-x64@0.25.12': 259 + resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} 260 + engines: {node: '>=18'} 261 + cpu: [x64] 262 + os: [android] 263 + 199 264 '@esbuild/android-x64@0.27.3': 200 265 resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} 201 266 engines: {node: '>=18'} 202 267 cpu: [x64] 203 268 os: [android] 204 269 270 + '@esbuild/darwin-arm64@0.18.20': 271 + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} 272 + engines: {node: '>=12'} 273 + cpu: [arm64] 274 + os: [darwin] 275 + 276 + '@esbuild/darwin-arm64@0.25.12': 277 + resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} 278 + engines: {node: '>=18'} 279 + cpu: [arm64] 280 + os: [darwin] 281 + 205 282 '@esbuild/darwin-arm64@0.27.3': 206 283 resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} 207 284 engines: {node: '>=18'} 208 285 cpu: [arm64] 209 286 os: [darwin] 210 287 288 + '@esbuild/darwin-x64@0.18.20': 289 + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} 290 + engines: {node: '>=12'} 291 + cpu: [x64] 292 + os: [darwin] 293 + 294 + '@esbuild/darwin-x64@0.25.12': 295 + resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} 296 + engines: {node: '>=18'} 297 + cpu: [x64] 298 + os: [darwin] 299 + 211 300 '@esbuild/darwin-x64@0.27.3': 212 301 resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} 213 302 engines: {node: '>=18'} 214 303 cpu: [x64] 215 304 os: [darwin] 216 305 306 + '@esbuild/freebsd-arm64@0.18.20': 307 + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} 308 + engines: {node: '>=12'} 309 + cpu: [arm64] 310 + os: [freebsd] 311 + 312 + '@esbuild/freebsd-arm64@0.25.12': 313 + resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} 314 + engines: {node: '>=18'} 315 + cpu: [arm64] 316 + os: [freebsd] 317 + 217 318 '@esbuild/freebsd-arm64@0.27.3': 218 319 resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} 219 320 engines: {node: '>=18'} 220 321 cpu: [arm64] 221 322 os: [freebsd] 222 323 324 + '@esbuild/freebsd-x64@0.18.20': 325 + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} 326 + engines: {node: '>=12'} 327 + cpu: [x64] 328 + os: [freebsd] 329 + 330 + '@esbuild/freebsd-x64@0.25.12': 331 + resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} 332 + engines: {node: '>=18'} 333 + cpu: [x64] 334 + os: [freebsd] 335 + 223 336 '@esbuild/freebsd-x64@0.27.3': 224 337 resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} 225 338 engines: {node: '>=18'} 226 339 cpu: [x64] 227 340 os: [freebsd] 228 341 342 + '@esbuild/linux-arm64@0.18.20': 343 + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} 344 + engines: {node: '>=12'} 345 + cpu: [arm64] 346 + os: [linux] 347 + 348 + '@esbuild/linux-arm64@0.25.12': 349 + resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} 350 + engines: {node: '>=18'} 351 + cpu: [arm64] 352 + os: [linux] 353 + 229 354 '@esbuild/linux-arm64@0.27.3': 230 355 resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} 231 356 engines: {node: '>=18'} 232 357 cpu: [arm64] 233 358 os: [linux] 234 359 360 + '@esbuild/linux-arm@0.18.20': 361 + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} 362 + engines: {node: '>=12'} 363 + cpu: [arm] 364 + os: [linux] 365 + 366 + '@esbuild/linux-arm@0.25.12': 367 + resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} 368 + engines: {node: '>=18'} 369 + cpu: [arm] 370 + os: [linux] 371 + 235 372 '@esbuild/linux-arm@0.27.3': 236 373 resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} 237 374 engines: {node: '>=18'} 238 375 cpu: [arm] 239 376 os: [linux] 240 377 378 + '@esbuild/linux-ia32@0.18.20': 379 + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} 380 + engines: {node: '>=12'} 381 + cpu: [ia32] 382 + os: [linux] 383 + 384 + '@esbuild/linux-ia32@0.25.12': 385 + resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} 386 + engines: {node: '>=18'} 387 + cpu: [ia32] 388 + os: [linux] 389 + 241 390 '@esbuild/linux-ia32@0.27.3': 242 391 resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} 243 392 engines: {node: '>=18'} 244 393 cpu: [ia32] 245 394 os: [linux] 246 395 396 + '@esbuild/linux-loong64@0.18.20': 397 + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} 398 + engines: {node: '>=12'} 399 + cpu: [loong64] 400 + os: [linux] 401 + 402 + '@esbuild/linux-loong64@0.25.12': 403 + resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} 404 + engines: {node: '>=18'} 405 + cpu: [loong64] 406 + os: [linux] 407 + 247 408 '@esbuild/linux-loong64@0.27.3': 248 409 resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} 249 410 engines: {node: '>=18'} 250 411 cpu: [loong64] 251 412 os: [linux] 252 413 414 + '@esbuild/linux-mips64el@0.18.20': 415 + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} 416 + engines: {node: '>=12'} 417 + cpu: [mips64el] 418 + os: [linux] 419 + 420 + '@esbuild/linux-mips64el@0.25.12': 421 + resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} 422 + engines: {node: '>=18'} 423 + cpu: [mips64el] 424 + os: [linux] 425 + 253 426 '@esbuild/linux-mips64el@0.27.3': 254 427 resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} 255 428 engines: {node: '>=18'} 256 429 cpu: [mips64el] 257 430 os: [linux] 258 431 432 + '@esbuild/linux-ppc64@0.18.20': 433 + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} 434 + engines: {node: '>=12'} 435 + cpu: [ppc64] 436 + os: [linux] 437 + 438 + '@esbuild/linux-ppc64@0.25.12': 439 + resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} 440 + engines: {node: '>=18'} 441 + cpu: [ppc64] 442 + os: [linux] 443 + 259 444 '@esbuild/linux-ppc64@0.27.3': 260 445 resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} 261 446 engines: {node: '>=18'} 262 447 cpu: [ppc64] 263 448 os: [linux] 264 449 450 + '@esbuild/linux-riscv64@0.18.20': 451 + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} 452 + engines: {node: '>=12'} 453 + cpu: [riscv64] 454 + os: [linux] 455 + 456 + '@esbuild/linux-riscv64@0.25.12': 457 + resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} 458 + engines: {node: '>=18'} 459 + cpu: [riscv64] 460 + os: [linux] 461 + 265 462 '@esbuild/linux-riscv64@0.27.3': 266 463 resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} 267 464 engines: {node: '>=18'} 268 465 cpu: [riscv64] 269 466 os: [linux] 270 467 468 + '@esbuild/linux-s390x@0.18.20': 469 + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} 470 + engines: {node: '>=12'} 471 + cpu: [s390x] 472 + os: [linux] 473 + 474 + '@esbuild/linux-s390x@0.25.12': 475 + resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} 476 + engines: {node: '>=18'} 477 + cpu: [s390x] 478 + os: [linux] 479 + 271 480 '@esbuild/linux-s390x@0.27.3': 272 481 resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} 273 482 engines: {node: '>=18'} 274 483 cpu: [s390x] 275 484 os: [linux] 276 485 486 + '@esbuild/linux-x64@0.18.20': 487 + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} 488 + engines: {node: '>=12'} 489 + cpu: [x64] 490 + os: [linux] 491 + 492 + '@esbuild/linux-x64@0.25.12': 493 + resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} 494 + engines: {node: '>=18'} 495 + cpu: [x64] 496 + os: [linux] 497 + 277 498 '@esbuild/linux-x64@0.27.3': 278 499 resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} 279 500 engines: {node: '>=18'} 280 501 cpu: [x64] 281 502 os: [linux] 282 503 504 + '@esbuild/netbsd-arm64@0.25.12': 505 + resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} 506 + engines: {node: '>=18'} 507 + cpu: [arm64] 508 + os: [netbsd] 509 + 283 510 '@esbuild/netbsd-arm64@0.27.3': 284 511 resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} 285 512 engines: {node: '>=18'} 286 513 cpu: [arm64] 287 514 os: [netbsd] 288 515 516 + '@esbuild/netbsd-x64@0.18.20': 517 + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} 518 + engines: {node: '>=12'} 519 + cpu: [x64] 520 + os: [netbsd] 521 + 522 + '@esbuild/netbsd-x64@0.25.12': 523 + resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} 524 + engines: {node: '>=18'} 525 + cpu: [x64] 526 + os: [netbsd] 527 + 289 528 '@esbuild/netbsd-x64@0.27.3': 290 529 resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} 291 530 engines: {node: '>=18'} 292 531 cpu: [x64] 293 532 os: [netbsd] 294 533 534 + '@esbuild/openbsd-arm64@0.25.12': 535 + resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} 536 + engines: {node: '>=18'} 537 + cpu: [arm64] 538 + os: [openbsd] 539 + 295 540 '@esbuild/openbsd-arm64@0.27.3': 296 541 resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} 297 542 engines: {node: '>=18'} 298 543 cpu: [arm64] 299 544 os: [openbsd] 300 545 546 + '@esbuild/openbsd-x64@0.18.20': 547 + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} 548 + engines: {node: '>=12'} 549 + cpu: [x64] 550 + os: [openbsd] 551 + 552 + '@esbuild/openbsd-x64@0.25.12': 553 + resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} 554 + engines: {node: '>=18'} 555 + cpu: [x64] 556 + os: [openbsd] 557 + 301 558 '@esbuild/openbsd-x64@0.27.3': 302 559 resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} 303 560 engines: {node: '>=18'} 304 561 cpu: [x64] 305 562 os: [openbsd] 306 563 564 + '@esbuild/openharmony-arm64@0.25.12': 565 + resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} 566 + engines: {node: '>=18'} 567 + cpu: [arm64] 568 + os: [openharmony] 569 + 307 570 '@esbuild/openharmony-arm64@0.27.3': 308 571 resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} 309 572 engines: {node: '>=18'} 310 573 cpu: [arm64] 311 574 os: [openharmony] 312 575 576 + '@esbuild/sunos-x64@0.18.20': 577 + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} 578 + engines: {node: '>=12'} 579 + cpu: [x64] 580 + os: [sunos] 581 + 582 + '@esbuild/sunos-x64@0.25.12': 583 + resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} 584 + engines: {node: '>=18'} 585 + cpu: [x64] 586 + os: [sunos] 587 + 313 588 '@esbuild/sunos-x64@0.27.3': 314 589 resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} 315 590 engines: {node: '>=18'} 316 591 cpu: [x64] 317 592 os: [sunos] 318 593 594 + '@esbuild/win32-arm64@0.18.20': 595 + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} 596 + engines: {node: '>=12'} 597 + cpu: [arm64] 598 + os: [win32] 599 + 600 + '@esbuild/win32-arm64@0.25.12': 601 + resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} 602 + engines: {node: '>=18'} 603 + cpu: [arm64] 604 + os: [win32] 605 + 319 606 '@esbuild/win32-arm64@0.27.3': 320 607 resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} 321 608 engines: {node: '>=18'} 322 609 cpu: [arm64] 323 610 os: [win32] 324 611 612 + '@esbuild/win32-ia32@0.18.20': 613 + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} 614 + engines: {node: '>=12'} 615 + cpu: [ia32] 616 + os: [win32] 617 + 618 + '@esbuild/win32-ia32@0.25.12': 619 + resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} 620 + engines: {node: '>=18'} 621 + cpu: [ia32] 622 + os: [win32] 623 + 325 624 '@esbuild/win32-ia32@0.27.3': 326 625 resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} 327 626 engines: {node: '>=18'} 328 627 cpu: [ia32] 329 628 os: [win32] 330 629 630 + '@esbuild/win32-x64@0.18.20': 631 + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} 632 + engines: {node: '>=12'} 633 + cpu: [x64] 634 + os: [win32] 635 + 636 + '@esbuild/win32-x64@0.25.12': 637 + resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} 638 + engines: {node: '>=18'} 639 + cpu: [x64] 640 + os: [win32] 641 + 331 642 '@esbuild/win32-x64@0.27.3': 332 643 resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} 333 644 engines: {node: '>=18'} ··· 504 815 argparse@2.0.1: 505 816 resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 506 817 818 + arkregex@0.0.5: 819 + resolution: {integrity: sha512-ncYjBdLlh5/QnVsAA8De16Tc9EqmYM7y/WU9j+236KcyYNUXogpz3sC4ATIZYzzLxwI+0sEOaQLEmLmRleaEXw==} 820 + 821 + arktype@2.2.0: 822 + resolution: {integrity: sha512-t54MZ7ti5BhOEvzEkgKnWvqj+UbDfWig+DHr5I34xatymPusKLS0lQpNJd8M6DzmIto2QGszHfNKoFIT8tMCZQ==} 823 + 507 824 atomic-sleep@1.0.0: 508 825 resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} 509 826 engines: {node: '>=8.0.0'} ··· 514 831 base64-js@1.5.1: 515 832 resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 516 833 834 + bcrypt@6.0.0: 835 + resolution: {integrity: sha512-cU8v/EGSrnH+HnxV2z0J7/blxH8gq7Xh2JFT6Aroax7UohdmiJJlxApMxtKfuI7z68NvvVcmR78k2LbT6efhRg==} 836 + engines: {node: '>= 18'} 837 + 517 838 brace-expansion@2.0.2: 518 839 resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} 840 + 841 + buffer-from@1.1.2: 842 + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 519 843 520 844 buffer@6.0.3: 521 845 resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} ··· 570 894 disposable-email-domains-js@1.22.0: 571 895 resolution: {integrity: sha512-5miXovN3Qujy07FczD1Z7To6UfHv6U6AhGy2DNXPaD7+Ga1kzR0l5IRNnRuIOVcPgBZ8n855kubx1/ZECDXI/Q==} 572 896 897 + drizzle-kit@0.31.9: 898 + resolution: {integrity: sha512-GViD3IgsXn7trFyBUUHyTFBpH/FsHTxYJ66qdbVggxef4UBPHRYxQaRzYLTuekYnk9i5FIEL9pbBIwMqX/Uwrg==} 899 + hasBin: true 900 + 573 901 drizzle-orm@0.45.1: 574 902 resolution: {integrity: sha512-Te0FOdKIistGNPMq2jscdqngBRfBpC8uMFVwqjf6gtTVJHIQ/dosgV/CLBU2N4ZJBsXL5savCba9b0YJskKdcA==} 575 903 peerDependencies: ··· 665 993 entities@4.5.0: 666 994 resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 667 995 engines: {node: '>=0.12'} 996 + 997 + esbuild-register@3.6.0: 998 + resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} 999 + peerDependencies: 1000 + esbuild: '>=0.12 <1' 1001 + 1002 + esbuild@0.18.20: 1003 + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} 1004 + engines: {node: '>=12'} 1005 + hasBin: true 1006 + 1007 + esbuild@0.25.12: 1008 + resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} 1009 + engines: {node: '>=18'} 1010 + hasBin: true 668 1011 669 1012 esbuild@0.27.3: 670 1013 resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} ··· 787 1130 nanoevents@9.1.0: 788 1131 resolution: {integrity: sha512-Jd0fILWG44a9luj8v5kED4WI+zfkkgwKyRQKItTtlPfEsh7Lznfi1kr8/iZ+XAIss4Qq5GqRB0qtWbaz9ceO/A==} 789 1132 engines: {node: ^18.0.0 || >=20.0.0} 1133 + 1134 + node-addon-api@8.6.0: 1135 + resolution: {integrity: sha512-gBVjCaqDlRUk0EwoPNKzIr9KkS9041G/q31IBShPs1Xz6UTA+EXdZADbzqAJQrpDRq71CIMnOP5VMut3SL0z5Q==} 1136 + engines: {node: ^18 || ^20 || >= 21} 790 1137 791 1138 node-gyp-build-optional-packages@5.1.1: 792 1139 resolution: {integrity: sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==} 793 1140 hasBin: true 794 1141 1142 + node-gyp-build@4.8.4: 1143 + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} 1144 + hasBin: true 1145 + 795 1146 on-exit-leak-free@2.1.2: 796 1147 resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} 797 1148 engines: {node: '>=14.0.0'} ··· 903 1254 sonic-boom@4.2.1: 904 1255 resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==} 905 1256 1257 + source-map-support@0.5.21: 1258 + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1259 + 1260 + source-map@0.6.1: 1261 + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1262 + engines: {node: '>=0.10.0'} 1263 + 906 1264 split2@4.2.0: 907 1265 resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} 908 1266 engines: {node: '>= 10.x'} ··· 1009 1367 resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} 1010 1368 1011 1369 snapshots: 1370 + 1371 + '@ark/schema@0.56.0': 1372 + dependencies: 1373 + '@ark/util': 0.56.0 1374 + 1375 + '@ark/util@0.56.0': {} 1012 1376 1013 1377 '@asteasolutions/zod-to-openapi@8.4.3(zod@4.3.6)': 1014 1378 dependencies: ··· 1232 1596 '@cbor-extract/cbor-extract-win32-x64@2.2.0': 1233 1597 optional: true 1234 1598 1599 + '@drizzle-team/brocli@0.10.2': {} 1600 + 1235 1601 '@envelop/instrumentation@1.0.0': 1236 1602 dependencies: 1237 1603 '@whatwg-node/promise-helpers': 1.3.2 1238 1604 tslib: 2.8.1 1239 1605 1606 + '@esbuild-kit/core-utils@3.3.2': 1607 + dependencies: 1608 + esbuild: 0.18.20 1609 + source-map-support: 0.5.21 1610 + 1611 + '@esbuild-kit/esm-loader@2.6.5': 1612 + dependencies: 1613 + '@esbuild-kit/core-utils': 3.3.2 1614 + get-tsconfig: 4.13.6 1615 + 1616 + '@esbuild/aix-ppc64@0.25.12': 1617 + optional: true 1618 + 1240 1619 '@esbuild/aix-ppc64@0.27.3': 1241 1620 optional: true 1242 1621 1622 + '@esbuild/android-arm64@0.18.20': 1623 + optional: true 1624 + 1625 + '@esbuild/android-arm64@0.25.12': 1626 + optional: true 1627 + 1243 1628 '@esbuild/android-arm64@0.27.3': 1244 1629 optional: true 1245 1630 1631 + '@esbuild/android-arm@0.18.20': 1632 + optional: true 1633 + 1634 + '@esbuild/android-arm@0.25.12': 1635 + optional: true 1636 + 1246 1637 '@esbuild/android-arm@0.27.3': 1247 1638 optional: true 1248 1639 1640 + '@esbuild/android-x64@0.18.20': 1641 + optional: true 1642 + 1643 + '@esbuild/android-x64@0.25.12': 1644 + optional: true 1645 + 1249 1646 '@esbuild/android-x64@0.27.3': 1250 1647 optional: true 1251 1648 1649 + '@esbuild/darwin-arm64@0.18.20': 1650 + optional: true 1651 + 1652 + '@esbuild/darwin-arm64@0.25.12': 1653 + optional: true 1654 + 1252 1655 '@esbuild/darwin-arm64@0.27.3': 1253 1656 optional: true 1254 1657 1658 + '@esbuild/darwin-x64@0.18.20': 1659 + optional: true 1660 + 1661 + '@esbuild/darwin-x64@0.25.12': 1662 + optional: true 1663 + 1255 1664 '@esbuild/darwin-x64@0.27.3': 1256 1665 optional: true 1257 1666 1667 + '@esbuild/freebsd-arm64@0.18.20': 1668 + optional: true 1669 + 1670 + '@esbuild/freebsd-arm64@0.25.12': 1671 + optional: true 1672 + 1258 1673 '@esbuild/freebsd-arm64@0.27.3': 1259 1674 optional: true 1260 1675 1676 + '@esbuild/freebsd-x64@0.18.20': 1677 + optional: true 1678 + 1679 + '@esbuild/freebsd-x64@0.25.12': 1680 + optional: true 1681 + 1261 1682 '@esbuild/freebsd-x64@0.27.3': 1262 1683 optional: true 1263 1684 1685 + '@esbuild/linux-arm64@0.18.20': 1686 + optional: true 1687 + 1688 + '@esbuild/linux-arm64@0.25.12': 1689 + optional: true 1690 + 1264 1691 '@esbuild/linux-arm64@0.27.3': 1265 1692 optional: true 1266 1693 1694 + '@esbuild/linux-arm@0.18.20': 1695 + optional: true 1696 + 1697 + '@esbuild/linux-arm@0.25.12': 1698 + optional: true 1699 + 1267 1700 '@esbuild/linux-arm@0.27.3': 1268 1701 optional: true 1269 1702 1703 + '@esbuild/linux-ia32@0.18.20': 1704 + optional: true 1705 + 1706 + '@esbuild/linux-ia32@0.25.12': 1707 + optional: true 1708 + 1270 1709 '@esbuild/linux-ia32@0.27.3': 1710 + optional: true 1711 + 1712 + '@esbuild/linux-loong64@0.18.20': 1713 + optional: true 1714 + 1715 + '@esbuild/linux-loong64@0.25.12': 1271 1716 optional: true 1272 1717 1273 1718 '@esbuild/linux-loong64@0.27.3': 1274 1719 optional: true 1275 1720 1721 + '@esbuild/linux-mips64el@0.18.20': 1722 + optional: true 1723 + 1724 + '@esbuild/linux-mips64el@0.25.12': 1725 + optional: true 1726 + 1276 1727 '@esbuild/linux-mips64el@0.27.3': 1277 1728 optional: true 1278 1729 1730 + '@esbuild/linux-ppc64@0.18.20': 1731 + optional: true 1732 + 1733 + '@esbuild/linux-ppc64@0.25.12': 1734 + optional: true 1735 + 1279 1736 '@esbuild/linux-ppc64@0.27.3': 1280 1737 optional: true 1281 1738 1739 + '@esbuild/linux-riscv64@0.18.20': 1740 + optional: true 1741 + 1742 + '@esbuild/linux-riscv64@0.25.12': 1743 + optional: true 1744 + 1282 1745 '@esbuild/linux-riscv64@0.27.3': 1283 1746 optional: true 1284 1747 1748 + '@esbuild/linux-s390x@0.18.20': 1749 + optional: true 1750 + 1751 + '@esbuild/linux-s390x@0.25.12': 1752 + optional: true 1753 + 1285 1754 '@esbuild/linux-s390x@0.27.3': 1286 1755 optional: true 1287 1756 1757 + '@esbuild/linux-x64@0.18.20': 1758 + optional: true 1759 + 1760 + '@esbuild/linux-x64@0.25.12': 1761 + optional: true 1762 + 1288 1763 '@esbuild/linux-x64@0.27.3': 1764 + optional: true 1765 + 1766 + '@esbuild/netbsd-arm64@0.25.12': 1289 1767 optional: true 1290 1768 1291 1769 '@esbuild/netbsd-arm64@0.27.3': 1292 1770 optional: true 1293 1771 1772 + '@esbuild/netbsd-x64@0.18.20': 1773 + optional: true 1774 + 1775 + '@esbuild/netbsd-x64@0.25.12': 1776 + optional: true 1777 + 1294 1778 '@esbuild/netbsd-x64@0.27.3': 1295 1779 optional: true 1296 1780 1781 + '@esbuild/openbsd-arm64@0.25.12': 1782 + optional: true 1783 + 1297 1784 '@esbuild/openbsd-arm64@0.27.3': 1298 1785 optional: true 1299 1786 1787 + '@esbuild/openbsd-x64@0.18.20': 1788 + optional: true 1789 + 1790 + '@esbuild/openbsd-x64@0.25.12': 1791 + optional: true 1792 + 1300 1793 '@esbuild/openbsd-x64@0.27.3': 1794 + optional: true 1795 + 1796 + '@esbuild/openharmony-arm64@0.25.12': 1301 1797 optional: true 1302 1798 1303 1799 '@esbuild/openharmony-arm64@0.27.3': 1304 1800 optional: true 1305 1801 1802 + '@esbuild/sunos-x64@0.18.20': 1803 + optional: true 1804 + 1805 + '@esbuild/sunos-x64@0.25.12': 1806 + optional: true 1807 + 1306 1808 '@esbuild/sunos-x64@0.27.3': 1307 1809 optional: true 1308 1810 1811 + '@esbuild/win32-arm64@0.18.20': 1812 + optional: true 1813 + 1814 + '@esbuild/win32-arm64@0.25.12': 1815 + optional: true 1816 + 1309 1817 '@esbuild/win32-arm64@0.27.3': 1310 1818 optional: true 1311 1819 1820 + '@esbuild/win32-ia32@0.18.20': 1821 + optional: true 1822 + 1823 + '@esbuild/win32-ia32@0.25.12': 1824 + optional: true 1825 + 1312 1826 '@esbuild/win32-ia32@0.27.3': 1827 + optional: true 1828 + 1829 + '@esbuild/win32-x64@0.18.20': 1830 + optional: true 1831 + 1832 + '@esbuild/win32-x64@0.25.12': 1313 1833 optional: true 1314 1834 1315 1835 '@esbuild/win32-x64@0.27.3': ··· 1511 2031 1512 2032 argparse@2.0.1: {} 1513 2033 2034 + arkregex@0.0.5: 2035 + dependencies: 2036 + '@ark/util': 0.56.0 2037 + 2038 + arktype@2.2.0: 2039 + dependencies: 2040 + '@ark/schema': 0.56.0 2041 + '@ark/util': 0.56.0 2042 + arkregex: 0.0.5 2043 + 1514 2044 atomic-sleep@1.0.0: {} 1515 2045 1516 2046 balanced-match@1.0.2: {} 1517 2047 1518 2048 base64-js@1.5.1: {} 1519 2049 2050 + bcrypt@6.0.0: 2051 + dependencies: 2052 + node-addon-api: 8.6.0 2053 + node-gyp-build: 4.8.4 2054 + 1520 2055 brace-expansion@2.0.2: 1521 2056 dependencies: 1522 2057 balanced-match: 1.0.2 2058 + 2059 + buffer-from@1.1.2: {} 1523 2060 1524 2061 buffer@6.0.3: 1525 2062 dependencies: ··· 1565 2102 1566 2103 disposable-email-domains-js@1.22.0: {} 1567 2104 2105 + drizzle-kit@0.31.9: 2106 + dependencies: 2107 + '@drizzle-team/brocli': 0.10.2 2108 + '@esbuild-kit/esm-loader': 2.6.5 2109 + esbuild: 0.25.12 2110 + esbuild-register: 3.6.0(esbuild@0.25.12) 2111 + transitivePeerDependencies: 2112 + - supports-color 2113 + 1568 2114 drizzle-orm@0.45.1: {} 1569 2115 1570 2116 entities@4.5.0: {} 1571 2117 2118 + esbuild-register@3.6.0(esbuild@0.25.12): 2119 + dependencies: 2120 + debug: 4.4.3 2121 + esbuild: 0.25.12 2122 + transitivePeerDependencies: 2123 + - supports-color 2124 + 2125 + esbuild@0.18.20: 2126 + optionalDependencies: 2127 + '@esbuild/android-arm': 0.18.20 2128 + '@esbuild/android-arm64': 0.18.20 2129 + '@esbuild/android-x64': 0.18.20 2130 + '@esbuild/darwin-arm64': 0.18.20 2131 + '@esbuild/darwin-x64': 0.18.20 2132 + '@esbuild/freebsd-arm64': 0.18.20 2133 + '@esbuild/freebsd-x64': 0.18.20 2134 + '@esbuild/linux-arm': 0.18.20 2135 + '@esbuild/linux-arm64': 0.18.20 2136 + '@esbuild/linux-ia32': 0.18.20 2137 + '@esbuild/linux-loong64': 0.18.20 2138 + '@esbuild/linux-mips64el': 0.18.20 2139 + '@esbuild/linux-ppc64': 0.18.20 2140 + '@esbuild/linux-riscv64': 0.18.20 2141 + '@esbuild/linux-s390x': 0.18.20 2142 + '@esbuild/linux-x64': 0.18.20 2143 + '@esbuild/netbsd-x64': 0.18.20 2144 + '@esbuild/openbsd-x64': 0.18.20 2145 + '@esbuild/sunos-x64': 0.18.20 2146 + '@esbuild/win32-arm64': 0.18.20 2147 + '@esbuild/win32-ia32': 0.18.20 2148 + '@esbuild/win32-x64': 0.18.20 2149 + 2150 + esbuild@0.25.12: 2151 + optionalDependencies: 2152 + '@esbuild/aix-ppc64': 0.25.12 2153 + '@esbuild/android-arm': 0.25.12 2154 + '@esbuild/android-arm64': 0.25.12 2155 + '@esbuild/android-x64': 0.25.12 2156 + '@esbuild/darwin-arm64': 0.25.12 2157 + '@esbuild/darwin-x64': 0.25.12 2158 + '@esbuild/freebsd-arm64': 0.25.12 2159 + '@esbuild/freebsd-x64': 0.25.12 2160 + '@esbuild/linux-arm': 0.25.12 2161 + '@esbuild/linux-arm64': 0.25.12 2162 + '@esbuild/linux-ia32': 0.25.12 2163 + '@esbuild/linux-loong64': 0.25.12 2164 + '@esbuild/linux-mips64el': 0.25.12 2165 + '@esbuild/linux-ppc64': 0.25.12 2166 + '@esbuild/linux-riscv64': 0.25.12 2167 + '@esbuild/linux-s390x': 0.25.12 2168 + '@esbuild/linux-x64': 0.25.12 2169 + '@esbuild/netbsd-arm64': 0.25.12 2170 + '@esbuild/netbsd-x64': 0.25.12 2171 + '@esbuild/openbsd-arm64': 0.25.12 2172 + '@esbuild/openbsd-x64': 0.25.12 2173 + '@esbuild/openharmony-arm64': 0.25.12 2174 + '@esbuild/sunos-x64': 0.25.12 2175 + '@esbuild/win32-arm64': 0.25.12 2176 + '@esbuild/win32-ia32': 0.25.12 2177 + '@esbuild/win32-x64': 0.25.12 2178 + 1572 2179 esbuild@0.27.3: 1573 2180 optionalDependencies: 1574 2181 '@esbuild/aix-ppc64': 0.27.3 ··· 1702 2309 1703 2310 nanoevents@9.1.0: {} 1704 2311 2312 + node-addon-api@8.6.0: {} 2313 + 1705 2314 node-gyp-build-optional-packages@5.1.1: 1706 2315 dependencies: 1707 2316 detect-libc: 2.1.2 1708 2317 optional: true 2318 + 2319 + node-gyp-build@4.8.4: {} 1709 2320 1710 2321 on-exit-leak-free@2.1.2: {} 1711 2322 ··· 1790 2401 1791 2402 retry@0.13.1: {} 1792 2403 1793 - rivetkit@2.1.6(@hono/node-server@1.19.11(hono@4.12.5))(@hono/node-ws@1.3.0(@hono/node-server@1.19.11(hono@4.12.5))(hono@4.12.5))(@standard-schema/spec@1.0.0)(drizzle-orm@0.45.1)(ws@8.19.0): 2404 + rivetkit@2.1.6(@hono/node-server@1.19.11(hono@4.12.5))(@hono/node-ws@1.3.0(@hono/node-server@1.19.11(hono@4.12.5))(hono@4.12.5))(@standard-schema/spec@1.0.0)(drizzle-kit@0.31.9)(drizzle-orm@0.45.1)(ws@8.19.0): 1794 2405 dependencies: 1795 2406 '@hono/standard-validator': 0.1.5(@standard-schema/spec@1.0.0)(hono@4.12.5) 1796 2407 '@hono/zod-openapi': 1.2.2(hono@4.12.5)(zod@4.3.6) ··· 1817 2428 optionalDependencies: 1818 2429 '@hono/node-server': 1.19.11(hono@4.12.5) 1819 2430 '@hono/node-ws': 1.3.0(@hono/node-server@1.19.11(hono@4.12.5))(hono@4.12.5) 2431 + drizzle-kit: 0.31.9 1820 2432 drizzle-orm: 0.45.1 1821 2433 ws: 8.19.0 1822 2434 transitivePeerDependencies: ··· 1837 2449 sonic-boom@4.2.1: 1838 2450 dependencies: 1839 2451 atomic-sleep: 1.0.0 2452 + 2453 + source-map-support@0.5.21: 2454 + dependencies: 2455 + buffer-from: 1.1.2 2456 + source-map: 0.6.1 2457 + 2458 + source-map@0.6.1: {} 1840 2459 1841 2460 split2@4.2.0: {} 1842 2461
+8
src/actors.ts
··· 1 + import { setup } from "rivetkit"; 2 + 3 + import { authServer } from "./actors/authServer"; 4 + import { http } from "./actors/http"; 5 + 6 + export const registry = setup({ 7 + use: { http, authServer }, 8 + });
+246
src/actors/authServer.ts
··· 1 + import { actor } from "rivetkit"; 2 + import { CONFIG } from "../config"; 3 + import { 4 + Account, 5 + AuthenticateAccountData, 6 + AuthorizedClientData, 7 + AuthorizedClients, 8 + Awaitable, 9 + ClientId, 10 + Code, 11 + CreateAccountData, 12 + CreateTokenData, 13 + DeviceAccount, 14 + DeviceData, 15 + DeviceId, 16 + FoundRequestResult, 17 + Keyset, 18 + LexiconData, 19 + NewTokenData, 20 + OAuthAuthorizationRequestQuery, 21 + OAuthClientMetadata, 22 + oauthMiddleware, 23 + OAuthProvider, 24 + RefreshToken, 25 + RequestData, 26 + RequestId, 27 + ResetPasswordConfirmInput, 28 + ResetPasswordRequestInput, 29 + Sub, 30 + TokenId, 31 + TokenInfo, 32 + UpdateRequestData, 33 + } from "@atproto/oauth-provider"; 34 + 35 + // import { schema } from "./authServer/schema"; 36 + // import migrations from "./authServer/drizzle/migrations"; 37 + // import { db } from "rivetkit/db/drizzle"; 38 + 39 + export const authServer = actor({ 40 + // db: db({ schema, migrations }), 41 + state: { 42 + accounts: [] as CreateAccountData[], 43 + }, 44 + vars: undefined as unknown as { 45 + middleware: Middleware; 46 + }, 47 + createVars: (c) => { 48 + return { 49 + middleware: oauthMiddleware( 50 + new OAuthProvider({ 51 + issuer: CONFIG.publicEndpoint, 52 + keyset: new Keyset([]), 53 + accountStore: { 54 + createAccount: async (data) => { 55 + throw new Error(""); 56 + }, 57 + authenticateAccount: function ( 58 + data: AuthenticateAccountData, 59 + ): Awaitable<Account> { 60 + throw new Error("Function not implemented."); 61 + }, 62 + setAuthorizedClient: function ( 63 + sub: Sub, 64 + clientId: ClientId, 65 + data: AuthorizedClientData, 66 + ): Awaitable<void> { 67 + throw new Error("Function not implemented."); 68 + }, 69 + getAccount: function (sub: Sub): Awaitable<{ 70 + account: Account; 71 + authorizedClients: AuthorizedClients; 72 + }> { 73 + throw new Error("Function not implemented."); 74 + }, 75 + upsertDeviceAccount: function ( 76 + deviceId: DeviceId, 77 + sub: Sub, 78 + ): Awaitable<void> { 79 + throw new Error("Function not implemented."); 80 + }, 81 + getDeviceAccount: function ( 82 + deviceId: DeviceId, 83 + sub: Sub, 84 + ): Awaitable<DeviceAccount | null> { 85 + throw new Error("Function not implemented."); 86 + }, 87 + removeDeviceAccount: function ( 88 + deviceId: DeviceId, 89 + sub: Sub, 90 + ): Awaitable<void> { 91 + throw new Error("Function not implemented."); 92 + }, 93 + listDeviceAccounts: function ( 94 + filter: { sub: Sub } | { deviceId: DeviceId }, 95 + ): Awaitable<DeviceAccount[]> { 96 + throw new Error("Function not implemented."); 97 + }, 98 + resetPasswordRequest: function ( 99 + data: ResetPasswordRequestInput, 100 + ): Awaitable<null | Account> { 101 + throw new Error("Function not implemented."); 102 + }, 103 + resetPasswordConfirm: function ( 104 + data: ResetPasswordConfirmInput, 105 + ): Awaitable<null | Account> { 106 + throw new Error("Function not implemented."); 107 + }, 108 + verifyHandleAvailability: function ( 109 + handle: string, 110 + ): Awaitable<void> { 111 + throw new Error("Function not implemented."); 112 + }, 113 + }, 114 + deviceStore: { 115 + createDevice: function ( 116 + deviceId: DeviceId, 117 + data: DeviceData, 118 + ): Awaitable<void> { 119 + throw new Error("Function not implemented."); 120 + }, 121 + readDevice: function ( 122 + deviceId: DeviceId, 123 + ): Awaitable<DeviceData | null> { 124 + throw new Error("Function not implemented."); 125 + }, 126 + updateDevice: function ( 127 + deviceId: DeviceId, 128 + data: Partial<DeviceData>, 129 + ): Awaitable<void> { 130 + throw new Error("Function not implemented."); 131 + }, 132 + deleteDevice: function (deviceId: DeviceId): Awaitable<void> { 133 + throw new Error("Function not implemented."); 134 + }, 135 + }, 136 + tokenStore: { 137 + createToken: function ( 138 + tokenId: TokenId, 139 + data: CreateTokenData, 140 + refreshToken?: RefreshToken, 141 + ): Awaitable<void> { 142 + throw new Error("Function not implemented."); 143 + }, 144 + readToken: function ( 145 + tokenId: TokenId, 146 + ): Awaitable<null | TokenInfo> { 147 + throw new Error("Function not implemented."); 148 + }, 149 + deleteToken: function (tokenId: TokenId): Awaitable<void> { 150 + throw new Error("Function not implemented."); 151 + }, 152 + rotateToken: function ( 153 + tokenId: TokenId, 154 + newTokenId: TokenId, 155 + newRefreshToken: RefreshToken, 156 + newData: NewTokenData, 157 + ): Awaitable<void> { 158 + throw new Error("Function not implemented."); 159 + }, 160 + findTokenByRefreshToken: function ( 161 + refreshToken: RefreshToken, 162 + ): Awaitable<null | TokenInfo> { 163 + throw new Error("Function not implemented."); 164 + }, 165 + findTokenByCode: function ( 166 + code: Code, 167 + ): Awaitable<null | TokenInfo> { 168 + throw new Error("Function not implemented."); 169 + }, 170 + listAccountTokens: function (sub: Sub): Awaitable<TokenInfo[]> { 171 + throw new Error("Function not implemented."); 172 + }, 173 + }, 174 + clientStore: { 175 + findClient: function ( 176 + clientId: ClientId, 177 + ): Awaitable<OAuthClientMetadata> { 178 + throw new Error("Function not implemented."); 179 + }, 180 + }, 181 + replayStore: { 182 + unique: function ( 183 + namespace: string, 184 + nonce: string, 185 + timeFrame: number, 186 + ): Awaitable<boolean> { 187 + throw new Error("Function not implemented."); 188 + }, 189 + }, 190 + lexiconStore: { 191 + findLexicon: function ( 192 + nsid: string, 193 + ): Awaitable<LexiconData | null> { 194 + throw new Error("Function not implemented."); 195 + }, 196 + storeLexicon: function ( 197 + nsid: string, 198 + data: LexiconData, 199 + ): Awaitable<void> { 200 + throw new Error("Function not implemented."); 201 + }, 202 + deleteLexicon: function (nsid: string): Awaitable<void> { 203 + throw new Error("Function not implemented."); 204 + }, 205 + }, 206 + requestStore: { 207 + createRequest: function ( 208 + requestId: RequestId, 209 + data: RequestData, 210 + ): Awaitable<void> { 211 + throw new Error("Function not implemented."); 212 + }, 213 + readRequest: function ( 214 + requestId: RequestId, 215 + ): Awaitable<RequestData | null> { 216 + throw new Error("Function not implemented."); 217 + }, 218 + updateRequest: function ( 219 + requestId: RequestId, 220 + data: UpdateRequestData, 221 + ): Awaitable<void> { 222 + throw new Error("Function not implemented."); 223 + }, 224 + deleteRequest: function ( 225 + requestId: RequestId, 226 + ): void | Awaitable<void> { 227 + throw new Error("Function not implemented."); 228 + }, 229 + consumeRequestCode: function ( 230 + code: Code, 231 + ): Awaitable<FoundRequestResult | null> { 232 + throw new Error("Function not implemented."); 233 + }, 234 + }, 235 + }), 236 + ), 237 + }; 238 + }, 239 + actions: { 240 + httpMiddleware: (c, ...args: Parameters<Middleware>) => { 241 + return c.vars.middleware(...args); 242 + }, 243 + }, 244 + }); 245 + 246 + type Middleware = ReturnType<typeof oauthMiddleware>;
+6
src/actors/authServer/drizzle.config.ts
··· 1 + import { defineConfig } from "rivetkit/db/drizzle"; 2 + 3 + export default defineConfig({ 4 + schema: "./src/actors/authServer/schema.ts", 5 + out: "./src/actors/authServer/drizzle", 6 + });
+1
src/actors/authServer/drizzle/meta/_journal.json
··· 1 + {"version":"7","dialect":"sqlite","entries":[]}
+3
src/actors/authServer/schema.ts
··· 1 + import { integer, sqliteTable, text } from "rivetkit/db/drizzle"; 2 + 3 + export const schema = {};
+23
src/actors/http.ts
··· 1 + import { Hono } from "hono"; 2 + import { actor } from "rivetkit"; 3 + import type { registry } from "../actors"; 4 + 5 + /** Create an HTTP actor for handling requests. */ 6 + export const http = actor({ 7 + onRequest(c, req) { 8 + const client = c.client<typeof registry>(); 9 + const authServer = client.authServer.getOrCreate("main"); 10 + 11 + const app = new Hono(); 12 + 13 + let res = new Response(); 14 + 15 + app.use(({ req }) => { 16 + 17 + new P 18 + 19 + }) 20 + 21 + return app.fetch(req); 22 + }, 23 + });
-8
src/registry.ts
··· 1 - import { setup } from "rivetkit"; 2 - 3 - import { authServer } from "./registry/authServer"; 4 - import { http } from "./registry/http"; 5 - 6 - export const registry = setup({ 7 - use: { http, authServer }, 8 - });
-229
src/registry/authServer.ts
··· 1 - import { actor, ActorDefinition } from "rivetkit"; 2 - import { CONFIG } from "../config"; 3 - import { 4 - Account, 5 - AuthenticateAccountData, 6 - AuthorizedClientData, 7 - AuthorizedClients, 8 - Awaitable, 9 - ClientId, 10 - Code, 11 - CreateAccountData, 12 - CreateTokenData, 13 - DeviceAccount, 14 - DeviceData, 15 - DeviceId, 16 - FoundRequestResult, 17 - Keyset, 18 - LexiconData, 19 - NewTokenData, 20 - OAuthClientMetadata, 21 - OAuthProvider, 22 - RefreshToken, 23 - RequestData, 24 - RequestId, 25 - ResetPasswordConfirmInput, 26 - ResetPasswordRequestInput, 27 - Sub, 28 - TokenId, 29 - TokenInfo, 30 - UpdateRequestData, 31 - } from "@atproto/oauth-provider"; 32 - 33 - export const authServer = actor({ 34 - state: { 35 - accounts: [] as CreateAccountData[], 36 - }, 37 - vars: undefined as unknown as { 38 - provider: OAuthProvider; 39 - }, 40 - createVars: (c) => { 41 - return { 42 - provider: new OAuthProvider({ 43 - issuer: CONFIG.publicEndpoint, 44 - keyset: new Keyset([]), 45 - accountStore: { 46 - createAccount: function ( 47 - data: CreateAccountData, 48 - ): Awaitable<Account> { 49 - throw new Error("Function not implemented."); 50 - }, 51 - authenticateAccount: function ( 52 - data: AuthenticateAccountData, 53 - ): Awaitable<Account> { 54 - throw new Error("Function not implemented."); 55 - }, 56 - setAuthorizedClient: function ( 57 - sub: Sub, 58 - clientId: ClientId, 59 - data: AuthorizedClientData, 60 - ): Awaitable<void> { 61 - throw new Error("Function not implemented."); 62 - }, 63 - getAccount: function (sub: Sub): Awaitable<{ 64 - account: Account; 65 - authorizedClients: AuthorizedClients; 66 - }> { 67 - throw new Error("Function not implemented."); 68 - }, 69 - upsertDeviceAccount: function ( 70 - deviceId: DeviceId, 71 - sub: Sub, 72 - ): Awaitable<void> { 73 - throw new Error("Function not implemented."); 74 - }, 75 - getDeviceAccount: function ( 76 - deviceId: DeviceId, 77 - sub: Sub, 78 - ): Awaitable<DeviceAccount | null> { 79 - throw new Error("Function not implemented."); 80 - }, 81 - removeDeviceAccount: function ( 82 - deviceId: DeviceId, 83 - sub: Sub, 84 - ): Awaitable<void> { 85 - throw new Error("Function not implemented."); 86 - }, 87 - listDeviceAccounts: function ( 88 - filter: { sub: Sub } | { deviceId: DeviceId }, 89 - ): Awaitable<DeviceAccount[]> { 90 - throw new Error("Function not implemented."); 91 - }, 92 - resetPasswordRequest: function ( 93 - data: ResetPasswordRequestInput, 94 - ): Awaitable<null | Account> { 95 - throw new Error("Function not implemented."); 96 - }, 97 - resetPasswordConfirm: function ( 98 - data: ResetPasswordConfirmInput, 99 - ): Awaitable<null | Account> { 100 - throw new Error("Function not implemented."); 101 - }, 102 - verifyHandleAvailability: function (handle: string): Awaitable<void> { 103 - throw new Error("Function not implemented."); 104 - }, 105 - }, 106 - deviceStore: { 107 - createDevice: function ( 108 - deviceId: DeviceId, 109 - data: DeviceData, 110 - ): Awaitable<void> { 111 - throw new Error("Function not implemented."); 112 - }, 113 - readDevice: function ( 114 - deviceId: DeviceId, 115 - ): Awaitable<DeviceData | null> { 116 - throw new Error("Function not implemented."); 117 - }, 118 - updateDevice: function ( 119 - deviceId: DeviceId, 120 - data: Partial<DeviceData>, 121 - ): Awaitable<void> { 122 - throw new Error("Function not implemented."); 123 - }, 124 - deleteDevice: function (deviceId: DeviceId): Awaitable<void> { 125 - throw new Error("Function not implemented."); 126 - }, 127 - }, 128 - tokenStore: { 129 - createToken: function ( 130 - tokenId: TokenId, 131 - data: CreateTokenData, 132 - refreshToken?: RefreshToken, 133 - ): Awaitable<void> { 134 - throw new Error("Function not implemented."); 135 - }, 136 - readToken: function (tokenId: TokenId): Awaitable<null | TokenInfo> { 137 - throw new Error("Function not implemented."); 138 - }, 139 - deleteToken: function (tokenId: TokenId): Awaitable<void> { 140 - throw new Error("Function not implemented."); 141 - }, 142 - rotateToken: function ( 143 - tokenId: TokenId, 144 - newTokenId: TokenId, 145 - newRefreshToken: RefreshToken, 146 - newData: NewTokenData, 147 - ): Awaitable<void> { 148 - throw new Error("Function not implemented."); 149 - }, 150 - findTokenByRefreshToken: function ( 151 - refreshToken: RefreshToken, 152 - ): Awaitable<null | TokenInfo> { 153 - throw new Error("Function not implemented."); 154 - }, 155 - findTokenByCode: function (code: Code): Awaitable<null | TokenInfo> { 156 - throw new Error("Function not implemented."); 157 - }, 158 - listAccountTokens: function (sub: Sub): Awaitable<TokenInfo[]> { 159 - throw new Error("Function not implemented."); 160 - }, 161 - }, 162 - clientStore: { 163 - findClient: function ( 164 - clientId: ClientId, 165 - ): Awaitable<OAuthClientMetadata> { 166 - throw new Error("Function not implemented."); 167 - }, 168 - }, 169 - replayStore: { 170 - unique: function ( 171 - namespace: string, 172 - nonce: string, 173 - timeFrame: number, 174 - ): Awaitable<boolean> { 175 - throw new Error("Function not implemented."); 176 - }, 177 - }, 178 - lexiconStore: { 179 - findLexicon: function (nsid: string): Awaitable<LexiconData | null> { 180 - throw new Error("Function not implemented."); 181 - }, 182 - storeLexicon: function ( 183 - nsid: string, 184 - data: LexiconData, 185 - ): Awaitable<void> { 186 - throw new Error("Function not implemented."); 187 - }, 188 - deleteLexicon: function (nsid: string): Awaitable<void> { 189 - throw new Error("Function not implemented."); 190 - }, 191 - }, 192 - requestStore: { 193 - createRequest: function ( 194 - requestId: RequestId, 195 - data: RequestData, 196 - ): Awaitable<void> { 197 - throw new Error("Function not implemented."); 198 - }, 199 - readRequest: function ( 200 - requestId: RequestId, 201 - ): Awaitable<RequestData | null> { 202 - throw new Error("Function not implemented."); 203 - }, 204 - updateRequest: function ( 205 - requestId: RequestId, 206 - data: UpdateRequestData, 207 - ): Awaitable<void> { 208 - throw new Error("Function not implemented."); 209 - }, 210 - deleteRequest: function ( 211 - requestId: RequestId, 212 - ): void | Awaitable<void> { 213 - throw new Error("Function not implemented."); 214 - }, 215 - consumeRequestCode: function ( 216 - code: Code, 217 - ): Awaitable<FoundRequestResult | null> { 218 - throw new Error("Function not implemented."); 219 - }, 220 - }, 221 - }), 222 - }; 223 - }, 224 - actions: { 225 - getMetadata: (c) => { 226 - return JSON.stringify(c.vars.provider.metadata); 227 - }, 228 - }, 229 - });
-25
src/registry/http.ts
··· 1 - import { Hono } from "hono"; 2 - import { actor } from "rivetkit"; 3 - import type { registry } from "../registry"; 4 - 5 - /** Create an HTTP actor for handling requests. */ 6 - export const http = actor({ 7 - onRequest(c, req) { 8 - const client = c.client<typeof registry>(); 9 - const authServer = client.authServer.getOrCreate("main"); 10 - 11 - const app = new Hono(); 12 - 13 - app.get( 14 - "/.well-known/oauth-authorization-server", 15 - async () => 16 - new Response(await authServer.getMetadata(), { 17 - headers: { 18 - "content-type": "application/json", 19 - }, 20 - }), 21 - ); 22 - 23 - return app.fetch(req); 24 - }, 25 - });
+1 -1
src/start_gateway.ts
··· 1 1 import { createClient } from "rivetkit/client"; 2 - import { registry } from "./registry"; 2 + import { registry } from "./actors"; 3 3 import { serve } from "@hono/node-server"; 4 4 import { Hono } from "hono"; 5 5
+1 -1
src/start_runner.ts
··· 1 - import { registry } from "./registry.ts" 1 + import { registry } from "./actors.ts" 2 2 3 3 registry.startRunner();