diff --git a/lexicons/org/tangled/embed/commit.json b/lexicons/org/tangled/embed/commit.json new file mode 100644 index 00000000..b9184ca4 --- /dev/null +++ b/lexicons/org/tangled/embed/commit.json @@ -0,0 +1,17 @@ +{ + "lexicon": 1, + "id": "org.tangled.embed.commit", + "defs": { + "main": { + "type": "object", + "required": [ + "repo", + "commit" + ], + "properties": { + "repo": { "type": "string", "format": "did" }, + "commit": { "type": "ref", "ref": "org.tangled.git.object" } + } + } + } +} diff --git a/lexicons/org/tangled/embed/unspecced/file.json b/lexicons/org/tangled/embed/unspecced/file.json new file mode 100644 index 00000000..413d6e8a --- /dev/null +++ b/lexicons/org/tangled/embed/unspecced/file.json @@ -0,0 +1,19 @@ +{ + "lexicon": 1, + "id": "org.tangled.embed.unspecced.file", + "defs": { + "main": { + "type": "object", + "required": [ + "repo", + "commit", + "path" + ], + "properties": { + "repo": { "type": "string", "format": "did" }, + "commit": { "type": "ref", "ref": "org.tangled.git.object" }, + "path": { "type": "string" } + } + } + } +} diff --git a/lexicons/org/tangled/feed/comment.json b/lexicons/org/tangled/feed/comment.json new file mode 100644 index 00000000..f7eae169 --- /dev/null +++ b/lexicons/org/tangled/feed/comment.json @@ -0,0 +1,42 @@ +{ + "lexicon": 1, + "id": "org.tangled.feed.comment", + "defs": { + "main": { + "type": "record", + "key": "tid", + "record": { + "type": "object", + "required": [ + "subject", + "body", + "createdAt" + ], + "properties": { + "subject": { + "type": "union", + "refs": ["com.atproto.repo.strongRef"] + }, + "replyTo": { + "type": "ref", + "ref": "com.atproto.repo.strongRef" + }, + "body": { + "type": "union", + "refs": ["org.tangled.markup.markdown"] + }, + "embed": { + "type": "union", + "refs": [ + "org.tangled.embed.commit" + ] + }, + "createdAt": { + "type": "string", + "format": "datetime" + } + } + } + } + } +} diff --git a/lexicons/org/tangled/feed/reaction.json b/lexicons/org/tangled/feed/reaction.json new file mode 100644 index 00000000..be26c870 --- /dev/null +++ b/lexicons/org/tangled/feed/reaction.json @@ -0,0 +1,33 @@ +{ + "lexicon": 1, + "id": "org.tangled.feed.reaction", + "defs": { + "main": { + "type": "record", + "key": "tid", + "record": { + "type": "object", + "required": [ + "subject", + "reaction", + "createdAt" + ], + "properties": { + "subject": { + "type": "ref", + "ref": "com.atproto.repo.strongRef" + }, + "reaction": { + "type": "string", + "maxGraphemes": 1, + "knownValues": ["👍", "👎", "😆", "🎉", "🫤", "❤️", "🚀", "👀"] + }, + "createdAt": { + "type": "string", + "format": "datetime" + } + } + } + } + } +} diff --git a/lexicons/org/tangled/feed/star.json b/lexicons/org/tangled/feed/star.json new file mode 100644 index 00000000..32dfb8bd --- /dev/null +++ b/lexicons/org/tangled/feed/star.json @@ -0,0 +1,42 @@ +{ + "lexicon": 1, + "id": "org.tangled.feed.star", + "defs": { + "main": { + "type": "record", + "key": "tid", + "record": { + "type": "object", + "required": [ + "subject", + "createdAt" + ], + "properties": { + "subject": { + "type": "union", + "refs": ["#repo", "#record"], + "closed": true + }, + "createdAt": { + "type": "string", + "format": "datetime" + } + } + } + }, + "repo": { + "type": "object", + "required": ["identity"], + "properties": { + "identity": { "type": "string", "format": "did" } + } + }, + "record": { + "type": "object", + "required": ["record"], + "properties": { + "record": { "type": "ref", "ref": "com.atproto.repo.strongRef" } + } + } + } +} diff --git a/lexicons/org/tangled/markup/embed/image.json b/lexicons/org/tangled/markup/embed/image.json new file mode 100644 index 00000000..49ebcd3d --- /dev/null +++ b/lexicons/org/tangled/markup/embed/image.json @@ -0,0 +1,17 @@ +{ + "lexicon": 1, + "id": "org.tangled.markup.embed.image", + "defs": { + "main": { + "type": "object", + "required": ["image"], + "properties": { + "image": { + "type": "blob", + "accept": ["image/*"], + "maxSize": 1000000 + } + } + } + } +} diff --git a/lexicons/org/tangled/markup/embed/video.json b/lexicons/org/tangled/markup/embed/video.json new file mode 100644 index 00000000..09f85f1f --- /dev/null +++ b/lexicons/org/tangled/markup/embed/video.json @@ -0,0 +1,17 @@ +{ + "lexicon": 1, + "id": "org.tangled.markup.embed.video", + "defs": { + "main": { + "type": "object", + "required": ["video"], + "properties": { + "video": { + "type": "blob", + "accept": ["video/mp4"], + "maxSize": 5000000 + } + } + } + } +} diff --git a/lexicons/org/tangled/markup/markdown.json b/lexicons/org/tangled/markup/markdown.json new file mode 100644 index 00000000..a7b34a25 --- /dev/null +++ b/lexicons/org/tangled/markup/markdown.json @@ -0,0 +1,43 @@ +{ + "lexicon": 1, + "id": "org.tangled.markup.markdown", + "defs": { + "main": { + "type": "object", + "required": ["text"], + "description": "Tangled Flavored Markdown format text", + "properties": { + "text": { + "type": "string", + "maxGraphemes": 65536, + "maxLength": 262144, + "description": "Final post-processed markdown content that will be rendered" + }, + "blobs": { + "type": "array", + "items": { + "type": "union", + "refs": [ + "org.tangled.markup.embed.image", + "org.tangled.markup.embed.video" + ] + }, + "description": "list of blobs referenced in markdown" + } + } + }, + "inline": { + "type": "object", + "required": ["text"], + "description": "Tangled Flavored Markdown format text (inline)", + "properties": { + "text": { + "type": "string", + "maxGraphemes": 256, + "maxLength": 1024, + "description": "Final post-processed markdown content that will be rendered" + } + } + } + } +} diff --git a/lexicons/org/tangled/markup/plaintext.json b/lexicons/org/tangled/markup/plaintext.json new file mode 100644 index 00000000..f84f69e5 --- /dev/null +++ b/lexicons/org/tangled/markup/plaintext.json @@ -0,0 +1,16 @@ +{ + "lexicon": 1, + "id": "org.tangled.markup.plaintext", + "defs": { + "main": { + "type": "object", + "required": ["text"], + "properties": { + "text": { + "type": "string", + "maxLength": 262144 + } + } + } + } +}