Merge pull request from GHSA-2vxv-pv3m-3wvj
* fix: normalize incoming signed activities * Tweak style * Update CHANGELOG.md * Log compacted activity as well --------- Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
This commit is contained in:
parent
9f66f22953
commit
d2a5bb39e3
7 changed files with 146 additions and 70 deletions
|
@ -13,6 +13,8 @@ import { ApImageService } from '@/core/activitypub/models/ApImageService.js';
|
|||
import { ApNoteService } from '@/core/activitypub/models/ApNoteService.js';
|
||||
import { ApPersonService } from '@/core/activitypub/models/ApPersonService.js';
|
||||
import { ApRendererService } from '@/core/activitypub/ApRendererService.js';
|
||||
import { JsonLdService } from '@/core/activitypub/JsonLdService.js';
|
||||
import { CONTEXT } from '@/core/activitypub/misc/contexts.js';
|
||||
import { GlobalModule } from '@/GlobalModule.js';
|
||||
import { CoreModule } from '@/core/CoreModule.js';
|
||||
import { FederatedInstanceService } from '@/core/FederatedInstanceService.js';
|
||||
|
@ -88,6 +90,7 @@ describe('ActivityPub', () => {
|
|||
let noteService: ApNoteService;
|
||||
let personService: ApPersonService;
|
||||
let rendererService: ApRendererService;
|
||||
let jsonLdService: JsonLdService;
|
||||
let resolver: MockResolver;
|
||||
|
||||
const metaInitial = {
|
||||
|
@ -128,6 +131,7 @@ describe('ActivityPub', () => {
|
|||
personService = app.get<ApPersonService>(ApPersonService);
|
||||
rendererService = app.get<ApRendererService>(ApRendererService);
|
||||
imageService = app.get<ApImageService>(ApImageService);
|
||||
jsonLdService = app.get<JsonLdService>(JsonLdService);
|
||||
resolver = new MockResolver(await app.resolve<LoggerService>(LoggerService));
|
||||
|
||||
// Prevent ApPersonService from fetching instance, as it causes Jest import-after-test error
|
||||
|
@ -381,4 +385,42 @@ describe('ActivityPub', () => {
|
|||
assert.strictEqual(driveFile, null);
|
||||
});
|
||||
});
|
||||
|
||||
describe('JSON-LD', () =>{
|
||||
test('Compaction', async () => {
|
||||
const jsonLd = jsonLdService.use();
|
||||
|
||||
const object = {
|
||||
'@context': [
|
||||
'https://www.w3.org/ns/activitystreams',
|
||||
{
|
||||
_misskey_quote: 'https://misskey-hub.net/ns#_misskey_quote',
|
||||
unknown: 'https://example.org/ns#unknown',
|
||||
undefined: null,
|
||||
},
|
||||
],
|
||||
id: 'https://example.com/notes/42',
|
||||
type: 'Note',
|
||||
attributedTo: 'https://example.com/users/1',
|
||||
to: ['https://www.w3.org/ns/activitystreams#Public'],
|
||||
content: 'test test foo',
|
||||
_misskey_quote: 'https://example.com/notes/1',
|
||||
unknown: 'test test bar',
|
||||
undefined: 'test test baz',
|
||||
};
|
||||
const compacted = await jsonLd.compact(object);
|
||||
|
||||
assert.deepStrictEqual(compacted, {
|
||||
'@context': CONTEXT,
|
||||
id: 'https://example.com/notes/42',
|
||||
type: 'Note',
|
||||
attributedTo: 'https://example.com/users/1',
|
||||
to: 'as:Public',
|
||||
content: 'test test foo',
|
||||
_misskey_quote: 'https://example.com/notes/1',
|
||||
'https://example.org/ns#unknown': 'test test bar',
|
||||
// undefined: 'test test baz',
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue