a collection of lightweight TypeScript packages for AT Protocol, the protocol powering Bluesky
atproto bluesky typescript npm
101
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore(standard-site): pull latest Standard Site lexicons

Mary b1d6c826 2bf68793

+248 -55
+5
.changeset/light-teeth-cough.md
··· 1 + --- 2 + '@atcute/standard-site': patch 3 + --- 4 + 5 + pull latest Standard Site lexicons
+4 -3
packages/definitions/standard-site/lexicons/site/standard/authFull.json
··· 3 3 "defs": { 4 4 "main": { 5 5 "type": "permission-set", 6 - "title": "Full Standard.site Access", 7 - "detail": "Provides full access to all Standard.site features including publications, documents, and subscriptions.", 6 + "title": "Standard.site", 7 + "detail": "Manage your publications, documents, subscriptions, and recommends.", 8 8 "permissions": [ 9 9 { 10 10 "type": "permission", ··· 12 12 "collection": [ 13 13 "site.standard.publication", 14 14 "site.standard.document", 15 - "site.standard.graph.subscription" 15 + "site.standard.graph.subscription", 16 + "site.standard.graph.recommend" 16 17 ] 17 18 } 18 19 ]
+19
packages/definitions/standard-site/lexicons/site/standard/authSocial.json
··· 1 + { 2 + "id": "site.standard.authSocial", 3 + "defs": { 4 + "main": { 5 + "type": "permission-set", 6 + "title": "Standard.site", 7 + "detail": "Manage your publication subscriptions and document recommendations.", 8 + "permissions": [ 9 + { 10 + "type": "permission", 11 + "resource": "repo", 12 + "collection": ["site.standard.graph.subscription", "site.standard.graph.recommend"] 13 + } 14 + ] 15 + } 16 + }, 17 + "$type": "com.atproto.lexicon.schema", 18 + "lexicon": 1 19 + }
+37
packages/definitions/standard-site/lexicons/site/standard/document.json
··· 26 26 }, 27 27 "description": "Array of strings used to tag or categorize the document. Avoid prepending tags with hashtags." 28 28 }, 29 + "links": { 30 + "refs": [], 31 + "type": "union", 32 + "description": "Array of values describing relationships between this document and external resources" 33 + }, 29 34 "title": { 30 35 "type": "string", 31 36 "maxLength": 5000, 32 37 "description": "Title of the document.", 33 38 "maxGraphemes": 500 39 + }, 40 + "labels": { 41 + "refs": ["com.atproto.label.defs#selfLabels"], 42 + "type": "union", 43 + "description": "Self-label values for this post. Effectively content warnings." 34 44 }, 35 45 "content": { 36 46 "refs": [], ··· 68 78 "textContent": { 69 79 "type": "string", 70 80 "description": "Plaintext representation of the documents contents. Should not contain markdown or other formatting." 81 + }, 82 + "contributors": { 83 + "type": "array", 84 + "items": { 85 + "ref": "#contributor", 86 + "type": "ref" 87 + } 71 88 } 72 89 } 73 90 }, 74 91 "description": "A document record representing a published article, blog post, or other content. Documents can belong to a publication or exist independently." 92 + }, 93 + "contributor": { 94 + "type": "object", 95 + "required": ["did"], 96 + "properties": { 97 + "did": { 98 + "type": "string", 99 + "format": "did" 100 + }, 101 + "role": { 102 + "type": "string", 103 + "maxLength": 1000, 104 + "maxGraphemes": 100 105 + }, 106 + "displayName": { 107 + "type": "string", 108 + "maxLength": 1000, 109 + "maxGraphemes": 100 110 + } 111 + } 75 112 } 76 113 }, 77 114 "$type": "com.atproto.lexicon.schema",
+27
packages/definitions/standard-site/lexicons/site/standard/graph/recommend.json
··· 1 + { 2 + "id": "site.standard.graph.recommend", 3 + "defs": { 4 + "main": { 5 + "key": "tid", 6 + "type": "record", 7 + "record": { 8 + "type": "object", 9 + "required": ["document", "createdAt"], 10 + "properties": { 11 + "document": { 12 + "type": "string", 13 + "format": "at-uri", 14 + "description": "AT-URI reference to the document record being recommended (ex: at://did:plc:abc123/site.standard.document/xyz789)." 15 + }, 16 + "createdAt": { 17 + "type": "string", 18 + "format": "datetime" 19 + } 20 + } 21 + }, 22 + "description": "Record declaring a recommendation of a document." 23 + } 24 + }, 25 + "$type": "com.atproto.lexicon.schema", 26 + "lexicon": 1 27 + }
+5 -1
packages/definitions/standard-site/lexicons/site/standard/graph/subscription.json
··· 8 8 "type": "object", 9 9 "required": ["publication"], 10 10 "properties": { 11 + "createdAt": { 12 + "type": "string", 13 + "format": "datetime" 14 + }, 11 15 "publication": { 12 16 "type": "string", 13 17 "format": "at-uri", ··· 15 19 } 16 20 } 17 21 }, 18 - "description": "Record declaring a subscription to a publication" 22 + "description": "Record declaring a subscription to a publication." 19 23 } 20 24 }, 21 25 "$type": "com.atproto.lexicon.schema",
+6 -2
packages/definitions/standard-site/lexicons/site/standard/publication.json
··· 25 25 "description": "Name of the publication.", 26 26 "maxGraphemes": 500 27 27 }, 28 + "labels": { 29 + "refs": ["com.atproto.label.defs#selfLabels"], 30 + "type": "union", 31 + "description": "Self-label values for this publication. Effectively content warnings." 32 + }, 28 33 "basicTheme": { 29 34 "ref": "site.standard.theme.basic", 30 35 "type": "ref", ··· 53 58 "default": true, 54 59 "description": "Boolean which decides whether the publication should appear in discovery feeds." 55 60 } 56 - }, 57 - "description": "Platform-specific preferences for the publication, including discovery and visibility settings." 61 + } 58 62 } 59 63 }, 60 64 "$type": "com.atproto.lexicon.schema",
+26 -22
packages/definitions/standard-site/lexicons/site/standard/theme/basic.json
··· 2 2 "id": "site.standard.theme.basic", 3 3 "defs": { 4 4 "main": { 5 - "type": "object", 6 - "required": ["background", "foreground", "accent", "accentForeground"], 7 - "properties": { 8 - "accent": { 9 - "refs": ["site.standard.theme.color#rgb"], 10 - "type": "union", 11 - "description": "Color used for links and button backgrounds." 12 - }, 13 - "background": { 14 - "refs": ["site.standard.theme.color#rgb"], 15 - "type": "union", 16 - "description": "Color used for content background." 17 - }, 18 - "foreground": { 19 - "refs": ["site.standard.theme.color#rgb"], 20 - "type": "union", 21 - "description": "Color used for content text." 22 - }, 23 - "accentForeground": { 24 - "refs": ["site.standard.theme.color#rgb"], 25 - "type": "union", 26 - "description": "Color used for button text." 5 + "key": "tid", 6 + "type": "record", 7 + "record": { 8 + "type": "object", 9 + "required": ["background", "foreground", "accent", "accentForeground"], 10 + "properties": { 11 + "accent": { 12 + "refs": ["site.standard.theme.color#rgb"], 13 + "type": "union", 14 + "description": "Color used for links and button backgrounds." 15 + }, 16 + "background": { 17 + "refs": ["site.standard.theme.color#rgb"], 18 + "type": "union", 19 + "description": "Color used for content background." 20 + }, 21 + "foreground": { 22 + "refs": ["site.standard.theme.color#rgb"], 23 + "type": "union", 24 + "description": "Color used for content text." 25 + }, 26 + "accentForeground": { 27 + "refs": ["site.standard.theme.color#rgb"], 28 + "type": "union", 29 + "description": "Color used for button text." 30 + } 27 31 } 28 32 }, 29 33 "description": "A simplified theme definition for publications, providing basic color customization for content display across different platforms and applications."
+1
packages/definitions/standard-site/lib/lexicons/index.ts
··· 1 1 export * as SiteStandardDocument from './types/site/standard/document.ts'; 2 + export * as SiteStandardGraphRecommend from './types/site/standard/graph/recommend.ts'; 2 3 export * as SiteStandardGraphSubscription from './types/site/standard/graph/subscription.ts'; 3 4 export * as SiteStandardPublication from './types/site/standard/publication.ts'; 4 5 export * as SiteStandardThemeBasic from './types/site/standard/theme/basic.ts';
+44
packages/definitions/standard-site/lib/lexicons/types/site/standard/document.ts
··· 1 + import * as ComAtprotoLabelDefs from '@atcute/atproto/types/label/defs'; 1 2 import * as ComAtprotoRepoStrongRef from '@atcute/atproto/types/repo/strongRef'; 2 3 import type {} from '@atcute/lexicons'; 3 4 import type {} from '@atcute/lexicons/ambient'; 4 5 import * as v from '@atcute/lexicons/validations'; 5 6 7 + const _contributorSchema = /*#__PURE__*/ v.object({ 8 + $type: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.literal('site.standard.document#contributor')), 9 + did: /*#__PURE__*/ v.didString(), 10 + /** 11 + * @maxLength 1000 12 + * @maxGraphemes 100 13 + */ 14 + displayName: /*#__PURE__*/ v.optional( 15 + /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ 16 + /*#__PURE__*/ v.stringLength(0, 1000), 17 + /*#__PURE__*/ v.stringGraphemes(0, 100), 18 + ]), 19 + ), 20 + /** 21 + * @maxLength 1000 22 + * @maxGraphemes 100 23 + */ 24 + role: /*#__PURE__*/ v.optional( 25 + /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ 26 + /*#__PURE__*/ v.stringLength(0, 1000), 27 + /*#__PURE__*/ v.stringGraphemes(0, 100), 28 + ]), 29 + ), 30 + }); 6 31 const _mainSchema = /*#__PURE__*/ v.record( 7 32 /*#__PURE__*/ v.tidString(), 8 33 /*#__PURE__*/ v.object({ ··· 18 43 */ 19 44 get content() { 20 45 return /*#__PURE__*/ v.optional(/*#__PURE__*/ v.variant([])); 46 + }, 47 + get contributors() { 48 + return /*#__PURE__*/ v.optional(/*#__PURE__*/ v.array(contributorSchema)); 21 49 }, 22 50 /** 23 51 * Image to used for thumbnail or cover image. Less than 1MB is size. ··· 42 70 ]), 43 71 ), 44 72 /** 73 + * Self-label values for this post. Effectively content warnings. 74 + */ 75 + get labels() { 76 + return /*#__PURE__*/ v.optional(/*#__PURE__*/ v.variant([ComAtprotoLabelDefs.selfLabelsSchema])); 77 + }, 78 + /** 79 + * Array of values describing relationships between this document and external resources 80 + */ 81 + get links() { 82 + return /*#__PURE__*/ v.optional(/*#__PURE__*/ v.variant([])); 83 + }, 84 + /** 45 85 * Combine with site or publication url to construct a canonical URL to the document. Prepend with a leading slash. 46 86 */ 47 87 path: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()), ··· 84 124 }), 85 125 ); 86 126 127 + type contributor$schematype = typeof _contributorSchema; 87 128 type main$schematype = typeof _mainSchema; 88 129 130 + export interface contributorSchema extends contributor$schematype {} 89 131 export interface mainSchema extends main$schematype {} 90 132 133 + export const contributorSchema = _contributorSchema as contributorSchema; 91 134 export const mainSchema = _mainSchema as mainSchema; 92 135 136 + export interface Contributor extends v.InferInput<typeof contributorSchema> {} 93 137 export interface Main extends v.InferInput<typeof mainSchema> {} 94 138 95 139 declare module '@atcute/lexicons/ambient' {
+29
packages/definitions/standard-site/lib/lexicons/types/site/standard/graph/recommend.ts
··· 1 + import type {} from '@atcute/lexicons'; 2 + import type {} from '@atcute/lexicons/ambient'; 3 + import * as v from '@atcute/lexicons/validations'; 4 + 5 + const _mainSchema = /*#__PURE__*/ v.record( 6 + /*#__PURE__*/ v.tidString(), 7 + /*#__PURE__*/ v.object({ 8 + $type: /*#__PURE__*/ v.literal('site.standard.graph.recommend'), 9 + createdAt: /*#__PURE__*/ v.datetimeString(), 10 + /** 11 + * AT-URI reference to the document record being recommended (ex: at://did:plc:abc123/site.standard.document/xyz789). 12 + */ 13 + document: /*#__PURE__*/ v.resourceUriString(), 14 + }), 15 + ); 16 + 17 + type main$schematype = typeof _mainSchema; 18 + 19 + export interface mainSchema extends main$schematype {} 20 + 21 + export const mainSchema = _mainSchema as mainSchema; 22 + 23 + export interface Main extends v.InferInput<typeof mainSchema> {} 24 + 25 + declare module '@atcute/lexicons/ambient' { 26 + interface Records { 27 + 'site.standard.graph.recommend': mainSchema; 28 + } 29 + }
+1
packages/definitions/standard-site/lib/lexicons/types/site/standard/graph/subscription.ts
··· 6 6 /*#__PURE__*/ v.tidString(), 7 7 /*#__PURE__*/ v.object({ 8 8 $type: /*#__PURE__*/ v.literal('site.standard.graph.subscription'), 9 + createdAt: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.datetimeString()), 9 10 /** 10 11 * AT-URI reference to the publication record being subscribed to (ex: at://did:plc:abc123/site.standard.publication/xyz789). 11 12 */
+7
packages/definitions/standard-site/lib/lexicons/types/site/standard/publication.ts
··· 1 + import * as ComAtprotoLabelDefs from '@atcute/atproto/types/label/defs'; 1 2 import type {} from '@atcute/lexicons'; 2 3 import type {} from '@atcute/lexicons/ambient'; 3 4 import * as v from '@atcute/lexicons/validations'; ··· 36 37 /*#__PURE__*/ v.blobAccept(['image/*']), 37 38 ]), 38 39 ), 40 + /** 41 + * Self-label values for this publication. Effectively content warnings. 42 + */ 43 + get labels() { 44 + return /*#__PURE__*/ v.optional(/*#__PURE__*/ v.variant([ComAtprotoLabelDefs.selfLabelsSchema])); 45 + }, 39 46 /** 40 47 * Name of the publication. 41 48 * @maxLength 5000
+37 -27
packages/definitions/standard-site/lib/lexicons/types/site/standard/theme/basic.ts
··· 1 1 import type {} from '@atcute/lexicons'; 2 + import type {} from '@atcute/lexicons/ambient'; 2 3 import * as v from '@atcute/lexicons/validations'; 3 4 4 5 import * as SiteStandardThemeColor from './color.ts'; 5 6 6 - const _mainSchema = /*#__PURE__*/ v.object({ 7 - $type: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.literal('site.standard.theme.basic')), 8 - /** 9 - * Color used for links and button backgrounds. 10 - */ 11 - get accent() { 12 - return /*#__PURE__*/ v.variant([SiteStandardThemeColor.rgbSchema]); 13 - }, 14 - /** 15 - * Color used for button text. 16 - */ 17 - get accentForeground() { 18 - return /*#__PURE__*/ v.variant([SiteStandardThemeColor.rgbSchema]); 19 - }, 20 - /** 21 - * Color used for content background. 22 - */ 23 - get background() { 24 - return /*#__PURE__*/ v.variant([SiteStandardThemeColor.rgbSchema]); 25 - }, 26 - /** 27 - * Color used for content text. 28 - */ 29 - get foreground() { 30 - return /*#__PURE__*/ v.variant([SiteStandardThemeColor.rgbSchema]); 31 - }, 32 - }); 7 + const _mainSchema = /*#__PURE__*/ v.record( 8 + /*#__PURE__*/ v.tidString(), 9 + /*#__PURE__*/ v.object({ 10 + $type: /*#__PURE__*/ v.literal('site.standard.theme.basic'), 11 + /** 12 + * Color used for links and button backgrounds. 13 + */ 14 + get accent() { 15 + return /*#__PURE__*/ v.variant([SiteStandardThemeColor.rgbSchema]); 16 + }, 17 + /** 18 + * Color used for button text. 19 + */ 20 + get accentForeground() { 21 + return /*#__PURE__*/ v.variant([SiteStandardThemeColor.rgbSchema]); 22 + }, 23 + /** 24 + * Color used for content background. 25 + */ 26 + get background() { 27 + return /*#__PURE__*/ v.variant([SiteStandardThemeColor.rgbSchema]); 28 + }, 29 + /** 30 + * Color used for content text. 31 + */ 32 + get foreground() { 33 + return /*#__PURE__*/ v.variant([SiteStandardThemeColor.rgbSchema]); 34 + }, 35 + }), 36 + ); 33 37 34 38 type main$schematype = typeof _mainSchema; 35 39 ··· 38 42 export const mainSchema = _mainSchema as mainSchema; 39 43 40 44 export interface Main extends v.InferInput<typeof mainSchema> {} 45 + 46 + declare module '@atcute/lexicons/ambient' { 47 + interface Records { 48 + 'site.standard.theme.basic': mainSchema; 49 + } 50 + }