forked from berserker/microblog
Slightly reduce RAM usage (#7301)
* No need to re-require sidekiq plugins, they are required via Gemfile * Add derailed_benchmarks tool, no need to require TTY gems in Gemfile * Replace ruby-oembed with FetchOEmbedService Reduce startup by 45382 allocated objects * Remove preloaded JSON-LD in favour of caching HTTP responses Reduce boot RAM by about 6 MiB * Fix tests * Fix test suite by stubbing out JSON-LD contextslocal
parent
71a7cea73f
commit
cb5b5cb5f7
76 changed files with 784 additions and 471 deletions
@ -1,47 +0,0 @@ |
|||||||
# frozen_string_literal: true |
|
||||||
|
|
||||||
class ProviderDiscovery < OEmbed::ProviderDiscovery |
|
||||||
class << self |
|
||||||
def get(url, **options) |
|
||||||
provider = discover_provider(url, options) |
|
||||||
|
|
||||||
options.delete(:html) |
|
||||||
|
|
||||||
provider.get(url, options) |
|
||||||
end |
|
||||||
|
|
||||||
def discover_provider(url, **options) |
|
||||||
format = options[:format] |
|
||||||
|
|
||||||
html = if options[:html] |
|
||||||
Nokogiri::HTML(options[:html]) |
|
||||||
else |
|
||||||
Request.new(:get, url).perform do |res| |
|
||||||
raise OEmbed::NotFound, url if res.code != 200 || res.mime_type != 'text/html' |
|
||||||
Nokogiri::HTML(res.body_with_limit) |
|
||||||
end |
|
||||||
end |
|
||||||
|
|
||||||
if format.nil? || format == :json |
|
||||||
provider_endpoint ||= html.at_xpath('//link[@type="application/json+oembed"]')&.attribute('href')&.value |
|
||||||
format ||= :json if provider_endpoint |
|
||||||
end |
|
||||||
|
|
||||||
if format.nil? || format == :xml |
|
||||||
provider_endpoint ||= html.at_xpath('//link[@type="text/xml+oembed"]')&.attribute('href')&.value |
|
||||||
format ||= :xml if provider_endpoint |
|
||||||
end |
|
||||||
|
|
||||||
raise OEmbed::NotFound, url if provider_endpoint.nil? |
|
||||||
begin |
|
||||||
provider_endpoint = Addressable::URI.parse(provider_endpoint) |
|
||||||
provider_endpoint.query = nil |
|
||||||
provider_endpoint = provider_endpoint.to_s |
|
||||||
rescue Addressable::URI::InvalidURIError |
|
||||||
raise OEmbed::NotFound, url |
|
||||||
end |
|
||||||
|
|
||||||
OEmbed::Provider.new(provider_endpoint, format) |
|
||||||
end |
|
||||||
end |
|
||||||
end |
|
@ -0,0 +1,71 @@ |
|||||||
|
# frozen_string_literal: true |
||||||
|
|
||||||
|
class FetchOEmbedService |
||||||
|
attr_reader :url, :options, :format, :endpoint_url |
||||||
|
|
||||||
|
def call(url, options = {}) |
||||||
|
@url = url |
||||||
|
@options = options |
||||||
|
|
||||||
|
discover_endpoint! |
||||||
|
fetch! |
||||||
|
end |
||||||
|
|
||||||
|
private |
||||||
|
|
||||||
|
def discover_endpoint! |
||||||
|
return if html.nil? |
||||||
|
|
||||||
|
@format = @options[:format] |
||||||
|
page = Nokogiri::HTML(html) |
||||||
|
|
||||||
|
if @format.nil? || @format == :json |
||||||
|
@endpoint_url ||= page.at_xpath('//link[@type="application/json+oembed"]')&.attribute('href')&.value |
||||||
|
@format ||= :json if @endpoint_url |
||||||
|
end |
||||||
|
|
||||||
|
if @format.nil? || @format == :xml |
||||||
|
@endpoint_url ||= page.at_xpath('//link[@type="text/xml+oembed"]')&.attribute('href')&.value |
||||||
|
@format ||= :xml if @endpoint_url |
||||||
|
end |
||||||
|
|
||||||
|
return if @endpoint_url.blank? |
||||||
|
|
||||||
|
@endpoint_url = Addressable::URI.parse(@endpoint_url).to_s |
||||||
|
rescue Addressable::URI::InvalidURIError |
||||||
|
@endpoint_url = nil |
||||||
|
end |
||||||
|
|
||||||
|
def fetch! |
||||||
|
return if @endpoint_url.blank? |
||||||
|
|
||||||
|
body = Request.new(:get, @endpoint_url).perform do |res| |
||||||
|
res.code != 200 ? nil : res.body_with_limit |
||||||
|
end |
||||||
|
|
||||||
|
validate(parse_for_format(body)) unless body.nil? |
||||||
|
rescue Oj::ParseError, Ox::ParseError |
||||||
|
nil |
||||||
|
end |
||||||
|
|
||||||
|
def parse_for_format(body) |
||||||
|
case @format |
||||||
|
when :json |
||||||
|
Oj.load(body, mode: :strict)&.with_indifferent_access |
||||||
|
when :xml |
||||||
|
Ox.load(body, mode: :hash_no_attrs)&.with_indifferent_access&.dig(:oembed) |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
def validate(oembed) |
||||||
|
oembed if oembed[:version] == '1.0' && oembed[:type].present? |
||||||
|
end |
||||||
|
|
||||||
|
def html |
||||||
|
return @html if defined?(@html) |
||||||
|
|
||||||
|
@html = @options[:html] || Request.new(:get, @url).perform do |res| |
||||||
|
res.code != 200 || res.mime_type != 'text/html' ? nil : res.body_with_limit |
||||||
|
end |
||||||
|
end |
||||||
|
end |
@ -1,5 +0,0 @@ |
|||||||
# frozen_string_literal: true |
|
||||||
|
|
||||||
require_relative '../../lib/json_ld/identity' |
|
||||||
require_relative '../../lib/json_ld/security' |
|
||||||
require_relative '../../lib/json_ld/activitystreams' |
|
@ -1,4 +0,0 @@ |
|||||||
# frozen_string_literal: true |
|
||||||
|
|
||||||
require_relative '../../app/lib/provider_discovery' |
|
||||||
OEmbed::Providers.register_fallback(ProviderDiscovery) |
|
@ -1,153 +0,0 @@ |
|||||||
# -*- encoding: utf-8 -*- |
|
||||||
# frozen_string_literal: true |
|
||||||
# This file generated automatically from https://www.w3.org/ns/activitystreams |
|
||||||
require 'json/ld' |
|
||||||
class JSON::LD::Context |
|
||||||
add_preloaded("https://www.w3.org/ns/activitystreams") do |
|
||||||
new(vocab: "_:", processingMode: "json-ld-1.0", term_definitions: { |
|
||||||
"Accept" => TermDefinition.new("Accept", id: "https://www.w3.org/ns/activitystreams#Accept", simple: true), |
|
||||||
"Activity" => TermDefinition.new("Activity", id: "https://www.w3.org/ns/activitystreams#Activity", simple: true), |
|
||||||
"Add" => TermDefinition.new("Add", id: "https://www.w3.org/ns/activitystreams#Add", simple: true), |
|
||||||
"Announce" => TermDefinition.new("Announce", id: "https://www.w3.org/ns/activitystreams#Announce", simple: true), |
|
||||||
"Application" => TermDefinition.new("Application", id: "https://www.w3.org/ns/activitystreams#Application", simple: true), |
|
||||||
"Arrive" => TermDefinition.new("Arrive", id: "https://www.w3.org/ns/activitystreams#Arrive", simple: true), |
|
||||||
"Article" => TermDefinition.new("Article", id: "https://www.w3.org/ns/activitystreams#Article", simple: true), |
|
||||||
"Audio" => TermDefinition.new("Audio", id: "https://www.w3.org/ns/activitystreams#Audio", simple: true), |
|
||||||
"Block" => TermDefinition.new("Block", id: "https://www.w3.org/ns/activitystreams#Block", simple: true), |
|
||||||
"Collection" => TermDefinition.new("Collection", id: "https://www.w3.org/ns/activitystreams#Collection", simple: true), |
|
||||||
"CollectionPage" => TermDefinition.new("CollectionPage", id: "https://www.w3.org/ns/activitystreams#CollectionPage", simple: true), |
|
||||||
"Create" => TermDefinition.new("Create", id: "https://www.w3.org/ns/activitystreams#Create", simple: true), |
|
||||||
"Delete" => TermDefinition.new("Delete", id: "https://www.w3.org/ns/activitystreams#Delete", simple: true), |
|
||||||
"Dislike" => TermDefinition.new("Dislike", id: "https://www.w3.org/ns/activitystreams#Dislike", simple: true), |
|
||||||
"Document" => TermDefinition.new("Document", id: "https://www.w3.org/ns/activitystreams#Document", simple: true), |
|
||||||
"Event" => TermDefinition.new("Event", id: "https://www.w3.org/ns/activitystreams#Event", simple: true), |
|
||||||
"Flag" => TermDefinition.new("Flag", id: "https://www.w3.org/ns/activitystreams#Flag", simple: true), |
|
||||||
"Follow" => TermDefinition.new("Follow", id: "https://www.w3.org/ns/activitystreams#Follow", simple: true), |
|
||||||
"Group" => TermDefinition.new("Group", id: "https://www.w3.org/ns/activitystreams#Group", simple: true), |
|
||||||
"Ignore" => TermDefinition.new("Ignore", id: "https://www.w3.org/ns/activitystreams#Ignore", simple: true), |
|
||||||
"Image" => TermDefinition.new("Image", id: "https://www.w3.org/ns/activitystreams#Image", simple: true), |
|
||||||
"IntransitiveActivity" => TermDefinition.new("IntransitiveActivity", id: "https://www.w3.org/ns/activitystreams#IntransitiveActivity", simple: true), |
|
||||||
"Invite" => TermDefinition.new("Invite", id: "https://www.w3.org/ns/activitystreams#Invite", simple: true), |
|
||||||
"IsContact" => TermDefinition.new("IsContact", id: "https://www.w3.org/ns/activitystreams#IsContact", simple: true), |
|
||||||
"IsFollowedBy" => TermDefinition.new("IsFollowedBy", id: "https://www.w3.org/ns/activitystreams#IsFollowedBy", simple: true), |
|
||||||
"IsFollowing" => TermDefinition.new("IsFollowing", id: "https://www.w3.org/ns/activitystreams#IsFollowing", simple: true), |
|
||||||
"IsMember" => TermDefinition.new("IsMember", id: "https://www.w3.org/ns/activitystreams#IsMember", simple: true), |
|
||||||
"Join" => TermDefinition.new("Join", id: "https://www.w3.org/ns/activitystreams#Join", simple: true), |
|
||||||
"Leave" => TermDefinition.new("Leave", id: "https://www.w3.org/ns/activitystreams#Leave", simple: true), |
|
||||||
"Like" => TermDefinition.new("Like", id: "https://www.w3.org/ns/activitystreams#Like", simple: true), |
|
||||||
"Link" => TermDefinition.new("Link", id: "https://www.w3.org/ns/activitystreams#Link", simple: true), |
|
||||||
"Listen" => TermDefinition.new("Listen", id: "https://www.w3.org/ns/activitystreams#Listen", simple: true), |
|
||||||
"Mention" => TermDefinition.new("Mention", id: "https://www.w3.org/ns/activitystreams#Mention", simple: true), |
|
||||||
"Move" => TermDefinition.new("Move", id: "https://www.w3.org/ns/activitystreams#Move", simple: true), |
|
||||||
"Note" => TermDefinition.new("Note", id: "https://www.w3.org/ns/activitystreams#Note", simple: true), |
|
||||||
"Object" => TermDefinition.new("Object", id: "https://www.w3.org/ns/activitystreams#Object", simple: true), |
|
||||||
"Offer" => TermDefinition.new("Offer", id: "https://www.w3.org/ns/activitystreams#Offer", simple: true), |
|
||||||
"OrderedCollection" => TermDefinition.new("OrderedCollection", id: "https://www.w3.org/ns/activitystreams#OrderedCollection", simple: true), |
|
||||||
"OrderedCollectionPage" => TermDefinition.new("OrderedCollectionPage", id: "https://www.w3.org/ns/activitystreams#OrderedCollectionPage", simple: true), |
|
||||||
"Organization" => TermDefinition.new("Organization", id: "https://www.w3.org/ns/activitystreams#Organization", simple: true), |
|
||||||
"Page" => TermDefinition.new("Page", id: "https://www.w3.org/ns/activitystreams#Page", simple: true), |
|
||||||
"Person" => TermDefinition.new("Person", id: "https://www.w3.org/ns/activitystreams#Person", simple: true), |
|
||||||
"Place" => TermDefinition.new("Place", id: "https://www.w3.org/ns/activitystreams#Place", simple: true), |
|
||||||
"Profile" => TermDefinition.new("Profile", id: "https://www.w3.org/ns/activitystreams#Profile", simple: true), |
|
||||||
"Question" => TermDefinition.new("Question", id: "https://www.w3.org/ns/activitystreams#Question", simple: true), |
|
||||||
"Read" => TermDefinition.new("Read", id: "https://www.w3.org/ns/activitystreams#Read", simple: true), |
|
||||||
"Reject" => TermDefinition.new("Reject", id: "https://www.w3.org/ns/activitystreams#Reject", simple: true), |
|
||||||
"Relationship" => TermDefinition.new("Relationship", id: "https://www.w3.org/ns/activitystreams#Relationship", simple: true), |
|
||||||
"Remove" => TermDefinition.new("Remove", id: "https://www.w3.org/ns/activitystreams#Remove", simple: true), |
|
||||||
"Service" => TermDefinition.new("Service", id: "https://www.w3.org/ns/activitystreams#Service", simple: true), |
|
||||||
"TentativeAccept" => TermDefinition.new("TentativeAccept", id: "https://www.w3.org/ns/activitystreams#TentativeAccept", simple: true), |
|
||||||
"TentativeReject" => TermDefinition.new("TentativeReject", id: "https://www.w3.org/ns/activitystreams#TentativeReject", simple: true), |
|
||||||
"Tombstone" => TermDefinition.new("Tombstone", id: "https://www.w3.org/ns/activitystreams#Tombstone", simple: true), |
|
||||||
"Travel" => TermDefinition.new("Travel", id: "https://www.w3.org/ns/activitystreams#Travel", simple: true), |
|
||||||
"Undo" => TermDefinition.new("Undo", id: "https://www.w3.org/ns/activitystreams#Undo", simple: true), |
|
||||||
"Update" => TermDefinition.new("Update", id: "https://www.w3.org/ns/activitystreams#Update", simple: true), |
|
||||||
"Video" => TermDefinition.new("Video", id: "https://www.w3.org/ns/activitystreams#Video", simple: true), |
|
||||||
"View" => TermDefinition.new("View", id: "https://www.w3.org/ns/activitystreams#View", simple: true), |
|
||||||
"accuracy" => TermDefinition.new("accuracy", id: "https://www.w3.org/ns/activitystreams#accuracy", type_mapping: "http://www.w3.org/2001/XMLSchema#float"), |
|
||||||
"actor" => TermDefinition.new("actor", id: "https://www.w3.org/ns/activitystreams#actor", type_mapping: "@id"), |
|
||||||
"altitude" => TermDefinition.new("altitude", id: "https://www.w3.org/ns/activitystreams#altitude", type_mapping: "http://www.w3.org/2001/XMLSchema#float"), |
|
||||||
"anyOf" => TermDefinition.new("anyOf", id: "https://www.w3.org/ns/activitystreams#anyOf", type_mapping: "@id"), |
|
||||||
"as" => TermDefinition.new("as", id: "https://www.w3.org/ns/activitystreams#", simple: true, prefix: true), |
|
||||||
"attachment" => TermDefinition.new("attachment", id: "https://www.w3.org/ns/activitystreams#attachment", type_mapping: "@id"), |
|
||||||
"attributedTo" => TermDefinition.new("attributedTo", id: "https://www.w3.org/ns/activitystreams#attributedTo", type_mapping: "@id"), |
|
||||||
"audience" => TermDefinition.new("audience", id: "https://www.w3.org/ns/activitystreams#audience", type_mapping: "@id"), |
|
||||||
"bcc" => TermDefinition.new("bcc", id: "https://www.w3.org/ns/activitystreams#bcc", type_mapping: "@id"), |
|
||||||
"bto" => TermDefinition.new("bto", id: "https://www.w3.org/ns/activitystreams#bto", type_mapping: "@id"), |
|
||||||
"cc" => TermDefinition.new("cc", id: "https://www.w3.org/ns/activitystreams#cc", type_mapping: "@id"), |
|
||||||
"closed" => TermDefinition.new("closed", id: "https://www.w3.org/ns/activitystreams#closed", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"), |
|
||||||
"content" => TermDefinition.new("content", id: "https://www.w3.org/ns/activitystreams#content", simple: true), |
|
||||||
"contentMap" => TermDefinition.new("contentMap", id: "https://www.w3.org/ns/activitystreams#content", container_mapping: "@language"), |
|
||||||
"context" => TermDefinition.new("context", id: "https://www.w3.org/ns/activitystreams#context", type_mapping: "@id"), |
|
||||||
"current" => TermDefinition.new("current", id: "https://www.w3.org/ns/activitystreams#current", type_mapping: "@id"), |
|
||||||
"deleted" => TermDefinition.new("deleted", id: "https://www.w3.org/ns/activitystreams#deleted", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"), |
|
||||||
"describes" => TermDefinition.new("describes", id: "https://www.w3.org/ns/activitystreams#describes", type_mapping: "@id"), |
|
||||||
"duration" => TermDefinition.new("duration", id: "https://www.w3.org/ns/activitystreams#duration", type_mapping: "http://www.w3.org/2001/XMLSchema#duration"), |
|
||||||
"endTime" => TermDefinition.new("endTime", id: "https://www.w3.org/ns/activitystreams#endTime", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"), |
|
||||||
"endpoints" => TermDefinition.new("endpoints", id: "https://www.w3.org/ns/activitystreams#endpoints", type_mapping: "@id"), |
|
||||||
"first" => TermDefinition.new("first", id: "https://www.w3.org/ns/activitystreams#first", type_mapping: "@id"), |
|
||||||
"followers" => TermDefinition.new("followers", id: "https://www.w3.org/ns/activitystreams#followers", type_mapping: "@id"), |
|
||||||
"following" => TermDefinition.new("following", id: "https://www.w3.org/ns/activitystreams#following", type_mapping: "@id"), |
|
||||||
"formerType" => TermDefinition.new("formerType", id: "https://www.w3.org/ns/activitystreams#formerType", type_mapping: "@id"), |
|
||||||
"generator" => TermDefinition.new("generator", id: "https://www.w3.org/ns/activitystreams#generator", type_mapping: "@id"), |
|
||||||
"height" => TermDefinition.new("height", id: "https://www.w3.org/ns/activitystreams#height", type_mapping: "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"), |
|
||||||
"href" => TermDefinition.new("href", id: "https://www.w3.org/ns/activitystreams#href", type_mapping: "@id"), |
|
||||||
"hreflang" => TermDefinition.new("hreflang", id: "https://www.w3.org/ns/activitystreams#hreflang", simple: true), |
|
||||||
"icon" => TermDefinition.new("icon", id: "https://www.w3.org/ns/activitystreams#icon", type_mapping: "@id"), |
|
||||||
"id" => TermDefinition.new("id", id: "@id", simple: true), |
|
||||||
"image" => TermDefinition.new("image", id: "https://www.w3.org/ns/activitystreams#image", type_mapping: "@id"), |
|
||||||
"inReplyTo" => TermDefinition.new("inReplyTo", id: "https://www.w3.org/ns/activitystreams#inReplyTo", type_mapping: "@id"), |
|
||||||
"inbox" => TermDefinition.new("inbox", id: "http://www.w3.org/ns/ldp#inbox", type_mapping: "@id"), |
|
||||||
"instrument" => TermDefinition.new("instrument", id: "https://www.w3.org/ns/activitystreams#instrument", type_mapping: "@id"), |
|
||||||
"items" => TermDefinition.new("items", id: "https://www.w3.org/ns/activitystreams#items", type_mapping: "@id"), |
|
||||||
"last" => TermDefinition.new("last", id: "https://www.w3.org/ns/activitystreams#last", type_mapping: "@id"), |
|
||||||
"latitude" => TermDefinition.new("latitude", id: "https://www.w3.org/ns/activitystreams#latitude", type_mapping: "http://www.w3.org/2001/XMLSchema#float"), |
|
||||||
"ldp" => TermDefinition.new("ldp", id: "http://www.w3.org/ns/ldp#", simple: true, prefix: true), |
|
||||||
"liked" => TermDefinition.new("liked", id: "https://www.w3.org/ns/activitystreams#liked", type_mapping: "@id"), |
|
||||||
"location" => TermDefinition.new("location", id: "https://www.w3.org/ns/activitystreams#location", type_mapping: "@id"), |
|
||||||
"longitude" => TermDefinition.new("longitude", id: "https://www.w3.org/ns/activitystreams#longitude", type_mapping: "http://www.w3.org/2001/XMLSchema#float"), |
|
||||||
"mediaType" => TermDefinition.new("mediaType", id: "https://www.w3.org/ns/activitystreams#mediaType", simple: true), |
|
||||||
"name" => TermDefinition.new("name", id: "https://www.w3.org/ns/activitystreams#name", simple: true), |
|
||||||
"nameMap" => TermDefinition.new("nameMap", id: "https://www.w3.org/ns/activitystreams#name", container_mapping: "@language"), |
|
||||||
"next" => TermDefinition.new("next", id: "https://www.w3.org/ns/activitystreams#next", type_mapping: "@id"), |
|
||||||
"oauthAuthorizationEndpoint" => TermDefinition.new("oauthAuthorizationEndpoint", id: "https://www.w3.org/ns/activitystreams#oauthAuthorizationEndpoint", type_mapping: "@id"), |
|
||||||
"oauthTokenEndpoint" => TermDefinition.new("oauthTokenEndpoint", id: "https://www.w3.org/ns/activitystreams#oauthTokenEndpoint", type_mapping: "@id"), |
|
||||||
"object" => TermDefinition.new("object", id: "https://www.w3.org/ns/activitystreams#object", type_mapping: "@id"), |
|
||||||
"oneOf" => TermDefinition.new("oneOf", id: "https://www.w3.org/ns/activitystreams#oneOf", type_mapping: "@id"), |
|
||||||
"orderedItems" => TermDefinition.new("orderedItems", id: "https://www.w3.org/ns/activitystreams#items", type_mapping: "@id", container_mapping: "@list"), |
|
||||||
"origin" => TermDefinition.new("origin", id: "https://www.w3.org/ns/activitystreams#origin", type_mapping: "@id"), |
|
||||||
"outbox" => TermDefinition.new("outbox", id: "https://www.w3.org/ns/activitystreams#outbox", type_mapping: "@id"), |
|
||||||
"partOf" => TermDefinition.new("partOf", id: "https://www.w3.org/ns/activitystreams#partOf", type_mapping: "@id"), |
|
||||||
"preferredUsername" => TermDefinition.new("preferredUsername", id: "https://www.w3.org/ns/activitystreams#preferredUsername", simple: true), |
|
||||||
"prev" => TermDefinition.new("prev", id: "https://www.w3.org/ns/activitystreams#prev", type_mapping: "@id"), |
|
||||||
"preview" => TermDefinition.new("preview", id: "https://www.w3.org/ns/activitystreams#preview", type_mapping: "@id"), |
|
||||||
"provideClientKey" => TermDefinition.new("provideClientKey", id: "https://www.w3.org/ns/activitystreams#provideClientKey", type_mapping: "@id"), |
|
||||||
"proxyUrl" => TermDefinition.new("proxyUrl", id: "https://www.w3.org/ns/activitystreams#proxyUrl", type_mapping: "@id"), |
|
||||||
"published" => TermDefinition.new("published", id: "https://www.w3.org/ns/activitystreams#published", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"), |
|
||||||
"radius" => TermDefinition.new("radius", id: "https://www.w3.org/ns/activitystreams#radius", type_mapping: "http://www.w3.org/2001/XMLSchema#float"), |
|
||||||
"rel" => TermDefinition.new("rel", id: "https://www.w3.org/ns/activitystreams#rel", simple: true), |
|
||||||
"relationship" => TermDefinition.new("relationship", id: "https://www.w3.org/ns/activitystreams#relationship", type_mapping: "@id"), |
|
||||||
"replies" => TermDefinition.new("replies", id: "https://www.w3.org/ns/activitystreams#replies", type_mapping: "@id"), |
|
||||||
"result" => TermDefinition.new("result", id: "https://www.w3.org/ns/activitystreams#result", type_mapping: "@id"), |
|
||||||
"sharedInbox" => TermDefinition.new("sharedInbox", id: "https://www.w3.org/ns/activitystreams#sharedInbox", type_mapping: "@id"), |
|
||||||
"signClientKey" => TermDefinition.new("signClientKey", id: "https://www.w3.org/ns/activitystreams#signClientKey", type_mapping: "@id"), |
|
||||||
"source" => TermDefinition.new("source", id: "https://www.w3.org/ns/activitystreams#source", simple: true), |
|
||||||
"startIndex" => TermDefinition.new("startIndex", id: "https://www.w3.org/ns/activitystreams#startIndex", type_mapping: "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"), |
|
||||||
"startTime" => TermDefinition.new("startTime", id: "https://www.w3.org/ns/activitystreams#startTime", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"), |
|
||||||
"streams" => TermDefinition.new("streams", id: "https://www.w3.org/ns/activitystreams#streams", type_mapping: "@id"), |
|
||||||
"subject" => TermDefinition.new("subject", id: "https://www.w3.org/ns/activitystreams#subject", type_mapping: "@id"), |
|
||||||
"summary" => TermDefinition.new("summary", id: "https://www.w3.org/ns/activitystreams#summary", simple: true), |
|
||||||
"summaryMap" => TermDefinition.new("summaryMap", id: "https://www.w3.org/ns/activitystreams#summary", container_mapping: "@language"), |
|
||||||
"tag" => TermDefinition.new("tag", id: "https://www.w3.org/ns/activitystreams#tag", type_mapping: "@id"), |
|
||||||
"target" => TermDefinition.new("target", id: "https://www.w3.org/ns/activitystreams#target", type_mapping: "@id"), |
|
||||||
"to" => TermDefinition.new("to", id: "https://www.w3.org/ns/activitystreams#to", type_mapping: "@id"), |
|
||||||
"totalItems" => TermDefinition.new("totalItems", id: "https://www.w3.org/ns/activitystreams#totalItems", type_mapping: "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"), |
|
||||||
"type" => TermDefinition.new("type", id: "@type", simple: true), |
|
||||||
"units" => TermDefinition.new("units", id: "https://www.w3.org/ns/activitystreams#units", simple: true), |
|
||||||
"updated" => TermDefinition.new("updated", id: "https://www.w3.org/ns/activitystreams#updated", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"), |
|
||||||
"uploadMedia" => TermDefinition.new("uploadMedia", id: "https://www.w3.org/ns/activitystreams#uploadMedia", type_mapping: "@id"), |
|
||||||
"url" => TermDefinition.new("url", id: "https://www.w3.org/ns/activitystreams#url", type_mapping: "@id"), |
|
||||||
"width" => TermDefinition.new("width", id: "https://www.w3.org/ns/activitystreams#width", type_mapping: "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"), |
|
||||||
"xsd" => TermDefinition.new("xsd", id: "http://www.w3.org/2001/XMLSchema#", simple: true, prefix: true) |
|
||||||
}) |
|
||||||
end |
|
||||||
end |
|
@ -1,86 +0,0 @@ |
|||||||
# -*- encoding: utf-8 -*- |
|
||||||
# frozen_string_literal: true |
|
||||||
# This file generated automatically from https://w3id.org/identity/v1 |
|
||||||
require 'json/ld' |
|
||||||
class JSON::LD::Context |
|
||||||
add_preloaded("https://w3id.org/identity/v1") do |
|
||||||
new(processingMode: "json-ld-1.0", term_definitions: { |
|
||||||
"Credential" => TermDefinition.new("Credential", id: "https://w3id.org/credentials#Credential", simple: true), |
|
||||||
"CryptographicKey" => TermDefinition.new("CryptographicKey", id: "https://w3id.org/security#Key", simple: true), |
|
||||||
"CryptographicKeyCredential" => TermDefinition.new("CryptographicKeyCredential", id: "https://w3id.org/credentials#CryptographicKeyCredential", simple: true), |
|
||||||
"EncryptedMessage" => TermDefinition.new("EncryptedMessage", id: "https://w3id.org/security#EncryptedMessage", simple: true), |
|
||||||
"GraphSignature2012" => TermDefinition.new("GraphSignature2012", id: "https://w3id.org/security#GraphSignature2012", simple: true), |
|
||||||
"Group" => TermDefinition.new("Group", id: "https://www.w3.org/ns/activitystreams#Group", simple: true), |
|
||||||
"Identity" => TermDefinition.new("Identity", id: "https://w3id.org/identity#Identity", simple: true), |
|
||||||
"LinkedDataSignature2015" => TermDefinition.new("LinkedDataSignature2015", id: "https://w3id.org/security#LinkedDataSignature2015", simple: true), |
|
||||||
"Organization" => TermDefinition.new("Organization", id: "http://schema.org/Organization", simple: true), |
|
||||||
"Person" => TermDefinition.new("Person", id: "http://schema.org/Person", simple: true), |
|
||||||
"PostalAddress" => TermDefinition.new("PostalAddress", id: "http://schema.org/PostalAddress", simple: true), |
|
||||||
"about" => TermDefinition.new("about", id: "http://schema.org/about", type_mapping: "@id"), |
|
||||||
"accessControl" => TermDefinition.new("accessControl", id: "https://w3id.org/permissions#accessControl", type_mapping: "@id"), |
|
||||||
"address" => TermDefinition.new("address", id: "http://schema.org/address", type_mapping: "@id"), |
|
||||||
"addressCountry" => TermDefinition.new("addressCountry", id: "http://schema.org/addressCountry", simple: true), |
|
||||||
"addressLocality" => TermDefinition.new("addressLocality", id: "http://schema.org/addressLocality", simple: true), |
|
||||||
"addressRegion" => TermDefinition.new("addressRegion", id: "http://schema.org/addressRegion", simple: true), |
|
||||||
"cipherAlgorithm" => TermDefinition.new("cipherAlgorithm", id: "https://w3id.org/security#cipherAlgorithm", simple: true), |
|
||||||
"cipherData" => TermDefinition.new("cipherData", id: "https://w3id.org/security#cipherData", simple: true), |
|
||||||
"cipherKey" => TermDefinition.new("cipherKey", id: "https://w3id.org/security#cipherKey", simple: true), |
|
||||||
"claim" => TermDefinition.new("claim", id: "https://w3id.org/credentials#claim", type_mapping: "@id"), |
|
||||||
"comment" => TermDefinition.new("comment", id: "http://www.w3.org/2000/01/rdf-schema#comment", simple: true), |
|
||||||
"created" => TermDefinition.new("created", id: "http://purl.org/dc/terms/created", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"), |
|
||||||
"creator" => TermDefinition.new("creator", id: "http://purl.org/dc/terms/creator", type_mapping: "@id"), |
|
||||||
"cred" => TermDefinition.new("cred", id: "https://w3id.org/credentials#", simple: true, prefix: true), |
|
||||||
"credential" => TermDefinition.new("credential", id: "https://w3id.org/credentials#credential", type_mapping: "@id"), |
|
||||||
"dc" => TermDefinition.new("dc", id: "http://purl.org/dc/terms/", simple: true, prefix: true), |
|
||||||
"description" => TermDefinition.new("description", id: "http://schema.org/description", simple: true), |
|
||||||
"digestAlgorithm" => TermDefinition.new("digestAlgorithm", id: "https://w3id.org/security#digestAlgorithm", simple: true), |
|
||||||
"digestValue" => TermDefinition.new("digestValue", id: "https://w3id.org/security#digestValue", simple: true), |
|
||||||
"domain" => TermDefinition.new("domain", id: "https://w3id.org/security#domain", simple: true), |
|
||||||
"email" => TermDefinition.new("email", id: "http://schema.org/email", simple: true), |
|
||||||
"expires" => TermDefinition.new("expires", id: "https://w3id.org/security#expiration", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"), |
|
||||||
"familyName" => TermDefinition.new("familyName", id: "http://schema.org/familyName", simple: true), |
|
||||||
"givenName" => TermDefinition.new("givenName", id: "http://schema.org/givenName", simple: true), |
|
||||||
"id" => TermDefinition.new("id", id: "@id", simple: true), |
|
||||||
"identity" => TermDefinition.new("identity", id: "https://w3id.org/identity#", simple: true, prefix: true), |
|
||||||
"identityService" => TermDefinition.new("identityService", id: "https://w3id.org/identity#identityService", type_mapping: "@id"), |
|
||||||
"idp" => TermDefinition.new("idp", id: "https://w3id.org/identity#idp", type_mapping: "@id"), |
|
||||||
"image" => TermDefinition.new("image", id: "http://schema.org/image", type_mapping: "@id"), |
|
||||||
"initializationVector" => TermDefinition.new("initializationVector", id: "https://w3id.org/security#initializationVector", simple: true), |
|
||||||
"issued" => TermDefinition.new("issued", id: "https://w3id.org/credentials#issued", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"), |
|
||||||
"issuer" => TermDefinition.new("issuer", id: "https://w3id.org/credentials#issuer", type_mapping: "@id"), |
|
||||||
"label" => TermDefinition.new("label", id: "http://www.w3.org/2000/01/rdf-schema#label", simple: true), |
|
||||||
"member" => TermDefinition.new("member", id: "http://schema.org/member", type_mapping: "@id"), |
|
||||||
"memberOf" => TermDefinition.new("memberOf", id: "http://schema.org/memberOf", type_mapping: "@id"), |
|
||||||
"name" => TermDefinition.new("name", id: "http://schema.org/name", simple: true), |
|
||||||
"nonce" => TermDefinition.new("nonce", id: "https://w3id.org/security#nonce", simple: true), |
|
||||||
"normalizationAlgorithm" => TermDefinition.new("normalizationAlgorithm", id: "https://w3id.org/security#normalizationAlgorithm", simple: true), |
|
||||||
"owner" => TermDefinition.new("owner", id: "https://w3id.org/security#owner", type_mapping: "@id"), |
|
||||||
"password" => TermDefinition.new("password", id: "https://w3id.org/security#password", simple: true), |
|
||||||
"paymentProcessor" => TermDefinition.new("paymentProcessor", id: "https://w3id.org/payswarm#processor", simple: true), |
|
||||||
"perm" => TermDefinition.new("perm", id: "https://w3id.org/permissions#", simple: true, prefix: true), |
|
||||||
"postalCode" => TermDefinition.new("postalCode", id: "http://schema.org/postalCode", simple: true), |
|
||||||
"preferences" => TermDefinition.new("preferences", id: "https://w3id.org/payswarm#preferences", type_mapping: "@vocab"), |
|
||||||
"privateKey" => TermDefinition.new("privateKey", id: "https://w3id.org/security#privateKey", type_mapping: "@id"), |
|
||||||
"privateKeyPem" => TermDefinition.new("privateKeyPem", id: "https://w3id.org/security#privateKeyPem", simple: true), |
|
||||||
"ps" => TermDefinition.new("ps", id: "https://w3id.org/payswarm#", simple: true, prefix: true), |
|
||||||
"publicKey" => TermDefinition.new("publicKey", id: "https://w3id.org/security#publicKey", type_mapping: "@id"), |
|
||||||
"publicKeyPem" => TermDefinition.new("publicKeyPem", id: "https://w3id.org/security#publicKeyPem", simple: true), |
|
||||||
"publicKeyService" => TermDefinition.new("publicKeyService", id: "https://w3id.org/security#publicKeyService", type_mapping: "@id"), |
|
||||||
"rdf" => TermDefinition.new("rdf", id: "http://www.w3.org/1999/02/22-rdf-syntax-ns#", simple: true, prefix: true), |
|
||||||
"rdfs" => TermDefinition.new("rdfs", id: "http://www.w3.org/2000/01/rdf-schema#", simple: true, prefix: true), |
|
||||||
"recipient" => TermDefinition.new("recipient", id: "https://w3id.org/credentials#recipient", type_mapping: "@id"), |
|
||||||
"revoked" => TermDefinition.new("revoked", id: "https://w3id.org/security#revoked", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"), |
|
||||||
"schema" => TermDefinition.new("schema", id: "http://schema.org/", simple: true, prefix: true), |
|
||||||
"sec" => TermDefinition.new("sec", id: "https://w3id.org/security#", simple: true, prefix: true), |
|
||||||
"signature" => TermDefinition.new("signature", id: "https://w3id.org/security#signature", simple: true), |
|
||||||
"signatureAlgorithm" => TermDefinition.new("signatureAlgorithm", id: "https://w3id.org/security#signatureAlgorithm", simple: true), |
|
||||||
"signatureValue" => TermDefinition.new("signatureValue", id: "https://w3id.org/security#signatureValue", simple: true), |
|
||||||
"streetAddress" => TermDefinition.new("streetAddress", id: "http://schema.org/streetAddress", simple: true), |
|
||||||
"title" => TermDefinition.new("title", id: "http://purl.org/dc/terms/title", simple: true), |
|
||||||
"type" => TermDefinition.new("type", id: "@type", simple: true), |
|
||||||
"url" => TermDefinition.new("url", id: "http://schema.org/url", type_mapping: "@id"), |
|
||||||
"writePermission" => TermDefinition.new("writePermission", id: "https://w3id.org/permissions#writePermission", type_mapping: "@id"), |
|
||||||
"xsd" => TermDefinition.new("xsd", id: "http://www.w3.org/2001/XMLSchema#", simple: true, prefix: true) |
|
||||||
}) |
|
||||||
end |
|
||||||
end |
|
@ -1,50 +0,0 @@ |
|||||||
# -*- encoding: utf-8 -*- |
|
||||||
# frozen_string_literal: true |
|
||||||
# This file generated automatically from https://w3id.org/security/v1 |
|
||||||
require 'json/ld' |
|
||||||
class JSON::LD::Context |
|
||||||
add_preloaded("https://w3id.org/security/v1") do |
|
||||||
new(processingMode: "json-ld-1.0", term_definitions: { |
|
||||||
"CryptographicKey" => TermDefinition.new("CryptographicKey", id: "https://w3id.org/security#Key", simple: true), |
|
||||||
"EcdsaKoblitzSignature2016" => TermDefinition.new("EcdsaKoblitzSignature2016", id: "https://w3id.org/security#EcdsaKoblitzSignature2016", simple: true), |
|
||||||
"EncryptedMessage" => TermDefinition.new("EncryptedMessage", id: "https://w3id.org/security#EncryptedMessage", simple: true), |
|
||||||
"GraphSignature2012" => TermDefinition.new("GraphSignature2012", id: "https://w3id.org/security#GraphSignature2012", simple: true), |
|
||||||
"LinkedDataSignature2015" => TermDefinition.new("LinkedDataSignature2015", id: "https://w3id.org/security#LinkedDataSignature2015", simple: true), |
|
||||||
"LinkedDataSignature2016" => TermDefinition.new("LinkedDataSignature2016", id: "https://w3id.org/security#LinkedDataSignature2016", simple: true), |
|
||||||
"authenticationTag" => TermDefinition.new("authenticationTag", id: "https://w3id.org/security#authenticationTag", simple: true), |
|
||||||
"canonicalizationAlgorithm" => TermDefinition.new("canonicalizationAlgorithm", id: "https://w3id.org/security#canonicalizationAlgorithm", simple: true), |
|
||||||
"cipherAlgorithm" => TermDefinition.new("cipherAlgorithm", id: "https://w3id.org/security#cipherAlgorithm", simple: true), |
|
||||||
"cipherData" => TermDefinition.new("cipherData", id: "https://w3id.org/security#cipherData", simple: true), |
|
||||||
"cipherKey" => TermDefinition.new("cipherKey", id: "https://w3id.org/security#cipherKey", simple: true), |
|
||||||
"created" => TermDefinition.new("created", id: "http://purl.org/dc/terms/created", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"), |
|
||||||
"creator" => TermDefinition.new("creator", id: "http://purl.org/dc/terms/creator", type_mapping: "@id"), |
|
||||||
"dc" => TermDefinition.new("dc", id: "http://purl.org/dc/terms/", simple: true, prefix: true), |
|
||||||
"digestAlgorithm" => TermDefinition.new("digestAlgorithm", id: "https://w3id.org/security#digestAlgorithm", simple: true), |
|
||||||
"digestValue" => TermDefinition.new("digestValue", id: "https://w3id.org/security#digestValue", simple: true), |
|
||||||
"domain" => TermDefinition.new("domain", id: "https://w3id.org/security#domain", simple: true), |
|
||||||
"encryptionKey" => TermDefinition.new("encryptionKey", id: "https://w3id.org/security#encryptionKey", simple: true), |
|
||||||
"expiration" => TermDefinition.new("expiration", id: "https://w3id.org/security#expiration", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"), |
|
||||||
"expires" => TermDefinition.new("expires", id: "https://w3id.org/security#expiration", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"), |
|
||||||
"id" => TermDefinition.new("id", id: "@id", simple: true), |
|
||||||
"initializationVector" => TermDefinition.new("initializationVector", id: "https://w3id.org/security#initializationVector", simple: true), |
|
||||||
"iterationCount" => TermDefinition.new("iterationCount", id: "https://w3id.org/security#iterationCount", simple: true), |
|
||||||
"nonce" => TermDefinition.new("nonce", id: "https://w3id.org/security#nonce", simple: true), |
|
||||||
"normalizationAlgorithm" => TermDefinition.new("normalizationAlgorithm", id: "https://w3id.org/security#normalizationAlgorithm", simple: true), |
|
||||||
"owner" => TermDefinition.new("owner", id: "https://w3id.org/security#owner", type_mapping: "@id"), |
|
||||||
"password" => TermDefinition.new("password", id: "https://w3id.org/security#password", simple: true), |
|
||||||
"privateKey" => TermDefinition.new("privateKey", id: "https://w3id.org/security#privateKey", type_mapping: "@id"), |
|
||||||
"privateKeyPem" => TermDefinition.new("privateKeyPem", id: "https://w3id.org/security#privateKeyPem", simple: true), |
|
||||||
"publicKey" => TermDefinition.new("publicKey", id: "https://w3id.org/security#publicKey", type_mapping: "@id"), |
|
||||||
"publicKeyPem" => TermDefinition.new("publicKeyPem", id: "https://w3id.org/security#publicKeyPem", simple: true), |
|
||||||
"publicKeyService" => TermDefinition.new("publicKeyService", id: "https://w3id.org/security#publicKeyService", type_mapping: "@id"), |
|
||||||
"revoked" => TermDefinition.new("revoked", id: "https://w3id.org/security#revoked", type_mapping: "http://www.w3.org/2001/XMLSchema#dateTime"), |
|
||||||
"salt" => TermDefinition.new("salt", id: "https://w3id.org/security#salt", simple: true), |
|
||||||
"sec" => TermDefinition.new("sec", id: "https://w3id.org/security#", simple: true, prefix: true), |
|
||||||
"signature" => TermDefinition.new("signature", id: "https://w3id.org/security#signature", simple: true), |
|
||||||
"signatureAlgorithm" => TermDefinition.new("signatureAlgorithm", id: "https://w3id.org/security#signingAlgorithm", simple: true), |
|
||||||
"signatureValue" => TermDefinition.new("signatureValue", id: "https://w3id.org/security#signatureValue", simple: true), |
|
||||||
"type" => TermDefinition.new("type", id: "@type", simple: true), |
|
||||||
"xsd" => TermDefinition.new("xsd", id: "http://www.w3.org/2001/XMLSchema#", simple: true, prefix: true) |
|
||||||
}) |
|
||||||
end |
|
||||||
end |
|
@ -0,0 +1,391 @@ |
|||||||
|
HTTP/1.1 200 OK |
||||||
|
Date: Tue, 01 May 2018 23:25:57 GMT |
||||||
|
Content-Location: activitystreams.jsonld |
||||||
|
Vary: negotiate,accept |
||||||
|
TCN: choice |
||||||
|
Last-Modified: Mon, 16 Apr 2018 00:28:23 GMT |
||||||
|
ETag: "1eb0-569ec4caa97c0;d3-540ee27e0eec0" |
||||||
|
Accept-Ranges: bytes |
||||||
|
Content-Length: 7856 |
||||||
|
Cache-Control: max-age=21600 |
||||||
|
Expires: Wed, 02 May 2018 05:25:57 GMT |
||||||
|
P3P: policyref="http://www.w3.org/2014/08/p3p.xml" |
||||||
|
Access-Control-Allow-Origin: * |
||||||
|
Content-Type: application/ld+json |
||||||
|
Strict-Transport-Security: max-age=15552000; includeSubdomains; preload |
||||||
|
Content-Security-Policy: upgrade-insecure-requests |
||||||
|
|
||||||
|
{ |
||||||
|
"@context": { |
||||||
|
"@vocab": "_:", |
||||||
|
"xsd": "http://www.w3.org/2001/XMLSchema#", |
||||||
|
"as": "https://www.w3.org/ns/activitystreams#", |
||||||
|
"ldp": "http://www.w3.org/ns/ldp#", |
||||||
|
"id": "@id", |
||||||
|
"type": "@type", |
||||||
|
"Accept": "as:Accept", |
||||||
|
"Activity": "as:Activity", |
||||||
|
"IntransitiveActivity": "as:IntransitiveActivity", |
||||||
|
"Add": "as:Add", |
||||||
|
"Announce": "as:Announce", |
||||||
|
"Application": "as:Application", |
||||||
|
"Arrive": "as:Arrive", |
||||||
|
"Article": "as:Article", |
||||||
|
"Audio": "as:Audio", |
||||||
|
"Block": "as:Block", |
||||||
|
"Collection": "as:Collection", |
||||||
|
"CollectionPage": "as:CollectionPage", |
||||||
|
"Relationship": "as:Relationship", |
||||||
|
"Create": "as:Create", |
||||||
|
"Delete": "as:Delete", |
||||||
|
"Dislike": "as:Dislike", |
||||||
|
"Document": "as:Document", |
||||||
|
"Event": "as:Event", |
||||||
|
"Follow": "as:Follow", |
||||||
|
"Flag": "as:Flag", |
||||||
|
"Group": "as:Group", |
||||||
|
"Ignore": "as:Ignore", |
||||||
|
"Image": "as:Image", |
||||||
|
"Invite": "as:Invite", |
||||||
|
"Join": "as:Join", |
||||||
|
"Leave": "as:Leave", |
||||||
|
"Like": "as:Like", |
||||||
|
"Link": "as:Link", |
||||||
|
"Mention": "as:Mention", |
||||||
|
"Note": "as:Note", |
||||||
|
"Object": "as:Object", |
||||||
|
"Offer": "as:Offer", |
||||||
|
"OrderedCollection": "as:OrderedCollection", |
||||||
|
"OrderedCollectionPage": "as:OrderedCollectionPage", |
||||||
|
"Organization": "as:Organization", |
||||||
|
"Page": "as:Page", |
||||||
|
"Person": "as:Person", |
||||||
|
"Place": "as:Place", |
||||||
|
"Profile": "as:Profile", |
||||||
|
"Question": "as:Question", |
||||||
|
"Reject": "as:Reject", |
||||||
|
"Remove": "as:Remove", |
||||||
|
"Service": "as:Service", |
||||||
|
"TentativeAccept": "as:TentativeAccept", |
||||||
|
"TentativeReject": "as:TentativeReject", |
||||||
|
"Tombstone": "as:Tombstone", |
||||||
|
"Undo": "as:Undo", |
||||||
|
"Update": "as:Update", |
||||||
|
"Video": "as:Video", |
||||||
|
"View": "as:View", |
||||||
|
"Listen": "as:Listen", |
||||||
|
"Read": "as:Read", |
||||||
|
"Move": "as:Move", |
||||||
|
"Travel": "as:Travel", |
||||||
|
"IsFollowing": "as:IsFollowing", |
||||||
|
"IsFollowedBy": "as:IsFollowedBy", |
||||||
|
"IsContact": "as:IsContact", |
||||||
|
"IsMember": "as:IsMember", |
||||||
|
"subject": { |
||||||
|
"@id": "as:subject", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"relationship": { |
||||||
|
"@id": "as:relationship", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"actor": { |
||||||
|
"@id": "as:actor", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"attributedTo": { |
||||||
|
"@id": "as:attributedTo", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"attachment": { |
||||||
|
"@id": "as:attachment", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"bcc": { |
||||||
|
"@id": "as:bcc", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"bto": { |
||||||
|
"@id": "as:bto", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"cc": { |
||||||
|
"@id": "as:cc", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"context": { |
||||||
|
"@id": "as:context", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"current": { |
||||||
|
"@id": "as:current", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"first": { |
||||||
|
"@id": "as:first", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"generator": { |
||||||
|
"@id": "as:generator", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"icon": { |
||||||
|
"@id": "as:icon", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"image": { |
||||||
|
"@id": "as:image", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"inReplyTo": { |
||||||
|
"@id": "as:inReplyTo", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"items": { |
||||||
|
"@id": "as:items", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"instrument": { |
||||||
|
"@id": "as:instrument", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"orderedItems": { |
||||||
|
"@id": "as:items", |
||||||
|
"@type": "@id", |
||||||
|
"@container": "@list" |
||||||
|
}, |
||||||
|
"last": { |
||||||
|
"@id": "as:last", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"location": { |
||||||
|
"@id": "as:location", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"next": { |
||||||
|
"@id": "as:next", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"object": { |
||||||
|
"@id": "as:object", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"oneOf": { |
||||||
|
"@id": "as:oneOf", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"anyOf": { |
||||||
|
"@id": "as:anyOf", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"closed": { |
||||||
|
"@id": "as:closed", |
||||||
|
"@type": "xsd:dateTime" |
||||||
|
}, |
||||||
|
"origin": { |
||||||
|
"@id": "as:origin", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"accuracy": { |
||||||
|
"@id": "as:accuracy", |
||||||
|
"@type": "xsd:float" |
||||||
|
}, |
||||||
|
"prev": { |
||||||
|
"@id": "as:prev", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"preview": { |
||||||
|
"@id": "as:preview", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"replies": { |
||||||
|
"@id": "as:replies", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"result": { |
||||||
|
"@id": "as:result", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"audience": { |
||||||
|
"@id": "as:audience", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"partOf": { |
||||||
|
"@id": "as:partOf", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"tag": { |
||||||
|
"@id": "as:tag", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"target": { |
||||||
|
"@id": "as:target", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"to": { |
||||||
|
"@id": "as:to", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"url": { |
||||||
|
"@id": "as:url", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"altitude": { |
||||||
|
"@id": "as:altitude", |
||||||
|
"@type": "xsd:float" |
||||||
|
}, |
||||||
|
"content": "as:content", |
||||||
|
"contentMap": { |
||||||
|
"@id": "as:content", |
||||||
|
"@container": "@language" |
||||||
|
}, |
||||||
|
"name": "as:name", |
||||||
|
"nameMap": { |
||||||
|
"@id": "as:name", |
||||||
|
"@container": "@language" |
||||||
|
}, |
||||||
|
"duration": { |
||||||
|
"@id": "as:duration", |
||||||
|
"@type": "xsd:duration" |
||||||
|
}, |
||||||
|
"endTime": { |
||||||
|
"@id": "as:endTime", |
||||||
|
"@type": "xsd:dateTime" |
||||||
|
}, |
||||||
|
"height": { |
||||||
|
"@id": "as:height", |
||||||
|
"@type": "xsd:nonNegativeInteger" |
||||||
|
}, |
||||||
|
"href": { |
||||||
|
"@id": "as:href", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"hreflang": "as:hreflang", |
||||||
|
"latitude": { |
||||||
|
"@id": "as:latitude", |
||||||
|
"@type": "xsd:float" |
||||||
|
}, |
||||||
|
"longitude": { |
||||||
|
"@id": "as:longitude", |
||||||
|
"@type": "xsd:float" |
||||||
|
}, |
||||||
|
"mediaType": "as:mediaType", |
||||||
|
"published": { |
||||||
|
"@id": "as:published", |
||||||
|
"@type": "xsd:dateTime" |
||||||
|
}, |
||||||
|
"radius": { |
||||||
|
"@id": "as:radius", |
||||||
|
"@type": "xsd:float" |
||||||
|
}, |
||||||
|
"rel": "as:rel", |
||||||
|
"startIndex": { |
||||||
|
"@id": "as:startIndex", |
||||||
|
"@type": "xsd:nonNegativeInteger" |
||||||
|
}, |
||||||
|
"startTime": { |
||||||
|
"@id": "as:startTime", |
||||||
|
"@type": "xsd:dateTime" |
||||||
|
}, |
||||||
|
"summary": "as:summary", |
||||||
|
"summaryMap": { |
||||||
|
"@id": "as:summary", |
||||||
|
"@container": "@language" |
||||||
|
}, |
||||||
|
"totalItems": { |
||||||
|
"@id": "as:totalItems", |
||||||
|
"@type": "xsd:nonNegativeInteger" |
||||||
|
}, |
||||||
|
"units": "as:units", |
||||||
|
"updated": { |
||||||
|
"@id": "as:updated", |
||||||
|
"@type": "xsd:dateTime" |
||||||
|
}, |
||||||
|
"width": { |
||||||
|
"@id": "as:width", |
||||||
|
"@type": "xsd:nonNegativeInteger" |
||||||
|
}, |
||||||
|
"describes": { |
||||||
|
"@id": "as:describes", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"formerType": { |
||||||
|
"@id": "as:formerType", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"deleted": { |
||||||
|
"@id": "as:deleted", |
||||||
|
"@type": "xsd:dateTime" |
||||||
|
}, |
||||||
|
"inbox": { |
||||||
|
"@id": "ldp:inbox", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"outbox": { |
||||||
|
"@id": "as:outbox", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"following": { |
||||||
|
"@id": "as:following", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"followers": { |
||||||
|
"@id": "as:followers", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"streams": { |
||||||
|
"@id": "as:streams", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"preferredUsername": "as:preferredUsername", |
||||||
|
"endpoints": { |
||||||
|
"@id": "as:endpoints", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"uploadMedia": { |
||||||
|
"@id": "as:uploadMedia", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"proxyUrl": { |
||||||
|
"@id": "as:proxyUrl", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"liked": { |
||||||
|
"@id": "as:liked", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"oauthAuthorizationEndpoint": { |
||||||
|
"@id": "as:oauthAuthorizationEndpoint", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"oauthTokenEndpoint": { |
||||||
|
"@id": "as:oauthTokenEndpoint", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"provideClientKey": { |
||||||
|
"@id": "as:provideClientKey", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"signClientKey": { |
||||||
|
"@id": "as:signClientKey", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"sharedInbox": { |
||||||
|
"@id": "as:sharedInbox", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"Public": { |
||||||
|
"@id": "as:Public", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"source": "as:source", |
||||||
|
"likes": { |
||||||
|
"@id": "as:likes", |
||||||
|
"@type": "@id" |
||||||
|
}, |
||||||
|
"shares": { |
||||||
|
"@id": "as:shares", |
||||||
|
"@type": "@id" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,100 @@ |
|||||||
|
HTTP/1.1 200 OK |
||||||
|
Accept-Ranges: bytes |
||||||
|
Access-Control-Allow-Headers: DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Accept-Encoding |
||||||
|
Access-Control-Allow-Origin: * |
||||||
|
Content-Type: application/ld+json |
||||||
|
Date: Tue, 01 May 2018 23:28:21 GMT |
||||||
|
Etag: "e26-547a6fc75b04a-gzip" |
||||||
|
Last-Modified: Fri, 03 Feb 2017 21:30:09 GMT |
||||||
|
Server: Apache/2.4.7 (Ubuntu) |
||||||
|
Vary: Accept-Encoding |
||||||
|
Transfer-Encoding: chunked |
||||||
|
|
||||||
|
{ |
||||||
|
"@context": { |
||||||
|
"id": "@id", |
||||||
|
"type": "@type", |
||||||
|
|
||||||
|
"cred": "https://w3id.org/credentials#", |
||||||
|
"dc": "http://purl.org/dc/terms/", |
||||||
|
"identity": "https://w3id.org/identity#", |
||||||
|
"perm": "https://w3id.org/permissions#", |
||||||
|
"ps": "https://w3id.org/payswarm#", |
||||||
|
"rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", |
||||||
|
"rdfs": "http://www.w3.org/2000/01/rdf-schema#", |
||||||
|
"sec": "https://w3id.org/security#", |
||||||
|
"schema": "http://schema.org/", |
||||||
|
"xsd": "http://www.w3.org/2001/XMLSchema#", |
||||||
|
|
||||||
|
"Group": "https://www.w3.org/ns/activitystreams#Group", |
||||||
|
|
||||||
|
"claim": {"@id": "cred:claim", "@type": "@id"}, |
||||||
|
"credential": {"@id": "cred:credential", "@type": "@id"}, |
||||||
|
"issued": {"@id": "cred:issued", "@type": "xsd:dateTime"}, |
||||||
|
"issuer": {"@id": "cred:issuer", "@type": "@id"}, |
||||||
|
"recipient": {"@id": "cred:recipient", "@type": "@id"}, |
||||||
|
"Credential": "cred:Credential", |
||||||
|
"CryptographicKeyCredential": "cred:CryptographicKeyCredential", |
||||||
|
|
||||||
|
"about": {"@id": "schema:about", "@type": "@id"}, |
||||||
|
"address": {"@id": "schema:address", "@type": "@id"}, |
||||||
|
"addressCountry": "schema:addressCountry", |
||||||
|
"addressLocality": "schema:addressLocality", |
||||||
|
"addressRegion": "schema:addressRegion", |
||||||
|
"comment": "rdfs:comment", |
||||||
|
"created": {"@id": "dc:created", "@type": "xsd:dateTime"}, |
||||||
|
"creator": {"@id": "dc:creator", "@type": "@id"}, |
||||||
|
"description": "schema:description", |
||||||
|
"email": "schema:email", |
||||||
|
"familyName": "schema:familyName", |
||||||
|
"givenName": "schema:givenName", |
||||||
|
"image": {"@id": "schema:image", "@type": "@id"}, |
||||||
|
"label": "rdfs:label", |
||||||
|
"name": "schema:name", |
||||||
|
"postalCode": "schema:postalCode", |
||||||
|
"streetAddress": "schema:streetAddress", |
||||||
|
"title": "dc:title", |
||||||
|
"url": {"@id": "schema:url", "@type": "@id"}, |
||||||
|
"Person": "schema:Person", |
||||||
|
"PostalAddress": "schema:PostalAddress", |
||||||
|
"Organization": "schema:Organization", |
||||||
|
|
||||||
|
"identityService": {"@id": "identity:identityService", "@type": "@id"}, |
||||||
|
"idp": {"@id": "identity:idp", "@type": "@id"}, |
||||||
|
"Identity": "identity:Identity", |
||||||
|
|
||||||
|
"paymentProcessor": "ps:processor", |
||||||
|
"preferences": {"@id": "ps:preferences", "@type": "@vocab"}, |
||||||
|
|
||||||
|
"cipherAlgorithm": "sec:cipherAlgorithm", |
||||||
|
"cipherData": "sec:cipherData", |
||||||
|
"cipherKey": "sec:cipherKey", |
||||||
|
"digestAlgorithm": "sec:digestAlgorithm", |
||||||
|
"digestValue": "sec:digestValue", |
||||||
|
"domain": "sec:domain", |
||||||
|
"expires": {"@id": "sec:expiration", "@type": "xsd:dateTime"}, |
||||||
|
"initializationVector": "sec:initializationVector", |
||||||
|
"member": {"@id": "schema:member", "@type": "@id"}, |
||||||
|
"memberOf": {"@id": "schema:memberOf", "@type": "@id"}, |
||||||
|
"nonce": "sec:nonce", |
||||||
|
"normalizationAlgorithm": "sec:normalizationAlgorithm", |
||||||
|
"owner": {"@id": "sec:owner", "@type": "@id"}, |
||||||
|
"password": "sec:password", |
||||||
|
"privateKey": {"@id": "sec:privateKey", "@type": "@id"}, |
||||||
|
"privateKeyPem": "sec:privateKeyPem", |
||||||
|
"publicKey": {"@id": "sec:publicKey", "@type": "@id"}, |
||||||
|
"publicKeyPem": "sec:publicKeyPem", |
||||||
|
"publicKeyService": {"@id": "sec:publicKeyService", "@type": "@id"}, |
||||||
|
"revoked": {"@id": "sec:revoked", "@type": "xsd:dateTime"}, |
||||||
|
"signature": "sec:signature", |
||||||
|
"signatureAlgorithm": "sec:signatureAlgorithm", |
||||||
|
"signatureValue": "sec:signatureValue", |
||||||
|
"CryptographicKey": "sec:Key", |
||||||
|
"EncryptedMessage": "sec:EncryptedMessage", |
||||||
|
"GraphSignature2012": "sec:GraphSignature2012", |
||||||
|
"LinkedDataSignature2015": "sec:LinkedDataSignature2015", |
||||||
|
|
||||||
|
"accessControl": {"@id": "perm:accessControl", "@type": "@id"}, |
||||||
|
"writePermission": {"@id": "perm:writePermission", "@type": "@id"} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,61 @@ |
|||||||
|
HTTP/1.1 200 OK |
||||||
|
Accept-Ranges: bytes |
||||||
|
Access-Control-Allow-Headers: DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Accept-Encoding |
||||||
|
Access-Control-Allow-Origin: * |
||||||
|
Content-Type: application/ld+json |
||||||
|
Date: Wed, 02 May 2018 16:25:32 GMT |
||||||
|
Etag: "7e3-5651ec0f7c5ed-gzip" |
||||||
|
Last-Modified: Tue, 13 Feb 2018 21:34:04 GMT |
||||||
|
Server: Apache/2.4.7 (Ubuntu) |
||||||
|
Vary: Accept-Encoding |
||||||
|
Content-Length: 2019 |
||||||
|
|
||||||
|
{ |
||||||
|
"@context": { |
||||||
|
"id": "@id", |
||||||
|
"type": "@type", |
||||||
|
|
||||||
|
"dc": "http://purl.org/dc/terms/", |
||||||
|
"sec": "https://w3id.org/security#", |
||||||
|
"xsd": "http://www.w3.org/2001/XMLSchema#", |
||||||
|
|
||||||
|
"EcdsaKoblitzSignature2016": "sec:EcdsaKoblitzSignature2016", |
||||||
|
"Ed25519Signature2018": "sec:Ed25519Signature2018", |
||||||
|
"EncryptedMessage": "sec:EncryptedMessage", |
||||||
|
"GraphSignature2012": "sec:GraphSignature2012", |
||||||
|
"LinkedDataSignature2015": "sec:LinkedDataSignature2015", |
||||||
|
"LinkedDataSignature2016": "sec:LinkedDataSignature2016", |
||||||
|
"CryptographicKey": "sec:Key", |
||||||
|
|
||||||
|
"authenticationTag": "sec:authenticationTag", |
||||||
|
"canonicalizationAlgorithm": "sec:canonicalizationAlgorithm", |
||||||
|
"cipherAlgorithm": "sec:cipherAlgorithm", |
||||||
|
"cipherData": "sec:cipherData", |
||||||
|
"cipherKey": "sec:cipherKey", |
||||||
|
"created": {"@id": "dc:created", "@type": "xsd:dateTime"}, |
||||||
|
"creator": {"@id": "dc:creator", "@type": "@id"}, |
||||||
|
"digestAlgorithm": "sec:digestAlgorithm", |
||||||
|
"digestValue": "sec:digestValue", |
||||||
|
"domain": "sec:domain", |
||||||
|
"encryptionKey": "sec:encryptionKey", |
||||||
|
"expiration": {"@id": "sec:expiration", "@type": "xsd:dateTime"}, |
||||||
|
"expires": {"@id": "sec:expiration", "@type": "xsd:dateTime"}, |
||||||
|
"initializationVector": "sec:initializationVector", |
||||||
|
"iterationCount": "sec:iterationCount", |
||||||
|
"nonce": "sec:nonce", |
||||||
|
"normalizationAlgorithm": "sec:normalizationAlgorithm", |
||||||
|
"owner": {"@id": "sec:owner", "@type": "@id"}, |
||||||
|
"password": "sec:password", |
||||||
|
"privateKey": {"@id": "sec:privateKey", "@type": "@id"}, |
||||||
|
"privateKeyPem": "sec:privateKeyPem", |
||||||
|
"publicKey": {"@id": "sec:publicKey", "@type": "@id"}, |
||||||
|
"publicKeyBase58": "sec:publicKeyBase58", |
||||||
|
"publicKeyPem": "sec:publicKeyPem", |
||||||
|
"publicKeyService": {"@id": "sec:publicKeyService", "@type": "@id"}, |
||||||
|
"revoked": {"@id": "sec:revoked", "@type": "xsd:dateTime"}, |
||||||
|
"salt": "sec:salt", |
||||||
|
"signature": "sec:signature", |
||||||
|
"signatureAlgorithm": "sec:signingAlgorithm", |
||||||
|
"signatureValue": "sec:signatureValue" |
||||||
|
} |
||||||
|
} |
@ -1,5 +1,5 @@ |
|||||||
require 'rails_helper' |
require 'rails_helper' |
||||||
|
|
||||||
RSpec.describe UnmuteService do |
RSpec.describe UnmuteService, type: :service do |
||||||
subject { UnmuteService.new } |
subject { UnmuteService.new } |
||||||
end |
end |
||||||
|
Loading…
Reference in new issue