@atproto/bsky 0.0.198 → 0.0.199
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 +14 -0
- package/dist/api/age-assurance/const.d.ts +11 -0
- package/dist/api/age-assurance/const.d.ts.map +1 -0
- package/dist/api/age-assurance/const.js +142 -0
- package/dist/api/age-assurance/const.js.map +1 -0
- package/dist/api/age-assurance/index.d.ts +4 -0
- package/dist/api/age-assurance/index.d.ts.map +1 -0
- package/dist/api/age-assurance/index.js +24 -0
- package/dist/api/age-assurance/index.js.map +1 -0
- package/dist/api/age-assurance/kws/age-verified.d.ts +109 -0
- package/dist/api/age-assurance/kws/age-verified.d.ts.map +1 -0
- package/dist/api/age-assurance/kws/age-verified.js +63 -0
- package/dist/api/age-assurance/kws/age-verified.js.map +1 -0
- package/dist/api/age-assurance/kws/const.d.ts +13 -0
- package/dist/api/age-assurance/kws/const.d.ts.map +1 -0
- package/dist/api/age-assurance/kws/const.js +36 -0
- package/dist/api/age-assurance/kws/const.js.map +1 -0
- package/dist/api/age-assurance/kws/external-payload.d.ts +75 -0
- package/dist/api/age-assurance/kws/external-payload.d.ts.map +1 -0
- package/dist/api/age-assurance/kws/external-payload.js +124 -0
- package/dist/api/age-assurance/kws/external-payload.js.map +1 -0
- package/dist/api/age-assurance/kws/external-payload.test.d.ts +2 -0
- package/dist/api/age-assurance/kws/external-payload.test.d.ts.map +1 -0
- package/dist/api/age-assurance/kws/external-payload.test.js +65 -0
- package/dist/api/age-assurance/kws/external-payload.test.js.map +1 -0
- package/dist/api/age-assurance/redirects/kws-age-verified.d.ts +4 -0
- package/dist/api/age-assurance/redirects/kws-age-verified.d.ts.map +1 -0
- package/dist/api/age-assurance/redirects/kws-age-verified.js +76 -0
- package/dist/api/age-assurance/redirects/kws-age-verified.js.map +1 -0
- package/dist/api/age-assurance/stash.d.ts +4 -0
- package/dist/api/age-assurance/stash.d.ts.map +1 -0
- package/dist/api/age-assurance/stash.js +19 -0
- package/dist/api/age-assurance/stash.js.map +1 -0
- package/dist/api/age-assurance/types.d.ts +10 -0
- package/dist/api/age-assurance/types.d.ts.map +1 -0
- package/dist/api/age-assurance/types.js +3 -0
- package/dist/api/age-assurance/types.js.map +1 -0
- package/dist/api/age-assurance/util.d.ts +15 -0
- package/dist/api/age-assurance/util.d.ts.map +1 -0
- package/dist/api/age-assurance/util.js +54 -0
- package/dist/api/age-assurance/util.js.map +1 -0
- package/dist/api/age-assurance/webhooks/kws-age-verified.d.ts +4 -0
- package/dist/api/age-assurance/webhooks/kws-age-verified.d.ts.map +1 -0
- package/dist/api/age-assurance/webhooks/kws-age-verified.js +63 -0
- package/dist/api/age-assurance/webhooks/kws-age-verified.js.map +1 -0
- package/dist/api/app/bsky/ageassurance/begin.d.ts +4 -0
- package/dist/api/app/bsky/ageassurance/begin.d.ts.map +1 -0
- package/dist/api/app/bsky/ageassurance/begin.js +131 -0
- package/dist/api/app/bsky/ageassurance/begin.js.map +1 -0
- package/dist/api/app/bsky/ageassurance/getConfig.d.ts +4 -0
- package/dist/api/app/bsky/ageassurance/getConfig.d.ts.map +1 -0
- package/dist/api/app/bsky/ageassurance/getConfig.js +16 -0
- package/dist/api/app/bsky/ageassurance/getConfig.js.map +1 -0
- package/dist/api/app/bsky/ageassurance/getState.d.ts +4 -0
- package/dist/api/app/bsky/ageassurance/getState.d.ts.map +1 -0
- package/dist/api/app/bsky/ageassurance/getState.js +42 -0
- package/dist/api/app/bsky/ageassurance/getState.js.map +1 -0
- package/dist/api/external.d.ts.map +1 -1
- package/dist/api/external.js +2 -0
- package/dist/api/external.js.map +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +8 -2
- package/dist/api/index.js.map +1 -1
- package/dist/api/kws/api.d.ts.map +1 -1
- package/dist/api/kws/api.js +44 -26
- package/dist/api/kws/api.js.map +1 -1
- package/dist/api/kws/index.d.ts.map +1 -1
- package/dist/api/kws/index.js +3 -1
- package/dist/api/kws/index.js.map +1 -1
- package/dist/api/kws/webhook.d.ts +3 -1
- package/dist/api/kws/webhook.d.ts.map +1 -1
- package/dist/api/kws/webhook.js +48 -20
- package/dist/api/kws/webhook.js.map +1 -1
- package/dist/config.d.ts +14 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +10 -2
- package/dist/config.js.map +1 -1
- package/dist/data-plane/bsync/index.d.ts.map +1 -1
- package/dist/data-plane/bsync/index.js +22 -0
- package/dist/data-plane/bsync/index.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20251120T004738098Z-update-actor-age-assurance-v2.d.ts +4 -0
- package/dist/data-plane/server/db/migrations/20251120T004738098Z-update-actor-age-assurance-v2.d.ts.map +1 -0
- package/dist/data-plane/server/db/migrations/20251120T004738098Z-update-actor-age-assurance-v2.js +30 -0
- package/dist/data-plane/server/db/migrations/20251120T004738098Z-update-actor-age-assurance-v2.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 +3 -3
- package/dist/data-plane/server/db/tables/actor.d.ts +3 -0
- package/dist/data-plane/server/db/tables/actor.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/actor.js.map +1 -1
- package/dist/data-plane/server/routes/profile.d.ts.map +1 -1
- package/dist/data-plane/server/routes/profile.js +13 -1
- package/dist/data-plane/server/routes/profile.js.map +1 -1
- package/dist/hydration/hydrator.js +1 -1
- package/dist/hydration/hydrator.js.map +1 -1
- package/dist/kws.d.ts +35 -0
- package/dist/kws.d.ts.map +1 -1
- package/dist/kws.js +54 -0
- package/dist/kws.js.map +1 -1
- package/dist/logger.d.ts +1 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +2 -1
- package/dist/logger.js.map +1 -1
- package/dist/proto/bsky_pb.d.ts +8 -0
- package/dist/proto/bsky_pb.d.ts.map +1 -1
- package/dist/proto/bsky_pb.js +20 -0
- 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/util/uris.d.ts +2 -2
- package/dist/util/uris.d.ts.map +1 -1
- package/package.json +10 -9
- package/proto/bsky.proto +1 -0
- package/src/api/age-assurance/const.ts +142 -0
- package/src/api/age-assurance/index.ts +34 -0
- package/src/api/age-assurance/kws/age-verified.ts +75 -0
- package/src/api/age-assurance/kws/const.ts +33 -0
- package/src/api/age-assurance/kws/external-payload.test.ts +72 -0
- package/src/api/age-assurance/kws/external-payload.ts +149 -0
- package/src/api/age-assurance/redirects/kws-age-verified.ts +107 -0
- package/src/api/age-assurance/stash.ts +22 -0
- package/src/api/age-assurance/types.ts +10 -0
- package/src/api/age-assurance/util.ts +66 -0
- package/src/api/age-assurance/webhooks/kws-age-verified.ts +75 -0
- package/src/api/app/bsky/ageassurance/begin.ts +167 -0
- package/src/api/app/bsky/ageassurance/getConfig.ts +15 -0
- package/src/api/app/bsky/ageassurance/getState.ts +53 -0
- package/src/api/external.ts +2 -0
- package/src/api/index.ts +6 -0
- package/src/api/kws/api.ts +55 -34
- package/src/api/kws/index.ts +7 -1
- package/src/api/kws/webhook.ts +57 -34
- package/src/config.ts +26 -2
- package/src/data-plane/bsync/index.ts +31 -0
- package/src/data-plane/server/db/migrations/20251120T004738098Z-update-actor-age-assurance-v2.ts +28 -0
- package/src/data-plane/server/db/migrations/index.ts +1 -0
- package/src/data-plane/server/db/tables/actor.ts +3 -0
- package/src/data-plane/server/routes/profile.ts +12 -1
- package/src/hydration/hydrator.ts +1 -1
- package/src/kws.ts +81 -0
- package/src/logger.ts +2 -0
- package/src/proto/bsky_pb.ts +12 -0
- package/src/stash.ts +3 -0
- package/tests/views/age-assurance-v2.test.ts +745 -0
- package/tests/views/age-assurance.test.ts +2 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/tsconfig.tests.tsbuildinfo +1 -1
|
@@ -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._20250813T174955711Z = exports._20250812T183735692Z = exports._20250627T025331240Z = void 0;
|
|
40
|
+
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"));
|
|
@@ -91,4 +91,5 @@ exports._20250611T140649895Z = __importStar(require("./20250611T140649895Z-add-a
|
|
|
91
91
|
exports._20250627T025331240Z = __importStar(require("./20250627T025331240Z-add-actor-age-assurance-columns"));
|
|
92
92
|
exports._20250812T183735692Z = __importStar(require("./20250812T183735692Z-add-bookmarks"));
|
|
93
93
|
exports._20250813T174955711Z = __importStar(require("./20250813T174955711Z-add-post-agg-bookmarks"));
|
|
94
|
+
exports._20251120T004738098Z = __importStar(require("./20251120T004738098Z-update-actor-age-assurance-v2"));
|
|
94
95
|
//# 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","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'\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","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"]}
|
|
@@ -54,7 +54,7 @@ export declare class TimeCidKeyset<TimeCidResult = SortAtCidResult> extends Gene
|
|
|
54
54
|
secondary: string;
|
|
55
55
|
};
|
|
56
56
|
cursorToLabeledResult(cursor: KeysetCursor): {
|
|
57
|
-
primary: string
|
|
57
|
+
primary: `${string}-${string}-${string}T${string}:${string}:${string}Z`;
|
|
58
58
|
secondary: string;
|
|
59
59
|
};
|
|
60
60
|
}
|
|
@@ -128,10 +128,10 @@ type TimeLabeledResult = SingleKeyCursor;
|
|
|
128
128
|
export declare class IsoTimeKey<TimeResult = SortAtResult> extends GenericSingleKey<TimeResult, TimeLabeledResult> {
|
|
129
129
|
labelResult(result: TimeResult): TimeLabeledResult;
|
|
130
130
|
labeledResultToCursor(labeled: TimeLabeledResult): {
|
|
131
|
-
primary: string
|
|
131
|
+
primary: `${string}-${string}-${string}T${string}:${string}:${string}Z`;
|
|
132
132
|
};
|
|
133
133
|
cursorToLabeledResult(cursor: SingleKeyCursor): {
|
|
134
|
-
primary: string
|
|
134
|
+
primary: `${string}-${string}-${string}T${string}:${string}:${string}Z`;
|
|
135
135
|
};
|
|
136
136
|
}
|
|
137
137
|
export declare class IsoSortAtKey extends IsoTimeKey<{
|
|
@@ -8,6 +8,9 @@ export interface Actor {
|
|
|
8
8
|
trustedVerifier: Generated<boolean>;
|
|
9
9
|
ageAssuranceStatus: string | null;
|
|
10
10
|
ageAssuranceLastInitiatedAt: string | null;
|
|
11
|
+
ageAssuranceAccess: string | null;
|
|
12
|
+
ageAssuranceCountryCode: string | null;
|
|
13
|
+
ageAssuranceRegionCode: string | null;
|
|
11
14
|
}
|
|
12
15
|
export declare const tableName = "actor";
|
|
13
16
|
export type PartialDB = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../../../../src/data-plane/server/db/tables/actor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IACnC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../../../../src/data-plane/server/db/tables/actor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IACnC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1C,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAA;CACtC;AAED,eAAO,MAAM,SAAS,UAAU,CAAA;AAEhC,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAA;CAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actor.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/db/tables/actor.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"actor.js","sourceRoot":"","sources":["../../../../../src/data-plane/server/db/tables/actor.ts"],"names":[],"mappings":";;;AAgBa,QAAA,SAAS,GAAG,OAAO,CAAA","sourcesContent":["import { Generated } from 'kysely'\n\nexport interface Actor {\n did: string\n handle: string | null\n indexedAt: string\n takedownRef: string | null\n upstreamStatus: string | null\n trustedVerifier: Generated<boolean>\n ageAssuranceStatus: string | null\n ageAssuranceLastInitiatedAt: string | null\n ageAssuranceAccess: string | null\n ageAssuranceCountryCode: string | null\n ageAssuranceRegionCode: string | null\n}\n\nexport const tableName = 'actor'\n\nexport type PartialDB = { [tableName]: Actor }\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/profile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAQjD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;yBAWhB,IAAI,QAAQ,KAAG,OAAO,CAAC,WAAW,CAAC,OAAO,OAAO,CAAC,CAAC;AAAnE,
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/profile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAQjD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;yBAWhB,IAAI,QAAQ,KAAG,OAAO,CAAC,WAAW,CAAC,OAAO,OAAO,CAAC,CAAC;AAAnE,wBAwLE"}
|
|
@@ -86,11 +86,23 @@ exports.default = (db) => ({
|
|
|
86
86
|
if (!ageAssuranceForDids.has(did)) {
|
|
87
87
|
return undefined;
|
|
88
88
|
}
|
|
89
|
+
const status = row?.ageAssuranceStatus ?? 'unknown';
|
|
90
|
+
let access = row?.ageAssuranceAccess;
|
|
91
|
+
if (status === 'assured') {
|
|
92
|
+
access = 'full';
|
|
93
|
+
}
|
|
94
|
+
else if (status === 'blocked') {
|
|
95
|
+
access = 'none';
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
access = 'unknown';
|
|
99
|
+
}
|
|
89
100
|
return {
|
|
90
|
-
status: row?.ageAssuranceStatus ?? 'unknown',
|
|
91
101
|
lastInitiatedAt: row?.ageAssuranceLastInitiatedAt
|
|
92
102
|
? protobuf_1.Timestamp.fromDate(new Date(row?.ageAssuranceLastInitiatedAt))
|
|
93
103
|
: undefined,
|
|
104
|
+
status,
|
|
105
|
+
access,
|
|
94
106
|
};
|
|
95
107
|
};
|
|
96
108
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/profile.ts"],"names":[],"mappings":";;AAAA,iDAA8C;AAE9C,mCAAwC;AAKxC,4CAAuC;AACvC,kDAA0D;AAK1D,uCAAsC;AAStC,kBAAe,CAAC,EAAY,EAAwC,EAAE,CAAC,CAAC;IACtE,KAAK,CAAC,SAAS,CAAC,GAAG;QACjB,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,GAAG,CAAA;QAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;QACvB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,8BAA8B,CACnD,CAAA;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,6BAA6B,CAClD,CAAA;QACD,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAClC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,mCAAmC,CACxD,CAAA;QACD,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CACnC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,yCAAyC,CAC9D,CAAA;QACD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAA;QAC7B,MAAM,CACJ,UAAU,EACV,qBAAqB,EACrB,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EAClB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpB,EAAE,CAAC,EAAE;iBACF,UAAU,CAAC,OAAO,CAAC;iBACnB,QAAQ,CAAC,aAAa,EAAE,iBAAiB,EAAE,WAAW,CAAC;iBACvD,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;iBAC9B,SAAS,CAAC,OAAO,CAAC;iBAClB,MAAM,CAAC,4BAA4B,CAAC;iBACpC,MAAM,CAAC;gBACN,EAAE,CAAC,EAAE;qBACF,UAAU,CAAC,SAAS,CAAC;qBACrB,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;qBAC1C,MAAM,CAAC,IAAA,YAAG,EAAM,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;qBACpC,EAAE,CAAC,WAAW,CAAC;aACnB,CAAC;iBACD,OAAO,EAAE;YACZ,EAAE,CAAC,EAAE;iBACF,UAAU,CAAC,cAAc,CAAC;iBAC1B,SAAS,CAAC,cAAc,CAAC;iBACzB,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,sBAAsB,CAAC;iBACvD,KAAK,CAAC,sBAAsB,EAAE,IAAI,EAAE,IAAI,CAAC;iBACzC,KAAK,CAAC,uBAAuB,EAAE,GAAG,EAAE,IAAI,CAAC;iBACzC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;iBAC1B,OAAO,EAAE;YACZ,IAAA,oBAAU,EAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YACrC,IAAA,oBAAU,EAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YACpC,IAAA,oBAAU,EAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;YAC7C,IAAA,oBAAU,EAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;SAC/C,CAAC,CAAA;QAEF,MAAM,yBAAyB,GAAG,qBAAqB,CAAC,MAAM,CAC5D,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YACvC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACd,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAC1B,OAAO,GAAG,CAAA;QACZ,CAAC,EACD,IAAI,GAAG,EAAsC,CAC9C,CAAA;QAED,MAAM,KAAK,GAAG,IAAA,cAAK,EAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAE1B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAElC,MAAM,eAAe,GAAG,IAAA,uBAAgB,EACtC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CACnC,CAAA;YAED,MAAM,aAAa,GAAG,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YAC9D,MAAM,UAAU,GAAe,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC/D,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;oBACjB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,QAAQ,EAAE,oBAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;iBACrD,CAAA;gBACD,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAgB,CAAC,CAAA;YACpB,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,yBAAyB,CAAC,CAAA;YAE9D,MAAM,oBAAoB,GAAG,GAAG,EAAE;gBAChC,MAAM,MAAM,GAAG,IAAA,uBAAgB,EAC7B,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CACpC,CAAA;gBAED,0GAA0G;gBAC1G,MAAM,UAAU,GAAG,WAAW,CAAA;gBAE9B,IAAI,OAAO,MAAM,EAAE,kBAAkB,KAAK,QAAQ,EAAE,CAAC;oBACnD,OAAO,UAAU,CAAA;gBACnB,CAAC;gBAED,QAAQ,MAAM,CAAC,kBAAkB,EAAE,CAAC;oBAClC,KAAK,WAAW,CAAC;oBACjB,KAAK,SAAS,CAAC;oBACf,KAAK,MAAM;wBACT,OAAO,MAAM,CAAC,kBAAkB,CAAA;oBAClC;wBACE,OAAO,UAAU,CAAA;gBACrB,CAAC;YACH,CAAC,CAAA;YAED,MAAM,kBAAkB,GAAG,GAAG,EAAE;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,OAAO,SAAS,CAAA;gBAClB,CAAC;gBAED,OAAO;oBACL,MAAM,EAAE,GAAG,EAAE,kBAAkB,IAAI,SAAS;oBAC5C,eAAe,EAAE,GAAG,EAAE,2BAA2B;wBAC/C,CAAC,CAAC,oBAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;wBAChE,CAAC,CAAC,SAAS;iBACd,CAAA;YACH,CAAC,CAAA;YAED,OAAO;gBACL,MAAM,EAAE,CAAC,CAAC,GAAG;gBACb,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,SAAS;gBAChC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5B,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW;gBAC7B,WAAW,EAAE,GAAG,EAAE,WAAW,IAAI,SAAS;gBAC1C,YAAY,EAAE,SAAS,EAAE,2DAA2D;gBACpF,OAAO,EAAE,GAAG,EAAE,SAAS,IAAI,KAAK;gBAChC,sBAAsB,EACpB,OAAO,eAAe,EAAE,CAAC,eAAe,CAAC,KAAK,QAAQ;oBACpD,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC;oBAClC,CAAC,CAAC,SAAS;gBACf,cAAc,EAAE,GAAG,EAAE,cAAc,IAAI,EAAE;gBACzC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,wDAAwD;gBAClG,qBAAqB,EAAE,GAAG,EAAE,cAAc,IAAI,KAAK;gBACnD,eAAe,EAAE,GAAG,EAAE,eAAe,IAAI,KAAK;gBAC9C,UAAU;gBACV,YAAY,EAAE,MAAM;gBACpB,IAAI,EAAE,EAAE;gBACR,WAAW,EAAE,EAAE;gBACf,8BAA8B,EAAE,oBAAoB,EAAE;gBACtD,kBAAkB,EAAE,kBAAkB,EAAE;aACzC,CAAA;QACH,CAAC,CAAC,CAAA;QACF,OAAO,EAAE,MAAM,EAAE,CAAA;IACnB,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,gBAAgB,CAAC,GAAG;QACxB,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;QACvB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;QACrB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,EAAE;aACpB,UAAU,CAAC,OAAO,CAAC;aACnB,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;aAC9B,SAAS,EAAE;aACX,OAAO,EAAE,CAAA;QACZ,MAAM,QAAQ,GAAG,IAAA,cAAK,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;QACrE,OAAO,EAAE,IAAI,EAAE,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,GAAG;QACjC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,GAAG,CAAA;QACxC,MAAM,EAAE,CAAC,EAAE;aACR,WAAW,CAAC,OAAO,CAAC;aACpB,GAAG,CAAC,EAAE,cAAc,EAAE,CAAC;aACvB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC;aAC3B,OAAO,EAAE,CAAA;IACd,CAAC;CACF,CAAC,CAAA","sourcesContent":["import { Timestamp } from '@bufbuild/protobuf'\nimport { ServiceImpl } from '@connectrpc/connect'\nimport { Selectable, sql } from 'kysely'\nimport {\n AppBskyNotificationDeclaration,\n ChatBskyActorDeclaration,\n} from '@atproto/api'\nimport { keyBy } from '@atproto/common'\nimport { parseRecordBytes } from '../../../hydration/util'\nimport { Service } from '../../../proto/bsky_connect'\nimport { VerificationMeta } from '../../../proto/bsky_pb'\nimport { Database } from '../db'\nimport { Verification } from '../db/tables/verification'\nimport { getRecords } from './records'\n\ntype VerifiedBy = {\n [handle: string]: Pick<\n VerificationMeta,\n 'rkey' | 'handle' | 'displayName' | 'sortedAt'\n >\n}\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getActors(req) {\n const { dids, returnAgeAssuranceForDids } = req\n if (dids.length === 0) {\n return { actors: [] }\n }\n const profileUris = dids.map(\n (did) => `at://${did}/app.bsky.actor.profile/self`,\n )\n const statusUris = dids.map(\n (did) => `at://${did}/app.bsky.actor.status/self`,\n )\n const chatDeclarationUris = dids.map(\n (did) => `at://${did}/chat.bsky.actor.declaration/self`,\n )\n const notifDeclarationUris = dids.map(\n (did) => `at://${did}/app.bsky.notification.declaration/self`,\n )\n const { ref } = db.db.dynamic\n const [\n handlesRes,\n verificationsReceived,\n profiles,\n statuses,\n chatDeclarations,\n notifDeclarations,\n ] = await Promise.all([\n db.db\n .selectFrom('actor')\n .leftJoin('actor_state', 'actor_state.did', 'actor.did')\n .where('actor.did', 'in', dids)\n .selectAll('actor')\n .select('actor_state.priorityNotifs')\n .select([\n db.db\n .selectFrom('labeler')\n .whereRef('creator', '=', ref('actor.did'))\n .select(sql<true>`${true}`.as('val'))\n .as('isLabeler'),\n ])\n .execute(),\n db.db\n .selectFrom('verification')\n .selectAll('verification')\n .innerJoin('actor', 'actor.did', 'verification.creator')\n .where('verification.subject', 'in', dids)\n .where('actor.trustedVerifier', '=', true)\n .orderBy('sortedAt', 'asc')\n .execute(),\n getRecords(db)({ uris: profileUris }),\n getRecords(db)({ uris: statusUris }),\n getRecords(db)({ uris: chatDeclarationUris }),\n getRecords(db)({ uris: notifDeclarationUris }),\n ])\n\n const verificationsBySubjectDid = verificationsReceived.reduce(\n (acc, cur) => {\n const list = acc.get(cur.subject) ?? []\n list.push(cur)\n acc.set(cur.subject, list)\n return acc\n },\n new Map<string, Selectable<Verification>[]>(),\n )\n\n const byDid = keyBy(handlesRes, 'did')\n const actors = dids.map((did, i) => {\n const row = byDid.get(did)\n\n const status = statuses.records[i]\n\n const chatDeclaration = parseRecordBytes<ChatBskyActorDeclaration.Record>(\n chatDeclarations.records[i].record,\n )\n\n const verifications = verificationsBySubjectDid.get(did) ?? []\n const verifiedBy: VerifiedBy = verifications.reduce((acc, cur) => {\n acc[cur.creator] = {\n rkey: cur.rkey,\n handle: cur.handle,\n displayName: cur.displayName,\n sortedAt: Timestamp.fromDate(new Date(cur.sortedAt)),\n }\n return acc\n }, {} as VerifiedBy)\n const ageAssuranceForDids = new Set(returnAgeAssuranceForDids)\n\n const activitySubscription = () => {\n const record = parseRecordBytes<AppBskyNotificationDeclaration.Record>(\n notifDeclarations.records[i].record,\n )\n\n // The dataplane is responsible for setting the default of \"followers\" (default according to the lexicon).\n const defaultVal = 'followers'\n\n if (typeof record?.allowSubscriptions !== 'string') {\n return defaultVal\n }\n\n switch (record.allowSubscriptions) {\n case 'followers':\n case 'mutuals':\n case 'none':\n return record.allowSubscriptions\n default:\n return defaultVal\n }\n }\n\n const ageAssuranceStatus = () => {\n if (!ageAssuranceForDids.has(did)) {\n return undefined\n }\n\n return {\n status: row?.ageAssuranceStatus ?? 'unknown',\n lastInitiatedAt: row?.ageAssuranceLastInitiatedAt\n ? Timestamp.fromDate(new Date(row?.ageAssuranceLastInitiatedAt))\n : undefined,\n }\n }\n\n return {\n exists: !!row,\n handle: row?.handle ?? undefined,\n profile: profiles.records[i],\n takenDown: !!row?.takedownRef,\n takedownRef: row?.takedownRef || undefined,\n tombstonedAt: undefined, // in current implementation, tombstoned actors are deleted\n labeler: row?.isLabeler ?? false,\n allowIncomingChatsFrom:\n typeof chatDeclaration?.['allowIncoming'] === 'string'\n ? chatDeclaration['allowIncoming']\n : undefined,\n upstreamStatus: row?.upstreamStatus ?? '',\n createdAt: profiles.records[i].createdAt, // @NOTE profile creation date not trusted in production\n priorityNotifications: row?.priorityNotifs ?? false,\n trustedVerifier: row?.trustedVerifier ?? false,\n verifiedBy,\n statusRecord: status,\n tags: [],\n profileTags: [],\n allowActivitySubscriptionsFrom: activitySubscription(),\n ageAssuranceStatus: ageAssuranceStatus(),\n }\n })\n return { actors }\n },\n\n // @TODO handle req.lookupUnidirectional w/ networked handle resolution\n async getDidsByHandles(req) {\n const { handles } = req\n if (handles.length === 0) {\n return { dids: [] }\n }\n const res = await db.db\n .selectFrom('actor')\n .where('handle', 'in', handles)\n .selectAll()\n .execute()\n const byHandle = keyBy(res, 'handle')\n const dids = handles.map((handle) => byHandle.get(handle)?.did ?? '')\n return { dids }\n },\n\n async updateActorUpstreamStatus(req) {\n const { actorDid, upstreamStatus } = req\n await db.db\n .updateTable('actor')\n .set({ upstreamStatus })\n .where('did', '=', actorDid)\n .execute()\n },\n})\n"]}
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../../src/data-plane/server/routes/profile.ts"],"names":[],"mappings":"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","sourcesContent":["import { Timestamp } from '@bufbuild/protobuf'\nimport { ServiceImpl } from '@connectrpc/connect'\nimport { Selectable, sql } from 'kysely'\nimport {\n AppBskyNotificationDeclaration,\n ChatBskyActorDeclaration,\n} from '@atproto/api'\nimport { keyBy } from '@atproto/common'\nimport { parseRecordBytes } from '../../../hydration/util'\nimport { Service } from '../../../proto/bsky_connect'\nimport { VerificationMeta } from '../../../proto/bsky_pb'\nimport { Database } from '../db'\nimport { Verification } from '../db/tables/verification'\nimport { getRecords } from './records'\n\ntype VerifiedBy = {\n [handle: string]: Pick<\n VerificationMeta,\n 'rkey' | 'handle' | 'displayName' | 'sortedAt'\n >\n}\n\nexport default (db: Database): Partial<ServiceImpl<typeof Service>> => ({\n async getActors(req) {\n const { dids, returnAgeAssuranceForDids } = req\n if (dids.length === 0) {\n return { actors: [] }\n }\n const profileUris = dids.map(\n (did) => `at://${did}/app.bsky.actor.profile/self`,\n )\n const statusUris = dids.map(\n (did) => `at://${did}/app.bsky.actor.status/self`,\n )\n const chatDeclarationUris = dids.map(\n (did) => `at://${did}/chat.bsky.actor.declaration/self`,\n )\n const notifDeclarationUris = dids.map(\n (did) => `at://${did}/app.bsky.notification.declaration/self`,\n )\n const { ref } = db.db.dynamic\n const [\n handlesRes,\n verificationsReceived,\n profiles,\n statuses,\n chatDeclarations,\n notifDeclarations,\n ] = await Promise.all([\n db.db\n .selectFrom('actor')\n .leftJoin('actor_state', 'actor_state.did', 'actor.did')\n .where('actor.did', 'in', dids)\n .selectAll('actor')\n .select('actor_state.priorityNotifs')\n .select([\n db.db\n .selectFrom('labeler')\n .whereRef('creator', '=', ref('actor.did'))\n .select(sql<true>`${true}`.as('val'))\n .as('isLabeler'),\n ])\n .execute(),\n db.db\n .selectFrom('verification')\n .selectAll('verification')\n .innerJoin('actor', 'actor.did', 'verification.creator')\n .where('verification.subject', 'in', dids)\n .where('actor.trustedVerifier', '=', true)\n .orderBy('sortedAt', 'asc')\n .execute(),\n getRecords(db)({ uris: profileUris }),\n getRecords(db)({ uris: statusUris }),\n getRecords(db)({ uris: chatDeclarationUris }),\n getRecords(db)({ uris: notifDeclarationUris }),\n ])\n\n const verificationsBySubjectDid = verificationsReceived.reduce(\n (acc, cur) => {\n const list = acc.get(cur.subject) ?? []\n list.push(cur)\n acc.set(cur.subject, list)\n return acc\n },\n new Map<string, Selectable<Verification>[]>(),\n )\n\n const byDid = keyBy(handlesRes, 'did')\n const actors = dids.map((did, i) => {\n const row = byDid.get(did)\n\n const status = statuses.records[i]\n\n const chatDeclaration = parseRecordBytes<ChatBskyActorDeclaration.Record>(\n chatDeclarations.records[i].record,\n )\n\n const verifications = verificationsBySubjectDid.get(did) ?? []\n const verifiedBy: VerifiedBy = verifications.reduce((acc, cur) => {\n acc[cur.creator] = {\n rkey: cur.rkey,\n handle: cur.handle,\n displayName: cur.displayName,\n sortedAt: Timestamp.fromDate(new Date(cur.sortedAt)),\n }\n return acc\n }, {} as VerifiedBy)\n const ageAssuranceForDids = new Set(returnAgeAssuranceForDids)\n\n const activitySubscription = () => {\n const record = parseRecordBytes<AppBskyNotificationDeclaration.Record>(\n notifDeclarations.records[i].record,\n )\n\n // The dataplane is responsible for setting the default of \"followers\" (default according to the lexicon).\n const defaultVal = 'followers'\n\n if (typeof record?.allowSubscriptions !== 'string') {\n return defaultVal\n }\n\n switch (record.allowSubscriptions) {\n case 'followers':\n case 'mutuals':\n case 'none':\n return record.allowSubscriptions\n default:\n return defaultVal\n }\n }\n\n const ageAssuranceStatus = () => {\n if (!ageAssuranceForDids.has(did)) {\n return undefined\n }\n\n const status = row?.ageAssuranceStatus ?? 'unknown'\n let access = row?.ageAssuranceAccess\n if (status === 'assured') {\n access = 'full'\n } else if (status === 'blocked') {\n access = 'none'\n } else {\n access = 'unknown'\n }\n\n return {\n lastInitiatedAt: row?.ageAssuranceLastInitiatedAt\n ? Timestamp.fromDate(new Date(row?.ageAssuranceLastInitiatedAt))\n : undefined,\n status,\n access,\n }\n }\n\n return {\n exists: !!row,\n handle: row?.handle ?? undefined,\n profile: profiles.records[i],\n takenDown: !!row?.takedownRef,\n takedownRef: row?.takedownRef || undefined,\n tombstonedAt: undefined, // in current implementation, tombstoned actors are deleted\n labeler: row?.isLabeler ?? false,\n allowIncomingChatsFrom:\n typeof chatDeclaration?.['allowIncoming'] === 'string'\n ? chatDeclaration['allowIncoming']\n : undefined,\n upstreamStatus: row?.upstreamStatus ?? '',\n createdAt: profiles.records[i].createdAt, // @NOTE profile creation date not trusted in production\n priorityNotifications: row?.priorityNotifs ?? false,\n trustedVerifier: row?.trustedVerifier ?? false,\n verifiedBy,\n statusRecord: status,\n tags: [],\n profileTags: [],\n allowActivitySubscriptionsFrom: activitySubscription(),\n ageAssuranceStatus: ageAssuranceStatus(),\n }\n })\n return { actors }\n },\n\n // @TODO handle req.lookupUnidirectional w/ networked handle resolution\n async getDidsByHandles(req) {\n const { handles } = req\n if (handles.length === 0) {\n return { dids: [] }\n }\n const res = await db.db\n .selectFrom('actor')\n .where('handle', 'in', handles)\n .selectAll()\n .execute()\n const byHandle = keyBy(res, 'handle')\n const dids = handles.map((handle) => byHandle.get(handle)?.did ?? '')\n return { dids }\n },\n\n async updateActorUpstreamStatus(req) {\n const { actorDid, upstreamStatus } = req\n await db.db\n .updateTable('actor')\n .set({ upstreamStatus })\n .where('did', '=', actorDid)\n .execute()\n },\n})\n"]}
|