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,1246 @@
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
+
8
+
9
+ #: Common Strings
10
+
11
+ #: Start
12
+ msgid "start_button"
13
+ msgstr "Start"
14
+
15
+ #: Welcome to Kiwi IRC!
16
+ msgid "start_greeting"
17
+ msgstr "Welcome to Kiwi IRC!"
18
+
19
+ #: Close
20
+ msgid "close"
21
+ msgstr "Close"
22
+
23
+ #: Connect
24
+ msgid "connect"
25
+ msgstr "Connect"
26
+
27
+ #: Connecting...
28
+ msgid "connecting"
29
+ msgstr "Connecting..."
30
+
31
+ #: Connected
32
+ msgid "connected"
33
+ msgstr "Connected"
34
+
35
+ #: Settings
36
+ msgid "settings"
37
+ msgstr "Settings"
38
+
39
+ #: Kiwi Settings
40
+ msgid "kiwi_settings"
41
+ msgstr "Kiwi Settings"
42
+
43
+ #: Channels
44
+ msgid "channels"
45
+ msgstr "Channels"
46
+
47
+ #: Access
48
+ msgid "access"
49
+ msgstr "Access"
50
+
51
+ #: Banned Users
52
+ msgid "banned"
53
+ msgstr "Banned Users"
54
+
55
+ #: Invited Users
56
+ msgid "invited"
57
+ msgstr "Invited Users"
58
+
59
+ #: Notifications
60
+ msgid "notifications"
61
+ msgstr "Notifications"
62
+
63
+ #: Username
64
+ msgid "username"
65
+ msgstr "Username"
66
+
67
+ #: Password
68
+ msgid "password"
69
+ msgstr "Password"
70
+
71
+ #: Server Password
72
+ msgid "server_password"
73
+ msgstr "Server Password"
74
+
75
+ #: I have a password
76
+ msgid "password_have"
77
+ msgstr "I have a password"
78
+
79
+ #: Server
80
+ msgid "server"
81
+ msgstr "Server"
82
+
83
+ #: Nick
84
+ msgid "nick"
85
+ msgstr "Nick"
86
+
87
+ #: Channel
88
+ msgid "channel"
89
+ msgstr "Channel"
90
+
91
+ #: Messages
92
+ msgid "messages"
93
+ msgstr "Messages"
94
+
95
+ #: Network
96
+ msgid "network"
97
+ msgstr "Network"
98
+
99
+ #: ZNC
100
+ msgid "znc"
101
+ msgstr "ZNC"
102
+
103
+ #: Logging in...
104
+ msgid "logging_in"
105
+ msgstr "Logging in..."
106
+
107
+ #: Invalid login
108
+ msgid "invalid_login"
109
+ msgstr "Invalid login"
110
+
111
+ #: Login failed. Please try again or contact support
112
+ msgid "login_failed"
113
+ msgstr "Login failed. Please try again or contact support"
114
+
115
+ #: You are now logged in as '{{account}}'
116
+ msgid "logged_in"
117
+ msgstr "You are now logged in as '{{account}}'"
118
+
119
+ #: You have been logged out
120
+ msgid "logged_out"
121
+ msgstr "You have been logged out"
122
+
123
+ #: Search...
124
+ msgid "do_search"
125
+ msgstr "Search..."
126
+
127
+ #: OK
128
+ msgid "ok"
129
+ msgstr "OK"
130
+
131
+ #: Cancel
132
+ msgid "cancel"
133
+ msgstr "Cancel"
134
+
135
+ #: Yes
136
+ msgid "yes"
137
+ msgstr "Yes"
138
+
139
+ #: No
140
+ msgid "no"
141
+ msgstr "No"
142
+
143
+ #: Not found.
144
+ msgid "not_found"
145
+ msgstr "Not found."
146
+
147
+ #: Warning!
148
+ msgid "warning"
149
+ msgstr "Warning!"
150
+
151
+ #: This will close all Kiwi IRC conversations. Are you sure you want to close this window?
152
+ msgid "window_unload"
153
+ msgstr "This will close all Kiwi IRC conversations. Are you sure you want to close this window?"
154
+
155
+ #: Real name
156
+ msgid "whois_realname"
157
+ msgstr "Real name"
158
+
159
+ #: Status
160
+ msgid "whois_status"
161
+ msgstr "Status"
162
+
163
+ #: Is available
164
+ msgid "whois_status_available"
165
+ msgstr "Is available"
166
+
167
+ #: Send a message
168
+ msgid "send_a_message"
169
+ msgstr "Send a message"
170
+
171
+ #: More information
172
+ msgid "more_information"
173
+ msgstr "More information"
174
+
175
+ #: Ignore user
176
+ msgid "ignore_user"
177
+ msgstr "Ignore user"
178
+
179
+ #: Channel
180
+ msgid "connection_channel"
181
+ msgstr "Channel"
182
+
183
+ #: Away
184
+ msgid "away"
185
+ msgstr "Away"
186
+
187
+
188
+ #: Durations
189
+
190
+ #: {{count}} week
191
+ msgid "week"
192
+ msgstr "{{count}} week"
193
+
194
+ #: {{count}} weeks
195
+ msgid "week_plural"
196
+ msgstr "{{count}} weeks"
197
+
198
+ #: {{count}} day
199
+ msgid "day"
200
+ msgstr "{{count}} day"
201
+
202
+ #: {{count}} days
203
+ msgid "day_plural"
204
+ msgstr "{{count}} days"
205
+
206
+ #: {{count}} hour
207
+ msgid "hour"
208
+ msgstr "{{count}} hour"
209
+
210
+ #: {{count}} hours
211
+ msgid "hour_plural"
212
+ msgstr "{{count}} hours"
213
+
214
+ #: {{count}} minute
215
+ msgid "minute"
216
+ msgstr "{{count}} minute"
217
+
218
+ #: {{count}} minutes
219
+ msgid "minute_plural"
220
+ msgstr "{{count}} minutes"
221
+
222
+ #: {{count}} second
223
+ msgid "second"
224
+ msgstr "{{count}} second"
225
+
226
+ #: {{count}} seconds
227
+ msgid "second_plural"
228
+ msgstr "{{count}} seconds"
229
+
230
+
231
+
232
+ #: AppSettings $t('settings_')
233
+
234
+ #: General
235
+ msgid "settings_general"
236
+ msgstr "General"
237
+
238
+ #: Language
239
+ msgid "settings_language"
240
+ msgstr "Language"
241
+
242
+ #: Theme
243
+ msgid "settings_theme"
244
+ msgstr "Theme"
245
+
246
+ #: Refresh Theme
247
+ msgid "refresh_theme"
248
+ msgstr "Refresh Theme"
249
+
250
+ #: Theme URL
251
+ msgid "settings_themeurl"
252
+ msgstr "Theme URL"
253
+
254
+ #: Message Layout
255
+ msgid "settings_messagelayout"
256
+ msgstr "Message Layout"
257
+
258
+ #: Use monospace
259
+ msgid "settings_use_monospace"
260
+ msgstr "Use monospace"
261
+
262
+ #: Use Kiwi as my default IRC client
263
+ msgid "settings_default_handler"
264
+ msgstr "Use Kiwi as my default IRC client"
265
+
266
+ #: Traditional IRC layout
267
+ msgid "settings_layout_compact"
268
+ msgstr "Traditional IRC layout"
269
+
270
+ #: Show autocomplete list
271
+ msgid "settings_show_autocomplete"
272
+ msgstr "Show autocomplete list"
273
+
274
+ #: Chat Messages
275
+ msgid "settings_messages_title"
276
+ msgstr "Chat Messages"
277
+
278
+ #: Show timestamps
279
+ msgid "settings_timestamps"
280
+ msgstr "Show timestamps"
281
+
282
+ #: Use 24-hour timestamps
283
+ msgid "settings_24hour_timestamps"
284
+ msgstr "Use 24-hour timestamps"
285
+
286
+ #: Show emoticons
287
+ msgid "settings_emoticons"
288
+ msgstr "Show emoticons"
289
+
290
+ #: Block new Private messages
291
+ msgid "settings_block_private"
292
+ msgstr "Block new private messages"
293
+
294
+ #: Messages in scrollback
295
+ msgid "settings_scrollback"
296
+ msgstr "Messages in scrollback"
297
+
298
+ #: Extra formatting
299
+ msgid "settings_formatting"
300
+ msgstr "Extra formatting"
301
+
302
+ #: Colour nicknames in messages
303
+ msgid "settings_nick_colouring"
304
+ msgstr "Colour nicknames in messages"
305
+
306
+ #: Share when I'm typing a message
307
+ msgid "settings_share_typing"
308
+ msgstr "Share when I'm typing a message"
309
+
310
+ #: Show inline image previews
311
+ msgid "settings_show_inline_previews"
312
+ msgstr "Show inline image previews"
313
+
314
+ #: Include join/part messages as activity
315
+ msgid "settings_show_joinpart"
316
+ msgstr "Include join/part messages as activity"
317
+
318
+ #: Mute sound notifications
319
+ msgid "settings_mute_sound"
320
+ msgstr "Mute sound notifications"
321
+
322
+ #: Highlight on words (space seperated)
323
+ msgid "settings_highlight"
324
+ msgstr "Highlight on words (space seperated)"
325
+
326
+ #: Aliases
327
+ msgid "settings_aliases"
328
+ msgstr "Aliases"
329
+
330
+ #: What are Aliases
331
+ msgid "what_are_aliases"
332
+ msgstr "What are aliases?"
333
+
334
+ #: AutoComplete
335
+
336
+ #: Send Message
337
+ msgid "send_message"
338
+ msgstr "Send Message"
339
+
340
+
341
+ #: BufferKey $t('bufferkey_')
342
+
343
+ #: Enter Channel Key
344
+ msgid "bufferkey_input"
345
+ msgstr "Enter Channel Key"
346
+
347
+ #: Rejoin {{channel}}
348
+ msgid "bufferkey_rejoin"
349
+ msgstr "Rejoin {{channel}}"
350
+
351
+
352
+ #: BufferSettings $t('settings_')
353
+
354
+ #: Notify me when
355
+ msgid "settings_notify"
356
+ msgstr "Notify me when"
357
+
358
+ #: All messages
359
+ msgid "settings_notify_all"
360
+ msgstr "All messages"
361
+
362
+ #: I am mentioned
363
+ msgid "settings_notify_mentioned"
364
+ msgstr "I am mentioned"
365
+
366
+ #: Never
367
+ msgid "settings_notify_never"
368
+ msgstr "Never"
369
+
370
+ #: Mute sounds
371
+ msgid "settings_notify_mute"
372
+ msgstr "Mute sounds"
373
+
374
+ #: Hide unread message count
375
+ msgid "settings_show_message_counts"
376
+ msgstr "Hide unread message count"
377
+
378
+ #: Operator tools
379
+ msgid "operator_tools"
380
+ msgstr "Operator tools"
381
+
382
+ #: Default ban mask
383
+ msgid "settings_default_ban_mask"
384
+ msgstr "Default ban mask"
385
+
386
+ #: Default kick reason
387
+ msgid "settings_default_kick_reason"
388
+ msgstr "Default kick reason"
389
+
390
+ #: Advanced Settings
391
+ msgid "settings_advanced_title"
392
+ msgstr "Advanced Settings"
393
+
394
+ #: Monsters be here, only click this button if you know what you are doing
395
+ msgid "settings_advanced_warning"
396
+ msgstr "Monsters be here, only click this button if you know what you are doing"
397
+
398
+ #: Enable Advanced Settings
399
+ msgid "settings_advanced_button"
400
+ msgstr "Enable Advanced Settings"
401
+
402
+ #: Danger Zone: Changing some of these settings may break things!
403
+ msgid "settings_advanced_header"
404
+ msgstr "Danger Zone: Changing some of these settings may break things!"
405
+
406
+ #: Reset
407
+ msgid "settings_advanced_reset"
408
+ msgstr "Reset"
409
+
410
+ #: Filter
411
+ msgid "settings_advanced_filter"
412
+ msgstr "Filter"
413
+
414
+
415
+
416
+ #: ChannelBanlist $t('bans_')
417
+
418
+ #: Refresh banlist
419
+ msgid "bans_refresh"
420
+ msgstr "Refresh banlist"
421
+
422
+ #: Banned user
423
+ msgid "bans_user"
424
+ msgstr "Banned user"
425
+
426
+ #: Banned by
427
+ msgid "bans_by"
428
+ msgstr "Banned by"
429
+
430
+ #: Refreshing banlist...
431
+ msgid "bans_refreshing"
432
+ msgstr "Refreshing banlist..."
433
+
434
+ #: Nobody is banned!
435
+ msgid "bans_nobody"
436
+ msgstr "Nobody is banned!"
437
+
438
+
439
+
440
+ #: ChannelInvitelist $t('invites_')
441
+
442
+ #: Refresh invite list
443
+ msgid "invites_refresh"
444
+ msgstr "Refresh invite list"
445
+
446
+ #: Invited user
447
+ msgid "invites_user"
448
+ msgstr "Invited user"
449
+
450
+ #: Invited by
451
+ msgid "invites_by"
452
+ msgstr "Invited by"
453
+
454
+ #: Refreshing invite list...
455
+ msgid "invites_refreshing"
456
+ msgstr "Refreshing invite list..."
457
+
458
+ #: Nobody is invited!
459
+ msgid "invites_nobody"
460
+ msgstr "Nobody is invited!"
461
+
462
+ #: This is a public channel.
463
+ msgid "invite_public_channel"
464
+ msgstr "This is a public channel."
465
+
466
+ #: Only invited users can join.
467
+ msgid "invite_private_channel"
468
+ msgstr "Only invited users can join."
469
+
470
+ #: Only allow invited users
471
+ msgid "invite_set_private"
472
+ msgstr "Only allow invited users"
473
+
474
+ #: Allow anybody to join
475
+ msgid "invite_set_public"
476
+ msgstr "Allow anybody to join"
477
+
478
+ #: Only registered users can join
479
+ msgid "invite_registered_only"
480
+ msgstr "Only registered users can join"
481
+
482
+ #: Add invite
483
+ msgid "invite_add_invite"
484
+ msgstr "Add invite"
485
+
486
+ #: (Any registered user)
487
+ msgid "invite_any_registered"
488
+ msgstr "(Any registered user)"
489
+
490
+
491
+ #: ChannelInfo $t('channel_')
492
+
493
+ #: Topic
494
+ msgid "channel_topic"
495
+ msgstr "Topic"
496
+
497
+ #: Moderated chat
498
+ msgid "channel_moderated"
499
+ msgstr "Moderated chat"
500
+
501
+ #: Invite only
502
+ msgid "channel_invite"
503
+ msgstr "Invite only"
504
+
505
+ #: Hide this channel from lists
506
+ msgid "channel_secret"
507
+ msgstr "Hide this channel from lists"
508
+
509
+ #: Only moderators can change the topic
510
+ msgid "channel_moderated_topic"
511
+ msgstr "Only moderators can change the topic"
512
+
513
+ #: Block messages from outside this channel
514
+ msgid "channel_external"
515
+ msgstr "Block messages from outside this channel"
516
+
517
+
518
+
519
+ #: ChannelList $t('channel_list_')
520
+
521
+ #: Click the refresh button to update the channel list
522
+ msgid "channel_list_fetch"
523
+ msgstr "Click the refresh button to update the channel list"
524
+
525
+ #: No channels found, try again later
526
+ msgid "channel_list_nonefound"
527
+ msgstr "No channels found, try again later"
528
+
529
+
530
+
531
+ #: Container $t('container_')
532
+
533
+ #: Welcome to Kiwi IRC! Select a channel on the left.
534
+ msgid "container_welcome"
535
+ msgstr "Welcome to Kiwi IRC! Select a channel on the left."
536
+
537
+ #: Show statebrowser
538
+ msgid "container_statebrowser"
539
+ msgstr "Show statebrowser"
540
+
541
+
542
+
543
+ #: ContainerHeader $t('container_')
544
+
545
+ #: Hide Topic
546
+ msgid "hide_topic"
547
+ msgstr "Hide Topic"
548
+
549
+ #: Display Topic
550
+ msgid "display_topic"
551
+ msgstr "Display Topic"
552
+
553
+ #: Channel Settings
554
+ msgid "channel_settings"
555
+ msgstr "Channel Settings"
556
+
557
+ #: Join Channel
558
+ msgid "container_join"
559
+ msgstr "Join Channel"
560
+
561
+ #: Not Connected
562
+ msgid "container_notconnected"
563
+ msgstr "Not Connected"
564
+
565
+ #: Private conversation with {{user}}
566
+ msgid "container_privmsg"
567
+ msgstr "Private conversation with {{user}}"
568
+
569
+
570
+
571
+ #: ControlInput $t('input_')
572
+
573
+ #: Send a message...
574
+ msgid "input_placeholder"
575
+ msgstr "Send a message..."
576
+
577
+
578
+
579
+ #: MediaViewer $t('media_')
580
+
581
+ #: Loading {{url}}...
582
+ msgid "media_loading"
583
+ msgstr "Loading {{url}}..."
584
+
585
+
586
+
587
+ #: MessageList $t('messages_')
588
+
589
+ #: Load previous messages
590
+ msgid "messages_load"
591
+ msgstr "Load previous messages"
592
+
593
+ #: Loading previous messages...
594
+ msgid "messages_loading"
595
+ msgstr "Loading previous messages..."
596
+
597
+ #: Unread Messages
598
+ msgid "unread_messages"
599
+ msgstr "Unread Messages"
600
+
601
+ #: Reply in private
602
+ msgid "reply_in_private"
603
+ msgstr "Reply in private"
604
+
605
+
606
+
607
+ #: Server details
608
+ msgid "settings_server_details"
609
+ msgstr "Server details"
610
+
611
+ #: Port
612
+ msgid "settings_port"
613
+ msgstr "Port"
614
+
615
+ #: Other networks on this ZNC account will be listed in the network list
616
+ msgid "settings_znc_other"
617
+ msgstr "Other networks on this ZNC account will be listed in the network list"
618
+
619
+ #: Your details
620
+ msgid "settings_your_details"
621
+ msgstr "Your details"
622
+
623
+ #: Nickname
624
+ msgid "settings_nickname"
625
+ msgstr "Nickname"
626
+
627
+ #: Advanced
628
+ msgid "settings_advanced"
629
+ msgstr "Advanced"
630
+
631
+ #: Encoding
632
+ msgid "settings_encoding"
633
+ msgstr "Encoding"
634
+
635
+ #: Show Raw
636
+ msgid "settings_show_raw"
637
+ msgstr "Show Raw"
638
+
639
+ #: Direct websocket
640
+ msgid "settings_use_websocket"
641
+ msgstr "Direct websocket"
642
+
643
+ #: Run commands when connected
644
+ msgid "settings_autorun"
645
+ msgstr "Run commands when connected"
646
+
647
+ #: Danger Zone
648
+ msgid "settings_danger"
649
+ msgstr "Danger Zone"
650
+
651
+ #: Remove network
652
+ msgid "settings_remove"
653
+ msgstr "Remove network"
654
+
655
+
656
+
657
+ #: Nicklist
658
+
659
+ #: {{count}} person here
660
+ msgid "person"
661
+ msgstr "{{count}} person here"
662
+
663
+ #: {{count}} people here
664
+ msgid "person_plural"
665
+ msgstr "{{count}} people here"
666
+
667
+ #: Filter users in channel
668
+ msgid "filter_users"
669
+ msgstr "Filter users in channel"
670
+
671
+
672
+ #: NotConnected $t('reconnect_')
673
+
674
+ #: Reconnect to join {{channel}}
675
+ msgid "reconnect_channel"
676
+ msgstr "Reconnect to join {{channel}}"
677
+
678
+ #: Reconnect to {{network}} to start talking
679
+ msgid "reconnect_network"
680
+ msgstr "Reconnect to {{network}} to start talking"
681
+
682
+ #: Reconnect to continue talking with {{user}}
683
+ msgid "reconnect_query"
684
+ msgstr "Reconnect to continue talking with {{user}}"
685
+
686
+ #: You are not currently connected!
687
+ msgid "not_connected"
688
+ msgstr "You are not currently connected!"
689
+
690
+ #: Connection settings
691
+ msgid "reconnect_settings"
692
+ msgstr "Connection settings"
693
+
694
+
695
+
696
+ #: NetworkSettings $t('network_')
697
+
698
+ #: We couldn't connect to that server :(
699
+ msgid "network_noconnect"
700
+ msgstr "We couldn't connect to that server :("
701
+
702
+ #: Connect To Network
703
+ msgid "network_connect"
704
+ msgstr "Connect To Network"
705
+
706
+ #: Network Name
707
+ msgid "network_name"
708
+ msgstr "Network Name"
709
+
710
+
711
+
712
+ #: Sidebar
713
+
714
+ #: Close options
715
+ msgid "side_close"
716
+ msgstr "Close options"
717
+
718
+ #: Channel options
719
+ msgid "side_options"
720
+ msgstr "Channel options"
721
+
722
+ #: Your settings
723
+ msgid "side_settings"
724
+ msgstr "Your settings"
725
+
726
+ #: Show when people join
727
+ msgid "side_joins"
728
+ msgstr "Show when people join"
729
+
730
+ #: Show when channel topic changes
731
+ msgid "side_topics"
732
+ msgstr "Show when channel topic changes"
733
+
734
+ #: Show when users change their nicks
735
+ msgid "side_nick_changes"
736
+ msgstr "Show when users change their nicks"
737
+
738
+ #: Show when users change channel modes
739
+ msgid "side_mode_changes"
740
+ msgstr "Show when users change channel modes"
741
+
742
+ #: Extra message formatting
743
+ msgid "side_formatting"
744
+ msgstr "Extra message formatting"
745
+
746
+ #: Nick colours in the list"
747
+ msgid "side_colours"
748
+ msgstr "Nick colours in the list"
749
+
750
+ #: No buffer set
751
+ msgid "side_buffer"
752
+ msgstr "No buffer set"
753
+
754
+
755
+ #: Sidebar About Buffer
756
+
757
+ #: There is no topic for this channel
758
+ msgid "no_topic_set"
759
+ msgstr "There is no topic for this channel"
760
+
761
+ #: About
762
+ msgid "about"
763
+ msgstr "About"
764
+
765
+ #: Created at {{when}}
766
+ msgid "created_at"
767
+ msgstr "Created at {{when}}"
768
+
769
+ #: Highlights
770
+ msgid "highlights"
771
+ msgstr "Highlights"
772
+
773
+ #: Nobody has mentioned you yet...
774
+ msgid "nobody_mentioned_you"
775
+ msgstr "Nobody has mentioned you yet..."
776
+
777
+
778
+ #: StartupError $t('error_')
779
+
780
+ #: There was an error starting Kiwi IRC :(
781
+ msgid "error_starting"
782
+ msgstr "There was an error starting Kiwi IRC :("
783
+
784
+ #: Make sure you have installed Kiwi IRC correctly and the configurartion can be loaded
785
+ msgid "error_installed"
786
+ msgstr "Make sure you have installed Kiwi IRC correctly and the configurartion can be loaded"
787
+
788
+
789
+
790
+ #: StateBrowser $t('state_')
791
+
792
+ #: Leave {{name}}
793
+ msgid "state_leave"
794
+ msgstr "Leave {{name}}"
795
+
796
+ #: Your account
797
+ msgid "state_account"
798
+ msgstr "Your account"
799
+
800
+ #: Your settings and networks will be remembered on this computer.
801
+ msgid "state_remembered"
802
+ msgstr "Your settings and networks will be remembered on this computer."
803
+
804
+ #: Forget me
805
+ msgid "state_forget"
806
+ msgstr "Forget me"
807
+
808
+ #: No networks here yet.
809
+ msgid "state_network"
810
+ msgstr "No networks here yet."
811
+
812
+ #: Add one?
813
+ msgid "state_add"
814
+ msgstr "Add one?"
815
+
816
+ #: Available networks
817
+ msgid "state_available"
818
+ msgstr "Available networks"
819
+
820
+ #: Add Network
821
+ msgid "add_network"
822
+ msgstr "Add Network"
823
+
824
+ #: New Network
825
+ msgid "new_network"
826
+ msgstr "New Network"
827
+
828
+ #: No Network
829
+ msgid "no_network"
830
+ msgstr "No Network"
831
+
832
+
833
+ #: StateBrowserNetwork
834
+
835
+ #: Configure network
836
+ msgid "state_configure"
837
+ msgstr "Configure network"
838
+
839
+ #: Not connected.
840
+ msgid "state_disconnected"
841
+ msgstr "Not connected."
842
+
843
+ #: Join new #channel
844
+ msgid "state_join"
845
+ msgstr "Join new #channel"
846
+
847
+ #: Filter Channels
848
+ msgid "filter_channels"
849
+ msgstr "Filter channels"
850
+
851
+ #: Find More Channels
852
+ msgid "find_more_channels"
853
+ msgstr "Find More Channels"
854
+
855
+ #: Really leave the channel?
856
+ msgid "prompt_leave_channel"
857
+ msgstr "Really leave the channel?"
858
+
859
+ #: Really close all messages?
860
+ msgid "prompt_close_queries"
861
+ msgstr "Really close all messages?"
862
+
863
+ #: Really close this chat?
864
+ msgid "prompt_close_query"
865
+ msgstr "Really close this chat?"
866
+
867
+
868
+
869
+ #: SelfUser
870
+
871
+ #: Change nick
872
+ msgid "change_nick"
873
+ msgstr "Change nick"
874
+
875
+ #: Enter new nickname...
876
+ msgid "enter_new_nick"
877
+ msgstr "Enter new nickname..."
878
+
879
+
880
+ #: UserBox $t('user_')
881
+
882
+ #: This is you!
883
+ msgid "user_you"
884
+ msgstr "This is you!"
885
+
886
+ #: Account name: {{user}}
887
+ msgid "user_account"
888
+ msgstr "Account name: {{user}}"
889
+
890
+ #: Real name: {{realname}}
891
+ msgid "user_realname"
892
+ msgstr "Real name: {{realname}}"
893
+
894
+ #: Is a bot
895
+ msgid "user_bot"
896
+ msgstr "Is a bot"
897
+
898
+ #: Is available for help
899
+ msgid "user_help"
900
+ msgstr "Is avaiable for help"
901
+
902
+ #: Is an operator
903
+ msgid "user_op"
904
+ msgstr "Is an operator"
905
+
906
+ #: Connected to {{server}} {{info}}
907
+ msgid "user_server"
908
+ msgstr "Connected to {{server}} {{info}}"
909
+
910
+ #: Securely connected via SSL/TLS
911
+ msgid "user_secure"
912
+ msgstr "Securely connected via SSL/TLS"
913
+
914
+ #: In channels {{channels}}
915
+ msgid "user_channels"
916
+ msgstr "In channels {{channels}}"
917
+
918
+ #: Access level
919
+ msgid "user_access"
920
+ msgstr "Access level"
921
+
922
+ #: Normal
923
+ msgid "user_normal"
924
+ msgstr "Normal"
925
+
926
+ #: Kick from the channel
927
+ msgid "user_kick"
928
+ msgstr "Kick from the channel"
929
+
930
+ #: Ban from the channel
931
+ msgid "user_ban"
932
+ msgstr "Ban from the channel"
933
+
934
+ #: Ban and kick from the channel
935
+ msgid "user_kickban"
936
+ msgstr "Ban and kick from the channel"
937
+
938
+ #: Select a Channel
939
+ msgid "select_channel"
940
+ msgstr "Select a Channel"
941
+
942
+ #: Invite User
943
+ msgid "invite_user"
944
+ msgstr "Invite User"
945
+
946
+
947
+
948
+ #: Errors
949
+
950
+ #: Please specify a channel to join. eg /join #example
951
+ msgid "error_no_channel_join"
952
+ msgstr "Please specify a channel to join. eg /join #example"
953
+
954
+ #: The nickname '{{nick}}' is already in use!
955
+ msgid "error_nick_in_use"
956
+ msgstr "The nickname '{{nick}}' is already in use!"
957
+
958
+ #: The nickname '{{nick}}' is invalid!
959
+ msgid "error_nick_invalid"
960
+ msgstr "The nickname '{{nick}}' is invalid!"
961
+
962
+ #: You must enter a new nickname
963
+ msgid "error_empty_nick"
964
+ msgstr "You must enter a new nickname"
965
+
966
+ #: Nickname must not start with a number
967
+ msgid "error_no_number"
968
+ msgstr "Nickname must not start with a number"
969
+
970
+ #: Unexpected error occurred
971
+ msgid "error_unexpected"
972
+ msgstr "Unexpected error occurred"
973
+
974
+
975
+
976
+ #: Mode Changes $t('modes_')
977
+
978
+ #: {{nick}} gives ops to {{target}}
979
+ msgid "modes_give_ops"
980
+ msgstr "{{nick}} gives ops to {{target}}"
981
+
982
+ #: {{nick}} takes ops from {{target}}
983
+ msgid "modes_take_ops"
984
+ msgstr "{{nick}} takes ops from {{target}}"
985
+
986
+ #: {{nick}} gives half-ops to {{target}}
987
+ msgid "modes_give_halfops"
988
+ msgstr "{{nick}} gives half-ops to {{target}}"
989
+
990
+ #: {{nick}} takes half-ops from {{target}}
991
+ msgid "modes_take_halfops"
992
+ msgstr "{{nick}} takes half-ops from {{target}}"
993
+
994
+ #: {{nick}} gives voice to {{target}}
995
+ msgid "modes_give_voice"
996
+ msgstr "{{nick}} gives voice to {{target}}"
997
+
998
+ #: {{nick}} takes voice from {{target}}
999
+ msgid "modes_take_voice"
1000
+ msgstr "{{nick}} takes voice from {{target}}"
1001
+
1002
+ #: {{nick}} gives admin to {{target}}
1003
+ msgid "modes_give_admin"
1004
+ msgstr "{{nick}} gives admin to {{target}}"
1005
+
1006
+ #: {{nick}} takes admin from {{target}}
1007
+ msgid "modes_take_admin"
1008
+ msgstr "{{nick}} takes admin from {{target}}"
1009
+
1010
+ #: {{nick}} gives owner to {{target}}
1011
+ msgid "modes_give_owner"
1012
+ msgstr "{{nick}} gives owner to {{target}}"
1013
+
1014
+ #: {{nick}} takes owner from {{target}}
1015
+ msgid "modes_take_owner"
1016
+ msgstr "{{nick}} takes owner from {{target}}"
1017
+
1018
+ #: {{nick}} has banned {{target}}
1019
+ msgid "modes_gives_ban"
1020
+ msgstr "{{nick}} has banned {{target}}"
1021
+
1022
+ #: {{nick}} has unbanned {{target}}
1023
+ msgid "modes_takes_ban"
1024
+ msgstr "{{nick}} has unbanned {{target}}"
1025
+
1026
+ #: {{nick}} sets {{mode}} on {{target}}
1027
+ msgid "modes_other"
1028
+ msgstr "{{nick}} sets {{mode}} on {{target}}"
1029
+
1030
+
1031
+
1032
+ #: autocompleteCommands $t('command_')
1033
+
1034
+ #: Send a message
1035
+ msgid "command_msg"
1036
+ msgstr "Send a message"
1037
+
1038
+ #: Do something physical
1039
+ msgid "command_action"
1040
+ msgstr "Do something physical"
1041
+
1042
+ #: Join a channel
1043
+ msgid "command_join"
1044
+ msgstr "Join a channel"
1045
+
1046
+ #: Leave a channel
1047
+ msgid "command_part"
1048
+ msgstr "Leave a channel"
1049
+
1050
+ #: Leave, then re-join a channel
1051
+ msgid "command_cycle"
1052
+ msgstr "Leave, then re-join a channel"
1053
+
1054
+ #: Change your nickname
1055
+ msgid "command_nick"
1056
+ msgstr "Change your nickname"
1057
+
1058
+ #: Start a private conversation with someone
1059
+ msgid "command_query"
1060
+ msgstr "Start a private conversation with someone"
1061
+
1062
+ #: Invite somebody into the channel
1063
+ msgid "command_invite"
1064
+ msgstr "Invite somebody into the channel"
1065
+
1066
+ #: Set the topic for this channel
1067
+ msgid "command_topic"
1068
+ msgstr "Set the topic for this channel"
1069
+
1070
+ #: Send a notice
1071
+ msgid "command_notice"
1072
+ msgstr "Send a notice"
1073
+
1074
+ #: Send a raw command to the IRC server
1075
+ msgid "command_quote"
1076
+ msgstr "Send a raw command to the IRC server"
1077
+
1078
+ #: Kick somebody from the channel
1079
+ msgid "command_kick"
1080
+ msgstr "Kick somebody from the channel"
1081
+
1082
+ #: Clear all messages from this window
1083
+ msgid "command_clear"
1084
+ msgstr "Clear all messages from this window"
1085
+
1086
+ #: Send a CTCP command to somebody
1087
+ msgid "command_ctcp"
1088
+ msgstr "Send a CTCP command to somebody"
1089
+
1090
+ #: Disconnect from the IRC server
1091
+ msgid "command_quit"
1092
+ msgstr "Disconnect from the IRC server"
1093
+
1094
+ #: Connect to a new IRC network
1095
+ msgid "command_server"
1096
+ msgstr "Connect to a new IRC network"
1097
+
1098
+ #: Request information on somebody
1099
+ msgid "command_whois"
1100
+ msgstr "Request information on somebody"
1101
+
1102
+ #: Request information on somebody that disconnected recently
1103
+ msgid "command_whowas"
1104
+ msgstr "Request information on somebody that disconnected recently"
1105
+
1106
+ #: Set yourself as away
1107
+ msgid "command_away"
1108
+ msgstr "Set yourself as away"
1109
+
1110
+ #: Set yourself as active
1111
+ msgid "command_back"
1112
+ msgstr "Set yourself as active"
1113
+
1114
+ #: Change your connection encoding
1115
+ msgid "command_encoding"
1116
+ msgstr "Change your connection encoding"
1117
+
1118
+ #: Ignore messages from somebody
1119
+ msgid "command_ignore"
1120
+ msgstr "Ignore messages from somebody"
1121
+
1122
+ #: Stop ignoring somebody
1123
+ msgid "command_unignore"
1124
+ msgstr "Stop ignoring somebody"
1125
+
1126
+ #: Roll a Dice
1127
+ msgid "command_dice"
1128
+ msgstr "Roll a Dice"
1129
+
1130
+ #: Rolls a {{sides}} sided dice and gets {{number}}
1131
+ msgid "dice_roll"
1132
+ msgstr "Rolls a {{sides}} sided dice and gets {{number}}"
1133
+
1134
+
1135
+ #: Notifications
1136
+
1137
+ #: You were mentioned in {{channel}}
1138
+ msgid "notification_mentioned"
1139
+ msgstr "You were mentioned in {{channel}}"
1140
+
1141
+
1142
+ #: Personal $t('personal_')
1143
+
1144
+ #: Your IRC client
1145
+ msgid "personal_client"
1146
+ msgstr "Your IRC Client."
1147
+
1148
+ #: Add your networks. Join your channels.
1149
+ msgid "personal_addjoin"
1150
+ msgstr "Add your networks. Join your channels."
1151
+
1152
+ #: They will be here when you come back.
1153
+ msgid "personal_return"
1154
+ msgstr "They will be here when you come back."
1155
+
1156
+ #: Add a Network
1157
+ msgid "personal_add"
1158
+ msgstr "Add a Network"
1159
+
1160
+ #: You are trying to connect to {{network}}
1161
+ msgid "personal_connect_to"
1162
+ msgstr "You are trying to connect to {{network}}"
1163
+
1164
+ #: Network has been added to your existing Kiwi window.
1165
+ msgid "personal_added_to_existing"
1166
+ msgstr "Network has been added to your existing Kiwi window."
1167
+
1168
+ #: Add network to existing Kiwi window
1169
+ msgid "personal_add_existing_tab"
1170
+ msgstr "Add network to existing Kiwi window"
1171
+
1172
+ #: Temporarily connect to this network
1173
+ msgid "personal_connect_temporary"
1174
+ msgstr "Temporarily connect to this network"
1175
+
1176
+ #: Saved networks
1177
+ msgid "personal_saved"
1178
+ msgstr "Saved networks"
1179
+
1180
+
1181
+
1182
+ #: WelcomeRizon $t('rizon_')
1183
+
1184
+ #: Kiwi IRC (next gen) - Rizon preview
1185
+ msgid "rizon_title"
1186
+ msgstr "Kiwi IRC (next gen) - Rizon preview"
1187
+
1188
+ #: Direct websockets. No Kiwi server or webirc involved.
1189
+ msgid "rizon_websockets"
1190
+ msgstr "Direct websockets. No Kiwi server or webirc involved."
1191
+
1192
+ #: (Thanks to Adam @Rizon for the development websocket server support!)
1193
+ msgid "rizon_thanks"
1194
+ msgstr "(Thanks to Adam @Rizon for the development websocket server support!)"
1195
+
1196
+ #: Give the developer version of Kiwi IRC a try!
1197
+ msgid "rizon_dev"
1198
+ msgstr "Give the developer version of Kiwi IRC a try!"
1199
+
1200
+ #: Disconnected
1201
+ msgid "disconnected"
1202
+ msgstr "Disconnected"
1203
+
1204
+ #: Connected to {{network}}!
1205
+ msgid "connected_to"
1206
+ msgstr "Connected to {{network}}!"
1207
+
1208
+ #: {{nick}} has joined
1209
+ msgid "has_joined"
1210
+ msgstr "{{nick}} has joined"
1211
+
1212
+ #: {{nick}} kicked you from {{channel}}
1213
+ msgid "kicked_you_from"
1214
+ msgstr "{{nick}} kicked you from {{channel}}"
1215
+
1216
+ #: {{nick}} was kicked from {{channel}} by {{chanop}}
1217
+ msgid "was_kicked_from"
1218
+ msgstr "{{nick}} was kicked from {{channel}} by {{chanop}}"
1219
+
1220
+ #: {{nick}} has left
1221
+ msgid "has_left"
1222
+ msgstr "{{nick}} has left"
1223
+
1224
+ #: {{nick}} invited you to join {{channel}}
1225
+ msgid "invited_you"
1226
+ msgstr "{{nick}} invited you to join {{channel}}"
1227
+
1228
+ #: {{nick}} invited {{invited}} to join {{channel}}
1229
+ msgid "invited_other"
1230
+ msgstr "{{nick}} invited {{invited}} to join {{channel}}"
1231
+
1232
+ #: You invited {{invited}} to join {{channel}}
1233
+ msgid "invited_inviter"
1234
+ msgstr "You invited {{invited}} to join {{channel}}"
1235
+
1236
+ #: Nickname {{nick}} is already in use. Trying {{newnick}}...
1237
+ msgid "nick_in_use_retrying"
1238
+ msgstr "Nickname {{nick}} is already in use. Trying {{newnick}}..."
1239
+
1240
+ #: {{nick}} is now known as {{newnick}}
1241
+ msgid "now_known_as"
1242
+ msgstr "{{nick}} is now known as {{newnick}}"
1243
+
1244
+ #: {{nick}} changed the topic to: {{topic}}
1245
+ msgid "changed_topic_to"
1246
+ msgstr "{{nick}} changed the topic to: {{topic}}"