small ui fixes

pull/1167/head
Pranjul Mani 2025-12-04 15:56:05 +05:30
parent dd2c10f487
commit feb98c8d14
8 changed files with 266 additions and 39 deletions

View File

@ -47,6 +47,7 @@
"@revoltchat/rehype-katex": "6.0.3-patch.1",
"@sentry/react": "^8.51.0",
"@sentry/tracing": "^7.120.3",
"axios": "^1.13.2",
"fs-extra": "^10.0.0",
"klaw": "^3.0.0",
"lottie-react": "^2.4.0",

View File

@ -47,7 +47,7 @@ export const changelogEntries: Record<number, ChangelogPost> = {
src: "https://autumn.revolt.chat/attachments/ZuDVIjGiCl61Pk9XGk5qfc8-idN9EnFAk55DUQp713/the.png",
shadow: true,
},
"If you want to learn more about how we're making Revolt safer for you, check out our new blog post :point_right: [https://revolt.chat/posts/improving-user-safety](https://revolt.chat/posts/improving-user-safety)",
"If you want to learn more about how we're making Pepchat safer for you, check out our new blog post :point_right: [https://revolt.chat/posts/improving-user-safety](https://revolt.chat/posts/improving-user-safety)",
],
},
3: {
@ -66,7 +66,7 @@ export const changelogEntries: Record<number, ChangelogPost> = {
/>
),
},
"Revolt has undergone a significant change to its username system, transitioning from unique username handles to a new system of display names and usernames with four-digit number tags called discriminators. The four-digit number tags serve as identifiers to differentiate users with the same username, allowing individuals to select desired usernames that reflect their identity.",
"Pepchat has undergone a significant change to its username system, transitioning from unique username handles to a new system of display names and usernames with four-digit number tags called discriminators. The four-digit number tags serve as identifiers to differentiate users with the same username, allowing individuals to select desired usernames that reflect their identity.",
{
type: "element",
element: (

View File

@ -189,7 +189,7 @@ class ClientController {
const { os } = browser;
let isiPad;
if (window.isNative) {
friendly_name = `Revolt Desktop on ${os}`;
friendly_name = `Pepchat Desktop on ${os}`;
} else {
if (name === "ios") {
name = "safari";

View File

@ -35,7 +35,7 @@ export const EXPERIMENTS: {
offline_users: {
title: "Re-enable offline users in large servers (>10k members)",
description:
"If you can take the performance hit - for example, if you're on desktop - you can re-enable offline users for big servers such as the Revolt Lounge.",
"If you can take the performance hit - for example, if you're on desktop - you can re-enable offline users for big servers such as the Pepchat Lounge.",
},
plugins: {
title: "Experimental Plugin API",
@ -45,7 +45,7 @@ export const EXPERIMENTS: {
admin_beta: {
title: "Admin Panel Shortcuts",
description:
"Adds context menu entries to quickly jump to Revolt Admin Panel. This is intended for use by the team.",
"Adds context menu entries to quickly jump to Pepchat Admin Panel. This is intended for use by the team.",
},
};

View File

@ -31,8 +31,8 @@ export default function ConfirmDelete() {
Your account will be deleted in 7 days.
<br />
You may contact{" "}
<a href="mailto:contact@revolt.chat">
Revolt support
<a href="mailto:contact@pepchat.com">
Pepchat support
</a>{" "}
to cancel the request if you wish.
</>

View File

@ -70,7 +70,7 @@ export function Feedback() {
action="chevron"
icon={<Group size={24} />}
description="You can report issues and discuss improvements with us directly here.">
{"Join the Revolt Lounge"}
{"Join the Pepchat Lounge"}
</CategoryButton>
</a>
</Link>

View File

@ -39,7 +39,7 @@ export function Native() {
setAutoStart(v);
}}
title="Start with computer"
description="Launch Revolt when you log into your computer."
description="Launch Pepchat when you log into your computer."
/>
<Checkbox
@ -52,7 +52,7 @@ export function Native() {
});
}}
title="Minimise to Tray"
description="Instead of closing, Revolt will hide in your tray."
description="Instead of closing, Pepchat will hide in your tray."
/>
<Checkbox
value={config.discordRPC}
@ -64,7 +64,7 @@ export function Native() {
});
}}
title="Enable Discord status"
description="Rep Revolt on your Discord status."
description="Rep Pepchat on your Discord status."
/>
{/* <Checkbox
value={config.build === "nightly"}
@ -93,7 +93,7 @@ export function Native() {
});
}}
title="Custom window frame"
description="Let Revolt use its own window frame."
description="Let Pepchat use its own window frame."
/>
<Checkbox //FIXME: In Titlebar.tsx, enable .quick css
disabled={true}
@ -203,7 +203,7 @@ export function Native() {
icon={<img src={RLogo} draggable={false} />}
description={<span>version {window.nativeVersion}</span>}
action={<Refresh size={24} />}>
Revolt for Desktop
Pepchat for Desktop
</CategoryButton>
</div>
);

278
yarn.lock
View File

@ -2887,13 +2887,6 @@ __metadata:
languageName: node
linkType: hard
"@types/prop-types@npm:*":
version: 15.7.4
resolution: "@types/prop-types@npm:15.7.4"
checksum: ef6e1899e59b876c273811b1bd845022fc66d5a3d11cb38a25b6c566b30514ae38fe20a40f67622f362a4f4f7f9224e22d8da101cff3d6e97e11d7b4c307cfc1
languageName: node
linkType: hard
"@types/react-beautiful-dnd@npm:^13":
version: 13.1.2
resolution: "@types/react-beautiful-dnd@npm:13.1.2"
@ -2955,13 +2948,11 @@ __metadata:
linkType: hard
"@types/react@npm:*":
version: 17.0.19
resolution: "@types/react@npm:17.0.19"
version: 19.2.7
resolution: "@types/react@npm:19.2.7"
dependencies:
"@types/prop-types": "*"
"@types/scheduler": "*"
csstype: ^3.0.2
checksum: d5af52623dd863e5a9f64eb72979f19c21e03012e25ee93adc93f664ed7976e81b654128dc653b225ad5ba2aaae24e0febe37face272bb051d6289e23ed7177d
csstype: ^3.2.2
checksum: b1f4c9a45862ea392b9ead060a5b5730b4c41b21fde097db35e639a8a0978460468d8da87f47226230bd4681d6de48ffee695595540084a8a849dde027c66a46
languageName: node
linkType: hard
@ -2974,13 +2965,6 @@ __metadata:
languageName: node
linkType: hard
"@types/scheduler@npm:*":
version: 0.16.2
resolution: "@types/scheduler@npm:0.16.2"
checksum: b6b4dcfeae6deba2e06a70941860fb1435730576d3689225a421280b7742318d1548b3d22c1f66ab68e414f346a9542f29240bc955b6332c5b11e561077583bc
languageName: node
linkType: hard
"@types/semver@npm:^7":
version: 7.3.9
resolution: "@types/semver@npm:7.3.9"
@ -3411,6 +3395,20 @@ __metadata:
languageName: node
linkType: hard
"async-function@npm:^1.0.0":
version: 1.0.0
resolution: "async-function@npm:1.0.0"
checksum: 9102e246d1ed9b37ac36f57f0a6ca55226876553251a31fc80677e71471f463a54c872dc78d5d7f80740c8ba624395cccbe8b60f7b690c4418f487d8e9fd1106
languageName: node
linkType: hard
"async-generator-function@npm:^1.0.0":
version: 1.0.0
resolution: "async-generator-function@npm:1.0.0"
checksum: 74a71a4a2dd7afd06ebb612f6d612c7f4766a351bedffde466023bf6dae629e46b0d2cd38786239e0fbf245de0c7df76035465e16d1213774a0efb22fec0d713
languageName: node
linkType: hard
"async@npm:0.9.x":
version: 0.9.2
resolution: "async@npm:0.9.2"
@ -3418,6 +3416,13 @@ __metadata:
languageName: node
linkType: hard
"asynckit@npm:^0.4.0":
version: 0.4.0
resolution: "asynckit@npm:0.4.0"
checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be
languageName: node
linkType: hard
"at-least-node@npm:^1.0.0":
version: 1.0.0
resolution: "at-least-node@npm:1.0.0"
@ -3450,6 +3455,17 @@ __metadata:
languageName: node
linkType: hard
"axios@npm:^1.13.2":
version: 1.13.2
resolution: "axios@npm:1.13.2"
dependencies:
follow-redirects: ^1.15.6
form-data: ^4.0.4
proxy-from-env: ^1.1.0
checksum: 057d0204d5930e2969f0bccb9f0752745b1524a36994667833195e7e1a82f245d660752ba8517b2dbea17e9e4ed0479f10b80c5fe45edd0b5a0df645c0060386
languageName: node
linkType: hard
"babel-eslint@npm:^10.0.1":
version: 10.1.0
resolution: "babel-eslint@npm:10.1.0"
@ -3685,6 +3701,16 @@ __metadata:
languageName: node
linkType: hard
"call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2":
version: 1.0.2
resolution: "call-bind-apply-helpers@npm:1.0.2"
dependencies:
es-errors: ^1.3.0
function-bind: ^1.1.2
checksum: b2863d74fcf2a6948221f65d95b91b4b2d90cfe8927650b506141e669f7d5de65cea191bf788838bc40d13846b7886c5bc5c84ab96c3adbcf88ad69a72fcdc6b
languageName: node
linkType: hard
"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2":
version: 1.0.2
resolution: "call-bind@npm:1.0.2"
@ -3865,6 +3891,7 @@ __metadata:
"@typescript-eslint/eslint-plugin": ^4.27.0
"@typescript-eslint/parser": ^4.27.0
"@vitejs/plugin-legacy": ^1.7.1
axios: ^1.13.2
classnames: ^2.3.1
color-rgba: ^2.4.0
dayjs: ^1.10.6
@ -4006,6 +4033,15 @@ __metadata:
languageName: node
linkType: hard
"combined-stream@npm:^1.0.8":
version: 1.0.8
resolution: "combined-stream@npm:1.0.8"
dependencies:
delayed-stream: ~1.0.0
checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c
languageName: node
linkType: hard
"comma-separated-tokens@npm:^2.0.0":
version: 2.0.2
resolution: "comma-separated-tokens@npm:2.0.2"
@ -4181,6 +4217,13 @@ __metadata:
languageName: node
linkType: hard
"csstype@npm:^3.2.2":
version: 3.2.3
resolution: "csstype@npm:3.2.3"
checksum: cb882521b3398958a1ce6ca98c011aec0bde1c77ecaf8a1dd4db3b112a189939beae3b1308243b2fe50fc27eb3edeb0f73a5a4d91d928765dc6d5ecc7bda92ee
languageName: node
linkType: hard
"dayjs@npm:^1.10.6":
version: 1.10.6
resolution: "dayjs@npm:1.10.6"
@ -4256,6 +4299,13 @@ __metadata:
languageName: node
linkType: hard
"delayed-stream@npm:~1.0.0":
version: 1.0.0
resolution: "delayed-stream@npm:1.0.0"
checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020
languageName: node
linkType: hard
"delegates@npm:^1.0.0":
version: 1.0.0
resolution: "delegates@npm:1.0.0"
@ -4334,6 +4384,17 @@ __metadata:
languageName: node
linkType: hard
"dunder-proto@npm:^1.0.1":
version: 1.0.1
resolution: "dunder-proto@npm:1.0.1"
dependencies:
call-bind-apply-helpers: ^1.0.1
es-errors: ^1.3.0
gopd: ^1.2.0
checksum: 149207e36f07bd4941921b0ca929e3a28f1da7bd6b6ff8ff7f4e2f2e460675af4576eeba359c635723dc189b64cdd4787e0255897d5b135ccc5d15cb8685fc90
languageName: node
linkType: hard
"ejs@npm:^3.1.6":
version: 3.1.6
resolution: "ejs@npm:3.1.6"
@ -4476,6 +4537,41 @@ __metadata:
languageName: node
linkType: hard
"es-define-property@npm:^1.0.1":
version: 1.0.1
resolution: "es-define-property@npm:1.0.1"
checksum: 0512f4e5d564021c9e3a644437b0155af2679d10d80f21adaf868e64d30efdfbd321631956f20f42d655fedb2e3a027da479fad3fa6048f768eb453a80a5f80a
languageName: node
linkType: hard
"es-errors@npm:^1.3.0":
version: 1.3.0
resolution: "es-errors@npm:1.3.0"
checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5
languageName: node
linkType: hard
"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1":
version: 1.1.1
resolution: "es-object-atoms@npm:1.1.1"
dependencies:
es-errors: ^1.3.0
checksum: 214d3767287b12f36d3d7267ef342bbbe1e89f899cfd67040309fc65032372a8e60201410a99a1645f2f90c1912c8c49c8668066f6bdd954bcd614dda2e3da97
languageName: node
linkType: hard
"es-set-tostringtag@npm:^2.1.0":
version: 2.1.0
resolution: "es-set-tostringtag@npm:2.1.0"
dependencies:
es-errors: ^1.3.0
get-intrinsic: ^1.2.6
has-tostringtag: ^1.0.2
hasown: ^2.0.2
checksum: 789f35de4be3dc8d11fdcb91bc26af4ae3e6d602caa93299a8c45cf05d36cc5081454ae2a6d3afa09cceca214b76c046e4f8151e092e6fc7feeb5efb9e794fc6
languageName: node
linkType: hard
"es-to-primitive@npm:^1.2.1":
version: 1.2.1
resolution: "es-to-primitive@npm:1.2.1"
@ -5167,6 +5263,29 @@ __metadata:
languageName: node
linkType: hard
"follow-redirects@npm:^1.15.6":
version: 1.15.11
resolution: "follow-redirects@npm:1.15.11"
peerDependenciesMeta:
debug:
optional: true
checksum: 20bf55e9504f59e6cc3743ba27edb2ebf41edea1baab34799408f2c050f73f0c612728db21c691276296d2795ea8a812dc532a98e8793619fcab91abe06d017f
languageName: node
linkType: hard
"form-data@npm:^4.0.4":
version: 4.0.5
resolution: "form-data@npm:4.0.5"
dependencies:
asynckit: ^0.4.0
combined-stream: ^1.0.8
es-set-tostringtag: ^2.1.0
hasown: ^2.0.2
mime-types: ^2.1.12
checksum: af8328413c16d0cded5fccc975a44d227c5120fd46a9e81de8acf619d43ed838414cc6d7792195b30b248f76a65246949a129a4dadd148721948f90cd6d4fb69
languageName: node
linkType: hard
"fs-extra@npm:^10.0.0":
version: 10.0.0
resolution: "fs-extra@npm:10.0.0"
@ -5232,6 +5351,13 @@ __metadata:
languageName: node
linkType: hard
"function-bind@npm:^1.1.2":
version: 1.1.2
resolution: "function-bind@npm:1.1.2"
checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1
languageName: node
linkType: hard
"functional-red-black-tree@npm:^1.0.1":
version: 1.0.1
resolution: "functional-red-black-tree@npm:1.0.1"
@ -5255,6 +5381,13 @@ __metadata:
languageName: node
linkType: hard
"generator-function@npm:^2.0.0":
version: 2.0.1
resolution: "generator-function@npm:2.0.1"
checksum: 3bf87f7b0230de5d74529677e6c3ceb3b7b5d9618b5a22d92b45ce3876defbaf5a77791b25a61b0fa7d13f95675b5ff67a7769f3b9af33f096e34653519e873d
languageName: node
linkType: hard
"gensync@npm:^1.0.0-beta.2":
version: 1.0.0-beta.2
resolution: "gensync@npm:1.0.0-beta.2"
@ -5273,6 +5406,27 @@ __metadata:
languageName: node
linkType: hard
"get-intrinsic@npm:^1.2.6":
version: 1.3.1
resolution: "get-intrinsic@npm:1.3.1"
dependencies:
async-function: ^1.0.0
async-generator-function: ^1.0.0
call-bind-apply-helpers: ^1.0.2
es-define-property: ^1.0.1
es-errors: ^1.3.0
es-object-atoms: ^1.1.1
function-bind: ^1.1.2
generator-function: ^2.0.0
get-proto: ^1.0.1
gopd: ^1.2.0
has-symbols: ^1.1.0
hasown: ^2.0.2
math-intrinsics: ^1.1.0
checksum: c02b3b6a445f9cd53e14896303794ac60f9751f58a69099127248abdb0251957174c6524245fc68579dc8e6a35161d3d94c93e665f808274716f4248b269436a
languageName: node
linkType: hard
"get-own-enumerable-property-symbols@npm:^3.0.0":
version: 3.0.2
resolution: "get-own-enumerable-property-symbols@npm:3.0.2"
@ -5287,6 +5441,16 @@ __metadata:
languageName: node
linkType: hard
"get-proto@npm:^1.0.1":
version: 1.0.1
resolution: "get-proto@npm:1.0.1"
dependencies:
dunder-proto: ^1.0.1
es-object-atoms: ^1.0.0
checksum: 4fc96afdb58ced9a67558698b91433e6b037aaa6f1493af77498d7c85b141382cf223c0e5946f334fb328ee85dfe6edd06d218eaf09556f4bc4ec6005d7f5f7b
languageName: node
linkType: hard
"get-symbol-description@npm:^1.0.0":
version: 1.0.0
resolution: "get-symbol-description@npm:1.0.0"
@ -5392,6 +5556,13 @@ __metadata:
languageName: node
linkType: hard
"gopd@npm:^1.2.0":
version: 1.2.0
resolution: "gopd@npm:1.2.0"
checksum: cc6d8e655e360955bdccaca51a12a474268f95bb793fc3e1f2bdadb075f28bfd1fd988dab872daf77a61d78cbaf13744bc8727a17cfb1d150d76047d805375f3
languageName: node
linkType: hard
"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0":
version: 4.2.8
resolution: "graceful-fs@npm:4.2.8"
@ -5443,6 +5614,13 @@ __metadata:
languageName: node
linkType: hard
"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0":
version: 1.1.0
resolution: "has-symbols@npm:1.1.0"
checksum: b2316c7302a0e8ba3aaba215f834e96c22c86f192e7310bdf689dd0e6999510c89b00fbc5742571507cebf25764d68c988b3a0da217369a73596191ac0ce694b
languageName: node
linkType: hard
"has-tostringtag@npm:^1.0.0":
version: 1.0.0
resolution: "has-tostringtag@npm:1.0.0"
@ -5452,6 +5630,15 @@ __metadata:
languageName: node
linkType: hard
"has-tostringtag@npm:^1.0.2":
version: 1.0.2
resolution: "has-tostringtag@npm:1.0.2"
dependencies:
has-symbols: ^1.0.3
checksum: 999d60bb753ad714356b2c6c87b7fb74f32463b8426e159397da4bde5bca7e598ab1073f4d8d4deafac297f2eb311484cd177af242776bf05f0d11565680468d
languageName: node
linkType: hard
"has-unicode@npm:^2.0.1":
version: 2.0.1
resolution: "has-unicode@npm:2.0.1"
@ -5468,6 +5655,15 @@ __metadata:
languageName: node
linkType: hard
"hasown@npm:^2.0.2":
version: 2.0.2
resolution: "hasown@npm:2.0.2"
dependencies:
function-bind: ^1.1.2
checksum: e8516f776a15149ca6c6ed2ae3110c417a00b62260e222590e54aa367cbcd6ed99122020b37b7fbdf05748df57b265e70095d7bf35a47660587619b15ffb93db
languageName: node
linkType: hard
"hast-to-hyperscript@npm:^10.0.0":
version: 10.0.1
resolution: "hast-to-hyperscript@npm:10.0.1"
@ -6475,6 +6671,13 @@ __metadata:
languageName: node
linkType: hard
"math-intrinsics@npm:^1.1.0":
version: 1.1.0
resolution: "math-intrinsics@npm:1.1.0"
checksum: 0e513b29d120f478c85a70f49da0b8b19bc638975eca466f2eeae0071f3ad00454c621bf66e16dd435896c208e719fc91ad79bbfba4e400fe0b372e7c1c9c9a2
languageName: node
linkType: hard
"mdast-util-definitions@npm:^5.0.0":
version: 5.1.1
resolution: "mdast-util-definitions@npm:5.1.1"
@ -7040,6 +7243,22 @@ __metadata:
languageName: node
linkType: hard
"mime-db@npm:1.52.0":
version: 1.52.0
resolution: "mime-db@npm:1.52.0"
checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f
languageName: node
linkType: hard
"mime-types@npm:^2.1.12":
version: 2.1.35
resolution: "mime-types@npm:2.1.35"
dependencies:
mime-db: 1.52.0
checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836
languageName: node
linkType: hard
"mime@npm:^2.3.1":
version: 2.5.2
resolution: "mime@npm:2.5.2"
@ -7699,6 +7918,13 @@ __metadata:
languageName: node
linkType: hard
"proxy-from-env@npm:^1.1.0":
version: 1.1.0
resolution: "proxy-from-env@npm:1.1.0"
checksum: ed7fcc2ba0a33404958e34d95d18638249a68c430e30fcb6c478497d72739ba64ce9810a24f53a7d921d0c065e5b78e3822759800698167256b04659366ca4d4
languageName: node
linkType: hard
"punycode@npm:^2.1.0":
version: 2.1.1
resolution: "punycode@npm:2.1.1"
@ -9177,12 +9403,12 @@ __metadata:
linkType: hard
"typescript@npm:^4.4.2":
version: 4.4.2
resolution: "typescript@npm:4.4.2"
version: 4.9.5
resolution: "typescript@npm:4.9.5"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 194e08e9d1971d667d6fd1a0554616b7022312a2319d70e81a64e502a265992061ee7817ed9a69b52bbabe7a9b85e7938cb8c11c433e40a516b277f8c4dacd51
checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db
languageName: node
linkType: hard
@ -9197,12 +9423,12 @@ __metadata:
linkType: hard
"typescript@patch:typescript@^4.4.2#~builtin<compat/typescript>":
version: 4.4.2
resolution: "typescript@patch:typescript@npm%3A4.4.2#~builtin<compat/typescript>::version=4.4.2&hash=bda367"
version: 4.9.5
resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin<compat/typescript>::version=4.9.5&hash=bda367"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 4e64d212c1b70ed178b0894c23b4c78a5bf2491d08707098b61f24e54331c47c3c166de210551e7edf26fc0bbdfd5b1548d3d15ed3f738880e4f01c6b6a8b63a
checksum: 2eee5c37cad4390385db5db5a8e81470e42e8f1401b0358d7390095d6f681b410f2c4a0c496c6ff9ebd775423c7785cdace7bcdad76c7bee283df3d9718c0f20
languageName: node
linkType: hard