diff --git a/CHANGELOG.md b/CHANGELOG.md index 0acd887f4..3f230c294 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ # Changelog + All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), @@ -12,23 +13,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Special operations -* **Reattach media files to their entity.** +- **Reattach media files to their entity.** When media files were uploaded and added in events and posts bodies, they were only attached to the profile that uploaded them, not to the event or post. This task attaches them back to their entity so that the command to clean orphan media files doesn't remove them. - * Source install + - Source install `MIX_ENV=prod mix mobilizon.maintenance.fix_unattached_media_in_body` - * Docker + - Docker `docker-compose exec mobilizon mobilizon_ctl maintenance.fix_unattached_media_in_body` -* **Refresh remote profiles to save avatars locally** +- **Refresh remote profiles to save avatars locally** Profile avatars and banners were previously only proxified and cached. Now we save them locally. Refreshing all remote actors will save profile media locally instead. - * Source install + - Source install `MIX_ENV=prod mix mobilizon.actors.refresh --all` - * Docker + - Docker `docker-compose exec mobilizon mobilizon_ctl actors.refresh --all` -* **imagemagick and webp are now a required dependency** to build Mobilizon. +- **imagemagick and webp are now a required dependency** to build Mobilizon. Optimized versions of Mobilizon's pictures are now produced during front-end build. See [the documentation](https://docs.joinmobilizon.org/administration/dependencies/#misc) to make sure these dependencies are installed. @@ -71,7 +72,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fixed error message not showing up when you are already an anonymous participant for an event - Fixed error message not showing up when you pick an username already in user for a new profile or a group - Fixed translations not fallbacking properly to english when not found -- +- ### Security @@ -80,6 +81,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Translations Updated translations: + - Catalan - Dutch - English @@ -252,20 +254,21 @@ Updated translations: ### Special operations -* We added `application/ld+json` as acceptable MIME type for ActivityPub requests, so you'll need to recompile the `mime` library we use before recompiling Mobilizon: - ``` - MIX_ENV=prod mix deps.clean mime --build - ``` +- We added `application/ld+json` as acceptable MIME type for ActivityPub requests, so you'll need to recompile the `mime` library we use before recompiling Mobilizon: -* The [nginx configuration](https://framagit.org/framasoft/mobilizon/-/blob/master/support/nginx/mobilizon.conf) has been changed with improvements and support for custom error pages. + ``` + MIX_ENV=prod mix deps.clean mime --build + ``` -* The cmake dependency has been added (see [our documentation](https://docs.joinmobilizon.org/administration/dependencies/#basic-tools)) +- The [nginx configuration](https://framagit.org/framasoft/mobilizon/-/blob/master/support/nginx/mobilizon.conf) has been changed with improvements and support for custom error pages. + +- The cmake dependency has been added (see [our documentation](https://docs.joinmobilizon.org/administration/dependencies/#basic-tools)) ### Added - Possibility to login using LDAP - Possibility to login using OAuth providers -- Enabled group features in production mode +- Enabled group features in production mode - including posts (that can be public, unlisted, or restricted to your group members) - resources (collections of links, with folders, accessible to your group members) - discussions (group private and organized chats) @@ -289,11 +292,12 @@ Updated translations: ### Security - Fix group settings being accessible and editable by non-group-admins (thx @pigpig for reporting this responsibly) -- Fix events being editable by profiles without permissions (thx @pigpig for reporting this responsibly) +- Fix events being editable by profiles without permissions (thx @pigpig for reporting this responsibly) ## [1.0.0-beta.3] - 2020-06-24 ### Special operations + Config has moved from `.env` files to a more traditional way to handle things in the Elixir world, with `.exs` files. To migrate existing configuration, you can simply run `mix mobilizon.instance gen` and fill in the adequate values previously in `.env` files (you don't need to perform the operations to create the database). @@ -303,6 +307,7 @@ A minimal file template [is available](https://framagit.org/framasoft/mobilizon/ Also make sure to remove the `EnvironmentFile=` line from the systemd service and set `Environment=MIX_ENV=prod` instead. See [the updated file](https://framagit.org/framasoft/mobilizon/blob/master/support/systemd/mobilizon.service). ### Added + - Possibility to participate to an event without an account (confirmation through email required) - Possibility to participate to a remote event (being redirected by providing federated identity) - Possibility to add a note as a participant when event participation is manually validated (required when participating without an account) @@ -319,6 +324,7 @@ Also make sure to remove the `EnvironmentFile=` line from the systemd service an - Allow user to change language ### Changed + - Configuration handling (see above) - Improved a bit color theme - Signature validation also now checks if `Date` header has acceptable values @@ -329,6 +335,7 @@ Also make sure to remove the `EnvironmentFile=` line from the systemd service an - Improved public event page ### Fixed + - Fixed URL search - Fixed content accessed through URL search being public - Fix event links in some emails @@ -336,17 +343,21 @@ Also make sure to remove the `EnvironmentFile=` line from the systemd service an ## [1.0.0-beta.2] - 2019-12-18 ### Special operations + These two operations couldn't be handled during migrations. They are optional, but you won't be able to search or get participant stats on existing events if they are not executed. These commands will be removed in Mobilizon 1.0.0-beta.3. In order to populate search index for existing events, you need to run the following command (with prod environment): -* `mix mobilizon.setup_search` + +- `mix mobilizon.setup_search` In order to move participant stats to the event table for existing events, you need to run the following command (with prod environment): -* `mix mobilizon.move_participant_stats` + +- `mix mobilizon.move_participant_stats` ### Added + - Federation is active - Added an interface for admins to view and manage instance followers and followings - Ability to comment below events @@ -371,6 +382,7 @@ In order to move participant stats to the event table for existing events, you n - Upgraded frontend and backend dependencies ### Changed + - Move participant stats to event table **(read special instructions above)** - Limit length (20 characters) and number (10) of tags allowed - Added some backend changes and validation for field length @@ -384,6 +396,7 @@ In order to move participant stats to the event table for existing events, you n - Also consider the PeerTube `CommentsEnabled` property to know if you can reply to an event ### Fixed + - Fix event URL validation and check if hostname is correct before showing it - Fix participations stats on the MyEvents page - Fix event description lists margin @@ -413,8 +426,11 @@ In order to move participant stats to the event table for existing events, you n - Fixed event HTML representation when `GET` request has no `Accept` header ### Security + - Sanitize event title to avoid XSS ## [1.0.0-beta.1] - 2019-10-15 + ### Added + - Initial release diff --git a/README.md b/README.md index 831e17974..aad87c9d7 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Mobilizon is your federated organization and mobilization platform. Gather peopl Mobilizon is a tool designed to create platforms for managing communities and events. Its purpose is to help as many people as possible to free themselves from Facebook groups and events, from Meetup, etc. -The Mobilizon software is under a Free licence, so anyone can host a Mobilizon server, called an instance. These instances may federate with each other, so any person with an account on *ExampleMeet* will be able to register to an event created on *SpecimenEvent*. +The Mobilizon software is under a Free licence, so anyone can host a Mobilizon server, called an instance. These instances may federate with each other, so any person with an account on _ExampleMeet_ will be able to register to an event created on _SpecimenEvent_. ## β¨ Features @@ -33,7 +33,7 @@ You will have the power to create multiple identities from the same account, lik ### π Events and groups -Create your events and make sure they will appeal to everybody. +Create your events and make sure they will appeal to everybody. Privacy settings and participants roles are supported. There's no lock-in, you can interact with the event without registration. @@ -46,23 +46,26 @@ We appreciate any contribution to Mobilizon. Check our [CONTRIBUTING](CONTRIBUTI ## Links ### Learn more - * π Official website: [https://joinmobilizon.org](https://joinmobilizon.org) - * π’ Pick an instance [https://mobilizon.org](https://mobilizon.org) - * π» Source: [https://framagit.org/framasoft/mobilizon](https://framagit.org/framasoft/mobilizon) - * π Documentation [https://docs.joinmobilizon.org](https://docs.joinmobilizon.org) - + +- π Official website: [https://joinmobilizon.org](https://joinmobilizon.org) +- π’ Pick an instance [https://mobilizon.org](https://mobilizon.org) +- π» Source: [https://framagit.org/framasoft/mobilizon](https://framagit.org/framasoft/mobilizon) +- π Documentation [https://docs.joinmobilizon.org](https://docs.joinmobilizon.org) + ### Discuss - * π¬ Element/Matrix: [https://matrix.to/#/#Mobilizon:matrix.org](https://matrix.to/#/#Mobilizon:matrix.org) - * π£οΈ Forum: [https://framacolibri.org/c/mobilizon](https://framacolibri.org/c/mobilizon) + +- π¬ Element/Matrix: [https://matrix.to/#/#Mobilizon:matrix.org](https://matrix.to/#/#Mobilizon:matrix.org) +- π£οΈ Forum: [https://framacolibri.org/c/mobilizon](https://framacolibri.org/c/mobilizon) ### Follow - * π Mastodon: [https://framapiaf.org/@mobilizon](https://framapiaf.org/@mobilizon) - * π¦ Twitter [https://twitter.com/@joinmobilizon](https://twitter.com/@joinmobilizon) - + +- π Mastodon: [https://framapiaf.org/@mobilizon](https://framapiaf.org/@mobilizon) +- π¦ Twitter [https://twitter.com/@joinmobilizon](https://twitter.com/@joinmobilizon) + Note: Most federation code comes from [Pleroma](https://pleroma.social), which is `Copyright Β© 2017-2018 Pleroma Authors - AGPL-3.0`. - ## β€οΈ Supports of our crowdfunding + --- We have run [a crowdfunding campaign](https://framablog.org/2019/05/14/mobilizon-lets-finance-a-software-to-free-our-events-from-facebook/) to pave the road to the version 1.0.0 of Mobilizon. Thanks to everyone who pitched in and shared the news around! The list of [everyone who donated is available here](https://joinmobilizon.org/hall-of-fame). diff --git a/SECURITY.md b/SECURITY.md index be9788c4d..6ca34ad69 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -5,15 +5,15 @@ Framasoft, the Mobilizon maintainer team and community take all security bugs in ### Goals -* Mobilizon users can understand the distinctions between public data and private data/metadata on Mobilizon. +- Mobilizon users can understand the distinctions between public data and private data/metadata on Mobilizon. -* Users always know where their private data/metadata resides, who has access to it, and are able to access, export, and delete it. +- Users always know where their private data/metadata resides, who has access to it, and are able to access, export, and delete it. -* Protect private user data/metadata, not just from hackers but also (as much as is possible) from other users, instance admins, community moderators, and external applications. +- Protect private user data/metadata, not just from hackers but also (as much as is possible) from other users, instance admins, community moderators, and external applications. -* Secure from malicious creation, alteration or deletion of public data. +- Secure from malicious creation, alteration or deletion of public data. -* GDPR compliance. +- GDPR compliance. Framasoft is both a developer of open-source/free/libre self-hosted software, and a service provider with users in the European Union. As a result, we are putting user privacy, data sovereignty, and GDPR compliance into our security plans, including asking both the Framasoft community and outside hackers to review our approaches and implementations. @@ -21,11 +21,11 @@ Framasoft is both a developer of open-source/free/libre self-hosted software, an [Mobilizon](https://joinmobilizon.org) will be challenging to keep secure, as it is: -* open source, both back-end and front-end +- open source, both back-end and front-end -* self-hosted by diverse organisations and individuals +- self-hosted by diverse organisations and individuals -* federated (data is transmitted between different hosted instances) +- federated (data is transmitted between different hosted instances) This means there are more attack surfaces compared to typical proprietary, centralised platforms, but also means that hackers and even users can review every part of Mobilizon and make sure that it works as expected. This should result in more secure software, and higher trust in the application and its ecosystem. @@ -33,14 +33,14 @@ This means there are more attack surfaces compared to typical proprietary, centr We are committed to working with security researchers to verify, reproduce, and respond to legitimate reported vulnerabilities. You can help us by following these simple guidelines: -* Alert us about the vulnerability as soon as you become aware of it by emailing the lead maintainer at tcit+mobilizon@framasoft.org. -* Provide details needed to reproduce and validate the vulnerability and a Proof of Concept (PoC) as soon as possible -* Act in good faith to avoid privacy violations, destruction of data, and interruption or degradation of services -* Do not access or modify usersβ private data, without explicit permission of the owner. Only interact with your own accounts or test accounts for security research purposes; -* Contact Framasoft or a maintainer of the Mobilizon project (or the instance admin) immediately if you do inadvertently encounter user data. Do not view, alter, save, store, transfer, or otherwise access the data, and immediately purge any local information upon reporting the vulnerability; -* The lead maintainer will acknowledge your email within 48 hours, and will send a more detailed response within 48 hours indicating the next steps in handling your report. After the initial reply to your report, the security team will endeavor to keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance. -* Give us time to confirm, determine the affected versions and prepare fixes to correct the issue before disclosing it to other parties (if after waiting a reasonable amount of time, we are clearly unable or unwilling to do anything about it, please do hold us accountable!) -* Please test against a local instance of the software, and refrain from running any Denial of Service or automated testing tools against Framasoft's (and our partners') infrastructure +- Alert us about the vulnerability as soon as you become aware of it by emailing the lead maintainer at tcit+mobilizon@framasoft.org. +- Provide details needed to reproduce and validate the vulnerability and a Proof of Concept (PoC) as soon as possible +- Act in good faith to avoid privacy violations, destruction of data, and interruption or degradation of services +- Do not access or modify usersβ private data, without explicit permission of the owner. Only interact with your own accounts or test accounts for security research purposes; +- Contact Framasoft or a maintainer of the Mobilizon project (or the instance admin) immediately if you do inadvertently encounter user data. Do not view, alter, save, store, transfer, or otherwise access the data, and immediately purge any local information upon reporting the vulnerability; +- The lead maintainer will acknowledge your email within 48 hours, and will send a more detailed response within 48 hours indicating the next steps in handling your report. After the initial reply to your report, the security team will endeavor to keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance. +- Give us time to confirm, determine the affected versions and prepare fixes to correct the issue before disclosing it to other parties (if after waiting a reasonable amount of time, we are clearly unable or unwilling to do anything about it, please do hold us accountable!) +- Please test against a local instance of the software, and refrain from running any Denial of Service or automated testing tools against Framasoft's (and our partners') infrastructure Note : Please report security bugs in third-party modules to the person or team maintaining the module. diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 8d84def25..c88fe34bc 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -1,4 +1,4 @@ -version: '3' +version: "3" services: postgres: diff --git a/docker-compose.yml b/docker-compose.yml index 3df763f40..8e12be6be 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3' +version: "3" services: postgres: @@ -15,7 +15,7 @@ services: restart: unless-stopped build: . volumes: - - '.:/app' + - ".:/app" ports: - "4000:4000" depends_on: diff --git a/js/src/common.scss b/js/src/common.scss index 7146d4f61..d6f44d29f 100644 --- a/js/src/common.scss +++ b/js/src/common.scss @@ -23,11 +23,10 @@ main > .container { background: $whitest; min-height: 70vh; } -.step-content{ +.step-content { height: auto; } - a.out, .content a, .ProseMirror a { @@ -45,17 +44,18 @@ main { min-height: 80vh; } } - > #homepage{ + > #homepage { background: $whitest; - #featured_events{ + #featured_events { background: $whitest; } - #picture{ - .container, .section{ + #picture { + .container, + .section { background: $whitest; } } - > .container{ + > .container { min-height: 25vh; } } @@ -63,7 +63,6 @@ main { .section { padding: 1rem 1% 4rem; - } figure img.is-rounded { @@ -109,11 +108,10 @@ body { background: $body-background-color; font-family: BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, "Segoe UI", "Fira Sans", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; - } -#mobilizon{ - > main{ +#mobilizon { + > main { background: $body-background-color; } > .container > .message { @@ -173,12 +171,17 @@ a.list-item { .setting-title { margin-top: 2rem; margin-bottom: 1rem; - h1,h2,h3,h4,h5,h6{ + h1, + h2, + h3, + h4, + h5, + h6 { background: $secondary; - color : $white; - span{ + color: $white; + span { background: $secondary !important; - color : $white !important; + color: $white !important; } } h2 { @@ -190,11 +193,11 @@ a.list-item { } } -.hero-body{ +.hero-body { background-color: $chapril_blue_light; } -.columns{ +.columns { background: $whitest; } .setting-menu-item { @@ -219,9 +222,7 @@ a.list-item { } } - - -.time.datetime-container{ +.time.datetime-container { color: $white; background: $chapril_blue_light; span.month { @@ -233,7 +234,7 @@ a.list-item { footer */ -footer.footer[data-v-40ab164b] span.select select{ +footer.footer[data-v-40ab164b] span.select select { background: $chapril_blue_light; color: $footer-text-color; } diff --git a/js/src/components/Event/EventListCard.vue b/js/src/components/Event/EventListCard.vue index baea0741b..9fe0cc896 100644 --- a/js/src/components/Event/EventListCard.vue +++ b/js/src/components/Event/EventListCard.vue @@ -440,7 +440,7 @@ article.box { line-height: 1em; margin-top: 0.5em; } -.participation-actor{ +.participation-actor { margin-top: 1em; } diff --git a/js/src/components/Footer.vue b/js/src/components/Footer.vue index 2c7b0d61f..c1904d002 100644 --- a/js/src/components/Footer.vue +++ b/js/src/components/Footer.vue @@ -35,21 +35,26 @@ }}
{{ config.description }}
- @@ -660,7 +663,6 @@ section.hero { } .container.section { - @include tablet { margin-top: -4rem; } diff --git a/js/src/views/User/Register.vue b/js/src/views/User/Register.vue index 3b8c50751..ab0ef7389 100644 --- a/js/src/views/User/Register.vue +++ b/js/src/views/User/Register.vue @@ -292,7 +292,6 @@ export default class Register extends Vue { } h2.title { - font-size: 2.5rem; text-decoration: underline; display: inline; diff --git a/test/fixtures/mastodon-accept-activity.json b/test/fixtures/mastodon-accept-activity.json index 4229b11f0..61ef99327 100644 --- a/test/fixtures/mastodon-accept-activity.json +++ b/test/fixtures/mastodon-accept-activity.json @@ -31,4 +31,4 @@ "Emoji": "toot:Emoji" } ] -} \ No newline at end of file +} diff --git a/test/fixtures/mastodon-follow-activity.json b/test/fixtures/mastodon-follow-activity.json index 298847c06..afa30f67c 100644 --- a/test/fixtures/mastodon-follow-activity.json +++ b/test/fixtures/mastodon-follow-activity.json @@ -26,4 +26,4 @@ "Emoji": "toot:Emoji" } ] -} \ No newline at end of file +} diff --git a/test/fixtures/mastodon-like.json b/test/fixtures/mastodon-like.json index 39fb44c4a..1e12a9fff 100644 --- a/test/fixtures/mastodon-like.json +++ b/test/fixtures/mastodon-like.json @@ -26,4 +26,4 @@ "Emoji": "toot:Emoji" } ] -} \ No newline at end of file +} diff --git a/test/fixtures/mastodon-post-activity-hashtag.json b/test/fixtures/mastodon-post-activity-hashtag.json index 8b63e7923..3f8f0b64c 100644 --- a/test/fixtures/mastodon-post-activity-hashtag.json +++ b/test/fixtures/mastodon-post-activity-hashtag.json @@ -1,70 +1,66 @@ { - "@context": [ - "https://www.w3.org/ns/activitystreams", - "https://w3id.org/security/v1", - { - "Emoji": "toot:Emoji", - "Hashtag": "as:Hashtag", - "atomUri": "ostatus:atomUri", - "conversation": "ostatus:conversation", - "inReplyToAtomUri": "ostatus:inReplyToAtomUri", - "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", - "movedTo": "as:movedTo", - "ostatus": "http://ostatus.org#", - "sensitive": "as:sensitive", - "toot": "http://joinmastodon.org/ns#" - } - ], - "actor": "https://framapiaf.org/users/admin", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + { + "Emoji": "toot:Emoji", + "Hashtag": "as:Hashtag", + "atomUri": "ostatus:atomUri", + "conversation": "ostatus:conversation", + "inReplyToAtomUri": "ostatus:inReplyToAtomUri", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", + "movedTo": "as:movedTo", + "ostatus": "http://ostatus.org#", + "sensitive": "as:sensitive", + "toot": "http://joinmastodon.org/ns#" + } + ], + "actor": "https://framapiaf.org/users/admin", + "cc": [ + "https://framapiaf.org/users/admin/followers", + "http://mobilizon.com/@tcit" + ], + "id": "https://framapiaf.org/users/admin/statuses/99512778738411822/activity", + "nickname": "lain", + "object": { + "atomUri": "https://framapiaf.org/users/admin/statuses/99512778738411822", + "attachment": [], + "attributedTo": "https://framapiaf.org/users/admin", "cc": [ - "https://framapiaf.org/users/admin/followers", - "http://mobilizon.com/@tcit" + "https://framapiaf.org/users/admin/followers", + "https://framapiaf.org/users/tcit" ], - "id": "https://framapiaf.org/users/admin/statuses/99512778738411822/activity", - "nickname": "lain", - "object": { - "atomUri": "https://framapiaf.org/users/admin/statuses/99512778738411822", - "attachment": [], - "attributedTo": "https://framapiaf.org/users/admin", - "cc": [ - "https://framapiaf.org/users/admin/followers", - "https://framapiaf.org/users/tcit" - ], - "content": "@tcit #moo
", - "conversation": "tag:mastodon.example.org,2018-02-12:objectId=20:objectType=Conversation", - "id": "https://framapiaf.org/users/admin/statuses/99512778738411822", - "inReplyTo": null, - "inReplyToAtomUri": null, - "published": "2018-02-12T14:08:20Z", - "sensitive": true, - "summary": "cw", - "tag": [ - { - "href": "https://framapiaf.org/users/tcit", - "name": "@tcit@framapiaf.org", - "type": "Mention" - }, - { - "href": "http://mastodon.example.org/tags/moo", - "name": "#moo", - "type": "Hashtag" - } - ], - "to": [ - "https://www.w3.org/ns/activitystreams#Public" - ], - "type": "Note", - "url": "https://framapiaf.org/@admin/99512778738411822" - }, + "content": "@tcit #moo
", + "conversation": "tag:mastodon.example.org,2018-02-12:objectId=20:objectType=Conversation", + "id": "https://framapiaf.org/users/admin/statuses/99512778738411822", + "inReplyTo": null, + "inReplyToAtomUri": null, "published": "2018-02-12T14:08:20Z", - "signature": { - "created": "2018-02-12T14:08:20Z", - "creator": "https://framapiaf.org/users/admin#main-key", - "signatureValue": "rnNfcopkc6+Ju73P806popcfwrK9wGYHaJVG1/ZvrlEbWVDzaHjkXqj9Q3/xju5l8CSn9tvSgCCtPFqZsFQwn/pFIFUcw7ZWB2xi4bDm3NZ3S4XQ8JRaaX7og5hFxAhWkGhJhAkfxVnOg2hG+w2d/7d7vRVSC1vo5ip4erUaA/PkWusZvPIpxnRWoXaxJsFmVx0gJgjpJkYDyjaXUlp+jmaoseeZ4EPQUWqHLKJ59PRG0mg8j2xAjYH9nQaN14qMRmTGPxY8gfv/CUFcatA+8VJU9KEsJkDAwLVvglydNTLGrxpAJU78a2eaht0foV43XUIZGe3DKiJPgE+UOKGCJw==", - "type": "RsaSignature2017" - }, - "to": [ - "https://www.w3.org/ns/activitystreams#Public" + "sensitive": true, + "summary": "cw", + "tag": [ + { + "href": "https://framapiaf.org/users/tcit", + "name": "@tcit@framapiaf.org", + "type": "Mention" + }, + { + "href": "http://mastodon.example.org/tags/moo", + "name": "#moo", + "type": "Hashtag" + } ], - "type": "Create" + "to": ["https://www.w3.org/ns/activitystreams#Public"], + "type": "Note", + "url": "https://framapiaf.org/@admin/99512778738411822" + }, + "published": "2018-02-12T14:08:20Z", + "signature": { + "created": "2018-02-12T14:08:20Z", + "creator": "https://framapiaf.org/users/admin#main-key", + "signatureValue": "rnNfcopkc6+Ju73P806popcfwrK9wGYHaJVG1/ZvrlEbWVDzaHjkXqj9Q3/xju5l8CSn9tvSgCCtPFqZsFQwn/pFIFUcw7ZWB2xi4bDm3NZ3S4XQ8JRaaX7og5hFxAhWkGhJhAkfxVnOg2hG+w2d/7d7vRVSC1vo5ip4erUaA/PkWusZvPIpxnRWoXaxJsFmVx0gJgjpJkYDyjaXUlp+jmaoseeZ4EPQUWqHLKJ59PRG0mg8j2xAjYH9nQaN14qMRmTGPxY8gfv/CUFcatA+8VJU9KEsJkDAwLVvglydNTLGrxpAJU78a2eaht0foV43XUIZGe3DKiJPgE+UOKGCJw==", + "type": "RsaSignature2017" + }, + "to": ["https://www.w3.org/ns/activitystreams#Public"], + "type": "Create" } diff --git a/test/fixtures/mastodon-post-activity.json b/test/fixtures/mastodon-post-activity.json index eb481fddb..3022842ce 100644 --- a/test/fixtures/mastodon-post-activity.json +++ b/test/fixtures/mastodon-post-activity.json @@ -1,65 +1,61 @@ { - "@context": [ - "https://www.w3.org/ns/activitystreams", - "https://w3id.org/security/v1", - { - "Emoji": "toot:Emoji", - "Hashtag": "as:Hashtag", - "atomUri": "ostatus:atomUri", - "conversation": "ostatus:conversation", - "inReplyToAtomUri": "ostatus:inReplyToAtomUri", - "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", - "movedTo": "as:movedTo", - "ostatus": "http://ostatus.org#", - "sensitive": "as:sensitive", - "toot": "http://joinmastodon.org/ns#" - } - ], - "actor": "https://framapiaf.org/users/admin", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + { + "Emoji": "toot:Emoji", + "Hashtag": "as:Hashtag", + "atomUri": "ostatus:atomUri", + "conversation": "ostatus:conversation", + "inReplyToAtomUri": "ostatus:inReplyToAtomUri", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", + "movedTo": "as:movedTo", + "ostatus": "http://ostatus.org#", + "sensitive": "as:sensitive", + "toot": "http://joinmastodon.org/ns#" + } + ], + "actor": "https://framapiaf.org/users/admin", + "cc": [ + "https://framapiaf.org/users/admin/followers", + "http://mobilizon.com/@tcit" + ], + "id": "https://framapiaf.org/users/admin/statuses/99512778738411822/activity", + "nickname": "lain", + "object": { + "atomUri": "https://framapiaf.org/users/admin/statuses/99512778738411822", + "attachment": [], + "attributedTo": "https://framapiaf.org/users/admin", "cc": [ - "https://framapiaf.org/users/admin/followers", - "http://mobilizon.com/@tcit" + "https://framapiaf.org/users/admin/followers", + "https://framapiaf.org/users/tcit" ], - "id": "https://framapiaf.org/users/admin/statuses/99512778738411822/activity", - "nickname": "lain", - "object": { - "atomUri": "https://framapiaf.org/users/admin/statuses/99512778738411822", - "attachment": [], - "attributedTo": "https://framapiaf.org/users/admin", - "cc": [ - "https://framapiaf.org/users/admin/followers", - "https://framapiaf.org/users/tcit" - ], - "content": "", - "conversation": "tag:mastodon.example.org,2018-02-12:objectId=20:objectType=Conversation", - "id": "https://framapiaf.org/users/admin/statuses/99512778738411822", - "inReplyTo": null, - "inReplyToAtomUri": null, - "published": "2018-02-12T14:08:20Z", - "sensitive": true, - "summary": "cw", - "tag": [ - { - "href": "https://framapiaf.org/users/tcit", - "name": "@tcit@framapiaf.org", - "type": "Mention" - } - ], - "to": [ - "https://www.w3.org/ns/activitystreams#Public" - ], - "type": "Note", - "url": "https://framapiaf.org/@admin/99512778738411822" - }, + "content": "", + "conversation": "tag:mastodon.example.org,2018-02-12:objectId=20:objectType=Conversation", + "id": "https://framapiaf.org/users/admin/statuses/99512778738411822", + "inReplyTo": null, + "inReplyToAtomUri": null, "published": "2018-02-12T14:08:20Z", - "signature": { - "created": "2018-02-12T14:08:20Z", - "creator": "https://framapiaf.org/users/admin#main-key", - "signatureValue": "rnNfcopkc6+Ju73P806popcfwrK9wGYHaJVG1/ZvrlEbWVDzaHjkXqj9Q3/xju5l8CSn9tvSgCCtPFqZsFQwn/pFIFUcw7ZWB2xi4bDm3NZ3S4XQ8JRaaX7og5hFxAhWkGhJhAkfxVnOg2hG+w2d/7d7vRVSC1vo5ip4erUaA/PkWusZvPIpxnRWoXaxJsFmVx0gJgjpJkYDyjaXUlp+jmaoseeZ4EPQUWqHLKJ59PRG0mg8j2xAjYH9nQaN14qMRmTGPxY8gfv/CUFcatA+8VJU9KEsJkDAwLVvglydNTLGrxpAJU78a2eaht0foV43XUIZGe3DKiJPgE+UOKGCJw==", - "type": "RsaSignature2017" - }, - "to": [ - "https://www.w3.org/ns/activitystreams#Public" + "sensitive": true, + "summary": "cw", + "tag": [ + { + "href": "https://framapiaf.org/users/tcit", + "name": "@tcit@framapiaf.org", + "type": "Mention" + } ], - "type": "Create" + "to": ["https://www.w3.org/ns/activitystreams#Public"], + "type": "Note", + "url": "https://framapiaf.org/@admin/99512778738411822" + }, + "published": "2018-02-12T14:08:20Z", + "signature": { + "created": "2018-02-12T14:08:20Z", + "creator": "https://framapiaf.org/users/admin#main-key", + "signatureValue": "rnNfcopkc6+Ju73P806popcfwrK9wGYHaJVG1/ZvrlEbWVDzaHjkXqj9Q3/xju5l8CSn9tvSgCCtPFqZsFQwn/pFIFUcw7ZWB2xi4bDm3NZ3S4XQ8JRaaX7og5hFxAhWkGhJhAkfxVnOg2hG+w2d/7d7vRVSC1vo5ip4erUaA/PkWusZvPIpxnRWoXaxJsFmVx0gJgjpJkYDyjaXUlp+jmaoseeZ4EPQUWqHLKJ59PRG0mg8j2xAjYH9nQaN14qMRmTGPxY8gfv/CUFcatA+8VJU9KEsJkDAwLVvglydNTLGrxpAJU78a2eaht0foV43XUIZGe3DKiJPgE+UOKGCJw==", + "type": "RsaSignature2017" + }, + "to": ["https://www.w3.org/ns/activitystreams#Public"], + "type": "Create" } diff --git a/test/fixtures/mastodon-undo-announce.json b/test/fixtures/mastodon-undo-announce.json index b239f7485..275d88c7f 100644 --- a/test/fixtures/mastodon-undo-announce.json +++ b/test/fixtures/mastodon-undo-announce.json @@ -1,47 +1,45 @@ { - "type": "Undo", - "signature": { - "type": "RsaSignature2017", - "signatureValue": "VU9AmHf3Pus9cWtMG/TOdxr+MRQfPHdTVKBBgFJBXhAlMhxEtcbxsu7zmqBgfIz6u0HpTCi5jRXEMftc228OJf/aBUkr4hyWADgcdmhPQgpibouDLgQf9BmnrPqb2rMbzZyt49GJkQZma8taLh077TTq6OKcnsAAJ1evEKOcRYS4OxBSwh4nI726bOXzZWoNzpTcrnm+llcUEN980sDSAS0uyZdb8AxZdfdG6DJQX4AkUD5qTpfqP/vC1ISirrNphvVhlxjUV9Amr4SYTsLx80vdZe5NjeL5Ir4jTIIQLedpxaDu1M9Q+Jpc0fYByQ2hOwUq8JxEmvHvarKjrq0Oww==", - "creator": "http://mastodon.example.org/users/admin#main-key", - "created": "2018-05-11T16:23:45Z" - }, - "object": { - "type": "Announce", - "to": [ - "http://www.w3.org/ns/activitystreams#Public" - ], - "published": "2018-05-11T16:23:37Z", - "object": "https://framapiaf.org/@Framasoft/statuses/102501959686438400", - "id": "https://framapiaf.org/users/Framasoft/statuses/102501959686438400/activity", - "cc": [ - "https://framapiaf.org/users/Framasoft/", - "https://framapiaf.org/users/Framasoft/followers" - ], - "atomUri": "https://framapiaf.org/users/Framasoft/statuses/102501959686438400/activity", - "actor": "https://framapiaf.org/users/Framasoft" - }, - "id": "https://framapiaf.org/users/Framasoft#announces/100011594053806179/undo", - "actor": "https://framapiaf.org/users/Framasoft", - "@context": [ - "http://www.w3.org/ns/activitystreams", - "http://w3id.org/security/v1", - { - "toot": "http://joinmastodon.org/ns#", - "sensitive": "as:sensitive", - "ostatus": "http://ostatus.org#", - "movedTo": "as:movedTo", - "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", - "inReplyToAtomUri": "ostatus:inReplyToAtomUri", - "focalPoint": { - "@id": "toot:focalPoint", - "@container": "@list" - }, - "featured": "toot:featured", - "conversation": "ostatus:conversation", - "atomUri": "ostatus:atomUri", - "Hashtag": "as:Hashtag", - "Emoji": "toot:Emoji" - } - ] + "type": "Undo", + "signature": { + "type": "RsaSignature2017", + "signatureValue": "VU9AmHf3Pus9cWtMG/TOdxr+MRQfPHdTVKBBgFJBXhAlMhxEtcbxsu7zmqBgfIz6u0HpTCi5jRXEMftc228OJf/aBUkr4hyWADgcdmhPQgpibouDLgQf9BmnrPqb2rMbzZyt49GJkQZma8taLh077TTq6OKcnsAAJ1evEKOcRYS4OxBSwh4nI726bOXzZWoNzpTcrnm+llcUEN980sDSAS0uyZdb8AxZdfdG6DJQX4AkUD5qTpfqP/vC1ISirrNphvVhlxjUV9Amr4SYTsLx80vdZe5NjeL5Ir4jTIIQLedpxaDu1M9Q+Jpc0fYByQ2hOwUq8JxEmvHvarKjrq0Oww==", + "creator": "http://mastodon.example.org/users/admin#main-key", + "created": "2018-05-11T16:23:45Z" + }, + "object": { + "type": "Announce", + "to": ["http://www.w3.org/ns/activitystreams#Public"], + "published": "2018-05-11T16:23:37Z", + "object": "https://framapiaf.org/@Framasoft/statuses/102501959686438400", + "id": "https://framapiaf.org/users/Framasoft/statuses/102501959686438400/activity", + "cc": [ + "https://framapiaf.org/users/Framasoft/", + "https://framapiaf.org/users/Framasoft/followers" + ], + "atomUri": "https://framapiaf.org/users/Framasoft/statuses/102501959686438400/activity", + "actor": "https://framapiaf.org/users/Framasoft" + }, + "id": "https://framapiaf.org/users/Framasoft#announces/100011594053806179/undo", + "actor": "https://framapiaf.org/users/Framasoft", + "@context": [ + "http://www.w3.org/ns/activitystreams", + "http://w3id.org/security/v1", + { + "toot": "http://joinmastodon.org/ns#", + "sensitive": "as:sensitive", + "ostatus": "http://ostatus.org#", + "movedTo": "as:movedTo", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", + "inReplyToAtomUri": "ostatus:inReplyToAtomUri", + "focalPoint": { + "@id": "toot:focalPoint", + "@container": "@list" + }, + "featured": "toot:featured", + "conversation": "ostatus:conversation", + "atomUri": "ostatus:atomUri", + "Hashtag": "as:Hashtag", + "Emoji": "toot:Emoji" + } + ] } diff --git a/test/fixtures/mastodon-undo-like.json b/test/fixtures/mastodon-undo-like.json index 0cbed30ff..3b1c96b93 100644 --- a/test/fixtures/mastodon-undo-like.json +++ b/test/fixtures/mastodon-undo-like.json @@ -31,4 +31,4 @@ "Emoji": "toot:Emoji" } ] -} \ No newline at end of file +} diff --git a/test/fixtures/mastodon-unfollow-activity.json b/test/fixtures/mastodon-unfollow-activity.json index 8b78524c1..9e9198be1 100644 --- a/test/fixtures/mastodon-unfollow-activity.json +++ b/test/fixtures/mastodon-unfollow-activity.json @@ -1,34 +1,34 @@ { - "@context":[ - "https://www.w3.org/ns/activitystreams", - "https://w3id.org/security/v1", - { - "toot":"http://joinmastodon.org/ns#", - "sensitive":"as:sensitive", - "ostatus":"http://ostatus.org#", - "movedTo":"as:movedTo", - "manuallyApprovesFollowers":"as:manuallyApprovesFollowers", - "inReplyToAtomUri":"ostatus:inReplyToAtomUri", - "conversation":"ostatus:conversation", - "atomUri":"ostatus:atomUri", - "Hashtag":"as:Hashtag", - "Emoji":"toot:Emoji" - } - ], - "signature":{ - "type":"RsaSignature2017", - "signatureValue":"Kn1/UkAQGJVaXBfWLAHcnwHg8YMAUqlEaBuYLazAG+pz5hqivsyrBmPV186Xzr+B4ZLExA9+SnOoNx/GOz4hBm0kAmukNSILAsUd84tcJ2yT9zc1RKtembK4WiwOw7li0+maeDN0HaB6t+6eTqsCWmtiZpprhXD8V1GGT8yG7X24fQ9oFGn+ng7lasbcCC0988Y1eGqNe7KryxcPuQz57YkDapvtONzk8gyLTkZMV4De93MyRHq6GVjQVIgtiYabQAxrX6Q8C+4P/jQoqdWJHEe+MY5JKyNaT/hMPt2Md1ok9fZQBGHlErk22/zy8bSN19GdG09HmIysBUHRYpBLig==", - "creator":"https://social.tcit.fr/users/tcit#main-key", - "created":"2018-02-17T13:29:31Z" - }, - "type":"Undo", - "object":{ - "type":"Follow", - "object":"http://localtesting.pleroma.lol/users/lain", - "nickname":"lain", - "id":"https://social.tcit.fr/users/tcit#follows/2", - "actor":"https://social.tcit.fr/users/tcit" - }, - "actor":"https://social.tcit.fr/users/tcit", - "id": "https://social.tcit.fr/users/tcit#follow/2/undo" + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + { + "toot": "http://joinmastodon.org/ns#", + "sensitive": "as:sensitive", + "ostatus": "http://ostatus.org#", + "movedTo": "as:movedTo", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", + "inReplyToAtomUri": "ostatus:inReplyToAtomUri", + "conversation": "ostatus:conversation", + "atomUri": "ostatus:atomUri", + "Hashtag": "as:Hashtag", + "Emoji": "toot:Emoji" + } + ], + "signature": { + "type": "RsaSignature2017", + "signatureValue": "Kn1/UkAQGJVaXBfWLAHcnwHg8YMAUqlEaBuYLazAG+pz5hqivsyrBmPV186Xzr+B4ZLExA9+SnOoNx/GOz4hBm0kAmukNSILAsUd84tcJ2yT9zc1RKtembK4WiwOw7li0+maeDN0HaB6t+6eTqsCWmtiZpprhXD8V1GGT8yG7X24fQ9oFGn+ng7lasbcCC0988Y1eGqNe7KryxcPuQz57YkDapvtONzk8gyLTkZMV4De93MyRHq6GVjQVIgtiYabQAxrX6Q8C+4P/jQoqdWJHEe+MY5JKyNaT/hMPt2Md1ok9fZQBGHlErk22/zy8bSN19GdG09HmIysBUHRYpBLig==", + "creator": "https://social.tcit.fr/users/tcit#main-key", + "created": "2018-02-17T13:29:31Z" + }, + "type": "Undo", + "object": { + "type": "Follow", + "object": "http://localtesting.pleroma.lol/users/lain", + "nickname": "lain", + "id": "https://social.tcit.fr/users/tcit#follows/2", + "actor": "https://social.tcit.fr/users/tcit" + }, + "actor": "https://social.tcit.fr/users/tcit", + "id": "https://social.tcit.fr/users/tcit#follow/2/undo" } diff --git a/test/fixtures/mobilizon-invite-activity.json b/test/fixtures/mobilizon-invite-activity.json index e1bd3a6ff..5f2af8030 100644 --- a/test/fixtures/mobilizon-invite-activity.json +++ b/test/fixtures/mobilizon-invite-activity.json @@ -39,4 +39,4 @@ "uuid": "sc:identifier" } ] -} \ No newline at end of file +} diff --git a/test/fixtures/mobilizon-join-activity.json b/test/fixtures/mobilizon-join-activity.json index 8580ccf4a..c2384d0d4 100644 --- a/test/fixtures/mobilizon-join-activity.json +++ b/test/fixtures/mobilizon-join-activity.json @@ -38,4 +38,4 @@ "uuid": "sc:identifier" } ] -} \ No newline at end of file +} diff --git a/test/fixtures/mobilizon-leave-activity.json b/test/fixtures/mobilizon-leave-activity.json index 58e39ffcd..a073c1895 100644 --- a/test/fixtures/mobilizon-leave-activity.json +++ b/test/fixtures/mobilizon-leave-activity.json @@ -38,4 +38,4 @@ "uuid": "sc:identifier" } ] -} \ No newline at end of file +} diff --git a/test/fixtures/mobilizon-members-collection.json b/test/fixtures/mobilizon-members-collection.json index 21244ae5a..659c16fa3 100644 --- a/test/fixtures/mobilizon-members-collection.json +++ b/test/fixtures/mobilizon-members-collection.json @@ -1,84 +1,84 @@ { - "@context": [ - "https://www.w3.org/ns/activitystreams", - "https://litepub.social/litepub/context.jsonld", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://litepub.social/litepub/context.jsonld", + { + "Hashtag": "as:Hashtag", + "PostalAddress": "sc:PostalAddress", + "address": { + "@id": "sc:address", + "@type": "sc:PostalAddress" + }, + "addressCountry": "sc:addressCountry", + "addressLocality": "sc:addressLocality", + "addressRegion": "sc:addressRegion", + "anonymousParticipationEnabled": { + "@id": "mz:anonymousParticipationEnabled", + "@type": "sc:Boolean" + }, + "category": "sc:category", + "commentsEnabled": { + "@id": "pt:commentsEnabled", + "@type": "sc:Boolean" + }, + "ical": "http://www.w3.org/2002/12/cal/ical#", + "joinMode": { + "@id": "mz:joinMode", + "@type": "mz:joinModeType" + }, + "joinModeType": { + "@id": "mz:joinModeType", + "@type": "rdfs:Class" + }, + "location": { + "@id": "sc:location", + "@type": "sc:Place" + }, + "maximumAttendeeCapacity": "sc:maximumAttendeeCapacity", + "mz": "https://joinmobilizon.org/ns#", + "participationMessage": { + "@id": "mz:participationMessage", + "@type": "sc:Text" + }, + "postalCode": "sc:postalCode", + "pt": "https://joinpeertube.org/ns#", + "repliesModerationOption": { + "@id": "mz:repliesModerationOption", + "@type": "mz:repliesModerationOptionType" + }, + "repliesModerationOptionType": { + "@id": "mz:repliesModerationOptionType", + "@type": "rdfs:Class" + }, + "sc": "http://schema.org#", + "streetAddress": "sc:streetAddress", + "uuid": "sc:identifier" + } + ], + "attributedTo": "http://mobilizon.test/@demo", + "first": { + "attributedTo": "http://mobilizon.test/@demo", + "id": "http://mobilizon.test/@demo/members?page=1", + "orderedItems": [ { - "Hashtag": "as:Hashtag", - "PostalAddress": "sc:PostalAddress", - "address": { - "@id": "sc:address", - "@type": "sc:PostalAddress" - }, - "addressCountry": "sc:addressCountry", - "addressLocality": "sc:addressLocality", - "addressRegion": "sc:addressRegion", - "anonymousParticipationEnabled": { - "@id": "mz:anonymousParticipationEnabled", - "@type": "sc:Boolean" - }, - "category": "sc:category", - "commentsEnabled": { - "@id": "pt:commentsEnabled", - "@type": "sc:Boolean" - }, - "ical": "http://www.w3.org/2002/12/cal/ical#", - "joinMode": { - "@id": "mz:joinMode", - "@type": "mz:joinModeType" - }, - "joinModeType": { - "@id": "mz:joinModeType", - "@type": "rdfs:Class" - }, - "location": { - "@id": "sc:location", - "@type": "sc:Place" - }, - "maximumAttendeeCapacity": "sc:maximumAttendeeCapacity", - "mz": "https://joinmobilizon.org/ns#", - "participationMessage": { - "@id": "mz:participationMessage", - "@type": "sc:Text" - }, - "postalCode": "sc:postalCode", - "pt": "https://joinpeertube.org/ns#", - "repliesModerationOption": { - "@id": "mz:repliesModerationOption", - "@type": "mz:repliesModerationOptionType" - }, - "repliesModerationOptionType": { - "@id": "mz:repliesModerationOptionType", - "@type": "rdfs:Class" - }, - "sc": "http://schema.org#", - "streetAddress": "sc:streetAddress", - "uuid": "sc:identifier" + "actor": "http://mobilizon.test/@tcit", + "id": "http://mobilizon.test/member/2fec2e84-5719-48f9-92bd-077f50ff2e6e", + "object": "http://mobilizon.test/@demo", + "role": "administrator", + "type": "Member" + }, + { + "actor": "http://mobilizon2.com/@tcit", + "id": "http://mobilizon.test/member/13b0fc1e-2ceb-401c-bef7-0eba02fb92dc", + "object": "http://mobilizon.test/@demo", + "role": "member", + "type": "Member" } ], - "attributedTo": "http://mobilizon.test/@demo", - "first": { - "attributedTo": "http://mobilizon.test/@demo", - "id": "http://mobilizon.test/@demo/members?page=1", - "orderedItems": [ - { - "actor": "http://mobilizon.test/@tcit", - "id": "http://mobilizon.test/member/2fec2e84-5719-48f9-92bd-077f50ff2e6e", - "object": "http://mobilizon.test/@demo", - "role": "administrator", - "type": "Member" - }, - { - "actor": "http://mobilizon2.com/@tcit", - "id": "http://mobilizon.test/member/13b0fc1e-2ceb-401c-bef7-0eba02fb92dc", - "object": "http://mobilizon.test/@demo", - "role": "member", - "type": "Member" - } - ], - "partOf": "http://mobilizon.test/@demo/members", - "type": "OrderedCollectionPage" - }, - "id": "http://mobilizon.test/@demo/members", - "totalItems": 2, - "type": "OrderedCollection" - } \ No newline at end of file + "partOf": "http://mobilizon.test/@demo/members", + "type": "OrderedCollectionPage" + }, + "id": "http://mobilizon.test/@demo/members", + "totalItems": 2, + "type": "OrderedCollection" +} diff --git a/test/fixtures/prismo-url-map.json b/test/fixtures/prismo-url-map.json index 4e2e2fd4a..b5d899d37 100644 --- a/test/fixtures/prismo-url-map.json +++ b/test/fixtures/prismo-url-map.json @@ -1,65 +1,61 @@ { - "id": "https://prismo.news/posts/83#Create", - "type": "Create", - "actor": [ - { - "type": "Person", - "id": "https://prismo.news/@mxb" - } - ], - "to": [ - "https://www.w3.org/ns/activitystreams#Public" - ], - "object": { - "id": "https://prismo.news/posts/83", - "type": "Article", - "name": "Introducing: Federated follows!", - "published": "2018-11-01T07:10:05Z", - "content": "We are more than thrilled to announce that Prismo now supports federated follows! It means you ca...", - "url": { - "type": "Link", - "mimeType": "text/html", - "href": "https://prismo.news/posts/83" - }, - "votes": 12, - "attributedTo": [ - { - "type": "Person", - "id": "https://prismo.news/@mxb" - } - ], - "to": [ - "https://www.w3.org/ns/activitystreams#Public" - ], - "tags": [ - { - "type": "Hashtag", - "href": "https://prismo.news/tags/prismo", - "name": "#prismo" - }, - { - "type": "Hashtag", - "href": "https://prismo.news/tags/prismodev", - "name": "#prismodev" - }, - { - "type": "Hashtag", - "href": "https://prismo.news/tags/meta", - "name": "#meta" - } - ], - "@context": [ - "https://www.w3.org/ns/activitystreams", - "https://w3id.org/security/v1", - { - "Hashtag": "as:Hashtag" - }, - { - "votes": { - "@id": "as:votes", - "@type": "@id" - } - } - ] + "id": "https://prismo.news/posts/83#Create", + "type": "Create", + "actor": [ + { + "type": "Person", + "id": "https://prismo.news/@mxb" } + ], + "to": ["https://www.w3.org/ns/activitystreams#Public"], + "object": { + "id": "https://prismo.news/posts/83", + "type": "Article", + "name": "Introducing: Federated follows!", + "published": "2018-11-01T07:10:05Z", + "content": "We are more than thrilled to announce that Prismo now supports federated follows! It means you ca...", + "url": { + "type": "Link", + "mimeType": "text/html", + "href": "https://prismo.news/posts/83" + }, + "votes": 12, + "attributedTo": [ + { + "type": "Person", + "id": "https://prismo.news/@mxb" + } + ], + "to": ["https://www.w3.org/ns/activitystreams#Public"], + "tags": [ + { + "type": "Hashtag", + "href": "https://prismo.news/tags/prismo", + "name": "#prismo" + }, + { + "type": "Hashtag", + "href": "https://prismo.news/tags/prismodev", + "name": "#prismodev" + }, + { + "type": "Hashtag", + "href": "https://prismo.news/tags/meta", + "name": "#meta" + } + ], + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + { + "Hashtag": "as:Hashtag" + }, + { + "votes": { + "@id": "as:votes", + "@type": "@id" + } + } + ] + } } diff --git a/test/fixtures/vcr_cassettes/activity_pub/activity_object_bogus.json b/test/fixtures/vcr_cassettes/activity_pub/activity_object_bogus.json index f6d548a8f..cb72fc396 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/activity_object_bogus.json +++ b/test/fixtures/vcr_cassettes/activity_pub/activity_object_bogus.json @@ -113,4 +113,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/event_update_activities.json b/test/fixtures/vcr_cassettes/activity_pub/event_update_activities.json index 8c6d17dd4..d643f1ed2 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/event_update_activities.json +++ b/test/fixtures/vcr_cassettes/activity_pub/event_update_activities.json @@ -136,4 +136,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/fetch_framapiaf.org_users_tcit.json b/test/fixtures/vcr_cassettes/activity_pub/fetch_framapiaf.org_users_tcit.json index fd258c769..4f87c9742 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/fetch_framapiaf.org_users_tcit.json +++ b/test/fixtures/vcr_cassettes/activity_pub/fetch_framapiaf.org_users_tcit.json @@ -95,4 +95,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/fetch_framapiaf_framasoft_status.json b/test/fixtures/vcr_cassettes/activity_pub/fetch_framapiaf_framasoft_status.json index b7340ba0d..3fa209b49 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/fetch_framapiaf_framasoft_status.json +++ b/test/fixtures/vcr_cassettes/activity_pub/fetch_framapiaf_framasoft_status.json @@ -135,4 +135,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/fetch_framasoft_framapiaf_reply.json b/test/fixtures/vcr_cassettes/activity_pub/fetch_framasoft_framapiaf_reply.json index aad7c97cd..b71dcfe19 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/fetch_framasoft_framapiaf_reply.json +++ b/test/fixtures/vcr_cassettes/activity_pub/fetch_framasoft_framapiaf_reply.json @@ -230,4 +230,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/fetch_mobilizon_post_activity.json b/test/fixtures/vcr_cassettes/activity_pub/fetch_mobilizon_post_activity.json index 60072f5a1..c1411866c 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/fetch_mobilizon_post_activity.json +++ b/test/fixtures/vcr_cassettes/activity_pub/fetch_mobilizon_post_activity.json @@ -136,4 +136,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/fetch_reply_to_framatube.json b/test/fixtures/vcr_cassettes/activity_pub/fetch_reply_to_framatube.json index bf4987bb8..c5e25d62b 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/fetch_reply_to_framatube.json +++ b/test/fixtures/vcr_cassettes/activity_pub/fetch_reply_to_framatube.json @@ -186,4 +186,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/fetch_tcit@framapiaf.org.json b/test/fixtures/vcr_cassettes/activity_pub/fetch_tcit@framapiaf.org.json index f08815a2c..d2675951b 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/fetch_tcit@framapiaf.org.json +++ b/test/fixtures/vcr_cassettes/activity_pub/fetch_tcit@framapiaf.org.json @@ -169,4 +169,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/mastodon_activity_hashtag.json b/test/fixtures/vcr_cassettes/activity_pub/mastodon_activity_hashtag.json index 4f8f69059..998abb3b1 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/mastodon_activity_hashtag.json +++ b/test/fixtures/vcr_cassettes/activity_pub/mastodon_activity_hashtag.json @@ -75,4 +75,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/mastodon_announce_activity.json b/test/fixtures/vcr_cassettes/activity_pub/mastodon_announce_activity.json index f42a270b4..8125edacb 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/mastodon_announce_activity.json +++ b/test/fixtures/vcr_cassettes/activity_pub/mastodon_announce_activity.json @@ -115,4 +115,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/mastodon_announce_existing_activity.json b/test/fixtures/vcr_cassettes/activity_pub/mastodon_announce_existing_activity.json index 74397b4ed..235e4219e 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/mastodon_announce_existing_activity.json +++ b/test/fixtures/vcr_cassettes/activity_pub/mastodon_announce_existing_activity.json @@ -37,4 +37,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/mastodon_follow_activity.json b/test/fixtures/vcr_cassettes/activity_pub/mastodon_follow_activity.json index 7d2022d6a..edbadf7bc 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/mastodon_follow_activity.json +++ b/test/fixtures/vcr_cassettes/activity_pub/mastodon_follow_activity.json @@ -103,4 +103,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/mastodon_post_activity.json b/test/fixtures/vcr_cassettes/activity_pub/mastodon_post_activity.json index f8033adc2..2277ddf86 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/mastodon_post_activity.json +++ b/test/fixtures/vcr_cassettes/activity_pub/mastodon_post_activity.json @@ -75,4 +75,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/mastodon_unannounce_activity.json b/test/fixtures/vcr_cassettes/activity_pub/mastodon_unannounce_activity.json index 08f4b08ba..346f2e0cc 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/mastodon_unannounce_activity.json +++ b/test/fixtures/vcr_cassettes/activity_pub/mastodon_unannounce_activity.json @@ -37,4 +37,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/object_bogus_origin.json b/test/fixtures/vcr_cassettes/activity_pub/object_bogus_origin.json index 88f08bbb7..f2a30d8b0 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/object_bogus_origin.json +++ b/test/fixtures/vcr_cassettes/activity_pub/object_bogus_origin.json @@ -75,4 +75,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/signature/invalid_not_found.json b/test/fixtures/vcr_cassettes/activity_pub/signature/invalid_not_found.json index f373fea4c..802784993 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/signature/invalid_not_found.json +++ b/test/fixtures/vcr_cassettes/activity_pub/signature/invalid_not_found.json @@ -110,4 +110,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/signature/invalid_payload.json b/test/fixtures/vcr_cassettes/activity_pub/signature/invalid_payload.json index 8d6514abf..0e86648a0 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/signature/invalid_payload.json +++ b/test/fixtures/vcr_cassettes/activity_pub/signature/invalid_payload.json @@ -112,4 +112,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/signature/valid.json b/test/fixtures/vcr_cassettes/activity_pub/signature/valid.json index 5730b5c59..0a4991540 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/signature/valid.json +++ b/test/fixtures/vcr_cassettes/activity_pub/signature/valid.json @@ -102,4 +102,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/signature/valid_payload.json b/test/fixtures/vcr_cassettes/activity_pub/signature/valid_payload.json index be49bab64..872053f8e 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/signature/valid_payload.json +++ b/test/fixtures/vcr_cassettes/activity_pub/signature/valid_payload.json @@ -102,4 +102,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/unfollow_existing_follow_activity.json b/test/fixtures/vcr_cassettes/activity_pub/unfollow_existing_follow_activity.json index 041fb6361..cdaf2cdee 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/unfollow_existing_follow_activity.json +++ b/test/fixtures/vcr_cassettes/activity_pub/unfollow_existing_follow_activity.json @@ -39,4 +39,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/update_actor_activity.json b/test/fixtures/vcr_cassettes/activity_pub/update_actor_activity.json index 8eae97ac2..2ccb82cbc 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/update_actor_activity.json +++ b/test/fixtures/vcr_cassettes/activity_pub/update_actor_activity.json @@ -281,4 +281,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub_controller/mastodon-post-activity_actor_call.json b/test/fixtures/vcr_cassettes/activity_pub_controller/mastodon-post-activity_actor_call.json index 7397b9fc4..2c739cf34 100644 --- a/test/fixtures/vcr_cassettes/activity_pub_controller/mastodon-post-activity_actor_call.json +++ b/test/fixtures/vcr_cassettes/activity_pub_controller/mastodon-post-activity_actor_call.json @@ -205,4 +205,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/actors/remote_actor_mastodon_tcit.json b/test/fixtures/vcr_cassettes/actors/remote_actor_mastodon_tcit.json index c5d94cfdd..3289b5b1f 100644 --- a/test/fixtures/vcr_cassettes/actors/remote_actor_mastodon_tcit.json +++ b/test/fixtures/vcr_cassettes/actors/remote_actor_mastodon_tcit.json @@ -95,4 +95,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/actors/remote_actor_mastodon_tcit_actor_deleted.json b/test/fixtures/vcr_cassettes/actors/remote_actor_mastodon_tcit_actor_deleted.json index 1efdf8f28..5abf4f5ad 100644 --- a/test/fixtures/vcr_cassettes/actors/remote_actor_mastodon_tcit_actor_deleted.json +++ b/test/fixtures/vcr_cassettes/actors/remote_actor_mastodon_tcit_actor_deleted.json @@ -36,4 +36,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/actors/remote_actor_mastodon_tcit_bad_key.json b/test/fixtures/vcr_cassettes/actors/remote_actor_mastodon_tcit_bad_key.json index 53c6b5c61..d1bd9c0e5 100644 --- a/test/fixtures/vcr_cassettes/actors/remote_actor_mastodon_tcit_bad_key.json +++ b/test/fixtures/vcr_cassettes/actors/remote_actor_mastodon_tcit_bad_key.json @@ -36,4 +36,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/relay/fetch_relay_unfollow.json b/test/fixtures/vcr_cassettes/relay/fetch_relay_unfollow.json index 2fa5b2c2c..3fce72e7b 100644 --- a/test/fixtures/vcr_cassettes/relay/fetch_relay_unfollow.json +++ b/test/fixtures/vcr_cassettes/relay/fetch_relay_unfollow.json @@ -98,4 +98,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/webfinger/friendica.json b/test/fixtures/vcr_cassettes/webfinger/friendica.json index 470269a07..ab86ef707 100644 --- a/test/fixtures/vcr_cassettes/webfinger/friendica.json +++ b/test/fixtures/vcr_cassettes/webfinger/friendica.json @@ -32,4 +32,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/webfinger/mastodon.json b/test/fixtures/vcr_cassettes/webfinger/mastodon.json index a9d77ba2c..123fbfe64 100644 --- a/test/fixtures/vcr_cassettes/webfinger/mastodon.json +++ b/test/fixtures/vcr_cassettes/webfinger/mastodon.json @@ -68,4 +68,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/webfinger/peertube.json b/test/fixtures/vcr_cassettes/webfinger/peertube.json index bc97f4a06..3e8eba03d 100644 --- a/test/fixtures/vcr_cassettes/webfinger/peertube.json +++ b/test/fixtures/vcr_cassettes/webfinger/peertube.json @@ -35,4 +35,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/webfinger/pleroma.json b/test/fixtures/vcr_cassettes/webfinger/pleroma.json index bf129a2be..c4e182755 100644 --- a/test/fixtures/vcr_cassettes/webfinger/pleroma.json +++ b/test/fixtures/vcr_cassettes/webfinger/pleroma.json @@ -40,4 +40,4 @@ "type": "ok" } } -] \ No newline at end of file +] diff --git a/tsconfig.json b/tsconfig.json index ac08cb255..5a682fccc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,3 +1,3 @@ { - "extends": "./js/tsconfig.json" -} \ No newline at end of file + "extends": "./js/tsconfig.json" +}