Last active
March 19, 2020 10:40
-
-
Save ngerakines/1a01762032e838e53c462f9db6d47d03 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"bufio" | |
"encoding/json" | |
"fmt" | |
"net/http" | |
"os" | |
"github.com/kr/pretty" | |
"github.com/piprate/json-gold/ld" | |
) | |
/* | |
Input OK | |
{"@context":["https://www.w3.org/ns/activitystreams",{"ostatus":"http://ostatus.org#","atomUri":"ostatus:atomUri","inReplyToAtomUri":"ostatus:inReplyToAtomUri","conversation":"ostatus:conversation","sensitive":"as:sensitive","toot":"http://joinmastodon.org/ns#","votersCount":"toot:votersCount"}],"id":"https://mastodon.social/users/ngerakines/statuses/103849134994060072/activity","type":"Create","actor":"https://mastodon.social/users/ngerakines","published":"2020-03-19T10:00:45Z","to":["https://www.w3.org/ns/activitystreams#Public"],"cc":["https://mastodon.social/users/ngerakines/followers"],"object":{"id":"https://mastodon.social/users/ngerakines/statuses/103849134994060072","type":"Note","summary":null,"inReplyTo":null,"published":"2020-03-19T10:00:45Z","url":"https://mastodon.social/@ngerakines/103849134994060072","attributedTo":"https://mastodon.social/users/ngerakines","to":["https://www.w3.org/ns/activitystreams#Public"],"cc":["https://mastodon.social/users/ngerakines/followers"],"sensitive":false,"atomUri":"https://mastodon.social/users/ngerakines/statuses/103849134994060072","inReplyToAtomUri":null,"conversation":"tag:mastodon.social,2020-03-19:objectId=160727436:objectType=Conversation","content":"\u003cp\u003eld+json is kind of weird\u003c/p\u003e","contentMap":{"lb":"\u003cp\u003eld+json is kind of weird\u003c/p\u003e"},"attachment":[],"tag":[],"replies":{"id":"https://mastodon.social/users/ngerakines/statuses/103849134994060072/replies","type":"Collection","first":{"type":"CollectionPage","next":"https://mastodon.social/users/ngerakines/statuses/103849134994060072/replies?only_other_accounts=true\u0026page=true","partOf":"https://mastodon.social/users/ngerakines/statuses/103849134994060072/replies","items":[]}}},"signature":{"type":"RsaSignature2017","creator":"https://mastodon.social/users/ngerakines#main-key","created":"2020-03-19T10:00:45Z","signatureValue":"OA35CkmjxaUGh/aO6HYbqQ9T2Rkj6Agt0vp+Qif7/PUBuMpRed/eXg4O+NXkIEvv6s4DHhwsQbUuQf792fj4u1KlUTQVGVrMzx1uBvf06ye/Gz74jpn9I2h41a3B3MZP02tgBXWrB4PaNBEFlg58y8vk3yK/FTRZ4hlcy5FFFZKJNzfP8F2UqQb61aqwkavEwme2Tn8KpDWR/HoR8Qh2WsymESObX/4GxavuZD9hxszaqhOterpZuDOT0FbMS32NsLXUr7Vhlr3DYkau+54icUbl9qlD1JCl/0VN7fQ6Xcu8LX4nQF74BwJtQrB7h3bIfCFVP7uRBhLmUkAahLkotQ=="}} | |
Input not OK | |
{"cc": ["https://aqueous-sea-10253.herokuapp.com/users/nick/followers"], "id": "https://aqueous-sea-10253.herokuapp.com/activities/8d9d8241-db6a-4979-9f57-f34e3a42f391", "to": ["https://www.w3.org/ns/activitystreams#Public"], "type": "Create", "actor": "https://aqueous-sea-10253.herokuapp.com/users/nick", "object": {"cc": ["https://aqueous-sea-10253.herokuapp.com/users/nick/followers"], "id": "https://aqueous-sea-10253.herokuapp.com/objects/1c8c7965-e333-476e-877e-118d67cc267a", "to": ["https://www.w3.org/ns/activitystreams#Public"], "tag": [{"id": "https://aqueous-sea-10253.herokuapp.com/emoji/Firefox.gif", "icon": {"url": "https://aqueous-sea-10253.herokuapp.com/emoji/Firefox.gif", "type": "Image"}, "name": ":firefox:", "type": "Emoji", "updated": "1970-01-01T00:00:00Z"}], "type": "Note", "actor": "https://aqueous-sea-10253.herokuapp.com/users/nick", "content": "<p>:firefox: How does emoji work? 🔢</p>\n", "context": "https://aqueous-sea-10253.herokuapp.com/contexts/11969b9d-a81b-4cc0-bf23-ab82731efaab", "summary": "", "published": "2020-03-14T20:22:09.614896Z", "sensitive": false, "attachment": [], "attributedTo": "https://aqueous-sea-10253.herokuapp.com/users/nick", "conversation": "https://aqueous-sea-10253.herokuapp.com/contexts/11969b9d-a81b-4cc0-bf23-ab82731efaab"}, "context": "https://aqueous-sea-10253.herokuapp.com/contexts/11969b9d-a81b-4cc0-bf23-ab82731efaab", "@context": ["https://www.w3.org/ns/activitystreams", "https://aqueous-sea-10253.herokuapp.com/schemas/litepub-0.1.jsonld", {"@language": "und"}], "published": "2020-03-14T20:22:09.608456Z", "context_id": 4441, "directMessage": false} | |
*/ | |
func main() { | |
reader := bufio.NewReader(os.Stdin) | |
decoder := json.NewDecoder(reader) | |
var doc map[string]interface{} | |
if err := decoder.Decode(&doc); err != nil { | |
panic(err) | |
} | |
fmt.Println("=== PRETTY ===") | |
pretty.Println(doc) | |
documentContext := map[string]interface{}{ | |
"@context": "https://www.w3.org/ns/activitystreams", | |
} | |
fmt.Println("=== JSON LD ===") | |
result, err := compactJSONLD(doc, documentContext) | |
if err != nil { | |
panic(err) | |
} | |
pretty.Println(result) | |
} | |
func compactJSONLD(document, context map[string]interface{}) (map[string]interface{}, error) { | |
proc := ld.NewJsonLdProcessor() | |
options := ld.NewJsonLdOptions("https://www.w3.org/ns/activitystreams") | |
// options.ProcessingMode = ld.JsonLd_1_1 | |
options.DocumentLoader = DebugDocLoader{ld.NewDefaultDocumentLoader(http.DefaultClient)} | |
return proc.Compact(document, context, options) | |
} | |
type DebugDocLoader struct { | |
DocumentLoader ld.DocumentLoader | |
} | |
func (ddl DebugDocLoader) LoadDocument(u string) (*ld.RemoteDocument, error) { | |
fmt.Println("=== LoadDocument ===") | |
pretty.Println(u) | |
r, err := ddl.DocumentLoader.LoadDocument(u) | |
pretty.Println(r) | |
pretty.Println(err) | |
return r, err | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
go run bug.go | |
{"cc": ["https://aqueous-sea-10253.herokuapp.com/users/nick/followers"], "id": "https://aqueous-sea-10253.herokuapp.com/activities/8d9d8241-db6a-4979-9f57-f34e3a42f391", "to": ["https://www.w3.org/ns/activitystreams#Public"], "type": "Create", "actor": "https://aqueous-sea-10253.herokuapp.com/users/nick", "object": {"cc": ["https://aqueous-sea-10253.herokuapp.com/users/nick/followers"], "id": "https://aqueous-sea-10253.herokuapp.com/objects/1c8c7965-e333-476e-877e-118d67cc267a", "to": ["https://www.w3.org/ns/activitystreams#Public"], "tag": [{"id": "https://aqueous-sea-10253.herokuapp.com/emoji/Firefox.gif", "icon": {"url": "https://aqueous-sea-10253.herokuapp.com/emoji/Firefox.gif", "type": "Image"}, "name": ":firefox:", "type": "Emoji", "updated": "1970-01-01T00:00:00Z"}], "type": "Note", "actor": "https://aqueous-sea-10253.herokuapp.com/users/nick", "content": "<p>:firefox: How does emoji work? 🔢</p>\n", "context": "https://aqueous-sea-10253.herokuapp.com/contexts/11969b9d-a81b-4cc0-bf23-ab82731efaab", "summary": "", "published": "2020-03-14T20:22:09.614896Z", "sensitive": false, "attachment": [], "attributedTo": "https://aqueous-sea-10253.herokuapp.com/users/nick", "conversation": "https://aqueous-sea-10253.herokuapp.com/contexts/11969b9d-a81b-4cc0-bf23-ab82731efaab"}, "context": "https://aqueous-sea-10253.herokuapp.com/contexts/11969b9d-a81b-4cc0-bf23-ab82731efaab", "@context": ["https://www.w3.org/ns/activitystreams", "https://aqueous-sea-10253.herokuapp.com/schemas/litepub-0.1.jsonld", {"@language": "und"}], "published": "2020-03-14T20:22:09.608456Z", "context_id": 4441, "directMessage": false} | |
=== PRETTY === | |
map[string]interface {}{ | |
"id": "https://aqueous-sea-10253.herokuapp.com/activities/8d9d8241-db6a-4979-9f57-f34e3a42f391", | |
"to": []interface {}{ | |
"https://www.w3.org/ns/activitystreams#Public", | |
}, | |
"type": "Create", | |
"context": "https://aqueous-sea-10253.herokuapp.com/contexts/11969b9d-a81b-4cc0-bf23-ab82731efaab", | |
"@context": []interface {}{ | |
"https://www.w3.org/ns/activitystreams", | |
"https://aqueous-sea-10253.herokuapp.com/schemas/litepub-0.1.jsonld", | |
map[string]interface {}{ | |
"@language": "und", | |
}, | |
}, | |
"directMessage": bool(false), | |
"cc": []interface {}{ | |
"https://aqueous-sea-10253.herokuapp.com/users/nick/followers", | |
}, | |
"object": map[string]interface {}{ | |
"sensitive": bool(false), | |
"conversation": "https://aqueous-sea-10253.herokuapp.com/contexts/11969b9d-a81b-4cc0-bf23-ab82731efaab", | |
"tag": []interface {}{ | |
map[string]interface {}{ | |
"id": "https://aqueous-sea-10253.herokuapp.com/emoji/Firefox.gif", | |
"icon": map[string]interface {}{ | |
"type": "Image", | |
"url": "https://aqueous-sea-10253.herokuapp.com/emoji/Firefox.gif", | |
}, | |
"name": ":firefox:", | |
"type": "Emoji", | |
"updated": "1970-01-01T00:00:00Z", | |
}, | |
}, | |
"type": "Note", | |
"attributedTo": "https://aqueous-sea-10253.herokuapp.com/users/nick", | |
"summary": "", | |
"published": "2020-03-14T20:22:09.614896Z", | |
"context": "https://aqueous-sea-10253.herokuapp.com/contexts/11969b9d-a81b-4cc0-bf23-ab82731efaab", | |
"attachment": []interface {}{ | |
}, | |
"cc": []interface {}{ | |
"https://aqueous-sea-10253.herokuapp.com/users/nick/followers", | |
}, | |
"id": "https://aqueous-sea-10253.herokuapp.com/objects/1c8c7965-e333-476e-877e-118d67cc267a", | |
"content": "<p>:firefox: How does emoji work? 🔢</p>\n", | |
"to": []interface {}{ | |
"https://www.w3.org/ns/activitystreams#Public", | |
}, | |
"actor": "https://aqueous-sea-10253.herokuapp.com/users/nick", | |
}, | |
"published": "2020-03-14T20:22:09.608456Z", | |
"context_id": float64(4441), | |
"actor": "https://aqueous-sea-10253.herokuapp.com/users/nick", | |
} | |
=== JSON LD === | |
=== LoadDocument === | |
https://www.w3.org/ns/activitystreams | |
&ld.RemoteDocument{ | |
DocumentURL: "https://www.w3.org/ns/activitystreams", | |
Document: map[string]interface {}{ | |
"@context": map[string]interface {}{ | |
"Like": "as:Like", | |
"OrderedCollectionPage": "as:OrderedCollectionPage", | |
"location": map[string]interface {}{ | |
"@id": "as:location", | |
"@type": "@id", | |
}, | |
"rel": "as:rel", | |
"uploadMedia": map[string]interface {}{ | |
"@id": "as:uploadMedia", | |
"@type": "@id", | |
}, | |
"oauthTokenEndpoint": map[string]interface {}{ | |
"@id": "as:oauthTokenEndpoint", | |
"@type": "@id", | |
}, | |
"altitude": map[string]interface {}{ | |
"@id": "as:altitude", | |
"@type": "xsd:float", | |
}, | |
"name": "as:name", | |
"Group": "as:Group", | |
"Note": "as:Note", | |
"Page": "as:Page", | |
"IsContact": "as:IsContact", | |
"origin": map[string]interface {}{ | |
"@id": "as:origin", | |
"@type": "@id", | |
}, | |
"Mention": "as:Mention", | |
"radius": map[string]interface {}{ | |
"@type": "xsd:float", | |
"@id": "as:radius", | |
}, | |
"followers": map[string]interface {}{ | |
"@id": "as:followers", | |
"@type": "@id", | |
}, | |
"streams": map[string]interface {}{ | |
"@id": "as:streams", | |
"@type": "@id", | |
}, | |
"Public": map[string]interface {}{ | |
"@id": "as:Public", | |
"@type": "@id", | |
}, | |
"as": "https://www.w3.org/ns/activitystreams#", | |
"next": map[string]interface {}{ | |
"@id": "as:next", | |
"@type": "@id", | |
}, | |
"following": map[string]interface {}{ | |
"@id": "as:following", | |
"@type": "@id", | |
}, | |
"attachment": map[string]interface {}{ | |
"@id": "as:attachment", | |
"@type": "@id", | |
}, | |
"current": map[string]interface {}{ | |
"@id": "as:current", | |
"@type": "@id", | |
}, | |
"mediaType": "as:mediaType", | |
"liked": map[string]interface {}{ | |
"@id": "as:liked", | |
"@type": "@id", | |
}, | |
"Add": "as:Add", | |
"IsFollowedBy": "as:IsFollowedBy", | |
"relationship": map[string]interface {}{ | |
"@id": "as:relationship", | |
"@type": "@id", | |
}, | |
"last": map[string]interface {}{ | |
"@id": "as:last", | |
"@type": "@id", | |
}, | |
"result": map[string]interface {}{ | |
"@id": "as:result", | |
"@type": "@id", | |
}, | |
"oneOf": map[string]interface {}{ | |
"@id": "as:oneOf", | |
"@type": "@id", | |
}, | |
"startTime": map[string]interface {}{ | |
"@id": "as:startTime", | |
"@type": "xsd:dateTime", | |
}, | |
"Place": "as:Place", | |
"Move": "as:Move", | |
"partOf": map[string]interface {}{ | |
"@id": "as:partOf", | |
"@type": "@id", | |
}, | |
"Flag": "as:Flag", | |
"attributedTo": map[string]interface {}{ | |
"@id": "as:attributedTo", | |
"@type": "@id", | |
}, | |
"closed": map[string]interface {}{ | |
"@id": "as:closed", | |
"@type": "xsd:dateTime", | |
}, | |
"summary": "as:summary", | |
"Activity": "as:Activity", | |
"Undo": "as:Undo", | |
"audience": map[string]interface {}{ | |
"@id": "as:audience", | |
"@type": "@id", | |
}, | |
"inbox": map[string]interface {}{ | |
"@id": "ldp:inbox", | |
"@type": "@id", | |
}, | |
"to": map[string]interface {}{ | |
"@id": "as:to", | |
"@type": "@id", | |
}, | |
"source": "as:source", | |
"Document": "as:Document", | |
"Ignore": "as:Ignore", | |
"Leave": "as:Leave", | |
"Reject": "as:Reject", | |
"bcc": map[string]interface {}{ | |
"@id": "as:bcc", | |
"@type": "@id", | |
}, | |
"Arrive": "as:Arrive", | |
"Collection": "as:Collection", | |
"Person": "as:Person", | |
"units": "as:units", | |
"deleted": map[string]interface {}{ | |
"@type": "xsd:dateTime", | |
"@id": "as:deleted", | |
}, | |
"CollectionPage": "as:CollectionPage", | |
"nameMap": map[string]interface {}{ | |
"@id": "as:name", | |
"@container": "@language", | |
}, | |
"totalItems": map[string]interface {}{ | |
"@id": "as:totalItems", | |
"@type": "xsd:nonNegativeInteger", | |
}, | |
"startIndex": map[string]interface {}{ | |
"@id": "as:startIndex", | |
"@type": "xsd:nonNegativeInteger", | |
}, | |
"id": "@id", | |
"Announce": "as:Announce", | |
"Service": "as:Service", | |
"TentativeAccept": "as:TentativeAccept", | |
"target": map[string]interface {}{ | |
"@id": "as:target", | |
"@type": "@id", | |
}, | |
"preview": map[string]interface {}{ | |
"@id": "as:preview", | |
"@type": "@id", | |
}, | |
"summaryMap": map[string]interface {}{ | |
"@id": "as:summary", | |
"@container": "@language", | |
}, | |
"describes": map[string]interface {}{ | |
"@id": "as:describes", | |
"@type": "@id", | |
}, | |
"Link": "as:Link", | |
"Organization": "as:Organization", | |
"Remove": "as:Remove", | |
"Update": "as:Update", | |
"subject": map[string]interface {}{ | |
"@id": "as:subject", | |
"@type": "@id", | |
}, | |
"oauthAuthorizationEndpoint": map[string]interface {}{ | |
"@type": "@id", | |
"@id": "as:oauthAuthorizationEndpoint", | |
}, | |
"xsd": "http://www.w3.org/2001/XMLSchema#", | |
"Video": "as:Video", | |
"items": map[string]interface {}{ | |
"@type": "@id", | |
"@id": "as:items", | |
}, | |
"Event": "as:Event", | |
"Listen": "as:Listen", | |
"contentMap": map[string]interface {}{ | |
"@id": "as:content", | |
"@container": "@language", | |
}, | |
"width": map[string]interface {}{ | |
"@id": "as:width", | |
"@type": "xsd:nonNegativeInteger", | |
}, | |
"Block": "as:Block", | |
"Travel": "as:Travel", | |
"height": map[string]interface {}{ | |
"@id": "as:height", | |
"@type": "xsd:nonNegativeInteger", | |
}, | |
"longitude": map[string]interface {}{ | |
"@id": "as:longitude", | |
"@type": "xsd:float", | |
}, | |
"ldp": "http://www.w3.org/ns/ldp#", | |
"Audio": "as:Audio", | |
"Tombstone": "as:Tombstone", | |
"context": map[string]interface {}{ | |
"@id": "as:context", | |
"@type": "@id", | |
}, | |
"orderedItems": map[string]interface {}{ | |
"@id": "as:items", | |
"@type": "@id", | |
"@container": "@list", | |
}, | |
"IntransitiveActivity": "as:IntransitiveActivity", | |
"Relationship": "as:Relationship", | |
"Read": "as:Read", | |
"first": map[string]interface {}{ | |
"@id": "as:first", | |
"@type": "@id", | |
}, | |
"Application": "as:Application", | |
"Image": "as:Image", | |
"object": map[string]interface {}{ | |
"@id": "as:object", | |
"@type": "@id", | |
}, | |
"outbox": map[string]interface {}{ | |
"@id": "as:outbox", | |
"@type": "@id", | |
}, | |
"endpoints": map[string]interface {}{ | |
"@type": "@id", | |
"@id": "as:endpoints", | |
}, | |
"View": "as:View", | |
"bto": map[string]interface {}{ | |
"@id": "as:bto", | |
"@type": "@id", | |
}, | |
"prev": map[string]interface {}{ | |
"@id": "as:prev", | |
"@type": "@id", | |
}, | |
"likes": map[string]interface {}{ | |
"@type": "@id", | |
"@id": "as:likes", | |
}, | |
"Follow": "as:Follow", | |
"Object": "as:Object", | |
"image": map[string]interface {}{ | |
"@id": "as:image", | |
"@type": "@id", | |
}, | |
"anyOf": map[string]interface {}{ | |
"@id": "as:anyOf", | |
"@type": "@id", | |
}, | |
"preferredUsername": "as:preferredUsername", | |
"@vocab": "_:", | |
"generator": map[string]interface {}{ | |
"@id": "as:generator", | |
"@type": "@id", | |
}, | |
"icon": map[string]interface {}{ | |
"@id": "as:icon", | |
"@type": "@id", | |
}, | |
"hreflang": "as:hreflang", | |
"shares": map[string]interface {}{ | |
"@id": "as:shares", | |
"@type": "@id", | |
}, | |
"Dislike": "as:Dislike", | |
"Invite": "as:Invite", | |
"cc": map[string]interface {}{ | |
"@id": "as:cc", | |
"@type": "@id", | |
}, | |
"content": "as:content", | |
"formerType": map[string]interface {}{ | |
"@id": "as:formerType", | |
"@type": "@id", | |
}, | |
"IsFollowing": "as:IsFollowing", | |
"published": map[string]interface {}{ | |
"@id": "as:published", | |
"@type": "xsd:dateTime", | |
}, | |
"provideClientKey": map[string]interface {}{ | |
"@id": "as:provideClientKey", | |
"@type": "@id", | |
}, | |
"signClientKey": map[string]interface {}{ | |
"@id": "as:signClientKey", | |
"@type": "@id", | |
}, | |
"OrderedCollection": "as:OrderedCollection", | |
"inReplyTo": map[string]interface {}{ | |
"@id": "as:inReplyTo", | |
"@type": "@id", | |
}, | |
"tag": map[string]interface {}{ | |
"@id": "as:tag", | |
"@type": "@id", | |
}, | |
"url": map[string]interface {}{ | |
"@id": "as:url", | |
"@type": "@id", | |
}, | |
"updated": map[string]interface {}{ | |
"@id": "as:updated", | |
"@type": "xsd:dateTime", | |
}, | |
"Offer": "as:Offer", | |
"Profile": "as:Profile", | |
"IsMember": "as:IsMember", | |
"instrument": map[string]interface {}{ | |
"@id": "as:instrument", | |
"@type": "@id", | |
}, | |
"endTime": map[string]interface {}{ | |
"@type": "xsd:dateTime", | |
"@id": "as:endTime", | |
}, | |
"Accept": "as:Accept", | |
"Delete": "as:Delete", | |
"duration": map[string]interface {}{ | |
"@id": "as:duration", | |
"@type": "xsd:duration", | |
}, | |
"proxyUrl": map[string]interface {}{ | |
"@id": "as:proxyUrl", | |
"@type": "@id", | |
}, | |
"sharedInbox": map[string]interface {}{ | |
"@id": "as:sharedInbox", | |
"@type": "@id", | |
}, | |
"TentativeReject": "as:TentativeReject", | |
"actor": map[string]interface {}{ | |
"@id": "as:actor", | |
"@type": "@id", | |
}, | |
"latitude": map[string]interface {}{ | |
"@id": "as:latitude", | |
"@type": "xsd:float", | |
}, | |
"type": "@type", | |
"Article": "as:Article", | |
"Create": "as:Create", | |
"Join": "as:Join", | |
"Question": "as:Question", | |
"accuracy": map[string]interface {}{ | |
"@id": "as:accuracy", | |
"@type": "xsd:float", | |
}, | |
"replies": map[string]interface {}{ | |
"@id": "as:replies", | |
"@type": "@id", | |
}, | |
"href": map[string]interface {}{ | |
"@id": "as:href", | |
"@type": "@id", | |
}, | |
}, | |
}, | |
ContextURL: "", | |
} | |
nil | |
=== LoadDocument === | |
https://aqueous-sea-10253.herokuapp.com/schemas/litepub-0.1.jsonld | |
&ld.RemoteDocument{ | |
DocumentURL: "https://aqueous-sea-10253.herokuapp.com/schemas/litepub-0.1.jsonld", | |
Document: map[string]interface {}{ | |
"@context": []interface {}{ | |
"https://www.w3.org/ns/activitystreams", | |
"https://w3id.org/security/v1", | |
map[string]interface {}{ | |
"Hashtag": "as:Hashtag", | |
"atomUri": "ostatus:atomUri", | |
"schema": "http://schema.org#", | |
"value": "schema:value", | |
"listMessage": map[string]interface {}{ | |
"@id": "litepub:listMessage", | |
"@type": "@id", | |
}, | |
"oauthRegistrationEndpoint": map[string]interface {}{ | |
"@id": "litepub:oauthRegistrationEndpoint", | |
"@type": "@id", | |
}, | |
"EmojiReaction": "litepub:EmojiReaction", | |
"alsoKnownAs": map[string]interface {}{ | |
"@type": "@id", | |
"@id": "as:alsoKnownAs", | |
}, | |
"PropertyValue": "schema:PropertyValue", | |
"conversation": map[string]interface {}{ | |
"@id": "ostatus:conversation", | |
"@type": "@id", | |
}, | |
"toot": "http://joinmastodon.org/ns#", | |
"sensitive": "as:sensitive", | |
"Emoji": "toot:Emoji", | |
"discoverable": "toot:discoverable", | |
"directMessage": "litepub:directMessage", | |
"manuallyApprovesFollowers": "as:manuallyApprovesFollowers", | |
"ostatus": "http://ostatus.org#", | |
"litepub": "http://litepub.social/ns#", | |
"invisible": "litepub:invisible", | |
}, | |
}, | |
}, | |
ContextURL: "", | |
} | |
nil | |
panic: recursive context inclusion: https://www.w3.org/ns/activitystreams | |
goroutine 1 [running]: | |
main.main() | |
/home/ngerakines/development/github.com/ngerakines/tavern/tmp/bug.go:40 +0x413 | |
exit status 2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment