@clioplaylists/clio 0.1.5 → 0.1.7
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.
- package/dist/.env +7 -0
- package/dist/api/com/clioplaylists/alpha/actor/getProfile.d.ts +0 -0
- package/dist/api/com/clioplaylists/alpha/actor/getProfile.js +37 -0
- package/dist/api/com/clioplaylists/alpha/feed/getSongs.d.ts +0 -0
- package/dist/api/com/clioplaylists/alpha/feed/getSongs.js +37 -0
- package/dist/api/health.d.ts +3 -0
- package/dist/api/health.js +25 -0
- package/dist/api/index.d.ts +4 -0
- package/dist/api/index.js +6 -0
- package/dist/api/util.d.ts +9 -0
- package/dist/api/util.js +13 -0
- package/dist/auth-verifier.d.ts +92 -0
- package/dist/auth-verifier.js +365 -0
- package/dist/client.d.ts +9 -0
- package/dist/client.js +33 -0
- package/dist/config.d.ts +21 -0
- package/dist/config.js +49 -0
- package/dist/context.d.ts +11 -0
- package/dist/context.js +12 -0
- package/dist/dataplane/client.d.ts +27 -0
- package/dist/dataplane/client.js +120 -0
- package/dist/dataplane/index.d.ts +2 -0
- package/dist/dataplane/index.js +2 -0
- package/dist/dataplane/server/background.d.ts +13 -0
- package/dist/dataplane/server/background.js +30 -0
- package/dist/dataplane/server/db/database-schema.d.ts +13 -0
- package/dist/dataplane/server/db/database-schema.js +1 -0
- package/dist/dataplane/server/db/db.d.ts +32 -0
- package/dist/dataplane/server/db/db.js +152 -0
- package/dist/dataplane/server/db/index.d.ts +1 -0
- package/dist/dataplane/server/db/index.js +1 -0
- package/dist/dataplane/server/db/migrations/20230309T045948368Z-init.d.ts +3 -0
- package/dist/dataplane/server/db/migrations/20230309T045948368Z-init.js +113 -0
- package/dist/dataplane/server/db/migrations/20230420T211446071Z-did-cache.d.ts +3 -0
- package/dist/dataplane/server/db/migrations/20230420T211446071Z-did-cache.js +11 -0
- package/dist/dataplane/server/db/migrations/index.d.ts +2 -0
- package/dist/dataplane/server/db/migrations/index.js +5 -0
- package/dist/dataplane/server/db/migrations/provider.d.ts +11 -0
- package/dist/dataplane/server/db/migrations/provider.js +19 -0
- package/dist/dataplane/server/db/pagination.d.ts +86 -0
- package/dist/dataplane/server/db/pagination.js +128 -0
- package/dist/dataplane/server/db/tables/actor-sync.d.ts +9 -0
- package/dist/dataplane/server/db/tables/actor-sync.js +1 -0
- package/dist/dataplane/server/db/tables/actor.d.ts +11 -0
- package/dist/dataplane/server/db/tables/actor.js +1 -0
- package/dist/dataplane/server/db/tables/artist-list-item.d.ts +11 -0
- package/dist/dataplane/server/db/tables/artist-list-item.js +1 -0
- package/dist/dataplane/server/db/tables/artist.d.ts +10 -0
- package/dist/dataplane/server/db/tables/artist.js +1 -0
- package/dist/dataplane/server/db/tables/playlist-idea.d.ts +14 -0
- package/dist/dataplane/server/db/tables/playlist-idea.js +1 -0
- package/dist/dataplane/server/db/tables/playlist-item.d.ts +11 -0
- package/dist/dataplane/server/db/tables/playlist-item.js +1 -0
- package/dist/dataplane/server/db/tables/playlist.d.ts +10 -0
- package/dist/dataplane/server/db/tables/playlist.js +1 -0
- package/dist/dataplane/server/db/tables/profile.d.ts +15 -0
- package/dist/dataplane/server/db/tables/profile.js +1 -0
- package/dist/dataplane/server/db/tables/record.d.ts +12 -0
- package/dist/dataplane/server/db/tables/record.js +1 -0
- package/dist/dataplane/server/db/tables/song.d.ts +12 -0
- package/dist/dataplane/server/db/tables/song.js +1 -0
- package/dist/dataplane/server/db/types.d.ts +9 -0
- package/dist/dataplane/server/db/types.js +1 -0
- package/dist/dataplane/server/db/util.d.ts +20 -0
- package/dist/dataplane/server/db/util.js +40 -0
- package/dist/dataplane/server/index.d.ts +11 -0
- package/dist/dataplane/server/index.js +36 -0
- package/dist/dataplane/server/indexing/index.d.ts +32 -0
- package/dist/dataplane/server/indexing/index.js +271 -0
- package/dist/dataplane/server/indexing/plugins/playlist-idea.d.ts +14 -0
- package/dist/dataplane/server/indexing/plugins/playlist-idea.js +126 -0
- package/dist/dataplane/server/indexing/plugins/profile.d.ts +8 -0
- package/dist/dataplane/server/indexing/plugins/profile.js +44 -0
- package/dist/dataplane/server/indexing/processor.d.ts +22 -0
- package/dist/dataplane/server/indexing/processor.js +72 -0
- package/dist/dataplane/server/routes/identity.d.ts +6 -0
- package/dist/dataplane/server/routes/identity.js +54 -0
- package/dist/dataplane/server/routes/index.d.ts +5 -0
- package/dist/dataplane/server/routes/index.js +14 -0
- package/dist/dataplane/server/routes/profile.d.ts +5 -0
- package/dist/dataplane/server/routes/profile.js +59 -0
- package/dist/dataplane/server/routes/records.d.ts +11 -0
- package/dist/dataplane/server/routes/records.js +51 -0
- package/dist/dataplane/server/routes/sync.d.ts +5 -0
- package/dist/dataplane/server/routes/sync.js +12 -0
- package/dist/dataplane/server/subscription.d.ts +25 -0
- package/dist/dataplane/server/subscription.js +86 -0
- package/dist/error.d.ts +2 -0
- package/dist/error.js +10 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.js +55 -0
- package/dist/lexicons/index.d.ts +278 -0
- package/dist/lexicons/index.js +463 -0
- package/dist/lexicons/lexicons.d.ts +8466 -0
- package/dist/lexicons/lexicons.js +4548 -0
- package/dist/lexicons/types/com/atproto/admin/defs.d.ts +50 -0
- package/dist/lexicons/types/com/atproto/admin/defs.js +42 -0
- package/dist/lexicons/types/com/atproto/admin/deleteAccount.d.ts +29 -0
- package/dist/lexicons/types/com/atproto/admin/deleteAccount.js +1 -0
- package/dist/lexicons/types/com/atproto/admin/disableAccountInvites.d.ts +31 -0
- package/dist/lexicons/types/com/atproto/admin/disableAccountInvites.js +1 -0
- package/dist/lexicons/types/com/atproto/admin/disableInviteCodes.d.ts +30 -0
- package/dist/lexicons/types/com/atproto/admin/disableInviteCodes.js +1 -0
- package/dist/lexicons/types/com/atproto/admin/enableAccountInvites.d.ts +31 -0
- package/dist/lexicons/types/com/atproto/admin/enableAccountInvites.js +1 -0
- package/dist/lexicons/types/com/atproto/admin/getAccountInfo.d.ts +33 -0
- package/dist/lexicons/types/com/atproto/admin/getAccountInfo.js +1 -0
- package/dist/lexicons/types/com/atproto/admin/getAccountInfos.d.ts +36 -0
- package/dist/lexicons/types/com/atproto/admin/getAccountInfos.js +1 -0
- package/dist/lexicons/types/com/atproto/admin/getInviteCodes.d.ts +39 -0
- package/dist/lexicons/types/com/atproto/admin/getInviteCodes.js +1 -0
- package/dist/lexicons/types/com/atproto/admin/getSubjectStatus.d.ts +44 -0
- package/dist/lexicons/types/com/atproto/admin/getSubjectStatus.js +1 -0
- package/dist/lexicons/types/com/atproto/admin/searchAccounts.d.ts +39 -0
- package/dist/lexicons/types/com/atproto/admin/searchAccounts.js +1 -0
- package/dist/lexicons/types/com/atproto/admin/sendEmail.d.ts +45 -0
- package/dist/lexicons/types/com/atproto/admin/sendEmail.js +1 -0
- package/dist/lexicons/types/com/atproto/admin/updateAccountEmail.d.ts +31 -0
- package/dist/lexicons/types/com/atproto/admin/updateAccountEmail.js +1 -0
- package/dist/lexicons/types/com/atproto/admin/updateAccountHandle.d.ts +30 -0
- package/dist/lexicons/types/com/atproto/admin/updateAccountHandle.js +1 -0
- package/dist/lexicons/types/com/atproto/admin/updateAccountPassword.d.ts +30 -0
- package/dist/lexicons/types/com/atproto/admin/updateAccountPassword.js +1 -0
- package/dist/lexicons/types/com/atproto/admin/updateSubjectStatus.d.ts +51 -0
- package/dist/lexicons/types/com/atproto/admin/updateSubjectStatus.js +1 -0
- package/dist/lexicons/types/com/atproto/identity/defs.d.ts +14 -0
- package/dist/lexicons/types/com/atproto/identity/defs.js +10 -0
- package/dist/lexicons/types/com/atproto/identity/getRecommendedDidCredentials.d.ts +38 -0
- package/dist/lexicons/types/com/atproto/identity/getRecommendedDidCredentials.js +1 -0
- package/dist/lexicons/types/com/atproto/identity/refreshIdentity.d.ts +39 -0
- package/dist/lexicons/types/com/atproto/identity/refreshIdentity.js +1 -0
- package/dist/lexicons/types/com/atproto/identity/requestPlcOperationSignature.d.ts +23 -0
- package/dist/lexicons/types/com/atproto/identity/requestPlcOperationSignature.js +1 -0
- package/dist/lexicons/types/com/atproto/identity/resolveDid.d.ts +38 -0
- package/dist/lexicons/types/com/atproto/identity/resolveDid.js +1 -0
- package/dist/lexicons/types/com/atproto/identity/resolveHandle.d.ts +37 -0
- package/dist/lexicons/types/com/atproto/identity/resolveHandle.js +1 -0
- package/dist/lexicons/types/com/atproto/identity/resolveIdentity.d.ts +35 -0
- package/dist/lexicons/types/com/atproto/identity/resolveIdentity.js +1 -0
- package/dist/lexicons/types/com/atproto/identity/signPlcOperation.d.ts +46 -0
- package/dist/lexicons/types/com/atproto/identity/signPlcOperation.js +1 -0
- package/dist/lexicons/types/com/atproto/identity/submitPlcOperation.d.ts +29 -0
- package/dist/lexicons/types/com/atproto/identity/submitPlcOperation.js +1 -0
- package/dist/lexicons/types/com/atproto/identity/updateHandle.d.ts +30 -0
- package/dist/lexicons/types/com/atproto/identity/updateHandle.js +1 -0
- package/dist/lexicons/types/com/atproto/label/defs.d.ts +73 -0
- package/dist/lexicons/types/com/atproto/label/defs.js +42 -0
- package/dist/lexicons/types/com/atproto/label/queryLabels.d.ts +42 -0
- package/dist/lexicons/types/com/atproto/label/queryLabels.js +1 -0
- package/dist/lexicons/types/com/atproto/label/subscribeLabels.d.ts +38 -0
- package/dist/lexicons/types/com/atproto/label/subscribeLabels.js +18 -0
- package/dist/lexicons/types/com/atproto/lexicon/schema.d.ts +11 -0
- package/dist/lexicons/types/com/atproto/lexicon/schema.js +11 -0
- package/dist/lexicons/types/com/atproto/moderation/createReport.d.ts +57 -0
- package/dist/lexicons/types/com/atproto/moderation/createReport.js +1 -0
- package/dist/lexicons/types/com/atproto/moderation/defs.d.ts +20 -0
- package/dist/lexicons/types/com/atproto/moderation/defs.js +17 -0
- package/dist/lexicons/types/com/atproto/repo/applyWrites.d.ts +98 -0
- package/dist/lexicons/types/com/atproto/repo/applyWrites.js +50 -0
- package/dist/lexicons/types/com/atproto/repo/createRecord.d.ts +56 -0
- package/dist/lexicons/types/com/atproto/repo/createRecord.js +1 -0
- package/dist/lexicons/types/com/atproto/repo/defs.d.ts +11 -0
- package/dist/lexicons/types/com/atproto/repo/defs.js +10 -0
- package/dist/lexicons/types/com/atproto/repo/deleteRecord.d.ts +51 -0
- package/dist/lexicons/types/com/atproto/repo/deleteRecord.js +1 -0
- package/dist/lexicons/types/com/atproto/repo/describeRepo.d.ts +43 -0
- package/dist/lexicons/types/com/atproto/repo/describeRepo.js +1 -0
- package/dist/lexicons/types/com/atproto/repo/getRecord.d.ts +45 -0
- package/dist/lexicons/types/com/atproto/repo/getRecord.js +1 -0
- package/dist/lexicons/types/com/atproto/repo/importRepo.d.ts +27 -0
- package/dist/lexicons/types/com/atproto/repo/importRepo.js +1 -0
- package/dist/lexicons/types/com/atproto/repo/listMissingBlobs.d.ts +45 -0
- package/dist/lexicons/types/com/atproto/repo/listMissingBlobs.js +10 -0
- package/dist/lexicons/types/com/atproto/repo/listRecords.d.ts +53 -0
- package/dist/lexicons/types/com/atproto/repo/listRecords.js +10 -0
- package/dist/lexicons/types/com/atproto/repo/putRecord.d.ts +58 -0
- package/dist/lexicons/types/com/atproto/repo/putRecord.js +1 -0
- package/dist/lexicons/types/com/atproto/repo/strongRef.d.ts +11 -0
- package/dist/lexicons/types/com/atproto/repo/strongRef.js +11 -0
- package/dist/lexicons/types/com/atproto/repo/uploadBlob.d.ts +39 -0
- package/dist/lexicons/types/com/atproto/repo/uploadBlob.js +1 -0
- package/dist/lexicons/types/com/atproto/server/activateAccount.d.ts +23 -0
- package/dist/lexicons/types/com/atproto/server/activateAccount.js +1 -0
- package/dist/lexicons/types/com/atproto/server/checkAccountStatus.d.ts +42 -0
- package/dist/lexicons/types/com/atproto/server/checkAccountStatus.js +1 -0
- package/dist/lexicons/types/com/atproto/server/confirmEmail.d.ts +31 -0
- package/dist/lexicons/types/com/atproto/server/confirmEmail.js +1 -0
- package/dist/lexicons/types/com/atproto/server/createAccount.d.ts +61 -0
- package/dist/lexicons/types/com/atproto/server/createAccount.js +1 -0
- package/dist/lexicons/types/com/atproto/server/createAppPassword.d.ts +51 -0
- package/dist/lexicons/types/com/atproto/server/createAppPassword.js +10 -0
- package/dist/lexicons/types/com/atproto/server/createInviteCode.d.ts +41 -0
- package/dist/lexicons/types/com/atproto/server/createInviteCode.js +1 -0
- package/dist/lexicons/types/com/atproto/server/createInviteCodes.d.ts +50 -0
- package/dist/lexicons/types/com/atproto/server/createInviteCodes.js +10 -0
- package/dist/lexicons/types/com/atproto/server/createSession.d.ts +56 -0
- package/dist/lexicons/types/com/atproto/server/createSession.js +1 -0
- package/dist/lexicons/types/com/atproto/server/deactivateAccount.d.ts +30 -0
- package/dist/lexicons/types/com/atproto/server/deactivateAccount.js +1 -0
- package/dist/lexicons/types/com/atproto/server/defs.d.ts +23 -0
- package/dist/lexicons/types/com/atproto/server/defs.js +18 -0
- package/dist/lexicons/types/com/atproto/server/deleteAccount.d.ts +32 -0
- package/dist/lexicons/types/com/atproto/server/deleteAccount.js +1 -0
- package/dist/lexicons/types/com/atproto/server/deleteSession.d.ts +23 -0
- package/dist/lexicons/types/com/atproto/server/deleteSession.js +1 -0
- package/dist/lexicons/types/com/atproto/server/describeServer.d.ts +56 -0
- package/dist/lexicons/types/com/atproto/server/describeServer.js +18 -0
- package/dist/lexicons/types/com/atproto/server/getAccountInviteCodes.d.ts +39 -0
- package/dist/lexicons/types/com/atproto/server/getAccountInviteCodes.js +1 -0
- package/dist/lexicons/types/com/atproto/server/getServiceAuth.d.ts +41 -0
- package/dist/lexicons/types/com/atproto/server/getServiceAuth.js +1 -0
- package/dist/lexicons/types/com/atproto/server/getSession.d.ts +42 -0
- package/dist/lexicons/types/com/atproto/server/getSession.js +1 -0
- package/dist/lexicons/types/com/atproto/server/listAppPasswords.d.ts +44 -0
- package/dist/lexicons/types/com/atproto/server/listAppPasswords.js +10 -0
- package/dist/lexicons/types/com/atproto/server/refreshSession.d.ts +42 -0
- package/dist/lexicons/types/com/atproto/server/refreshSession.js +1 -0
- package/dist/lexicons/types/com/atproto/server/requestAccountDelete.d.ts +23 -0
- package/dist/lexicons/types/com/atproto/server/requestAccountDelete.js +1 -0
- package/dist/lexicons/types/com/atproto/server/requestEmailConfirmation.d.ts +23 -0
- package/dist/lexicons/types/com/atproto/server/requestEmailConfirmation.js +1 -0
- package/dist/lexicons/types/com/atproto/server/requestEmailUpdate.d.ts +34 -0
- package/dist/lexicons/types/com/atproto/server/requestEmailUpdate.js +1 -0
- package/dist/lexicons/types/com/atproto/server/requestPasswordReset.d.ts +29 -0
- package/dist/lexicons/types/com/atproto/server/requestPasswordReset.js +1 -0
- package/dist/lexicons/types/com/atproto/server/reserveSigningKey.d.ts +42 -0
- package/dist/lexicons/types/com/atproto/server/reserveSigningKey.js +1 -0
- package/dist/lexicons/types/com/atproto/server/resetPassword.d.ts +31 -0
- package/dist/lexicons/types/com/atproto/server/resetPassword.js +1 -0
- package/dist/lexicons/types/com/atproto/server/revokeAppPassword.d.ts +29 -0
- package/dist/lexicons/types/com/atproto/server/revokeAppPassword.js +1 -0
- package/dist/lexicons/types/com/atproto/server/updateEmail.d.ts +33 -0
- package/dist/lexicons/types/com/atproto/server/updateEmail.js +1 -0
- package/dist/lexicons/types/com/atproto/sync/getBlob.d.ts +36 -0
- package/dist/lexicons/types/com/atproto/sync/getBlob.js +1 -0
- package/dist/lexicons/types/com/atproto/sync/getBlocks.d.ts +35 -0
- package/dist/lexicons/types/com/atproto/sync/getBlocks.js +1 -0
- package/dist/lexicons/types/com/atproto/sync/getCheckout.d.ts +33 -0
- package/dist/lexicons/types/com/atproto/sync/getCheckout.js +1 -0
- package/dist/lexicons/types/com/atproto/sync/getHead.d.ts +37 -0
- package/dist/lexicons/types/com/atproto/sync/getHead.js +1 -0
- package/dist/lexicons/types/com/atproto/sync/getLatestCommit.d.ts +38 -0
- package/dist/lexicons/types/com/atproto/sync/getLatestCommit.js +1 -0
- package/dist/lexicons/types/com/atproto/sync/getRecord.d.ts +37 -0
- package/dist/lexicons/types/com/atproto/sync/getRecord.js +1 -0
- package/dist/lexicons/types/com/atproto/sync/getRepo.d.ts +36 -0
- package/dist/lexicons/types/com/atproto/sync/getRepo.js +1 -0
- package/dist/lexicons/types/com/atproto/sync/getRepoStatus.d.ts +42 -0
- package/dist/lexicons/types/com/atproto/sync/getRepoStatus.js +1 -0
- package/dist/lexicons/types/com/atproto/sync/listBlobs.d.ts +42 -0
- package/dist/lexicons/types/com/atproto/sync/listBlobs.js +1 -0
- package/dist/lexicons/types/com/atproto/sync/listRepos.d.ts +50 -0
- package/dist/lexicons/types/com/atproto/sync/listRepos.js +10 -0
- package/dist/lexicons/types/com/atproto/sync/listReposByCollection.d.ts +46 -0
- package/dist/lexicons/types/com/atproto/sync/listReposByCollection.js +10 -0
- package/dist/lexicons/types/com/atproto/sync/notifyOfUpdate.d.ts +30 -0
- package/dist/lexicons/types/com/atproto/sync/notifyOfUpdate.js +1 -0
- package/dist/lexicons/types/com/atproto/sync/requestCrawl.d.ts +30 -0
- package/dist/lexicons/types/com/atproto/sync/requestCrawl.js +1 -0
- package/dist/lexicons/types/com/atproto/sync/subscribeRepos.d.ts +111 -0
- package/dist/lexicons/types/com/atproto/sync/subscribeRepos.js +50 -0
- package/dist/lexicons/types/com/atproto/temp/addReservedHandle.d.ts +39 -0
- package/dist/lexicons/types/com/atproto/temp/addReservedHandle.js +1 -0
- package/dist/lexicons/types/com/atproto/temp/checkSignupQueue.d.ts +36 -0
- package/dist/lexicons/types/com/atproto/temp/checkSignupQueue.js +1 -0
- package/dist/lexicons/types/com/atproto/temp/fetchLabels.d.ts +37 -0
- package/dist/lexicons/types/com/atproto/temp/fetchLabels.js +1 -0
- package/dist/lexicons/types/com/atproto/temp/requestPhoneVerification.d.ts +29 -0
- package/dist/lexicons/types/com/atproto/temp/requestPhoneVerification.js +1 -0
- package/dist/lexicons/types/com/clioplaylists/alpha/actor/profile.d.ts +19 -0
- package/dist/lexicons/types/com/clioplaylists/alpha/actor/profile.js +11 -0
- package/dist/lexicons/types/com/clioplaylists/alpha/feed/defs.d.ts +32 -0
- package/dist/lexicons/types/com/clioplaylists/alpha/feed/defs.js +18 -0
- package/dist/lexicons/types/com/clioplaylists/alpha/feed/getSongs.d.ts +37 -0
- package/dist/lexicons/types/com/clioplaylists/alpha/feed/getSongs.js +1 -0
- package/dist/lexicons/types/com/clioplaylists/alpha/feed/playlistIdea.d.ts +32 -0
- package/dist/lexicons/types/com/clioplaylists/alpha/feed/playlistIdea.js +27 -0
- package/dist/lexicons/util.d.ts +5 -0
- package/dist/lexicons/util.js +9 -0
- package/dist/logger.d.ts +6 -0
- package/dist/logger.js +20 -0
- package/dist/rpc/clio_connect.d.ts +103 -0
- package/dist/rpc/clio_connect.js +107 -0
- package/dist/rpc/clio_pb.d.ts +457 -0
- package/dist/rpc/clio_pb.js +811 -0
- package/dist/start.d.ts +1 -0
- package/dist/util/retry.d.ts +2 -0
- package/dist/util/retry.js +13 -0
- package/dist/util/uris.d.ts +1 -0
- package/dist/util/uris.js +4 -0
- package/dist/util.d.ts +23 -0
- package/dist/util.js +76 -0
- package/package.json +7 -7
- /package/{start.js → dist/start.js} +0 -0
|
@@ -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,128 @@
|
|
|
1
|
+
import { InvalidRequestError } from '@atproto/xrpc-server';
|
|
2
|
+
import { sql } from 'kysely';
|
|
3
|
+
/**
|
|
4
|
+
* The GenericKeyset is an abstract class that sets-up the interface and partial implementation
|
|
5
|
+
* of a keyset-paginated cursor with two parts. There are three types involved:
|
|
6
|
+
* - Result: a raw result (i.e. a row from the db) containing data that will make-up a cursor.
|
|
7
|
+
* - E.g. { createdAt: '2022-01-01T12:00:00Z', cid: 'bafyx' }
|
|
8
|
+
* - LabeledResult: a Result processed such that the "primary" and "secondary" parts of the cursor are labeled.
|
|
9
|
+
* - E.g. { primary: '2022-01-01T12:00:00Z', secondary: 'bafyx' }
|
|
10
|
+
* - Cursor: the two string parts that make-up the packed/string cursor.
|
|
11
|
+
* - E.g. packed cursor '1641038400000__bafyx' in parts { primary: '1641038400000', secondary: 'bafyx' }
|
|
12
|
+
*
|
|
13
|
+
* These types relate as such. Implementers define the relations marked with a *:
|
|
14
|
+
* Result -*-> LabeledResult <-*-> Cursor <--> packed/string cursor
|
|
15
|
+
* ↳ SQL Condition
|
|
16
|
+
*/
|
|
17
|
+
export class GenericKeyset {
|
|
18
|
+
primary;
|
|
19
|
+
secondary;
|
|
20
|
+
constructor(primary, secondary) {
|
|
21
|
+
this.primary = primary;
|
|
22
|
+
this.secondary = secondary;
|
|
23
|
+
}
|
|
24
|
+
packFromResult(results) {
|
|
25
|
+
const result = Array.isArray(results) ? results.at(-1) : results;
|
|
26
|
+
if (!result)
|
|
27
|
+
return;
|
|
28
|
+
return this.pack(this.labelResult(result));
|
|
29
|
+
}
|
|
30
|
+
pack(labeled) {
|
|
31
|
+
if (!labeled)
|
|
32
|
+
return;
|
|
33
|
+
const cursor = this.labeledResultToCursor(labeled);
|
|
34
|
+
return this.packCursor(cursor);
|
|
35
|
+
}
|
|
36
|
+
unpack(cursorStr) {
|
|
37
|
+
const cursor = this.unpackCursor(cursorStr);
|
|
38
|
+
if (!cursor)
|
|
39
|
+
return;
|
|
40
|
+
return this.cursorToLabeledResult(cursor);
|
|
41
|
+
}
|
|
42
|
+
packCursor(cursor) {
|
|
43
|
+
if (!cursor)
|
|
44
|
+
return;
|
|
45
|
+
return `${cursor.primary}__${cursor.secondary}`;
|
|
46
|
+
}
|
|
47
|
+
unpackCursor(cursorStr) {
|
|
48
|
+
if (!cursorStr)
|
|
49
|
+
return;
|
|
50
|
+
const result = cursorStr.split('__');
|
|
51
|
+
const [primary, secondary, ...others] = result;
|
|
52
|
+
if (!primary || !secondary || others.length > 0) {
|
|
53
|
+
throw new InvalidRequestError('Malformed cursor');
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
primary,
|
|
57
|
+
secondary,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
getSql(labeled, direction, tryIndex) {
|
|
61
|
+
if (labeled === undefined)
|
|
62
|
+
return;
|
|
63
|
+
if (tryIndex) {
|
|
64
|
+
// The tryIndex param will likely disappear and become the default implementation: here for now for gradual rollout query-by-query.
|
|
65
|
+
if (direction === 'asc') {
|
|
66
|
+
return sql `((${this.primary}, ${this.secondary}) > (${labeled.primary}, ${labeled.secondary}))`;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
return sql `((${this.primary}, ${this.secondary}) < (${labeled.primary}, ${labeled.secondary}))`;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
// @NOTE this implementation can struggle to use an index on (primary, secondary) for pagination due to the "or" usage.
|
|
74
|
+
if (direction === 'asc') {
|
|
75
|
+
return sql `((${this.primary} > ${labeled.primary}) or (${this.primary} = ${labeled.primary} and ${this.secondary} > ${labeled.secondary}))`;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
return sql `((${this.primary} < ${labeled.primary}) or (${this.primary} = ${labeled.primary} and ${this.secondary} < ${labeled.secondary}))`;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
export class TimeCidKeyset extends GenericKeyset {
|
|
84
|
+
labelResult(result) {
|
|
85
|
+
return { primary: result.sortAt, secondary: result.cid };
|
|
86
|
+
}
|
|
87
|
+
labeledResultToCursor(labeled) {
|
|
88
|
+
return {
|
|
89
|
+
primary: new Date(labeled.primary).getTime().toString(),
|
|
90
|
+
secondary: labeled.secondary,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
cursorToLabeledResult(cursor) {
|
|
94
|
+
const primaryDate = new Date(parseInt(cursor.primary, 10));
|
|
95
|
+
if (isNaN(primaryDate.getTime())) {
|
|
96
|
+
throw new InvalidRequestError('Malformed cursor');
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
primary: primaryDate.toISOString(),
|
|
100
|
+
secondary: cursor.secondary,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
export class CreatedAtDidKeyset extends TimeCidKeyset {
|
|
105
|
+
labelResult(result) {
|
|
106
|
+
return { primary: result.createdAt, secondary: result.did };
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
export class IndexedAtDidKeyset extends TimeCidKeyset {
|
|
110
|
+
labelResult(result) {
|
|
111
|
+
return { primary: result.indexedAt, secondary: result.did };
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
export const paginate = (qb, opts) => {
|
|
115
|
+
const { limit, cursor, keyset, direction = 'desc', tryIndex, nullsLast, } = opts;
|
|
116
|
+
const keysetSql = keyset.getSql(keyset.unpack(cursor), direction, tryIndex);
|
|
117
|
+
return qb
|
|
118
|
+
.if(!!limit, (q) => q.limit(limit))
|
|
119
|
+
.if(!nullsLast, (q) => q.orderBy(keyset.primary, direction).orderBy(keyset.secondary, direction))
|
|
120
|
+
.if(!!nullsLast, (q) => q
|
|
121
|
+
.orderBy(direction === 'asc'
|
|
122
|
+
? sql `${keyset.primary} asc nulls last`
|
|
123
|
+
: sql `${keyset.primary} desc nulls last`)
|
|
124
|
+
.orderBy(direction === 'asc'
|
|
125
|
+
? sql `${keyset.secondary} asc nulls last`
|
|
126
|
+
: sql `${keyset.secondary} desc nulls last`))
|
|
127
|
+
.if(!!keysetSql, (qb) => (keysetSql ? qb.where(keysetSql) : qb));
|
|
128
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const 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 @@
|
|
|
1
|
+
export const 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 @@
|
|
|
1
|
+
export const tableName = 'artist_list_item';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const 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 @@
|
|
|
1
|
+
export const 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 @@
|
|
|
1
|
+
export const tableName = 'playlist_item';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const 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 @@
|
|
|
1
|
+
export const tableName = 'profile';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const 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 @@
|
|
|
1
|
+
export const tableName = 'song';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -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,40 @@
|
|
|
1
|
+
import { DummyDriver, SqliteAdapter, SqliteIntrospector, SqliteQueryCompiler, sql, } from 'kysely';
|
|
2
|
+
export const actorWhereClause = (actor) => {
|
|
3
|
+
if (actor.startsWith('did:')) {
|
|
4
|
+
return sql `"actor"."did" = ${actor}`;
|
|
5
|
+
}
|
|
6
|
+
else {
|
|
7
|
+
return sql `"actor"."handle" = ${actor}`;
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
// Applies to actor or record table
|
|
11
|
+
export const notSoftDeletedClause = (alias) => {
|
|
12
|
+
return sql `${alias}."takedownRef" is null`;
|
|
13
|
+
};
|
|
14
|
+
export const softDeleted = (actorOrRecord) => {
|
|
15
|
+
return actorOrRecord.takedownRef !== null;
|
|
16
|
+
};
|
|
17
|
+
export const countAll = sql `count(*)`;
|
|
18
|
+
// For use with doUpdateSet()
|
|
19
|
+
export const excluded = (db, col) => {
|
|
20
|
+
return sql `${db.dynamic.ref(`excluded.${col}`)}`;
|
|
21
|
+
};
|
|
22
|
+
export const noMatch = sql `1 = 0`;
|
|
23
|
+
// Can be useful for large where-in clauses, to get the db to use a hash lookup on the list
|
|
24
|
+
export const valuesList = (vals) => {
|
|
25
|
+
return sql `(values (${sql.join(vals, sql `), (`)}))`;
|
|
26
|
+
};
|
|
27
|
+
export const dummyDialect = {
|
|
28
|
+
createAdapter() {
|
|
29
|
+
return new SqliteAdapter();
|
|
30
|
+
},
|
|
31
|
+
createDriver() {
|
|
32
|
+
return new DummyDriver();
|
|
33
|
+
},
|
|
34
|
+
createIntrospector(db) {
|
|
35
|
+
return new SqliteIntrospector(db);
|
|
36
|
+
},
|
|
37
|
+
createQueryCompiler() {
|
|
38
|
+
return new SqliteQueryCompiler();
|
|
39
|
+
},
|
|
40
|
+
};
|
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { IdResolver, MemoryCache } from '@atproto/identity';
|
|
2
|
+
import { expressConnectMiddleware } from '@connectrpc/connect-express';
|
|
3
|
+
import express from 'express';
|
|
4
|
+
import events from 'node:events';
|
|
5
|
+
import createRoutes from './routes';
|
|
6
|
+
export { RepoSubscription } from './subscription';
|
|
7
|
+
export class DataPlaneServer {
|
|
8
|
+
server;
|
|
9
|
+
idResolver;
|
|
10
|
+
constructor(server, idResolver) {
|
|
11
|
+
this.server = server;
|
|
12
|
+
this.idResolver = idResolver;
|
|
13
|
+
}
|
|
14
|
+
static async create(db, port, plcUrl) {
|
|
15
|
+
const app = express();
|
|
16
|
+
const didCache = new MemoryCache();
|
|
17
|
+
const idResolver = new IdResolver({ plcUrl, didCache });
|
|
18
|
+
const routes = createRoutes(db, idResolver);
|
|
19
|
+
app.use(expressConnectMiddleware({ routes }));
|
|
20
|
+
const server = app.listen(port);
|
|
21
|
+
await events.once(server, 'listening');
|
|
22
|
+
return new DataPlaneServer(server, idResolver);
|
|
23
|
+
}
|
|
24
|
+
async destroy() {
|
|
25
|
+
return new Promise((resolve, reject) => {
|
|
26
|
+
this.server.close((err) => {
|
|
27
|
+
if (err) {
|
|
28
|
+
reject(err);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
resolve();
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { IdResolver } from '@atproto/identity';
|
|
2
|
+
import { WriteOpAction } from '@atproto/repo';
|
|
3
|
+
import { AtUri } from '@atproto/syntax';
|
|
4
|
+
import { CID } from 'multiformats/cid';
|
|
5
|
+
import { Database } from '../db';
|
|
6
|
+
import * as PlaylistIdea from './plugins/playlist-idea';
|
|
7
|
+
import * as Profile from './plugins/profile';
|
|
8
|
+
import { RecordProcessor } from './processor';
|
|
9
|
+
export declare class IndexingService {
|
|
10
|
+
db: Database;
|
|
11
|
+
idResolver: IdResolver;
|
|
12
|
+
records: {
|
|
13
|
+
playlistIdea: PlaylistIdea.PluginType;
|
|
14
|
+
profile: Profile.PluginType;
|
|
15
|
+
};
|
|
16
|
+
constructor(db: Database, idResolver: IdResolver);
|
|
17
|
+
transact(txn: Database): IndexingService;
|
|
18
|
+
indexRecord(uri: AtUri, cid: CID, obj: unknown, action: WriteOpAction.Create | WriteOpAction.Update, timestamp: string): Promise<void>;
|
|
19
|
+
deleteRecord(uri: AtUri, cascading?: boolean): Promise<void>;
|
|
20
|
+
indexHandle(did: string, timestamp: string, force?: boolean): Promise<void>;
|
|
21
|
+
indexRepo(did: string, commit?: string): Promise<void>;
|
|
22
|
+
updateActorStatus(did: string, active: boolean, status?: string): Promise<void>;
|
|
23
|
+
setCommitLastSeen(did: string, commit: CID, rev: string): Promise<void>;
|
|
24
|
+
getCurrentRecords(did: string): Promise<Record<string, {
|
|
25
|
+
uri: AtUri;
|
|
26
|
+
cid: CID;
|
|
27
|
+
}>>;
|
|
28
|
+
findIndexerForCollection(collection: string): RecordProcessor<unknown, unknown> | undefined;
|
|
29
|
+
deleteActor(did: string): Promise<void>;
|
|
30
|
+
private getActorIsHosted;
|
|
31
|
+
unindexActor(did: string): Promise<void>;
|
|
32
|
+
}
|