fork of indigo with slightly nicer lexgen

Add test

Changed files
+302 -207
search
+302 -207
search/testdata/transform-post-fixtures.json
··· 1 1 [ 2 2 { 3 3 "did": "did:plc:u5cwb2mwiv2bfq53cjufe6yn", 4 - "handle": "handle.example.com", 4 + "handle": "handle.example.com", 5 5 "rkey": "3k4duaz5vfs2b", 6 6 "cid": "bafyreibjifzpqj6o6wcq3hejh7y4z4z2vmiklkvykc57tw3pcbx3kxifpm", 7 7 "PostRecord": { 8 - "$type": "app.bsky.feed.post", 9 - "text": "post which embeds an external URL as a card", 10 - "createdAt": "2023-08-07T05:46:14.423045Z", 11 - "embed": { 12 - "$type": "app.bsky.embed.external", 13 - "external": { 14 - "uri": "https://www.bsky.app:443/index.html", 15 - "title": "Bluesky Social", 16 - "description": "See what's next.", 17 - "thumb": { 18 - "$type": "blob", 19 - "ref": { 20 - "$link": "bafkreiash5eihfku2jg4skhyh5kes7j5d5fd6xxloaytdywcvb3r3zrzhu" 21 - }, 22 - "mimeType": "image/png", 23 - "size": 23527 24 - } 25 - } 26 - } 8 + "$type": "app.bsky.feed.post", 9 + "text": "post which embeds an external URL as a card", 10 + "createdAt": "2023-08-07T05:46:14.423045Z", 11 + "embed": { 12 + "$type": "app.bsky.embed.external", 13 + "external": { 14 + "uri": "https://www.bsky.app:443/index.html", 15 + "title": "Bluesky Social", 16 + "description": "See what's next.", 17 + "thumb": { 18 + "$type": "blob", 19 + "ref": { 20 + "$link": "bafkreiash5eihfku2jg4skhyh5kes7j5d5fd6xxloaytdywcvb3r3zrzhu" 21 + }, 22 + "mimeType": "image/png", 23 + "size": 23527 24 + } 25 + } 26 + } 27 27 }, 28 28 "doc_id": "did:plc:u5cwb2mwiv2bfq53cjufe6yn_3k4duaz5vfs2b", 29 29 "PostDoc": { 30 - "doc_index_ts": "2006-01-02T15:04:05.000Z", 31 - "did": "did:plc:u5cwb2mwiv2bfq53cjufe6yn", 32 - "handle": "handle.example.com", 33 - "record_rkey": "3k4duaz5vfs2b", 34 - "record_cid": "bafyreibjifzpqj6o6wcq3hejh7y4z4z2vmiklkvykc57tw3pcbx3kxifpm", 35 - "created_at": "2023-08-07T05:46:14.423045Z", 36 - "text": "post which embeds an external URL as a card", 37 - "url": ["https://bsky.app"], 38 - "domain": ["bsky.app"], 39 - "embed_img_count": 0 30 + "doc_index_ts": "2006-01-02T15:04:05.000Z", 31 + "did": "did:plc:u5cwb2mwiv2bfq53cjufe6yn", 32 + "handle": "handle.example.com", 33 + "record_rkey": "3k4duaz5vfs2b", 34 + "record_cid": "bafyreibjifzpqj6o6wcq3hejh7y4z4z2vmiklkvykc57tw3pcbx3kxifpm", 35 + "created_at": "2023-08-07T05:46:14.423045Z", 36 + "text": "post which embeds an external URL as a card", 37 + "url": [ 38 + "https://bsky.app" 39 + ], 40 + "domain": [ 41 + "bsky.app" 42 + ], 43 + "embed_img_count": 0 40 44 } 41 45 }, 42 46 { 43 47 "did": "did:plc:u5cwb2mwiv2bfq53cjufe6yn", 44 - "handle": "handle.example.com", 48 + "handle": "handle.example.com", 45 49 "rkey": "3k4duaz5vfs2b", 46 50 "cid": "bafyreibjifzpqj6o6wcq3hejh7y4z4z2vmiklkvykc57tw3pcbx3kxifpm", 47 51 "PostRecord": { 48 - "$type": "app.bsky.feed.post", 49 - "text": "longer example with #some #hashtags, emoji \u2620 \ud83d\ude42 \ud83c\udf85\ud83c\udfff, flags \ud83c\uddf8\ud83c\udde8 ", 50 - "createdAt": "2023-08-07T05:46:14.423045Z", 51 - "langs": ["th", "en-US"], 52 - "facets": [ 53 - { 54 - "index": { 55 - "byteStart": 23, 56 - "byteEnd": 35 57 - }, 58 - "features": [ 59 - { 60 - "$type": "app.bsky.richtext.facet#mention", 61 - "did": "did:plc:ewvi7nxzyoun6zhxrhs64oiz" 62 - } 63 - ] 64 - }, 65 - { 66 - "index": { 67 - "byteStart": 74, 68 - "byteEnd": 108 69 - }, 70 - "features": [ 71 - { 72 - "$type": "app.bsky.richtext.facet#link", 73 - "uri": "https://en.wikipedia.org/wiki/CBOR?utm_campaign=123" 74 - } 75 - ] 76 - }, 77 - { 78 - "index": { 79 - "byteStart": 21, 80 - "byteEnd": 25 81 - }, 82 - "features": [ 83 - { 84 - "$type": "app.bsky.richtext.facet#tag", 85 - "tag": "some" 86 - } 87 - ] 88 - } 89 - ], 90 - "labels": { 91 - "$type": "com.atproto.label.defs#selfLabels", 92 - "values": [ 93 - {"val": "nudity"} 94 - ] 95 - }, 96 - "reply": { 97 - "root": { 98 - "uri": "at://did:plc:u5cwb2mwiv2bfq53cjufe6yn/app.bsky.feed.post/3k43tv4rft22g", 99 - "cid": "bafyreig2fjxi3rptqdgylg7e5hmjl6mcke7rn2b6cugzlqq3i4zu6rq52q" 100 - }, 101 - "parent": { 102 - "uri": "at://did:plc:u5cwb2mwiv2bfq53cjufe6yn/app.bsky.feed.post/3k43tv4rft22g", 103 - "cid": "bafyreig2fjxi3rptqdgylg7e5hmjl6mcke7rn2b6cugzlqq3i4zu6rq52q" 104 - } 105 - }, 106 - "embed": { 107 - "$type": "app.bsky.embed.record", 108 - "record": { 109 - "uri": "at://did:plc:u5cwb2mwiv2bfq53cjufe6yn/app.bsky.feed.post/3k44deefqdk2g", 110 - "cid": "bafyreiecx6dujwoeqpdzl27w67z4h46hyklk3an4i4cvvmioaqb2qbyo5u" 111 - } 112 - }, 113 - "tags": [ 114 - "thing" 115 - ] 52 + "$type": "app.bsky.feed.post", 53 + "text": "longer example with #some #hashtags, emoji \u2620 \ud83d\ude42 \ud83c\udf85\ud83c\udfff, flags \ud83c\uddf8\ud83c\udde8 ", 54 + "createdAt": "2023-08-07T05:46:14.423045Z", 55 + "langs": [ 56 + "th", 57 + "en-US" 58 + ], 59 + "facets": [ 60 + { 61 + "index": { 62 + "byteStart": 23, 63 + "byteEnd": 35 64 + }, 65 + "features": [ 66 + { 67 + "$type": "app.bsky.richtext.facet#mention", 68 + "did": "did:plc:ewvi7nxzyoun6zhxrhs64oiz" 69 + } 70 + ] 71 + }, 72 + { 73 + "index": { 74 + "byteStart": 74, 75 + "byteEnd": 108 76 + }, 77 + "features": [ 78 + { 79 + "$type": "app.bsky.richtext.facet#link", 80 + "uri": "https://en.wikipedia.org/wiki/CBOR?utm_campaign=123" 81 + } 82 + ] 83 + }, 84 + { 85 + "index": { 86 + "byteStart": 21, 87 + "byteEnd": 25 88 + }, 89 + "features": [ 90 + { 91 + "$type": "app.bsky.richtext.facet#tag", 92 + "tag": "some" 93 + } 94 + ] 95 + } 96 + ], 97 + "labels": { 98 + "$type": "com.atproto.label.defs#selfLabels", 99 + "values": [ 100 + { 101 + "val": "nudity" 102 + } 103 + ] 104 + }, 105 + "reply": { 106 + "root": { 107 + "uri": "at://did:plc:u5cwb2mwiv2bfq53cjufe6yn/app.bsky.feed.post/3k43tv4rft22g", 108 + "cid": "bafyreig2fjxi3rptqdgylg7e5hmjl6mcke7rn2b6cugzlqq3i4zu6rq52q" 109 + }, 110 + "parent": { 111 + "uri": "at://did:plc:u5cwb2mwiv2bfq53cjufe6yn/app.bsky.feed.post/3k43tv4rft22g", 112 + "cid": "bafyreig2fjxi3rptqdgylg7e5hmjl6mcke7rn2b6cugzlqq3i4zu6rq52q" 113 + } 114 + }, 115 + "embed": { 116 + "$type": "app.bsky.embed.record", 117 + "record": { 118 + "uri": "at://did:plc:u5cwb2mwiv2bfq53cjufe6yn/app.bsky.feed.post/3k44deefqdk2g", 119 + "cid": "bafyreiecx6dujwoeqpdzl27w67z4h46hyklk3an4i4cvvmioaqb2qbyo5u" 120 + } 121 + }, 122 + "tags": [ 123 + "thing" 124 + ] 116 125 }, 117 126 "doc_id": "did:plc:u5cwb2mwiv2bfq53cjufe6yn_3k4duaz5vfs2b", 118 127 "PostDoc": { 119 - "doc_index_ts": "2006-01-02T15:04:05.000Z", 120 - "did": "did:plc:u5cwb2mwiv2bfq53cjufe6yn", 121 - "handle": "handle.example.com", 122 - "record_rkey": "3k4duaz5vfs2b", 123 - "record_cid": "bafyreibjifzpqj6o6wcq3hejh7y4z4z2vmiklkvykc57tw3pcbx3kxifpm", 124 - "created_at": "2023-08-07T05:46:14.423045Z", 125 - "text": "longer example with #some #hashtags, emoji \u2620 \ud83d\ude42 \ud83c\udf85\ud83c\udfff, flags \ud83c\uddf8\ud83c\udde8 ", 126 - "reply_root_aturi": "at://did:plc:u5cwb2mwiv2bfq53cjufe6yn/app.bsky.feed.post/3k43tv4rft22g", 127 - "mention_did": [ "did:plc:ewvi7nxzyoun6zhxrhs64oiz" ], 128 - "embed_aturi": "at://did:plc:u5cwb2mwiv2bfq53cjufe6yn/app.bsky.feed.post/3k44deefqdk2g", 129 - "lang_code": ["th", "en-US"], 130 - "lang_code_iso2": ["th", "en"], 131 - "self_label": ["nudity"], 132 - "url": [ "https://en.wikipedia.org/wiki/CBOR" ], 133 - "domain": [ "en.wikipedia.org" ], 134 - "tag": ["some", "thing"], 135 - "emoji": ["\u2620", "\ud83d\ude42", "\ud83c\udf85\ud83c\udfff", "\ud83c\uddf8\ud83c\udde8"], 136 - "embed_img_count": 0 128 + "doc_index_ts": "2006-01-02T15:04:05.000Z", 129 + "did": "did:plc:u5cwb2mwiv2bfq53cjufe6yn", 130 + "handle": "handle.example.com", 131 + "record_rkey": "3k4duaz5vfs2b", 132 + "record_cid": "bafyreibjifzpqj6o6wcq3hejh7y4z4z2vmiklkvykc57tw3pcbx3kxifpm", 133 + "created_at": "2023-08-07T05:46:14.423045Z", 134 + "text": "longer example with #some #hashtags, emoji \u2620 \ud83d\ude42 \ud83c\udf85\ud83c\udfff, flags \ud83c\uddf8\ud83c\udde8 ", 135 + "reply_root_aturi": "at://did:plc:u5cwb2mwiv2bfq53cjufe6yn/app.bsky.feed.post/3k43tv4rft22g", 136 + "mention_did": [ 137 + "did:plc:ewvi7nxzyoun6zhxrhs64oiz" 138 + ], 139 + "embed_aturi": "at://did:plc:u5cwb2mwiv2bfq53cjufe6yn/app.bsky.feed.post/3k44deefqdk2g", 140 + "lang_code": [ 141 + "th", 142 + "en-US" 143 + ], 144 + "lang_code_iso2": [ 145 + "th", 146 + "en" 147 + ], 148 + "self_label": [ 149 + "nudity" 150 + ], 151 + "url": [ 152 + "https://en.wikipedia.org/wiki/CBOR" 153 + ], 154 + "domain": [ 155 + "en.wikipedia.org" 156 + ], 157 + "tag": [ 158 + "some", 159 + "thing" 160 + ], 161 + "emoji": [ 162 + "\u2620", 163 + "\ud83d\ude42", 164 + "\ud83c\udf85\ud83c\udfff", 165 + "\ud83c\uddf8\ud83c\udde8" 166 + ], 167 + "embed_img_count": 0 137 168 } 138 169 }, 139 170 { 140 171 "did": "did:plc:u5cwb2mwiv2bfq53cjufe6yn", 141 - "handle": "handle.example.com", 172 + "handle": "handle.example.com", 142 173 "rkey": "3k4duaz5vfs2b", 143 174 "cid": "bafyreibjifzpqj6o6wcq3hejh7y4z4z2vmiklkvykc57tw3pcbx3kxifpm", 144 175 "PostRecord": { 145 - "$type": "app.bsky.feed.post", 146 - "text": "", 147 - "createdAt": "2023-08-07T05:46:14.423045Z", 148 - "embed": { 149 - "$type": "app.bsky.embed.images", 150 - "images": [ 151 - { 152 - "alt": "brief alt text description of the first image", 153 - "image": { 154 - "$type": "blob", 155 - "ref": { 156 - "$link": "bafkreibabalobzn6cd366ukcsjycp4yymjymgfxcv6xczmlgpemzkz3cfa" 157 - }, 158 - "mimeType": "image/webp", 159 - "size": 760898 160 - } 161 - }, 162 - { 163 - "alt": "brief alt text description of the second image", 164 - "image": { 165 - "$type": "blob", 166 - "ref": { 167 - "$link": "bafkreif3fouono2i3fmm5moqypwskh3yjtp7snd5hfq5pr453oggygyrte" 168 - }, 169 - "mimeType": "image/png", 170 - "size": 13208 171 - } 172 - } 173 - ] 174 - } 176 + "$type": "app.bsky.feed.post", 177 + "text": "", 178 + "createdAt": "2023-08-07T05:46:14.423045Z", 179 + "embed": { 180 + "$type": "app.bsky.embed.images", 181 + "images": [ 182 + { 183 + "alt": "brief alt text description of the first image", 184 + "image": { 185 + "$type": "blob", 186 + "ref": { 187 + "$link": "bafkreibabalobzn6cd366ukcsjycp4yymjymgfxcv6xczmlgpemzkz3cfa" 188 + }, 189 + "mimeType": "image/webp", 190 + "size": 760898 191 + } 192 + }, 193 + { 194 + "alt": "brief alt text description of the second image", 195 + "image": { 196 + "$type": "blob", 197 + "ref": { 198 + "$link": "bafkreif3fouono2i3fmm5moqypwskh3yjtp7snd5hfq5pr453oggygyrte" 199 + }, 200 + "mimeType": "image/png", 201 + "size": 13208 202 + } 203 + } 204 + ] 205 + } 175 206 }, 176 207 "doc_id": "did:plc:u5cwb2mwiv2bfq53cjufe6yn_3k4duaz5vfs2b", 177 208 "PostDoc": { 178 - "doc_index_ts": "2006-01-02T15:04:05.000Z", 179 - "did": "did:plc:u5cwb2mwiv2bfq53cjufe6yn", 180 - "handle": "handle.example.com", 181 - "record_rkey": "3k4duaz5vfs2b", 182 - "record_cid": "bafyreibjifzpqj6o6wcq3hejh7y4z4z2vmiklkvykc57tw3pcbx3kxifpm", 183 - "created_at": "2023-08-07T05:46:14.423045Z", 184 - "text": "", 185 - "embed_img_alt_text": [ 186 - "brief alt text description of the first image", 187 - "brief alt text description of the second image" 188 - ], 189 - "embed_img_count": 2 209 + "doc_index_ts": "2006-01-02T15:04:05.000Z", 210 + "did": "did:plc:u5cwb2mwiv2bfq53cjufe6yn", 211 + "handle": "handle.example.com", 212 + "record_rkey": "3k4duaz5vfs2b", 213 + "record_cid": "bafyreibjifzpqj6o6wcq3hejh7y4z4z2vmiklkvykc57tw3pcbx3kxifpm", 214 + "created_at": "2023-08-07T05:46:14.423045Z", 215 + "text": "", 216 + "embed_img_alt_text": [ 217 + "brief alt text description of the first image", 218 + "brief alt text description of the second image" 219 + ], 220 + "embed_img_count": 2 190 221 } 191 222 }, 192 223 { 193 224 "did": "did:plc:u5cwb2mwiv2bfq53cjufe6yn", 194 - "handle": "handle.example.com", 225 + "handle": "handle.example.com", 195 226 "rkey": "3k4duaz5vfs2b", 196 227 "cid": "bafyreibjifzpqj6o6wcq3hejh7y4z4z2vmiklkvykc57tw3pcbx3kxifpm", 197 228 "PostRecord": { 198 - "$type": "app.bsky.feed.post", 199 - "text": "学校から帰って熱いお風呂に入ったら力一杯がんばる", 200 - "createdAt": "2023-08-07T05:46:14.423045Z", 201 - "embed": { 202 - "$type": "app.bsky.embed.images", 203 - "images": [ 204 - { 205 - "alt": "brief alt text description of the first image ハリー・ポッター", 206 - "image": { 207 - "$type": "blob", 208 - "ref": { 209 - "$link": "bafkreibabalobzn6cd366ukcsjycp4yymjymgfxcv6xczmlgpemzkz3cfa" 210 - }, 211 - "mimeType": "image/webp", 212 - "size": 760898 213 - } 214 - }, 215 - { 216 - "alt": "brief alt text description of the second image", 217 - "image": { 218 - "$type": "blob", 219 - "ref": { 220 - "$link": "bafkreif3fouono2i3fmm5moqypwskh3yjtp7snd5hfq5pr453oggygyrte" 221 - }, 222 - "mimeType": "image/png", 223 - "size": 13208 224 - } 225 - } 226 - ] 227 - } 229 + "$type": "app.bsky.feed.post", 230 + "text": "学校から帰って熱いお風呂に入ったら力一杯がんばる", 231 + "createdAt": "2023-08-07T05:46:14.423045Z", 232 + "embed": { 233 + "$type": "app.bsky.embed.images", 234 + "images": [ 235 + { 236 + "alt": "brief alt text description of the first image ハリー・ポッター", 237 + "image": { 238 + "$type": "blob", 239 + "ref": { 240 + "$link": "bafkreibabalobzn6cd366ukcsjycp4yymjymgfxcv6xczmlgpemzkz3cfa" 241 + }, 242 + "mimeType": "image/webp", 243 + "size": 760898 244 + } 245 + }, 246 + { 247 + "alt": "brief alt text description of the second image", 248 + "image": { 249 + "$type": "blob", 250 + "ref": { 251 + "$link": "bafkreif3fouono2i3fmm5moqypwskh3yjtp7snd5hfq5pr453oggygyrte" 252 + }, 253 + "mimeType": "image/png", 254 + "size": 13208 255 + } 256 + } 257 + ] 258 + } 228 259 }, 229 260 "doc_id": "did:plc:u5cwb2mwiv2bfq53cjufe6yn_3k4duaz5vfs2b", 230 261 "PostDoc": { 231 - "doc_index_ts": "2006-01-02T15:04:05.000Z", 232 - "did": "did:plc:u5cwb2mwiv2bfq53cjufe6yn", 233 - "handle": "handle.example.com", 234 - "record_rkey": "3k4duaz5vfs2b", 235 - "record_cid": "bafyreibjifzpqj6o6wcq3hejh7y4z4z2vmiklkvykc57tw3pcbx3kxifpm", 236 - "created_at": "2023-08-07T05:46:14.423045Z", 237 - "text": "学校から帰って熱いお風呂に入ったら力一杯がんばる", 238 - "text_ja": "学校から帰って熱いお風呂に入ったら力一杯がんばる", 239 - "embed_img_alt_text": [ 240 - "brief alt text description of the first image ハリー・ポッター", 241 - "brief alt text description of the second image" 242 - ], 243 - "embed_img_alt_text_ja": [ 244 - "brief alt text description of the first image ハリー・ポッター" 245 - ], 246 - "embed_img_count": 2 262 + "doc_index_ts": "2006-01-02T15:04:05.000Z", 263 + "did": "did:plc:u5cwb2mwiv2bfq53cjufe6yn", 264 + "handle": "handle.example.com", 265 + "record_rkey": "3k4duaz5vfs2b", 266 + "record_cid": "bafyreibjifzpqj6o6wcq3hejh7y4z4z2vmiklkvykc57tw3pcbx3kxifpm", 267 + "created_at": "2023-08-07T05:46:14.423045Z", 268 + "text": "学校から帰って熱いお風呂に入ったら力一杯がんばる", 269 + "text_ja": "学校から帰って熱いお風呂に入ったら力一杯がんばる", 270 + "embed_img_alt_text": [ 271 + "brief alt text description of the first image ハリー・ポッター", 272 + "brief alt text description of the second image" 273 + ], 274 + "embed_img_alt_text_ja": [ 275 + "brief alt text description of the first image ハリー・ポッター" 276 + ], 277 + "embed_img_count": 2 278 + } 279 + }, 280 + { 281 + "did": "did:plc:u5cwb2mwiv2bfq53cjufe6yn", 282 + "handle": "handle.example.com", 283 + "rkey": "3k4duaz5vfs2d", 284 + "cid": "bafyreibjifzpqj6o6wcq3hejh7y4z4z2vmiklkvykc57tw3pcbx3kxifpm", 285 + "PostRecord": { 286 + "$type": "app.bsky.feed.post", 287 + "text": "", 288 + "createdAt": "2023-08-07T05:46:14.423045Z", 289 + "embed": { 290 + "$type": "app.bsky.embed.recordWithMedia", 291 + "media": { 292 + "$type": "app.bsky.embed.images", 293 + "images": [ 294 + { 295 + "alt": "brief alt text description of the first image", 296 + "image": { 297 + "$type": "blob", 298 + "ref": { 299 + "$link": "bafkreibabalobzn6cd366ukcsjycp4yymjymgfxcv6xczmlgpemzkz3cfa" 300 + }, 301 + "mimeType": "image/webp", 302 + "size": 760898 303 + } 304 + }, 305 + { 306 + "alt": "brief alt text description of the second image", 307 + "image": { 308 + "$type": "blob", 309 + "ref": { 310 + "$link": "bafkreif3fouono2i3fmm5moqypwskh3yjtp7snd5hfq5pr453oggygyrte" 311 + }, 312 + "mimeType": "image/png", 313 + "size": 13208 314 + } 315 + } 316 + ] 317 + }, 318 + "record": { 319 + "$type": "app.bsky.embed.record", 320 + "record": { 321 + "cid": "bafyreiecx6dujwoeqpdzl27w67z4h46hyklk3an4i4cvvmioaqb2qbyo5u", 322 + "uri": "at://did:plc:u5cwb2mwiv2bfq53cjufe6yn/app.bsky.feed.post/3k44deefqdk2g" 323 + } 324 + } 325 + } 326 + }, 327 + "doc_id": "did:plc:u5cwb2mwiv2bfq53cjufe6yn_3k4duaz5vfs2d", 328 + "PostDoc": { 329 + "doc_index_ts": "2006-01-02T15:04:05.000Z", 330 + "did": "did:plc:u5cwb2mwiv2bfq53cjufe6yn", 331 + "handle": "handle.example.com", 332 + "record_rkey": "3k4duaz5vfs2d", 333 + "record_cid": "bafyreibjifzpqj6o6wcq3hejh7y4z4z2vmiklkvykc57tw3pcbx3kxifpm", 334 + "created_at": "2023-08-07T05:46:14.423045Z", 335 + "text": "", 336 + "embed_img_alt_text": [ 337 + "brief alt text description of the first image", 338 + "brief alt text description of the second image" 339 + ], 340 + "embed_img_count": 2, 341 + "embed_aturi": "at://did:plc:u5cwb2mwiv2bfq53cjufe6yn/app.bsky.feed.post/3k44deefqdk2g" 247 342 } 248 343 } 249 344 ]