@atproto/bsky 0.0.198 → 0.0.200
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 +26 -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/app/bsky/contact/dismissMatch.d.ts +4 -0
- package/dist/api/app/bsky/contact/dismissMatch.d.ts.map +1 -0
- package/dist/api/app/bsky/contact/dismissMatch.js +23 -0
- package/dist/api/app/bsky/contact/dismissMatch.js.map +1 -0
- package/dist/api/app/bsky/contact/getMatches.d.ts +4 -0
- package/dist/api/app/bsky/contact/getMatches.d.ts.map +1 -0
- package/dist/api/app/bsky/contact/getMatches.js +59 -0
- package/dist/api/app/bsky/contact/getMatches.js.map +1 -0
- package/dist/api/app/bsky/contact/getSyncStatus.d.ts +4 -0
- package/dist/api/app/bsky/contact/getSyncStatus.d.ts.map +1 -0
- package/dist/api/app/bsky/contact/getSyncStatus.js +32 -0
- package/dist/api/app/bsky/contact/getSyncStatus.js.map +1 -0
- package/dist/api/app/bsky/contact/importContacts.d.ts +4 -0
- package/dist/api/app/bsky/contact/importContacts.d.ts.map +1 -0
- package/dist/api/app/bsky/contact/importContacts.js +62 -0
- package/dist/api/app/bsky/contact/importContacts.js.map +1 -0
- package/dist/api/app/bsky/contact/removeData.d.ts +4 -0
- package/dist/api/app/bsky/contact/removeData.d.ts.map +1 -0
- package/dist/api/app/bsky/contact/removeData.js +22 -0
- package/dist/api/app/bsky/contact/removeData.js.map +1 -0
- package/dist/api/app/bsky/contact/startPhoneVerification.d.ts +4 -0
- package/dist/api/app/bsky/contact/startPhoneVerification.d.ts.map +1 -0
- package/dist/api/app/bsky/contact/startPhoneVerification.js +23 -0
- package/dist/api/app/bsky/contact/startPhoneVerification.js.map +1 -0
- package/dist/api/app/bsky/contact/util.d.ts +6 -0
- package/dist/api/app/bsky/contact/util.d.ts.map +1 -0
- package/dist/api/app/bsky/contact/util.js +10 -0
- package/dist/api/app/bsky/contact/util.js.map +1 -0
- package/dist/api/app/bsky/contact/verifyPhone.d.ts +4 -0
- package/dist/api/app/bsky/contact/verifyPhone.d.ts.map +1 -0
- package/dist/api/app/bsky/contact/verifyPhone.js +26 -0
- package/dist/api/app/bsky/contact/verifyPhone.js.map +1 -0
- package/dist/api/app/bsky/graph/getRelationships.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getRelationships.js +4 -0
- package/dist/api/app/bsky/graph/getRelationships.js.map +1 -1
- 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 +22 -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 +22 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +31 -2
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +3 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +3 -0
- package/dist/context.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/actor.js +1 -1
- package/dist/hydration/actor.js.map +1 -1
- package/dist/hydration/hydrator.js +1 -1
- package/dist/hydration/hydrator.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.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/lexicon/index.d.ts +19 -0
- package/dist/lexicon/index.d.ts.map +1 -1
- package/dist/lexicon/index.js +48 -1
- package/dist/lexicon/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +664 -0
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +354 -0
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/contact/defs.d.ts +24 -0
- package/dist/lexicon/types/app/bsky/contact/defs.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/defs.js +25 -0
- package/dist/lexicon/types/app/bsky/contact/defs.js.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/dismissMatch.d.ts +25 -0
- package/dist/lexicon/types/app/bsky/contact/dismissMatch.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/dismissMatch.js +7 -0
- package/dist/lexicon/types/app/bsky/contact/dismissMatch.js.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/getMatches.d.ts +25 -0
- package/dist/lexicon/types/app/bsky/contact/getMatches.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/getMatches.js +7 -0
- package/dist/lexicon/types/app/bsky/contact/getMatches.js.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/getSyncStatus.d.ts +21 -0
- package/dist/lexicon/types/app/bsky/contact/getSyncStatus.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/getSyncStatus.js +7 -0
- package/dist/lexicon/types/app/bsky/contact/getSyncStatus.js.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/importContacts.d.ts +30 -0
- package/dist/lexicon/types/app/bsky/contact/importContacts.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/importContacts.js +7 -0
- package/dist/lexicon/types/app/bsky/contact/importContacts.js.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/removeData.d.ts +23 -0
- package/dist/lexicon/types/app/bsky/contact/removeData.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/removeData.js +7 -0
- package/dist/lexicon/types/app/bsky/contact/removeData.js.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/startPhoneVerification.d.ts +25 -0
- package/dist/lexicon/types/app/bsky/contact/startPhoneVerification.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/startPhoneVerification.js +7 -0
- package/dist/lexicon/types/app/bsky/contact/startPhoneVerification.js.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/verifyPhone.d.ts +29 -0
- package/dist/lexicon/types/app/bsky/contact/verifyPhone.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/contact/verifyPhone.js +7 -0
- package/dist/lexicon/types/app/bsky/contact/verifyPhone.js.map +1 -0
- package/dist/lexicon/types/app/bsky/graph/defs.d.ts +8 -0
- package/dist/lexicon/types/app/bsky/graph/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/defs.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 +4 -0
- package/dist/proto/bsky_pb.d.ts.map +1 -1
- package/dist/proto/bsky_pb.js +10 -0
- package/dist/proto/bsky_pb.js.map +1 -1
- package/dist/proto/rolodex_connect.d.ts +83 -0
- package/dist/proto/rolodex_connect.d.ts.map +1 -0
- package/dist/proto/rolodex_connect.js +90 -0
- package/dist/proto/rolodex_connect.js.map +1 -0
- package/dist/proto/rolodex_pb.d.ts +363 -0
- package/dist/proto/rolodex_pb.d.ts.map +1 -0
- package/dist/proto/rolodex_pb.js +1032 -0
- package/dist/proto/rolodex_pb.js.map +1 -0
- package/dist/rolodex.d.ts +9 -0
- package/dist/rolodex.d.ts.map +1 -0
- package/dist/rolodex.js +25 -0
- package/dist/rolodex.js.map +1 -0
- 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 +16 -15
- package/proto/bsky.proto +1 -0
- package/proto/rolodex.proto +116 -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/app/bsky/contact/dismissMatch.ts +24 -0
- package/src/api/app/bsky/contact/getMatches.ts +111 -0
- package/src/api/app/bsky/contact/getSyncStatus.ts +35 -0
- package/src/api/app/bsky/contact/importContacts.ts +118 -0
- package/src/api/app/bsky/contact/removeData.ts +23 -0
- package/src/api/app/bsky/contact/startPhoneVerification.ts +24 -0
- package/src/api/app/bsky/contact/util.ts +13 -0
- package/src/api/app/bsky/contact/verifyPhone.ts +27 -0
- package/src/api/app/bsky/graph/getRelationships.ts +4 -0
- package/src/api/external.ts +2 -0
- package/src/api/index.ts +20 -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 +53 -2
- package/src/context.ts +6 -0
- 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/actor.ts +1 -1
- package/src/hydration/hydrator.ts +1 -1
- package/src/index.ts +13 -0
- package/src/kws.ts +81 -0
- package/src/lexicon/index.ts +101 -0
- package/src/lexicon/lexicons.ts +375 -0
- package/src/lexicon/types/app/bsky/contact/defs.ts +52 -0
- package/src/lexicon/types/app/bsky/contact/dismissMatch.ts +43 -0
- package/src/lexicon/types/app/bsky/contact/getMatches.ts +43 -0
- package/src/lexicon/types/app/bsky/contact/getSyncStatus.ts +39 -0
- package/src/lexicon/types/app/bsky/contact/importContacts.ts +49 -0
- package/src/lexicon/types/app/bsky/contact/removeData.ts +40 -0
- package/src/lexicon/types/app/bsky/contact/startPhoneVerification.ts +43 -0
- package/src/lexicon/types/app/bsky/contact/verifyPhone.ts +48 -0
- package/src/lexicon/types/app/bsky/graph/defs.ts +8 -0
- package/src/logger.ts +2 -0
- package/src/proto/bsky_pb.ts +6 -0
- package/src/proto/rolodex_connect.ts +89 -0
- package/src/proto/rolodex_pb.ts +746 -0
- package/src/rolodex.ts +42 -0
- package/src/stash.ts +3 -0
- package/tests/views/__snapshots__/profile.test.ts.snap +103 -0
- package/tests/views/age-assurance-v2.test.ts +745 -0
- package/tests/views/age-assurance.test.ts +2 -0
- package/tests/views/profile.test.ts +39 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/tsconfig.tests.tsbuildinfo +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rolodex_pb.js","sourceRoot":"","sources":["../../src/proto/rolodex_pb.ts"],"names":[],"mappings":"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","sourcesContent":["// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts,import_extension=\"\n// @generated from file rolodex.proto (package rolodex, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3, Timestamp } from \"@bufbuild/protobuf\";\n\n/**\n * Ping\n *\n * @generated from message rolodex.PingRequest\n */\nexport class PingRequest extends Message<PingRequest> {\n constructor(data?: PartialMessage<PingRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.PingRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PingRequest {\n return new PingRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PingRequest {\n return new PingRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PingRequest {\n return new PingRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: PingRequest | PlainMessage<PingRequest> | undefined, b: PingRequest | PlainMessage<PingRequest> | undefined): boolean {\n return proto3.util.equals(PingRequest, a, b);\n }\n}\n\n/**\n * @generated from message rolodex.PingResponse\n */\nexport class PingResponse extends Message<PingResponse> {\n constructor(data?: PartialMessage<PingResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.PingResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PingResponse {\n return new PingResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PingResponse {\n return new PingResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PingResponse {\n return new PingResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: PingResponse | PlainMessage<PingResponse> | undefined, b: PingResponse | PlainMessage<PingResponse> | undefined): boolean {\n return proto3.util.equals(PingResponse, a, b);\n }\n}\n\n/**\n * GetSyncStatus\n *\n * @generated from message rolodex.GetSyncStatusRequest\n */\nexport class GetSyncStatusRequest extends Message<GetSyncStatusRequest> {\n /**\n * @generated from field: string actor = 1;\n */\n actor = \"\";\n\n constructor(data?: PartialMessage<GetSyncStatusRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.GetSyncStatusRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"actor\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetSyncStatusRequest {\n return new GetSyncStatusRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetSyncStatusRequest {\n return new GetSyncStatusRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetSyncStatusRequest {\n return new GetSyncStatusRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSyncStatusRequest | PlainMessage<GetSyncStatusRequest> | undefined, b: GetSyncStatusRequest | PlainMessage<GetSyncStatusRequest> | undefined): boolean {\n return proto3.util.equals(GetSyncStatusRequest, a, b);\n }\n}\n\n/**\n * @generated from message rolodex.SyncStatus\n */\nexport class SyncStatus extends Message<SyncStatus> {\n /**\n * @generated from field: google.protobuf.Timestamp synced_at = 1;\n */\n syncedAt?: Timestamp;\n\n /**\n * @generated from field: int32 matches_count = 2;\n */\n matchesCount = 0;\n\n constructor(data?: PartialMessage<SyncStatus>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.SyncStatus\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"synced_at\", kind: \"message\", T: Timestamp },\n { no: 2, name: \"matches_count\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SyncStatus {\n return new SyncStatus().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SyncStatus {\n return new SyncStatus().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SyncStatus {\n return new SyncStatus().fromJsonString(jsonString, options);\n }\n\n static equals(a: SyncStatus | PlainMessage<SyncStatus> | undefined, b: SyncStatus | PlainMessage<SyncStatus> | undefined): boolean {\n return proto3.util.equals(SyncStatus, a, b);\n }\n}\n\n/**\n * @generated from message rolodex.GetSyncStatusResponse\n */\nexport class GetSyncStatusResponse extends Message<GetSyncStatusResponse> {\n /**\n * @generated from field: rolodex.SyncStatus status = 1;\n */\n status?: SyncStatus;\n\n constructor(data?: PartialMessage<GetSyncStatusResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.GetSyncStatusResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"status\", kind: \"message\", T: SyncStatus },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetSyncStatusResponse {\n return new GetSyncStatusResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetSyncStatusResponse {\n return new GetSyncStatusResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetSyncStatusResponse {\n return new GetSyncStatusResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSyncStatusResponse | PlainMessage<GetSyncStatusResponse> | undefined, b: GetSyncStatusResponse | PlainMessage<GetSyncStatusResponse> | undefined): boolean {\n return proto3.util.equals(GetSyncStatusResponse, a, b);\n }\n}\n\n/**\n * StartPhoneVerification\n *\n * @generated from message rolodex.StartPhoneVerificationRequest\n */\nexport class StartPhoneVerificationRequest extends Message<StartPhoneVerificationRequest> {\n /**\n * @generated from field: string actor = 1;\n */\n actor = \"\";\n\n /**\n * @generated from field: string phone = 2;\n */\n phone = \"\";\n\n constructor(data?: PartialMessage<StartPhoneVerificationRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.StartPhoneVerificationRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"actor\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"phone\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): StartPhoneVerificationRequest {\n return new StartPhoneVerificationRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): StartPhoneVerificationRequest {\n return new StartPhoneVerificationRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): StartPhoneVerificationRequest {\n return new StartPhoneVerificationRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: StartPhoneVerificationRequest | PlainMessage<StartPhoneVerificationRequest> | undefined, b: StartPhoneVerificationRequest | PlainMessage<StartPhoneVerificationRequest> | undefined): boolean {\n return proto3.util.equals(StartPhoneVerificationRequest, a, b);\n }\n}\n\n/**\n * @generated from message rolodex.StartPhoneVerificationResponse\n */\nexport class StartPhoneVerificationResponse extends Message<StartPhoneVerificationResponse> {\n constructor(data?: PartialMessage<StartPhoneVerificationResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.StartPhoneVerificationResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): StartPhoneVerificationResponse {\n return new StartPhoneVerificationResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): StartPhoneVerificationResponse {\n return new StartPhoneVerificationResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): StartPhoneVerificationResponse {\n return new StartPhoneVerificationResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: StartPhoneVerificationResponse | PlainMessage<StartPhoneVerificationResponse> | undefined, b: StartPhoneVerificationResponse | PlainMessage<StartPhoneVerificationResponse> | undefined): boolean {\n return proto3.util.equals(StartPhoneVerificationResponse, a, b);\n }\n}\n\n/**\n * VerifyPhone\n *\n * @generated from message rolodex.VerifyPhoneRequest\n */\nexport class VerifyPhoneRequest extends Message<VerifyPhoneRequest> {\n /**\n * @generated from field: string actor = 1;\n */\n actor = \"\";\n\n /**\n * @generated from field: string phone = 2;\n */\n phone = \"\";\n\n /**\n * @generated from field: string verification_code = 3;\n */\n verificationCode = \"\";\n\n constructor(data?: PartialMessage<VerifyPhoneRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.VerifyPhoneRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"actor\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"phone\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"verification_code\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VerifyPhoneRequest {\n return new VerifyPhoneRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VerifyPhoneRequest {\n return new VerifyPhoneRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VerifyPhoneRequest {\n return new VerifyPhoneRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: VerifyPhoneRequest | PlainMessage<VerifyPhoneRequest> | undefined, b: VerifyPhoneRequest | PlainMessage<VerifyPhoneRequest> | undefined): boolean {\n return proto3.util.equals(VerifyPhoneRequest, a, b);\n }\n}\n\n/**\n * @generated from message rolodex.VerifyPhoneResponse\n */\nexport class VerifyPhoneResponse extends Message<VerifyPhoneResponse> {\n /**\n * @generated from field: string token = 1;\n */\n token = \"\";\n\n constructor(data?: PartialMessage<VerifyPhoneResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.VerifyPhoneResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"token\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VerifyPhoneResponse {\n return new VerifyPhoneResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VerifyPhoneResponse {\n return new VerifyPhoneResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VerifyPhoneResponse {\n return new VerifyPhoneResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: VerifyPhoneResponse | PlainMessage<VerifyPhoneResponse> | undefined, b: VerifyPhoneResponse | PlainMessage<VerifyPhoneResponse> | undefined): boolean {\n return proto3.util.equals(VerifyPhoneResponse, a, b);\n }\n}\n\n/**\n * ImportContacts\n *\n * @generated from message rolodex.ImportContactsRequest\n */\nexport class ImportContactsRequest extends Message<ImportContactsRequest> {\n /**\n * @generated from field: string actor = 1;\n */\n actor = \"\";\n\n /**\n * @generated from field: string token = 2;\n */\n token = \"\";\n\n /**\n * @generated from field: repeated string contacts = 3;\n */\n contacts: string[] = [];\n\n constructor(data?: PartialMessage<ImportContactsRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.ImportContactsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"actor\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"token\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"contacts\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ImportContactsRequest {\n return new ImportContactsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ImportContactsRequest {\n return new ImportContactsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ImportContactsRequest {\n return new ImportContactsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ImportContactsRequest | PlainMessage<ImportContactsRequest> | undefined, b: ImportContactsRequest | PlainMessage<ImportContactsRequest> | undefined): boolean {\n return proto3.util.equals(ImportContactsRequest, a, b);\n }\n}\n\n/**\n * @generated from message rolodex.ImportContactsMatch\n */\nexport class ImportContactsMatch extends Message<ImportContactsMatch> {\n /**\n * To which index of the input contacts this contact corresponds.\n *\n * @generated from field: int32 input_index = 1;\n */\n inputIndex = 0;\n\n /**\n * @generated from field: string subject = 2;\n */\n subject = \"\";\n\n constructor(data?: PartialMessage<ImportContactsMatch>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.ImportContactsMatch\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"input_index\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 2, name: \"subject\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ImportContactsMatch {\n return new ImportContactsMatch().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ImportContactsMatch {\n return new ImportContactsMatch().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ImportContactsMatch {\n return new ImportContactsMatch().fromJsonString(jsonString, options);\n }\n\n static equals(a: ImportContactsMatch | PlainMessage<ImportContactsMatch> | undefined, b: ImportContactsMatch | PlainMessage<ImportContactsMatch> | undefined): boolean {\n return proto3.util.equals(ImportContactsMatch, a, b);\n }\n}\n\n/**\n * @generated from message rolodex.ImportContactsResponse\n */\nexport class ImportContactsResponse extends Message<ImportContactsResponse> {\n /**\n * @generated from field: repeated rolodex.ImportContactsMatch matches = 1;\n */\n matches: ImportContactsMatch[] = [];\n\n constructor(data?: PartialMessage<ImportContactsResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.ImportContactsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"matches\", kind: \"message\", T: ImportContactsMatch, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ImportContactsResponse {\n return new ImportContactsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ImportContactsResponse {\n return new ImportContactsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ImportContactsResponse {\n return new ImportContactsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ImportContactsResponse | PlainMessage<ImportContactsResponse> | undefined, b: ImportContactsResponse | PlainMessage<ImportContactsResponse> | undefined): boolean {\n return proto3.util.equals(ImportContactsResponse, a, b);\n }\n}\n\n/**\n * GetMatches\n *\n * @generated from message rolodex.GetMatchesRequest\n */\nexport class GetMatchesRequest extends Message<GetMatchesRequest> {\n /**\n * @generated from field: string actor = 1;\n */\n actor = \"\";\n\n /**\n * @generated from field: int32 limit = 2;\n */\n limit = 0;\n\n /**\n * @generated from field: string cursor = 3;\n */\n cursor = \"\";\n\n constructor(data?: PartialMessage<GetMatchesRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.GetMatchesRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"actor\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"limit\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 3, name: \"cursor\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetMatchesRequest {\n return new GetMatchesRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetMatchesRequest {\n return new GetMatchesRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetMatchesRequest {\n return new GetMatchesRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetMatchesRequest | PlainMessage<GetMatchesRequest> | undefined, b: GetMatchesRequest | PlainMessage<GetMatchesRequest> | undefined): boolean {\n return proto3.util.equals(GetMatchesRequest, a, b);\n }\n}\n\n/**\n * @generated from message rolodex.GetMatchesResponse\n */\nexport class GetMatchesResponse extends Message<GetMatchesResponse> {\n /**\n * @generated from field: repeated string subjects = 1;\n */\n subjects: string[] = [];\n\n /**\n * @generated from field: string cursor = 2;\n */\n cursor = \"\";\n\n constructor(data?: PartialMessage<GetMatchesResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.GetMatchesResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"subjects\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 2, name: \"cursor\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetMatchesResponse {\n return new GetMatchesResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetMatchesResponse {\n return new GetMatchesResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetMatchesResponse {\n return new GetMatchesResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetMatchesResponse | PlainMessage<GetMatchesResponse> | undefined, b: GetMatchesResponse | PlainMessage<GetMatchesResponse> | undefined): boolean {\n return proto3.util.equals(GetMatchesResponse, a, b);\n }\n}\n\n/**\n * DismissMatch\n *\n * @generated from message rolodex.DismissMatchRequest\n */\nexport class DismissMatchRequest extends Message<DismissMatchRequest> {\n /**\n * @generated from field: string actor = 1;\n */\n actor = \"\";\n\n /**\n * @generated from field: string subject = 2;\n */\n subject = \"\";\n\n constructor(data?: PartialMessage<DismissMatchRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.DismissMatchRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"actor\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"subject\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DismissMatchRequest {\n return new DismissMatchRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DismissMatchRequest {\n return new DismissMatchRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DismissMatchRequest {\n return new DismissMatchRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: DismissMatchRequest | PlainMessage<DismissMatchRequest> | undefined, b: DismissMatchRequest | PlainMessage<DismissMatchRequest> | undefined): boolean {\n return proto3.util.equals(DismissMatchRequest, a, b);\n }\n}\n\n/**\n * @generated from message rolodex.DismissMatchResponse\n */\nexport class DismissMatchResponse extends Message<DismissMatchResponse> {\n /**\n * @generated from field: int32 matches_count = 1;\n */\n matchesCount = 0;\n\n constructor(data?: PartialMessage<DismissMatchResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.DismissMatchResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"matches_count\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DismissMatchResponse {\n return new DismissMatchResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DismissMatchResponse {\n return new DismissMatchResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DismissMatchResponse {\n return new DismissMatchResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: DismissMatchResponse | PlainMessage<DismissMatchResponse> | undefined, b: DismissMatchResponse | PlainMessage<DismissMatchResponse> | undefined): boolean {\n return proto3.util.equals(DismissMatchResponse, a, b);\n }\n}\n\n/**\n * RemoveData\n *\n * @generated from message rolodex.RemoveDataRequest\n */\nexport class RemoveDataRequest extends Message<RemoveDataRequest> {\n /**\n * @generated from field: string actor = 1;\n */\n actor = \"\";\n\n constructor(data?: PartialMessage<RemoveDataRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.RemoveDataRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"actor\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RemoveDataRequest {\n return new RemoveDataRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RemoveDataRequest {\n return new RemoveDataRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RemoveDataRequest {\n return new RemoveDataRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: RemoveDataRequest | PlainMessage<RemoveDataRequest> | undefined, b: RemoveDataRequest | PlainMessage<RemoveDataRequest> | undefined): boolean {\n return proto3.util.equals(RemoveDataRequest, a, b);\n }\n}\n\n/**\n * @generated from message rolodex.RemoveDataResponse\n */\nexport class RemoveDataResponse extends Message<RemoveDataResponse> {\n /**\n * @generated from field: int32 contacts_count = 1;\n */\n contactsCount = 0;\n\n /**\n * @generated from field: int32 matches_count = 2;\n */\n matchesCount = 0;\n\n constructor(data?: PartialMessage<RemoveDataResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"rolodex.RemoveDataResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"contacts_count\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 2, name: \"matches_count\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RemoveDataResponse {\n return new RemoveDataResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RemoveDataResponse {\n return new RemoveDataResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RemoveDataResponse {\n return new RemoveDataResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: RemoveDataResponse | PlainMessage<RemoveDataResponse> | undefined, b: RemoveDataResponse | PlainMessage<RemoveDataResponse> | undefined): boolean {\n return proto3.util.equals(RemoveDataResponse, a, b);\n }\n}\n\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Code, ConnectError, Interceptor, PromiseClient } from '@connectrpc/connect';
|
|
2
|
+
import { ConnectTransportOptions } from '@connectrpc/connect-node';
|
|
3
|
+
import { RolodexService } from './proto/rolodex_connect';
|
|
4
|
+
export type RolodexClient = PromiseClient<typeof RolodexService>;
|
|
5
|
+
export declare const createRolodexClient: (opts: ConnectTransportOptions) => RolodexClient;
|
|
6
|
+
export { Code };
|
|
7
|
+
export declare const isRolodexError: (err: unknown, code?: Code) => err is ConnectError;
|
|
8
|
+
export declare const authWithApiKey: (apiKey: string) => Interceptor;
|
|
9
|
+
//# sourceMappingURL=rolodex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rolodex.d.ts","sourceRoot":"","sources":["../src/rolodex.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,aAAa,EAEd,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,uBAAuB,EAExB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAGxD,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,cAAc,CAAC,CAAA;AAEhE,eAAO,MAAM,mBAAmB,GAC9B,MAAM,uBAAuB,KAC5B,aAGF,CAAA;AAED,OAAO,EAAE,IAAI,EAAE,CAAA;AAEf,eAAO,MAAM,cAAc,GACzB,KAAK,OAAO,EACZ,OAAO,IAAI,KACV,GAAG,IAAI,YAKT,CAAA;AAED,eAAO,MAAM,cAAc,GACxB,QAAQ,MAAM,KAAG,WAKjB,CAAA"}
|
package/dist/rolodex.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.authWithApiKey = exports.isRolodexError = exports.Code = exports.createRolodexClient = void 0;
|
|
4
|
+
const connect_1 = require("@connectrpc/connect");
|
|
5
|
+
Object.defineProperty(exports, "Code", { enumerable: true, get: function () { return connect_1.Code; } });
|
|
6
|
+
const connect_node_1 = require("@connectrpc/connect-node");
|
|
7
|
+
const rolodex_connect_1 = require("./proto/rolodex_connect");
|
|
8
|
+
const createRolodexClient = (opts) => {
|
|
9
|
+
const transport = (0, connect_node_1.createConnectTransport)(opts);
|
|
10
|
+
return (0, connect_1.createPromiseClient)(rolodex_connect_1.RolodexService, transport);
|
|
11
|
+
};
|
|
12
|
+
exports.createRolodexClient = createRolodexClient;
|
|
13
|
+
const isRolodexError = (err, code) => {
|
|
14
|
+
if (err instanceof connect_1.ConnectError) {
|
|
15
|
+
return !code || err.code === code;
|
|
16
|
+
}
|
|
17
|
+
return false;
|
|
18
|
+
};
|
|
19
|
+
exports.isRolodexError = isRolodexError;
|
|
20
|
+
const authWithApiKey = (apiKey) => (next) => (req) => {
|
|
21
|
+
req.header.set('authorization', `Bearer ${apiKey}`);
|
|
22
|
+
return next(req);
|
|
23
|
+
};
|
|
24
|
+
exports.authWithApiKey = authWithApiKey;
|
|
25
|
+
//# sourceMappingURL=rolodex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rolodex.js","sourceRoot":"","sources":["../src/rolodex.ts"],"names":[],"mappings":";;;AAAA,iDAM4B;AAiBnB,qFAtBP,cAAI,OAsBO;AAhBb,2DAGiC;AACjC,6DAAwD;AAKjD,MAAM,mBAAmB,GAAG,CACjC,IAA6B,EACd,EAAE;IACjB,MAAM,SAAS,GAAG,IAAA,qCAAsB,EAAC,IAAI,CAAC,CAAA;IAC9C,OAAO,IAAA,6BAAmB,EAAC,gCAAc,EAAE,SAAS,CAAC,CAAA;AACvD,CAAC,CAAA;AALY,QAAA,mBAAmB,uBAK/B;AAIM,MAAM,cAAc,GAAG,CAC5B,GAAY,EACZ,IAAW,EACU,EAAE;IACvB,IAAI,GAAG,YAAY,sBAAY,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAA;IACnC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AARY,QAAA,cAAc,kBAQ1B;AAEM,MAAM,cAAc,GACzB,CAAC,MAAc,EAAe,EAAE,CAChC,CAAC,IAAI,EAAE,EAAE,CACT,CAAC,GAAG,EAAE,EAAE;IACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,MAAM,EAAE,CAAC,CAAA;IACnD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;AAClB,CAAC,CAAA;AANU,QAAA,cAAc,kBAMxB","sourcesContent":["import {\n Code,\n ConnectError,\n Interceptor,\n PromiseClient,\n createPromiseClient,\n} from '@connectrpc/connect'\nimport {\n ConnectTransportOptions,\n createConnectTransport,\n} from '@connectrpc/connect-node'\nimport { RolodexService } from './proto/rolodex_connect'\n\n// Rolodex is the service that does contact imports following https://docs.bsky.app/blog/contact-import-rfc.\nexport type RolodexClient = PromiseClient<typeof RolodexService>\n\nexport const createRolodexClient = (\n opts: ConnectTransportOptions,\n): RolodexClient => {\n const transport = createConnectTransport(opts)\n return createPromiseClient(RolodexService, transport)\n}\n\nexport { Code }\n\nexport const isRolodexError = (\n err: unknown,\n code?: Code,\n): err is ConnectError => {\n if (err instanceof ConnectError) {\n return !code || err.code === code\n }\n return false\n}\n\nexport const authWithApiKey =\n (apiKey: string): Interceptor =>\n (next) =>\n (req) => {\n req.header.set('authorization', `Bearer ${apiKey}`)\n return next(req)\n }\n"]}
|
package/dist/stash.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare const Namespaces: {
|
|
|
5
5
|
AppBskyNotificationDefsPreferences: string;
|
|
6
6
|
AppBskyNotificationDefsSubjectActivitySubscription: string;
|
|
7
7
|
AppBskyUnspeccedDefsAgeAssuranceEvent: string;
|
|
8
|
+
AppBskyAgeassuranceDefsEvent: string;
|
|
8
9
|
};
|
|
9
10
|
export type Namespace = (typeof Namespaces)[keyof typeof Namespaces];
|
|
10
11
|
export declare const createStashClient: (bsyncClient: BsyncClient) => StashClient;
|
package/dist/stash.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stash.d.ts","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAgB,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"stash.d.ts","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAgB,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAarC,eAAO,MAAM,UAAU;;;;;;CAWtB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAA;AAEpE,eAAO,MAAM,iBAAiB,GAAI,aAAa,WAAW,KAAG,WAE5D,CAAA;AAID,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAErD,MAAM,CAAC,KAAK,EAAE,WAAW;IAKzB,MAAM,CAAC,KAAK,EAAE,WAAW;IAKzB,MAAM,CAAC,KAAK,EAAE,WAAW;IAIzB,OAAO,CAAC,eAAe;YAOT,YAAY;CAiB3B;AASD,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,QAAQ,CAAA;CAClB,CAAA;AAED,KAAK,WAAW,GAAG,WAAW,CAAA;AAE9B,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA"}
|
package/dist/stash.js
CHANGED
|
@@ -10,6 +10,7 @@ exports.Namespaces = {
|
|
|
10
10
|
AppBskyNotificationDefsPreferences: 'app.bsky.notification.defs#preferences',
|
|
11
11
|
AppBskyNotificationDefsSubjectActivitySubscription: 'app.bsky.notification.defs#subjectActivitySubscription',
|
|
12
12
|
AppBskyUnspeccedDefsAgeAssuranceEvent: 'app.bsky.unspecced.defs#ageAssuranceEvent',
|
|
13
|
+
AppBskyAgeassuranceDefsEvent: 'app.bsky.ageassurance.defs#event',
|
|
13
14
|
};
|
|
14
15
|
const createStashClient = (bsyncClient) => {
|
|
15
16
|
return new StashClient(bsyncClient);
|
package/dist/stash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stash.js","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":";AAAA,yCAAyC;;;AAEzC,8CAAyD;AAEzD,iDAA6C;
|
|
1
|
+
{"version":3,"file":"stash.js","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":";AAAA,yCAAyC;;;AAEzC,8CAAyD;AAEzD,iDAA6C;AAQ7C,+CAAyC;AAI5B,QAAA,UAAU,GAAG;IACxB,2BAA2B,EACzB,iCAA8D;IAChE,kCAAkC,EAChC,wCAAwE;IAC1E,kDAAkD,EAChD,wDAAwG;IAC1G,qCAAqC,EACnC,2CAAiF;IACnF,4BAA4B,EAC1B,kCAA0E;CAC7E,CAAA;AAIM,MAAM,iBAAiB,GAAG,CAAC,WAAwB,EAAe,EAAE;IACzE,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAA;AACrC,CAAC,CAAA;AAFY,QAAA,iBAAiB,qBAE7B;AAED,8EAA8E;AAC9E,2FAA2F;AAC3F,MAAa,WAAW;IACtB,YAA6B,WAAwB;QAAzC;;;;mBAAiB,WAAW;WAAa;IAAG,CAAC;IAEzD,MAAM,CAAC,KAAkB;QACvB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QACpD,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,CAAC,KAAkB;QACvB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QACpD,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,CAAC,KAAkB;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAM,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;IAC3E,CAAC;IAEO,eAAe,CAAC,SAAoB,EAAE,OAAiB;QAC7D,MAAM,MAAM,GAAG,mBAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,MAAM,CAAC,KAAK,CAAA;QACpB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,KAAwB;QACjE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;QACnD,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;YAClC,QAAQ;YACR,SAAS;YACT,GAAG;YACH,MAAM;YACN,OAAO,EAAE,OAAO;gBACd,CAAC,CAAC,MAAM,CAAC,IAAI,CACT,IAAA,sBAAY,EAAC;oBACX,KAAK,EAAE,SAAS;oBAChB,GAAG,OAAO;iBACX,CAAC,CACH;gBACH,CAAC,CAAC,SAAS;SACd,CAAC,CAAA;IACJ,CAAC;CACF;AAzCD,kCAyCC","sourcesContent":["/* eslint-disable import/no-deprecated */\n\nimport { LexValue, stringifyLex } from '@atproto/lexicon'\nimport { BsyncClient } from './bsync'\nimport { lexicons } from './lexicon/lexicons'\nimport { Event as AgeAssuranceEventV2 } from './lexicon/types/app/bsky/ageassurance/defs'\nimport { Bookmark } from './lexicon/types/app/bsky/bookmark/defs'\nimport {\n Preferences,\n SubjectActivitySubscription,\n} from './lexicon/types/app/bsky/notification/defs'\nimport { AgeAssuranceEvent } from './lexicon/types/app/bsky/unspecced/defs'\nimport { Method } from './proto/bsync_pb'\n\ntype PickNSID<T extends { $type?: string }> = Exclude<T['$type'], undefined>\n\nexport const Namespaces = {\n AppBskyBookmarkDefsBookmark:\n 'app.bsky.bookmark.defs#bookmark' satisfies PickNSID<Bookmark>,\n AppBskyNotificationDefsPreferences:\n 'app.bsky.notification.defs#preferences' satisfies PickNSID<Preferences>,\n AppBskyNotificationDefsSubjectActivitySubscription:\n 'app.bsky.notification.defs#subjectActivitySubscription' satisfies PickNSID<SubjectActivitySubscription>,\n AppBskyUnspeccedDefsAgeAssuranceEvent:\n 'app.bsky.unspecced.defs#ageAssuranceEvent' satisfies PickNSID<AgeAssuranceEvent>,\n AppBskyAgeassuranceDefsEvent:\n 'app.bsky.ageassurance.defs#event' satisfies PickNSID<AgeAssuranceEventV2>,\n}\n\nexport type Namespace = (typeof Namespaces)[keyof typeof Namespaces]\n\nexport const createStashClient = (bsyncClient: BsyncClient): StashClient => {\n return new StashClient(bsyncClient)\n}\n\n// An abstraction over the BsyncClient, that uses the bsync `PutOperation` RPC\n// to store private data, which can be indexed by the dataplane and queried by the appview.\nexport class StashClient {\n constructor(private readonly bsyncClient: BsyncClient) {}\n\n create(input: CreateInput) {\n this.validateLexicon(input.namespace, input.payload)\n return this.putOperation(Method.CREATE, input)\n }\n\n update(input: UpdateInput) {\n this.validateLexicon(input.namespace, input.payload)\n return this.putOperation(Method.UPDATE, input)\n }\n\n delete(input: DeleteInput) {\n return this.putOperation(Method.DELETE, { ...input, payload: undefined })\n }\n\n private validateLexicon(namespace: Namespace, payload: LexValue) {\n const result = lexicons.validate(namespace, payload)\n if (!result.success) {\n throw result.error\n }\n }\n\n private async putOperation(method: Method, input: PutOperationInput) {\n const { actorDid, namespace, key, payload } = input\n await this.bsyncClient.putOperation({\n actorDid,\n namespace,\n key,\n method,\n payload: payload\n ? Buffer.from(\n stringifyLex({\n $type: namespace,\n ...payload,\n }),\n )\n : undefined,\n })\n }\n}\n\ntype PutOperationInput = {\n actorDid: string\n namespace: Namespace\n key: string\n payload: LexValue | undefined\n}\n\ntype CreateInput = {\n actorDid: string\n namespace: Namespace\n key: string\n payload: LexValue\n}\n\ntype UpdateInput = CreateInput\n\ntype DeleteInput = {\n actorDid: string\n namespace: Namespace\n key: string\n}\n"]}
|
package/dist/util/uris.d.ts
CHANGED
|
@@ -3,12 +3,12 @@ import { Main as StrongRef } from '../lexicon/types/com/atproto/repo/strongRef';
|
|
|
3
3
|
* Convert a post URI to a threadgate URI. If the URI is not a valid
|
|
4
4
|
* post URI, return URI unchanged. Threadgate lookups will then fail.
|
|
5
5
|
*/
|
|
6
|
-
export declare function postUriToThreadgateUri(postUri: string):
|
|
6
|
+
export declare function postUriToThreadgateUri(postUri: string): import("@atproto/syntax").AtUriString;
|
|
7
7
|
/**
|
|
8
8
|
* Convert a post URI to a postgate URI. If the URI is not a valid
|
|
9
9
|
* post URI, return URI unchanged. Postgate lookups will then fail.
|
|
10
10
|
*/
|
|
11
|
-
export declare function postUriToPostgateUri(postUri: string):
|
|
11
|
+
export declare function postUriToPostgateUri(postUri: string): import("@atproto/syntax").AtUriString;
|
|
12
12
|
export declare function uriToDid(uri: string): string;
|
|
13
13
|
export declare function safePinnedPost(value: unknown): StrongRef | undefined;
|
|
14
14
|
//# sourceMappingURL=uris.d.ts.map
|
package/dist/util/uris.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uris.d.ts","sourceRoot":"","sources":["../../src/util/uris.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,IAAI,IAAI,SAAS,EAElB,MAAM,6CAA6C,CAAA;AAEpD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"uris.d.ts","sourceRoot":"","sources":["../../src/util/uris.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,IAAI,IAAI,SAAS,EAElB,MAAM,6CAA6C,CAAA;AAEpD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,yCAMrD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,yCAMnD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,UAEnC;AAGD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,yBAS5C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/bsky",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.200",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Reference implementation of app.bsky App View (Bluesky API)",
|
|
6
6
|
"keywords": [
|
|
@@ -51,24 +51,25 @@
|
|
|
51
51
|
"uint8arrays": "3.0.0",
|
|
52
52
|
"undici": "^6.19.8",
|
|
53
53
|
"zod": "3.23.8",
|
|
54
|
-
"@atproto-labs/fetch-node": "0.2.0",
|
|
55
54
|
"@atproto-labs/xrpc-utils": "0.0.24",
|
|
56
|
-
"@atproto/
|
|
57
|
-
"@atproto/
|
|
58
|
-
"@atproto/
|
|
59
|
-
"@atproto/
|
|
55
|
+
"@atproto-labs/fetch-node": "0.2.0",
|
|
56
|
+
"@atproto/api": "^0.18.5",
|
|
57
|
+
"@atproto/common": "^0.5.3",
|
|
58
|
+
"@atproto/crypto": "^0.4.5",
|
|
59
|
+
"@atproto/did": "^0.2.3",
|
|
60
60
|
"@atproto/identity": "^0.4.10",
|
|
61
|
-
"@atproto/lexicon": "^0.
|
|
62
|
-
"@atproto/repo": "^0.8.
|
|
63
|
-
"@atproto/sync": "^0.1.
|
|
64
|
-
"@atproto/
|
|
65
|
-
"@atproto/
|
|
61
|
+
"@atproto/lexicon": "^0.6.0",
|
|
62
|
+
"@atproto/repo": "^0.8.12",
|
|
63
|
+
"@atproto/sync": "^0.1.39",
|
|
64
|
+
"@atproto/xrpc-server": "^0.10.3",
|
|
65
|
+
"@atproto/syntax": "^0.4.2"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@bufbuild/buf": "^1.28.1",
|
|
69
69
|
"@bufbuild/protoc-gen-es": "^1.5.0",
|
|
70
70
|
"@connectrpc/protoc-gen-connect-es": "^1.1.4",
|
|
71
71
|
"@did-plc/server": "^0.0.1",
|
|
72
|
+
"@jest/globals": "28",
|
|
72
73
|
"@types/cors": "^2.8.12",
|
|
73
74
|
"@types/express": "^4.17.13",
|
|
74
75
|
"@types/express-serve-static-core": "^4.17.36",
|
|
@@ -77,10 +78,10 @@
|
|
|
77
78
|
"jest": "^28.1.2",
|
|
78
79
|
"ts-node": "^10.8.2",
|
|
79
80
|
"typescript": "^5.6.3",
|
|
80
|
-
"@atproto/api": "^0.18.
|
|
81
|
-
"@atproto/lex-cli": "^0.9.
|
|
82
|
-
"@atproto/pds": "^0.4.
|
|
83
|
-
"@atproto/xrpc": "^0.7.
|
|
81
|
+
"@atproto/api": "^0.18.5",
|
|
82
|
+
"@atproto/lex-cli": "^0.9.8",
|
|
83
|
+
"@atproto/pds": "^0.4.198",
|
|
84
|
+
"@atproto/xrpc": "^0.7.7"
|
|
84
85
|
},
|
|
85
86
|
"scripts": {
|
|
86
87
|
"codegen": "lex gen-server --yes ./src/lexicon ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/* ../../lexicons/chat/bsky/*/*",
|
package/proto/bsky.proto
CHANGED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package rolodex;
|
|
4
|
+
option go_package = "./;rolodex";
|
|
5
|
+
|
|
6
|
+
import "google/protobuf/timestamp.proto";
|
|
7
|
+
|
|
8
|
+
//
|
|
9
|
+
// Messages
|
|
10
|
+
//
|
|
11
|
+
|
|
12
|
+
// Ping
|
|
13
|
+
message PingRequest {}
|
|
14
|
+
|
|
15
|
+
message PingResponse {}
|
|
16
|
+
|
|
17
|
+
// GetSyncStatus
|
|
18
|
+
message GetSyncStatusRequest {
|
|
19
|
+
string actor = 1;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
message SyncStatus {
|
|
23
|
+
google.protobuf.Timestamp synced_at = 1;
|
|
24
|
+
int32 matches_count = 2;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
message GetSyncStatusResponse {
|
|
28
|
+
SyncStatus status = 1;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// StartPhoneVerification
|
|
32
|
+
message StartPhoneVerificationRequest {
|
|
33
|
+
string actor = 1;
|
|
34
|
+
string phone = 2;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
message StartPhoneVerificationResponse {}
|
|
38
|
+
|
|
39
|
+
// VerifyPhone
|
|
40
|
+
message VerifyPhoneRequest {
|
|
41
|
+
string actor = 1;
|
|
42
|
+
string phone = 2;
|
|
43
|
+
string verification_code = 3;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
message VerifyPhoneResponse {
|
|
47
|
+
string token = 1;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// ImportContacts
|
|
51
|
+
message ImportContactsRequest {
|
|
52
|
+
string actor = 1;
|
|
53
|
+
string token = 2;
|
|
54
|
+
repeated string contacts = 3;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
message ImportContactsMatch {
|
|
58
|
+
// To which index of the input contacts this contact corresponds.
|
|
59
|
+
int32 input_index = 1;
|
|
60
|
+
string subject = 2;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
message ImportContactsResponse {
|
|
64
|
+
repeated ImportContactsMatch matches = 1;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// GetMatches
|
|
68
|
+
message GetMatchesRequest {
|
|
69
|
+
string actor = 1;
|
|
70
|
+
int32 limit = 2;
|
|
71
|
+
string cursor = 3;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
message GetMatchesResponse {
|
|
75
|
+
repeated string subjects = 1;
|
|
76
|
+
string cursor = 2;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// DismissMatch
|
|
80
|
+
message DismissMatchRequest {
|
|
81
|
+
string actor = 1;
|
|
82
|
+
string subject = 2;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
message DismissMatchResponse {
|
|
86
|
+
int32 matches_count = 1;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// RemoveData
|
|
90
|
+
message RemoveDataRequest {
|
|
91
|
+
string actor = 1;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
message RemoveDataResponse {
|
|
95
|
+
int32 contacts_count = 1;
|
|
96
|
+
int32 matches_count = 2;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
//
|
|
100
|
+
// Service
|
|
101
|
+
//
|
|
102
|
+
|
|
103
|
+
service RolodexService {
|
|
104
|
+
rpc Ping(PingRequest) returns (PingResponse);
|
|
105
|
+
|
|
106
|
+
rpc GetSyncStatus(GetSyncStatusRequest) returns (GetSyncStatusResponse);
|
|
107
|
+
|
|
108
|
+
rpc StartPhoneVerification(StartPhoneVerificationRequest) returns (StartPhoneVerificationResponse);
|
|
109
|
+
rpc VerifyPhone(VerifyPhoneRequest) returns (VerifyPhoneResponse);
|
|
110
|
+
rpc ImportContacts(ImportContactsRequest) returns (ImportContactsResponse);
|
|
111
|
+
|
|
112
|
+
rpc GetMatches(GetMatchesRequest) returns (GetMatchesResponse);
|
|
113
|
+
rpc DismissMatch(DismissMatchRequest) returns (DismissMatchResponse);
|
|
114
|
+
|
|
115
|
+
rpc RemoveData(RemoveDataRequest) returns (RemoveDataResponse);
|
|
116
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AppBskyAgeassuranceDefs,
|
|
3
|
+
ageAssuranceRuleIDs as ids,
|
|
4
|
+
} from '@atproto/api'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Age assurance configuration defining rules for various regions.
|
|
8
|
+
*
|
|
9
|
+
* NOTE: These rules are matched in order, and the first matching rule
|
|
10
|
+
* determines the access level granted.
|
|
11
|
+
*
|
|
12
|
+
* NOTE: all regions MUST have a default rule as the last rule.
|
|
13
|
+
*/
|
|
14
|
+
export const AGE_ASSURANCE_CONFIG: AppBskyAgeassuranceDefs.Config = {
|
|
15
|
+
regions: [
|
|
16
|
+
{
|
|
17
|
+
countryCode: 'GB',
|
|
18
|
+
regionCode: undefined,
|
|
19
|
+
rules: [
|
|
20
|
+
{
|
|
21
|
+
$type: ids.IfAssuredOverAge,
|
|
22
|
+
age: 18,
|
|
23
|
+
access: 'full',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
$type: ids.IfDeclaredOverAge,
|
|
27
|
+
age: 13,
|
|
28
|
+
access: 'safe',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
$type: ids.Default,
|
|
32
|
+
access: 'none',
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
countryCode: 'AU',
|
|
38
|
+
regionCode: undefined,
|
|
39
|
+
rules: [
|
|
40
|
+
{
|
|
41
|
+
$type: ids.IfAccountNewerThan,
|
|
42
|
+
date: '2025-12-10T00:00:00Z',
|
|
43
|
+
access: 'none',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
$type: ids.IfAssuredOverAge,
|
|
47
|
+
age: 18,
|
|
48
|
+
access: 'full',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
$type: ids.IfAssuredOverAge,
|
|
52
|
+
age: 16,
|
|
53
|
+
access: 'safe',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
$type: ids.IfDeclaredOverAge,
|
|
57
|
+
age: 16,
|
|
58
|
+
access: 'safe',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
$type: ids.Default,
|
|
62
|
+
access: 'none',
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
countryCode: 'US',
|
|
68
|
+
regionCode: 'SD',
|
|
69
|
+
rules: [
|
|
70
|
+
{
|
|
71
|
+
$type: ids.IfAssuredOverAge,
|
|
72
|
+
age: 18,
|
|
73
|
+
access: 'full',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
$type: ids.IfDeclaredOverAge,
|
|
77
|
+
age: 13,
|
|
78
|
+
access: 'safe',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
$type: ids.Default,
|
|
82
|
+
access: 'none',
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
countryCode: 'US',
|
|
88
|
+
regionCode: 'WY',
|
|
89
|
+
rules: [
|
|
90
|
+
{
|
|
91
|
+
$type: ids.IfAssuredOverAge,
|
|
92
|
+
age: 18,
|
|
93
|
+
access: 'full',
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
$type: ids.IfDeclaredOverAge,
|
|
97
|
+
age: 13,
|
|
98
|
+
access: 'safe',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
$type: ids.Default,
|
|
102
|
+
access: 'none',
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
countryCode: 'US',
|
|
108
|
+
regionCode: 'OH',
|
|
109
|
+
rules: [
|
|
110
|
+
{
|
|
111
|
+
$type: ids.IfAssuredOverAge,
|
|
112
|
+
age: 18,
|
|
113
|
+
access: 'full',
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
$type: ids.IfDeclaredOverAge,
|
|
117
|
+
age: 13,
|
|
118
|
+
access: 'safe',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
$type: ids.Default,
|
|
122
|
+
access: 'none',
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
countryCode: 'US',
|
|
128
|
+
regionCode: 'MS',
|
|
129
|
+
rules: [
|
|
130
|
+
{
|
|
131
|
+
$type: ids.IfAssuredOverAge,
|
|
132
|
+
age: 18,
|
|
133
|
+
access: 'full',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
$type: ids.Default,
|
|
137
|
+
access: 'none',
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
},
|
|
141
|
+
],
|
|
142
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Router, raw } from 'express'
|
|
2
|
+
import { AppContext } from '../../context'
|
|
3
|
+
import { webhookAuth } from '../kws/webhook'
|
|
4
|
+
import { handler as ageVerifiedRedirect } from './redirects/kws-age-verified'
|
|
5
|
+
import { AppContextWithAA } from './types'
|
|
6
|
+
import { handler as ageVerifiedWebhook } from './webhooks/kws-age-verified'
|
|
7
|
+
|
|
8
|
+
export const createRouter = (ctx: AppContext): Router => {
|
|
9
|
+
assertAppContextWithAgeAssuranceClient(ctx)
|
|
10
|
+
|
|
11
|
+
const router = Router()
|
|
12
|
+
router.use(raw({ type: 'application/json' }))
|
|
13
|
+
router.post(
|
|
14
|
+
'/age-assurance/webhooks/kws-age-verified',
|
|
15
|
+
webhookAuth({
|
|
16
|
+
secret: ctx.cfg.kws.ageVerifiedWebhookSecret,
|
|
17
|
+
}),
|
|
18
|
+
ageVerifiedWebhook(ctx),
|
|
19
|
+
)
|
|
20
|
+
router.get(
|
|
21
|
+
'/age-assurance/redirects/kws-age-verified',
|
|
22
|
+
ageVerifiedRedirect(ctx),
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
return router
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const assertAppContextWithAgeAssuranceClient: (
|
|
29
|
+
ctx: AppContext,
|
|
30
|
+
) => asserts ctx is AppContextWithAA = (ctx: AppContext) => {
|
|
31
|
+
if (!ctx.kwsClient) {
|
|
32
|
+
throw new Error('Tried to set up KWS router without kwsClient configured.')
|
|
33
|
+
}
|
|
34
|
+
}
|