@atproto/bsky 0.0.210 → 0.0.211
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/CHANGELOG.md +23 -0
- package/LICENSE.txt +1 -1
- package/dist/api/app/bsky/draft/createDraft.d.ts +4 -0
- package/dist/api/app/bsky/draft/createDraft.d.ts.map +1 -0
- package/dist/api/app/bsky/draft/createDraft.js +38 -0
- package/dist/api/app/bsky/draft/createDraft.js.map +1 -0
- package/dist/api/app/bsky/draft/deleteDraft.d.ts +4 -0
- package/dist/api/app/bsky/draft/deleteDraft.d.ts.map +1 -0
- package/dist/api/app/bsky/draft/deleteDraft.js +19 -0
- package/dist/api/app/bsky/draft/deleteDraft.js.map +1 -0
- package/dist/api/app/bsky/draft/getDrafts.d.ts +4 -0
- package/dist/api/app/bsky/draft/getDrafts.d.ts.map +1 -0
- package/dist/api/app/bsky/draft/getDrafts.js +36 -0
- package/dist/api/app/bsky/draft/getDrafts.js.map +1 -0
- package/dist/api/app/bsky/draft/updateDraft.d.ts +4 -0
- package/dist/api/app/bsky/draft/updateDraft.d.ts.map +1 -0
- package/dist/api/app/bsky/draft/updateDraft.js +24 -0
- package/dist/api/app/bsky/draft/updateDraft.js.map +1 -0
- package/dist/api/app/bsky/feed/searchPosts.js +3 -3
- package/dist/api/app/bsky/feed/searchPosts.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js +9 -8
- package/dist/api/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getPostThreadV2.js +1 -1
- package/dist/api/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedFeeds.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedFeeds.js +3 -4
- package/dist/api/app/bsky/unspecced/getSuggestedFeeds.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedStarterPacks.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedStarterPacks.js +9 -8
- package/dist/api/app/bsky/unspecced/getSuggestedStarterPacks.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedUsers.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getSuggestedUsers.js +37 -20
- package/dist/api/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getTrendingTopics.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getTrendingTopics.js +6 -2
- package/dist/api/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getTrends.d.ts.map +1 -1
- package/dist/api/app/bsky/unspecced/getTrends.js +9 -8
- package/dist/api/app/bsky/unspecced/getTrends.js.map +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +8 -0
- package/dist/api/index.js.map +1 -1
- package/dist/config.d.ts +6 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +18 -21
- package/dist/config.js.map +1 -1
- package/dist/data-plane/bsync/index.js +38 -0
- package/dist/data-plane/bsync/index.js.map +1 -1
- package/dist/data-plane/server/db/database-schema.d.ts +2 -1
- package/dist/data-plane/server/db/database-schema.d.ts.map +1 -1
- package/dist/data-plane/server/db/database-schema.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20260112T133951271Z-add-drafts.d.ts +4 -0
- package/dist/data-plane/server/db/migrations/20260112T133951271Z-add-drafts.d.ts.map +1 -0
- package/dist/data-plane/server/db/migrations/20260112T133951271Z-add-drafts.js +25 -0
- package/dist/data-plane/server/db/migrations/20260112T133951271Z-add-drafts.js.map +1 -0
- package/dist/data-plane/server/db/migrations/index.d.ts +1 -0
- package/dist/data-plane/server/db/migrations/index.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/index.js +2 -1
- package/dist/data-plane/server/db/migrations/index.js.map +1 -1
- package/dist/data-plane/server/db/pagination.d.ts +9 -0
- package/dist/data-plane/server/db/pagination.d.ts.map +1 -1
- package/dist/data-plane/server/db/pagination.js +7 -1
- package/dist/data-plane/server/db/pagination.js.map +1 -1
- package/dist/data-plane/server/db/tables/draft.d.ts +12 -0
- package/dist/data-plane/server/db/tables/draft.d.ts.map +1 -0
- package/dist/data-plane/server/db/tables/draft.js +5 -0
- package/dist/data-plane/server/db/tables/draft.js.map +1 -0
- package/dist/data-plane/server/indexing/index.d.ts +2 -0
- package/dist/data-plane/server/indexing/index.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/index.js +2 -0
- package/dist/data-plane/server/indexing/index.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/germ-declaration.d.ts +7 -0
- package/dist/data-plane/server/indexing/plugins/germ-declaration.d.ts.map +1 -0
- package/dist/data-plane/server/indexing/plugins/germ-declaration.js +75 -0
- package/dist/data-plane/server/indexing/plugins/germ-declaration.js.map +1 -0
- package/dist/data-plane/server/routes/drafts.d.ts +6 -0
- package/dist/data-plane/server/routes/drafts.d.ts.map +1 -0
- package/dist/data-plane/server/routes/drafts.js +30 -0
- package/dist/data-plane/server/routes/drafts.js.map +1 -0
- package/dist/data-plane/server/routes/index.d.ts.map +1 -1
- package/dist/data-plane/server/routes/index.js +2 -0
- package/dist/data-plane/server/routes/index.js.map +1 -1
- package/dist/data-plane/server/routes/interactions.d.ts.map +1 -1
- package/dist/data-plane/server/routes/interactions.js +6 -0
- package/dist/data-plane/server/routes/interactions.js.map +1 -1
- package/dist/data-plane/server/routes/profile.d.ts.map +1 -1
- package/dist/data-plane/server/routes/profile.js +5 -1
- package/dist/data-plane/server/routes/profile.js.map +1 -1
- package/dist/data-plane/server/routes/records.d.ts.map +1 -1
- package/dist/data-plane/server/routes/records.js +1 -0
- package/dist/data-plane/server/routes/records.js.map +1 -1
- package/dist/data-plane/server/util.d.ts +6 -6
- package/dist/feature-gates.d.ts +17 -14
- package/dist/feature-gates.d.ts.map +1 -1
- package/dist/feature-gates.js +67 -35
- package/dist/feature-gates.js.map +1 -1
- package/dist/hydration/actor.d.ts +5 -0
- package/dist/hydration/actor.d.ts.map +1 -1
- package/dist/hydration/actor.js +13 -0
- package/dist/hydration/actor.js.map +1 -1
- package/dist/hydration/hydrator.d.ts +1 -1
- package/dist/hydration/hydrator.d.ts.map +1 -1
- package/dist/hydration/hydrator.js +6 -1
- package/dist/hydration/hydrator.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/lexicon/index.d.ts +18 -0
- package/dist/lexicon/index.d.ts.map +1 -1
- package/dist/lexicon/index.js +55 -1
- package/dist/lexicon/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +1156 -278
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +455 -2
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts +19 -1
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.js +18 -0
- package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/draft/createDraft.d.ts +27 -0
- package/dist/lexicon/types/app/bsky/draft/createDraft.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/draft/createDraft.js +7 -0
- package/dist/lexicon/types/app/bsky/draft/createDraft.js.map +1 -0
- package/dist/lexicon/types/app/bsky/draft/defs.d.ts +106 -0
- package/dist/lexicon/types/app/bsky/draft/defs.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/draft/defs.js +97 -0
- package/dist/lexicon/types/app/bsky/draft/defs.js.map +1 -0
- package/dist/lexicon/types/app/bsky/draft/deleteDraft.d.ts +14 -0
- package/dist/lexicon/types/app/bsky/draft/deleteDraft.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/draft/deleteDraft.js +7 -0
- package/dist/lexicon/types/app/bsky/draft/deleteDraft.js.map +1 -0
- package/dist/lexicon/types/app/bsky/draft/getDrafts.d.ts +24 -0
- package/dist/lexicon/types/app/bsky/draft/getDrafts.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/draft/getDrafts.js +7 -0
- package/dist/lexicon/types/app/bsky/draft/getDrafts.js.map +1 -0
- package/dist/lexicon/types/app/bsky/draft/updateDraft.d.ts +15 -0
- package/dist/lexicon/types/app/bsky/draft/updateDraft.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/draft/updateDraft.js +7 -0
- package/dist/lexicon/types/app/bsky/draft/updateDraft.js.map +1 -0
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsers.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.js.map +1 -1
- package/dist/lexicon/types/com/germnetwork/declaration.d.ts +24 -0
- package/dist/lexicon/types/com/germnetwork/declaration.d.ts.map +1 -0
- package/dist/lexicon/types/com/germnetwork/declaration.js +27 -0
- package/dist/lexicon/types/com/germnetwork/declaration.js.map +1 -0
- package/dist/proto/bsky_connect.d.ts +22 -1
- package/dist/proto/bsky_connect.d.ts.map +1 -1
- package/dist/proto/bsky_connect.js +21 -0
- package/dist/proto/bsky_connect.js.map +1 -1
- package/dist/proto/bsky_pb.d.ts +119 -0
- package/dist/proto/bsky_pb.d.ts.map +1 -1
- package/dist/proto/bsky_pb.js +343 -5
- package/dist/proto/bsky_pb.js.map +1 -1
- package/dist/stash.d.ts +1 -0
- package/dist/stash.d.ts.map +1 -1
- package/dist/stash.js +1 -0
- package/dist/stash.js.map +1 -1
- package/dist/views/index.d.ts.map +1 -1
- package/dist/views/index.js +15 -3
- package/dist/views/index.js.map +1 -1
- package/package.json +10 -10
- package/proto/bsky.proto +39 -1
- package/src/api/app/bsky/draft/createDraft.ts +46 -0
- package/src/api/app/bsky/draft/deleteDraft.ts +19 -0
- package/src/api/app/bsky/draft/getDrafts.ts +46 -0
- package/src/api/app/bsky/draft/updateDraft.ts +26 -0
- package/src/api/app/bsky/feed/searchPosts.ts +4 -4
- package/src/api/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.ts +10 -10
- package/src/api/app/bsky/unspecced/getPostThreadV2.ts +2 -2
- package/src/api/app/bsky/unspecced/getSuggestedFeeds.ts +4 -5
- package/src/api/app/bsky/unspecced/getSuggestedStarterPacks.ts +10 -10
- package/src/api/app/bsky/unspecced/getSuggestedUsers.ts +60 -25
- package/src/api/app/bsky/unspecced/getTrendingTopics.ts +9 -5
- package/src/api/app/bsky/unspecced/getTrends.ts +10 -10
- package/src/api/index.ts +8 -0
- package/src/config.ts +23 -26
- package/src/data-plane/bsync/index.ts +47 -0
- package/src/data-plane/server/db/database-schema.ts +3 -1
- package/src/data-plane/server/db/migrations/20260112T133951271Z-add-drafts.ts +24 -0
- package/src/data-plane/server/db/migrations/index.ts +1 -0
- package/src/data-plane/server/db/pagination.ts +8 -0
- package/src/data-plane/server/db/tables/draft.ts +11 -0
- package/src/data-plane/server/indexing/index.ts +3 -0
- package/src/data-plane/server/indexing/plugins/germ-declaration.ts +63 -0
- package/src/data-plane/server/routes/drafts.ts +37 -0
- package/src/data-plane/server/routes/index.ts +2 -0
- package/src/data-plane/server/routes/interactions.ts +6 -0
- package/src/data-plane/server/routes/profile.ts +8 -0
- package/src/data-plane/server/routes/records.ts +1 -0
- package/src/feature-gates.ts +83 -35
- package/src/hydration/actor.ts +26 -2
- package/src/hydration/hydrator.ts +8 -1
- package/src/index.ts +3 -3
- package/src/lexicon/index.ts +72 -0
- package/src/lexicon/lexicons.ts +465 -2
- package/src/lexicon/types/app/bsky/actor/defs.ts +37 -0
- package/src/lexicon/types/app/bsky/draft/createDraft.ts +46 -0
- package/src/lexicon/types/app/bsky/draft/defs.ts +208 -0
- package/src/lexicon/types/app/bsky/draft/deleteDraft.ts +33 -0
- package/src/lexicon/types/app/bsky/draft/getDrafts.ts +42 -0
- package/src/lexicon/types/app/bsky/draft/updateDraft.ts +34 -0
- package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsers.ts +1 -1
- package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.ts +1 -1
- package/src/lexicon/types/com/germnetwork/declaration.ts +53 -0
- package/src/proto/bsky_connect.ts +22 -1
- package/src/proto/bsky_pb.ts +235 -0
- package/src/stash.ts +3 -0
- package/src/views/index.ts +15 -3
- package/tests/views/__snapshots__/profile.test.ts.snap +7 -0
- package/tests/views/age-assurance-v2.test.ts +0 -2
- package/tests/views/age-assurance.test.ts +0 -2
- package/tests/views/drafts.test.ts +293 -0
- package/tests/views/profile.test.ts +58 -1
- package/tsconfig.build.tsbuildinfo +1 -1
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport { subLogger as log } from './logger'\n\ntype LiveNowConfig = {\n did: string\n domains: string[]\n}[]\n\nexport interface KwsConfig {\n apiKey: string\n apiOrigin: string\n authOrigin: string\n clientId: string\n redirectUrl: string\n userAgent: string\n /**\n * V1 secret used to validate `adult-verifieid` redirects\n */\n verificationSecret: string\n /**\n * V1 secret used to validate `adult-verified` webhooks\n */\n webhookSecret: string\n /**\n * V2 secret used to validate `age-verified` webhooks\n */\n ageVerifiedWebhookSecret: string\n /**\n * V2 secret used to validate `age-verified` redirects\n */\n ageVerifiedRedirectSecret: string\n}\n\nexport interface ServerConfigValues {\n // service\n version?: string\n debugMode?: boolean\n port?: number\n publicUrl?: string\n serverDid: string\n alternateAudienceDids: string[]\n entrywayJwtPublicKeyHex?: string\n liveNowConfig?: LiveNowConfig\n // external services\n etcdHosts: string[]\n dataplaneUrls: string[]\n dataplaneUrlsEtcdKeyPrefix?: string\n dataplaneHttpVersion?: '1.1' | '2'\n dataplaneIgnoreBadTls?: boolean\n bsyncUrl: string\n bsyncApiKey?: string\n bsyncHttpVersion?: '1.1' | '2'\n bsyncIgnoreBadTls?: boolean\n courierUrl?: string\n courierApiKey?: string\n courierHttpVersion?: '1.1' | '2'\n courierIgnoreBadTls?: boolean\n rolodexUrl?: string\n rolodexApiKey?: string\n rolodexHttpVersion?: '1.1' | '2'\n rolodexIgnoreBadTls?: boolean\n searchUrl?: string\n searchTagsHide: Set<string>\n suggestionsUrl?: string\n suggestionsApiKey?: string\n topicsUrl?: string\n topicsApiKey?: string\n cdnUrl?: string\n videoPlaylistUrlPattern?: string\n videoThumbnailUrlPattern?: string\n blobRateLimitBypassKey?: string\n blobRateLimitBypassHostname?: string\n // identity\n didPlcUrl: string\n handleResolveNameservers?: string[]\n // moderation and administration\n modServiceDid: string\n adminPasswords: string[]\n labelsFromIssuerDids?: string[]\n indexedAtEpoch?: Date\n // misc/dev\n blobCacheLocation?: string\n statsigKey?: string\n statsigEnv?: string\n // threads\n bigThreadUris: Set<string>\n bigThreadDepth?: number\n maxThreadDepth?: number\n maxThreadParents: number\n threadTagsHide: Set<string>\n threadTagsBumpDown: Set<string>\n visibilityTagHide: string\n visibilityTagRankPrefix: string\n // notifications\n notificationsDelayMs?: number\n // client config\n clientCheckEmailConfirmed?: boolean\n topicsEnabled?: boolean\n // http proxy agent\n disableSsrfProtection?: boolean\n proxyAllowHTTP2?: boolean\n proxyHeadersTimeout?: number\n proxyBodyTimeout?: number\n proxyMaxResponseSize?: number\n proxyMaxRetries?: number\n proxyPreferCompressed?: boolean\n kws?: KwsConfig\n debugFieldAllowedDids: Set<string>\n}\n\nexport class ServerConfig {\n private assignedPort?: number\n constructor(private cfg: ServerConfigValues) {}\n\n static readEnv(overrides?: Partial<ServerConfigValues>) {\n const version = process.env.BSKY_VERSION || undefined\n const debugMode =\n // Because security related features are disabled in development mode, this requires explicit opt-in.\n process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test'\n const publicUrl = process.env.BSKY_PUBLIC_URL || undefined\n const serverDid = process.env.BSKY_SERVER_DID || 'did:example:test'\n const envPort = parseInt(process.env.BSKY_PORT || '', 10)\n const port = isNaN(envPort) ? 2584 : envPort\n const didPlcUrl = process.env.BSKY_DID_PLC_URL || 'http://localhost:2582'\n const alternateAudienceDids = envList(process.env.BSKY_ALT_AUDIENCE_DIDS)\n const entrywayJwtPublicKeyHex =\n process.env.BSKY_ENTRYWAY_JWT_PUBLIC_KEY_HEX || undefined\n let liveNowConfig: LiveNowConfig | undefined\n if (process.env.BSKY_LIVE_NOW_CONFIG) {\n try {\n const parsed = JSON.parse(process.env.BSKY_LIVE_NOW_CONFIG)\n if (isLiveNowConfig(parsed)) {\n liveNowConfig = parsed\n } else {\n throw new Error('Live Now config failed format validation')\n }\n } catch (err) {\n log.error({ err }, 'Invalid BSKY_LIVE_NOW_CONFIG')\n }\n }\n const handleResolveNameservers = envList(\n process.env.BSKY_HANDLE_RESOLVE_NAMESERVERS,\n )\n const cdnUrl = process.env.BSKY_CDN_URL || process.env.BSKY_IMG_URI_ENDPOINT\n const etcdHosts =\n overrides?.etcdHosts ?? envList(process.env.BSKY_ETCD_HOSTS)\n // e.g. https://video.invalid/watch/%s/%s/playlist.m3u8\n const videoPlaylistUrlPattern = process.env.BSKY_VIDEO_PLAYLIST_URL_PATTERN\n // e.g. https://video.invalid/watch/%s/%s/thumbnail.jpg\n const videoThumbnailUrlPattern =\n process.env.BSKY_VIDEO_THUMBNAIL_URL_PATTERN\n const blobCacheLocation = process.env.BSKY_BLOB_CACHE_LOC\n const searchUrl =\n process.env.BSKY_SEARCH_URL ||\n process.env.BSKY_SEARCH_ENDPOINT ||\n undefined\n const searchTagsHide = new Set(envList(process.env.BSKY_SEARCH_TAGS_HIDE))\n const suggestionsUrl = process.env.BSKY_SUGGESTIONS_URL || undefined\n const suggestionsApiKey = process.env.BSKY_SUGGESTIONS_API_KEY || undefined\n const topicsUrl = process.env.BSKY_TOPICS_URL || undefined\n const topicsApiKey = process.env.BSKY_TOPICS_API_KEY\n const dataplaneUrls =\n overrides?.dataplaneUrls ?? envList(process.env.BSKY_DATAPLANE_URLS)\n const dataplaneUrlsEtcdKeyPrefix =\n process.env.BSKY_DATAPLANE_URLS_ETCD_KEY_PREFIX || undefined\n const dataplaneHttpVersion = process.env.BSKY_DATAPLANE_HTTP_VERSION || '2'\n const dataplaneIgnoreBadTls =\n process.env.BSKY_DATAPLANE_IGNORE_BAD_TLS === 'true'\n assert(\n !dataplaneUrlsEtcdKeyPrefix || etcdHosts.length,\n 'etcd prefix for dataplane urls may only be configured when there are etcd hosts',\n )\n assert(\n dataplaneUrls.length || dataplaneUrlsEtcdKeyPrefix,\n 'dataplane urls are not configured directly nor with etcd',\n )\n assert(dataplaneHttpVersion === '1.1' || dataplaneHttpVersion === '2')\n const labelsFromIssuerDids = envList(\n process.env.BSKY_LABELS_FROM_ISSUER_DIDS,\n )\n const bsyncUrl = process.env.BSKY_BSYNC_URL || undefined\n assert(bsyncUrl)\n const bsyncApiKey = process.env.BSKY_BSYNC_API_KEY || undefined\n const bsyncHttpVersion = process.env.BSKY_BSYNC_HTTP_VERSION || '2'\n const bsyncIgnoreBadTls = process.env.BSKY_BSYNC_IGNORE_BAD_TLS === 'true'\n assert(bsyncHttpVersion === '1.1' || bsyncHttpVersion === '2')\n const courierUrl = process.env.BSKY_COURIER_URL || undefined\n const courierApiKey = process.env.BSKY_COURIER_API_KEY || undefined\n const courierHttpVersion = process.env.BSKY_COURIER_HTTP_VERSION || '2'\n const courierIgnoreBadTls =\n process.env.BSKY_COURIER_IGNORE_BAD_TLS === 'true'\n assert(courierHttpVersion === '1.1' || courierHttpVersion === '2')\n const rolodexUrl = process.env.BSKY_ROLODEX_URL || undefined\n const rolodexApiKey = process.env.BSKY_ROLODEX_API_KEY || undefined\n const rolodexHttpVersion = process.env.BSKY_ROLODEX_HTTP_VERSION || '2'\n const rolodexIgnoreBadTls =\n process.env.BSKY_ROLODEX_IGNORE_BAD_TLS === 'true'\n assert(rolodexHttpVersion === '1.1' || rolodexHttpVersion === '2')\n const blobRateLimitBypassKey =\n process.env.BSKY_BLOB_RATE_LIMIT_BYPASS_KEY || undefined\n // single domain would be e.g. \"mypds.com\", subdomains are supported with a leading dot e.g. \".mypds.com\"\n const blobRateLimitBypassHostname =\n process.env.BSKY_BLOB_RATE_LIMIT_BYPASS_HOSTNAME || undefined\n assert(\n !blobRateLimitBypassKey || blobRateLimitBypassHostname,\n 'must specify a hostname when using a blob rate limit bypass key',\n )\n const adminPasswords = envList(\n process.env.BSKY_ADMIN_PASSWORDS || process.env.BSKY_ADMIN_PASSWORD,\n )\n const modServiceDid = process.env.MOD_SERVICE_DID\n assert(modServiceDid)\n const statsigKey =\n process.env.NODE_ENV === 'test'\n ? 'secret-key'\n : process.env.BSKY_STATSIG_KEY || undefined\n const statsigEnv =\n process.env.NODE_ENV === 'test'\n ? 'test'\n : process.env.BSKY_STATSIG_ENV || 'development'\n const clientCheckEmailConfirmed =\n process.env.BSKY_CLIENT_CHECK_EMAIL_CONFIRMED === 'true'\n const topicsEnabled = process.env.BSKY_TOPICS_ENABLED === 'true'\n const indexedAtEpoch = process.env.BSKY_INDEXED_AT_EPOCH\n ? new Date(process.env.BSKY_INDEXED_AT_EPOCH)\n : undefined\n assert(\n !indexedAtEpoch || !isNaN(indexedAtEpoch.getTime()),\n 'invalid BSKY_INDEXED_AT_EPOCH',\n )\n const bigThreadUris = new Set(envList(process.env.BSKY_BIG_THREAD_URIS))\n const bigThreadDepth = process.env.BSKY_BIG_THREAD_DEPTH\n ? parseInt(process.env.BSKY_BIG_THREAD_DEPTH || '', 10)\n : undefined\n const maxThreadDepth = process.env.BSKY_MAX_THREAD_DEPTH\n ? parseInt(process.env.BSKY_MAX_THREAD_DEPTH || '', 10)\n : undefined\n const maxThreadParents = process.env.BSKY_MAX_THREAD_PARENTS\n ? parseInt(process.env.BSKY_MAX_THREAD_PARENTS || '', 10)\n : 50\n const threadTagsHide = new Set(envList(process.env.BSKY_THREAD_TAGS_HIDE))\n const threadTagsBumpDown = new Set(\n envList(process.env.BSKY_THREAD_TAGS_BUMP_DOWN),\n )\n const visibilityTagHide = process.env.BSKY_VISIBILITY_TAG_HIDE || ''\n const visibilityTagRankPrefix =\n process.env.BSKY_VISIBILITY_TAG_RANK_PREFIX || ''\n\n const notificationsDelayMs = process.env.BSKY_NOTIFICATIONS_DELAY_MS\n ? parseInt(process.env.BSKY_NOTIFICATIONS_DELAY_MS || '', 10)\n : 0\n\n const disableSsrfProtection = process.env.BSKY_DISABLE_SSRF_PROTECTION\n ? process.env.BSKY_DISABLE_SSRF_PROTECTION === 'true'\n : debugMode\n\n const proxyAllowHTTP2 = process.env.BSKY_PROXY_ALLOW_HTTP2 === 'true'\n const proxyHeadersTimeout =\n parseInt(process.env.BSKY_PROXY_HEADERS_TIMEOUT || '', 10) || undefined\n const proxyBodyTimeout =\n parseInt(process.env.BSKY_PROXY_BODY_TIMEOUT || '', 10) || undefined\n const proxyMaxResponseSize =\n parseInt(process.env.BSKY_PROXY_MAX_RESPONSE_SIZE || '', 10) || undefined\n const proxyMaxRetries =\n parseInt(process.env.BSKY_PROXY_MAX_RETRIES || '', 10) || undefined\n const proxyPreferCompressed =\n process.env.BSKY_PROXY_PREFER_COMPRESSED === 'true'\n\n let kws: KwsConfig | undefined\n const kwsApiKey = process.env.BSKY_KWS_API_KEY\n const kwsApiOrigin = process.env.BSKY_KWS_API_ORIGIN\n const kwsAuthOrigin = process.env.BSKY_KWS_AUTH_ORIGIN\n const kwsClientId = process.env.BSKY_KWS_CLIENT_ID\n const kwsRedirectUrl = process.env.BSKY_KWS_REDIRECT_URL\n const kwsUserAgent = process.env.BSKY_KWS_USER_AGENT\n const kwsVerificationSecret = process.env.BSKY_KWS_VERIFICATION_SECRET\n const kwsWebhookSecret = process.env.BSKY_KWS_WEBHOOK_SECRET\n const kwsAgeVerifiedWebhookSecret =\n process.env.BSKY_KWS_AGE_VERIFIED_WEBHOOK_SECRET\n const kwsAgeVerifiedRedirectSecret =\n process.env.BSKY_KWS_AGE_VERIFIED_REDIRECT_SECRET\n if (\n kwsApiKey ||\n kwsApiOrigin ||\n kwsAuthOrigin ||\n kwsClientId ||\n kwsRedirectUrl ||\n kwsUserAgent ||\n kwsVerificationSecret ||\n kwsWebhookSecret ||\n kwsAgeVerifiedWebhookSecret ||\n kwsAgeVerifiedRedirectSecret\n ) {\n assert(\n kwsApiOrigin &&\n kwsAuthOrigin &&\n kwsClientId &&\n kwsRedirectUrl &&\n kwsUserAgent &&\n kwsVerificationSecret &&\n kwsWebhookSecret &&\n kwsApiKey &&\n kwsAgeVerifiedWebhookSecret &&\n kwsAgeVerifiedRedirectSecret,\n 'all KWS environment variables must be set if any are set',\n )\n kws = {\n apiKey: kwsApiKey,\n apiOrigin: kwsApiOrigin,\n authOrigin: kwsAuthOrigin,\n clientId: kwsClientId,\n redirectUrl: kwsRedirectUrl,\n userAgent: kwsUserAgent,\n verificationSecret: kwsVerificationSecret,\n webhookSecret: kwsWebhookSecret,\n ageVerifiedWebhookSecret: kwsAgeVerifiedWebhookSecret,\n ageVerifiedRedirectSecret: kwsAgeVerifiedRedirectSecret,\n }\n }\n\n const debugFieldAllowedDids = new Set(\n envList(process.env.BSKY_DEBUG_FIELD_ALLOWED_DIDS),\n )\n\n return new ServerConfig({\n version,\n debugMode,\n port,\n publicUrl,\n serverDid,\n alternateAudienceDids,\n entrywayJwtPublicKeyHex,\n liveNowConfig,\n etcdHosts,\n dataplaneUrls,\n dataplaneUrlsEtcdKeyPrefix,\n dataplaneHttpVersion,\n dataplaneIgnoreBadTls,\n searchUrl,\n searchTagsHide,\n suggestionsUrl,\n suggestionsApiKey,\n topicsUrl,\n topicsApiKey,\n didPlcUrl,\n labelsFromIssuerDids,\n handleResolveNameservers,\n cdnUrl,\n videoPlaylistUrlPattern,\n videoThumbnailUrlPattern,\n blobCacheLocation,\n bsyncUrl,\n bsyncApiKey,\n bsyncHttpVersion,\n bsyncIgnoreBadTls,\n courierUrl,\n courierApiKey,\n courierHttpVersion,\n courierIgnoreBadTls,\n rolodexUrl,\n rolodexApiKey,\n rolodexHttpVersion,\n rolodexIgnoreBadTls,\n blobRateLimitBypassKey,\n blobRateLimitBypassHostname,\n adminPasswords,\n modServiceDid,\n statsigKey,\n statsigEnv,\n clientCheckEmailConfirmed,\n topicsEnabled,\n indexedAtEpoch,\n bigThreadUris,\n bigThreadDepth,\n maxThreadDepth,\n maxThreadParents,\n threadTagsHide,\n threadTagsBumpDown,\n visibilityTagHide,\n visibilityTagRankPrefix,\n notificationsDelayMs,\n disableSsrfProtection,\n proxyAllowHTTP2,\n proxyHeadersTimeout,\n proxyBodyTimeout,\n proxyMaxResponseSize,\n proxyMaxRetries,\n proxyPreferCompressed,\n kws,\n debugFieldAllowedDids,\n ...stripUndefineds(overrides ?? {}),\n })\n }\n\n assignPort(port: number) {\n assert(\n !this.cfg.port || this.cfg.port === port,\n 'Conflicting port in config',\n )\n this.assignedPort = port\n }\n\n get version() {\n return this.cfg.version\n }\n\n get debugMode() {\n return !!this.cfg.debugMode\n }\n\n get port() {\n return this.assignedPort || this.cfg.port\n }\n\n get publicUrl() {\n return this.cfg.publicUrl\n }\n\n get serverDid() {\n return this.cfg.serverDid\n }\n\n get alternateAudienceDids() {\n return this.cfg.alternateAudienceDids\n }\n\n get entrywayJwtPublicKeyHex() {\n return this.cfg.entrywayJwtPublicKeyHex\n }\n\n get liveNowConfig() {\n return this.cfg.liveNowConfig\n }\n\n get etcdHosts() {\n return this.cfg.etcdHosts\n }\n\n get dataplaneUrlsEtcdKeyPrefix() {\n return this.cfg.dataplaneUrlsEtcdKeyPrefix\n }\n\n get dataplaneUrls() {\n return this.cfg.dataplaneUrls\n }\n\n get dataplaneHttpVersion() {\n return this.cfg.dataplaneHttpVersion\n }\n\n get dataplaneIgnoreBadTls() {\n return this.cfg.dataplaneIgnoreBadTls\n }\n\n get bsyncUrl() {\n return this.cfg.bsyncUrl\n }\n\n get bsyncApiKey() {\n return this.cfg.bsyncApiKey\n }\n\n get bsyncHttpVersion() {\n return this.cfg.bsyncHttpVersion\n }\n\n get bsyncIgnoreBadTls() {\n return this.cfg.bsyncIgnoreBadTls\n }\n\n get courierUrl() {\n return this.cfg.courierUrl\n }\n\n get courierApiKey() {\n return this.cfg.courierApiKey\n }\n\n get courierHttpVersion() {\n return this.cfg.courierHttpVersion\n }\n\n get courierIgnoreBadTls() {\n return this.cfg.courierIgnoreBadTls\n }\n\n get rolodexUrl() {\n return this.cfg.rolodexUrl\n }\n get rolodexApiKey() {\n return this.cfg.rolodexApiKey\n }\n get rolodexHttpVersion() {\n return this.cfg.rolodexHttpVersion\n }\n get rolodexIgnoreBadTls() {\n return this.cfg.rolodexIgnoreBadTls\n }\n\n get searchUrl() {\n return this.cfg.searchUrl\n }\n\n get searchTagsHide() {\n return this.cfg.searchTagsHide\n }\n\n get suggestionsUrl() {\n return this.cfg.suggestionsUrl\n }\n\n get suggestionsApiKey() {\n return this.cfg.suggestionsApiKey\n }\n\n get topicsUrl() {\n return this.cfg.topicsUrl\n }\n\n get topicsApiKey() {\n return this.cfg.topicsApiKey\n }\n\n get cdnUrl() {\n return this.cfg.cdnUrl\n }\n\n get videoPlaylistUrlPattern() {\n return this.cfg.videoPlaylistUrlPattern\n }\n\n get videoThumbnailUrlPattern() {\n return this.cfg.videoThumbnailUrlPattern\n }\n\n get blobRateLimitBypassKey() {\n return this.cfg.blobRateLimitBypassKey\n }\n\n get blobRateLimitBypassHostname() {\n return this.cfg.blobRateLimitBypassHostname\n }\n\n get didPlcUrl() {\n return this.cfg.didPlcUrl\n }\n\n get handleResolveNameservers() {\n return this.cfg.handleResolveNameservers\n }\n\n get adminPasswords() {\n return this.cfg.adminPasswords\n }\n\n get modServiceDid() {\n return this.cfg.modServiceDid\n }\n\n get labelsFromIssuerDids() {\n return this.cfg.labelsFromIssuerDids ?? []\n }\n\n get blobCacheLocation() {\n return this.cfg.blobCacheLocation\n }\n\n get statsigKey() {\n return this.cfg.statsigKey\n }\n\n get statsigEnv() {\n return this.cfg.statsigEnv\n }\n\n get clientCheckEmailConfirmed() {\n return this.cfg.clientCheckEmailConfirmed\n }\n\n get topicsEnabled() {\n return this.cfg.topicsEnabled\n }\n\n get indexedAtEpoch() {\n return this.cfg.indexedAtEpoch\n }\n\n get bigThreadUris() {\n return this.cfg.bigThreadUris\n }\n\n get bigThreadDepth() {\n return this.cfg.bigThreadDepth\n }\n\n get maxThreadDepth() {\n return this.cfg.maxThreadDepth\n }\n\n get maxThreadParents() {\n return this.cfg.maxThreadParents\n }\n\n get threadTagsHide() {\n return this.cfg.threadTagsHide\n }\n\n get threadTagsBumpDown() {\n return this.cfg.threadTagsBumpDown\n }\n\n get visibilityTagHide() {\n return this.cfg.visibilityTagHide\n }\n\n get visibilityTagRankPrefix() {\n return this.cfg.visibilityTagRankPrefix\n }\n\n get notificationsDelayMs() {\n return this.cfg.notificationsDelayMs ?? 0\n }\n\n get disableSsrfProtection(): boolean {\n return this.cfg.disableSsrfProtection ?? false\n }\n\n get proxyAllowHTTP2(): boolean {\n return this.cfg.proxyAllowHTTP2 ?? false\n }\n\n get proxyHeadersTimeout(): number {\n return this.cfg.proxyHeadersTimeout ?? 30e3\n }\n\n get proxyBodyTimeout(): number {\n return this.cfg.proxyBodyTimeout ?? 30e3\n }\n\n get proxyMaxResponseSize(): number {\n return this.cfg.proxyMaxResponseSize ?? 10 * 1024 * 1024 // 10mb\n }\n\n get proxyMaxRetries(): number {\n return this.cfg.proxyMaxRetries ?? 3\n }\n\n get proxyPreferCompressed(): boolean {\n return this.cfg.proxyPreferCompressed ?? true\n }\n\n get kws() {\n return this.cfg.kws\n }\n\n get debugFieldAllowedDids() {\n return this.cfg.debugFieldAllowedDids\n }\n}\n\nfunction stripUndefineds(\n obj: Record<string, unknown>,\n): Record<string, unknown> {\n const result = {}\n Object.entries(obj).forEach(([key, val]) => {\n if (val !== undefined) {\n result[key] = val\n }\n })\n return result\n}\n\nfunction envList(str: string | undefined): string[] {\n if (str === undefined || str.length === 0) return []\n return str.split(',')\n}\n\nfunction isLiveNowConfig(data: any): data is LiveNowConfig {\n return (\n Array.isArray(data) &&\n data.every(\n (item) =>\n typeof item === 'object' &&\n item !== null &&\n typeof item.did === 'string' &&\n Array.isArray(item.domains) &&\n item.domains.every((domain: any) => typeof domain === 'string'),\n )\n )\n}\n"]}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport { noUndefinedVals } from '@atproto/common'\nimport { subLogger as log } from './logger'\n\ntype LiveNowConfig = {\n did: string\n domains: string[]\n}[]\n\nexport interface KwsConfig {\n apiKey: string\n apiOrigin: string\n authOrigin: string\n clientId: string\n redirectUrl: string\n userAgent: string\n /**\n * V1 secret used to validate `adult-verifieid` redirects\n */\n verificationSecret: string\n /**\n * V1 secret used to validate `adult-verified` webhooks\n */\n webhookSecret: string\n /**\n * V2 secret used to validate `age-verified` webhooks\n */\n ageVerifiedWebhookSecret: string\n /**\n * V2 secret used to validate `age-verified` redirects\n */\n ageVerifiedRedirectSecret: string\n}\n\nexport interface ServerConfigValues {\n // service\n version?: string\n debugMode?: boolean\n port?: number\n publicUrl?: string\n serverDid: string\n alternateAudienceDids: string[]\n entrywayJwtPublicKeyHex?: string\n liveNowConfig?: LiveNowConfig\n // external services\n etcdHosts: string[]\n dataplaneUrls: string[]\n dataplaneUrlsEtcdKeyPrefix?: string\n dataplaneHttpVersion?: '1.1' | '2'\n dataplaneIgnoreBadTls?: boolean\n bsyncUrl: string\n bsyncApiKey?: string\n bsyncHttpVersion?: '1.1' | '2'\n bsyncIgnoreBadTls?: boolean\n courierUrl?: string\n courierApiKey?: string\n courierHttpVersion?: '1.1' | '2'\n courierIgnoreBadTls?: boolean\n rolodexUrl?: string\n rolodexApiKey?: string\n rolodexHttpVersion?: '1.1' | '2'\n rolodexIgnoreBadTls?: boolean\n searchUrl?: string\n searchTagsHide: Set<string>\n suggestionsUrl?: string\n suggestionsApiKey?: string\n topicsUrl?: string\n topicsApiKey?: string\n cdnUrl?: string\n videoPlaylistUrlPattern?: string\n videoThumbnailUrlPattern?: string\n blobRateLimitBypassKey?: string\n blobRateLimitBypassHostname?: string\n // identity\n didPlcUrl: string\n handleResolveNameservers?: string[]\n // moderation and administration\n modServiceDid: string\n adminPasswords: string[]\n labelsFromIssuerDids?: string[]\n indexedAtEpoch?: Date\n // misc/dev\n blobCacheLocation?: string\n growthBookApiHost?: string\n growthBookClientKey?: string\n // threads\n bigThreadUris: Set<string>\n bigThreadDepth?: number\n maxThreadDepth?: number\n maxThreadParents: number\n threadTagsHide: Set<string>\n threadTagsBumpDown: Set<string>\n visibilityTagHide: string\n visibilityTagRankPrefix: string\n // notifications\n notificationsDelayMs?: number\n // client config\n clientCheckEmailConfirmed?: boolean\n topicsEnabled?: boolean\n // http proxy agent\n disableSsrfProtection?: boolean\n proxyAllowHTTP2?: boolean\n proxyHeadersTimeout?: number\n proxyBodyTimeout?: number\n proxyMaxResponseSize?: number\n proxyMaxRetries?: number\n proxyPreferCompressed?: boolean\n kws?: KwsConfig\n debugFieldAllowedDids: Set<string>\n draftsLimit: number\n}\n\nexport class ServerConfig {\n private assignedPort?: number\n constructor(private cfg: ServerConfigValues) {}\n\n static readEnv(overrides?: Partial<ServerConfigValues>) {\n const version = process.env.BSKY_VERSION || undefined\n const debugMode =\n // Because security related features are disabled in development mode, this requires explicit opt-in.\n process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test'\n const publicUrl = process.env.BSKY_PUBLIC_URL || undefined\n const serverDid = process.env.BSKY_SERVER_DID || 'did:example:test'\n const envPort = parseInt(process.env.BSKY_PORT || '', 10)\n const port = isNaN(envPort) ? 2584 : envPort\n const didPlcUrl = process.env.BSKY_DID_PLC_URL || 'http://localhost:2582'\n const alternateAudienceDids = envList(process.env.BSKY_ALT_AUDIENCE_DIDS)\n const entrywayJwtPublicKeyHex =\n process.env.BSKY_ENTRYWAY_JWT_PUBLIC_KEY_HEX || undefined\n let liveNowConfig: LiveNowConfig | undefined\n if (process.env.BSKY_LIVE_NOW_CONFIG) {\n try {\n const parsed = JSON.parse(process.env.BSKY_LIVE_NOW_CONFIG)\n if (isLiveNowConfig(parsed)) {\n liveNowConfig = parsed\n } else {\n throw new Error('Live Now config failed format validation')\n }\n } catch (err) {\n log.error({ err }, 'Invalid BSKY_LIVE_NOW_CONFIG')\n }\n }\n const handleResolveNameservers = envList(\n process.env.BSKY_HANDLE_RESOLVE_NAMESERVERS,\n )\n const cdnUrl = process.env.BSKY_CDN_URL || process.env.BSKY_IMG_URI_ENDPOINT\n const etcdHosts =\n overrides?.etcdHosts ?? envList(process.env.BSKY_ETCD_HOSTS)\n // e.g. https://video.invalid/watch/%s/%s/playlist.m3u8\n const videoPlaylistUrlPattern = process.env.BSKY_VIDEO_PLAYLIST_URL_PATTERN\n // e.g. https://video.invalid/watch/%s/%s/thumbnail.jpg\n const videoThumbnailUrlPattern =\n process.env.BSKY_VIDEO_THUMBNAIL_URL_PATTERN\n const blobCacheLocation = process.env.BSKY_BLOB_CACHE_LOC\n const searchUrl =\n process.env.BSKY_SEARCH_URL ||\n process.env.BSKY_SEARCH_ENDPOINT ||\n undefined\n const searchTagsHide = new Set(envList(process.env.BSKY_SEARCH_TAGS_HIDE))\n const suggestionsUrl = process.env.BSKY_SUGGESTIONS_URL || undefined\n const suggestionsApiKey = process.env.BSKY_SUGGESTIONS_API_KEY || undefined\n const topicsUrl = process.env.BSKY_TOPICS_URL || undefined\n const topicsApiKey = process.env.BSKY_TOPICS_API_KEY\n const dataplaneUrls =\n overrides?.dataplaneUrls ?? envList(process.env.BSKY_DATAPLANE_URLS)\n const dataplaneUrlsEtcdKeyPrefix =\n process.env.BSKY_DATAPLANE_URLS_ETCD_KEY_PREFIX || undefined\n const dataplaneHttpVersion = process.env.BSKY_DATAPLANE_HTTP_VERSION || '2'\n const dataplaneIgnoreBadTls =\n process.env.BSKY_DATAPLANE_IGNORE_BAD_TLS === 'true'\n assert(\n !dataplaneUrlsEtcdKeyPrefix || etcdHosts.length,\n 'etcd prefix for dataplane urls may only be configured when there are etcd hosts',\n )\n assert(\n dataplaneUrls.length || dataplaneUrlsEtcdKeyPrefix,\n 'dataplane urls are not configured directly nor with etcd',\n )\n assert(dataplaneHttpVersion === '1.1' || dataplaneHttpVersion === '2')\n const labelsFromIssuerDids = envList(\n process.env.BSKY_LABELS_FROM_ISSUER_DIDS,\n )\n const bsyncUrl = process.env.BSKY_BSYNC_URL || undefined\n assert(bsyncUrl)\n const bsyncApiKey = process.env.BSKY_BSYNC_API_KEY || undefined\n const bsyncHttpVersion = process.env.BSKY_BSYNC_HTTP_VERSION || '2'\n const bsyncIgnoreBadTls = process.env.BSKY_BSYNC_IGNORE_BAD_TLS === 'true'\n assert(bsyncHttpVersion === '1.1' || bsyncHttpVersion === '2')\n const courierUrl = process.env.BSKY_COURIER_URL || undefined\n const courierApiKey = process.env.BSKY_COURIER_API_KEY || undefined\n const courierHttpVersion = process.env.BSKY_COURIER_HTTP_VERSION || '2'\n const courierIgnoreBadTls =\n process.env.BSKY_COURIER_IGNORE_BAD_TLS === 'true'\n assert(courierHttpVersion === '1.1' || courierHttpVersion === '2')\n const rolodexUrl = process.env.BSKY_ROLODEX_URL || undefined\n const rolodexApiKey = process.env.BSKY_ROLODEX_API_KEY || undefined\n const rolodexHttpVersion = process.env.BSKY_ROLODEX_HTTP_VERSION || '2'\n const rolodexIgnoreBadTls =\n process.env.BSKY_ROLODEX_IGNORE_BAD_TLS === 'true'\n assert(rolodexHttpVersion === '1.1' || rolodexHttpVersion === '2')\n const blobRateLimitBypassKey =\n process.env.BSKY_BLOB_RATE_LIMIT_BYPASS_KEY || undefined\n // single domain would be e.g. \"mypds.com\", subdomains are supported with a leading dot e.g. \".mypds.com\"\n const blobRateLimitBypassHostname =\n process.env.BSKY_BLOB_RATE_LIMIT_BYPASS_HOSTNAME || undefined\n assert(\n !blobRateLimitBypassKey || blobRateLimitBypassHostname,\n 'must specify a hostname when using a blob rate limit bypass key',\n )\n const adminPasswords = envList(\n process.env.BSKY_ADMIN_PASSWORDS || process.env.BSKY_ADMIN_PASSWORD,\n )\n const modServiceDid = process.env.MOD_SERVICE_DID\n assert(modServiceDid)\n\n const growthBookApiHost = process.env.BSKY_GROWTHBOOK_API_HOST || undefined\n const growthBookClientKey =\n process.env.NODE_ENV === 'test'\n ? 'secret-key'\n : process.env.BSKY_GROWTHBOOK_CLIENT_KEY || undefined\n const clientCheckEmailConfirmed =\n process.env.BSKY_CLIENT_CHECK_EMAIL_CONFIRMED === 'true'\n const topicsEnabled = process.env.BSKY_TOPICS_ENABLED === 'true'\n const indexedAtEpoch = process.env.BSKY_INDEXED_AT_EPOCH\n ? new Date(process.env.BSKY_INDEXED_AT_EPOCH)\n : undefined\n assert(\n !indexedAtEpoch || !isNaN(indexedAtEpoch.getTime()),\n 'invalid BSKY_INDEXED_AT_EPOCH',\n )\n const bigThreadUris = new Set(envList(process.env.BSKY_BIG_THREAD_URIS))\n const bigThreadDepth = process.env.BSKY_BIG_THREAD_DEPTH\n ? parseInt(process.env.BSKY_BIG_THREAD_DEPTH || '', 10)\n : undefined\n const maxThreadDepth = process.env.BSKY_MAX_THREAD_DEPTH\n ? parseInt(process.env.BSKY_MAX_THREAD_DEPTH || '', 10)\n : undefined\n const maxThreadParents = process.env.BSKY_MAX_THREAD_PARENTS\n ? parseInt(process.env.BSKY_MAX_THREAD_PARENTS || '', 10)\n : 50\n const threadTagsHide = new Set(envList(process.env.BSKY_THREAD_TAGS_HIDE))\n const threadTagsBumpDown = new Set(\n envList(process.env.BSKY_THREAD_TAGS_BUMP_DOWN),\n )\n const visibilityTagHide = process.env.BSKY_VISIBILITY_TAG_HIDE || ''\n const visibilityTagRankPrefix =\n process.env.BSKY_VISIBILITY_TAG_RANK_PREFIX || ''\n\n const notificationsDelayMs = process.env.BSKY_NOTIFICATIONS_DELAY_MS\n ? parseInt(process.env.BSKY_NOTIFICATIONS_DELAY_MS || '', 10)\n : 0\n\n const disableSsrfProtection = process.env.BSKY_DISABLE_SSRF_PROTECTION\n ? process.env.BSKY_DISABLE_SSRF_PROTECTION === 'true'\n : debugMode\n\n const proxyAllowHTTP2 = process.env.BSKY_PROXY_ALLOW_HTTP2 === 'true'\n const proxyHeadersTimeout =\n parseInt(process.env.BSKY_PROXY_HEADERS_TIMEOUT || '', 10) || undefined\n const proxyBodyTimeout =\n parseInt(process.env.BSKY_PROXY_BODY_TIMEOUT || '', 10) || undefined\n const proxyMaxResponseSize =\n parseInt(process.env.BSKY_PROXY_MAX_RESPONSE_SIZE || '', 10) || undefined\n const proxyMaxRetries =\n parseInt(process.env.BSKY_PROXY_MAX_RETRIES || '', 10) || undefined\n const proxyPreferCompressed =\n process.env.BSKY_PROXY_PREFER_COMPRESSED === 'true'\n\n let kws: KwsConfig | undefined\n const kwsApiKey = process.env.BSKY_KWS_API_KEY\n const kwsApiOrigin = process.env.BSKY_KWS_API_ORIGIN\n const kwsAuthOrigin = process.env.BSKY_KWS_AUTH_ORIGIN\n const kwsClientId = process.env.BSKY_KWS_CLIENT_ID\n const kwsRedirectUrl = process.env.BSKY_KWS_REDIRECT_URL\n const kwsUserAgent = process.env.BSKY_KWS_USER_AGENT\n const kwsVerificationSecret = process.env.BSKY_KWS_VERIFICATION_SECRET\n const kwsWebhookSecret = process.env.BSKY_KWS_WEBHOOK_SECRET\n const kwsAgeVerifiedWebhookSecret =\n process.env.BSKY_KWS_AGE_VERIFIED_WEBHOOK_SECRET\n const kwsAgeVerifiedRedirectSecret =\n process.env.BSKY_KWS_AGE_VERIFIED_REDIRECT_SECRET\n if (\n kwsApiKey ||\n kwsApiOrigin ||\n kwsAuthOrigin ||\n kwsClientId ||\n kwsRedirectUrl ||\n kwsUserAgent ||\n kwsVerificationSecret ||\n kwsWebhookSecret ||\n kwsAgeVerifiedWebhookSecret ||\n kwsAgeVerifiedRedirectSecret\n ) {\n assert(\n kwsApiOrigin &&\n kwsAuthOrigin &&\n kwsClientId &&\n kwsRedirectUrl &&\n kwsUserAgent &&\n kwsVerificationSecret &&\n kwsWebhookSecret &&\n kwsApiKey &&\n kwsAgeVerifiedWebhookSecret &&\n kwsAgeVerifiedRedirectSecret,\n 'all KWS environment variables must be set if any are set',\n )\n kws = {\n apiKey: kwsApiKey,\n apiOrigin: kwsApiOrigin,\n authOrigin: kwsAuthOrigin,\n clientId: kwsClientId,\n redirectUrl: kwsRedirectUrl,\n userAgent: kwsUserAgent,\n verificationSecret: kwsVerificationSecret,\n webhookSecret: kwsWebhookSecret,\n ageVerifiedWebhookSecret: kwsAgeVerifiedWebhookSecret,\n ageVerifiedRedirectSecret: kwsAgeVerifiedRedirectSecret,\n }\n }\n\n const debugFieldAllowedDids = new Set(\n envList(process.env.BSKY_DEBUG_FIELD_ALLOWED_DIDS),\n )\n\n const draftsLimit = process.env.BSKY_DRAFTS_LIMIT\n ? parseInt(process.env.BSKY_DRAFTS_LIMIT || '', 10)\n : 500\n\n return new ServerConfig({\n version,\n debugMode,\n port,\n publicUrl,\n serverDid,\n alternateAudienceDids,\n entrywayJwtPublicKeyHex,\n liveNowConfig,\n etcdHosts,\n dataplaneUrls,\n dataplaneUrlsEtcdKeyPrefix,\n dataplaneHttpVersion,\n dataplaneIgnoreBadTls,\n searchUrl,\n searchTagsHide,\n suggestionsUrl,\n suggestionsApiKey,\n topicsUrl,\n topicsApiKey,\n didPlcUrl,\n labelsFromIssuerDids,\n handleResolveNameservers,\n cdnUrl,\n videoPlaylistUrlPattern,\n videoThumbnailUrlPattern,\n blobCacheLocation,\n bsyncUrl,\n bsyncApiKey,\n bsyncHttpVersion,\n bsyncIgnoreBadTls,\n courierUrl,\n courierApiKey,\n courierHttpVersion,\n courierIgnoreBadTls,\n rolodexUrl,\n rolodexApiKey,\n rolodexHttpVersion,\n rolodexIgnoreBadTls,\n blobRateLimitBypassKey,\n blobRateLimitBypassHostname,\n adminPasswords,\n modServiceDid,\n growthBookApiHost,\n growthBookClientKey,\n clientCheckEmailConfirmed,\n topicsEnabled,\n indexedAtEpoch,\n bigThreadUris,\n bigThreadDepth,\n maxThreadDepth,\n maxThreadParents,\n threadTagsHide,\n threadTagsBumpDown,\n visibilityTagHide,\n visibilityTagRankPrefix,\n notificationsDelayMs,\n disableSsrfProtection,\n proxyAllowHTTP2,\n proxyHeadersTimeout,\n proxyBodyTimeout,\n proxyMaxResponseSize,\n proxyMaxRetries,\n proxyPreferCompressed,\n kws,\n debugFieldAllowedDids,\n draftsLimit,\n ...noUndefinedVals(overrides ?? {}),\n })\n }\n\n assignPort(port: number) {\n assert(\n !this.cfg.port || this.cfg.port === port,\n 'Conflicting port in config',\n )\n this.assignedPort = port\n }\n\n get version() {\n return this.cfg.version\n }\n\n get debugMode() {\n return !!this.cfg.debugMode\n }\n\n get port() {\n return this.assignedPort || this.cfg.port\n }\n\n get publicUrl() {\n return this.cfg.publicUrl\n }\n\n get serverDid() {\n return this.cfg.serverDid\n }\n\n get alternateAudienceDids() {\n return this.cfg.alternateAudienceDids\n }\n\n get entrywayJwtPublicKeyHex() {\n return this.cfg.entrywayJwtPublicKeyHex\n }\n\n get liveNowConfig() {\n return this.cfg.liveNowConfig\n }\n\n get etcdHosts() {\n return this.cfg.etcdHosts\n }\n\n get dataplaneUrlsEtcdKeyPrefix() {\n return this.cfg.dataplaneUrlsEtcdKeyPrefix\n }\n\n get dataplaneUrls() {\n return this.cfg.dataplaneUrls\n }\n\n get dataplaneHttpVersion() {\n return this.cfg.dataplaneHttpVersion\n }\n\n get dataplaneIgnoreBadTls() {\n return this.cfg.dataplaneIgnoreBadTls\n }\n\n get bsyncUrl() {\n return this.cfg.bsyncUrl\n }\n\n get bsyncApiKey() {\n return this.cfg.bsyncApiKey\n }\n\n get bsyncHttpVersion() {\n return this.cfg.bsyncHttpVersion\n }\n\n get bsyncIgnoreBadTls() {\n return this.cfg.bsyncIgnoreBadTls\n }\n\n get courierUrl() {\n return this.cfg.courierUrl\n }\n\n get courierApiKey() {\n return this.cfg.courierApiKey\n }\n\n get courierHttpVersion() {\n return this.cfg.courierHttpVersion\n }\n\n get courierIgnoreBadTls() {\n return this.cfg.courierIgnoreBadTls\n }\n\n get rolodexUrl() {\n return this.cfg.rolodexUrl\n }\n get rolodexApiKey() {\n return this.cfg.rolodexApiKey\n }\n get rolodexHttpVersion() {\n return this.cfg.rolodexHttpVersion\n }\n get rolodexIgnoreBadTls() {\n return this.cfg.rolodexIgnoreBadTls\n }\n\n get searchUrl() {\n return this.cfg.searchUrl\n }\n\n get searchTagsHide() {\n return this.cfg.searchTagsHide\n }\n\n get suggestionsUrl() {\n return this.cfg.suggestionsUrl\n }\n\n get suggestionsApiKey() {\n return this.cfg.suggestionsApiKey\n }\n\n get topicsUrl() {\n return this.cfg.topicsUrl\n }\n\n get topicsApiKey() {\n return this.cfg.topicsApiKey\n }\n\n get cdnUrl() {\n return this.cfg.cdnUrl\n }\n\n get videoPlaylistUrlPattern() {\n return this.cfg.videoPlaylistUrlPattern\n }\n\n get videoThumbnailUrlPattern() {\n return this.cfg.videoThumbnailUrlPattern\n }\n\n get blobRateLimitBypassKey() {\n return this.cfg.blobRateLimitBypassKey\n }\n\n get blobRateLimitBypassHostname() {\n return this.cfg.blobRateLimitBypassHostname\n }\n\n get didPlcUrl() {\n return this.cfg.didPlcUrl\n }\n\n get handleResolveNameservers() {\n return this.cfg.handleResolveNameservers\n }\n\n get adminPasswords() {\n return this.cfg.adminPasswords\n }\n\n get modServiceDid() {\n return this.cfg.modServiceDid\n }\n\n get labelsFromIssuerDids() {\n return this.cfg.labelsFromIssuerDids ?? []\n }\n\n get blobCacheLocation() {\n return this.cfg.blobCacheLocation\n }\n\n get growthBookApiHost() {\n return this.cfg.growthBookApiHost\n }\n\n get growthBookClientKey() {\n return this.cfg.growthBookClientKey\n }\n\n get clientCheckEmailConfirmed() {\n return this.cfg.clientCheckEmailConfirmed\n }\n\n get topicsEnabled() {\n return this.cfg.topicsEnabled\n }\n\n get indexedAtEpoch() {\n return this.cfg.indexedAtEpoch\n }\n\n get bigThreadUris() {\n return this.cfg.bigThreadUris\n }\n\n get bigThreadDepth() {\n return this.cfg.bigThreadDepth\n }\n\n get maxThreadDepth() {\n return this.cfg.maxThreadDepth\n }\n\n get maxThreadParents() {\n return this.cfg.maxThreadParents\n }\n\n get threadTagsHide() {\n return this.cfg.threadTagsHide\n }\n\n get threadTagsBumpDown() {\n return this.cfg.threadTagsBumpDown\n }\n\n get visibilityTagHide() {\n return this.cfg.visibilityTagHide\n }\n\n get visibilityTagRankPrefix() {\n return this.cfg.visibilityTagRankPrefix\n }\n\n get notificationsDelayMs() {\n return this.cfg.notificationsDelayMs ?? 0\n }\n\n get disableSsrfProtection(): boolean {\n return this.cfg.disableSsrfProtection ?? false\n }\n\n get proxyAllowHTTP2(): boolean {\n return this.cfg.proxyAllowHTTP2 ?? false\n }\n\n get proxyHeadersTimeout(): number {\n return this.cfg.proxyHeadersTimeout ?? 30e3\n }\n\n get proxyBodyTimeout(): number {\n return this.cfg.proxyBodyTimeout ?? 30e3\n }\n\n get proxyMaxResponseSize(): number {\n return this.cfg.proxyMaxResponseSize ?? 10 * 1024 * 1024 // 10mb\n }\n\n get proxyMaxRetries(): number {\n return this.cfg.proxyMaxRetries ?? 3\n }\n\n get proxyPreferCompressed(): boolean {\n return this.cfg.proxyPreferCompressed ?? true\n }\n\n get kws() {\n return this.cfg.kws\n }\n\n get debugFieldAllowedDids() {\n return this.cfg.debugFieldAllowedDids\n }\n\n get draftsLimit() {\n return this.cfg.draftsLimit\n }\n}\n\nfunction envList(str: string | undefined): string[] {\n if (str === undefined || str.length === 0) return []\n return str.split(',')\n}\n\nfunction isLiveNowConfig(data: any): data is LiveNowConfig {\n return (\n Array.isArray(data) &&\n data.every(\n (item) =>\n typeof item === 'object' &&\n item !== null &&\n typeof item.did === 'string' &&\n Array.isArray(item.domains) &&\n item.domains.every((domain: any) => typeof domain === 'string'),\n )\n )\n}\n"]}
|
|
@@ -172,6 +172,9 @@ const createRoutes = (db) => (router) => router.service(bsync_connect_1.Service,
|
|
|
172
172
|
else if (namespace === stash_1.Namespaces.AppBskyBookmarkDefsBookmark) {
|
|
173
173
|
await handleBookmarkOperation(db, req, now);
|
|
174
174
|
}
|
|
175
|
+
else if (namespace === stash_1.Namespaces.AppBskyDraftDefsDraftWithId) {
|
|
176
|
+
await handleDraftOperation(db, req, now);
|
|
177
|
+
}
|
|
175
178
|
}
|
|
176
179
|
catch (err) {
|
|
177
180
|
logger_1.httpLogger.warn({ err, namespace }, 'mock bsync put operation failed');
|
|
@@ -349,4 +352,39 @@ const handleBookmarkOperation = async (db, req, now) => {
|
|
|
349
352
|
});
|
|
350
353
|
}
|
|
351
354
|
};
|
|
355
|
+
const handleDraftOperation = async (db, req, now) => {
|
|
356
|
+
const { actorDid, key, method, payload } = req;
|
|
357
|
+
if (method === bsync_pb_1.Method.CREATE) {
|
|
358
|
+
const payloadString = Buffer.from(payload).toString('utf8');
|
|
359
|
+
await db.db
|
|
360
|
+
.insertInto('draft')
|
|
361
|
+
.values({
|
|
362
|
+
creator: actorDid,
|
|
363
|
+
key,
|
|
364
|
+
createdAt: now,
|
|
365
|
+
updatedAt: now,
|
|
366
|
+
payload: payloadString,
|
|
367
|
+
})
|
|
368
|
+
.execute();
|
|
369
|
+
}
|
|
370
|
+
if (method === bsync_pb_1.Method.UPDATE) {
|
|
371
|
+
const payloadString = Buffer.from(payload).toString('utf8');
|
|
372
|
+
await db.db
|
|
373
|
+
.updateTable('draft')
|
|
374
|
+
.where('creator', '=', actorDid)
|
|
375
|
+
.where('key', '=', key)
|
|
376
|
+
.set({
|
|
377
|
+
updatedAt: now,
|
|
378
|
+
payload: payloadString,
|
|
379
|
+
})
|
|
380
|
+
.execute();
|
|
381
|
+
}
|
|
382
|
+
if (method === bsync_pb_1.Method.DELETE) {
|
|
383
|
+
await db.db
|
|
384
|
+
.deleteFrom('draft')
|
|
385
|
+
.where('creator', '=', actorDid)
|
|
386
|
+
.where('key', '=', key)
|
|
387
|
+
.execute();
|
|
388
|
+
}
|
|
389
|
+
};
|
|
352
390
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data-plane/bsync/index.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport events from 'node:events'\nimport http from 'node:http'\nimport { ConnectRouter } from '@connectrpc/connect'\nimport { expressConnectMiddleware } from '@connectrpc/connect-express'\nimport express from 'express'\nimport { TID } from '@atproto/common'\nimport { jsonStringToLex } from '@atproto/lexicon'\nimport { AtUri } from '@atproto/syntax'\nimport { ids } from '../../lexicon/lexicons'\nimport { Event as AgeAssuranceV2Event } from '../../lexicon/types/app/bsky/ageassurance/defs'\nimport { Bookmark } from '../../lexicon/types/app/bsky/bookmark/defs'\nimport { SubjectActivitySubscription } from '../../lexicon/types/app/bsky/notification/defs'\nimport { AgeAssuranceEvent } from '../../lexicon/types/app/bsky/unspecced/defs'\nimport { httpLogger } from '../../logger'\nimport { Service } from '../../proto/bsync_connect'\nimport {\n Method,\n MuteOperation_Type,\n PutOperationRequest,\n} from '../../proto/bsync_pb'\nimport { Namespaces } from '../../stash'\nimport { Database } from '../server/db'\nimport { countAll, excluded } from '../server/db/util'\n\nexport class MockBsync {\n constructor(public server: http.Server) {}\n\n static async create(db: Database, port: number) {\n const app = express()\n const routes = createRoutes(db)\n app.use(expressConnectMiddleware({ routes }))\n const server = app.listen(port)\n await events.once(server, 'listening')\n return new MockBsync(server)\n }\n\n async destroy() {\n return new Promise<void>((resolve, reject) => {\n this.server.close((err) => {\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n }\n}\n\nconst createRoutes = (db: Database) => (router: ConnectRouter) =>\n router.service(Service, {\n async addMuteOperation(req) {\n const { type, actorDid, subject } = req\n if (type === MuteOperation_Type.ADD) {\n if (subject.startsWith('did:')) {\n assert(actorDid !== subject, 'cannot mute yourself') // @TODO pass message through in http error\n await db.db\n .insertInto('mute')\n .values({\n mutedByDid: actorDid,\n subjectDid: subject,\n createdAt: new Date().toISOString(),\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n } else {\n const uri = new AtUri(subject)\n if (uri.collection === ids.AppBskyGraphList) {\n await db.db\n .insertInto('list_mute')\n .values({\n mutedByDid: actorDid,\n listUri: subject,\n createdAt: new Date().toISOString(),\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n } else {\n await db.db\n .insertInto('thread_mute')\n .values({\n mutedByDid: actorDid,\n rootUri: subject,\n createdAt: new Date().toISOString(),\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n }\n }\n } else if (type === MuteOperation_Type.REMOVE) {\n if (subject.startsWith('did:')) {\n await db.db\n .deleteFrom('mute')\n .where('mutedByDid', '=', actorDid)\n .where('subjectDid', '=', subject)\n .execute()\n } else {\n const uri = new AtUri(subject)\n if (uri.collection === ids.AppBskyGraphList) {\n await db.db\n .deleteFrom('list_mute')\n .where('mutedByDid', '=', actorDid)\n .where('listUri', '=', subject)\n .execute()\n } else {\n await db.db\n .deleteFrom('thread_mute')\n .where('mutedByDid', '=', actorDid)\n .where('rootUri', '=', subject)\n .execute()\n }\n }\n } else if (type === MuteOperation_Type.CLEAR) {\n await db.db\n .deleteFrom('mute')\n .where('mutedByDid', '=', actorDid)\n .execute()\n await db.db\n .deleteFrom('list_mute')\n .where('mutedByDid', '=', actorDid)\n .execute()\n }\n\n return {}\n },\n\n async scanMuteOperations() {\n throw new Error('not implemented')\n },\n\n async addNotifOperation(req) {\n const { actorDid, priority } = req\n if (priority !== undefined) {\n await db.db\n .insertInto('actor_state')\n .values({\n did: actorDid,\n priorityNotifs: priority,\n lastSeenNotifs: new Date().toISOString(),\n })\n .onConflict((oc) =>\n oc.column('did').doUpdateSet({ priorityNotifs: priority }),\n )\n .execute()\n }\n return {}\n },\n\n async scanNotifOperations() {\n throw new Error('not implemented')\n },\n\n async putOperation(req) {\n const { actorDid, namespace, key, method, payload } = req\n assert(\n method === Method.CREATE ||\n method === Method.UPDATE ||\n method === Method.DELETE,\n `Unsupported method: ${method}`,\n )\n\n const now = new Date().toISOString()\n\n // Index all items into private_data.\n await handleGenericOperation(db, req, now)\n\n // Maintain bespoke indexes for certain namespaces.\n try {\n if (\n namespace ===\n Namespaces.AppBskyNotificationDefsSubjectActivitySubscription\n ) {\n await handleSubjectActivitySubscriptionOperation(db, req, now)\n } else if (\n namespace === Namespaces.AppBskyUnspeccedDefsAgeAssuranceEvent\n ) {\n await handleAgeAssuranceEventOperation(db, req, now)\n } else if (namespace === Namespaces.AppBskyAgeassuranceDefsEvent) {\n await handleAgeAssuranceV2EventOperation(db, req, now)\n } else if (namespace === Namespaces.AppBskyBookmarkDefsBookmark) {\n await handleBookmarkOperation(db, req, now)\n }\n } catch (err) {\n httpLogger.warn({ err, namespace }, 'mock bsync put operation failed')\n }\n\n return {\n operation: {\n id: TID.nextStr(),\n actorDid,\n namespace,\n key,\n method,\n payload,\n },\n }\n },\n\n async scanOperations() {\n throw new Error('not implemented')\n },\n\n async ping() {\n return {}\n },\n })\n\n// upsert into or remove from private_data\nconst handleGenericOperation = async (\n db: Database,\n req: PutOperationRequest,\n now: string,\n) => {\n const { actorDid, namespace, key, method, payload } = req\n if (method === Method.CREATE || method === Method.UPDATE) {\n await db.db\n .insertInto('private_data')\n .values({\n actorDid,\n namespace,\n key,\n payload: Buffer.from(payload).toString('utf8'),\n indexedAt: now,\n updatedAt: now,\n })\n .onConflict((oc) =>\n oc.columns(['actorDid', 'namespace', 'key']).doUpdateSet({\n payload: excluded(db.db, 'payload'),\n updatedAt: excluded(db.db, 'updatedAt'),\n }),\n )\n .execute()\n } else if (method === Method.DELETE) {\n await db.db\n .deleteFrom('private_data')\n .where('actorDid', '=', actorDid)\n .where('namespace', '=', namespace)\n .where('key', '=', key)\n .execute()\n } else {\n assert.fail(`unexpected method ${method}`)\n }\n}\n\nconst handleSubjectActivitySubscriptionOperation = async (\n db: Database,\n req: PutOperationRequest,\n now: string,\n) => {\n const { actorDid, key, method, payload } = req\n\n if (method === Method.DELETE) {\n return db.db\n .deleteFrom('activity_subscription')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .execute()\n }\n\n const parsed = jsonStringToLex(\n Buffer.from(payload).toString('utf8'),\n ) as SubjectActivitySubscription\n const {\n subject,\n activitySubscription: { post, reply },\n } = parsed\n\n if (method === Method.CREATE) {\n return db.db\n .insertInto('activity_subscription')\n .values({\n creator: actorDid,\n subjectDid: subject,\n key,\n indexedAt: now,\n post,\n reply,\n })\n .execute()\n }\n\n return db.db\n .updateTable('activity_subscription')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .set({\n indexedAt: now,\n post,\n reply,\n })\n .execute()\n}\n\nconst handleAgeAssuranceEventOperation = async (\n db: Database,\n req: PutOperationRequest,\n _now: string,\n) => {\n const { actorDid, method, payload } = req\n if (method !== Method.CREATE) return\n\n const parsed = jsonStringToLex(\n Buffer.from(payload).toString('utf8'),\n ) as AgeAssuranceEvent\n const { status, createdAt } = parsed\n\n const update = {\n ageAssuranceStatus: status,\n ageAssuranceLastInitiatedAt: status === 'pending' ? createdAt : undefined,\n }\n\n return db.db\n .updateTable('actor')\n .set(update)\n .where('did', '=', actorDid)\n .execute()\n}\n\nconst handleAgeAssuranceV2EventOperation = async (\n db: Database,\n req: PutOperationRequest,\n _now: string,\n) => {\n const { actorDid, method, payload } = req\n if (method !== Method.CREATE) return\n\n const parsed = jsonStringToLex(\n Buffer.from(payload).toString('utf8'),\n ) as AgeAssuranceV2Event\n const { status, createdAt, access, countryCode, regionCode } = parsed\n\n const update = {\n ageAssuranceStatus: status,\n ageAssuranceLastInitiatedAt: status === 'pending' ? createdAt : undefined,\n ageAssuranceAccess: access,\n ageAssuranceCountryCode: countryCode,\n ageAssuranceRegionCode: regionCode,\n }\n\n return db.db\n .updateTable('actor')\n .set(update)\n .where('did', '=', actorDid)\n .execute()\n}\n\nconst handleBookmarkOperation = async (\n db: Database,\n req: PutOperationRequest,\n now: string,\n) => {\n const { actorDid, key, method, payload } = req\n\n const updateAgg = (uri: string, dbTxn: Database) => {\n return dbTxn.db\n .insertInto('post_agg')\n .values({\n uri,\n bookmarkCount: dbTxn.db\n .selectFrom('bookmark')\n .where('bookmark.subjectUri', '=', uri)\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc\n .column('uri')\n .doUpdateSet({ bookmarkCount: excluded(dbTxn.db, 'bookmarkCount') }),\n )\n .execute()\n }\n\n if (method === Method.CREATE) {\n const parsed = jsonStringToLex(\n Buffer.from(payload).toString('utf8'),\n ) as Bookmark\n const {\n subject: { uri, cid },\n } = parsed\n\n await db.transaction(async (dbTxn) => {\n await dbTxn.db\n .insertInto('bookmark')\n .values({\n creator: actorDid,\n key,\n indexedAt: now,\n subjectUri: uri,\n subjectCid: cid,\n })\n .execute()\n\n await updateAgg(uri, dbTxn)\n })\n }\n\n if (method === Method.DELETE) {\n await db.transaction(async (dbTxn) => {\n const bookmark = await dbTxn.db\n .selectFrom('bookmark')\n .selectAll()\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .executeTakeFirst()\n\n if (bookmark) {\n await dbTxn.db\n .deleteFrom('bookmark')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .execute()\n\n await updateAgg(bookmark.subjectUri, dbTxn)\n }\n })\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data-plane/bsync/index.ts"],"names":[],"mappings":"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","sourcesContent":["import assert from 'node:assert'\nimport events from 'node:events'\nimport http from 'node:http'\nimport { ConnectRouter } from '@connectrpc/connect'\nimport { expressConnectMiddleware } from '@connectrpc/connect-express'\nimport express from 'express'\nimport { TID } from '@atproto/common'\nimport { jsonStringToLex } from '@atproto/lexicon'\nimport { AtUri } from '@atproto/syntax'\nimport { ids } from '../../lexicon/lexicons'\nimport { Event as AgeAssuranceV2Event } from '../../lexicon/types/app/bsky/ageassurance/defs'\nimport { Bookmark } from '../../lexicon/types/app/bsky/bookmark/defs'\nimport { SubjectActivitySubscription } from '../../lexicon/types/app/bsky/notification/defs'\nimport { AgeAssuranceEvent } from '../../lexicon/types/app/bsky/unspecced/defs'\nimport { httpLogger } from '../../logger'\nimport { Service } from '../../proto/bsync_connect'\nimport {\n Method,\n MuteOperation_Type,\n PutOperationRequest,\n} from '../../proto/bsync_pb'\nimport { Namespaces } from '../../stash'\nimport { Database } from '../server/db'\nimport { countAll, excluded } from '../server/db/util'\n\nexport class MockBsync {\n constructor(public server: http.Server) {}\n\n static async create(db: Database, port: number) {\n const app = express()\n const routes = createRoutes(db)\n app.use(expressConnectMiddleware({ routes }))\n const server = app.listen(port)\n await events.once(server, 'listening')\n return new MockBsync(server)\n }\n\n async destroy() {\n return new Promise<void>((resolve, reject) => {\n this.server.close((err) => {\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n }\n}\n\nconst createRoutes = (db: Database) => (router: ConnectRouter) =>\n router.service(Service, {\n async addMuteOperation(req) {\n const { type, actorDid, subject } = req\n if (type === MuteOperation_Type.ADD) {\n if (subject.startsWith('did:')) {\n assert(actorDid !== subject, 'cannot mute yourself') // @TODO pass message through in http error\n await db.db\n .insertInto('mute')\n .values({\n mutedByDid: actorDid,\n subjectDid: subject,\n createdAt: new Date().toISOString(),\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n } else {\n const uri = new AtUri(subject)\n if (uri.collection === ids.AppBskyGraphList) {\n await db.db\n .insertInto('list_mute')\n .values({\n mutedByDid: actorDid,\n listUri: subject,\n createdAt: new Date().toISOString(),\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n } else {\n await db.db\n .insertInto('thread_mute')\n .values({\n mutedByDid: actorDid,\n rootUri: subject,\n createdAt: new Date().toISOString(),\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n }\n }\n } else if (type === MuteOperation_Type.REMOVE) {\n if (subject.startsWith('did:')) {\n await db.db\n .deleteFrom('mute')\n .where('mutedByDid', '=', actorDid)\n .where('subjectDid', '=', subject)\n .execute()\n } else {\n const uri = new AtUri(subject)\n if (uri.collection === ids.AppBskyGraphList) {\n await db.db\n .deleteFrom('list_mute')\n .where('mutedByDid', '=', actorDid)\n .where('listUri', '=', subject)\n .execute()\n } else {\n await db.db\n .deleteFrom('thread_mute')\n .where('mutedByDid', '=', actorDid)\n .where('rootUri', '=', subject)\n .execute()\n }\n }\n } else if (type === MuteOperation_Type.CLEAR) {\n await db.db\n .deleteFrom('mute')\n .where('mutedByDid', '=', actorDid)\n .execute()\n await db.db\n .deleteFrom('list_mute')\n .where('mutedByDid', '=', actorDid)\n .execute()\n }\n\n return {}\n },\n\n async scanMuteOperations() {\n throw new Error('not implemented')\n },\n\n async addNotifOperation(req) {\n const { actorDid, priority } = req\n if (priority !== undefined) {\n await db.db\n .insertInto('actor_state')\n .values({\n did: actorDid,\n priorityNotifs: priority,\n lastSeenNotifs: new Date().toISOString(),\n })\n .onConflict((oc) =>\n oc.column('did').doUpdateSet({ priorityNotifs: priority }),\n )\n .execute()\n }\n return {}\n },\n\n async scanNotifOperations() {\n throw new Error('not implemented')\n },\n\n async putOperation(req) {\n const { actorDid, namespace, key, method, payload } = req\n assert(\n method === Method.CREATE ||\n method === Method.UPDATE ||\n method === Method.DELETE,\n `Unsupported method: ${method}`,\n )\n\n const now = new Date().toISOString()\n\n // Index all items into private_data.\n await handleGenericOperation(db, req, now)\n\n // Maintain bespoke indexes for certain namespaces.\n try {\n if (\n namespace ===\n Namespaces.AppBskyNotificationDefsSubjectActivitySubscription\n ) {\n await handleSubjectActivitySubscriptionOperation(db, req, now)\n } else if (\n namespace === Namespaces.AppBskyUnspeccedDefsAgeAssuranceEvent\n ) {\n await handleAgeAssuranceEventOperation(db, req, now)\n } else if (namespace === Namespaces.AppBskyAgeassuranceDefsEvent) {\n await handleAgeAssuranceV2EventOperation(db, req, now)\n } else if (namespace === Namespaces.AppBskyBookmarkDefsBookmark) {\n await handleBookmarkOperation(db, req, now)\n } else if (namespace === Namespaces.AppBskyDraftDefsDraftWithId) {\n await handleDraftOperation(db, req, now)\n }\n } catch (err) {\n httpLogger.warn({ err, namespace }, 'mock bsync put operation failed')\n }\n\n return {\n operation: {\n id: TID.nextStr(),\n actorDid,\n namespace,\n key,\n method,\n payload,\n },\n }\n },\n\n async scanOperations() {\n throw new Error('not implemented')\n },\n\n async ping() {\n return {}\n },\n })\n\n// upsert into or remove from private_data\nconst handleGenericOperation = async (\n db: Database,\n req: PutOperationRequest,\n now: string,\n) => {\n const { actorDid, namespace, key, method, payload } = req\n if (method === Method.CREATE || method === Method.UPDATE) {\n await db.db\n .insertInto('private_data')\n .values({\n actorDid,\n namespace,\n key,\n payload: Buffer.from(payload).toString('utf8'),\n indexedAt: now,\n updatedAt: now,\n })\n .onConflict((oc) =>\n oc.columns(['actorDid', 'namespace', 'key']).doUpdateSet({\n payload: excluded(db.db, 'payload'),\n updatedAt: excluded(db.db, 'updatedAt'),\n }),\n )\n .execute()\n } else if (method === Method.DELETE) {\n await db.db\n .deleteFrom('private_data')\n .where('actorDid', '=', actorDid)\n .where('namespace', '=', namespace)\n .where('key', '=', key)\n .execute()\n } else {\n assert.fail(`unexpected method ${method}`)\n }\n}\n\nconst handleSubjectActivitySubscriptionOperation = async (\n db: Database,\n req: PutOperationRequest,\n now: string,\n) => {\n const { actorDid, key, method, payload } = req\n\n if (method === Method.DELETE) {\n return db.db\n .deleteFrom('activity_subscription')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .execute()\n }\n\n const parsed = jsonStringToLex(\n Buffer.from(payload).toString('utf8'),\n ) as SubjectActivitySubscription\n const {\n subject,\n activitySubscription: { post, reply },\n } = parsed\n\n if (method === Method.CREATE) {\n return db.db\n .insertInto('activity_subscription')\n .values({\n creator: actorDid,\n subjectDid: subject,\n key,\n indexedAt: now,\n post,\n reply,\n })\n .execute()\n }\n\n return db.db\n .updateTable('activity_subscription')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .set({\n indexedAt: now,\n post,\n reply,\n })\n .execute()\n}\n\nconst handleAgeAssuranceEventOperation = async (\n db: Database,\n req: PutOperationRequest,\n _now: string,\n) => {\n const { actorDid, method, payload } = req\n if (method !== Method.CREATE) return\n\n const parsed = jsonStringToLex(\n Buffer.from(payload).toString('utf8'),\n ) as AgeAssuranceEvent\n const { status, createdAt } = parsed\n\n const update = {\n ageAssuranceStatus: status,\n ageAssuranceLastInitiatedAt: status === 'pending' ? createdAt : undefined,\n }\n\n return db.db\n .updateTable('actor')\n .set(update)\n .where('did', '=', actorDid)\n .execute()\n}\n\nconst handleAgeAssuranceV2EventOperation = async (\n db: Database,\n req: PutOperationRequest,\n _now: string,\n) => {\n const { actorDid, method, payload } = req\n if (method !== Method.CREATE) return\n\n const parsed = jsonStringToLex(\n Buffer.from(payload).toString('utf8'),\n ) as AgeAssuranceV2Event\n const { status, createdAt, access, countryCode, regionCode } = parsed\n\n const update = {\n ageAssuranceStatus: status,\n ageAssuranceLastInitiatedAt: status === 'pending' ? createdAt : undefined,\n ageAssuranceAccess: access,\n ageAssuranceCountryCode: countryCode,\n ageAssuranceRegionCode: regionCode,\n }\n\n return db.db\n .updateTable('actor')\n .set(update)\n .where('did', '=', actorDid)\n .execute()\n}\n\nconst handleBookmarkOperation = async (\n db: Database,\n req: PutOperationRequest,\n now: string,\n) => {\n const { actorDid, key, method, payload } = req\n\n const updateAgg = (uri: string, dbTxn: Database) => {\n return dbTxn.db\n .insertInto('post_agg')\n .values({\n uri,\n bookmarkCount: dbTxn.db\n .selectFrom('bookmark')\n .where('bookmark.subjectUri', '=', uri)\n .select(countAll.as('count')),\n })\n .onConflict((oc) =>\n oc\n .column('uri')\n .doUpdateSet({ bookmarkCount: excluded(dbTxn.db, 'bookmarkCount') }),\n )\n .execute()\n }\n\n if (method === Method.CREATE) {\n const parsed = jsonStringToLex(\n Buffer.from(payload).toString('utf8'),\n ) as Bookmark\n const {\n subject: { uri, cid },\n } = parsed\n\n await db.transaction(async (dbTxn) => {\n await dbTxn.db\n .insertInto('bookmark')\n .values({\n creator: actorDid,\n key,\n indexedAt: now,\n subjectUri: uri,\n subjectCid: cid,\n })\n .execute()\n\n await updateAgg(uri, dbTxn)\n })\n }\n\n if (method === Method.DELETE) {\n await db.transaction(async (dbTxn) => {\n const bookmark = await dbTxn.db\n .selectFrom('bookmark')\n .selectAll()\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .executeTakeFirst()\n\n if (bookmark) {\n await dbTxn.db\n .deleteFrom('bookmark')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .execute()\n\n await updateAgg(bookmark.subjectUri, dbTxn)\n }\n })\n }\n}\n\nconst handleDraftOperation = async (\n db: Database,\n req: PutOperationRequest,\n now: string,\n) => {\n const { actorDid, key, method, payload } = req\n\n if (method === Method.CREATE) {\n const payloadString = Buffer.from(payload).toString('utf8')\n\n await db.db\n .insertInto('draft')\n .values({\n creator: actorDid,\n key,\n createdAt: now,\n updatedAt: now,\n payload: payloadString,\n })\n .execute()\n }\n\n if (method === Method.UPDATE) {\n const payloadString = Buffer.from(payload).toString('utf8')\n\n await db.db\n .updateTable('draft')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .set({\n updatedAt: now,\n payload: payloadString,\n })\n .execute()\n }\n\n if (method === Method.DELETE) {\n await db.db\n .deleteFrom('draft')\n .where('creator', '=', actorDid)\n .where('key', '=', key)\n .execute()\n }\n}\n"]}
|
|
@@ -8,6 +8,7 @@ import * as algo from './tables/algo';
|
|
|
8
8
|
import * as blobTakedown from './tables/blob-takedown';
|
|
9
9
|
import * as bookmark from './tables/bookmark';
|
|
10
10
|
import * as didCache from './tables/did-cache';
|
|
11
|
+
import * as draft from './tables/draft';
|
|
11
12
|
import * as duplicateRecord from './tables/duplicate-record';
|
|
12
13
|
import * as feedGenerator from './tables/feed-generator';
|
|
13
14
|
import * as feedItem from './tables/feed-item';
|
|
@@ -41,6 +42,6 @@ import * as threadgate from './tables/thread-gate';
|
|
|
41
42
|
import * as threadMute from './tables/thread-mute';
|
|
42
43
|
import * as verification from './tables/verification';
|
|
43
44
|
import * as viewParam from './tables/view-param';
|
|
44
|
-
export type DatabaseSchemaType = duplicateRecord.PartialDB & profile.PartialDB & profileAgg.PartialDB & post.PartialDB & postEmbed.PartialDB & postAgg.PartialDB & repost.PartialDB & threadgate.PartialDB & postgate.PartialDB & feedItem.PartialDB & follow.PartialDB & like.PartialDB & list.PartialDB & listItem.PartialDB & listMute.PartialDB & listBlock.PartialDB & mute.PartialDB & actorBlock.PartialDB & threadMute.PartialDB & feedGenerator.PartialDB & subscription.PartialDB & actor.PartialDB & actorState.PartialDB & actorSync.PartialDB & record.PartialDB & notification.PartialDB & notificationPushToken.PartialDB & didCache.PartialDB & label.PartialDB & algo.PartialDB & viewParam.PartialDB & suggestedFollow.PartialDB & suggestedFeed.PartialDB & blobTakedown.PartialDB & labeler.PartialDB & starterPack.PartialDB & taggedSuggestion.PartialDB & quote.PartialDB & verification.PartialDB & privateData.PartialDB & activitySubscription.PartialDB & bookmark.PartialDB;
|
|
45
|
+
export type DatabaseSchemaType = duplicateRecord.PartialDB & profile.PartialDB & profileAgg.PartialDB & post.PartialDB & postEmbed.PartialDB & postAgg.PartialDB & repost.PartialDB & threadgate.PartialDB & postgate.PartialDB & feedItem.PartialDB & follow.PartialDB & like.PartialDB & list.PartialDB & listItem.PartialDB & listMute.PartialDB & listBlock.PartialDB & mute.PartialDB & actorBlock.PartialDB & threadMute.PartialDB & feedGenerator.PartialDB & subscription.PartialDB & actor.PartialDB & actorState.PartialDB & actorSync.PartialDB & record.PartialDB & notification.PartialDB & notificationPushToken.PartialDB & didCache.PartialDB & label.PartialDB & algo.PartialDB & viewParam.PartialDB & suggestedFollow.PartialDB & suggestedFeed.PartialDB & blobTakedown.PartialDB & labeler.PartialDB & starterPack.PartialDB & taggedSuggestion.PartialDB & quote.PartialDB & verification.PartialDB & privateData.PartialDB & activitySubscription.PartialDB & bookmark.PartialDB & draft.PartialDB;
|
|
45
46
|
export type DatabaseSchema = Kysely<DatabaseSchemaType>;
|
|
46
47
|
//# sourceMappingURL=database-schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-schema.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/db/database-schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"database-schema.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/db/database-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,oBAAoB,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,IAAI,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,eAAe,MAAM,2BAA2B,CAAA;AAC5D,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,IAAI,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,qBAAqB,MAAM,kCAAkC,CAAA;AACzE,OAAO,KAAK,IAAI,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,eAAe,MAAM,2BAA2B,CAAA;AAC5D,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAEhD,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC,SAAS,GACxD,OAAO,CAAC,SAAS,GACjB,UAAU,CAAC,SAAS,GACpB,IAAI,CAAC,SAAS,GACd,SAAS,CAAC,SAAS,GACnB,OAAO,CAAC,SAAS,GACjB,MAAM,CAAC,SAAS,GAChB,UAAU,CAAC,SAAS,GACpB,QAAQ,CAAC,SAAS,GAClB,QAAQ,CAAC,SAAS,GAClB,MAAM,CAAC,SAAS,GAChB,IAAI,CAAC,SAAS,GACd,IAAI,CAAC,SAAS,GACd,QAAQ,CAAC,SAAS,GAClB,QAAQ,CAAC,SAAS,GAClB,SAAS,CAAC,SAAS,GACnB,IAAI,CAAC,SAAS,GACd,UAAU,CAAC,SAAS,GACpB,UAAU,CAAC,SAAS,GACpB,aAAa,CAAC,SAAS,GACvB,YAAY,CAAC,SAAS,GACtB,KAAK,CAAC,SAAS,GACf,UAAU,CAAC,SAAS,GACpB,SAAS,CAAC,SAAS,GACnB,MAAM,CAAC,SAAS,GAChB,YAAY,CAAC,SAAS,GACtB,qBAAqB,CAAC,SAAS,GAC/B,QAAQ,CAAC,SAAS,GAClB,KAAK,CAAC,SAAS,GACf,IAAI,CAAC,SAAS,GACd,SAAS,CAAC,SAAS,GACnB,eAAe,CAAC,SAAS,GACzB,aAAa,CAAC,SAAS,GACvB,YAAY,CAAC,SAAS,GACtB,OAAO,CAAC,SAAS,GACjB,WAAW,CAAC,SAAS,GACrB,gBAAgB,CAAC,SAAS,GAC1B,KAAK,CAAC,SAAS,GACf,YAAY,CAAC,SAAS,GACtB,WAAW,CAAC,SAAS,GACrB,oBAAoB,CAAC,SAAS,GAC9B,QAAQ,CAAC,SAAS,GAClB,KAAK,CAAC,SAAS,CAAA;AAEjB,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-schema.js","sourceRoot":"","sources":["../../../../src/data-plane/server/db/database-schema.ts"],"names":[],"mappings":"","sourcesContent":["import { Kysely } from 'kysely'\nimport * as activitySubscription from './tables/activity-subscription'\nimport * as actor from './tables/actor'\nimport * as actorBlock from './tables/actor-block'\nimport * as actorState from './tables/actor-state'\nimport * as actorSync from './tables/actor-sync'\nimport * as algo from './tables/algo'\nimport * as blobTakedown from './tables/blob-takedown'\nimport * as bookmark from './tables/bookmark'\nimport * as didCache from './tables/did-cache'\nimport * as duplicateRecord from './tables/duplicate-record'\nimport * as feedGenerator from './tables/feed-generator'\nimport * as feedItem from './tables/feed-item'\nimport * as follow from './tables/follow'\nimport * as label from './tables/label'\nimport * as labeler from './tables/labeler'\nimport * as like from './tables/like'\nimport * as list from './tables/list'\nimport * as listBlock from './tables/list-block'\nimport * as listItem from './tables/list-item'\nimport * as listMute from './tables/list-mute'\nimport * as mute from './tables/mute'\nimport * as notification from './tables/notification'\nimport * as notificationPushToken from './tables/notification-push-token'\nimport * as post from './tables/post'\nimport * as postAgg from './tables/post-agg'\nimport * as postEmbed from './tables/post-embed'\nimport * as postgate from './tables/post-gate'\nimport * as privateData from './tables/private-data'\nimport * as profile from './tables/profile'\nimport * as profileAgg from './tables/profile-agg'\nimport * as quote from './tables/quote'\nimport * as record from './tables/record'\nimport * as repost from './tables/repost'\nimport * as starterPack from './tables/starter-pack'\nimport * as subscription from './tables/subscription'\nimport * as suggestedFeed from './tables/suggested-feed'\nimport * as suggestedFollow from './tables/suggested-follow'\nimport * as taggedSuggestion from './tables/tagged-suggestion'\nimport * as threadgate from './tables/thread-gate'\nimport * as threadMute from './tables/thread-mute'\nimport * as verification from './tables/verification'\nimport * as viewParam from './tables/view-param'\n\nexport type DatabaseSchemaType = duplicateRecord.PartialDB &\n profile.PartialDB &\n profileAgg.PartialDB &\n post.PartialDB &\n postEmbed.PartialDB &\n postAgg.PartialDB &\n repost.PartialDB &\n threadgate.PartialDB &\n postgate.PartialDB &\n feedItem.PartialDB &\n follow.PartialDB &\n like.PartialDB &\n list.PartialDB &\n listItem.PartialDB &\n listMute.PartialDB &\n listBlock.PartialDB &\n mute.PartialDB &\n actorBlock.PartialDB &\n threadMute.PartialDB &\n feedGenerator.PartialDB &\n subscription.PartialDB &\n actor.PartialDB &\n actorState.PartialDB &\n actorSync.PartialDB &\n record.PartialDB &\n notification.PartialDB &\n notificationPushToken.PartialDB &\n didCache.PartialDB &\n label.PartialDB &\n algo.PartialDB &\n viewParam.PartialDB &\n suggestedFollow.PartialDB &\n suggestedFeed.PartialDB &\n blobTakedown.PartialDB &\n labeler.PartialDB &\n starterPack.PartialDB &\n taggedSuggestion.PartialDB &\n quote.PartialDB &\n verification.PartialDB &\n privateData.PartialDB &\n activitySubscription.PartialDB &\n bookmark.PartialDB\n\nexport type DatabaseSchema = Kysely<DatabaseSchemaType>\n"]}
|
|
1
|
+
{"version":3,"file":"database-schema.js","sourceRoot":"","sources":["../../../../src/data-plane/server/db/database-schema.ts"],"names":[],"mappings":"","sourcesContent":["import { Kysely } from 'kysely'\nimport * as activitySubscription from './tables/activity-subscription'\nimport * as actor from './tables/actor'\nimport * as actorBlock from './tables/actor-block'\nimport * as actorState from './tables/actor-state'\nimport * as actorSync from './tables/actor-sync'\nimport * as algo from './tables/algo'\nimport * as blobTakedown from './tables/blob-takedown'\nimport * as bookmark from './tables/bookmark'\nimport * as didCache from './tables/did-cache'\nimport * as draft from './tables/draft'\nimport * as duplicateRecord from './tables/duplicate-record'\nimport * as feedGenerator from './tables/feed-generator'\nimport * as feedItem from './tables/feed-item'\nimport * as follow from './tables/follow'\nimport * as label from './tables/label'\nimport * as labeler from './tables/labeler'\nimport * as like from './tables/like'\nimport * as list from './tables/list'\nimport * as listBlock from './tables/list-block'\nimport * as listItem from './tables/list-item'\nimport * as listMute from './tables/list-mute'\nimport * as mute from './tables/mute'\nimport * as notification from './tables/notification'\nimport * as notificationPushToken from './tables/notification-push-token'\nimport * as post from './tables/post'\nimport * as postAgg from './tables/post-agg'\nimport * as postEmbed from './tables/post-embed'\nimport * as postgate from './tables/post-gate'\nimport * as privateData from './tables/private-data'\nimport * as profile from './tables/profile'\nimport * as profileAgg from './tables/profile-agg'\nimport * as quote from './tables/quote'\nimport * as record from './tables/record'\nimport * as repost from './tables/repost'\nimport * as starterPack from './tables/starter-pack'\nimport * as subscription from './tables/subscription'\nimport * as suggestedFeed from './tables/suggested-feed'\nimport * as suggestedFollow from './tables/suggested-follow'\nimport * as taggedSuggestion from './tables/tagged-suggestion'\nimport * as threadgate from './tables/thread-gate'\nimport * as threadMute from './tables/thread-mute'\nimport * as verification from './tables/verification'\nimport * as viewParam from './tables/view-param'\n\nexport type DatabaseSchemaType = duplicateRecord.PartialDB &\n profile.PartialDB &\n profileAgg.PartialDB &\n post.PartialDB &\n postEmbed.PartialDB &\n postAgg.PartialDB &\n repost.PartialDB &\n threadgate.PartialDB &\n postgate.PartialDB &\n feedItem.PartialDB &\n follow.PartialDB &\n like.PartialDB &\n list.PartialDB &\n listItem.PartialDB &\n listMute.PartialDB &\n listBlock.PartialDB &\n mute.PartialDB &\n actorBlock.PartialDB &\n threadMute.PartialDB &\n feedGenerator.PartialDB &\n subscription.PartialDB &\n actor.PartialDB &\n actorState.PartialDB &\n actorSync.PartialDB &\n record.PartialDB &\n notification.PartialDB &\n notificationPushToken.PartialDB &\n didCache.PartialDB &\n label.PartialDB &\n algo.PartialDB &\n viewParam.PartialDB &\n suggestedFollow.PartialDB &\n suggestedFeed.PartialDB &\n blobTakedown.PartialDB &\n labeler.PartialDB &\n starterPack.PartialDB &\n taggedSuggestion.PartialDB &\n quote.PartialDB &\n verification.PartialDB &\n privateData.PartialDB &\n activitySubscription.PartialDB &\n bookmark.PartialDB &\n draft.PartialDB\n\nexport type DatabaseSchema = Kysely<DatabaseSchemaType>\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20260112T133951271Z-add-drafts.d.ts","sourceRoot":"","sources":["../../../../../src/data-plane/server/db/migrations/20260112T133951271Z-add-drafts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,wBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB3D;AAED,wBAAsB,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7D"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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('draft')
|
|
8
|
+
.addColumn('creator', 'varchar', (col) => col.notNull())
|
|
9
|
+
.addColumn('key', 'varchar', (col) => col.notNull())
|
|
10
|
+
.addColumn('createdAt', 'varchar', (col) => col.notNull())
|
|
11
|
+
.addColumn('updatedAt', 'varchar', (col) => col.notNull())
|
|
12
|
+
.addColumn('payload', 'text', (col) => col.notNull())
|
|
13
|
+
.addPrimaryKeyConstraint('draft_pkey', ['creator', 'key'])
|
|
14
|
+
.execute();
|
|
15
|
+
// Supports getting paginated drafts by updatedAt.
|
|
16
|
+
await db.schema
|
|
17
|
+
.createIndex('draft_creator_updated_at_key_idx')
|
|
18
|
+
.on('draft')
|
|
19
|
+
.columns(['creator', 'updatedAt', 'key'])
|
|
20
|
+
.execute();
|
|
21
|
+
}
|
|
22
|
+
async function down(db) {
|
|
23
|
+
await db.schema.dropTable('draft').execute();
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=20260112T133951271Z-add-drafts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20260112T133951271Z-add-drafts.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/db/migrations/20260112T133951271Z-add-drafts.ts"],"names":[],"mappings":";;AAEA,gBAiBC;AAED,oBAEC;AArBM,KAAK,UAAU,EAAE,CAAC,EAAmB;IAC1C,MAAM,EAAE,CAAC,MAAM;SACZ,WAAW,CAAC,OAAO,CAAC;SACpB,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;SACvD,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;SACnD,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;SACzD,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;SACzD,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;SACpD,uBAAuB,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;SACzD,OAAO,EAAE,CAAA;IAEZ,kDAAkD;IAClD,MAAM,EAAE,CAAC,MAAM;SACZ,WAAW,CAAC,kCAAkC,CAAC;SAC/C,EAAE,CAAC,OAAO,CAAC;SACX,OAAO,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;SACxC,OAAO,EAAE,CAAA;AACd,CAAC;AAEM,KAAK,UAAU,IAAI,CAAC,EAAmB;IAC5C,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;AAC9C,CAAC","sourcesContent":["import { Kysely } from 'kysely'\n\nexport async function up(db: Kysely<unknown>): Promise<void> {\n await db.schema\n .createTable('draft')\n .addColumn('creator', 'varchar', (col) => col.notNull())\n .addColumn('key', 'varchar', (col) => col.notNull())\n .addColumn('createdAt', 'varchar', (col) => col.notNull())\n .addColumn('updatedAt', 'varchar', (col) => col.notNull())\n .addColumn('payload', 'text', (col) => col.notNull())\n .addPrimaryKeyConstraint('draft_pkey', ['creator', 'key'])\n .execute()\n\n // Supports getting paginated drafts by updatedAt.\n await db.schema\n .createIndex('draft_creator_updated_at_key_idx')\n .on('draft')\n .columns(['creator', 'updatedAt', 'key'])\n .execute()\n}\n\nexport async function down(db: Kysely<unknown>): Promise<void> {\n await db.schema.dropTable('draft').execute()\n}\n"]}
|
|
@@ -52,4 +52,5 @@ export * as _20250627T025331240Z from './20250627T025331240Z-add-actor-age-assur
|
|
|
52
52
|
export * as _20250812T183735692Z from './20250812T183735692Z-add-bookmarks';
|
|
53
53
|
export * as _20250813T174955711Z from './20250813T174955711Z-add-post-agg-bookmarks';
|
|
54
54
|
export * as _20251120T004738098Z from './20251120T004738098Z-update-actor-age-assurance-v2';
|
|
55
|
+
export * as _20260112T133951271Z from './20260112T133951271Z-add-drafts';
|
|
55
56
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/data-plane/server/db/migrations/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/data-plane/server/db/migrations/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
37
37
|
})();
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports._20250611T140649895Z = exports._20250602T190357447Z = exports._20250528T221913281Z = exports._20250526T023712742Z = exports._20250404T163421487Z = exports._20250207T174822012Z = exports._20250116T222618297Z = exports._20241114T153108102Z = exports._20240831T134810923Z = exports._20240829T211238293Z = exports._20240808T224251220Z = exports._20240801T193939827Z = exports._20240723T220703655Z = exports._20240723T220700077Z = exports._20240719T203853939Z = exports._20240606T222548219Z = exports._20240606T171229898Z = exports._20240530T170337073Z = exports._20240226T225725627Z = exports._20240124T023719200Z = exports._20231220T225126090Z = exports._20231003T202833377Z = exports._20230929T192920807Z = exports._20230920T213858047Z = exports._20230906T222220386Z = exports._20230904T211011773Z = exports._20230830T205507322Z = exports._20230817T195936007Z = exports._20230810T203349843Z = exports._20230808T172902639Z = exports._20230807T035309811Z = exports._20230720T164800037Z = exports._20230703T045536691Z = exports._20230629T220835893Z = exports._20230627T212437895Z = exports._20230620T161134972Z = exports._20230611T215300060Z = exports._20230610T203555962Z = exports._20230609T232122649Z = exports._20230609T153623961Z = exports._20230608T205147239Z = exports._20230608T201813132Z = exports._20230608T155101190Z = exports._20230607T211442112Z = exports._20230605T144730094Z = exports._20230427T194702079Z = exports._20230420T211446071Z = exports._20230417T210628672Z = exports._20230408T152211201Z = exports._20230309T045948368Z = void 0;
|
|
40
|
-
exports._20251120T004738098Z = exports._20250813T174955711Z = exports._20250812T183735692Z = exports._20250627T025331240Z = void 0;
|
|
40
|
+
exports._20260112T133951271Z = exports._20251120T004738098Z = exports._20250813T174955711Z = exports._20250812T183735692Z = exports._20250627T025331240Z = void 0;
|
|
41
41
|
exports._20230309T045948368Z = __importStar(require("./20230309T045948368Z-init"));
|
|
42
42
|
exports._20230408T152211201Z = __importStar(require("./20230408T152211201Z-notification-init"));
|
|
43
43
|
exports._20230417T210628672Z = __importStar(require("./20230417T210628672Z-moderation-init"));
|
|
@@ -92,4 +92,5 @@ exports._20250627T025331240Z = __importStar(require("./20250627T025331240Z-add-a
|
|
|
92
92
|
exports._20250812T183735692Z = __importStar(require("./20250812T183735692Z-add-bookmarks"));
|
|
93
93
|
exports._20250813T174955711Z = __importStar(require("./20250813T174955711Z-add-post-agg-bookmarks"));
|
|
94
94
|
exports._20251120T004738098Z = __importStar(require("./20251120T004738098Z-update-actor-age-assurance-v2"));
|
|
95
|
+
exports._20260112T133951271Z = __importStar(require("./20260112T133951271Z-add-drafts"));
|
|
95
96
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/db/migrations/index.ts"],"names":[],"mappings":";AAAA,oGAAoG;AACpG,gGAAgG;AAChG,+FAA+F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE/F,mFAAkE;AAClE,gGAA+E;AAC/E,8FAA6E;AAC7E,wFAAuE;AACvE,iGAAgF;AAChF,gGAA+E;AAC/E,kGAAiF;AACjF,kGAAiF;AACjF,yFAAwE;AACxE,oFAAmE;AACnE,qFAAoE;AACpE,qGAAoF;AACpF,gGAA+E;AAC/E,0FAAyE;AACzE,yFAAwE;AACxE,8FAA6E;AAC7E,oGAAmF;AACnF,qGAAoF;AACpF,+FAA8E;AAC9E,mHAAkG;AAClG,uFAAsE;AACtE,8FAA6E;AAC7E,mGAAkF;AAClF,8FAA6E;AAC7E,0FAAyE;AACzE,4FAA2E;AAC3E,+FAA8E;AAC9E,oGAAmF;AACnF,+GAA8F;AAC9F,6FAA4E;AAC5E,iGAAgF;AAChF,uFAAsE;AACtE,mGAAkF;AAClF,2FAA0E;AAC1E,4FAA2E;AAC3E,8FAA6E;AAC7E,+FAA8E;AAC9E,qFAAoE;AACpE,wFAAuE;AACvE,8FAA6E;AAC7E,kGAAiF;AACjF,2FAA0E;AAC1E,qGAAoF;AACpF,+FAA8E;AAC9E,4FAA2E;AAC3E,4FAA2E;AAC3E,8FAA6E;AAC7E,8FAA6E;AAC7E,+FAA8E;AAC9E,wGAAuF;AACvF,8GAA6F;AAC7F,4FAA2E;AAC3E,qGAAoF;AACpF,4GAA2F","sourcesContent":["// NOTE this file can be edited by hand, but it is also appended to by the migration:create command.\n// It's important that every migration is exported from here with the proper name. We'd simplify\n// this with kysely's FileMigrationProvider, but it doesn't play nicely with the build process.\n\nexport * as _20230309T045948368Z from './20230309T045948368Z-init'\nexport * as _20230408T152211201Z from './20230408T152211201Z-notification-init'\nexport * as _20230417T210628672Z from './20230417T210628672Z-moderation-init'\nexport * as _20230420T211446071Z from './20230420T211446071Z-did-cache'\nexport * as _20230427T194702079Z from './20230427T194702079Z-notif-record-index'\nexport * as _20230605T144730094Z from './20230605T144730094Z-post-profile-aggs'\nexport * as _20230607T211442112Z from './20230607T211442112Z-feed-generator-init'\nexport * as _20230608T155101190Z from './20230608T155101190Z-algo-whats-hot-view'\nexport * as _20230608T201813132Z from './20230608T201813132Z-mute-lists'\nexport * as _20230608T205147239Z from './20230608T205147239Z-mutes'\nexport * as _20230609T153623961Z from './20230609T153623961Z-blocks'\nexport * as _20230609T232122649Z from './20230609T232122649Z-actor-deletion-indexes'\nexport * as _20230610T203555962Z from './20230610T203555962Z-suggested-follows'\nexport * as _20230611T215300060Z from './20230611T215300060Z-actor-state'\nexport * as _20230620T161134972Z from './20230620T161134972Z-post-langs'\nexport * as _20230627T212437895Z from './20230627T212437895Z-optional-handle'\nexport * as _20230629T220835893Z from './20230629T220835893Z-remove-post-hierarchy'\nexport * as _20230703T045536691Z from './20230703T045536691Z-feed-and-label-indices'\nexport * as _20230720T164800037Z from './20230720T164800037Z-posts-cursor-idx'\nexport * as _20230807T035309811Z from './20230807T035309811Z-feed-item-delete-invite-for-user-idx'\nexport * as _20230808T172902639Z from './20230808T172902639Z-repo-rev'\nexport * as _20230810T203349843Z from './20230810T203349843Z-action-duration'\nexport * as _20230817T195936007Z from './20230817T195936007Z-native-notifications'\nexport * as _20230830T205507322Z from './20230830T205507322Z-suggested-feeds'\nexport * as _20230904T211011773Z from './20230904T211011773Z-block-lists'\nexport * as _20230906T222220386Z from './20230906T222220386Z-thread-gating'\nexport * as _20230920T213858047Z from './20230920T213858047Z-add-tags-to-post'\nexport * as _20230929T192920807Z from './20230929T192920807Z-record-cursor-indexes'\nexport * as _20231003T202833377Z from './20231003T202833377Z-create-moderation-subject-status'\nexport * as _20231220T225126090Z from './20231220T225126090Z-blob-takedowns'\nexport * as _20240124T023719200Z from './20240124T023719200Z-tagged-suggestions'\nexport * as _20240226T225725627Z from './20240226T225725627Z-labelers'\nexport * as _20240530T170337073Z from './20240530T170337073Z-account-deactivation'\nexport * as _20240606T171229898Z from './20240606T171229898Z-thread-mutes'\nexport * as _20240606T222548219Z from './20240606T222548219Z-starter-packs'\nexport * as _20240719T203853939Z from './20240719T203853939Z-priority-notifs'\nexport * as _20240723T220700077Z from './20240723T220700077Z-quotes-post-aggs'\nexport * as _20240723T220703655Z from './20240723T220703655Z-quotes'\nexport * as _20240801T193939827Z from './20240801T193939827Z-post-gate'\nexport * as _20240808T224251220Z from './20240808T224251220Z-post-gate-flags'\nexport * as _20240829T211238293Z from './20240829T211238293Z-simplify-actor-sync'\nexport * as _20240831T134810923Z from './20240831T134810923Z-pinned-posts'\nexport * as _20241114T153108102Z from './20241114T153108102Z-add-starter-packs-name'\nexport * as _20250116T222618297Z from './20250116T222618297Z-post-embed-video'\nexport * as _20250207T174822012Z from './20250207T174822012Z-add-label-exp'\nexport * as _20250404T163421487Z from './20250404T163421487Z-verifications'\nexport * as _20250526T023712742Z from './20250526T023712742Z-like-repost-via'\nexport * as _20250528T221913281Z from './20250528T221913281Z-add-record-tags'\nexport * as _20250602T190357447Z from './20250602T190357447Z-add-private-data'\nexport * as _20250611T140649895Z from './20250611T140649895Z-add-activity-subscription'\nexport * as _20250627T025331240Z from './20250627T025331240Z-add-actor-age-assurance-columns'\nexport * as _20250812T183735692Z from './20250812T183735692Z-add-bookmarks'\nexport * as _20250813T174955711Z from './20250813T174955711Z-add-post-agg-bookmarks'\nexport * as _20251120T004738098Z from './20251120T004738098Z-update-actor-age-assurance-v2'\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/db/migrations/index.ts"],"names":[],"mappings":";AAAA,oGAAoG;AACpG,gGAAgG;AAChG,+FAA+F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE/F,mFAAkE;AAClE,gGAA+E;AAC/E,8FAA6E;AAC7E,wFAAuE;AACvE,iGAAgF;AAChF,gGAA+E;AAC/E,kGAAiF;AACjF,kGAAiF;AACjF,yFAAwE;AACxE,oFAAmE;AACnE,qFAAoE;AACpE,qGAAoF;AACpF,gGAA+E;AAC/E,0FAAyE;AACzE,yFAAwE;AACxE,8FAA6E;AAC7E,oGAAmF;AACnF,qGAAoF;AACpF,+FAA8E;AAC9E,mHAAkG;AAClG,uFAAsE;AACtE,8FAA6E;AAC7E,mGAAkF;AAClF,8FAA6E;AAC7E,0FAAyE;AACzE,4FAA2E;AAC3E,+FAA8E;AAC9E,oGAAmF;AACnF,+GAA8F;AAC9F,6FAA4E;AAC5E,iGAAgF;AAChF,uFAAsE;AACtE,mGAAkF;AAClF,2FAA0E;AAC1E,4FAA2E;AAC3E,8FAA6E;AAC7E,+FAA8E;AAC9E,qFAAoE;AACpE,wFAAuE;AACvE,8FAA6E;AAC7E,kGAAiF;AACjF,2FAA0E;AAC1E,qGAAoF;AACpF,+FAA8E;AAC9E,4FAA2E;AAC3E,4FAA2E;AAC3E,8FAA6E;AAC7E,8FAA6E;AAC7E,+FAA8E;AAC9E,wGAAuF;AACvF,8GAA6F;AAC7F,4FAA2E;AAC3E,qGAAoF;AACpF,4GAA2F;AAC3F,yFAAwE","sourcesContent":["// NOTE this file can be edited by hand, but it is also appended to by the migration:create command.\n// It's important that every migration is exported from here with the proper name. We'd simplify\n// this with kysely's FileMigrationProvider, but it doesn't play nicely with the build process.\n\nexport * as _20230309T045948368Z from './20230309T045948368Z-init'\nexport * as _20230408T152211201Z from './20230408T152211201Z-notification-init'\nexport * as _20230417T210628672Z from './20230417T210628672Z-moderation-init'\nexport * as _20230420T211446071Z from './20230420T211446071Z-did-cache'\nexport * as _20230427T194702079Z from './20230427T194702079Z-notif-record-index'\nexport * as _20230605T144730094Z from './20230605T144730094Z-post-profile-aggs'\nexport * as _20230607T211442112Z from './20230607T211442112Z-feed-generator-init'\nexport * as _20230608T155101190Z from './20230608T155101190Z-algo-whats-hot-view'\nexport * as _20230608T201813132Z from './20230608T201813132Z-mute-lists'\nexport * as _20230608T205147239Z from './20230608T205147239Z-mutes'\nexport * as _20230609T153623961Z from './20230609T153623961Z-blocks'\nexport * as _20230609T232122649Z from './20230609T232122649Z-actor-deletion-indexes'\nexport * as _20230610T203555962Z from './20230610T203555962Z-suggested-follows'\nexport * as _20230611T215300060Z from './20230611T215300060Z-actor-state'\nexport * as _20230620T161134972Z from './20230620T161134972Z-post-langs'\nexport * as _20230627T212437895Z from './20230627T212437895Z-optional-handle'\nexport * as _20230629T220835893Z from './20230629T220835893Z-remove-post-hierarchy'\nexport * as _20230703T045536691Z from './20230703T045536691Z-feed-and-label-indices'\nexport * as _20230720T164800037Z from './20230720T164800037Z-posts-cursor-idx'\nexport * as _20230807T035309811Z from './20230807T035309811Z-feed-item-delete-invite-for-user-idx'\nexport * as _20230808T172902639Z from './20230808T172902639Z-repo-rev'\nexport * as _20230810T203349843Z from './20230810T203349843Z-action-duration'\nexport * as _20230817T195936007Z from './20230817T195936007Z-native-notifications'\nexport * as _20230830T205507322Z from './20230830T205507322Z-suggested-feeds'\nexport * as _20230904T211011773Z from './20230904T211011773Z-block-lists'\nexport * as _20230906T222220386Z from './20230906T222220386Z-thread-gating'\nexport * as _20230920T213858047Z from './20230920T213858047Z-add-tags-to-post'\nexport * as _20230929T192920807Z from './20230929T192920807Z-record-cursor-indexes'\nexport * as _20231003T202833377Z from './20231003T202833377Z-create-moderation-subject-status'\nexport * as _20231220T225126090Z from './20231220T225126090Z-blob-takedowns'\nexport * as _20240124T023719200Z from './20240124T023719200Z-tagged-suggestions'\nexport * as _20240226T225725627Z from './20240226T225725627Z-labelers'\nexport * as _20240530T170337073Z from './20240530T170337073Z-account-deactivation'\nexport * as _20240606T171229898Z from './20240606T171229898Z-thread-mutes'\nexport * as _20240606T222548219Z from './20240606T222548219Z-starter-packs'\nexport * as _20240719T203853939Z from './20240719T203853939Z-priority-notifs'\nexport * as _20240723T220700077Z from './20240723T220700077Z-quotes-post-aggs'\nexport * as _20240723T220703655Z from './20240723T220703655Z-quotes'\nexport * as _20240801T193939827Z from './20240801T193939827Z-post-gate'\nexport * as _20240808T224251220Z from './20240808T224251220Z-post-gate-flags'\nexport * as _20240829T211238293Z from './20240829T211238293Z-simplify-actor-sync'\nexport * as _20240831T134810923Z from './20240831T134810923Z-pinned-posts'\nexport * as _20241114T153108102Z from './20241114T153108102Z-add-starter-packs-name'\nexport * as _20250116T222618297Z from './20250116T222618297Z-post-embed-video'\nexport * as _20250207T174822012Z from './20250207T174822012Z-add-label-exp'\nexport * as _20250404T163421487Z from './20250404T163421487Z-verifications'\nexport * as _20250526T023712742Z from './20250526T023712742Z-like-repost-via'\nexport * as _20250528T221913281Z from './20250528T221913281Z-add-record-tags'\nexport * as _20250602T190357447Z from './20250602T190357447Z-add-private-data'\nexport * as _20250611T140649895Z from './20250611T140649895Z-add-activity-subscription'\nexport * as _20250627T025331240Z from './20250627T025331240Z-add-actor-age-assurance-columns'\nexport * as _20250812T183735692Z from './20250812T183735692Z-add-bookmarks'\nexport * as _20250813T174955711Z from './20250813T174955711Z-add-post-agg-bookmarks'\nexport * as _20251120T004738098Z from './20251120T004738098Z-update-actor-age-assurance-v2'\nexport * as _20260112T133951271Z from './20260112T133951271Z-add-drafts'\n"]}
|
|
@@ -143,6 +143,15 @@ export declare class IsoSortAtKey extends IsoTimeKey<{
|
|
|
143
143
|
primary: string;
|
|
144
144
|
};
|
|
145
145
|
}
|
|
146
|
+
export declare class IsoUpdatedAtKey extends IsoTimeKey<{
|
|
147
|
+
updatedAt: string;
|
|
148
|
+
}> {
|
|
149
|
+
labelResult(result: {
|
|
150
|
+
updatedAt: string;
|
|
151
|
+
}): {
|
|
152
|
+
primary: string;
|
|
153
|
+
};
|
|
154
|
+
}
|
|
146
155
|
type KeyResult = {
|
|
147
156
|
key: string;
|
|
148
157
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/db/pagination.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/db/pagination.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StashKeyKey = exports.RkeyKey = exports.IsoSortAtKey = exports.IsoTimeKey = exports.GenericSingleKey = exports.paginate = exports.IndexedAtDidKeyset = exports.CreatedAtDidKeyset = exports.TimeCidKeyset = exports.GenericKeyset = void 0;
|
|
3
|
+
exports.StashKeyKey = exports.RkeyKey = exports.IsoUpdatedAtKey = exports.IsoSortAtKey = exports.IsoTimeKey = exports.GenericSingleKey = exports.paginate = exports.IndexedAtDidKeyset = exports.CreatedAtDidKeyset = exports.TimeCidKeyset = exports.GenericKeyset = void 0;
|
|
4
4
|
const kysely_1 = require("kysely");
|
|
5
5
|
const syntax_1 = require("@atproto/syntax");
|
|
6
6
|
const xrpc_server_1 = require("@atproto/xrpc-server");
|
|
@@ -243,6 +243,12 @@ class IsoSortAtKey extends IsoTimeKey {
|
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
exports.IsoSortAtKey = IsoSortAtKey;
|
|
246
|
+
class IsoUpdatedAtKey extends IsoTimeKey {
|
|
247
|
+
labelResult(result) {
|
|
248
|
+
return { primary: result.updatedAt };
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
exports.IsoUpdatedAtKey = IsoUpdatedAtKey;
|
|
246
252
|
class RkeyKey extends GenericSingleKey {
|
|
247
253
|
labelResult(result) {
|
|
248
254
|
return { primary: result };
|