diff --git a/.pnp.cjs b/.pnp.cjs index f21d95e04..987feeaf9 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -3580,6 +3580,16 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@transfem-org/sfm-js", [\ + ["npm:0.24.5::__archiveUrl=https%3A%2F%2Factivitypub.software%2Fapi%2Fv4%2Fprojects%2F2%2Fpackages%2Fnpm%2F%40transfem-org%2Fsfm-js%2F-%2F%40transfem-org%2Fsfm-js-0.24.5.tgz", {\ + "packageLocation": "./.yarn/cache/@transfem-org-sfm-js-npm-0.24.5-39d514f4c8-a763056dbd.zip/node_modules/@transfem-org/sfm-js/",\ + "packageDependencies": [\ + ["@transfem-org/sfm-js", "npm:0.24.5::__archiveUrl=https%3A%2F%2Factivitypub.software%2Fapi%2Fv4%2Fprojects%2F2%2Fpackages%2Fnpm%2F%40transfem-org%2Fsfm-js%2F-%2F%40transfem-org%2Fsfm-js-0.24.5.tgz"],\ + ["@twemoji/parser", "npm:15.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@tsconfig/node10", [\ ["npm:1.0.9", {\ "packageLocation": "./.yarn/cache/@tsconfig-node10-npm-1.0.9-f2e2d20feb-a33ae4dc2a.zip/node_modules/@tsconfig/node10/",\ @@ -3625,6 +3635,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@twemoji/parser", [\ + ["npm:15.0.0", {\ + "packageLocation": "./.yarn/cache/@twemoji-parser-npm-15.0.0-33f6b3da89-6d9679cb45.zip/node_modules/@twemoji/parser/",\ + "packageDependencies": [\ + ["@twemoji/parser", "npm:15.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@types/accepts", [\ ["npm:1.3.5", {\ "packageLocation": "./.yarn/cache/@types-accepts-npm-1.3.5-1d59cd2a7a-3984edd631.zip/node_modules/@types/accepts/",\ @@ -6952,6 +6971,7 @@ const RAW_RUNTIME_STATE = ["@swc/core", "virtual:21a30884d94fbf67bcf4a1714713cc91d32809a34424c4ce678841dfdc63b58647c5e18570d56e36b3c762ee72f81c251599477127a715978fa6e1d8b9e5d952#npm:1.3.71"],\ ["@swc/core-android-arm64", "npm:1.3.11"],\ ["@syuilo/aiscript", "npm:0.11.1"],\ + ["@transfem-org/sfm-js", "npm:0.24.5::__archiveUrl=https%3A%2F%2Factivitypub.software%2Fapi%2Fv4%2Fprojects%2F2%2Fpackages%2Fnpm%2F%40transfem-org%2Fsfm-js%2F-%2F%40transfem-org%2Fsfm-js-0.24.5.tgz"],\ ["@types/adm-zip", "npm:0.5.0"],\ ["@types/async-lock", "npm:1.4.0"],\ ["@types/bcryptjs", "npm:2.4.2"],\ @@ -7055,7 +7075,6 @@ const RAW_RUNTIME_STATE = ["koa-send", "npm:5.0.1"],\ ["koa-slow", "npm:2.1.0"],\ ["koa-views", "virtual:aa59773ac87791c4813d53447077fcf8a847d6de5a301d34dc31286584b1dbb26d30d3adb5b4c41c1e8aea04371e926fda05c09c6253647c432e11d872a304ba#npm:7.0.2"],\ - ["mfm-js", "npm:0.23.3"],\ ["mime-types", "npm:2.1.35"],\ ["mocha", "npm:10.2.0"],\ ["msgpackr", "npm:1.9.5"],\ @@ -8340,6 +8359,7 @@ const RAW_RUNTIME_STATE = ["@rollup/plugin-json", "virtual:658502eb4296e93abedc18b6aa9b26978f434f08d98e21ebb0e725354b8bb54b62db9c4a1893e460c694ff7500ff5cbafa4457b0dfd26b5838868666c861e990#npm:6.0.1"],\ ["@rollup/pluginutils", "virtual:658502eb4296e93abedc18b6aa9b26978f434f08d98e21ebb0e725354b8bb54b62db9c4a1893e460c694ff7500ff5cbafa4457b0dfd26b5838868666c861e990#npm:5.1.0"],\ ["@syuilo/aiscript", "npm:0.11.1"],\ + ["@transfem-org/sfm-js", "npm:0.24.5::__archiveUrl=https%3A%2F%2Factivitypub.software%2Fapi%2Fv4%2Fprojects%2F2%2Fpackages%2Fnpm%2F%40transfem-org%2Fsfm-js%2F-%2F%40transfem-org%2Fsfm-js-0.24.5.tgz"],\ ["@types/escape-regexp", "npm:0.0.1"],\ ["@types/glob", "npm:8.1.0"],\ ["@types/gulp", "npm:4.0.13"],\ @@ -8385,7 +8405,6 @@ const RAW_RUNTIME_STATE = ["json5", "npm:2.2.3"],\ ["katex", "npm:0.16.8"],\ ["matter-js", "npm:0.18.0"],\ - ["mfm-js", "npm:0.23.3"],\ ["paralint", "npm:1.2.1"],\ ["photoswipe", "npm:5.3.8"],\ ["prettier", "npm:3.0.0"],\ @@ -17552,16 +17571,6 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ - ["mfm-js", [\ - ["npm:0.23.3", {\ - "packageLocation": "./.yarn/cache/mfm-js-npm-0.23.3-b63f178b12-427b44b337.zip/node_modules/mfm-js/",\ - "packageDependencies": [\ - ["mfm-js", "npm:0.23.3"],\ - ["twemoji-parser", "npm:14.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["micromark", [\ ["npm:2.11.4", {\ "packageLocation": "./.yarn/cache/micromark-npm-2.11.4-f7ec94840a-cd3bcbc4c1.zip/node_modules/micromark/",\ diff --git a/.yarn/cache/mfm-js-npm-0.23.3-b63f178b12-427b44b337.zip b/.yarn/cache/mfm-js-npm-0.23.3-b63f178b12-427b44b337.zip deleted file mode 100644 index 0f13f89bc..000000000 --- a/.yarn/cache/mfm-js-npm-0.23.3-b63f178b12-427b44b337.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:24a35f9dc23841a09f8fad55aadacc325f96b67c6dfb233318929bd61dc9c241 -size 23255 diff --git a/.yarnrc.yml b/.yarnrc.yml index 89aa5b882..acddcaad7 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -9,6 +9,8 @@ nodeLinker: pnp npmScopes: iceshrimp: npmRegistryServer: "https://iceshrimp.dev/api/packages/iceshrimp/npm/" + transfem-org: + npmRegistryServer: "https://activitypub.software/api/v4/packages/npm/" packageExtensions: consolidate@^0.16.0: diff --git a/packages/backend/package.json b/packages/backend/package.json index 7d93ac6eb..e01e923fa 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -35,6 +35,7 @@ "@redocly/openapi-core": "1.0.0-beta.131", "@sinonjs/fake-timers": "9.1.2", "@syuilo/aiscript": "0.11.1", + "@transfem-org/sfm-js": "^0.24.5", "adm-zip": "^0.5.10", "ajv": "8.12.0", "archiver": "5.3.1", @@ -88,7 +89,6 @@ "koa-send": "5.0.1", "koa-slow": "2.1.0", "koa-views": "7.0.2", - "mfm-js": "0.23.3", "mime-types": "2.1.35", "msgpackr": "1.9.5", "multer": "1.4.4-lts.1", diff --git a/packages/backend/src/mfm/to-html.ts b/packages/backend/src/mfm/to-html.ts index ddfd92588..5662187c1 100644 --- a/packages/backend/src/mfm/to-html.ts +++ b/packages/backend/src/mfm/to-html.ts @@ -1,5 +1,5 @@ import { Window as HappyDom } from "happy-dom"; -import type * as mfm from "mfm-js"; +import type * as mfm from "@transfem-org/sfm-js"; import config from "@/config/index.js"; import { intersperse } from "@/prelude/array.js"; import type { IMentionedRemoteUsers } from "@/models/entities/note.js"; 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 7de32e6d6..c2a8c5e7a 100644 --- a/packages/backend/src/misc/extract-custom-emojis-from-mfm.ts +++ b/packages/backend/src/misc/extract-custom-emojis-from-mfm.ts @@ -1,4 +1,4 @@ -import * as mfm from "mfm-js"; +import * as mfm from "@transfem-org/sfm-js"; import { unique } from "@/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 826e36221..a0d40418e 100644 --- a/packages/backend/src/misc/extract-hashtags.ts +++ b/packages/backend/src/misc/extract-hashtags.ts @@ -1,4 +1,4 @@ -import * as mfm from "mfm-js"; +import * as mfm from "@transfem-org/sfm-js"; import { unique } from "@/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 474afc4f5..322505106 100644 --- a/packages/backend/src/misc/extract-mentions.ts +++ b/packages/backend/src/misc/extract-mentions.ts @@ -1,6 +1,6 @@ // test is located in test/extract-mentions -import * as mfm from "mfm-js"; +import * as mfm from "@transfem-org/sfm-js"; export function extractMentions( nodes: mfm.MfmNode[], @@ -10,4 +10,4 @@ export function extractMentions( const mentions = mentionNodes.map((x) => x.props); return mentions; -} \ No newline at end of file +} diff --git a/packages/backend/src/models/repositories/note.ts b/packages/backend/src/models/repositories/note.ts index 7eda8d858..332e5de2f 100644 --- a/packages/backend/src/models/repositories/note.ts +++ b/packages/backend/src/models/repositories/note.ts @@ -1,5 +1,5 @@ import { In } from "typeorm"; -import * as mfm from "mfm-js"; +import * as mfm from "@transfem-org/sfm-js"; import { Note } from "@/models/entities/note.js"; import type { User } from "@/models/entities/user.js"; import { diff --git a/packages/backend/src/models/repositories/user-profile.ts b/packages/backend/src/models/repositories/user-profile.ts index 36d2c8c38..67b103ba6 100644 --- a/packages/backend/src/models/repositories/user-profile.ts +++ b/packages/backend/src/models/repositories/user-profile.ts @@ -1,6 +1,6 @@ import { db } from "@/db/postgre.js"; import { UserProfile } from "@/models/entities/user-profile.js"; -import mfm from "mfm-js"; +import mfm from "@transfem-org/sfm-js"; import { extractMentions } from "@/misc/extract-mentions.js"; import { resolveMentionToUserAndProfile } from "@/remote/resolve-user.js"; import { IMentionedRemoteUsers } from "@/models/entities/note.js"; @@ -60,4 +60,4 @@ export class RecursionLimiter { return this.counter-- > 0; }); } -} \ No newline at end of file +} diff --git a/packages/backend/src/remote/activitypub/misc/get-note-html.ts b/packages/backend/src/remote/activitypub/misc/get-note-html.ts index 162a2dbd6..4901b996a 100644 --- a/packages/backend/src/remote/activitypub/misc/get-note-html.ts +++ b/packages/backend/src/remote/activitypub/misc/get-note-html.ts @@ -1,4 +1,4 @@ -import * as mfm from "mfm-js"; +import * as mfm from "@transfem-org/sfm-js"; import type { Note } from "@/models/entities/note.js"; import { toHtml } from "../../../mfm/to-html.js"; diff --git a/packages/backend/src/remote/activitypub/models/note.ts b/packages/backend/src/remote/activitypub/models/note.ts index ad88170fb..6cbecb845 100644 --- a/packages/backend/src/remote/activitypub/models/note.ts +++ b/packages/backend/src/remote/activitypub/models/note.ts @@ -1,5 +1,5 @@ import promiseLimit from "promise-limit"; -import * as mfm from "mfm-js"; +import * as mfm from "@transfem-org/sfm-js"; import config from "@/config/index.js"; import Resolver from "../resolver.js"; import post from "@/services/note/create.js"; diff --git a/packages/backend/src/remote/activitypub/renderer/person.ts b/packages/backend/src/remote/activitypub/renderer/person.ts index a40269bcb..8e79d6537 100644 --- a/packages/backend/src/remote/activitypub/renderer/person.ts +++ b/packages/backend/src/remote/activitypub/renderer/person.ts @@ -1,5 +1,5 @@ import { URL } from "node:url"; -import * as mfm from "mfm-js"; +import * as mfm from "@transfem-org/sfm-js"; import config from "@/config/index.js"; import type { ILocalUser } from "@/models/entities/user.js"; import { DriveFiles, UserProfiles } from "@/models/index.js"; diff --git a/packages/backend/src/server/api/endpoints/i/update.ts b/packages/backend/src/server/api/endpoints/i/update.ts index 31af07cfb..b67aacbb1 100644 --- a/packages/backend/src/server/api/endpoints/i/update.ts +++ b/packages/backend/src/server/api/endpoints/i/update.ts @@ -1,5 +1,5 @@ import RE2 from "re2"; -import * as mfm from "mfm-js"; +import * as mfm from "@transfem-org/sfm-js"; import { publishMainStream, publishUserEvent } from "@/services/stream.js"; import acceptAllFollowRequests from "@/services/following/requests/accept-all.js"; import { publishToFollowers, updateUserProfileData } from "@/services/i/update.js"; diff --git a/packages/backend/src/server/api/mastodon/converters/announcement.ts b/packages/backend/src/server/api/mastodon/converters/announcement.ts index afadf071e..b06f94143 100644 --- a/packages/backend/src/server/api/mastodon/converters/announcement.ts +++ b/packages/backend/src/server/api/mastodon/converters/announcement.ts @@ -1,6 +1,6 @@ import { Announcement } from "@/models/entities/announcement.js"; import { MfmHelpers } from "@/server/api/mastodon/helpers/mfm.js"; -import mfm from "mfm-js"; +import mfm from "@transfem-org/sfm-js"; export class AnnouncementConverter { public static async encode(announcement: Announcement, isRead: boolean): Promise { diff --git a/packages/backend/src/server/api/mastodon/converters/note.ts b/packages/backend/src/server/api/mastodon/converters/note.ts index 85ef9b59b..574336217 100644 --- a/packages/backend/src/server/api/mastodon/converters/note.ts +++ b/packages/backend/src/server/api/mastodon/converters/note.ts @@ -2,7 +2,7 @@ import { ILocalUser, User } from "@/models/entities/user.js"; import { getNote } from "@/server/api/common/getters.js"; import { Note } from "@/models/entities/note.js"; import config from "@/config/index.js"; -import mfm from "mfm-js"; +import mfm from "@transfem-org/sfm-js"; import { UserConverter } from "@/server/api/mastodon/converters/user.js"; import { VisibilityConverter } from "@/server/api/mastodon/converters/visibility.js"; import { escapeMFM } from "@/server/api/mastodon/converters/mfm.js"; diff --git a/packages/backend/src/server/api/mastodon/converters/user.ts b/packages/backend/src/server/api/mastodon/converters/user.ts index 957b14744..12fa9050b 100644 --- a/packages/backend/src/server/api/mastodon/converters/user.ts +++ b/packages/backend/src/server/api/mastodon/converters/user.ts @@ -4,7 +4,7 @@ import { DriveFiles, Followings, HtmlUserCacheEntries, UserProfiles, Users } fro import { EmojiConverter } from "@/server/api/mastodon/converters/emoji.js"; import { populateEmojis } from "@/misc/populate-emojis.js"; import { escapeMFM } from "@/server/api/mastodon/converters/mfm.js"; -import mfm from "mfm-js"; +import mfm from "@transfem-org/sfm-js"; import { awaitAll } from "@/prelude/await-all.js"; import { AccountCache, UserHelpers } from "@/server/api/mastodon/helpers/user.js"; import { MfmHelpers } from "@/server/api/mastodon/helpers/mfm.js"; diff --git a/packages/backend/src/server/api/mastodon/helpers/mfm.ts b/packages/backend/src/server/api/mastodon/helpers/mfm.ts index 910ff5fe0..31c74aeae 100644 --- a/packages/backend/src/server/api/mastodon/helpers/mfm.ts +++ b/packages/backend/src/server/api/mastodon/helpers/mfm.ts @@ -2,7 +2,7 @@ import { IMentionedRemoteUsers } from "@/models/entities/note.js"; import { Window as HappyDom } from "happy-dom"; import config from "@/config/index.js"; import { intersperse } from "@/prelude/array.js"; -import mfm from "mfm-js"; +import mfm from "@transfem-org/sfm-js"; import { resolveMentionFromCache } from "@/remote/resolve-user.js"; export class MfmHelpers { diff --git a/packages/backend/src/server/api/mastodon/helpers/note.ts b/packages/backend/src/server/api/mastodon/helpers/note.ts index 28ca8876e..d465dbffc 100644 --- a/packages/backend/src/server/api/mastodon/helpers/note.ts +++ b/packages/backend/src/server/api/mastodon/helpers/note.ts @@ -19,7 +19,7 @@ import { addPinned, removePinned } from "@/services/i/pin.js"; import { NoteConverter } from "@/server/api/mastodon/converters/note.js"; import { awaitAll } from "@/prelude/await-all.js"; import { VisibilityConverter } from "@/server/api/mastodon/converters/visibility.js"; -import mfm from "mfm-js"; +import mfm from "@transfem-org/sfm-js"; import { FileConverter } from "@/server/api/mastodon/converters/file.js"; import { MfmHelpers } from "@/server/api/mastodon/helpers/mfm.js"; import { toArray, unique } from "@/prelude/array.js"; diff --git a/packages/backend/src/services/i/update.ts b/packages/backend/src/services/i/update.ts index 1201f0e90..ebb379f5e 100644 --- a/packages/backend/src/services/i/update.ts +++ b/packages/backend/src/services/i/update.ts @@ -12,7 +12,7 @@ import { updateUsertags } from "@/services/update-hashtag.js"; import { publishMainStream, publishUserEvent } from "@/services/stream.js"; import acceptAllFollowRequests from "@/services/following/requests/accept-all.js"; import { UserProfile } from "@/models/entities/user-profile.js"; -import mfm from "mfm-js"; +import mfm from "@transfem-org/sfm-js"; import { promiseEarlyReturn } from "@/prelude/promise.js"; import { UserConverter } from "@/server/api/mastodon/converters/user.js"; diff --git a/packages/backend/src/services/note/create.ts b/packages/backend/src/services/note/create.ts index 87dc63a48..50b53db38 100644 --- a/packages/backend/src/services/note/create.ts +++ b/packages/backend/src/services/note/create.ts @@ -1,4 +1,4 @@ -import * as mfm from "mfm-js"; +import * as mfm from "@transfem-org/sfm-js"; import { publishMainStream, publishNotesStream, diff --git a/packages/backend/src/services/note/edit.ts b/packages/backend/src/services/note/edit.ts index c100148cb..97838613b 100644 --- a/packages/backend/src/services/note/edit.ts +++ b/packages/backend/src/services/note/edit.ts @@ -1,4 +1,4 @@ -import * as mfm from "mfm-js"; +import * as mfm from "@transfem-org/sfm-js"; import { publishNoteStream, publishNoteUpdatesStream, } from "@/services/stream.js"; diff --git a/packages/backend/test/extract-mentions.ts b/packages/backend/test/extract-mentions.ts index f400e1e63..c36456e82 100644 --- a/packages/backend/test/extract-mentions.ts +++ b/packages/backend/test/extract-mentions.ts @@ -1,6 +1,6 @@ import * as assert from "assert"; -import { parse } from "mfm-js"; +import { parse } from "@transfem-org/sfm-js"; import { extractMentions } from "../src/misc/extract-mentions.js"; describe("Extract mentions", () => { diff --git a/packages/backend/test/mfm.ts b/packages/backend/test/mfm.ts index 642403875..c11804a17 100644 --- a/packages/backend/test/mfm.ts +++ b/packages/backend/test/mfm.ts @@ -1,5 +1,5 @@ import * as assert from "assert"; -import * as mfm from "mfm-js"; +import * as mfm from "@transfem-org/sfm-js"; import { toHtml } from "../src/mfm/to-html.js"; import { fromHtml } from "../src/mfm/from-html.js"; diff --git a/packages/client/package.json b/packages/client/package.json index 4e6c865ff..7b439bc9d 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -18,6 +18,7 @@ "@rollup/plugin-json": "^6.0.1", "@rollup/pluginutils": "^5.1.0", "@syuilo/aiscript": "0.11.1", + "@transfem-org/sfm-js": "^0.24.5", "@types/escape-regexp": "0.0.1", "@types/glob": "8.1.0", "@types/gulp": "4.0.13", @@ -62,7 +63,6 @@ "json5": "2.2.3", "katex": "0.16.8", "matter-js": "0.18.0", - "mfm-js": "0.23.3", "paralint": "^1.2.1", "photoswipe": "5.3.8", "prettier": "3.0.0", diff --git a/packages/client/src/components/MkNote.vue b/packages/client/src/components/MkNote.vue index d80b90f6b..bb511ef35 100644 --- a/packages/client/src/components/MkNote.vue +++ b/packages/client/src/components/MkNote.vue @@ -258,7 +258,7 @@