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: de\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: German\n"
15
+ "Language: de_DE\n"
16
+ "PO-Revision-Date: 2023-06-14 17:21\n"
17
+
18
+ #: Start
19
+ msgid "start_button"
20
+ msgstr "Starten"
21
+
22
+ #: Welcome to Kiwi IRC!
23
+ msgid "start_greeting"
24
+ msgstr "Wilkommen bei Kiwi IRC!"
25
+
26
+ #: Close
27
+ msgid "close"
28
+ msgstr "schließen"
29
+
30
+ #: Connect
31
+ msgid "connect"
32
+ msgstr "Verbinden"
33
+
34
+ #: Connecting...
35
+ msgid "connecting"
36
+ msgstr "Verbinde"
37
+
38
+ #: Connected
39
+ msgid "connected"
40
+ msgstr "Verbunden"
41
+
42
+ #: Settings
43
+ msgid "settings"
44
+ msgstr "Einstellungen"
45
+
46
+ #: Kiwi Settings
47
+ msgid "kiwi_settings"
48
+ msgstr "Kiwi Einstellungen"
49
+
50
+ #: Channels
51
+ msgid "channels"
52
+ msgstr "Chaträume"
53
+
54
+ #: Access
55
+ msgid "access"
56
+ msgstr "Zugriff"
57
+
58
+ #: Banned Users
59
+ msgid "banned"
60
+ msgstr "gebannt"
61
+
62
+ #: Invited Users
63
+ msgid "invited"
64
+ msgstr "Eingeladene Benutzer"
65
+
66
+ #: Notifications
67
+ msgid "notifications"
68
+ msgstr "Benachrichtigungen"
69
+
70
+ #: Username
71
+ msgid "username"
72
+ msgstr "Benutzername"
73
+
74
+ #: Password
75
+ msgid "password"
76
+ msgstr "Passwort"
77
+
78
+ #: Server Password
79
+ msgid "server_password"
80
+ msgstr "Server Password"
81
+
82
+ #: I have a password
83
+ msgid "password_have"
84
+ msgstr "Ich habe ein Passwort"
85
+
86
+ #: Server
87
+ msgid "server"
88
+ msgstr "Server"
89
+
90
+ #: Nick
91
+ msgid "nick"
92
+ msgstr "Nickname"
93
+
94
+ #: Channel
95
+ msgid "channel"
96
+ msgstr "Kanal"
97
+
98
+ #: Messages
99
+ msgid "messages"
100
+ msgstr "Nachrichten"
101
+
102
+ #: Network
103
+ msgid "network"
104
+ msgstr "Netzwerk"
105
+
106
+ #: ZNC
107
+ msgid "znc"
108
+ msgstr "ZNC"
109
+
110
+ #: Logging in...
111
+ msgid "logging_in"
112
+ msgstr "Logge ein..."
113
+
114
+ #: Invalid login
115
+ msgid "invalid_login"
116
+ msgstr "Ungültige Zugangsdaten"
117
+
118
+ #: Login failed. Please try again or contact support
119
+ msgid "login_failed"
120
+ msgstr "Login failed. Please try again or contact support"
121
+
122
+ #: You are now logged in as '{{account}}'
123
+ msgid "logged_in"
124
+ msgstr "You are now logged in as '{{account}}'"
125
+
126
+ #: You have been logged out
127
+ msgid "logged_out"
128
+ msgstr "You have been logged out"
129
+
130
+ #: Search...
131
+ msgid "do_search"
132
+ msgstr "Suche"
133
+
134
+ #: OK
135
+ msgid "ok"
136
+ msgstr "OK"
137
+
138
+ #: Cancel
139
+ msgid "cancel"
140
+ msgstr "Abbrechen"
141
+
142
+ #: Yes
143
+ msgid "yes"
144
+ msgstr "Ja"
145
+
146
+ #: No
147
+ msgid "no"
148
+ msgstr "Nein"
149
+
150
+ #: Not found.
151
+ msgid "not_found"
152
+ msgstr "Nicht gefunden"
153
+
154
+ #: Warning!
155
+ msgid "warning"
156
+ msgstr "Warnung!"
157
+
158
+ #: This will close all Kiwi IRC conversations. Are you sure you want to close this window?
159
+ msgid "window_unload"
160
+ msgstr "Dies wird deine gesamten Kiwi IRC Unterhaltungen beenden. Bist du dir sicher?"
161
+
162
+ #: Real name
163
+ msgid "whois_realname"
164
+ msgstr "Realname"
165
+
166
+ #: Status
167
+ msgid "whois_status"
168
+ msgstr "Awaystatus"
169
+
170
+ #: Is available
171
+ msgid "whois_status_available"
172
+ msgstr "Anwesend"
173
+
174
+ #: Send a message
175
+ msgid "send_a_message"
176
+ msgstr "Sende Nachricht"
177
+
178
+ #: More information
179
+ msgid "more_information"
180
+ msgstr "Mehr Informationen"
181
+
182
+ #: Ignore user
183
+ msgid "ignore_user"
184
+ msgstr "Ignoriere User"
185
+
186
+ #: Channel
187
+ msgid "connection_channel"
188
+ msgstr "Kanal"
189
+
190
+ #: Away
191
+ msgid "away"
192
+ msgstr "Weg"
193
+
194
+ #: {{count}} week
195
+ msgid "week"
196
+ msgstr "{{count}} Woche"
197
+
198
+ #: {{count}} weeks
199
+ msgid "week_plural"
200
+ msgstr "{{count}} Wochen"
201
+
202
+ #: {{count}} day
203
+ msgid "day"
204
+ msgstr "{{count}} Tag"
205
+
206
+ #: {{count}} days
207
+ msgid "day_plural"
208
+ msgstr "{{count}} Tage"
209
+
210
+ #: {{count}} hour
211
+ msgid "hour"
212
+ msgstr "{{count}} Stunde"
213
+
214
+ #: {{count}} hours
215
+ msgid "hour_plural"
216
+ msgstr "{{count}} Stunden"
217
+
218
+ #: {{count}} minute
219
+ msgid "minute"
220
+ msgstr "{{count}} Minute"
221
+
222
+ #: {{count}} minutes
223
+ msgid "minute_plural"
224
+ msgstr "{{count}} Minuten"
225
+
226
+ #: {{count}} second
227
+ msgid "second"
228
+ msgstr "{{count}} Sekunde"
229
+
230
+ #: {{count}} seconds
231
+ msgid "second_plural"
232
+ msgstr "{{count}} Sekunden"
233
+
234
+ #: General
235
+ msgid "settings_general"
236
+ msgstr "Allgemein"
237
+
238
+ #: Language
239
+ msgid "settings_language"
240
+ msgstr "Sprache"
241
+
242
+ #: Theme
243
+ msgid "settings_theme"
244
+ msgstr "Thema"
245
+
246
+ #: Refresh Theme
247
+ msgid "refresh_theme"
248
+ msgstr "Theme aktualisieren"
249
+
250
+ #: Theme URL
251
+ msgid "settings_themeurl"
252
+ msgstr "Thema URL"
253
+
254
+ #: Message Layout
255
+ msgid "settings_messagelayout"
256
+ msgstr "Nachrichtenlayout"
257
+
258
+ #: Use monospace
259
+ msgid "settings_use_monospace"
260
+ msgstr "Verwende Monospace"
261
+
262
+ #: Use Kiwi as my default IRC client
263
+ msgid "settings_default_handler"
264
+ msgstr "Verwenden Sie Kiwi als meinen Standard-IRC-Client"
265
+
266
+ #: Traditional IRC layout
267
+ msgid "settings_layout_compact"
268
+ msgstr "Traditionelles IRC Layout"
269
+
270
+ #: Show autocomplete list
271
+ msgid "settings_show_autocomplete"
272
+ msgstr "Zeige Autovervollständigung"
273
+
274
+ #: Chat Messages
275
+ msgid "settings_messages_title"
276
+ msgstr "Nachrichten"
277
+
278
+ #: Show timestamps
279
+ msgid "settings_timestamps"
280
+ msgstr "Zeige Zeitstempel"
281
+
282
+ #: Use 24-hour timestamps
283
+ msgid "settings_24hour_timestamps"
284
+ msgstr "Benutze 24 Stunden Format"
285
+
286
+ #: Show emoticons
287
+ msgid "settings_emoticons"
288
+ msgstr "Zeige Emoticons"
289
+
290
+ #: Block new Private messages
291
+ msgid "settings_block_private"
292
+ msgstr "Blockiere Private Nachrichten"
293
+
294
+ #: Messages in scrollback
295
+ msgid "settings_scrollback"
296
+ msgstr "Nachrichten im Verlauf"
297
+
298
+ #: Extra formatting
299
+ msgid "settings_formatting"
300
+ msgstr "Extra Formatierung"
301
+
302
+ #: Colour nicknames in messages
303
+ msgid "settings_nick_colouring"
304
+ msgstr "Nicknamen einfärben"
305
+
306
+ #: Share when I'm typing a message
307
+ msgid "settings_share_typing"
308
+ msgstr "Teilen, wenn ich eine Nachricht schreibe"
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 "Betreten/Verlassen als Aktivität"
317
+
318
+ #: Mute sound notifications
319
+ msgid "settings_mute_sound"
320
+ msgstr "Stummschalten"
321
+
322
+ #: Highlight on words (space seperated)
323
+ msgid "settings_highlight"
324
+ msgstr "Wörter Benachrichtigen"
325
+
326
+ #: Aliases
327
+ msgid "settings_aliases"
328
+ msgstr "Alias"
329
+
330
+ #: What are Aliases
331
+ msgid "what_are_aliases"
332
+ msgstr "Was sind Aliasse"
333
+
334
+ #: Send Message
335
+ msgid "send_message"
336
+ msgstr "Sende Nachricht"
337
+
338
+ #: Enter Channel Key
339
+ msgid "bufferkey_input"
340
+ msgstr "Passworteingabe erforderlich"
341
+
342
+ #: Rejoin {{channel}}
343
+ msgid "bufferkey_rejoin"
344
+ msgstr "Raum {{channel}} erneut betreten"
345
+
346
+ #: Notify me when
347
+ msgid "settings_notify"
348
+ msgstr "Benachrichtige mich"
349
+
350
+ #: All messages
351
+ msgid "settings_notify_all"
352
+ msgstr "Alle Nachrichten"
353
+
354
+ #: I am mentioned
355
+ msgid "settings_notify_mentioned"
356
+ msgstr "Wenn ich erwähnt werde"
357
+
358
+ #: Never
359
+ msgid "settings_notify_never"
360
+ msgstr "Niemals"
361
+
362
+ #: Mute sounds
363
+ msgid "settings_notify_mute"
364
+ msgstr "Ton aus"
365
+
366
+ #: Hide unread message count
367
+ msgid "settings_show_message_counts"
368
+ msgstr "Hide unread message count"
369
+
370
+ #: Operator tools
371
+ msgid "operator_tools"
372
+ msgstr "Op Tools"
373
+
374
+ #: Default ban mask
375
+ msgid "settings_default_ban_mask"
376
+ msgstr "Standard Ban Maske"
377
+
378
+ #: Default kick reason
379
+ msgid "settings_default_kick_reason"
380
+ msgstr "Standard Kickgrund"
381
+
382
+ #: Advanced Settings
383
+ msgid "settings_advanced_title"
384
+ msgstr "Erweiterte Einstellungen"
385
+
386
+ #: Monsters be here, only click this button if you know what you are doing
387
+ msgid "settings_advanced_warning"
388
+ msgstr "Monster sind hier. Klicken Sie nur dann darauf, wenn Sie wissen, was Sie tun"
389
+
390
+ #: Enable Advanced Settings
391
+ msgid "settings_advanced_button"
392
+ msgstr "Erweiterte Einstellungen aktivieren"
393
+
394
+ #: Danger Zone: Changing some of these settings may break things!
395
+ msgid "settings_advanced_header"
396
+ msgstr "Gefahrenbereich: Das Ändern einiger dieser Einstellungen kann zu Problemen führen!"
397
+
398
+ #: Reset
399
+ msgid "settings_advanced_reset"
400
+ msgstr "Zurücksetzen"
401
+
402
+ #: Filter
403
+ msgid "settings_advanced_filter"
404
+ msgstr "Filter"
405
+
406
+ #: Refresh banlist
407
+ msgid "bans_refresh"
408
+ msgstr "Aktualisiere Bannliste"
409
+
410
+ #: Banned user
411
+ msgid "bans_user"
412
+ msgstr "Gebannte User"
413
+
414
+ #: Banned by
415
+ msgid "bans_by"
416
+ msgstr "Gebannt von"
417
+
418
+ #: Refreshing banlist...
419
+ msgid "bans_refreshing"
420
+ msgstr "Aktualisiere Bannliste"
421
+
422
+ #: Nobody is banned!
423
+ msgid "bans_nobody"
424
+ msgstr "Niemand ist gebannt"
425
+
426
+ #: Refresh invite list
427
+ msgid "invites_refresh"
428
+ msgstr "Einladungsliste aktualisieren"
429
+
430
+ #: Invited user
431
+ msgid "invites_user"
432
+ msgstr "Eingeladener Benutzer"
433
+
434
+ #: Invited by
435
+ msgid "invites_by"
436
+ msgstr "Eingeladen von"
437
+
438
+ #: Refreshing invite list...
439
+ msgid "invites_refreshing"
440
+ msgstr "Aktualisierende Einladungsliste ..."
441
+
442
+ #: Nobody is invited!
443
+ msgid "invites_nobody"
444
+ msgstr "Niemand ist eingeladen!"
445
+
446
+ #: This is a public channel.
447
+ msgid "invite_public_channel"
448
+ msgstr "Dies ist ein öffentlicher Kanal."
449
+
450
+ #: Only invited users can join.
451
+ msgid "invite_private_channel"
452
+ msgstr "Nur eingeladene Benutzer können teilnehmen."
453
+
454
+ #: Only allow invited users
455
+ msgid "invite_set_private"
456
+ msgstr "Nur eingeladene Benutzer zulassen"
457
+
458
+ #: Allow anybody to join
459
+ msgid "invite_set_public"
460
+ msgstr "Erlaube jedem mitzumachen"
461
+
462
+ #: Only registered users can join
463
+ msgid "invite_registered_only"
464
+ msgstr "Nur registrierte Benutzer können beitreten"
465
+
466
+ #: Add invite
467
+ msgid "invite_add_invite"
468
+ msgstr "Einladung hinzufügen"
469
+
470
+ #: (Any registered user)
471
+ msgid "invite_any_registered"
472
+ msgstr "(Jeder registrierte Benutzer)"
473
+
474
+ #: Topic
475
+ msgid "channel_topic"
476
+ msgstr "Thematik"
477
+
478
+ #: Moderated chat
479
+ msgid "channel_moderated"
480
+ msgstr "Moderierter Channel"
481
+
482
+ #: Invite only
483
+ msgid "channel_invite"
484
+ msgstr "Nur mit Einladung"
485
+
486
+ #: Hide this channel from lists
487
+ msgid "channel_secret"
488
+ msgstr "Hide this channel from lists"
489
+
490
+ #: Only moderators can change the topic
491
+ msgid "channel_moderated_topic"
492
+ msgstr "Moderiertes Topic"
493
+
494
+ #: Block messages from outside this channel
495
+ msgid "channel_external"
496
+ msgstr "Blocke externe Nachrichten"
497
+
498
+ #: Click the refresh button to update the channel list
499
+ msgid "channel_list_fetch"
500
+ msgstr "Bestätige den Refresh-Button, um die Raumliste zu aktualisieren"
501
+
502
+ #: No channels found, try again later
503
+ msgid "channel_list_nonefound"
504
+ msgstr "Keine Räume gefunden, versuche es später noch einmal"
505
+
506
+ #: Welcome to Kiwi IRC! Select a channel on the left.
507
+ msgid "container_welcome"
508
+ msgstr "Willkommen bei Kiwi IRC!"
509
+
510
+ #: Show statebrowser
511
+ msgid "container_statebrowser"
512
+ msgstr "Status anzeigen"
513
+
514
+ #: Hide Topic
515
+ msgid "hide_topic"
516
+ msgstr "Thema verstecken"
517
+
518
+ #: Display Topic
519
+ msgid "display_topic"
520
+ msgstr "Thema anzeigen"
521
+
522
+ #: Channel Settings
523
+ msgid "channel_settings"
524
+ msgstr "Raumeinstellungen"
525
+
526
+ #: Join Channel
527
+ msgid "container_join"
528
+ msgstr "Betrete Channel"
529
+
530
+ #: Not Connected
531
+ msgid "container_notconnected"
532
+ msgstr "Nicht verbunden"
533
+
534
+ #: Private conversation with {{user}}
535
+ msgid "container_privmsg"
536
+ msgstr "Privater Chat mit"
537
+
538
+ #: Send a message...
539
+ msgid "input_placeholder"
540
+ msgstr "Schreibe eine Nachricht..."
541
+
542
+ #: Loading {{url}}...
543
+ msgid "media_loading"
544
+ msgstr "Lade {{url}}..."
545
+
546
+ #: Load previous messages
547
+ msgid "messages_load"
548
+ msgstr "Lade vorherige Nachrichten"
549
+
550
+ #: Loading previous messages...
551
+ msgid "messages_loading"
552
+ msgstr "Loading previous messages..."
553
+
554
+ #: Unread Messages
555
+ msgid "unread_messages"
556
+ msgstr "Ungelesene Nachrichten"
557
+
558
+ #: Reply in private
559
+ msgid "reply_in_private"
560
+ msgstr "Reply in private"
561
+
562
+ #: Server details
563
+ msgid "settings_server_details"
564
+ msgstr "Server Details"
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 "Andere Netzwerke auf diesem ZNC Account"
573
+
574
+ #: Your details
575
+ msgid "settings_your_details"
576
+ msgstr "Deine Details"
577
+
578
+ #: Nickname
579
+ msgid "settings_nickname"
580
+ msgstr "Spitzname"
581
+
582
+ #: Advanced
583
+ msgid "settings_advanced"
584
+ msgstr "Erweitert"
585
+
586
+ #: Encoding
587
+ msgid "settings_encoding"
588
+ msgstr "Kodierung"
589
+
590
+ #: Show Raw
591
+ msgid "settings_show_raw"
592
+ msgstr "Zeige Raw"
593
+
594
+ #: Direct websocket
595
+ msgid "settings_use_websocket"
596
+ msgstr "Direkter websocket"
597
+
598
+ #: Run commands when connected
599
+ msgid "settings_autorun"
600
+ msgstr "Führe Befehle nach dem Verbinden aus"
601
+
602
+ #: Danger Zone
603
+ msgid "settings_danger"
604
+ msgstr "Achtung Aufpassen"
605
+
606
+ #: Remove network
607
+ msgid "settings_remove"
608
+ msgstr "Entferne Netzwerk"
609
+
610
+ #: {{count}} person here
611
+ msgid "person"
612
+ msgstr "{{count}} user online"
613
+
614
+ #: {{count}} people here
615
+ msgid "person_plural"
616
+ msgstr "{{count}} user hier"
617
+
618
+ #: Filter users in channel
619
+ msgid "filter_users"
620
+ msgstr "Filter users in channel"
621
+
622
+ #: Reconnect to join {{channel}}
623
+ msgid "reconnect_channel"
624
+ msgstr "Rejoin {{channel}}"
625
+
626
+ #: Reconnect to {{network}} to start talking
627
+ msgid "reconnect_network"
628
+ msgstr "Verbinde erneut zu {{network}}"
629
+
630
+ #: Reconnect to continue talking with {{user}}
631
+ msgid "reconnect_query"
632
+ msgstr "Starte erneut Privat Chat mit {{user}}"
633
+
634
+ #: You are not currently connected!
635
+ msgid "not_connected"
636
+ msgstr "Du bist derzeit nicht verbunden!"
637
+
638
+ #: Connection settings
639
+ msgid "reconnect_settings"
640
+ msgstr "Verbindungseinstellungen"
641
+
642
+ #: We couldn't connect to that server :(
643
+ msgid "network_noconnect"
644
+ msgstr "Wir konnten keine Verbindung zu diesem Server herstellen :("
645
+
646
+ #: Connect To Network
647
+ msgid "network_connect"
648
+ msgstr "Verbinde zu Netzwerk"
649
+
650
+ #: Network Name
651
+ msgid "network_name"
652
+ msgstr "Network Name"
653
+
654
+ #: Close options
655
+ msgid "side_close"
656
+ msgstr "Schließen"
657
+
658
+ #: Channel options
659
+ msgid "side_options"
660
+ msgstr "Channel Einstellungen"
661
+
662
+ #: Your settings
663
+ msgid "side_settings"
664
+ msgstr "Deine Einstellungen"
665
+
666
+ #: Show when people join
667
+ msgid "side_joins"
668
+ msgstr "Zeige mir joins an"
669
+
670
+ #: Show when channel topic changes
671
+ msgid "side_topics"
672
+ msgstr "Veränderungen des Raumthemas anzeigen"
673
+
674
+ #: Show when users change their nicks
675
+ msgid "side_nick_changes"
676
+ msgstr "Namensänderungen anzeigen"
677
+
678
+ #: Show when users change channel modes
679
+ msgid "side_mode_changes"
680
+ msgstr "Veränderungen der \"Channel Modes\" anzeigen"
681
+
682
+ #: Extra message formatting
683
+ msgid "side_formatting"
684
+ msgstr "Nachrichten Formatierung"
685
+
686
+ #: Nick colours in the list"
687
+ msgid "side_colours"
688
+ msgstr "Bunte Nicknamen"
689
+
690
+ #: No buffer set
691
+ msgid "side_buffer"
692
+ msgstr "Kein buffer gesetzt"
693
+
694
+ #: There is no topic for this channel
695
+ msgid "no_topic_set"
696
+ msgstr "Es gibt kein Thema in diesem Channel"
697
+
698
+ #: About
699
+ msgid "about"
700
+ msgstr "Über"
701
+
702
+ #: Created at {{when}}
703
+ msgid "created_at"
704
+ msgstr "Erstellt am {{when}}"
705
+
706
+ #: Highlights
707
+ msgid "highlights"
708
+ msgstr "Höhepunkte"
709
+
710
+ #: Nobody has mentioned you yet...
711
+ msgid "nobody_mentioned_you"
712
+ msgstr "Bisher hat dich niemand erwähnt.."
713
+
714
+ #: There was an error starting Kiwi IRC :(
715
+ msgid "error_starting"
716
+ msgstr "Es ist ein Fehler aufgetreten beim Starten von Kiwi IRC :("
717
+
718
+ #: Make sure you have installed Kiwi IRC correctly and the configurartion can be loaded
719
+ msgid "error_installed"
720
+ msgstr "Stelle sicher das du Kiwi IRC korrekt installiert hast und die Konfigurationsdateien geladen werden können"
721
+
722
+ #: Leave {{name}}
723
+ msgid "state_leave"
724
+ msgstr "Verlasse {{name}}"
725
+
726
+ #: Your account
727
+ msgid "state_account"
728
+ msgstr "Dein Account"
729
+
730
+ #: Your settings and networks will be remembered on this computer.
731
+ msgid "state_remembered"
732
+ msgstr "Deine Einstellungen und Netzwerke werden auf diesem Computer gespeichert."
733
+
734
+ #: Forget me
735
+ msgid "state_forget"
736
+ msgstr "Vergiss mich"
737
+
738
+ #: No networks here yet.
739
+ msgid "state_network"
740
+ msgstr "Noch keine Netzwerke vorhanden"
741
+
742
+ #: Add one?
743
+ msgid "state_add"
744
+ msgstr "Hinzufügen?"
745
+
746
+ #: Available networks
747
+ msgid "state_available"
748
+ msgstr "Verfügbare Netzwerke"
749
+
750
+ #: Add Network
751
+ msgid "add_network"
752
+ msgstr "Netzwerk hinzufügen"
753
+
754
+ #: New Network
755
+ msgid "new_network"
756
+ msgstr "Neues Netzwerk"
757
+
758
+ #: No Network
759
+ msgid "no_network"
760
+ msgstr "Kein Netzwerk"
761
+
762
+ #: Configure network
763
+ msgid "state_configure"
764
+ msgstr "Konfiguriere Netzwerk"
765
+
766
+ #: Not connected.
767
+ msgid "state_disconnected"
768
+ msgstr "Nicht verbunden."
769
+
770
+ #: Join new #channel
771
+ msgid "state_join"
772
+ msgstr "Betrete #channel"
773
+
774
+ #: Filter Channels
775
+ msgid "filter_channels"
776
+ msgstr "Räume filtern"
777
+
778
+ #: Find More Channels
779
+ msgid "find_more_channels"
780
+ msgstr "Find More Channels"
781
+
782
+ #: Really leave the channel?
783
+ msgid "prompt_leave_channel"
784
+ msgstr "Den Raum wirklich verlassen?"
785
+
786
+ #: Really close all messages?
787
+ msgid "prompt_close_queries"
788
+ msgstr "Really close all messages?"
789
+
790
+ #: Really close this chat?
791
+ msgid "prompt_close_query"
792
+ msgstr "Really close this chat?"
793
+
794
+ #: Change nick
795
+ msgid "change_nick"
796
+ msgstr "Ändere Nickname"
797
+
798
+ #: Enter new nickname...
799
+ msgid "enter_new_nick"
800
+ msgstr "Neuen Spitznamen eingeben ..."
801
+
802
+ #: This is you!
803
+ msgid "user_you"
804
+ msgstr "Das bist du!"
805
+
806
+ #: Account name: {{user}}
807
+ msgid "user_account"
808
+ msgstr "Kontobezeichnung: {{user}}"
809
+
810
+ #: Real name: {{realname}}
811
+ msgid "user_realname"
812
+ msgstr "Realname: {{realname}}"
813
+
814
+ #: Is a bot
815
+ msgid "user_bot"
816
+ msgstr "Ist ein Bot"
817
+
818
+ #: Is available for help
819
+ msgid "user_help"
820
+ msgstr "Ist verfügbar für Hilfe"
821
+
822
+ #: Is an operator
823
+ msgid "user_op"
824
+ msgstr "Ist ein Op"
825
+
826
+ #: Connected to {{server}} {{info}}
827
+ msgid "user_server"
828
+ msgstr "Verbunden mit {{server}} {{info}}"
829
+
830
+ #: Securely connected via SSL/TLS
831
+ msgid "user_secure"
832
+ msgstr "Sicher verbunden mit SSL/TLS"
833
+
834
+ #: In channels {{channels}}
835
+ msgid "user_channels"
836
+ msgstr "Im Channel"
837
+
838
+ #: Access level
839
+ msgid "user_access"
840
+ msgstr "Zugriffslevel"
841
+
842
+ #: Normal
843
+ msgid "user_normal"
844
+ msgstr "Normal"
845
+
846
+ #: Kick from the channel
847
+ msgid "user_kick"
848
+ msgstr "Kick aus Channel"
849
+
850
+ #: Ban from the channel
851
+ msgid "user_ban"
852
+ msgstr "Bann vom Channel"
853
+
854
+ #: Ban and kick from the channel
855
+ msgid "user_kickban"
856
+ msgstr "Kick+Bann vom Channel"
857
+
858
+ #: Select a Channel
859
+ msgid "select_channel"
860
+ msgstr "Select a Channel"
861
+
862
+ #: Invite User
863
+ msgid "invite_user"
864
+ msgstr "Invite User"
865
+
866
+ #: Please specify a channel to join. eg /join #example
867
+ msgid "error_no_channel_join"
868
+ msgstr "Bitte gebe einen Channel an, welchen du betreten möchstest: z.B. /join #beispiel"
869
+
870
+ #: The nickname '{{nick}}' is already in use!
871
+ msgid "error_nick_in_use"
872
+ msgstr "The nickname '{{nick}}' is already in use!"
873
+
874
+ #: The nickname '{{nick}}' is invalid!
875
+ msgid "error_nick_invalid"
876
+ msgstr "The nickname '{{nick}}' is invalid!"
877
+
878
+ #: You must enter a new nickname
879
+ msgid "error_empty_nick"
880
+ msgstr "Sie müssen einen neuen Spitznamen eingeben"
881
+
882
+ #: Nickname must not start with a number
883
+ msgid "error_no_number"
884
+ msgstr "Der Spitzname darf nicht mit einer Nummer beginnen"
885
+
886
+ #: Unexpected error occurred
887
+ msgid "error_unexpected"
888
+ msgstr "Unexpected error occurred"
889
+
890
+ #: {{nick}} gives ops to {{target}}
891
+ msgid "modes_give_ops"
892
+ msgstr "{{nick}} ernennt {{target}} zum Operator"
893
+
894
+ #: {{nick}} takes ops from {{target}}
895
+ msgid "modes_take_ops"
896
+ msgstr "{{nick}} entfernt Operator-Rechte von {{target}} "
897
+
898
+ #: {{nick}} gives half-ops to {{target}}
899
+ msgid "modes_give_halfops"
900
+ msgstr "{{nick}} gibt Half-Op an {{target}}"
901
+
902
+ #: {{nick}} takes half-ops from {{target}}
903
+ msgid "modes_take_halfops"
904
+ msgstr "{{nick}} nimmt Half-Op von {{target}}"
905
+
906
+ #: {{nick}} gives voice to {{target}}
907
+ msgid "modes_give_voice"
908
+ msgstr "{{nick}} gibt voice an {{target}}"
909
+
910
+ #: {{nick}} takes voice from {{target}}
911
+ msgid "modes_take_voice"
912
+ msgstr "{{nick}} nimmt voice von {{target}}"
913
+
914
+ #: {{nick}} gives admin to {{target}}
915
+ msgid "modes_give_admin"
916
+ msgstr "{{nick}} gibt Admin-Rechte an {{target}}"
917
+
918
+ #: {{nick}} takes admin from {{target}}
919
+ msgid "modes_take_admin"
920
+ msgstr "{{nick}} nimmt Admin-Rechte von {{target}}"
921
+
922
+ #: {{nick}} gives owner to {{target}}
923
+ msgid "modes_give_owner"
924
+ msgstr "{{nick}} gibt Owner-Rechte an {{target}}"
925
+
926
+ #: {{nick}} takes owner from {{target}}
927
+ msgid "modes_take_owner"
928
+ msgstr "{{nick}} nimmt Owner-Rechte von {{target}}"
929
+
930
+ #: {{nick}} has banned {{target}}
931
+ msgid "modes_gives_ban"
932
+ msgstr "{{nick}} hat {{target}} gebannt"
933
+
934
+ #: {{nick}} has unbanned {{target}}
935
+ msgid "modes_takes_ban"
936
+ msgstr "{{nick}} hat den Bann von {{target}} aufgehoben"
937
+
938
+ #: {{nick}} sets {{mode}} on {{target}}
939
+ msgid "modes_other"
940
+ msgstr "{{nick}} setzt {{mode}} auf {{target}}"
941
+
942
+ #: Send a message
943
+ msgid "command_msg"
944
+ msgstr "Eine Nachricht senden"
945
+
946
+ #: Do something physical
947
+ msgid "command_action"
948
+ msgstr "Mach etwas körperliches"
949
+
950
+ #: Join a channel
951
+ msgid "command_join"
952
+ msgstr "Einen Channel betreten"
953
+
954
+ #: Leave a channel
955
+ msgid "command_part"
956
+ msgstr "Einen Channel verlassen"
957
+
958
+ #: Leave, then re-join a channel
959
+ msgid "command_cycle"
960
+ msgstr "den Channel verlassen und neu betreten"
961
+
962
+ #: Change your nickname
963
+ msgid "command_nick"
964
+ msgstr "Ändere deinen Nicknamen"
965
+
966
+ #: Start a private conversation with someone
967
+ msgid "command_query"
968
+ msgstr "Starte eine Private Unterhaltung mit jemandem"
969
+
970
+ #: Invite somebody into the channel
971
+ msgid "command_invite"
972
+ msgstr "Lade jemand in diesen Channel ein"
973
+
974
+ #: Set the topic for this channel
975
+ msgid "command_topic"
976
+ msgstr "Setze ein Thema für diesen Channel"
977
+
978
+ #: Send a notice
979
+ msgid "command_notice"
980
+ msgstr "Sende eine Notiz"
981
+
982
+ #: Send a raw command to the IRC server
983
+ msgid "command_quote"
984
+ msgstr "Sende eine Raw-Nachricht an den IRC Server"
985
+
986
+ #: Kick somebody from the channel
987
+ msgid "command_kick"
988
+ msgstr "Kicke jemanden aus dem Channel"
989
+
990
+ #: Clear all messages from this window
991
+ msgid "command_clear"
992
+ msgstr "Alle Nachrichten aus diesem Fenster löschen"
993
+
994
+ #: Send a CTCP command to somebody
995
+ msgid "command_ctcp"
996
+ msgstr "Sende einen CTCP-Befehl an jemanden"
997
+
998
+ #: Disconnect from the IRC server
999
+ msgid "command_quit"
1000
+ msgstr "Vom IRC Server trennen"
1001
+
1002
+ #: Connect to a new IRC network
1003
+ msgid "command_server"
1004
+ msgstr "Stellen Sie eine Verbindung zu einem neuen IRC-Netzwerk her"
1005
+
1006
+ #: Request information on somebody
1007
+ msgid "command_whois"
1008
+ msgstr "Informationen zu jemandem anfordern"
1009
+
1010
+ #: Request information on somebody that disconnected recently
1011
+ msgid "command_whowas"
1012
+ msgstr "Fordere Informationen zu jemandem an, der kürzlich die Verbindung getrennt hat"
1013
+
1014
+ #: Set yourself as away
1015
+ msgid "command_away"
1016
+ msgstr "Dich als Abwesend markieren"
1017
+
1018
+ #: Set yourself as active
1019
+ msgid "command_back"
1020
+ msgstr "Deinen Status auf aktiv ändern"
1021
+
1022
+ #: Change your connection encoding
1023
+ msgid "command_encoding"
1024
+ msgstr "Ändere das Encoding deiner Verbindung"
1025
+
1026
+ #: Ignore messages from somebody
1027
+ msgid "command_ignore"
1028
+ msgstr "Nachrichten einer Person ignorieren"
1029
+
1030
+ #: Stop ignoring somebody
1031
+ msgid "command_unignore"
1032
+ msgstr "Hör auf, jemanden zu ignorieren"
1033
+
1034
+ #: Roll a Dice
1035
+ msgid "command_dice"
1036
+ msgstr "Einen Würfel werfen"
1037
+
1038
+ #: Rolls a {{sides}} sided dice and gets {{number}}
1039
+ msgid "dice_roll"
1040
+ msgstr "Wirft einen {{sides}}-seitigen Würfel und bekommt die Zahl {{number}}"
1041
+
1042
+ #: You were mentioned in {{channel}}
1043
+ msgid "notification_mentioned"
1044
+ msgstr "You were mentioned in {{channel}}"
1045
+
1046
+ #: Your IRC client
1047
+ msgid "personal_client"
1048
+ msgstr "Dein IRC-Client"
1049
+
1050
+ #: Add your networks. Join your channels.
1051
+ msgid "personal_addjoin"
1052
+ msgstr "Füge Netzwerke hinzu. Betrete Channels"
1053
+
1054
+ #: They will be here when you come back.
1055
+ msgid "personal_return"
1056
+ msgstr "Sie werden für den nächsten Besuch gespeichert"
1057
+
1058
+ #: Add a Network
1059
+ msgid "personal_add"
1060
+ msgstr "Füge Netzwerk hinzu"
1061
+
1062
+ #: You are trying to connect to {{network}}
1063
+ msgid "personal_connect_to"
1064
+ msgstr "Sie versuchen, eine Verbindung zum {{network}} herzustellen"
1065
+
1066
+ #: Network has been added to your existing Kiwi window.
1067
+ msgid "personal_added_to_existing"
1068
+ msgstr "Das Netzwerk wurde Ihrem vorhandenen Kiwi-Fenster hinzugefügt."
1069
+
1070
+ #: Add network to existing Kiwi window
1071
+ msgid "personal_add_existing_tab"
1072
+ msgstr "Netzwerk zum vorhandenen Kiwi-Fenster hinzufügen"
1073
+
1074
+ #: Temporarily connect to this network
1075
+ msgid "personal_connect_temporary"
1076
+ msgstr "Stellen Sie vorübergehend eine Verbindung zu diesem Netzwerk her"
1077
+
1078
+ #: Saved networks
1079
+ msgid "personal_saved"
1080
+ msgstr "Gespeicherte Netzwerke"
1081
+
1082
+ #: Kiwi IRC (next gen) - Rizon preview
1083
+ msgid "rizon_title"
1084
+ msgstr "Kiwi IRC (nächste Generation) - Rizon Vorschau"
1085
+
1086
+ #: Direct websockets. No Kiwi server or webirc involved.
1087
+ msgid "rizon_websockets"
1088
+ msgstr "Direkt Websockets. Ohne Kiwi Server oder webirc."
1089
+
1090
+ #: (Thanks to Adam @Rizon for the development websocket server support!)
1091
+ msgid "rizon_thanks"
1092
+ msgstr "(Danke an Adam @Rizon für die Entwicklung der Websocket Server Unterstützung!)"
1093
+
1094
+ #: Give the developer version of Kiwi IRC a try!
1095
+ msgid "rizon_dev"
1096
+ msgstr "Probieren Sie die Entwicklerversion von Kiwi IRC aus!"
1097
+
1098
+ #: Disconnected
1099
+ msgid "disconnected"
1100
+ msgstr "Verbindung getrennt"
1101
+
1102
+ #: Connected to {{network}}!
1103
+ msgid "connected_to"
1104
+ msgstr "Verbunden mit {{network}}!"
1105
+
1106
+ #: {{nick}} has joined
1107
+ msgid "has_joined"
1108
+ msgstr "{{nick}} hat den Raum betreten"
1109
+
1110
+ #: {{nick}} kicked you from {{channel}}
1111
+ msgid "kicked_you_from"
1112
+ msgstr "{{nick}} hat dich aus {{channel}} gekickt"
1113
+
1114
+ #: {{nick}} was kicked from {{channel}} by {{chanop}}
1115
+ msgid "was_kicked_from"
1116
+ msgstr "{{nick}} wurde von {{chanop}} aus {{channel}} gekickt"
1117
+
1118
+ #: {{nick}} has left
1119
+ msgid "has_left"
1120
+ msgstr "{{nick}} hat den Raum verlassen"
1121
+
1122
+ #: {{nick}} invited you to join {{channel}}
1123
+ msgid "invited_you"
1124
+ msgstr "{{nick}} hat dich dazu eingeladen, {{channel}} zu betreten"
1125
+
1126
+ #: {{nick}} invited {{invited}} to join {{channel}}
1127
+ msgid "invited_other"
1128
+ msgstr "{{nick}} invited {{invited}} to join {{channel}}"
1129
+
1130
+ #: You invited {{invited}} to join {{channel}}
1131
+ msgid "invited_inviter"
1132
+ msgstr "You invited {{invited}} to join {{channel}}"
1133
+
1134
+ #: Nickname {{nick}} is already in use. Trying {{newnick}}...
1135
+ msgid "nick_in_use_retrying"
1136
+ msgstr "Der Nickname {{nick}}} wird bereits verwendet. Versuche {{newnick}}}....."
1137
+
1138
+ #: {{nick}} is now known as {{newnick}}
1139
+ msgid "now_known_as"
1140
+ msgstr "{{nick}} ist jetzt als {{newnick}} bekannt."
1141
+
1142
+ #: {{nick}} changed the topic to: {{topic}}
1143
+ msgid "changed_topic_to"
1144
+ msgstr "{{nick}} hat das Thema geändert zu: {{topic}}"
1145
+