summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.npmrc2
-rw-r--r--packages/backend/package.json2
-rw-r--r--packages/backend/src/core/MfmService.ts284
-rw-r--r--packages/backend/src/core/NoteCreateService.ts2
-rw-r--r--packages/backend/src/core/NoteEditService.ts4
-rw-r--r--packages/backend/src/core/activitypub/ApMfmService.ts2
-rw-r--r--packages/backend/src/core/activitypub/ApRendererService.ts14
-rw-r--r--packages/backend/src/misc/extract-custom-emojis-from-mfm.ts2
-rw-r--r--packages/backend/src/misc/extract-hashtags.ts2
-rw-r--r--packages/backend/src/misc/extract-mentions.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/i/update.ts2
-rw-r--r--packages/backend/src/server/api/mastodon/converters.ts10
-rw-r--r--packages/backend/test/unit/MfmService.ts2
-rw-r--r--packages/backend/test/unit/extract-mentions.ts2
-rw-r--r--packages/frontend/package.json2
-rw-r--r--packages/frontend/src/components/MkNote.vue4
-rw-r--r--packages/frontend/src/components/MkNoteDetailed.vue6
-rw-r--r--packages/frontend/src/components/MkPostForm.vue2
-rw-r--r--packages/frontend/src/components/MkSubNoteContent.vue2
-rw-r--r--packages/frontend/src/components/SkNote.vue4
-rw-r--r--packages/frontend/src/components/SkNoteDetailed.vue4
-rw-r--r--packages/frontend/src/components/SkOldNoteWindow.vue2
-rw-r--r--packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts4
-rw-r--r--packages/frontend/src/components/page/page.text.vue2
-rw-r--r--packages/frontend/src/scripts/check-animated-mfm.ts2
-rw-r--r--packages/frontend/src/scripts/extract-mentions.ts2
-rw-r--r--packages/frontend/src/scripts/extract-url-from-mfm.ts2
-rw-r--r--pnpm-lock.yaml24
28 files changed, 197 insertions, 197 deletions
diff --git a/.npmrc b/.npmrc
index da702c3af5..b949431c77 100644
--- a/.npmrc
+++ b/.npmrc
@@ -1,2 +1,2 @@
-@sharkey:registry=https://git.joinsharkey.org/api/packages/Sharkey/npm/
+@transfem-org:registry=https://activitypub.software/api/v4/packages/npm/
engine-strict = true
diff --git a/packages/backend/package.json b/packages/backend/package.json
index 839deaf909..f4865b3d05 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -83,7 +83,7 @@
"@nestjs/core": "10.2.10",
"@nestjs/testing": "10.2.10",
"@peertube/http-signature": "1.7.0",
- "@sharkey/sfm-js": "0.24.4",
+ "@transfem-org/sfm-js": "0.24.4",
"@simplewebauthn/server": "9.0.0",
"@sinonjs/fake-timers": "11.2.2",
"@smithy/node-http-handler": "2.1.10",
diff --git a/packages/backend/src/core/MfmService.ts b/packages/backend/src/core/MfmService.ts
index 60bf8b3c2a..51c4252715 100644
--- a/packages/backend/src/core/MfmService.ts
+++ b/packages/backend/src/core/MfmService.ts
@@ -13,7 +13,7 @@ import { intersperse } from '@/misc/prelude/array.js';
import type { IMentionedRemoteUsers } from '@/models/Note.js';
import { bindThis } from '@/decorators.js';
import * as TreeAdapter from '../../node_modules/parse5/dist/tree-adapters/default.js';
-import type * as mfm from '@sharkey/sfm-js';
+import type * as mfm from '@transfem-org/sfm-js';
const treeAdapter = TreeAdapter.defaultTreeAdapter;
@@ -476,173 +476,173 @@ export class MfmService {
const handlers: {
[K in mfm.MfmNode['type']]: (node: mfm.NodeType<K>) => any;
} = {
- async bold(node) {
- const el = doc.createElement('span');
- el.textContent = '**';
- await appendChildren(node.children, el);
- el.textContent += '**';
- return el;
- },
+ async bold(node) {
+ const el = doc.createElement('span');
+ el.textContent = '**';
+ await appendChildren(node.children, el);
+ el.textContent += '**';
+ return el;
+ },
- async small(node) {
- const el = doc.createElement('small');
- await appendChildren(node.children, el);
- return el;
- },
+ async small(node) {
+ const el = doc.createElement('small');
+ await appendChildren(node.children, el);
+ return el;
+ },
- async strike(node) {
- const el = doc.createElement('span');
- el.textContent = '~~';
- await appendChildren(node.children, el);
- el.textContent += '~~';
- return el;
- },
+ async strike(node) {
+ const el = doc.createElement('span');
+ el.textContent = '~~';
+ await appendChildren(node.children, el);
+ el.textContent += '~~';
+ return el;
+ },
- async italic(node) {
- const el = doc.createElement('span');
- el.textContent = '*';
- await appendChildren(node.children, el);
- el.textContent += '*';
- return el;
- },
+ async italic(node) {
+ const el = doc.createElement('span');
+ el.textContent = '*';
+ await appendChildren(node.children, el);
+ el.textContent += '*';
+ return el;
+ },
- async fn(node) {
- const el = doc.createElement('span');
- el.textContent = '*';
- await appendChildren(node.children, el);
- el.textContent += '*';
- return el;
- },
+ async fn(node) {
+ const el = doc.createElement('span');
+ el.textContent = '*';
+ await appendChildren(node.children, el);
+ el.textContent += '*';
+ return el;
+ },
- blockCode(node) {
- const pre = doc.createElement('pre');
- const inner = doc.createElement('code');
+ blockCode(node) {
+ const pre = doc.createElement('pre');
+ const inner = doc.createElement('code');
- const nodes = node.props.code
- .split(/\r\n|\r|\n/)
- .map((x) => doc.createTextNode(x));
+ const nodes = node.props.code
+ .split(/\r\n|\r|\n/)
+ .map((x) => doc.createTextNode(x));
- for (const x of intersperse<FIXME | 'br'>('br', nodes)) {
- inner.appendChild(x === 'br' ? doc.createElement('br') : x);
- }
+ for (const x of intersperse<FIXME | 'br'>('br', nodes)) {
+ inner.appendChild(x === 'br' ? doc.createElement('br') : x);
+ }
- pre.appendChild(inner);
- return pre;
- },
+ pre.appendChild(inner);
+ return pre;
+ },
- async center(node) {
- const el = doc.createElement('div');
- await appendChildren(node.children, el);
- return el;
- },
+ async center(node) {
+ const el = doc.createElement('div');
+ await appendChildren(node.children, el);
+ return el;
+ },
- emojiCode(node) {
- return doc.createTextNode(`\u200B:${node.props.name}:\u200B`);
- },
+ emojiCode(node) {
+ return doc.createTextNode(`\u200B:${node.props.name}:\u200B`);
+ },
- unicodeEmoji(node) {
- return doc.createTextNode(node.props.emoji);
- },
+ unicodeEmoji(node) {
+ return doc.createTextNode(node.props.emoji);
+ },
- hashtag: (node) => {
- const a = doc.createElement('a');
- a.setAttribute('href', `${this.config.url}/tags/${node.props.hashtag}`);
- a.textContent = `#${node.props.hashtag}`;
- a.setAttribute('rel', 'tag');
- a.setAttribute('class', 'hashtag');
- return a;
- },
+ hashtag: (node) => {
+ const a = doc.createElement('a');
+ a.setAttribute('href', `${this.config.url}/tags/${node.props.hashtag}`);
+ a.textContent = `#${node.props.hashtag}`;
+ a.setAttribute('rel', 'tag');
+ a.setAttribute('class', 'hashtag');
+ return a;
+ },
- inlineCode(node) {
- const el = doc.createElement('code');
- el.textContent = node.props.code;
- return el;
- },
+ inlineCode(node) {
+ const el = doc.createElement('code');
+ el.textContent = node.props.code;
+ return el;
+ },
- mathInline(node) {
- const el = doc.createElement('code');
- el.textContent = node.props.formula;
- return el;
- },
+ mathInline(node) {
+ const el = doc.createElement('code');
+ el.textContent = node.props.formula;
+ return el;
+ },
- mathBlock(node) {
- const el = doc.createElement('code');
- el.textContent = node.props.formula;
- return el;
- },
+ mathBlock(node) {
+ const el = doc.createElement('code');
+ el.textContent = node.props.formula;
+ return el;
+ },
- async link(node) {
- const a = doc.createElement('a');
- a.setAttribute('rel', 'nofollow noopener noreferrer');
- a.setAttribute('target', '_blank');
- a.setAttribute('href', node.props.url);
- await appendChildren(node.children, a);
- return a;
- },
+ async link(node) {
+ const a = doc.createElement('a');
+ a.setAttribute('rel', 'nofollow noopener noreferrer');
+ a.setAttribute('target', '_blank');
+ a.setAttribute('href', node.props.url);
+ await appendChildren(node.children, a);
+ return a;
+ },
- async mention(node) {
- const { username, host, acct } = node.props;
- const resolved = mentionedRemoteUsers.find(remoteUser => remoteUser.username === username && remoteUser.host === host);
+ async mention(node) {
+ const { username, host, acct } = node.props;
+ const resolved = mentionedRemoteUsers.find(remoteUser => remoteUser.username === username && remoteUser.host === host);
- const el = doc.createElement('span');
- if (!resolved) {
- el.textContent = acct;
- } else {
- el.setAttribute('class', 'h-card');
- el.setAttribute('translate', 'no');
- const a = doc.createElement('a');
- a.setAttribute('href', resolved.url ? resolved.url : resolved.uri);
- a.className = 'u-url mention';
- const span = doc.createElement('span');
- span.textContent = resolved.username || username;
- a.textContent = '@';
- a.appendChild(span);
- el.appendChild(a);
- }
+ const el = doc.createElement('span');
+ if (!resolved) {
+ el.textContent = acct;
+ } else {
+ el.setAttribute('class', 'h-card');
+ el.setAttribute('translate', 'no');
+ const a = doc.createElement('a');
+ a.setAttribute('href', resolved.url ? resolved.url : resolved.uri);
+ a.className = 'u-url mention';
+ const span = doc.createElement('span');
+ span.textContent = resolved.username || username;
+ a.textContent = '@';
+ a.appendChild(span);
+ el.appendChild(a);
+ }
- return el;
- },
+ return el;
+ },
- async quote(node) {
- const el = doc.createElement('blockquote');
- await appendChildren(node.children, el);
- return el;
- },
+ async quote(node) {
+ const el = doc.createElement('blockquote');
+ await appendChildren(node.children, el);
+ return el;
+ },
- text(node) {
- const el = doc.createElement('span');
- const nodes = node.props.text
- .split(/\r\n|\r|\n/)
- .map((x) => doc.createTextNode(x));
+ text(node) {
+ const el = doc.createElement('span');
+ const nodes = node.props.text
+ .split(/\r\n|\r|\n/)
+ .map((x) => doc.createTextNode(x));
- for (const x of intersperse<FIXME | 'br'>('br', nodes)) {
- el.appendChild(x === 'br' ? doc.createElement('br') : x);
- }
+ for (const x of intersperse<FIXME | 'br'>('br', nodes)) {
+ el.appendChild(x === 'br' ? doc.createElement('br') : x);
+ }
- return el;
- },
+ return el;
+ },
- url(node) {
- const a = doc.createElement('a');
- a.setAttribute('rel', 'nofollow noopener noreferrer');
- a.setAttribute('target', '_blank');
- a.setAttribute('href', node.props.url);
- a.textContent = node.props.url.replace(/^https?:\/\//, '');
- return a;
- },
+ url(node) {
+ const a = doc.createElement('a');
+ a.setAttribute('rel', 'nofollow noopener noreferrer');
+ a.setAttribute('target', '_blank');
+ a.setAttribute('href', node.props.url);
+ a.textContent = node.props.url.replace(/^https?:\/\//, '');
+ return a;
+ },
- search: (node) => {
- const a = doc.createElement('a');
- a.setAttribute('href', `https"google.com/${node.props.query}`);
- a.textContent = node.props.content;
- return a;
- },
+ search: (node) => {
+ const a = doc.createElement('a');
+ a.setAttribute('href', `https"google.com/${node.props.query}`);
+ a.textContent = node.props.content;
+ return a;
+ },
- async plain(node) {
- const el = doc.createElement('span');
- await appendChildren(node.children, el);
- return el;
- },
+ async plain(node) {
+ const el = doc.createElement('span');
+ await appendChildren(node.children, el);
+ return el;
+ },
};
await appendChildren(nodes, doc.body);
diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts
index 52e8795c37..2848be9fe1 100644
--- a/packages/backend/src/core/NoteCreateService.ts
+++ b/packages/backend/src/core/NoteCreateService.ts
@@ -4,7 +4,7 @@
*/
import { setImmediate } from 'node:timers/promises';
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import { In, DataSource, IsNull, LessThan } from 'typeorm';
import * as Redis from 'ioredis';
import { Inject, Injectable, OnApplicationShutdown } from '@nestjs/common';
diff --git a/packages/backend/src/core/NoteEditService.ts b/packages/backend/src/core/NoteEditService.ts
index bfadb1d18d..98762f790e 100644
--- a/packages/backend/src/core/NoteEditService.ts
+++ b/packages/backend/src/core/NoteEditService.ts
@@ -4,7 +4,7 @@
*/
import { setImmediate } from 'node:timers/promises';
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import { DataSource, In, IsNull, LessThan } from 'typeorm';
import * as Redis from 'ioredis';
import { Inject, Injectable, OnApplicationShutdown } from '@nestjs/common';
@@ -589,7 +589,7 @@ export class NoteEditService implements OnApplicationShutdown {
} else {
this.globalEventService.publishNoteStream(note.id, 'updated', {
cw: note.cw,
- text: note.text!
+ text: note.text!,
});
}
diff --git a/packages/backend/src/core/activitypub/ApMfmService.ts b/packages/backend/src/core/activitypub/ApMfmService.ts
index c19eb310d2..b900def2e4 100644
--- a/packages/backend/src/core/activitypub/ApMfmService.ts
+++ b/packages/backend/src/core/activitypub/ApMfmService.ts
@@ -4,7 +4,7 @@
*/
import { Injectable } from '@nestjs/common';
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import { MfmService } from '@/core/MfmService.js';
import type { MiNote } from '@/models/Note.js';
import { bindThis } from '@/decorators.js';
diff --git a/packages/backend/src/core/activitypub/ApRendererService.ts b/packages/backend/src/core/activitypub/ApRendererService.ts
index f4d39d2408..19899629c3 100644
--- a/packages/backend/src/core/activitypub/ApRendererService.ts
+++ b/packages/backend/src/core/activitypub/ApRendererService.ts
@@ -6,7 +6,7 @@
import { createPublicKey, randomUUID } from 'node:crypto';
import { Inject, Injectable } from '@nestjs/common';
import { In } from 'typeorm';
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import { DI } from '@/di-symbols.js';
import type { Config } from '@/config.js';
import type { MiPartialLocalUser, MiLocalUser, MiPartialRemoteUser, MiRemoteUser, MiUser } from '@/models/User.js';
@@ -28,10 +28,10 @@ import { bindThis } from '@/decorators.js';
import { CustomEmojiService } from '@/core/CustomEmojiService.js';
import { isNotNull } from '@/misc/is-not-null.js';
import { IdService } from '@/core/IdService.js';
+import { MetaService } from '../MetaService.js';
import { LdSignatureService } from './LdSignatureService.js';
import { ApMfmService } from './ApMfmService.js';
import type { IAccept, IActivity, IAdd, IAnnounce, IApDocument, IApEmoji, IApHashtag, IApImage, IApMention, IBlock, ICreate, IDelete, IFlag, IFollow, IKey, ILike, IMove, IObject, IPost, IQuestion, IReject, IRemove, ITombstone, IUndo, IUpdate } from './type.js';
-import { MetaService } from '../MetaService.js';
@Injectable()
export class ApRendererService {
@@ -821,12 +821,12 @@ export class ApRendererService {
'_misskey_summary': 'misskey:_misskey_summary',
'isCat': 'misskey:isCat',
// Firefish
- firefish: "https://joinfirefish.org/ns#",
- speakAsCat: "firefish:speakAsCat",
+ firefish: 'https://joinfirefish.org/ns#',
+ speakAsCat: 'firefish:speakAsCat',
// Sharkey
- sharkey: "https://joinsharkey.org/ns#",
- backgroundUrl: "sharkey:backgroundUrl",
- listenbrainz: "sharkey:listenbrainz",
+ sharkey: 'https://joinsharkey.org/ns#',
+ backgroundUrl: 'sharkey:backgroundUrl',
+ listenbrainz: 'sharkey:listenbrainz',
// vcard
vcard: 'http://www.w3.org/2006/vcard/ns#',
},
diff --git a/packages/backend/src/misc/extract-custom-emojis-from-mfm.ts b/packages/backend/src/misc/extract-custom-emojis-from-mfm.ts
index 0e8dfd21f8..99d70799d0 100644
--- a/packages/backend/src/misc/extract-custom-emojis-from-mfm.ts
+++ b/packages/backend/src/misc/extract-custom-emojis-from-mfm.ts
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import { unique } from '@/misc/prelude/array.js';
export function extractCustomEmojisFromMfm(nodes: mfm.MfmNode[]): string[] {
diff --git a/packages/backend/src/misc/extract-hashtags.ts b/packages/backend/src/misc/extract-hashtags.ts
index 3598d90093..e8a7910907 100644
--- a/packages/backend/src/misc/extract-hashtags.ts
+++ b/packages/backend/src/misc/extract-hashtags.ts
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import { unique } from '@/misc/prelude/array.js';
export function extractHashtags(nodes: mfm.MfmNode[]): string[] {
diff --git a/packages/backend/src/misc/extract-mentions.ts b/packages/backend/src/misc/extract-mentions.ts
index b0897b05a8..fd2741f78d 100644
--- a/packages/backend/src/misc/extract-mentions.ts
+++ b/packages/backend/src/misc/extract-mentions.ts
@@ -5,7 +5,7 @@
// test is located in test/extract-mentions
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
export function extractMentions(nodes: mfm.MfmNode[]): mfm.MfmMention['props'][] {
// TODO: 重複を削除
diff --git a/packages/backend/src/server/api/endpoints/i/update.ts b/packages/backend/src/server/api/endpoints/i/update.ts
index 22079de042..bfb3fffdc6 100644
--- a/packages/backend/src/server/api/endpoints/i/update.ts
+++ b/packages/backend/src/server/api/endpoints/i/update.ts
@@ -4,7 +4,7 @@
*/
import RE2 from 're2';
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import { Inject, Injectable } from '@nestjs/common';
import ms from 'ms';
import { JSDOM } from 'jsdom';
diff --git a/packages/backend/src/server/api/mastodon/converters.ts b/packages/backend/src/server/api/mastodon/converters.ts
index cce7f798fe..ca6f233b7f 100644
--- a/packages/backend/src/server/api/mastodon/converters.ts
+++ b/packages/backend/src/server/api/mastodon/converters.ts
@@ -1,6 +1,6 @@
import { Inject, Injectable } from '@nestjs/common';
import { Entity } from 'megalodon';
-import mfm from '@sharkey/sfm-js';
+import mfm from '@transfem-org/sfm-js';
import { DI } from '@/di-symbols.js';
import { MfmService } from '@/core/MfmService.js';
import type { Config } from '@/config.js';
@@ -9,9 +9,9 @@ import type { MiUser } from '@/models/User.js';
import type { NoteEditRepository, NotesRepository, UserProfilesRepository, UsersRepository } from '@/models/_.js';
import { awaitAll } from '@/misc/prelude/await-all.js';
import { CustomEmojiService } from '@/core/CustomEmojiService.js';
-import { GetterService } from '../GetterService.js';
import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js';
import { IdService } from '@/core/IdService.js';
+import { GetterService } from '../GetterService.js';
export enum IdConvertType {
MastodonId,
@@ -94,10 +94,10 @@ export class MastoConverters {
text_url: f.url,
meta: {
width: f.properties.width,
- height: f.properties.height
+ height: f.properties.height,
},
description: f.comment ? f.comment : null,
- blurhash: f.blurhash ? f.blurhash : null
+ blurhash: f.blurhash ? f.blurhash : null,
};
}
@@ -185,7 +185,7 @@ export class MastoConverters {
sensitive: files.then(files => files.length > 0 ? files.some((f) => f.isSensitive) : false),
spoiler_text: edit.cw ?? '',
poll: null,
- media_attachments: files.then(files => files.length > 0 ? files.map((f) => this.encodeFile(f)) : [])
+ media_attachments: files.then(files => files.length > 0 ? files.map((f) => this.encodeFile(f)) : []),
};
lastDate = edit.updatedAt;
history.push(awaitAll(item));
diff --git a/packages/backend/test/unit/MfmService.ts b/packages/backend/test/unit/MfmService.ts
index 49e84ccec8..8f40ae4935 100644
--- a/packages/backend/test/unit/MfmService.ts
+++ b/packages/backend/test/unit/MfmService.ts
@@ -4,7 +4,7 @@
*/
import * as assert from 'assert';
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import { Test } from '@nestjs/testing';
import { CoreModule } from '@/core/CoreModule.js';
diff --git a/packages/backend/test/unit/extract-mentions.ts b/packages/backend/test/unit/extract-mentions.ts
index 195e9b8198..683d9eb67c 100644
--- a/packages/backend/test/unit/extract-mentions.ts
+++ b/packages/backend/test/unit/extract-mentions.ts
@@ -5,7 +5,7 @@
import * as assert from 'assert';
-import { parse } from '@sharkey/sfm-js';
+import { parse } from '@transfem-org/sfm-js';
import { extractMentions } from '@/misc/extract-mentions.js';
describe('Extract mentions', () => {
diff --git a/packages/frontend/package.json b/packages/frontend/package.json
index 54c9b83298..f0bb1bb769 100644
--- a/packages/frontend/package.json
+++ b/packages/frontend/package.json
@@ -24,7 +24,7 @@
"@rollup/plugin-json": "6.1.0",
"@rollup/plugin-replace": "5.0.5",
"@rollup/pluginutils": "5.1.0",
- "@sharkey/sfm-js": "0.24.4",
+ "@transfem-org/sfm-js": "0.24.4",
"@syuilo/aiscript": "0.17.0",
"@phosphor-icons/web": "^2.0.3",
"@twemoji/parser": "15.0.0",
diff --git a/packages/frontend/src/components/MkNote.vue b/packages/frontend/src/components/MkNote.vue
index 22e686dc1b..824818756c 100644
--- a/packages/frontend/src/components/MkNote.vue
+++ b/packages/frontend/src/components/MkNote.vue
@@ -178,7 +178,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { computed, inject, onMounted, ref, shallowRef, Ref, watch, provide } from 'vue';
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import * as Misskey from 'misskey-js';
import MkNoteSub from '@/components/MkNoteSub.vue';
import MkNoteHeader from '@/components/MkNoteHeader.vue';
@@ -477,7 +477,7 @@ function renote(visibility: Visibility | 'local') {
renoted.value = true;
});
}
- } else if (!appearNote.value.channel || appearNote.value.channel?.allowRenoteToExternal) {
+ } else if (!appearNote.value.channel || appearNote.value.channel.allowRenoteToExternal) {
const el = renoteButton.value as HTMLElement | null | undefined;
if (el) {
const rect = el.getBoundingClientRect();
diff --git a/packages/frontend/src/components/MkNoteDetailed.vue b/packages/frontend/src/components/MkNoteDetailed.vue
index acde6ef06d..137b38b4d6 100644
--- a/packages/frontend/src/components/MkNoteDetailed.vue
+++ b/packages/frontend/src/components/MkNoteDetailed.vue
@@ -170,7 +170,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<div v-if="!repliesLoaded" style="padding: 16px">
<MkButton style="margin: 0 auto;" primary rounded @click="loadReplies">{{ i18n.ts.loadReplies }}</MkButton>
</div>
- <MkNoteSub v-for="note in replies" :key="note.id" :note="note" :class="$style.reply" :detail="true" :expandAllCws="props.expandAllCws" :onDeleteCallback="removeReply" />
+ <MkNoteSub v-for="note in replies" :key="note.id" :note="note" :class="$style.reply" :detail="true" :expandAllCws="props.expandAllCws" :onDeleteCallback="removeReply"/>
</div>
<div v-else-if="tab === 'renotes'" :class="$style.tab_renotes">
<MkPagination :pagination="renotesPagination" :disableAutoLoad="true">
@@ -221,7 +221,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { computed, inject, onMounted, provide, ref, shallowRef, watch } from 'vue';
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import * as Misskey from 'misskey-js';
import MkNoteSub from '@/components/MkNoteSub.vue';
import MkNoteSimple from '@/components/MkNoteSimple.vue';
@@ -501,7 +501,7 @@ function renote(visibility: Visibility | 'local') {
os.toast(i18n.ts.renoted);
renoted.value = true;
});
- } else if (!appearNote.value.channel || appearNote.value.channel?.allowRenoteToExternal) {
+ } else if (!appearNote.value.channel || appearNote.value.channel.allowRenoteToExternal) {
const el = renoteButton.value as HTMLElement | null | undefined;
if (el) {
const rect = el.getBoundingClientRect();
diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue
index d76a5e1e04..e3d8a6c0d4 100644
--- a/packages/frontend/src/components/MkPostForm.vue
+++ b/packages/frontend/src/components/MkPostForm.vue
@@ -102,7 +102,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { inject, watch, nextTick, onMounted, defineAsyncComponent, provide, shallowRef, ref, computed } from 'vue';
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import * as Misskey from 'misskey-js';
import insertTextAtCursor from 'insert-text-at-cursor';
import { toASCII } from 'punycode/';
diff --git a/packages/frontend/src/components/MkSubNoteContent.vue b/packages/frontend/src/components/MkSubNoteContent.vue
index 904b0f7943..51e3ed0613 100644
--- a/packages/frontend/src/components/MkSubNoteContent.vue
+++ b/packages/frontend/src/components/MkSubNoteContent.vue
@@ -41,7 +41,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { ref, computed } from 'vue';
import * as Misskey from 'misskey-js';
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import MkMediaList from '@/components/MkMediaList.vue';
import MkPoll from '@/components/MkPoll.vue';
import MkButton from '@/components/MkButton.vue';
diff --git a/packages/frontend/src/components/SkNote.vue b/packages/frontend/src/components/SkNote.vue
index 66791223b2..c5faf3dbe1 100644
--- a/packages/frontend/src/components/SkNote.vue
+++ b/packages/frontend/src/components/SkNote.vue
@@ -180,7 +180,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { computed, inject, onMounted, ref, shallowRef, Ref, watch, provide } from 'vue';
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import * as Misskey from 'misskey-js';
import SkNoteSub from '@/components/SkNoteSub.vue';
import SkNoteHeader from '@/components/SkNoteHeader.vue';
@@ -478,7 +478,7 @@ function renote(visibility: Visibility | 'local') {
renoted.value = true;
});
}
- } else if (!appearNote.value.channel || appearNote.value.channel?.allowRenoteToExternal) {
+ } else if (!appearNote.value.channel || appearNote.value.channel.allowRenoteToExternal) {
const el = renoteButton.value as HTMLElement | null | undefined;
if (el) {
const rect = el.getBoundingClientRect();
diff --git a/packages/frontend/src/components/SkNoteDetailed.vue b/packages/frontend/src/components/SkNoteDetailed.vue
index af8ea74330..43cf87a11e 100644
--- a/packages/frontend/src/components/SkNoteDetailed.vue
+++ b/packages/frontend/src/components/SkNoteDetailed.vue
@@ -229,7 +229,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { computed, inject, onMounted, onUnmounted, onUpdated, provide, ref, shallowRef, watch } from 'vue';
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import * as Misskey from 'misskey-js';
import SkNoteSub from '@/components/SkNoteSub.vue';
import SkNoteSimple from '@/components/SkNoteSimple.vue';
@@ -510,7 +510,7 @@ function renote(visibility: Visibility | 'local') {
os.toast(i18n.ts.renoted);
renoted.value = true;
});
- } else if (!appearNote.value.channel || appearNote.value.channel?.allowRenoteToExternal) {
+ } else if (!appearNote.value.channel || appearNote.value.channel.allowRenoteToExternal) {
const el = renoteButton.value as HTMLElement | null | undefined;
if (el) {
const rect = el.getBoundingClientRect();
diff --git a/packages/frontend/src/components/SkOldNoteWindow.vue b/packages/frontend/src/components/SkOldNoteWindow.vue
index 5ea3f03965..bed44bbb08 100644
--- a/packages/frontend/src/components/SkOldNoteWindow.vue
+++ b/packages/frontend/src/components/SkOldNoteWindow.vue
@@ -77,7 +77,7 @@
<script lang="ts" setup>
import { inject, onMounted, ref, shallowRef, computed } from 'vue';
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import * as Misskey from 'misskey-js';
import MkNoteSimple from '@/components/MkNoteSimple.vue';
import MkMediaList from '@/components/MkMediaList.vue';
diff --git a/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts b/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts
index b5f122b44d..00c19790e8 100644
--- a/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts
+++ b/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts
@@ -4,7 +4,7 @@
*/
import { VNode, h, defineAsyncComponent, SetupContext } from 'vue';
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import * as Misskey from 'misskey-js';
import MkUrl from '@/components/global/MkUrl.vue';
import MkTime from '@/components/global/MkTime.vue';
@@ -52,7 +52,7 @@ type MfmEvents = {
// eslint-disable-next-line import/no-default-export
export default function(props: MfmProps, context: SetupContext<MfmEvents>) {
const isNote = props.isNote ?? true;
- const shouldNyaize = props.nyaize ? props.nyaize === 'respect' ? props.author?.isCat ? props.author?.speakAsCat : false : false : false;
+ const shouldNyaize = props.nyaize ? props.nyaize === 'respect' ? props.author?.isCat ? props.author.speakAsCat : false : false : false;
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
if (props.text == null || props.text === '') return;
diff --git a/packages/frontend/src/components/page/page.text.vue b/packages/frontend/src/components/page/page.text.vue
index c0849a6d42..2cb49d9a8f 100644
--- a/packages/frontend/src/components/page/page.text.vue
+++ b/packages/frontend/src/components/page/page.text.vue
@@ -12,7 +12,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { defineAsyncComponent } from 'vue';
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import * as Misskey from 'misskey-js';
import { TextBlock } from './block.type.js';
import { extractUrlFromMfm } from '@/scripts/extract-url-from-mfm.js';
diff --git a/packages/frontend/src/scripts/check-animated-mfm.ts b/packages/frontend/src/scripts/check-animated-mfm.ts
index 8e3ef7ee46..eac18738ee 100644
--- a/packages/frontend/src/scripts/check-animated-mfm.ts
+++ b/packages/frontend/src/scripts/check-animated-mfm.ts
@@ -1,4 +1,4 @@
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
export function checkAnimationFromMfm(nodes: mfm.MfmNode[]): boolean {
const animatedNodes = mfm.extract(nodes, (node) => {
diff --git a/packages/frontend/src/scripts/extract-mentions.ts b/packages/frontend/src/scripts/extract-mentions.ts
index fe60f9a851..c8f3ff14f6 100644
--- a/packages/frontend/src/scripts/extract-mentions.ts
+++ b/packages/frontend/src/scripts/extract-mentions.ts
@@ -5,7 +5,7 @@
// test is located in test/extract-mentions
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
export function extractMentions(nodes: mfm.MfmNode[]): mfm.MfmMention['props'][] {
// TODO: 重複を削除
diff --git a/packages/frontend/src/scripts/extract-url-from-mfm.ts b/packages/frontend/src/scripts/extract-url-from-mfm.ts
index d2fbfbcc00..c220f43c9c 100644
--- a/packages/frontend/src/scripts/extract-url-from-mfm.ts
+++ b/packages/frontend/src/scripts/extract-url-from-mfm.ts
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import * as mfm from '@sharkey/sfm-js';
+import * as mfm from '@transfem-org/sfm-js';
import { unique } from '@/scripts/array.js';
// unique without hash
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 5225660a1f..5e63a16209 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -115,9 +115,6 @@ importers:
'@peertube/http-signature':
specifier: 1.7.0
version: 1.7.0
- '@sharkey/sfm-js':
- specifier: 0.24.4
- version: 0.24.4
'@simplewebauthn/server':
specifier: 9.0.0
version: 9.0.0
@@ -133,6 +130,9 @@ importers:
'@swc/core':
specifier: 1.3.105
version: 1.3.105
+ '@transfem-org/sfm-js':
+ specifier: 0.24.4
+ version: 0.24.4
'@twemoji/parser':
specifier: 15.0.0
version: 15.0.0
@@ -696,12 +696,12 @@ importers:
'@rollup/pluginutils':
specifier: 5.1.0
version: 5.1.0(rollup@4.9.6)
- '@sharkey/sfm-js':
- specifier: 0.24.4
- version: 0.24.4
'@syuilo/aiscript':
specifier: 0.17.0
version: 0.17.0
+ '@transfem-org/sfm-js':
+ specifier: 0.24.4
+ version: 0.24.4
'@twemoji/parser':
specifier: 15.0.0
version: 15.0.0
@@ -5782,12 +5782,6 @@ packages:
string-argv: 0.3.1
dev: true
- /@sharkey/sfm-js@0.24.4:
- resolution: {integrity: sha512-m9reKRceS8kmFEPFlK2nhbN6mP9kE1I895WAc9OlFISMdT5L+IdvBW1NHv8dzjSPSTFZLeCfMHbys1oz+5uLuA==, tarball: https://git.joinsharkey.org/api/packages/Sharkey/npm/%40sharkey%2Fsfm-js/-/0.24.4/sfm-js-0.24.4.tgz}
- dependencies:
- '@twemoji/parser': 15.0.0
- dev: false
-
/@sideway/address@4.1.4:
resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==}
dependencies:
@@ -7513,6 +7507,12 @@ packages:
resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==}
dev: false
+ /@transfem-org/sfm-js@0.24.4:
+ resolution: {integrity: sha1-0wEXqL5UJseGFO4GGFRrES6NCDk=, tarball: https://activitypub.software/api/v4/projects/2/packages/npm/@transfem-org/sfm-js/-/@transfem-org/sfm-js-0.24.4.tgz}
+ dependencies:
+ '@twemoji/parser': 15.0.0
+ dev: false
+
/@trysound/sax@0.2.0:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}