serverless-ircd 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (394) hide show
  1. package/.github/workflows/ci.yml +40 -3
  2. package/.github/workflows/deploy-aws.yml +1 -2
  3. package/.github/workflows/deploy-cf-tcp.yml +1 -5
  4. package/.github/workflows/deploy-cf.yml +1 -2
  5. package/.gitmodules +3 -0
  6. package/CHANGELOG.md +474 -0
  7. package/README.md +219 -22
  8. package/apps/aws-stack/README.md +33 -0
  9. package/apps/aws-stack/package.json +1 -1
  10. package/apps/aws-stack/src/aws-stack.ts +74 -9
  11. package/apps/aws-stack/tests/coverage-command.test.ts +155 -0
  12. package/apps/aws-stack/tests/stack.test.ts +2 -2
  13. package/apps/aws-stack/tests/synth-no-bundle.test.ts +129 -0
  14. package/apps/aws-stack/tests/vitest.setup.ts +18 -0
  15. package/apps/aws-stack/vitest.config.ts +3 -0
  16. package/apps/cf-tcp-container/package.json +1 -1
  17. package/apps/cf-tcp-container/src/config-loader.ts +6 -7
  18. package/apps/cf-tcp-container/src/container-server.ts +3 -0
  19. package/apps/cf-tcp-container/tests/config-loader.test.ts +10 -3
  20. package/apps/cf-tcp-container/wrangler.toml +1 -1
  21. package/apps/cf-worker/package.json +2 -1
  22. package/apps/cf-worker/src/origin-allowlist.ts +99 -0
  23. package/apps/cf-worker/src/worker.ts +89 -9
  24. package/apps/cf-worker/tests/fixtures/web-dist/app/index.html +18 -0
  25. package/apps/cf-worker/tests/fixtures/web-dist/index.html +18 -0
  26. package/apps/cf-worker/tests/origin-allowlist.test.ts +101 -0
  27. package/apps/cf-worker/tests/smoke.test.ts +28 -2
  28. package/apps/cf-worker/tests/ws-origin.test.ts +89 -0
  29. package/apps/cf-worker/vitest.config.ts +1 -1
  30. package/apps/cf-worker/wrangler.test.toml +23 -0
  31. package/apps/cf-worker/wrangler.toml +59 -3
  32. package/apps/local-cli/package.json +1 -1
  33. package/apps/local-cli/src/config-loader.ts +6 -6
  34. package/apps/local-cli/src/main.ts +20 -0
  35. package/apps/local-cli/src/server.ts +9 -7
  36. package/apps/local-cli/tests/e2e.test.ts +112 -28
  37. package/apps/local-cli/tests/tcp.test.ts +71 -19
  38. package/apps/local-cli/tests/ws-subprotocol.test.ts +12 -7
  39. package/apps/web/landing/index.html +217 -0
  40. package/apps/web/package.json +28 -0
  41. package/apps/web/scripts/build.mjs +125 -0
  42. package/apps/web/src/build-env.ts +43 -0
  43. package/apps/web/src/config-schema.ts +138 -0
  44. package/apps/web/static/config.json +28 -0
  45. package/apps/web/static/config.prod.json +28 -0
  46. package/apps/web/static/config.staging.json +28 -0
  47. package/apps/web/tests/build-env.test.ts +63 -0
  48. package/apps/web/tests/build-smoke.test.ts +103 -0
  49. package/apps/web/tests/config-schema.test.ts +432 -0
  50. package/apps/web/tests/workspace.test.ts +12 -0
  51. package/apps/web/tsconfig.json +10 -0
  52. package/apps/web/upstream/.browserslistrc +3 -0
  53. package/apps/web/upstream/.editorconfig +9 -0
  54. package/apps/web/upstream/.eslintignore +3 -0
  55. package/apps/web/upstream/.eslintrc.js +90 -0
  56. package/apps/web/upstream/.github/FUNDING.yml +12 -0
  57. package/apps/web/upstream/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  58. package/apps/web/upstream/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  59. package/apps/web/upstream/.github/workflows/push.yml +26 -0
  60. package/apps/web/upstream/.github/workflows/release.yml +33 -0
  61. package/apps/web/upstream/.github/workflows/release_manual.yml +55 -0
  62. package/apps/web/upstream/.prettierrc.js +9 -0
  63. package/apps/web/upstream/.stylelintignore +5 -0
  64. package/apps/web/upstream/.stylelintrc.js +21 -0
  65. package/apps/web/upstream/LICENSE +201 -0
  66. package/apps/web/upstream/README.md +76 -0
  67. package/apps/web/upstream/babel.config.js +25 -0
  68. package/apps/web/upstream/crowdin.yml +3 -0
  69. package/apps/web/upstream/index.html +35 -0
  70. package/apps/web/upstream/jest.config.js +7 -0
  71. package/apps/web/upstream/jsdoc.json +22 -0
  72. package/apps/web/upstream/package.json +80 -0
  73. package/apps/web/upstream/scripts/pre-commit +43 -0
  74. package/apps/web/upstream/src/components/App.vue +516 -0
  75. package/apps/web/upstream/src/components/AppSettings.vue +587 -0
  76. package/apps/web/upstream/src/components/AutoComplete.vue +284 -0
  77. package/apps/web/upstream/src/components/Avatar.vue +105 -0
  78. package/apps/web/upstream/src/components/AwayStatusIndicator.vue +77 -0
  79. package/apps/web/upstream/src/components/BufferKey.vue +121 -0
  80. package/apps/web/upstream/src/components/BufferSettings.vue +97 -0
  81. package/apps/web/upstream/src/components/Captcha.vue +85 -0
  82. package/apps/web/upstream/src/components/ChannelBanlist.vue +96 -0
  83. package/apps/web/upstream/src/components/ChannelInfo.vue +159 -0
  84. package/apps/web/upstream/src/components/ChannelInvitelist.vue +276 -0
  85. package/apps/web/upstream/src/components/ChannelList.vue +345 -0
  86. package/apps/web/upstream/src/components/Container.vue +401 -0
  87. package/apps/web/upstream/src/components/ContainerHeader.vue +522 -0
  88. package/apps/web/upstream/src/components/ControlInput.vue +1016 -0
  89. package/apps/web/upstream/src/components/LoadingAnimation.vue +104 -0
  90. package/apps/web/upstream/src/components/MediaViewer.vue +199 -0
  91. package/apps/web/upstream/src/components/MessageInfo.vue +192 -0
  92. package/apps/web/upstream/src/components/MessageList.vue +1028 -0
  93. package/apps/web/upstream/src/components/MessageListAvatar.vue +20 -0
  94. package/apps/web/upstream/src/components/MessageListMessageCompact.vue +361 -0
  95. package/apps/web/upstream/src/components/MessageListMessageInline.vue +257 -0
  96. package/apps/web/upstream/src/components/MessageListMessageModern.vue +430 -0
  97. package/apps/web/upstream/src/components/NetworkSettings.vue +528 -0
  98. package/apps/web/upstream/src/components/Nicklist.vue +309 -0
  99. package/apps/web/upstream/src/components/NicklistUser.vue +181 -0
  100. package/apps/web/upstream/src/components/NotConnected.vue +271 -0
  101. package/apps/web/upstream/src/components/SelfUser.vue +283 -0
  102. package/apps/web/upstream/src/components/ServerSelector.vue +162 -0
  103. package/apps/web/upstream/src/components/ServerView.vue +126 -0
  104. package/apps/web/upstream/src/components/SettingsAdvanced.vue +232 -0
  105. package/apps/web/upstream/src/components/SettingsAliases.vue +121 -0
  106. package/apps/web/upstream/src/components/Sidebar.vue +429 -0
  107. package/apps/web/upstream/src/components/SidebarAboutBuffer.vue +288 -0
  108. package/apps/web/upstream/src/components/SidebarState.vue +145 -0
  109. package/apps/web/upstream/src/components/StartupError.vue +35 -0
  110. package/apps/web/upstream/src/components/StateBrowser.vue +420 -0
  111. package/apps/web/upstream/src/components/StateBrowserBuffer.vue +124 -0
  112. package/apps/web/upstream/src/components/StateBrowserNetwork.vue +823 -0
  113. package/apps/web/upstream/src/components/StateBrowserUsermenu.vue +162 -0
  114. package/apps/web/upstream/src/components/TypingStatusIndicator.vue +34 -0
  115. package/apps/web/upstream/src/components/TypingUsersList.vue +56 -0
  116. package/apps/web/upstream/src/components/UrlEmbed.vue +149 -0
  117. package/apps/web/upstream/src/components/UserBox.vue +728 -0
  118. package/apps/web/upstream/src/components/inputtools/Emoji.vue +67 -0
  119. package/apps/web/upstream/src/components/inputtools/TextStyle.vue +142 -0
  120. package/apps/web/upstream/src/components/startups/CommonLayout.vue +208 -0
  121. package/apps/web/upstream/src/components/startups/CustomServer.vue +495 -0
  122. package/apps/web/upstream/src/components/startups/KiwiBnc.vue +361 -0
  123. package/apps/web/upstream/src/components/startups/Personal.vue +317 -0
  124. package/apps/web/upstream/src/components/startups/Welcome.vue +544 -0
  125. package/apps/web/upstream/src/components/startups/ZncLogin.vue +229 -0
  126. package/apps/web/upstream/src/components/utils/InputConfirm.vue +68 -0
  127. package/apps/web/upstream/src/components/utils/InputPrompt.vue +118 -0
  128. package/apps/web/upstream/src/components/utils/InputText.vue +172 -0
  129. package/apps/web/upstream/src/components/utils/IrcInput.vue +579 -0
  130. package/apps/web/upstream/src/components/utils/PluginWrapper.vue +26 -0
  131. package/apps/web/upstream/src/components/utils/TabbedView.vue +149 -0
  132. package/apps/web/upstream/src/components/utils/TransitionExpand.vue +97 -0
  133. package/apps/web/upstream/src/helpers/Colours.js +128 -0
  134. package/apps/web/upstream/src/helpers/IrcdDiffs.js +26 -0
  135. package/apps/web/upstream/src/helpers/Md5.js +193 -0
  136. package/apps/web/upstream/src/helpers/Misc.js +401 -0
  137. package/apps/web/upstream/src/helpers/TextFormatting.js +237 -0
  138. package/apps/web/upstream/src/libs/AliasRewriter.js +157 -0
  139. package/apps/web/upstream/src/libs/AudioManager.js +60 -0
  140. package/apps/web/upstream/src/libs/BouncerMiddleware.js +247 -0
  141. package/apps/web/upstream/src/libs/BouncerProvider.js +551 -0
  142. package/apps/web/upstream/src/libs/ChathistoryMiddleware.js +153 -0
  143. package/apps/web/upstream/src/libs/ConfigLoader.js +94 -0
  144. package/apps/web/upstream/src/libs/EmojiProvider.js +46 -0
  145. package/apps/web/upstream/src/libs/GlobalApi.js +346 -0
  146. package/apps/web/upstream/src/libs/IPC.js +51 -0
  147. package/apps/web/upstream/src/libs/InputHandler.js +921 -0
  148. package/apps/web/upstream/src/libs/IrcClient.js +1506 -0
  149. package/apps/web/upstream/src/libs/Logger.js +71 -0
  150. package/apps/web/upstream/src/libs/Message.js +169 -0
  151. package/apps/web/upstream/src/libs/MessageFormatter.js +364 -0
  152. package/apps/web/upstream/src/libs/MessageParser.js +249 -0
  153. package/apps/web/upstream/src/libs/Notifications.js +78 -0
  154. package/apps/web/upstream/src/libs/ServerConnection.js +270 -0
  155. package/apps/web/upstream/src/libs/ServerSession.js +102 -0
  156. package/apps/web/upstream/src/libs/SoundBleep.js +20 -0
  157. package/apps/web/upstream/src/libs/StatePersistence.js +90 -0
  158. package/apps/web/upstream/src/libs/ThemeManager.js +128 -0
  159. package/apps/web/upstream/src/libs/TypingMiddleware.js +105 -0
  160. package/apps/web/upstream/src/libs/WindowTitle.js +63 -0
  161. package/apps/web/upstream/src/libs/batchedAdd.js +74 -0
  162. package/apps/web/upstream/src/libs/bufferTools.js +177 -0
  163. package/apps/web/upstream/src/libs/polyfill/Element.closest.js +18 -0
  164. package/apps/web/upstream/src/libs/renderers/Html.js +113 -0
  165. package/apps/web/upstream/src/libs/settingTools.js +31 -0
  166. package/apps/web/upstream/src/libs/state/BufferState.js +703 -0
  167. package/apps/web/upstream/src/libs/state/NetworkState.js +158 -0
  168. package/apps/web/upstream/src/libs/state/UserState.js +89 -0
  169. package/apps/web/upstream/src/libs/state/common.js +26 -0
  170. package/apps/web/upstream/src/libs/state.js +961 -0
  171. package/apps/web/upstream/src/libs/storage/Local.js +51 -0
  172. package/apps/web/upstream/src/main.js +566 -0
  173. package/apps/web/upstream/src/res/autocompleteCommands.js +31 -0
  174. package/apps/web/upstream/src/res/configTemplates.js +373 -0
  175. package/apps/web/upstream/src/res/globalStyle.css +277 -0
  176. package/apps/web/upstream/src/res/kiwiLoadingLogo.png +0 -0
  177. package/apps/web/upstream/src/res/locales/app.af-ZA.po +1145 -0
  178. package/apps/web/upstream/src/res/locales/app.ar-SA.po +1145 -0
  179. package/apps/web/upstream/src/res/locales/app.bg-BG.po +1145 -0
  180. package/apps/web/upstream/src/res/locales/app.bs-BA.po +1145 -0
  181. package/apps/web/upstream/src/res/locales/app.ca-ES.po +1145 -0
  182. package/apps/web/upstream/src/res/locales/app.cs-CZ.po +1145 -0
  183. package/apps/web/upstream/src/res/locales/app.da-DK.po +1145 -0
  184. package/apps/web/upstream/src/res/locales/app.de-DE.po +1145 -0
  185. package/apps/web/upstream/src/res/locales/app.dev.po +1246 -0
  186. package/apps/web/upstream/src/res/locales/app.el-GR.po +1145 -0
  187. package/apps/web/upstream/src/res/locales/app.en-US.po +1145 -0
  188. package/apps/web/upstream/src/res/locales/app.es-419.po +1145 -0
  189. package/apps/web/upstream/src/res/locales/app.es-AR.po +1145 -0
  190. package/apps/web/upstream/src/res/locales/app.es-EM.po +536 -0
  191. package/apps/web/upstream/src/res/locales/app.es-ES.po +1145 -0
  192. package/apps/web/upstream/src/res/locales/app.es-US.po +1145 -0
  193. package/apps/web/upstream/src/res/locales/app.eu-ES.po +1145 -0
  194. package/apps/web/upstream/src/res/locales/app.fi-FI.po +1145 -0
  195. package/apps/web/upstream/src/res/locales/app.fr-FR.po +1145 -0
  196. package/apps/web/upstream/src/res/locales/app.gl-ES.po +1145 -0
  197. package/apps/web/upstream/src/res/locales/app.he-IL.po +1145 -0
  198. package/apps/web/upstream/src/res/locales/app.hi-IN.po +1145 -0
  199. package/apps/web/upstream/src/res/locales/app.hu-HU.po +1145 -0
  200. package/apps/web/upstream/src/res/locales/app.id-ID.po +1145 -0
  201. package/apps/web/upstream/src/res/locales/app.it-IT.po +1145 -0
  202. package/apps/web/upstream/src/res/locales/app.ja-JP.po +1145 -0
  203. package/apps/web/upstream/src/res/locales/app.ko-KR.po +1145 -0
  204. package/apps/web/upstream/src/res/locales/app.nl-NL.po +1145 -0
  205. package/apps/web/upstream/src/res/locales/app.no-NO.po +1145 -0
  206. package/apps/web/upstream/src/res/locales/app.pl-PL.po +1145 -0
  207. package/apps/web/upstream/src/res/locales/app.pt-BR.po +1145 -0
  208. package/apps/web/upstream/src/res/locales/app.pt-PT.po +1145 -0
  209. package/apps/web/upstream/src/res/locales/app.ro-RO.po +1145 -0
  210. package/apps/web/upstream/src/res/locales/app.ru-RU.po +1145 -0
  211. package/apps/web/upstream/src/res/locales/app.sl-SI.po +1145 -0
  212. package/apps/web/upstream/src/res/locales/app.sq-AL.po +1145 -0
  213. package/apps/web/upstream/src/res/locales/app.sr-SP.po +1145 -0
  214. package/apps/web/upstream/src/res/locales/app.sv-SE.po +1145 -0
  215. package/apps/web/upstream/src/res/locales/app.tr-TR.po +1145 -0
  216. package/apps/web/upstream/src/res/locales/app.uk-UA.po +1145 -0
  217. package/apps/web/upstream/src/res/locales/app.vi-VN.po +1145 -0
  218. package/apps/web/upstream/src/res/locales/app.zh-CN.po +1145 -0
  219. package/apps/web/upstream/src/res/locales/app.zh-TW.po +1145 -0
  220. package/apps/web/upstream/src/res/localesList.json +27 -0
  221. package/apps/web/upstream/src/res/logo.png +0 -0
  222. package/apps/web/upstream/src/thirdparty/about.html +43 -0
  223. package/apps/web/upstream/src/thirdparty/index.js +5 -0
  224. package/apps/web/upstream/src/thirdparty/kiwiirccom.vue +185 -0
  225. package/apps/web/upstream/static/config.json +28 -0
  226. package/apps/web/upstream/static/emoticons/smile.png +0 -0
  227. package/apps/web/upstream/static/favicon.png +0 -0
  228. package/apps/web/upstream/static/highlight.mp3 +0 -0
  229. package/apps/web/upstream/static/highlight.ogg +0 -0
  230. package/apps/web/upstream/static/locales/.gitignore +2 -0
  231. package/apps/web/upstream/static/plugins/customise.html.example +10 -0
  232. package/apps/web/upstream/static/themes/coffee/theme.css +145 -0
  233. package/apps/web/upstream/static/themes/common/base.css +1064 -0
  234. package/apps/web/upstream/static/themes/dark/theme.css +196 -0
  235. package/apps/web/upstream/static/themes/default/theme.css +92 -0
  236. package/apps/web/upstream/static/themes/elite/theme.css +248 -0
  237. package/apps/web/upstream/static/themes/grayfox/theme.css +143 -0
  238. package/apps/web/upstream/static/themes/nightswatch/theme.css +367 -0
  239. package/apps/web/upstream/static/themes/osprey/theme.css +115 -0
  240. package/apps/web/upstream/static/themes/radioactive/theme.css +1211 -0
  241. package/apps/web/upstream/static/themes/sky/theme.css +107 -0
  242. package/apps/web/upstream/tests/unit/BatchAdd.spec.js +174 -0
  243. package/apps/web/upstream/tests/unit/MessageParser.spec.js +125 -0
  244. package/apps/web/upstream/tests/unit/Misc.spec.js +24 -0
  245. package/apps/web/upstream/tests/unit/NetworkState.spec.js +58 -0
  246. package/apps/web/upstream/tests/unit/StartupError.spec.js +20 -0
  247. package/apps/web/upstream/vue.config.js +150 -0
  248. package/apps/web/upstream/yarn.lock +9767 -0
  249. package/apps/web/vitest.config.ts +13 -0
  250. package/biome.json +2 -0
  251. package/docs/ADR-001-pure-reducers-and-effect-system.md +74 -0
  252. package/docs/ADR-002-location-of-authority.md +82 -0
  253. package/docs/ADR-003-durable-object-sharding.md +110 -0
  254. package/docs/ADR-004-dynamodb-schema.md +96 -0
  255. package/docs/ADR-005-wss-only-transport-v1.md +83 -0
  256. package/docs/ADR-006-sasl-mechanism-scope.md +96 -0
  257. package/docs/ADR-007-deterministic-ports.md +82 -0
  258. package/docs/ADR-008-monorepo-tooling.md +60 -0
  259. package/docs/ADR-009-dual-transport-wss-and-irc-tls.md +138 -0
  260. package/docs/ADR-Index.md +15 -0
  261. package/docs/AWS-Adapter-Architecture.md +496 -0
  262. package/docs/AWS-Deployment.md +1275 -0
  263. package/docs/AWS-TCP-Deployment.md +410 -0
  264. package/docs/Cloudflare-Deployment-Guide.md +719 -0
  265. package/docs/Cloudflare-TCP-Deployment.md +510 -0
  266. package/docs/Home.md +16 -0
  267. package/docs/Observability.md +87 -0
  268. package/docs/PlanExtensions.md +812 -0
  269. package/docs/PlanIRCv3Websocket.md +503 -0
  270. package/docs/PlanWebClient.md +451 -0
  271. package/docs/Release-Process.md +443 -0
  272. package/docs/WebClientGuide.md +535 -0
  273. package/package.json +2 -2
  274. package/packages/aws-adapter/package.json +1 -1
  275. package/packages/aws-adapter/src/handlers/default.ts +3 -0
  276. package/packages/aws-adapter/src/handlers/nlb-stream.ts +9 -0
  277. package/packages/aws-adapter/src/serialize.ts +29 -1
  278. package/packages/aws-adapter/tests/account-store-dynamo.test.ts +49 -8
  279. package/packages/aws-adapter/tests/account-store.test.ts +4 -7
  280. package/packages/aws-adapter/tests/aws-harness.ts +5 -2
  281. package/packages/aws-adapter/tests/aws-integration.test.ts +8 -4
  282. package/packages/aws-adapter/tests/aws-runtime.test.ts +79 -0
  283. package/packages/aws-adapter/tests/config-loader.test.ts +11 -2
  284. package/packages/aws-adapter/tests/connect.test.ts +9 -9
  285. package/packages/aws-adapter/tests/disconnect-fanout.test.ts +3 -4
  286. package/packages/aws-adapter/tests/global-setup.ts +55 -30
  287. package/packages/aws-adapter/tests/gone-exception.test.ts +4 -9
  288. package/packages/aws-adapter/tests/handlers.test.ts +90 -4
  289. package/packages/aws-adapter/tests/message-store.test.ts +6 -5
  290. package/packages/aws-adapter/tests/nlb-stream.test.ts +60 -8
  291. package/packages/cf-adapter/package.json +2 -1
  292. package/packages/cf-adapter/src/connection-do.ts +3 -0
  293. package/packages/cf-adapter/src/serialize.ts +25 -4
  294. package/packages/cf-adapter/tests/cf-harness.ts +12 -1
  295. package/packages/cf-adapter/tests/cf-runtime.test.ts +269 -0
  296. package/packages/cf-adapter/tests/channel-do.test.ts +117 -0
  297. package/packages/cf-adapter/tests/config-loader.test.ts +49 -0
  298. package/packages/cf-adapter/tests/connection-do-pure.test.ts +91 -0
  299. package/packages/cf-adapter/tests/d1-account-store.test.ts +48 -0
  300. package/packages/cf-adapter/tests/registry-do.test.ts +104 -0
  301. package/packages/cf-adapter/tests/serialize.test.ts +308 -0
  302. package/packages/cf-adapter/vitest.config.ts +1 -1
  303. package/packages/in-memory-runtime/package.json +1 -1
  304. package/packages/irc-core/package.json +1 -1
  305. package/packages/irc-core/reports/mutation/mutation.html +342 -0
  306. package/packages/irc-core/src/caps/capabilities.ts +37 -3
  307. package/packages/irc-core/src/caps/index.ts +1 -0
  308. package/packages/irc-core/src/caps/sts.ts +84 -0
  309. package/packages/irc-core/src/commands/account-notify.ts +53 -0
  310. package/packages/irc-core/src/commands/away.ts +9 -3
  311. package/packages/irc-core/src/commands/cap.ts +23 -5
  312. package/packages/irc-core/src/commands/chathistory.ts +40 -11
  313. package/packages/irc-core/src/commands/index.ts +34 -0
  314. package/packages/irc-core/src/commands/isupport.ts +53 -0
  315. package/packages/irc-core/src/commands/mode.ts +8 -1
  316. package/packages/irc-core/src/commands/monitor.ts +327 -0
  317. package/packages/irc-core/src/commands/multiline.ts +256 -0
  318. package/packages/irc-core/src/commands/pre-away.ts +112 -0
  319. package/packages/irc-core/src/commands/privmsg.ts +19 -12
  320. package/packages/irc-core/src/commands/read-marker.ts +108 -0
  321. package/packages/irc-core/src/commands/registration.ts +8 -0
  322. package/packages/irc-core/src/commands/sasl.ts +24 -1
  323. package/packages/irc-core/src/commands/tagmsg.ts +71 -1
  324. package/packages/irc-core/src/commands/whois.ts +5 -0
  325. package/packages/irc-core/src/config.ts +65 -10
  326. package/packages/irc-core/src/effects.ts +14 -0
  327. package/packages/irc-core/src/ports.ts +389 -0
  328. package/packages/irc-core/src/protocol/index.ts +14 -0
  329. package/packages/irc-core/src/protocol/labeled-response.ts +133 -0
  330. package/packages/irc-core/src/protocol/numerics.ts +15 -0
  331. package/packages/irc-core/src/protocol/outbound.ts +16 -1
  332. package/packages/irc-core/src/protocol/standard-replies.ts +277 -0
  333. package/packages/irc-core/src/state/connection.ts +32 -1
  334. package/packages/irc-core/src/types.ts +112 -0
  335. package/packages/irc-core/stryker.commands.conf.json +1 -2
  336. package/packages/irc-core/tests/away-store.test.ts +73 -0
  337. package/packages/irc-core/tests/batch.test.ts +15 -0
  338. package/packages/irc-core/tests/caps/capabilities.test.ts +119 -2
  339. package/packages/irc-core/tests/caps/sts.test.ts +123 -0
  340. package/packages/irc-core/tests/commands/account-notify.test.ts +171 -0
  341. package/packages/irc-core/tests/commands/away.test.ts +85 -2
  342. package/packages/irc-core/tests/commands/cap.test.ts +165 -0
  343. package/packages/irc-core/tests/commands/chathistory.test.ts +148 -1
  344. package/packages/irc-core/tests/commands/echo-message.test.ts +9 -3
  345. package/packages/irc-core/tests/commands/isupport.test.ts +80 -0
  346. package/packages/irc-core/tests/commands/mode.test.ts +72 -0
  347. package/packages/irc-core/tests/commands/monitor.test.ts +411 -0
  348. package/packages/irc-core/tests/commands/multiline.test.ts +428 -0
  349. package/packages/irc-core/tests/commands/pre-away.test.ts +241 -0
  350. package/packages/irc-core/tests/commands/privmsg.test.ts +154 -3
  351. package/packages/irc-core/tests/commands/read-marker.test.ts +211 -0
  352. package/packages/irc-core/tests/commands/registration.test.ts +64 -0
  353. package/packages/irc-core/tests/commands/sasl.test.ts +116 -2
  354. package/packages/irc-core/tests/commands/tagmsg.test.ts +357 -0
  355. package/packages/irc-core/tests/commands/whois.test.ts +34 -0
  356. package/packages/irc-core/tests/config.test.ts +103 -13
  357. package/packages/irc-core/tests/labeled-response.test.ts +181 -0
  358. package/packages/irc-core/tests/message-tags.test.ts +114 -0
  359. package/packages/irc-core/tests/monitor-store.test.ts +200 -0
  360. package/packages/irc-core/tests/numerics.test.ts +13 -0
  361. package/packages/irc-core/tests/parser.test.ts +109 -0
  362. package/packages/irc-core/tests/read-marker-store.test.ts +108 -0
  363. package/packages/irc-core/tests/standard-replies.test.ts +412 -0
  364. package/packages/irc-core/tests/types.test.ts +27 -0
  365. package/packages/irc-server/package.json +1 -1
  366. package/packages/irc-server/src/actor.ts +450 -3
  367. package/packages/irc-server/src/dispatch.ts +108 -16
  368. package/packages/irc-server/tests/actor.test.ts +1432 -39
  369. package/packages/irc-server/tests/dispatch.test.ts +263 -2
  370. package/packages/irc-test-support/package.json +1 -1
  371. package/packages/irc-test-support/src/index.ts +6 -0
  372. package/packages/irc-test-support/src/scenarios.ts +24 -2
  373. package/packages/irc-test-support/src/test-config.ts +54 -0
  374. package/packages/irc-test-support/tests/test-config.test.ts +51 -0
  375. package/tools/ci-hardening/package.json +1 -1
  376. package/tools/ci-hardening/tests/ddb-local.test.ts +82 -0
  377. package/tools/load-test/package.json +33 -0
  378. package/tools/load-test/src/client.ts +351 -0
  379. package/tools/load-test/src/config.ts +313 -0
  380. package/tools/load-test/src/harness.ts +116 -0
  381. package/tools/load-test/src/main.ts +120 -0
  382. package/tools/load-test/src/metrics.ts +168 -0
  383. package/tools/load-test/src/report.ts +106 -0
  384. package/tools/load-test/tests/client.test.ts +212 -0
  385. package/tools/load-test/tests/config.test.ts +152 -0
  386. package/tools/load-test/tests/framing.test.ts +37 -0
  387. package/tools/load-test/tests/harness.test.ts +165 -0
  388. package/tools/load-test/tests/metrics.test.ts +174 -0
  389. package/tools/load-test/tests/report.test.ts +161 -0
  390. package/tools/load-test/tests/smoke.test.ts +67 -0
  391. package/tools/load-test/tsconfig.build.json +12 -0
  392. package/tools/load-test/tsconfig.test.json +10 -0
  393. package/tools/load-test/vitest.config.ts +29 -0
  394. package/tools/tcp-ws-forwarder/package.json +1 -1
@@ -0,0 +1,1145 @@
1
+ msgid ""
2
+ msgstr ""
3
+ "MIME-Version: 1.0\n"
4
+ "Content-Type: text/plain; charset=UTF-8\n"
5
+ "Content-Transfer-Encoding: 8bit\n"
6
+ "X-Crowdin-SourceKey: msgstr\n"
7
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
8
+ "X-Crowdin-Project: kiwiirc\n"
9
+ "X-Crowdin-Project-ID: 275818\n"
10
+ "X-Crowdin-Language: sq\n"
11
+ "X-Crowdin-File: /[kiwiirc.kiwiirc] master/src/res/locales/app.dev.po\n"
12
+ "X-Crowdin-File-ID: 21\n"
13
+ "Project-Id-Version: kiwiirc\n"
14
+ "Language-Team: Albanian\n"
15
+ "Language: sq_AL\n"
16
+ "PO-Revision-Date: 2023-06-17 09:31\n"
17
+
18
+ #: Start
19
+ msgid "start_button"
20
+ msgstr "Nisu"
21
+
22
+ #: Welcome to Kiwi IRC!
23
+ msgid "start_greeting"
24
+ msgstr "Mirë se vini te Kiwi IRC!"
25
+
26
+ #: Close
27
+ msgid "close"
28
+ msgstr "Mbylle"
29
+
30
+ #: Connect
31
+ msgid "connect"
32
+ msgstr "Lidhu"
33
+
34
+ #: Connecting...
35
+ msgid "connecting"
36
+ msgstr "Po lidhet…"
37
+
38
+ #: Connected
39
+ msgid "connected"
40
+ msgstr "I lidhur"
41
+
42
+ #: Settings
43
+ msgid "settings"
44
+ msgstr "Rregullime"
45
+
46
+ #: Kiwi Settings
47
+ msgid "kiwi_settings"
48
+ msgstr "Rregullime të Kiwi-t"
49
+
50
+ #: Channels
51
+ msgid "channels"
52
+ msgstr "Kanale"
53
+
54
+ #: Access
55
+ msgid "access"
56
+ msgstr "Hyrje"
57
+
58
+ #: Banned Users
59
+ msgid "banned"
60
+ msgstr "Përdorues të Dëbuar"
61
+
62
+ #: Invited Users
63
+ msgid "invited"
64
+ msgstr "Përdorues të Ftuar"
65
+
66
+ #: Notifications
67
+ msgid "notifications"
68
+ msgstr "Njoftime"
69
+
70
+ #: Username
71
+ msgid "username"
72
+ msgstr "Emër përdoruesi"
73
+
74
+ #: Password
75
+ msgid "password"
76
+ msgstr "Fjalëkalim"
77
+
78
+ #: Server Password
79
+ msgid "server_password"
80
+ msgstr "Fjalëkalim Shërbyesi "
81
+
82
+ #: I have a password
83
+ msgid "password_have"
84
+ msgstr "Kam një fjalëkalim"
85
+
86
+ #: Server
87
+ msgid "server"
88
+ msgstr "Shërbyes"
89
+
90
+ #: Nick
91
+ msgid "nick"
92
+ msgstr "Nofkë"
93
+
94
+ #: Channel
95
+ msgid "channel"
96
+ msgstr "Kanal"
97
+
98
+ #: Messages
99
+ msgid "messages"
100
+ msgstr "Mesazhe"
101
+
102
+ #: Network
103
+ msgid "network"
104
+ msgstr "Rrjet"
105
+
106
+ #: ZNC
107
+ msgid "znc"
108
+ msgstr "ZNC"
109
+
110
+ #: Logging in...
111
+ msgid "logging_in"
112
+ msgstr "Po hyhet…"
113
+
114
+ #: Invalid login
115
+ msgid "invalid_login"
116
+ msgstr "Kredenciale hyrjeje të pavlefshëm"
117
+
118
+ #: Login failed. Please try again or contact support
119
+ msgid "login_failed"
120
+ msgstr "Hyrja dështoi. Ju lutemi, riprovoni, ose lidhuni me asistencën"
121
+
122
+ #: You are now logged in as '{{account}}'
123
+ msgid "logged_in"
124
+ msgstr "Tani keni hyrë si '{{account}}'"
125
+
126
+ #: You have been logged out
127
+ msgid "logged_out"
128
+ msgstr "Keni dalë nga llogaria"
129
+
130
+ #: Search...
131
+ msgid "do_search"
132
+ msgstr "Kërkoni…"
133
+
134
+ #: OK
135
+ msgid "ok"
136
+ msgstr "OK"
137
+
138
+ #: Cancel
139
+ msgid "cancel"
140
+ msgstr "Anuloje"
141
+
142
+ #: Yes
143
+ msgid "yes"
144
+ msgstr "Po"
145
+
146
+ #: No
147
+ msgid "no"
148
+ msgstr "Jo"
149
+
150
+ #: Not found.
151
+ msgid "not_found"
152
+ msgstr "S’u gjet."
153
+
154
+ #: Warning!
155
+ msgid "warning"
156
+ msgstr "Kujdes!"
157
+
158
+ #: This will close all Kiwi IRC conversations. Are you sure you want to close this window?
159
+ msgid "window_unload"
160
+ msgstr "Kjo do të mbyllë krejt bisedat KiwiIRC. Jeni i sigurt se doni të mbyllet kjo dritare?"
161
+
162
+ #: Real name
163
+ msgid "whois_realname"
164
+ msgstr "Emër i njëmendtë"
165
+
166
+ #: Status
167
+ msgid "whois_status"
168
+ msgstr "Gjendje"
169
+
170
+ #: Is available
171
+ msgid "whois_status_available"
172
+ msgstr "Është i lirë"
173
+
174
+ #: Send a message
175
+ msgid "send_a_message"
176
+ msgstr "Dërgoni një mesazh"
177
+
178
+ #: More information
179
+ msgid "more_information"
180
+ msgstr "Më tepër të dhëna"
181
+
182
+ #: Ignore user
183
+ msgid "ignore_user"
184
+ msgstr "Shpërfille përdoruesin"
185
+
186
+ #: Channel
187
+ msgid "connection_channel"
188
+ msgstr "Kanal"
189
+
190
+ #: Away
191
+ msgid "away"
192
+ msgstr "I larguar"
193
+
194
+ #: {{count}} week
195
+ msgid "week"
196
+ msgstr "{{count}} javë"
197
+
198
+ #: {{count}} weeks
199
+ msgid "week_plural"
200
+ msgstr "{{count}} javë"
201
+
202
+ #: {{count}} day
203
+ msgid "day"
204
+ msgstr "{{count}} ditë"
205
+
206
+ #: {{count}} days
207
+ msgid "day_plural"
208
+ msgstr "{{count}} ditë"
209
+
210
+ #: {{count}} hour
211
+ msgid "hour"
212
+ msgstr "{{count}} orë"
213
+
214
+ #: {{count}} hours
215
+ msgid "hour_plural"
216
+ msgstr "{{count}} orë"
217
+
218
+ #: {{count}} minute
219
+ msgid "minute"
220
+ msgstr "{{count}} minutë"
221
+
222
+ #: {{count}} minutes
223
+ msgid "minute_plural"
224
+ msgstr "{{count}} minuta"
225
+
226
+ #: {{count}} second
227
+ msgid "second"
228
+ msgstr "{{count}} sekondë"
229
+
230
+ #: {{count}} seconds
231
+ msgid "second_plural"
232
+ msgstr "{{count}} sekonda"
233
+
234
+ #: General
235
+ msgid "settings_general"
236
+ msgstr "Të përgjithshme"
237
+
238
+ #: Language
239
+ msgid "settings_language"
240
+ msgstr "Gjuhë"
241
+
242
+ #: Theme
243
+ msgid "settings_theme"
244
+ msgstr "Temë"
245
+
246
+ #: Refresh Theme
247
+ msgid "refresh_theme"
248
+ msgstr "Rifresko Temën"
249
+
250
+ #: Theme URL
251
+ msgid "settings_themeurl"
252
+ msgstr "URL Teme"
253
+
254
+ #: Message Layout
255
+ msgid "settings_messagelayout"
256
+ msgstr "Skemë Mesazhesh"
257
+
258
+ #: Use monospace
259
+ msgid "settings_use_monospace"
260
+ msgstr "Përdor shkronja monospace"
261
+
262
+ #: Use Kiwi as my default IRC client
263
+ msgid "settings_default_handler"
264
+ msgstr "Përdore Kiwi-n si klientin tim IRC parazgjedhje"
265
+
266
+ #: Traditional IRC layout
267
+ msgid "settings_layout_compact"
268
+ msgstr "Skemë IRC tradicionale"
269
+
270
+ #: Show autocomplete list
271
+ msgid "settings_show_autocomplete"
272
+ msgstr "Shfaq listë vetëplotësimesh"
273
+
274
+ #: Chat Messages
275
+ msgid "settings_messages_title"
276
+ msgstr "Mesazhe Fjalosjeje"
277
+
278
+ #: Show timestamps
279
+ msgid "settings_timestamps"
280
+ msgstr "Shfaq vula kohore"
281
+
282
+ #: Use 24-hour timestamps
283
+ msgid "settings_24hour_timestamps"
284
+ msgstr "Përdor vula kohore 24-orëshe"
285
+
286
+ #: Show emoticons
287
+ msgid "settings_emoticons"
288
+ msgstr "Shfaq emotikone"
289
+
290
+ #: Block new Private messages
291
+ msgid "settings_block_private"
292
+ msgstr "Blloko mesazhe të rinj privatë"
293
+
294
+ #: Messages in scrollback
295
+ msgid "settings_scrollback"
296
+ msgstr "Mesazhe në rrëshqitje së prapthi"
297
+
298
+ #: Extra formatting
299
+ msgid "settings_formatting"
300
+ msgstr "Formatim ekstra"
301
+
302
+ #: Colour nicknames in messages
303
+ msgid "settings_nick_colouring"
304
+ msgstr "Ngjyrosi nofkat në mesazhe"
305
+
306
+ #: Share when I'm typing a message
307
+ msgid "settings_share_typing"
308
+ msgstr "Ndaje me të tjerë, kur shtyp një mesazh"
309
+
310
+ #: Show inline image previews
311
+ msgid "settings_show_inline_previews"
312
+ msgstr "Shfaq paraparje figurash të brendshme"
313
+
314
+ #: Include join/part messages as activity
315
+ msgid "settings_show_joinpart"
316
+ msgstr "Mesazhet e ardhjes/largimit përfshiji si veprimtari"
317
+
318
+ #: Mute sound notifications
319
+ msgid "settings_mute_sound"
320
+ msgstr "Heshto njoftime zanore"
321
+
322
+ #: Highlight on words (space seperated)
323
+ msgid "settings_highlight"
324
+ msgstr "Fjalë për t’u theksuar (ndarë me hapësirë)"
325
+
326
+ #: Aliases
327
+ msgid "settings_aliases"
328
+ msgstr "Aliase"
329
+
330
+ #: What are Aliases
331
+ msgid "what_are_aliases"
332
+ msgstr "Ç’janë aliaset?"
333
+
334
+ #: Send Message
335
+ msgid "send_message"
336
+ msgstr "Dërgo Mesazh"
337
+
338
+ #: Enter Channel Key
339
+ msgid "bufferkey_input"
340
+ msgstr "Jepni Kyç Kanali:"
341
+
342
+ #: Rejoin {{channel}}
343
+ msgid "bufferkey_rejoin"
344
+ msgstr "Rihyni te {{channel}}"
345
+
346
+ #: Notify me when
347
+ msgid "settings_notify"
348
+ msgstr "Njoftomë kur"
349
+
350
+ #: All messages
351
+ msgid "settings_notify_all"
352
+ msgstr "Krejt mesazhet"
353
+
354
+ #: I am mentioned
355
+ msgid "settings_notify_mentioned"
356
+ msgstr "Përmendem"
357
+
358
+ #: Never
359
+ msgid "settings_notify_never"
360
+ msgstr "Kurrë"
361
+
362
+ #: Mute sounds
363
+ msgid "settings_notify_mute"
364
+ msgstr "Heshtoji tingujt"
365
+
366
+ #: Hide unread message count
367
+ msgid "settings_show_message_counts"
368
+ msgstr "Fshihe numrin e mesazheve të palexuar"
369
+
370
+ #: Operator tools
371
+ msgid "operator_tools"
372
+ msgstr "Mjete operatori"
373
+
374
+ #: Default ban mask
375
+ msgid "settings_default_ban_mask"
376
+ msgstr "Maskë parazgjedhje dëbimesh"
377
+
378
+ #: Default kick reason
379
+ msgid "settings_default_kick_reason"
380
+ msgstr "Arsye parazgjedhje përzëniesh"
381
+
382
+ #: Advanced Settings
383
+ msgid "settings_advanced_title"
384
+ msgstr "Rregullime të Mëtejshme"
385
+
386
+ #: Monsters be here, only click this button if you know what you are doing
387
+ msgid "settings_advanced_warning"
388
+ msgstr "Këtu ka përbindësha, klikoni mbi këtë buton vetëm nëse e dini se ç’po bëni"
389
+
390
+ #: Enable Advanced Settings
391
+ msgid "settings_advanced_button"
392
+ msgstr "Aktivizo Rregullime të Mëtejshme"
393
+
394
+ #: Danger Zone: Changing some of these settings may break things!
395
+ msgid "settings_advanced_header"
396
+ msgstr "Zonë Rreziku: Ndryshimi i disa prej këtyre rregullimeve mund të prishë punë!"
397
+
398
+ #: Reset
399
+ msgid "settings_advanced_reset"
400
+ msgstr "Riktheje te parazgjedhja"
401
+
402
+ #: Filter
403
+ msgid "settings_advanced_filter"
404
+ msgstr "Filtër"
405
+
406
+ #: Refresh banlist
407
+ msgid "bans_refresh"
408
+ msgstr "Rifresko listë dëbimesh"
409
+
410
+ #: Banned user
411
+ msgid "bans_user"
412
+ msgstr "Përdorues i dëbuar"
413
+
414
+ #: Banned by
415
+ msgid "bans_by"
416
+ msgstr "Dëbuar nga"
417
+
418
+ #: Refreshing banlist...
419
+ msgid "bans_refreshing"
420
+ msgstr "Po rifreskohet lista e dëbimeve…"
421
+
422
+ #: Nobody is banned!
423
+ msgid "bans_nobody"
424
+ msgstr "S’ka të dëbuar!"
425
+
426
+ #: Refresh invite list
427
+ msgid "invites_refresh"
428
+ msgstr "Rifresko listë ftimesh"
429
+
430
+ #: Invited user
431
+ msgid "invites_user"
432
+ msgstr "Përdorues i ftuar"
433
+
434
+ #: Invited by
435
+ msgid "invites_by"
436
+ msgstr "Ftuar nga"
437
+
438
+ #: Refreshing invite list...
439
+ msgid "invites_refreshing"
440
+ msgstr "Po rifreskohet listë ftimesh…"
441
+
442
+ #: Nobody is invited!
443
+ msgid "invites_nobody"
444
+ msgstr "S’është ftuar ndonjë!"
445
+
446
+ #: This is a public channel.
447
+ msgid "invite_public_channel"
448
+ msgstr "Ky është një kanal publik."
449
+
450
+ #: Only invited users can join.
451
+ msgid "invite_private_channel"
452
+ msgstr "Mund të marrin pjesë vetëm përdorues të ftuar."
453
+
454
+ #: Only allow invited users
455
+ msgid "invite_set_private"
456
+ msgstr "Lejo vetëm përdorues të ftuar"
457
+
458
+ #: Allow anybody to join
459
+ msgid "invite_set_public"
460
+ msgstr "Lejo këdo të marrë pjesë"
461
+
462
+ #: Only registered users can join
463
+ msgid "invite_registered_only"
464
+ msgstr "Mund të marrin pjesë vetëm përdorues të regjistruar"
465
+
466
+ #: Add invite
467
+ msgid "invite_add_invite"
468
+ msgstr "Shtoni ftesë"
469
+
470
+ #: (Any registered user)
471
+ msgid "invite_any_registered"
472
+ msgstr "(Cilido përdorues i regjistruar)"
473
+
474
+ #: Topic
475
+ msgid "channel_topic"
476
+ msgstr "Temë"
477
+
478
+ #: Moderated chat
479
+ msgid "channel_moderated"
480
+ msgstr "Fjalosje e moderuar"
481
+
482
+ #: Invite only
483
+ msgid "channel_invite"
484
+ msgstr "Vetëm me ftesa"
485
+
486
+ #: Hide this channel from lists
487
+ msgid "channel_secret"
488
+ msgstr "Fshihe këtë kanal nga lista"
489
+
490
+ #: Only moderators can change the topic
491
+ msgid "channel_moderated_topic"
492
+ msgstr "Temën mund ta ndryshojnë vetëm moderatorët"
493
+
494
+ #: Block messages from outside this channel
495
+ msgid "channel_external"
496
+ msgstr "Blloko mesazhe prej nga jashtë këtij kanali"
497
+
498
+ #: Click the refresh button to update the channel list
499
+ msgid "channel_list_fetch"
500
+ msgstr "Që të përditësohet lista e kanaleve, klikoni mbi butonin e rifreskimit"
501
+
502
+ #: No channels found, try again later
503
+ msgid "channel_list_nonefound"
504
+ msgstr "S’u gjetën kanale, riprovoni më vonë"
505
+
506
+ #: Welcome to Kiwi IRC! Select a channel on the left.
507
+ msgid "container_welcome"
508
+ msgstr "Mirë se vini te Kiwi IRC!"
509
+
510
+ #: Show statebrowser
511
+ msgid "container_statebrowser"
512
+ msgstr "Shihni gjendjen e shfletuesit"
513
+
514
+ #: Hide Topic
515
+ msgid "hide_topic"
516
+ msgstr "Fshihe Temën"
517
+
518
+ #: Display Topic
519
+ msgid "display_topic"
520
+ msgstr "Shfaqe Temën"
521
+
522
+ #: Channel Settings
523
+ msgid "channel_settings"
524
+ msgstr "Rregullime Kanali"
525
+
526
+ #: Join Channel
527
+ msgid "container_join"
528
+ msgstr "Hyni në Kanal"
529
+
530
+ #: Not Connected
531
+ msgid "container_notconnected"
532
+ msgstr "I palidhur"
533
+
534
+ #: Private conversation with {{user}}
535
+ msgid "container_privmsg"
536
+ msgstr "Bisedë private me {{user}}"
537
+
538
+ #: Send a message...
539
+ msgid "input_placeholder"
540
+ msgstr "Dërgoni një mesazh…"
541
+
542
+ #: Loading {{url}}...
543
+ msgid "media_loading"
544
+ msgstr "Po ngarkohet {{url}}…"
545
+
546
+ #: Load previous messages
547
+ msgid "messages_load"
548
+ msgstr "Ngarko mesazhe të mëparshëm"
549
+
550
+ #: Loading previous messages...
551
+ msgid "messages_loading"
552
+ msgstr "Po ngarkohen mesazhe të mëparshëm…"
553
+
554
+ #: Unread Messages
555
+ msgid "unread_messages"
556
+ msgstr "Mesazhe të Palexuar"
557
+
558
+ #: Reply in private
559
+ msgid "reply_in_private"
560
+ msgstr "Përgjigjiuni privatisht"
561
+
562
+ #: Server details
563
+ msgid "settings_server_details"
564
+ msgstr "Hollësi shërbyesi"
565
+
566
+ #: Port
567
+ msgid "settings_port"
568
+ msgstr "Portë"
569
+
570
+ #: Other networks on this ZNC account will be listed in the network list
571
+ msgid "settings_znc_other"
572
+ msgstr "Rrjete të tjerë në këtë llogari ZNC do të shfaqen te lista e rrjeteve"
573
+
574
+ #: Your details
575
+ msgid "settings_your_details"
576
+ msgstr "Hollësitë tuaja"
577
+
578
+ #: Nickname
579
+ msgid "settings_nickname"
580
+ msgstr "Nofkë"
581
+
582
+ #: Advanced
583
+ msgid "settings_advanced"
584
+ msgstr "Të mëtejshme"
585
+
586
+ #: Encoding
587
+ msgid "settings_encoding"
588
+ msgstr "Kodim"
589
+
590
+ #: Show Raw
591
+ msgid "settings_show_raw"
592
+ msgstr "Shfaqe të Papërpunuar"
593
+
594
+ #: Direct websocket
595
+ msgid "settings_use_websocket"
596
+ msgstr "Websocket i drejtpërdrejtë"
597
+
598
+ #: Run commands when connected
599
+ msgid "settings_autorun"
600
+ msgstr "Xhiro urdhra, kur të jetë lidhur"
601
+
602
+ #: Danger Zone
603
+ msgid "settings_danger"
604
+ msgstr "Zonë Rreziku"
605
+
606
+ #: Remove network
607
+ msgid "settings_remove"
608
+ msgstr "Hiqe rrjetin"
609
+
610
+ #: {{count}} person here
611
+ msgid "person"
612
+ msgstr "{{count}} person këtu"
613
+
614
+ #: {{count}} people here
615
+ msgid "person_plural"
616
+ msgstr "{{count}} vetë këtu"
617
+
618
+ #: Filter users in channel
619
+ msgid "filter_users"
620
+ msgstr "Filtro përdorues në kanal"
621
+
622
+ #: Reconnect to join {{channel}}
623
+ msgid "reconnect_channel"
624
+ msgstr "Rilidhuni, që të hyni te {{channel}}"
625
+
626
+ #: Reconnect to {{network}} to start talking
627
+ msgid "reconnect_network"
628
+ msgstr "Që të filloni të bisedoni, rilidhuni te {{network}} "
629
+
630
+ #: Reconnect to continue talking with {{user}}
631
+ msgid "reconnect_query"
632
+ msgstr "Që të vazhdoni të bisedoni me {{user}}, rilidhuni"
633
+
634
+ #: You are not currently connected!
635
+ msgid "not_connected"
636
+ msgstr "S’jeni i lidhur!"
637
+
638
+ #: Connection settings
639
+ msgid "reconnect_settings"
640
+ msgstr "Rregullime lidhjeje"
641
+
642
+ #: We couldn't connect to that server :(
643
+ msgid "network_noconnect"
644
+ msgstr "S’u lidhëm dot me atë shërbyes :("
645
+
646
+ #: Connect To Network
647
+ msgid "network_connect"
648
+ msgstr "Lidhu Te Rrjeti"
649
+
650
+ #: Network Name
651
+ msgid "network_name"
652
+ msgstr "Emër Rrjeti"
653
+
654
+ #: Close options
655
+ msgid "side_close"
656
+ msgstr "Mbylli mundësitë"
657
+
658
+ #: Channel options
659
+ msgid "side_options"
660
+ msgstr "Mundësi kanali"
661
+
662
+ #: Your settings
663
+ msgid "side_settings"
664
+ msgstr "Rregullimet tuaja"
665
+
666
+ #: Show when people join
667
+ msgid "side_joins"
668
+ msgstr "Shfaqe, kur vijnë persona"
669
+
670
+ #: Show when channel topic changes
671
+ msgid "side_topics"
672
+ msgstr "Shfaqe, kur ndryshon tema e kanalit"
673
+
674
+ #: Show when users change their nicks
675
+ msgid "side_nick_changes"
676
+ msgstr "Shfaqe, kur përdoruesit ndryshojnë nofkat e tyre"
677
+
678
+ #: Show when users change channel modes
679
+ msgid "side_mode_changes"
680
+ msgstr "Shfaqe, kur përdoruesit ndryshojnë mënyrë kanali"
681
+
682
+ #: Extra message formatting
683
+ msgid "side_formatting"
684
+ msgstr "Formatim ekstra mesazhi"
685
+
686
+ #: Nick colours in the list"
687
+ msgid "side_colours"
688
+ msgstr "Ngjyra nofkash në listë"
689
+
690
+ #: No buffer set
691
+ msgid "side_buffer"
692
+ msgstr "S’është ujdisur shtytëz"
693
+
694
+ #: There is no topic for this channel
695
+ msgid "no_topic_set"
696
+ msgstr "S’ka temë për këtë kanal"
697
+
698
+ #: About
699
+ msgid "about"
700
+ msgstr "Mbi"
701
+
702
+ #: Created at {{when}}
703
+ msgid "created_at"
704
+ msgstr "Krijuar më {{when}}"
705
+
706
+ #: Highlights
707
+ msgid "highlights"
708
+ msgstr "Në pah"
709
+
710
+ #: Nobody has mentioned you yet...
711
+ msgid "nobody_mentioned_you"
712
+ msgstr "S’ju ka përmendur kush ende…"
713
+
714
+ #: There was an error starting Kiwi IRC :(
715
+ msgid "error_starting"
716
+ msgstr "Pati një gabim në nisjen e Kiwi IRC-së :("
717
+
718
+ #: Make sure you have installed Kiwi IRC correctly and the configurartion can be loaded
719
+ msgid "error_installed"
720
+ msgstr "Sigurohuni se e keni instaluar si duhet Kiwi IRC-në dhe se formësimi juaj mund të ngarkohet"
721
+
722
+ #: Leave {{name}}
723
+ msgid "state_leave"
724
+ msgstr "Dilni nga {{name}}"
725
+
726
+ #: Your account
727
+ msgid "state_account"
728
+ msgstr "Llogaria juaj"
729
+
730
+ #: Your settings and networks will be remembered on this computer.
731
+ msgid "state_remembered"
732
+ msgstr "Rregullimet dhe rrjetet tuaja do të mbahen mend në këtë kompjuter."
733
+
734
+ #: Forget me
735
+ msgid "state_forget"
736
+ msgstr "Harromë"
737
+
738
+ #: No networks here yet.
739
+ msgid "state_network"
740
+ msgstr "Ende pa rrjete këtu."
741
+
742
+ #: Add one?
743
+ msgid "state_add"
744
+ msgstr "Të shtohet një?"
745
+
746
+ #: Available networks
747
+ msgid "state_available"
748
+ msgstr "Rrjete të gatshëm"
749
+
750
+ #: Add Network
751
+ msgid "add_network"
752
+ msgstr "Shtoni Rrjet"
753
+
754
+ #: New Network
755
+ msgid "new_network"
756
+ msgstr "Rrjet i Ri"
757
+
758
+ #: No Network
759
+ msgid "no_network"
760
+ msgstr "S’ka Rrjet"
761
+
762
+ #: Configure network
763
+ msgid "state_configure"
764
+ msgstr "Formësoni rrjet"
765
+
766
+ #: Not connected.
767
+ msgid "state_disconnected"
768
+ msgstr "Jo i lidhur."
769
+
770
+ #: Join new #channel
771
+ msgid "state_join"
772
+ msgstr "Hyni në #kanal të ri"
773
+
774
+ #: Filter Channels
775
+ msgid "filter_channels"
776
+ msgstr "Filtroni kanale"
777
+
778
+ #: Find More Channels
779
+ msgid "find_more_channels"
780
+ msgstr "Gjeni Më Tepër Kanale"
781
+
782
+ #: Really leave the channel?
783
+ msgid "prompt_leave_channel"
784
+ msgstr "Të dilet vërtet nga kanali?"
785
+
786
+ #: Really close all messages?
787
+ msgid "prompt_close_queries"
788
+ msgstr "Të mbyllen vërtet krejt mesazhet?"
789
+
790
+ #: Really close this chat?
791
+ msgid "prompt_close_query"
792
+ msgstr "Të mbyllet vërtet kjo fjalosje?"
793
+
794
+ #: Change nick
795
+ msgid "change_nick"
796
+ msgstr "Ndryshoni nofkën"
797
+
798
+ #: Enter new nickname...
799
+ msgid "enter_new_nick"
800
+ msgstr "Jepni nofkë të re…"
801
+
802
+ #: This is you!
803
+ msgid "user_you"
804
+ msgstr "Ky jeni ju"
805
+
806
+ #: Account name: {{user}}
807
+ msgid "user_account"
808
+ msgstr "Emër llogarie: {{user}}"
809
+
810
+ #: Real name: {{realname}}
811
+ msgid "user_realname"
812
+ msgstr "Emër i njëmendtë: {{realname}}"
813
+
814
+ #: Is a bot
815
+ msgid "user_bot"
816
+ msgstr "Është robot"
817
+
818
+ #: Is available for help
819
+ msgid "user_help"
820
+ msgstr "Është i gatshëm për ndihmë"
821
+
822
+ #: Is an operator
823
+ msgid "user_op"
824
+ msgstr "Është një operator"
825
+
826
+ #: Connected to {{server}} {{info}}
827
+ msgid "user_server"
828
+ msgstr "I lidhur te {{server}} {{info}}"
829
+
830
+ #: Securely connected via SSL/TLS
831
+ msgid "user_secure"
832
+ msgstr "I lidhur në mënyrë të sigurt përmes SSL/TLS"
833
+
834
+ #: In channels {{channels}}
835
+ msgid "user_channels"
836
+ msgstr "Në kanalet {{channels}}"
837
+
838
+ #: Access level
839
+ msgid "user_access"
840
+ msgstr "Shkallë hyrjeje"
841
+
842
+ #: Normal
843
+ msgid "user_normal"
844
+ msgstr "Normale"
845
+
846
+ #: Kick from the channel
847
+ msgid "user_kick"
848
+ msgstr "Të përzë nga kanali"
849
+
850
+ #: Ban from the channel
851
+ msgid "user_ban"
852
+ msgstr "Të dëbon nga kanali"
853
+
854
+ #: Ban and kick from the channel
855
+ msgid "user_kickban"
856
+ msgstr "Të dëbon dhe përzë nga kanali"
857
+
858
+ #: Select a Channel
859
+ msgid "select_channel"
860
+ msgstr "Përzgjidhni një Kanal"
861
+
862
+ #: Invite User
863
+ msgid "invite_user"
864
+ msgstr "Ftoni Përdoruesi"
865
+
866
+ #: Please specify a channel to join. eg /join #example
867
+ msgid "error_no_channel_join"
868
+ msgstr "Ju lutemi, specifikoni një kanal ku të hyhet. p.sh., /join #shembull"
869
+
870
+ #: The nickname '{{nick}}' is already in use!
871
+ msgid "error_nick_in_use"
872
+ msgstr "Nofka '{{nick}}' është tashmë në përdorim!"
873
+
874
+ #: The nickname '{{nick}}' is invalid!
875
+ msgid "error_nick_invalid"
876
+ msgstr "Nofka '{{nick}}' është e pavlefshme!"
877
+
878
+ #: You must enter a new nickname
879
+ msgid "error_empty_nick"
880
+ msgstr "Duhet të jepni një nofkë të re"
881
+
882
+ #: Nickname must not start with a number
883
+ msgid "error_no_number"
884
+ msgstr "Nofka s’duhet të fillojë me një emër"
885
+
886
+ #: Unexpected error occurred
887
+ msgid "error_unexpected"
888
+ msgstr "Ndodhi një gabim i papritur"
889
+
890
+ #: {{nick}} gives ops to {{target}}
891
+ msgid "modes_give_ops"
892
+ msgstr "{{nick}} bën {{target}} operator"
893
+
894
+ #: {{nick}} takes ops from {{target}}
895
+ msgid "modes_take_ops"
896
+ msgstr "{{nick}} heq {{target}} nga operator"
897
+
898
+ #: {{nick}} gives half-ops to {{target}}
899
+ msgid "modes_give_halfops"
900
+ msgstr "{{nick}} bën {{target}} gjysmë-operator"
901
+
902
+ #: {{nick}} takes half-ops from {{target}}
903
+ msgid "modes_take_halfops"
904
+ msgstr "{{nick}} e heq {{target}} nga gjysmë-operator"
905
+
906
+ #: {{nick}} gives voice to {{target}}
907
+ msgid "modes_give_voice"
908
+ msgstr "{{nick}} i jep zë {{target}}"
909
+
910
+ #: {{nick}} takes voice from {{target}}
911
+ msgid "modes_take_voice"
912
+ msgstr "{{nick}} i heq zërin {{target}}"
913
+
914
+ #: {{nick}} gives admin to {{target}}
915
+ msgid "modes_give_admin"
916
+ msgstr "{{nick}} e bën {{target}} përgjegjës"
917
+
918
+ #: {{nick}} takes admin from {{target}}
919
+ msgid "modes_take_admin"
920
+ msgstr "{{nick}} e heq {{target}} nga përgjegjës"
921
+
922
+ #: {{nick}} gives owner to {{target}}
923
+ msgid "modes_give_owner"
924
+ msgstr "{{nick}} e bën {{target}} pronar"
925
+
926
+ #: {{nick}} takes owner from {{target}}
927
+ msgid "modes_take_owner"
928
+ msgstr "{{nick}} e heq {{target}} nga pronar"
929
+
930
+ #: {{nick}} has banned {{target}}
931
+ msgid "modes_gives_ban"
932
+ msgstr "{{nick}} ka dëbuar {{target}}"
933
+
934
+ #: {{nick}} has unbanned {{target}}
935
+ msgid "modes_takes_ban"
936
+ msgstr "{{nick}} ka hequr dëbimin për {{target}}"
937
+
938
+ #: {{nick}} sets {{mode}} on {{target}}
939
+ msgid "modes_other"
940
+ msgstr "{{nick}} cakton {{mode}} për {{target}}"
941
+
942
+ #: Send a message
943
+ msgid "command_msg"
944
+ msgstr "Dërgoni një mesazh"
945
+
946
+ #: Do something physical
947
+ msgid "command_action"
948
+ msgstr "Bëni diçka fizike"
949
+
950
+ #: Join a channel
951
+ msgid "command_join"
952
+ msgstr "Hyni në një kanal"
953
+
954
+ #: Leave a channel
955
+ msgid "command_part"
956
+ msgstr "Dilni nga një kanal"
957
+
958
+ #: Leave, then re-join a channel
959
+ msgid "command_cycle"
960
+ msgstr "Dilni, mandej rihyni në kanal"
961
+
962
+ #: Change your nickname
963
+ msgid "command_nick"
964
+ msgstr "Ndryshoni nofkën tuaj"
965
+
966
+ #: Start a private conversation with someone
967
+ msgid "command_query"
968
+ msgstr "Filloni një bisedë private me dikë"
969
+
970
+ #: Invite somebody into the channel
971
+ msgid "command_invite"
972
+ msgstr "Ftoni dikë te kanali"
973
+
974
+ #: Set the topic for this channel
975
+ msgid "command_topic"
976
+ msgstr "Caktoni temën për këtë kanal"
977
+
978
+ #: Send a notice
979
+ msgid "command_notice"
980
+ msgstr "Dërgoni një njoftim"
981
+
982
+ #: Send a raw command to the IRC server
983
+ msgid "command_quote"
984
+ msgstr "Dërgoni te shërbyesi IRC një urdhër të papërpunuar"
985
+
986
+ #: Kick somebody from the channel
987
+ msgid "command_kick"
988
+ msgstr "Përzini dikë nga kanali"
989
+
990
+ #: Clear all messages from this window
991
+ msgid "command_clear"
992
+ msgstr "Spastro krejt mesazhet nga kjo dritare"
993
+
994
+ #: Send a CTCP command to somebody
995
+ msgid "command_ctcp"
996
+ msgstr "Dërgoni për dikë një urdhër CTCP"
997
+
998
+ #: Disconnect from the IRC server
999
+ msgid "command_quit"
1000
+ msgstr "Shkëputuni prej shërbyesit IRC"
1001
+
1002
+ #: Connect to a new IRC network
1003
+ msgid "command_server"
1004
+ msgstr "Lidhuni me një rrjet IRC të ri"
1005
+
1006
+ #: Request information on somebody
1007
+ msgid "command_whois"
1008
+ msgstr "Kërkoni të dhëna rreth dikujt"
1009
+
1010
+ #: Request information on somebody that disconnected recently
1011
+ msgid "command_whowas"
1012
+ msgstr "Kërkoni të dhëna rreth dikujt që u shkëput tani afër"
1013
+
1014
+ #: Set yourself as away
1015
+ msgid "command_away"
1016
+ msgstr "I vini shenjë vetes si i larguar"
1017
+
1018
+ #: Set yourself as active
1019
+ msgid "command_back"
1020
+ msgstr "Vëreni veten si aktiv"
1021
+
1022
+ #: Change your connection encoding
1023
+ msgid "command_encoding"
1024
+ msgstr "Ndryshoni kodimin e lidhjes tuaj"
1025
+
1026
+ #: Ignore messages from somebody
1027
+ msgid "command_ignore"
1028
+ msgstr "Shpërfillni mesazhe nga dikush"
1029
+
1030
+ #: Stop ignoring somebody
1031
+ msgid "command_unignore"
1032
+ msgstr "Reshtni së shpërfilluri dikë"
1033
+
1034
+ #: Roll a Dice
1035
+ msgid "command_dice"
1036
+ msgstr "Hidhni Zarin"
1037
+
1038
+ #: Rolls a {{sides}} sided dice and gets {{number}}
1039
+ msgid "dice_roll"
1040
+ msgstr "Hedh një zar me {{sides}} faqe dhe merr {{number}}"
1041
+
1042
+ #: You were mentioned in {{channel}}
1043
+ msgid "notification_mentioned"
1044
+ msgstr "Jeni përmendur në {{channel}}"
1045
+
1046
+ #: Your IRC client
1047
+ msgid "personal_client"
1048
+ msgstr "Klienti Juaj IRC."
1049
+
1050
+ #: Add your networks. Join your channels.
1051
+ msgid "personal_addjoin"
1052
+ msgstr "Shtoni rrjetet tuaj. Hyni në kanalet tuaj."
1053
+
1054
+ #: They will be here when you come back.
1055
+ msgid "personal_return"
1056
+ msgstr "Do të jenë këtu, kur të riktheheni. "
1057
+
1058
+ #: Add a Network
1059
+ msgid "personal_add"
1060
+ msgstr "Shtoni një Rrjet"
1061
+
1062
+ #: You are trying to connect to {{network}}
1063
+ msgid "personal_connect_to"
1064
+ msgstr "Po përpiqeni të lidheni me {{network}}"
1065
+
1066
+ #: Network has been added to your existing Kiwi window.
1067
+ msgid "personal_added_to_existing"
1068
+ msgstr "Rrjeti u shtua te dritarja juaj ekzistuese Kiwi."
1069
+
1070
+ #: Add network to existing Kiwi window
1071
+ msgid "personal_add_existing_tab"
1072
+ msgstr "Shtoni rrjet te dritarja juaj ekzistuese Kiwi"
1073
+
1074
+ #: Temporarily connect to this network
1075
+ msgid "personal_connect_temporary"
1076
+ msgstr "Lidhu përkohësisht te ky rrjet"
1077
+
1078
+ #: Saved networks
1079
+ msgid "personal_saved"
1080
+ msgstr "Rrjete të ruajtur"
1081
+
1082
+ #: Kiwi IRC (next gen) - Rizon preview
1083
+ msgid "rizon_title"
1084
+ msgstr "Kiwi IRC (brezi pasues) - Version paraprak Rizon"
1085
+
1086
+ #: Direct websockets. No Kiwi server or webirc involved.
1087
+ msgid "rizon_websockets"
1088
+ msgstr "Websocket-e të drejtpërdrejtë. Pa përfshirje shërbyesi Kiwi apo webirc."
1089
+
1090
+ #: (Thanks to Adam @Rizon for the development websocket server support!)
1091
+ msgid "rizon_thanks"
1092
+ msgstr "(Falënderime për Adam @Rizon, për përkrahjen në zhvillimin shërbyesit websocket!)"
1093
+
1094
+ #: Give the developer version of Kiwi IRC a try!
1095
+ msgid "rizon_dev"
1096
+ msgstr "Provoni një herë versionin Kiwi IRC të zhvilluesve!"
1097
+
1098
+ #: Disconnected
1099
+ msgid "disconnected"
1100
+ msgstr "I shkëputur"
1101
+
1102
+ #: Connected to {{network}}!
1103
+ msgid "connected_to"
1104
+ msgstr "I lidhur te {{network}}!"
1105
+
1106
+ #: {{nick}} has joined
1107
+ msgid "has_joined"
1108
+ msgstr "{{nick}} erdhi"
1109
+
1110
+ #: {{nick}} kicked you from {{channel}}
1111
+ msgid "kicked_you_from"
1112
+ msgstr "{{nick}} ju përzuri prej {{channel}}"
1113
+
1114
+ #: {{nick}} was kicked from {{channel}} by {{chanop}}
1115
+ msgid "was_kicked_from"
1116
+ msgstr "{{nick}} u përzu prej {{channel}} nga {{chanop}}"
1117
+
1118
+ #: {{nick}} has left
1119
+ msgid "has_left"
1120
+ msgstr "{{nick}} iku"
1121
+
1122
+ #: {{nick}} invited you to join {{channel}}
1123
+ msgid "invited_you"
1124
+ msgstr "{{nick}} ju ftoi të vini te {{channel}}"
1125
+
1126
+ #: {{nick}} invited {{invited}} to join {{channel}}
1127
+ msgid "invited_other"
1128
+ msgstr "{{nick}} ftoi {{invited}} të vijë te {{channel}}"
1129
+
1130
+ #: You invited {{invited}} to join {{channel}}
1131
+ msgid "invited_inviter"
1132
+ msgstr "Ftuat {{invited}} të marrë pjesë në {{channel}}"
1133
+
1134
+ #: Nickname {{nick}} is already in use. Trying {{newnick}}...
1135
+ msgid "nick_in_use_retrying"
1136
+ msgstr "Nofka {{nick}} është tashmë në përdorim. Po provohet {{newnick}}…"
1137
+
1138
+ #: {{nick}} is now known as {{newnick}}
1139
+ msgid "now_known_as"
1140
+ msgstr "{{nick}} tani njihet si {{newnick}}"
1141
+
1142
+ #: {{nick}} changed the topic to: {{topic}}
1143
+ msgid "changed_topic_to"
1144
+ msgstr "{{nick}} ndryshoi temën në: {{topic}}"
1145
+