@atproto/ozone 0.1.162 → 0.1.163
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 +11 -0
- package/dist/lexicon/lexicons.d.ts +20 -0
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +10 -0
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/draft/defs.d.ts +4 -0
- package/dist/lexicon/types/app/bsky/draft/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/draft/defs.js.map +1 -1
- package/dist/verification/issuer.d.ts.map +1 -1
- package/dist/verification/issuer.js +9 -0
- package/dist/verification/issuer.js.map +1 -1
- package/package.json +6 -6
- package/src/lexicon/lexicons.ts +12 -0
- package/src/lexicon/types/app/bsky/draft/defs.ts +4 -0
- package/src/verification/issuer.ts +11 -0
- package/tests/verification.test.ts +20 -0
|
@@ -19,6 +19,10 @@ export declare function validateDraftWithId<V>(v: V): ValidationResult<DraftWith
|
|
|
19
19
|
/** A draft containing an array of draft posts. */
|
|
20
20
|
export interface Draft {
|
|
21
21
|
$type?: 'app.bsky.draft.defs#draft';
|
|
22
|
+
/** UUIDv4 identifier of the device that created this draft. */
|
|
23
|
+
deviceId?: string;
|
|
24
|
+
/** The device and/or platform on which the draft was created. */
|
|
25
|
+
deviceName?: string;
|
|
22
26
|
/** Array of draft posts that compose this draft. */
|
|
23
27
|
posts: DraftPost[];
|
|
24
28
|
/** Indicates human language of posts primary text content. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/draft/defs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/draft/defs.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,KAAK,gBAAgB,EAAW,MAAM,kBAAkB,CAAA;AAGjE,OAAO,EACL,KAAK,MAAM,EAGZ,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,KAAK,mBAAmB,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,KAAK,qBAAqB,MAAM,uBAAuB,CAAA;AACnE,OAAO,KAAK,KAAK,mBAAmB,MAAM,oCAAoC,CAAA;AAC9E,OAAO,KAAK,KAAK,uBAAuB,MAAM,wCAAwC,CAAA;AAMtF,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,iCAAiC,CAAA;IACzC,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,KAAK,CAAA;CACb;AAID,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,yFAEpC;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,qCAE1C;AAED,kDAAkD;AAClD,MAAM,WAAW,KAAK;IACpB,KAAK,CAAC,EAAE,2BAA2B,CAAA;IACnC,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oDAAoD;IACpD,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,oFAAoF;IACpF,sBAAsB,CAAC,EAAE,CACrB,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,GACvC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CACpB,EAAE,CAAA;IACH,iFAAiF;IACjF,eAAe,CAAC,EAAE,CACd,MAAM,CAAC,qBAAqB,CAAC,WAAW,CAAC,GACzC,MAAM,CAAC,qBAAqB,CAAC,YAAY,CAAC,GAC1C,MAAM,CAAC,qBAAqB,CAAC,aAAa,CAAC,GAC3C,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,GACtC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CACpB,EAAE,CAAA;CACJ;AAID,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mFAE9B;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,+BAEpC;AAED,6CAA6C;AAC7C,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,+BAA+B,CAAA;IACvC,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACnE,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;IAC/B,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;IAC/B,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACrC,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAClC;AAID,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,uFAElC;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mCAExC;AAED,4CAA4C;AAC5C,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,+BAA+B,CAAA;IACvC,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,KAAK,CAAA;IACZ,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAA;CAClB;AAID,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,uFAElC;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mCAExC;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,wCAAwC,CAAA;IAChD,iGAAiG;IACjG,IAAI,EAAE,MAAM,CAAA;CACb;AAID,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gGAE3C;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,4CAEjD;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,uCAAuC,CAAA;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAID,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,+FAE1C;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,2CAEhD;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,qCAAqC,CAAA;IAC7C,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAID,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,6FAExC;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,yCAE9C;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,qCAAqC,CAAA;IAC7C,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAA;CAC/B;AAID,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,6FAExC;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,yCAE9C;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,wCAAwC,CAAA;IAChD,GAAG,EAAE,MAAM,CAAA;CACZ;AAID,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gGAE3C;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,4CAEjD;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,sCAAsC,CAAA;IAC9C,MAAM,EAAE,uBAAuB,CAAC,IAAI,CAAA;CACrC;AAID,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,8FAEzC;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,0CAE/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/draft/defs.ts"],"names":[],"mappings":";;AA8BA,sCAEC;AAED,kDAEC;
|
|
1
|
+
{"version":3,"file":"defs.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/draft/defs.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\nimport type * as AppBskyFeedPostgate from '../feed/postgate.js'\nimport type * as AppBskyFeedThreadgate from '../feed/threadgate.js'\nimport type * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs.js'\nimport type * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef.js'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'app.bsky.draft.defs'\n\n/** A draft with an identifier, used to store drafts in private storage (stash). */\nexport interface DraftWithId {\n $type?: 'app.bsky.draft.defs#draftWithId'\n /** A TID to be used as a draft identifier. */\n id: string\n draft: Draft\n}\n\nconst hashDraftWithId = 'draftWithId'\n\nexport function isDraftWithId<V>(v: V) {\n return is$typed(v, id, hashDraftWithId)\n}\n\nexport function validateDraftWithId<V>(v: V) {\n return validate<DraftWithId & V>(v, id, hashDraftWithId)\n}\n\n/** A draft containing an array of draft posts. */\nexport interface Draft {\n $type?: 'app.bsky.draft.defs#draft'\n /** UUIDv4 identifier of the device that created this draft. */\n deviceId?: string\n /** The device and/or platform on which the draft was created. */\n deviceName?: string\n /** Array of draft posts that compose this draft. */\n posts: DraftPost[]\n /** Indicates human language of posts primary text content. */\n langs?: string[]\n /** Embedding rules for the postgates to be created when this draft is published. */\n postgateEmbeddingRules?: (\n | $Typed<AppBskyFeedPostgate.DisableRule>\n | { $type: string }\n )[]\n /** Allow-rules for the threadgate to be created when this draft is published. */\n threadgateAllow?: (\n | $Typed<AppBskyFeedThreadgate.MentionRule>\n | $Typed<AppBskyFeedThreadgate.FollowerRule>\n | $Typed<AppBskyFeedThreadgate.FollowingRule>\n | $Typed<AppBskyFeedThreadgate.ListRule>\n | { $type: string }\n )[]\n}\n\nconst hashDraft = 'draft'\n\nexport function isDraft<V>(v: V) {\n return is$typed(v, id, hashDraft)\n}\n\nexport function validateDraft<V>(v: V) {\n return validate<Draft & V>(v, id, hashDraft)\n}\n\n/** One of the posts that compose a draft. */\nexport interface DraftPost {\n $type?: 'app.bsky.draft.defs#draftPost'\n /** The primary post content. */\n text: string\n labels?: $Typed<ComAtprotoLabelDefs.SelfLabels> | { $type: string }\n embedImages?: DraftEmbedImage[]\n embedVideos?: DraftEmbedVideo[]\n embedExternals?: DraftEmbedExternal[]\n embedRecords?: DraftEmbedRecord[]\n}\n\nconst hashDraftPost = 'draftPost'\n\nexport function isDraftPost<V>(v: V) {\n return is$typed(v, id, hashDraftPost)\n}\n\nexport function validateDraftPost<V>(v: V) {\n return validate<DraftPost & V>(v, id, hashDraftPost)\n}\n\n/** View to present drafts data to users. */\nexport interface DraftView {\n $type?: 'app.bsky.draft.defs#draftView'\n /** A TID to be used as a draft identifier. */\n id: string\n draft: Draft\n /** The time the draft was created. */\n createdAt: string\n /** The time the draft was last updated. */\n updatedAt: string\n}\n\nconst hashDraftView = 'draftView'\n\nexport function isDraftView<V>(v: V) {\n return is$typed(v, id, hashDraftView)\n}\n\nexport function validateDraftView<V>(v: V) {\n return validate<DraftView & V>(v, id, hashDraftView)\n}\n\nexport interface DraftEmbedLocalRef {\n $type?: 'app.bsky.draft.defs#draftEmbedLocalRef'\n /** Local, on-device ref to file to be embedded. Embeds are currently device-bound for drafts. */\n path: string\n}\n\nconst hashDraftEmbedLocalRef = 'draftEmbedLocalRef'\n\nexport function isDraftEmbedLocalRef<V>(v: V) {\n return is$typed(v, id, hashDraftEmbedLocalRef)\n}\n\nexport function validateDraftEmbedLocalRef<V>(v: V) {\n return validate<DraftEmbedLocalRef & V>(v, id, hashDraftEmbedLocalRef)\n}\n\nexport interface DraftEmbedCaption {\n $type?: 'app.bsky.draft.defs#draftEmbedCaption'\n lang: string\n content: string\n}\n\nconst hashDraftEmbedCaption = 'draftEmbedCaption'\n\nexport function isDraftEmbedCaption<V>(v: V) {\n return is$typed(v, id, hashDraftEmbedCaption)\n}\n\nexport function validateDraftEmbedCaption<V>(v: V) {\n return validate<DraftEmbedCaption & V>(v, id, hashDraftEmbedCaption)\n}\n\nexport interface DraftEmbedImage {\n $type?: 'app.bsky.draft.defs#draftEmbedImage'\n localRef: DraftEmbedLocalRef\n alt?: string\n}\n\nconst hashDraftEmbedImage = 'draftEmbedImage'\n\nexport function isDraftEmbedImage<V>(v: V) {\n return is$typed(v, id, hashDraftEmbedImage)\n}\n\nexport function validateDraftEmbedImage<V>(v: V) {\n return validate<DraftEmbedImage & V>(v, id, hashDraftEmbedImage)\n}\n\nexport interface DraftEmbedVideo {\n $type?: 'app.bsky.draft.defs#draftEmbedVideo'\n localRef: DraftEmbedLocalRef\n alt?: string\n captions?: DraftEmbedCaption[]\n}\n\nconst hashDraftEmbedVideo = 'draftEmbedVideo'\n\nexport function isDraftEmbedVideo<V>(v: V) {\n return is$typed(v, id, hashDraftEmbedVideo)\n}\n\nexport function validateDraftEmbedVideo<V>(v: V) {\n return validate<DraftEmbedVideo & V>(v, id, hashDraftEmbedVideo)\n}\n\nexport interface DraftEmbedExternal {\n $type?: 'app.bsky.draft.defs#draftEmbedExternal'\n uri: string\n}\n\nconst hashDraftEmbedExternal = 'draftEmbedExternal'\n\nexport function isDraftEmbedExternal<V>(v: V) {\n return is$typed(v, id, hashDraftEmbedExternal)\n}\n\nexport function validateDraftEmbedExternal<V>(v: V) {\n return validate<DraftEmbedExternal & V>(v, id, hashDraftEmbedExternal)\n}\n\nexport interface DraftEmbedRecord {\n $type?: 'app.bsky.draft.defs#draftEmbedRecord'\n record: ComAtprotoRepoStrongRef.Main\n}\n\nconst hashDraftEmbedRecord = 'draftEmbedRecord'\n\nexport function isDraftEmbedRecord<V>(v: V) {\n return is$typed(v, id, hashDraftEmbedRecord)\n}\n\nexport function validateDraftEmbedRecord<V>(v: V) {\n return validate<DraftEmbedRecord & V>(v, id, hashDraftEmbedRecord)\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issuer.d.ts","sourceRoot":"","sources":["../../src/verification/issuer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,KAAK,EAA4B,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,CACtC,cAAc,EAAE,cAAc,KAC3B,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"issuer.d.ts","sourceRoot":"","sources":["../../src/verification/issuer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,KAAK,EAA4B,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,CACtC,cAAc,EAAE,cAAc,KAC3B,kBAAkB,CAAA;AAIvB,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,cAAc;IAFlC,OAAO,CAAC,OAAO,CAA0D;IACzE,OAAO,CAAC,KAAK,CAA0B;gBACnB,cAAc,EAAE,cAAc;IAElD,MAAM,CAAC,OAAO,KACJ,gBAAgB,cAAc;IAIlC,QAAQ;IAuBR,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE;;;mBAGpC,wDAAwD;qBACtD,MAAM;mBACR,MAAM;;;IAqDX,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;;;iBAED,MAAM;mBAAS,MAAM;;;CAkC9D"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.VerificationIssuer = void 0;
|
|
4
4
|
const api_1 = require("@atproto/api");
|
|
5
|
+
const HANDLE_INVALID = 'handle.invalid';
|
|
5
6
|
class VerificationIssuer {
|
|
6
7
|
constructor(verifierConfig) {
|
|
7
8
|
Object.defineProperty(this, "verifierConfig", {
|
|
@@ -53,6 +54,14 @@ class VerificationIssuer {
|
|
|
53
54
|
const now = new Date().toISOString();
|
|
54
55
|
const agent = await this.getAgent();
|
|
55
56
|
await Promise.allSettled(verifications.map(async ({ displayName, handle, subject, createdAt }) => {
|
|
57
|
+
if (handle.toLowerCase() === HANDLE_INVALID) {
|
|
58
|
+
failedVerifications.push({
|
|
59
|
+
$type: 'tools.ozone.verification.grantVerifications#grantError',
|
|
60
|
+
error: 'Cannot verify with invalid handle',
|
|
61
|
+
subject,
|
|
62
|
+
});
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
56
65
|
try {
|
|
57
66
|
const verificationRecord = {
|
|
58
67
|
createdAt: createdAt || now,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issuer.js","sourceRoot":"","sources":["../../src/verification/issuer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"issuer.js","sourceRoot":"","sources":["../../src/verification/issuer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Selectable } from 'kysely'\nimport { Agent, AtUri, CredentialSession } from '@atproto/api'\nimport { VerifierConfig } from '../config'\nimport { Verification } from '../db/schema/verification'\n\nexport type VerificationInput = {\n displayName: string\n handle: string\n subject: string\n createdAt?: string\n}\n\nexport type VerificationIssuerCreator = (\n verifierConfig: VerifierConfig,\n) => VerificationIssuer\n\nconst HANDLE_INVALID = 'handle.invalid'\n\nexport class VerificationIssuer {\n private session = new CredentialSession(new URL(this.verifierConfig.url))\n private agent = new Agent(this.session)\n constructor(private verifierConfig: VerifierConfig) {}\n\n static creator() {\n return (verifierConfig: VerifierConfig) =>\n new VerificationIssuer(verifierConfig)\n }\n\n async getAgent() {\n if (!this.session.hasSession) {\n await this.session.login({\n identifier: this.verifierConfig.did,\n password: this.verifierConfig.password,\n })\n }\n\n // Trigger a test request to check if the session is still valid, if not, we will login again\n try {\n await this.agent.com.atproto.server.getSession()\n } catch (err) {\n if ((err as any).status === 401) {\n await this.session.login({\n identifier: this.verifierConfig.did,\n password: this.verifierConfig.password,\n })\n }\n }\n\n return this.agent\n }\n\n async verify(verifications: VerificationInput[]) {\n const grantedVerifications: Selectable<Verification>[] = []\n const failedVerifications: {\n $type: 'tools.ozone.verification.grantVerifications#grantError'\n subject: string\n error: string\n }[] = []\n const now = new Date().toISOString()\n const agent = await this.getAgent()\n await Promise.allSettled(\n verifications.map(async ({ displayName, handle, subject, createdAt }) => {\n if (handle.toLowerCase() === HANDLE_INVALID) {\n failedVerifications.push({\n $type: 'tools.ozone.verification.grantVerifications#grantError',\n error: 'Cannot verify with invalid handle',\n subject,\n })\n return\n }\n\n try {\n const verificationRecord = {\n createdAt: createdAt || now,\n issuer: this.verifierConfig.did,\n displayName,\n handle,\n subject,\n }\n const {\n data: { uri, cid },\n } = await agent.com.atproto.repo.createRecord({\n repo: this.verifierConfig.did,\n record: verificationRecord,\n collection: 'app.bsky.graph.verification',\n })\n grantedVerifications.push({\n ...verificationRecord,\n uri,\n cid,\n revokedAt: null,\n updatedAt: now,\n revokedBy: null,\n revokeReason: null,\n })\n } catch (err) {\n failedVerifications.push({\n $type: 'tools.ozone.verification.grantVerifications#grantError',\n error: (err as Error).message,\n subject,\n })\n return\n }\n }),\n )\n\n return { grantedVerifications, failedVerifications }\n }\n\n async revoke({ uris }: { uris: string[] }) {\n const revokedVerifications: string[] = []\n const failedRevocations: Array<{ uri: string; error: string }> = []\n\n const agent = await this.getAgent()\n\n await Promise.allSettled(\n uris.map(async (uri) => {\n try {\n const atUri = new AtUri(uri)\n\n if (atUri.collection !== 'app.bsky.graph.verification') {\n throw new Error(`Only verification records can be revoked`)\n }\n\n if (atUri.host !== this.verifierConfig.did) {\n throw new Error(\n `Cannot revoke verification record ${uri} not issued by ${this.verifierConfig.did}`,\n )\n }\n\n await agent.com.atproto.repo.deleteRecord({\n collection: atUri.collection,\n repo: this.verifierConfig.did,\n rkey: atUri.rkey,\n })\n revokedVerifications.push(uri)\n } catch (err) {\n failedRevocations.push({ uri, error: (err as Error).message })\n return\n }\n }),\n )\n\n return { revokedVerifications, failedRevocations }\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/ozone",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.163",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Backend service for moderating the Bluesky network.",
|
|
6
6
|
"keywords": [
|
|
@@ -35,15 +35,15 @@
|
|
|
35
35
|
"uint8arrays": "3.0.0",
|
|
36
36
|
"undici": "^6.14.1",
|
|
37
37
|
"ws": "^8.12.0",
|
|
38
|
-
"@atproto/api": "^0.18.
|
|
39
|
-
"@atproto/common": "^0.5.
|
|
38
|
+
"@atproto/api": "^0.18.20",
|
|
39
|
+
"@atproto/common": "^0.5.11",
|
|
40
40
|
"@atproto/crypto": "^0.4.5",
|
|
41
|
-
"@atproto/identity": "^0.4.
|
|
41
|
+
"@atproto/identity": "^0.4.11",
|
|
42
42
|
"@atproto/lexicon": "^0.6.1",
|
|
43
43
|
"@atproto/syntax": "^0.4.3",
|
|
44
44
|
"@atproto/ws-client": "^0.0.4",
|
|
45
45
|
"@atproto/xrpc": "^0.7.7",
|
|
46
|
-
"@atproto/xrpc-server": "^0.10.
|
|
46
|
+
"@atproto/xrpc-server": "^0.10.12"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@did-plc/server": "^0.0.1",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"ts-node": "^10.8.2",
|
|
57
57
|
"typescript": "^5.6.3",
|
|
58
58
|
"@atproto/lex-cli": "^0.9.8",
|
|
59
|
-
"@atproto/pds": "^0.4.
|
|
59
|
+
"@atproto/pds": "^0.4.208"
|
|
60
60
|
},
|
|
61
61
|
"scripts": {
|
|
62
62
|
"codegen": "lex gen-server --yes ./src/lexicon ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/* ../../lexicons/chat/bsky/*/* ../../lexicons/tools/ozone/*/*",
|
package/src/lexicon/lexicons.ts
CHANGED
|
@@ -2326,6 +2326,18 @@ export const schemaDict = {
|
|
|
2326
2326
|
type: 'object',
|
|
2327
2327
|
required: ['posts'],
|
|
2328
2328
|
properties: {
|
|
2329
|
+
deviceId: {
|
|
2330
|
+
type: 'string',
|
|
2331
|
+
description:
|
|
2332
|
+
'UUIDv4 identifier of the device that created this draft.',
|
|
2333
|
+
maxLength: 100,
|
|
2334
|
+
},
|
|
2335
|
+
deviceName: {
|
|
2336
|
+
type: 'string',
|
|
2337
|
+
description:
|
|
2338
|
+
'The device and/or platform on which the draft was created.',
|
|
2339
|
+
maxLength: 100,
|
|
2340
|
+
},
|
|
2329
2341
|
posts: {
|
|
2330
2342
|
description: 'Array of draft posts that compose this draft.',
|
|
2331
2343
|
type: 'array',
|
|
@@ -39,6 +39,10 @@ export function validateDraftWithId<V>(v: V) {
|
|
|
39
39
|
/** A draft containing an array of draft posts. */
|
|
40
40
|
export interface Draft {
|
|
41
41
|
$type?: 'app.bsky.draft.defs#draft'
|
|
42
|
+
/** UUIDv4 identifier of the device that created this draft. */
|
|
43
|
+
deviceId?: string
|
|
44
|
+
/** The device and/or platform on which the draft was created. */
|
|
45
|
+
deviceName?: string
|
|
42
46
|
/** Array of draft posts that compose this draft. */
|
|
43
47
|
posts: DraftPost[]
|
|
44
48
|
/** Indicates human language of posts primary text content. */
|
|
@@ -14,6 +14,8 @@ export type VerificationIssuerCreator = (
|
|
|
14
14
|
verifierConfig: VerifierConfig,
|
|
15
15
|
) => VerificationIssuer
|
|
16
16
|
|
|
17
|
+
const HANDLE_INVALID = 'handle.invalid'
|
|
18
|
+
|
|
17
19
|
export class VerificationIssuer {
|
|
18
20
|
private session = new CredentialSession(new URL(this.verifierConfig.url))
|
|
19
21
|
private agent = new Agent(this.session)
|
|
@@ -58,6 +60,15 @@ export class VerificationIssuer {
|
|
|
58
60
|
const agent = await this.getAgent()
|
|
59
61
|
await Promise.allSettled(
|
|
60
62
|
verifications.map(async ({ displayName, handle, subject, createdAt }) => {
|
|
63
|
+
if (handle.toLowerCase() === HANDLE_INVALID) {
|
|
64
|
+
failedVerifications.push({
|
|
65
|
+
$type: 'tools.ozone.verification.grantVerifications#grantError',
|
|
66
|
+
error: 'Cannot verify with invalid handle',
|
|
67
|
+
subject,
|
|
68
|
+
})
|
|
69
|
+
return
|
|
70
|
+
}
|
|
71
|
+
|
|
61
72
|
try {
|
|
62
73
|
const verificationRecord = {
|
|
63
74
|
createdAt: createdAt || now,
|
|
@@ -132,6 +132,26 @@ describe('verification', () => {
|
|
|
132
132
|
'Must be an admin or verifier to grant verifications',
|
|
133
133
|
)
|
|
134
134
|
})
|
|
135
|
+
|
|
136
|
+
it('fails if the handle is invalid', async () => {
|
|
137
|
+
const {
|
|
138
|
+
data: { verifications, failedVerifications },
|
|
139
|
+
} = await adminAgent.tools.ozone.verification.grantVerifications({
|
|
140
|
+
verifications: [
|
|
141
|
+
{
|
|
142
|
+
subject: sc.dids.dan,
|
|
143
|
+
handle: 'handle.invalid',
|
|
144
|
+
displayName: 'Bob',
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
})
|
|
148
|
+
|
|
149
|
+
expect(verifications.length).toEqual(0)
|
|
150
|
+
expect(failedVerifications.length).toEqual(1)
|
|
151
|
+
const failed = failedVerifications.at(0)
|
|
152
|
+
expect(failed!.error).toEqual('Cannot verify with invalid handle')
|
|
153
|
+
expect(failed!.subject).toEqual(sc.dids.dan)
|
|
154
|
+
})
|
|
135
155
|
})
|
|
136
156
|
|
|
137
157
|
it('does not publish record if a valid one already exists', async () => {
|