@clioplaylists/clio 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/dist/api/com/clioplaylists/alpha/actor/getProfile.d.ts +0 -0
  2. package/dist/api/com/clioplaylists/alpha/actor/getProfile.js +37 -0
  3. package/dist/api/com/clioplaylists/alpha/feed/getSongs.d.ts +0 -0
  4. package/dist/api/com/clioplaylists/alpha/feed/getSongs.js +37 -0
  5. package/dist/api/health.d.ts +3 -0
  6. package/dist/api/health.js +32 -0
  7. package/dist/api/index.d.ts +4 -0
  8. package/dist/api/index.js +43 -0
  9. package/dist/api/util.d.ts +9 -0
  10. package/dist/api/util.js +17 -0
  11. package/dist/auth-verifier.d.ts +92 -0
  12. package/dist/auth-verifier.js +473 -0
  13. package/dist/client.d.ts +9 -0
  14. package/dist/client.js +40 -0
  15. package/dist/config.d.ts +21 -0
  16. package/dist/config.js +65 -0
  17. package/dist/context.d.ts +11 -0
  18. package/dist/context.js +19 -0
  19. package/dist/dataplane/client.d.ts +27 -0
  20. package/dist/dataplane/client.js +165 -0
  21. package/dist/dataplane/index.d.ts +2 -0
  22. package/dist/dataplane/index.js +18 -0
  23. package/dist/dataplane/server/background.d.ts +13 -0
  24. package/dist/dataplane/server/background.js +51 -0
  25. package/dist/dataplane/server/db/database-schema.d.ts +13 -0
  26. package/dist/dataplane/server/db/database-schema.js +2 -0
  27. package/dist/dataplane/server/db/db.d.ts +32 -0
  28. package/dist/dataplane/server/db/db.js +228 -0
  29. package/dist/dataplane/server/db/index.d.ts +1 -0
  30. package/dist/dataplane/server/db/index.js +17 -0
  31. package/dist/dataplane/server/db/migrations/20230309T045948368Z-init.d.ts +3 -0
  32. package/dist/dataplane/server/db/migrations/20230309T045948368Z-init.js +117 -0
  33. package/dist/dataplane/server/db/migrations/20230420T211446071Z-did-cache.d.ts +3 -0
  34. package/dist/dataplane/server/db/migrations/20230420T211446071Z-did-cache.js +15 -0
  35. package/dist/dataplane/server/db/migrations/index.d.ts +2 -0
  36. package/dist/dataplane/server/db/migrations/index.js +41 -0
  37. package/dist/dataplane/server/db/migrations/provider.d.ts +11 -0
  38. package/dist/dataplane/server/db/migrations/provider.js +31 -0
  39. package/dist/dataplane/server/db/pagination.d.ts +86 -0
  40. package/dist/dataplane/server/db/pagination.js +144 -0
  41. package/dist/dataplane/server/db/tables/actor-sync.d.ts +9 -0
  42. package/dist/dataplane/server/db/tables/actor-sync.js +4 -0
  43. package/dist/dataplane/server/db/tables/actor.d.ts +11 -0
  44. package/dist/dataplane/server/db/tables/actor.js +4 -0
  45. package/dist/dataplane/server/db/tables/artist-list-item.d.ts +11 -0
  46. package/dist/dataplane/server/db/tables/artist-list-item.js +4 -0
  47. package/dist/dataplane/server/db/tables/artist.d.ts +10 -0
  48. package/dist/dataplane/server/db/tables/artist.js +4 -0
  49. package/dist/dataplane/server/db/tables/playlist-idea.d.ts +14 -0
  50. package/dist/dataplane/server/db/tables/playlist-idea.js +4 -0
  51. package/dist/dataplane/server/db/tables/playlist-item.d.ts +11 -0
  52. package/dist/dataplane/server/db/tables/playlist-item.js +4 -0
  53. package/dist/dataplane/server/db/tables/playlist.d.ts +10 -0
  54. package/dist/dataplane/server/db/tables/playlist.js +4 -0
  55. package/dist/dataplane/server/db/tables/profile.d.ts +15 -0
  56. package/dist/dataplane/server/db/tables/profile.js +4 -0
  57. package/dist/dataplane/server/db/tables/record.d.ts +12 -0
  58. package/dist/dataplane/server/db/tables/record.js +4 -0
  59. package/dist/dataplane/server/db/tables/song.d.ts +12 -0
  60. package/dist/dataplane/server/db/tables/song.js +4 -0
  61. package/dist/dataplane/server/db/types.d.ts +9 -0
  62. package/dist/dataplane/server/db/types.js +2 -0
  63. package/dist/dataplane/server/db/util.d.ts +20 -0
  64. package/dist/dataplane/server/db/util.js +48 -0
  65. package/dist/dataplane/server/index.d.ts +11 -0
  66. package/dist/dataplane/server/index.js +52 -0
  67. package/dist/dataplane/server/indexing/index.d.ts +32 -0
  68. package/dist/dataplane/server/indexing/index.js +321 -0
  69. package/dist/dataplane/server/indexing/plugins/playlist-idea.d.ts +14 -0
  70. package/dist/dataplane/server/indexing/plugins/playlist-idea.js +163 -0
  71. package/dist/dataplane/server/indexing/plugins/profile.d.ts +8 -0
  72. package/dist/dataplane/server/indexing/plugins/profile.js +81 -0
  73. package/dist/dataplane/server/indexing/processor.d.ts +22 -0
  74. package/dist/dataplane/server/indexing/processor.js +90 -0
  75. package/dist/dataplane/server/routes/identity.d.ts +6 -0
  76. package/dist/dataplane/server/routes/identity.js +56 -0
  77. package/dist/dataplane/server/routes/index.d.ts +5 -0
  78. package/dist/dataplane/server/routes/index.js +19 -0
  79. package/dist/dataplane/server/routes/profile.d.ts +5 -0
  80. package/dist/dataplane/server/routes/profile.js +61 -0
  81. package/dist/dataplane/server/routes/records.d.ts +11 -0
  82. package/dist/dataplane/server/routes/records.js +88 -0
  83. package/dist/dataplane/server/routes/sync.d.ts +5 -0
  84. package/dist/dataplane/server/routes/sync.js +14 -0
  85. package/dist/dataplane/server/subscription.d.ts +25 -0
  86. package/dist/dataplane/server/subscription.js +114 -0
  87. package/dist/error.d.ts +2 -0
  88. package/dist/error.js +14 -0
  89. package/dist/index.d.ts +20 -0
  90. package/dist/index.js +115 -0
  91. package/dist/lexicons/index.d.ts +278 -0
  92. package/dist/lexicons/index.js +638 -0
  93. package/dist/lexicons/lexicons.d.ts +8466 -0
  94. package/dist/lexicons/lexicons.js +4551 -0
  95. package/dist/lexicons/types/com/atproto/admin/defs.d.ts +50 -0
  96. package/dist/lexicons/types/com/atproto/admin/defs.js +54 -0
  97. package/dist/lexicons/types/com/atproto/admin/deleteAccount.d.ts +29 -0
  98. package/dist/lexicons/types/com/atproto/admin/deleteAccount.js +2 -0
  99. package/dist/lexicons/types/com/atproto/admin/disableAccountInvites.d.ts +31 -0
  100. package/dist/lexicons/types/com/atproto/admin/disableAccountInvites.js +2 -0
  101. package/dist/lexicons/types/com/atproto/admin/disableInviteCodes.d.ts +30 -0
  102. package/dist/lexicons/types/com/atproto/admin/disableInviteCodes.js +2 -0
  103. package/dist/lexicons/types/com/atproto/admin/enableAccountInvites.d.ts +31 -0
  104. package/dist/lexicons/types/com/atproto/admin/enableAccountInvites.js +2 -0
  105. package/dist/lexicons/types/com/atproto/admin/getAccountInfo.d.ts +33 -0
  106. package/dist/lexicons/types/com/atproto/admin/getAccountInfo.js +2 -0
  107. package/dist/lexicons/types/com/atproto/admin/getAccountInfos.d.ts +36 -0
  108. package/dist/lexicons/types/com/atproto/admin/getAccountInfos.js +2 -0
  109. package/dist/lexicons/types/com/atproto/admin/getInviteCodes.d.ts +39 -0
  110. package/dist/lexicons/types/com/atproto/admin/getInviteCodes.js +2 -0
  111. package/dist/lexicons/types/com/atproto/admin/getSubjectStatus.d.ts +44 -0
  112. package/dist/lexicons/types/com/atproto/admin/getSubjectStatus.js +2 -0
  113. package/dist/lexicons/types/com/atproto/admin/searchAccounts.d.ts +39 -0
  114. package/dist/lexicons/types/com/atproto/admin/searchAccounts.js +2 -0
  115. package/dist/lexicons/types/com/atproto/admin/sendEmail.d.ts +45 -0
  116. package/dist/lexicons/types/com/atproto/admin/sendEmail.js +2 -0
  117. package/dist/lexicons/types/com/atproto/admin/updateAccountEmail.d.ts +31 -0
  118. package/dist/lexicons/types/com/atproto/admin/updateAccountEmail.js +2 -0
  119. package/dist/lexicons/types/com/atproto/admin/updateAccountHandle.d.ts +30 -0
  120. package/dist/lexicons/types/com/atproto/admin/updateAccountHandle.js +2 -0
  121. package/dist/lexicons/types/com/atproto/admin/updateAccountPassword.d.ts +30 -0
  122. package/dist/lexicons/types/com/atproto/admin/updateAccountPassword.js +2 -0
  123. package/dist/lexicons/types/com/atproto/admin/updateSubjectStatus.d.ts +51 -0
  124. package/dist/lexicons/types/com/atproto/admin/updateSubjectStatus.js +2 -0
  125. package/dist/lexicons/types/com/atproto/identity/defs.d.ts +14 -0
  126. package/dist/lexicons/types/com/atproto/identity/defs.js +14 -0
  127. package/dist/lexicons/types/com/atproto/identity/getRecommendedDidCredentials.d.ts +38 -0
  128. package/dist/lexicons/types/com/atproto/identity/getRecommendedDidCredentials.js +2 -0
  129. package/dist/lexicons/types/com/atproto/identity/refreshIdentity.d.ts +39 -0
  130. package/dist/lexicons/types/com/atproto/identity/refreshIdentity.js +2 -0
  131. package/dist/lexicons/types/com/atproto/identity/requestPlcOperationSignature.d.ts +23 -0
  132. package/dist/lexicons/types/com/atproto/identity/requestPlcOperationSignature.js +2 -0
  133. package/dist/lexicons/types/com/atproto/identity/resolveDid.d.ts +38 -0
  134. package/dist/lexicons/types/com/atproto/identity/resolveDid.js +2 -0
  135. package/dist/lexicons/types/com/atproto/identity/resolveHandle.d.ts +37 -0
  136. package/dist/lexicons/types/com/atproto/identity/resolveHandle.js +2 -0
  137. package/dist/lexicons/types/com/atproto/identity/resolveIdentity.d.ts +35 -0
  138. package/dist/lexicons/types/com/atproto/identity/resolveIdentity.js +2 -0
  139. package/dist/lexicons/types/com/atproto/identity/signPlcOperation.d.ts +46 -0
  140. package/dist/lexicons/types/com/atproto/identity/signPlcOperation.js +2 -0
  141. package/dist/lexicons/types/com/atproto/identity/submitPlcOperation.d.ts +29 -0
  142. package/dist/lexicons/types/com/atproto/identity/submitPlcOperation.js +2 -0
  143. package/dist/lexicons/types/com/atproto/identity/updateHandle.d.ts +30 -0
  144. package/dist/lexicons/types/com/atproto/identity/updateHandle.js +2 -0
  145. package/dist/lexicons/types/com/atproto/label/defs.d.ts +73 -0
  146. package/dist/lexicons/types/com/atproto/label/defs.js +54 -0
  147. package/dist/lexicons/types/com/atproto/label/queryLabels.d.ts +42 -0
  148. package/dist/lexicons/types/com/atproto/label/queryLabels.js +2 -0
  149. package/dist/lexicons/types/com/atproto/label/subscribeLabels.d.ts +38 -0
  150. package/dist/lexicons/types/com/atproto/label/subscribeLabels.js +24 -0
  151. package/dist/lexicons/types/com/atproto/lexicon/schema.d.ts +11 -0
  152. package/dist/lexicons/types/com/atproto/lexicon/schema.js +15 -0
  153. package/dist/lexicons/types/com/atproto/moderation/createReport.d.ts +57 -0
  154. package/dist/lexicons/types/com/atproto/moderation/createReport.js +2 -0
  155. package/dist/lexicons/types/com/atproto/moderation/defs.d.ts +20 -0
  156. package/dist/lexicons/types/com/atproto/moderation/defs.js +20 -0
  157. package/dist/lexicons/types/com/atproto/repo/applyWrites.d.ts +98 -0
  158. package/dist/lexicons/types/com/atproto/repo/applyWrites.js +64 -0
  159. package/dist/lexicons/types/com/atproto/repo/createRecord.d.ts +56 -0
  160. package/dist/lexicons/types/com/atproto/repo/createRecord.js +2 -0
  161. package/dist/lexicons/types/com/atproto/repo/defs.d.ts +11 -0
  162. package/dist/lexicons/types/com/atproto/repo/defs.js +14 -0
  163. package/dist/lexicons/types/com/atproto/repo/deleteRecord.d.ts +51 -0
  164. package/dist/lexicons/types/com/atproto/repo/deleteRecord.js +2 -0
  165. package/dist/lexicons/types/com/atproto/repo/describeRepo.d.ts +43 -0
  166. package/dist/lexicons/types/com/atproto/repo/describeRepo.js +2 -0
  167. package/dist/lexicons/types/com/atproto/repo/getRecord.d.ts +45 -0
  168. package/dist/lexicons/types/com/atproto/repo/getRecord.js +2 -0
  169. package/dist/lexicons/types/com/atproto/repo/importRepo.d.ts +27 -0
  170. package/dist/lexicons/types/com/atproto/repo/importRepo.js +2 -0
  171. package/dist/lexicons/types/com/atproto/repo/listMissingBlobs.d.ts +45 -0
  172. package/dist/lexicons/types/com/atproto/repo/listMissingBlobs.js +14 -0
  173. package/dist/lexicons/types/com/atproto/repo/listRecords.d.ts +53 -0
  174. package/dist/lexicons/types/com/atproto/repo/listRecords.js +14 -0
  175. package/dist/lexicons/types/com/atproto/repo/putRecord.d.ts +58 -0
  176. package/dist/lexicons/types/com/atproto/repo/putRecord.js +2 -0
  177. package/dist/lexicons/types/com/atproto/repo/strongRef.d.ts +11 -0
  178. package/dist/lexicons/types/com/atproto/repo/strongRef.js +15 -0
  179. package/dist/lexicons/types/com/atproto/repo/uploadBlob.d.ts +39 -0
  180. package/dist/lexicons/types/com/atproto/repo/uploadBlob.js +2 -0
  181. package/dist/lexicons/types/com/atproto/server/activateAccount.d.ts +23 -0
  182. package/dist/lexicons/types/com/atproto/server/activateAccount.js +2 -0
  183. package/dist/lexicons/types/com/atproto/server/checkAccountStatus.d.ts +42 -0
  184. package/dist/lexicons/types/com/atproto/server/checkAccountStatus.js +2 -0
  185. package/dist/lexicons/types/com/atproto/server/confirmEmail.d.ts +31 -0
  186. package/dist/lexicons/types/com/atproto/server/confirmEmail.js +2 -0
  187. package/dist/lexicons/types/com/atproto/server/createAccount.d.ts +61 -0
  188. package/dist/lexicons/types/com/atproto/server/createAccount.js +2 -0
  189. package/dist/lexicons/types/com/atproto/server/createAppPassword.d.ts +51 -0
  190. package/dist/lexicons/types/com/atproto/server/createAppPassword.js +14 -0
  191. package/dist/lexicons/types/com/atproto/server/createInviteCode.d.ts +41 -0
  192. package/dist/lexicons/types/com/atproto/server/createInviteCode.js +2 -0
  193. package/dist/lexicons/types/com/atproto/server/createInviteCodes.d.ts +50 -0
  194. package/dist/lexicons/types/com/atproto/server/createInviteCodes.js +14 -0
  195. package/dist/lexicons/types/com/atproto/server/createSession.d.ts +56 -0
  196. package/dist/lexicons/types/com/atproto/server/createSession.js +2 -0
  197. package/dist/lexicons/types/com/atproto/server/deactivateAccount.d.ts +30 -0
  198. package/dist/lexicons/types/com/atproto/server/deactivateAccount.js +2 -0
  199. package/dist/lexicons/types/com/atproto/server/defs.d.ts +23 -0
  200. package/dist/lexicons/types/com/atproto/server/defs.js +24 -0
  201. package/dist/lexicons/types/com/atproto/server/deleteAccount.d.ts +32 -0
  202. package/dist/lexicons/types/com/atproto/server/deleteAccount.js +2 -0
  203. package/dist/lexicons/types/com/atproto/server/deleteSession.d.ts +23 -0
  204. package/dist/lexicons/types/com/atproto/server/deleteSession.js +2 -0
  205. package/dist/lexicons/types/com/atproto/server/describeServer.d.ts +56 -0
  206. package/dist/lexicons/types/com/atproto/server/describeServer.js +24 -0
  207. package/dist/lexicons/types/com/atproto/server/getAccountInviteCodes.d.ts +39 -0
  208. package/dist/lexicons/types/com/atproto/server/getAccountInviteCodes.js +2 -0
  209. package/dist/lexicons/types/com/atproto/server/getServiceAuth.d.ts +41 -0
  210. package/dist/lexicons/types/com/atproto/server/getServiceAuth.js +2 -0
  211. package/dist/lexicons/types/com/atproto/server/getSession.d.ts +42 -0
  212. package/dist/lexicons/types/com/atproto/server/getSession.js +2 -0
  213. package/dist/lexicons/types/com/atproto/server/listAppPasswords.d.ts +44 -0
  214. package/dist/lexicons/types/com/atproto/server/listAppPasswords.js +14 -0
  215. package/dist/lexicons/types/com/atproto/server/refreshSession.d.ts +42 -0
  216. package/dist/lexicons/types/com/atproto/server/refreshSession.js +2 -0
  217. package/dist/lexicons/types/com/atproto/server/requestAccountDelete.d.ts +23 -0
  218. package/dist/lexicons/types/com/atproto/server/requestAccountDelete.js +2 -0
  219. package/dist/lexicons/types/com/atproto/server/requestEmailConfirmation.d.ts +23 -0
  220. package/dist/lexicons/types/com/atproto/server/requestEmailConfirmation.js +2 -0
  221. package/dist/lexicons/types/com/atproto/server/requestEmailUpdate.d.ts +34 -0
  222. package/dist/lexicons/types/com/atproto/server/requestEmailUpdate.js +2 -0
  223. package/dist/lexicons/types/com/atproto/server/requestPasswordReset.d.ts +29 -0
  224. package/dist/lexicons/types/com/atproto/server/requestPasswordReset.js +2 -0
  225. package/dist/lexicons/types/com/atproto/server/reserveSigningKey.d.ts +42 -0
  226. package/dist/lexicons/types/com/atproto/server/reserveSigningKey.js +2 -0
  227. package/dist/lexicons/types/com/atproto/server/resetPassword.d.ts +31 -0
  228. package/dist/lexicons/types/com/atproto/server/resetPassword.js +2 -0
  229. package/dist/lexicons/types/com/atproto/server/revokeAppPassword.d.ts +29 -0
  230. package/dist/lexicons/types/com/atproto/server/revokeAppPassword.js +2 -0
  231. package/dist/lexicons/types/com/atproto/server/updateEmail.d.ts +33 -0
  232. package/dist/lexicons/types/com/atproto/server/updateEmail.js +2 -0
  233. package/dist/lexicons/types/com/atproto/sync/getBlob.d.ts +36 -0
  234. package/dist/lexicons/types/com/atproto/sync/getBlob.js +2 -0
  235. package/dist/lexicons/types/com/atproto/sync/getBlocks.d.ts +35 -0
  236. package/dist/lexicons/types/com/atproto/sync/getBlocks.js +2 -0
  237. package/dist/lexicons/types/com/atproto/sync/getCheckout.d.ts +33 -0
  238. package/dist/lexicons/types/com/atproto/sync/getCheckout.js +2 -0
  239. package/dist/lexicons/types/com/atproto/sync/getHead.d.ts +37 -0
  240. package/dist/lexicons/types/com/atproto/sync/getHead.js +2 -0
  241. package/dist/lexicons/types/com/atproto/sync/getLatestCommit.d.ts +38 -0
  242. package/dist/lexicons/types/com/atproto/sync/getLatestCommit.js +2 -0
  243. package/dist/lexicons/types/com/atproto/sync/getRecord.d.ts +37 -0
  244. package/dist/lexicons/types/com/atproto/sync/getRecord.js +2 -0
  245. package/dist/lexicons/types/com/atproto/sync/getRepo.d.ts +36 -0
  246. package/dist/lexicons/types/com/atproto/sync/getRepo.js +2 -0
  247. package/dist/lexicons/types/com/atproto/sync/getRepoStatus.d.ts +42 -0
  248. package/dist/lexicons/types/com/atproto/sync/getRepoStatus.js +2 -0
  249. package/dist/lexicons/types/com/atproto/sync/listBlobs.d.ts +42 -0
  250. package/dist/lexicons/types/com/atproto/sync/listBlobs.js +2 -0
  251. package/dist/lexicons/types/com/atproto/sync/listRepos.d.ts +50 -0
  252. package/dist/lexicons/types/com/atproto/sync/listRepos.js +14 -0
  253. package/dist/lexicons/types/com/atproto/sync/listReposByCollection.d.ts +46 -0
  254. package/dist/lexicons/types/com/atproto/sync/listReposByCollection.js +14 -0
  255. package/dist/lexicons/types/com/atproto/sync/notifyOfUpdate.d.ts +30 -0
  256. package/dist/lexicons/types/com/atproto/sync/notifyOfUpdate.js +2 -0
  257. package/dist/lexicons/types/com/atproto/sync/requestCrawl.d.ts +30 -0
  258. package/dist/lexicons/types/com/atproto/sync/requestCrawl.js +2 -0
  259. package/dist/lexicons/types/com/atproto/sync/subscribeRepos.d.ts +111 -0
  260. package/dist/lexicons/types/com/atproto/sync/subscribeRepos.js +64 -0
  261. package/dist/lexicons/types/com/atproto/temp/addReservedHandle.d.ts +39 -0
  262. package/dist/lexicons/types/com/atproto/temp/addReservedHandle.js +2 -0
  263. package/dist/lexicons/types/com/atproto/temp/checkSignupQueue.d.ts +36 -0
  264. package/dist/lexicons/types/com/atproto/temp/checkSignupQueue.js +2 -0
  265. package/dist/lexicons/types/com/atproto/temp/fetchLabels.d.ts +37 -0
  266. package/dist/lexicons/types/com/atproto/temp/fetchLabels.js +2 -0
  267. package/dist/lexicons/types/com/atproto/temp/requestPhoneVerification.d.ts +29 -0
  268. package/dist/lexicons/types/com/atproto/temp/requestPhoneVerification.js +2 -0
  269. package/dist/lexicons/types/com/clioplaylists/alpha/actor/profile.d.ts +19 -0
  270. package/dist/lexicons/types/com/clioplaylists/alpha/actor/profile.js +15 -0
  271. package/dist/lexicons/types/com/clioplaylists/alpha/feed/defs.d.ts +32 -0
  272. package/dist/lexicons/types/com/clioplaylists/alpha/feed/defs.js +24 -0
  273. package/dist/lexicons/types/com/clioplaylists/alpha/feed/getSongs.d.ts +37 -0
  274. package/dist/lexicons/types/com/clioplaylists/alpha/feed/getSongs.js +2 -0
  275. package/dist/lexicons/types/com/clioplaylists/alpha/feed/playlistIdea.d.ts +32 -0
  276. package/dist/lexicons/types/com/clioplaylists/alpha/feed/playlistIdea.js +35 -0
  277. package/dist/lexicons/util.d.ts +5 -0
  278. package/dist/lexicons/util.js +13 -0
  279. package/dist/logger.d.ts +6 -0
  280. package/dist/logger.js +26 -0
  281. package/dist/rpc/clio_connect.d.ts +103 -0
  282. package/dist/rpc/clio_connect.js +110 -0
  283. package/dist/rpc/clio_pb.d.ts +457 -0
  284. package/dist/rpc/clio_pb.js +1365 -0
  285. package/dist/start.d.ts +1 -0
  286. package/dist/util/retry.d.ts +2 -0
  287. package/dist/util/retry.js +16 -0
  288. package/dist/util/uris.d.ts +1 -0
  289. package/dist/util/uris.js +7 -0
  290. package/dist/util.d.ts +23 -0
  291. package/dist/util.js +119 -0
  292. package/package.json +7 -7
  293. /package/{start.js → dist/start.js} +0 -0
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.up = up;
4
+ exports.down = down;
5
+ async function up(db) {
6
+ await db.schema
7
+ .createTable('did_cache')
8
+ .addColumn('did', 'varchar', (col) => col.primaryKey())
9
+ .addColumn('doc', 'jsonb', (col) => col.notNull())
10
+ .addColumn('updatedAt', 'bigint', (col) => col.notNull())
11
+ .execute();
12
+ }
13
+ async function down(db) {
14
+ await db.schema.dropTable('did_cache').execute();
15
+ }
@@ -0,0 +1,2 @@
1
+ export * as _20230309T045948368Z from './20230309T045948368Z-init';
2
+ export * as _20230420T211446071Z from './20230420T211446071Z-did-cache';
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ // NOTE this file can be edited by hand, but it is also appended to by the migration:create command.
3
+ // It's important that every migration is exported from here with the proper name. We'd simplify
4
+ // this with kysely's FileMigrationProvider, but it doesn't play nicely with the build process.
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports._20230420T211446071Z = exports._20230309T045948368Z = void 0;
40
+ exports._20230309T045948368Z = __importStar(require("./20230309T045948368Z-init"));
41
+ exports._20230420T211446071Z = __importStar(require("./20230420T211446071Z-did-cache"));
@@ -0,0 +1,11 @@
1
+ import { Kysely, Migration, MigrationProvider } from 'kysely';
2
+ export declare class CtxMigrationProvider<T> implements MigrationProvider {
3
+ private migrations;
4
+ private ctx;
5
+ constructor(migrations: Record<string, CtxMigration<T>>, ctx: T);
6
+ getMigrations(): Promise<Record<string, Migration>>;
7
+ }
8
+ export interface CtxMigration<T> {
9
+ up(db: Kysely<unknown>, ctx: T): Promise<void>;
10
+ down?(db: Kysely<unknown>, ctx: T): Promise<void>;
11
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CtxMigrationProvider = void 0;
4
+ // Passes a context argument to migrations. We use this to thread the dialect into migrations
5
+ class CtxMigrationProvider {
6
+ constructor(migrations, ctx) {
7
+ Object.defineProperty(this, "migrations", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: migrations
12
+ });
13
+ Object.defineProperty(this, "ctx", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: ctx
18
+ });
19
+ }
20
+ async getMigrations() {
21
+ const ctxMigrations = {};
22
+ Object.entries(this.migrations).forEach(([name, migration]) => {
23
+ ctxMigrations[name] = {
24
+ up: async (db) => await migration.up(db, this.ctx),
25
+ down: async (db) => await migration.down?.(db, this.ctx),
26
+ };
27
+ });
28
+ return ctxMigrations;
29
+ }
30
+ }
31
+ exports.CtxMigrationProvider = CtxMigrationProvider;
@@ -0,0 +1,86 @@
1
+ import { AnyQb, DbRef } from './util';
2
+ export type Cursor = {
3
+ primary: string;
4
+ secondary: string;
5
+ };
6
+ export type LabeledResult = {
7
+ primary: string | number;
8
+ secondary: string | number;
9
+ };
10
+ /**
11
+ * The GenericKeyset is an abstract class that sets-up the interface and partial implementation
12
+ * of a keyset-paginated cursor with two parts. There are three types involved:
13
+ * - Result: a raw result (i.e. a row from the db) containing data that will make-up a cursor.
14
+ * - E.g. { createdAt: '2022-01-01T12:00:00Z', cid: 'bafyx' }
15
+ * - LabeledResult: a Result processed such that the "primary" and "secondary" parts of the cursor are labeled.
16
+ * - E.g. { primary: '2022-01-01T12:00:00Z', secondary: 'bafyx' }
17
+ * - Cursor: the two string parts that make-up the packed/string cursor.
18
+ * - E.g. packed cursor '1641038400000__bafyx' in parts { primary: '1641038400000', secondary: 'bafyx' }
19
+ *
20
+ * These types relate as such. Implementers define the relations marked with a *:
21
+ * Result -*-> LabeledResult <-*-> Cursor <--> packed/string cursor
22
+ * ↳ SQL Condition
23
+ */
24
+ export declare abstract class GenericKeyset<R, LR extends LabeledResult> {
25
+ primary: DbRef;
26
+ secondary: DbRef;
27
+ constructor(primary: DbRef, secondary: DbRef);
28
+ abstract labelResult(result: R): LR;
29
+ abstract labeledResultToCursor(labeled: LR): Cursor;
30
+ abstract cursorToLabeledResult(cursor: Cursor): LR;
31
+ packFromResult(results: R | R[]): string | undefined;
32
+ pack(labeled?: LR): string | undefined;
33
+ unpack(cursorStr?: string): LR | undefined;
34
+ packCursor(cursor?: Cursor): string | undefined;
35
+ unpackCursor(cursorStr?: string): Cursor | undefined;
36
+ getSql(labeled?: LR, direction?: 'asc' | 'desc', tryIndex?: boolean): import("kysely").RawBuilder<unknown> | undefined;
37
+ }
38
+ type SortAtCidResult = {
39
+ sortAt: string;
40
+ cid: string;
41
+ };
42
+ type TimeCidLabeledResult = Cursor;
43
+ export declare class TimeCidKeyset<TimeCidResult = SortAtCidResult> extends GenericKeyset<TimeCidResult, TimeCidLabeledResult> {
44
+ labelResult(result: TimeCidResult): TimeCidLabeledResult;
45
+ labeledResultToCursor(labeled: TimeCidLabeledResult): {
46
+ primary: string;
47
+ secondary: string;
48
+ };
49
+ cursorToLabeledResult(cursor: Cursor): {
50
+ primary: string;
51
+ secondary: string;
52
+ };
53
+ }
54
+ export declare class CreatedAtDidKeyset extends TimeCidKeyset<{
55
+ createdAt: string;
56
+ did: string;
57
+ }> {
58
+ labelResult(result: {
59
+ createdAt: string;
60
+ did: string;
61
+ }): {
62
+ primary: string;
63
+ secondary: string;
64
+ };
65
+ }
66
+ export declare class IndexedAtDidKeyset extends TimeCidKeyset<{
67
+ indexedAt: string;
68
+ did: string;
69
+ }> {
70
+ labelResult(result: {
71
+ indexedAt: string;
72
+ did: string;
73
+ }): {
74
+ primary: string;
75
+ secondary: string;
76
+ };
77
+ }
78
+ export declare const paginate: <QB extends AnyQb, K extends GenericKeyset<unknown, any>>(qb: QB, opts: {
79
+ limit?: number;
80
+ cursor?: string;
81
+ direction?: "asc" | "desc";
82
+ keyset: K;
83
+ tryIndex?: boolean;
84
+ nullsLast?: boolean;
85
+ }) => QB;
86
+ export {};
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.paginate = exports.IndexedAtDidKeyset = exports.CreatedAtDidKeyset = exports.TimeCidKeyset = exports.GenericKeyset = void 0;
4
+ const xrpc_server_1 = require("@atproto/xrpc-server");
5
+ const kysely_1 = require("kysely");
6
+ /**
7
+ * The GenericKeyset is an abstract class that sets-up the interface and partial implementation
8
+ * of a keyset-paginated cursor with two parts. There are three types involved:
9
+ * - Result: a raw result (i.e. a row from the db) containing data that will make-up a cursor.
10
+ * - E.g. { createdAt: '2022-01-01T12:00:00Z', cid: 'bafyx' }
11
+ * - LabeledResult: a Result processed such that the "primary" and "secondary" parts of the cursor are labeled.
12
+ * - E.g. { primary: '2022-01-01T12:00:00Z', secondary: 'bafyx' }
13
+ * - Cursor: the two string parts that make-up the packed/string cursor.
14
+ * - E.g. packed cursor '1641038400000__bafyx' in parts { primary: '1641038400000', secondary: 'bafyx' }
15
+ *
16
+ * These types relate as such. Implementers define the relations marked with a *:
17
+ * Result -*-> LabeledResult <-*-> Cursor <--> packed/string cursor
18
+ * ↳ SQL Condition
19
+ */
20
+ class GenericKeyset {
21
+ constructor(primary, secondary) {
22
+ Object.defineProperty(this, "primary", {
23
+ enumerable: true,
24
+ configurable: true,
25
+ writable: true,
26
+ value: primary
27
+ });
28
+ Object.defineProperty(this, "secondary", {
29
+ enumerable: true,
30
+ configurable: true,
31
+ writable: true,
32
+ value: secondary
33
+ });
34
+ }
35
+ packFromResult(results) {
36
+ const result = Array.isArray(results) ? results.at(-1) : results;
37
+ if (!result)
38
+ return;
39
+ return this.pack(this.labelResult(result));
40
+ }
41
+ pack(labeled) {
42
+ if (!labeled)
43
+ return;
44
+ const cursor = this.labeledResultToCursor(labeled);
45
+ return this.packCursor(cursor);
46
+ }
47
+ unpack(cursorStr) {
48
+ const cursor = this.unpackCursor(cursorStr);
49
+ if (!cursor)
50
+ return;
51
+ return this.cursorToLabeledResult(cursor);
52
+ }
53
+ packCursor(cursor) {
54
+ if (!cursor)
55
+ return;
56
+ return `${cursor.primary}__${cursor.secondary}`;
57
+ }
58
+ unpackCursor(cursorStr) {
59
+ if (!cursorStr)
60
+ return;
61
+ const result = cursorStr.split('__');
62
+ const [primary, secondary, ...others] = result;
63
+ if (!primary || !secondary || others.length > 0) {
64
+ throw new xrpc_server_1.InvalidRequestError('Malformed cursor');
65
+ }
66
+ return {
67
+ primary,
68
+ secondary,
69
+ };
70
+ }
71
+ getSql(labeled, direction, tryIndex) {
72
+ if (labeled === undefined)
73
+ return;
74
+ if (tryIndex) {
75
+ // The tryIndex param will likely disappear and become the default implementation: here for now for gradual rollout query-by-query.
76
+ if (direction === 'asc') {
77
+ return (0, kysely_1.sql) `((${this.primary}, ${this.secondary}) > (${labeled.primary}, ${labeled.secondary}))`;
78
+ }
79
+ else {
80
+ return (0, kysely_1.sql) `((${this.primary}, ${this.secondary}) < (${labeled.primary}, ${labeled.secondary}))`;
81
+ }
82
+ }
83
+ else {
84
+ // @NOTE this implementation can struggle to use an index on (primary, secondary) for pagination due to the "or" usage.
85
+ if (direction === 'asc') {
86
+ return (0, kysely_1.sql) `((${this.primary} > ${labeled.primary}) or (${this.primary} = ${labeled.primary} and ${this.secondary} > ${labeled.secondary}))`;
87
+ }
88
+ else {
89
+ return (0, kysely_1.sql) `((${this.primary} < ${labeled.primary}) or (${this.primary} = ${labeled.primary} and ${this.secondary} < ${labeled.secondary}))`;
90
+ }
91
+ }
92
+ }
93
+ }
94
+ exports.GenericKeyset = GenericKeyset;
95
+ class TimeCidKeyset extends GenericKeyset {
96
+ labelResult(result) {
97
+ return { primary: result.sortAt, secondary: result.cid };
98
+ }
99
+ labeledResultToCursor(labeled) {
100
+ return {
101
+ primary: new Date(labeled.primary).getTime().toString(),
102
+ secondary: labeled.secondary,
103
+ };
104
+ }
105
+ cursorToLabeledResult(cursor) {
106
+ const primaryDate = new Date(parseInt(cursor.primary, 10));
107
+ if (isNaN(primaryDate.getTime())) {
108
+ throw new xrpc_server_1.InvalidRequestError('Malformed cursor');
109
+ }
110
+ return {
111
+ primary: primaryDate.toISOString(),
112
+ secondary: cursor.secondary,
113
+ };
114
+ }
115
+ }
116
+ exports.TimeCidKeyset = TimeCidKeyset;
117
+ class CreatedAtDidKeyset extends TimeCidKeyset {
118
+ labelResult(result) {
119
+ return { primary: result.createdAt, secondary: result.did };
120
+ }
121
+ }
122
+ exports.CreatedAtDidKeyset = CreatedAtDidKeyset;
123
+ class IndexedAtDidKeyset extends TimeCidKeyset {
124
+ labelResult(result) {
125
+ return { primary: result.indexedAt, secondary: result.did };
126
+ }
127
+ }
128
+ exports.IndexedAtDidKeyset = IndexedAtDidKeyset;
129
+ const paginate = (qb, opts) => {
130
+ const { limit, cursor, keyset, direction = 'desc', tryIndex, nullsLast, } = opts;
131
+ const keysetSql = keyset.getSql(keyset.unpack(cursor), direction, tryIndex);
132
+ return qb
133
+ .if(!!limit, (q) => q.limit(limit))
134
+ .if(!nullsLast, (q) => q.orderBy(keyset.primary, direction).orderBy(keyset.secondary, direction))
135
+ .if(!!nullsLast, (q) => q
136
+ .orderBy(direction === 'asc'
137
+ ? (0, kysely_1.sql) `${keyset.primary} asc nulls last`
138
+ : (0, kysely_1.sql) `${keyset.primary} desc nulls last`)
139
+ .orderBy(direction === 'asc'
140
+ ? (0, kysely_1.sql) `${keyset.secondary} asc nulls last`
141
+ : (0, kysely_1.sql) `${keyset.secondary} desc nulls last`))
142
+ .if(!!keysetSql, (qb) => (keysetSql ? qb.where(keysetSql) : qb));
143
+ };
144
+ exports.paginate = paginate;
@@ -0,0 +1,9 @@
1
+ export declare const tableName = "actor_sync";
2
+ export interface ActorSync {
3
+ did: string;
4
+ commitCid: string;
5
+ repoRev: string | null;
6
+ }
7
+ export type PartialDB = {
8
+ [tableName]: ActorSync;
9
+ };
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tableName = void 0;
4
+ exports.tableName = 'actor_sync';
@@ -0,0 +1,11 @@
1
+ export declare const tableName = "actor";
2
+ export interface ActorTable {
3
+ did: string;
4
+ handle?: string | null;
5
+ indexed_at: string;
6
+ takedownRef?: string | null;
7
+ upstreamStatus?: string | null;
8
+ }
9
+ export type PartialDB = {
10
+ [tableName]: ActorTable;
11
+ };
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tableName = void 0;
4
+ exports.tableName = 'actor';
@@ -0,0 +1,11 @@
1
+ import { Generated } from 'kysely';
2
+ export declare const tableName = "artist_list_item";
3
+ export interface ArtistListItemTable {
4
+ id: Generated<number>;
5
+ song_id: number;
6
+ seq_num: number;
7
+ artist_id: number;
8
+ }
9
+ export type PartialDB = {
10
+ [tableName]: ArtistListItemTable;
11
+ };
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tableName = void 0;
4
+ exports.tableName = 'artist_list_item';
@@ -0,0 +1,10 @@
1
+ import { Generated } from 'kysely';
2
+ export declare const tableName = "artist";
3
+ export interface ArtistTable {
4
+ id: Generated<number>;
5
+ name: string;
6
+ mb_id: string;
7
+ }
8
+ export type PartialDB = {
9
+ [tableName]: ArtistTable;
10
+ };
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tableName = void 0;
4
+ exports.tableName = 'artist';
@@ -0,0 +1,14 @@
1
+ export declare const tableName = "playlist_idea";
2
+ export interface PlaylistIdeaTable {
3
+ uri: string;
4
+ title: string;
5
+ description?: string;
6
+ creator_did: string;
7
+ owner_did: string;
8
+ master_playlist_id?: number;
9
+ recommended_playlist_id?: number;
10
+ created_at: string;
11
+ }
12
+ export type PartialDB = {
13
+ [tableName]: PlaylistIdeaTable;
14
+ };
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tableName = void 0;
4
+ exports.tableName = 'playlist_idea';
@@ -0,0 +1,11 @@
1
+ import { Generated } from 'kysely';
2
+ export declare const tableName = "playlist_item";
3
+ export interface PlaylistItemTable {
4
+ id: Generated<number>;
5
+ playlist_id: number;
6
+ song_id: number;
7
+ position: number;
8
+ }
9
+ export type PartialDB = {
10
+ [tableName]: PlaylistItemTable;
11
+ };
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tableName = void 0;
4
+ exports.tableName = 'playlist_item';
@@ -0,0 +1,10 @@
1
+ import { Generated } from 'kysely';
2
+ export declare const tableName = "playlist";
3
+ export interface PlaylistTable {
4
+ id: Generated<number>;
5
+ playlist_idea_uri: string;
6
+ type: string;
7
+ }
8
+ export type PartialDB = {
9
+ [tableName]: PlaylistTable;
10
+ };
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tableName = void 0;
4
+ exports.tableName = 'playlist';
@@ -0,0 +1,15 @@
1
+ export declare const tableName = "profile";
2
+ export interface ProfileTable {
3
+ uri: string;
4
+ cid: string;
5
+ creator: string;
6
+ display_name?: string;
7
+ description?: string;
8
+ avatar_cid?: string;
9
+ banner_cid?: string;
10
+ created_at: string;
11
+ indexed_at: string;
12
+ }
13
+ export type PartialDB = {
14
+ [tableName]: ProfileTable;
15
+ };
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tableName = void 0;
4
+ exports.tableName = 'profile';
@@ -0,0 +1,12 @@
1
+ export declare const tableName = "record";
2
+ export interface RecordTable {
3
+ uri: string;
4
+ cid: string;
5
+ did: string;
6
+ json: string;
7
+ indexed_at: string;
8
+ takedown_ref?: string;
9
+ }
10
+ export type PartialDB = {
11
+ [tableName]: RecordTable;
12
+ };
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tableName = void 0;
4
+ exports.tableName = 'record';
@@ -0,0 +1,12 @@
1
+ import { Generated } from 'kysely';
2
+ export declare const tableName = "song";
3
+ export interface SongTable {
4
+ id: Generated<number>;
5
+ track_name: string;
6
+ track_mb_id: string;
7
+ album_artwork_ref?: string;
8
+ created_at?: string;
9
+ }
10
+ export type PartialDB = {
11
+ [tableName]: SongTable;
12
+ };
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tableName = void 0;
4
+ exports.tableName = 'song';
@@ -0,0 +1,9 @@
1
+ import { Pool as PgPool } from 'pg';
2
+ export type PgOptions = {
3
+ url: string;
4
+ pool?: PgPool;
5
+ schema?: string;
6
+ poolSize?: number;
7
+ poolMaxUses?: number;
8
+ poolIdleTimeoutMs?: number;
9
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,20 @@
1
+ import { DummyDriver, DynamicModule, ExpressionBuilder, RawBuilder, SelectQueryBuilder, SqliteAdapter, SqliteIntrospector, SqliteQueryCompiler } from 'kysely';
2
+ import { DatabaseSchema, DatabaseSchemaType } from './database-schema';
3
+ export declare const actorWhereClause: (actor: string) => RawBuilder<0 | 1>;
4
+ export declare const notSoftDeletedClause: (alias: DbRef) => RawBuilder<unknown>;
5
+ export declare const softDeleted: (actorOrRecord: {
6
+ takedownRef: string | null;
7
+ }) => boolean;
8
+ export declare const countAll: RawBuilder<number>;
9
+ export declare const excluded: <T>(db: DatabaseSchema, col: any) => RawBuilder<T>;
10
+ export declare const noMatch: RawBuilder<unknown>;
11
+ export declare const valuesList: (vals: unknown[]) => RawBuilder<unknown>;
12
+ export declare const dummyDialect: {
13
+ createAdapter(): SqliteAdapter;
14
+ createDriver(): DummyDriver;
15
+ createIntrospector(db: any): SqliteIntrospector;
16
+ createQueryCompiler(): SqliteQueryCompiler;
17
+ };
18
+ export type DbRef = RawBuilder | ReturnType<DynamicModule['ref']>;
19
+ export type Subquery = ExpressionBuilder<DatabaseSchemaType, any>;
20
+ export type AnyQb = SelectQueryBuilder<any, any, any>;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dummyDialect = exports.valuesList = exports.noMatch = exports.excluded = exports.countAll = exports.softDeleted = exports.notSoftDeletedClause = exports.actorWhereClause = void 0;
4
+ const kysely_1 = require("kysely");
5
+ const actorWhereClause = (actor) => {
6
+ if (actor.startsWith('did:')) {
7
+ return (0, kysely_1.sql) `"actor"."did" = ${actor}`;
8
+ }
9
+ else {
10
+ return (0, kysely_1.sql) `"actor"."handle" = ${actor}`;
11
+ }
12
+ };
13
+ exports.actorWhereClause = actorWhereClause;
14
+ // Applies to actor or record table
15
+ const notSoftDeletedClause = (alias) => {
16
+ return (0, kysely_1.sql) `${alias}."takedownRef" is null`;
17
+ };
18
+ exports.notSoftDeletedClause = notSoftDeletedClause;
19
+ const softDeleted = (actorOrRecord) => {
20
+ return actorOrRecord.takedownRef !== null;
21
+ };
22
+ exports.softDeleted = softDeleted;
23
+ exports.countAll = (0, kysely_1.sql) `count(*)`;
24
+ // For use with doUpdateSet()
25
+ const excluded = (db, col) => {
26
+ return (0, kysely_1.sql) `${db.dynamic.ref(`excluded.${col}`)}`;
27
+ };
28
+ exports.excluded = excluded;
29
+ exports.noMatch = (0, kysely_1.sql) `1 = 0`;
30
+ // Can be useful for large where-in clauses, to get the db to use a hash lookup on the list
31
+ const valuesList = (vals) => {
32
+ return (0, kysely_1.sql) `(values (${kysely_1.sql.join(vals, (0, kysely_1.sql) `), (`)}))`;
33
+ };
34
+ exports.valuesList = valuesList;
35
+ exports.dummyDialect = {
36
+ createAdapter() {
37
+ return new kysely_1.SqliteAdapter();
38
+ },
39
+ createDriver() {
40
+ return new kysely_1.DummyDriver();
41
+ },
42
+ createIntrospector(db) {
43
+ return new kysely_1.SqliteIntrospector(db);
44
+ },
45
+ createQueryCompiler() {
46
+ return new kysely_1.SqliteQueryCompiler();
47
+ },
48
+ };
@@ -0,0 +1,11 @@
1
+ import { IdResolver } from '@atproto/identity';
2
+ import http from 'node:http';
3
+ import { Database } from './db';
4
+ export { RepoSubscription } from './subscription';
5
+ export declare class DataPlaneServer {
6
+ server: http.Server;
7
+ idResolver: IdResolver;
8
+ constructor(server: http.Server, idResolver: IdResolver);
9
+ static create(db: Database, port: number, plcUrl?: string): Promise<DataPlaneServer>;
10
+ destroy(): Promise<void>;
11
+ }