omegga 0.1.85 → 1.0.2

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 (467) hide show
  1. package/README.md +142 -62
  2. package/bin/omegga +10 -4
  3. package/dist/brickadia/config.d.ts +3 -0
  4. package/dist/brickadia/config.d.ts.map +1 -0
  5. package/dist/brickadia/config.js +61 -0
  6. package/dist/brickadia/config.js.map +1 -0
  7. package/dist/brickadia/presets.d.ts +65 -0
  8. package/dist/brickadia/presets.js +3 -0
  9. package/dist/brickadia/presets.js.map +1 -0
  10. package/dist/brickadia/server.d.ts +20 -0
  11. package/dist/brickadia/server.d.ts.map +1 -0
  12. package/dist/brickadia/server.js +188 -0
  13. package/dist/brickadia/server.js.map +1 -0
  14. package/dist/brickadia/types.d.ts +45 -0
  15. package/dist/brickadia/types.d.ts.map +1 -0
  16. package/dist/brickadia/types.js +3 -0
  17. package/dist/brickadia/types.js.map +1 -0
  18. package/dist/cli/auth.d.ts +20 -0
  19. package/dist/cli/auth.d.ts.map +1 -0
  20. package/dist/cli/auth.js +115 -0
  21. package/dist/cli/auth.js.map +1 -0
  22. package/dist/cli/config.d.ts +10 -0
  23. package/dist/cli/config.d.ts.map +1 -0
  24. package/dist/cli/config.js +72 -0
  25. package/dist/cli/config.js.map +1 -0
  26. package/dist/cli/index.d.ts +20 -0
  27. package/dist/cli/index.d.ts.map +1 -0
  28. package/dist/cli/index.js +15 -0
  29. package/dist/cli/index.js.map +1 -0
  30. package/dist/cli/installer.d.ts +1 -0
  31. package/dist/cli/installer.d.ts.map +1 -0
  32. package/dist/cli/installer.js +55 -0
  33. package/dist/cli/installer.js.map +1 -0
  34. package/dist/cli/plugin.d.ts +11 -0
  35. package/dist/cli/plugin.d.ts.map +1 -0
  36. package/dist/cli/plugin.js +598 -0
  37. package/dist/cli/plugin.js.map +1 -0
  38. package/dist/cli/terminal.d.ts +34 -0
  39. package/dist/cli/terminal.d.ts.map +1 -0
  40. package/dist/cli/terminal.js +395 -0
  41. package/dist/cli/terminal.js.map +1 -0
  42. package/dist/config/authorizer.d.ts +2 -0
  43. package/dist/config/authorizer.d.ts.map +1 -0
  44. package/dist/config/authorizer.js +38 -0
  45. package/dist/config/authorizer.js.map +1 -0
  46. package/dist/config/formats/format_js.d.ts +3 -0
  47. package/dist/config/formats/format_js.d.ts.map +1 -0
  48. package/dist/config/formats/format_js.js +10 -0
  49. package/dist/config/formats/format_js.js.map +1 -0
  50. package/dist/config/formats/format_yml.d.ts +3 -0
  51. package/dist/config/formats/format_yml.d.ts.map +1 -0
  52. package/dist/config/formats/format_yml.js +14 -0
  53. package/dist/config/formats/format_yml.js.map +1 -0
  54. package/dist/config/index.d.ts +18 -0
  55. package/dist/config/index.d.ts.map +1 -0
  56. package/dist/config/index.js +86 -0
  57. package/dist/config/index.js.map +1 -0
  58. package/dist/config/reader.d.ts +3 -0
  59. package/dist/config/reader.d.ts.map +1 -0
  60. package/dist/config/reader.js +30 -0
  61. package/dist/config/reader.js.map +1 -0
  62. package/dist/config/types.d.ts +37 -0
  63. package/dist/config/types.d.ts.map +1 -0
  64. package/dist/config/types.js +3 -0
  65. package/dist/config/types.js.map +1 -0
  66. package/dist/config/validator.d.ts +6 -0
  67. package/dist/config/validator.d.ts.map +1 -0
  68. package/dist/config/validator.js +26 -0
  69. package/dist/config/validator.js.map +1 -0
  70. package/dist/config/writer.d.ts +3 -0
  71. package/dist/config/writer.d.ts.map +1 -0
  72. package/dist/config/writer.js +25 -0
  73. package/dist/config/writer.js.map +1 -0
  74. package/dist/index.d.ts +22 -0
  75. package/dist/index.js +55 -0
  76. package/dist/index.js.map +1 -0
  77. package/dist/info/default_commands.json +28 -0
  78. package/dist/lib.d.ts +21 -0
  79. package/dist/lib.d.ts.map +1 -0
  80. package/dist/lib.js +54 -0
  81. package/dist/lib.js.map +1 -0
  82. package/dist/logger.d.ts +41 -0
  83. package/dist/logger.js +67 -0
  84. package/dist/logger.js.map +1 -0
  85. package/dist/main.d.ts +1 -0
  86. package/dist/main.d.ts.map +1 -0
  87. package/dist/main.js +284 -0
  88. package/dist/main.js.map +1 -0
  89. package/dist/omegga/auth.d.ts +6 -0
  90. package/dist/omegga/auth.d.ts.map +1 -0
  91. package/dist/omegga/auth.js +139 -0
  92. package/dist/omegga/auth.js.map +1 -0
  93. package/dist/omegga/commandInjector.d.ts +35 -0
  94. package/dist/omegga/commandInjector.d.ts.map +1 -0
  95. package/dist/omegga/commandInjector.js +234 -0
  96. package/dist/omegga/commandInjector.js.map +1 -0
  97. package/dist/omegga/index.d.ts +7 -0
  98. package/dist/omegga/index.d.ts.map +1 -0
  99. package/dist/omegga/index.js +43 -0
  100. package/dist/omegga/index.js.map +1 -0
  101. package/dist/omegga/logWrangler.d.ts +32 -0
  102. package/dist/omegga/logWrangler.d.ts.map +1 -0
  103. package/dist/omegga/logWrangler.js +279 -0
  104. package/dist/omegga/logWrangler.js.map +1 -0
  105. package/dist/omegga/matchers/auth.d.ts +9 -0
  106. package/dist/omegga/matchers/auth.d.ts.map +1 -0
  107. package/dist/omegga/matchers/auth.js +53 -0
  108. package/dist/omegga/matchers/auth.js.map +1 -0
  109. package/dist/omegga/matchers/chat.d.ts +9 -0
  110. package/dist/omegga/matchers/chat.d.ts.map +1 -0
  111. package/dist/omegga/matchers/chat.js +68 -0
  112. package/dist/omegga/matchers/chat.js.map +1 -0
  113. package/dist/omegga/matchers/command.d.ts +7 -0
  114. package/dist/omegga/matchers/command.d.ts.map +1 -0
  115. package/dist/omegga/matchers/command.js +39 -0
  116. package/dist/omegga/matchers/command.js.map +1 -0
  117. package/dist/omegga/matchers/exit.d.ts +3 -0
  118. package/dist/omegga/matchers/exit.d.ts.map +1 -0
  119. package/dist/omegga/matchers/exit.js +21 -0
  120. package/dist/omegga/matchers/exit.js.map +1 -0
  121. package/dist/omegga/matchers/index.d.ts +3 -0
  122. package/dist/omegga/matchers/index.d.ts.map +1 -0
  123. package/dist/omegga/matchers/index.js +39 -0
  124. package/dist/omegga/matchers/index.js.map +1 -0
  125. package/dist/omegga/matchers/init.d.ts +3 -0
  126. package/dist/omegga/matchers/init.d.ts.map +1 -0
  127. package/dist/omegga/matchers/init.js +26 -0
  128. package/dist/omegga/matchers/init.js.map +1 -0
  129. package/dist/omegga/matchers/interact.d.ts +4 -0
  130. package/dist/omegga/matchers/interact.js +39 -0
  131. package/dist/omegga/matchers/interact.js.map +1 -0
  132. package/dist/omegga/matchers/join.d.ts +4 -0
  133. package/dist/omegga/matchers/join.d.ts.map +1 -0
  134. package/dist/omegga/matchers/join.js +95 -0
  135. package/dist/omegga/matchers/join.js.map +1 -0
  136. package/dist/omegga/matchers/leave.d.ts +4 -0
  137. package/dist/omegga/matchers/leave.d.ts.map +1 -0
  138. package/dist/omegga/matchers/leave.js +59 -0
  139. package/dist/omegga/matchers/leave.js.map +1 -0
  140. package/dist/omegga/matchers/mapChange.d.ts +3 -0
  141. package/dist/omegga/matchers/mapChange.d.ts.map +1 -0
  142. package/dist/omegga/matchers/mapChange.js +38 -0
  143. package/dist/omegga/matchers/mapChange.js.map +1 -0
  144. package/dist/omegga/matchers/types.d.ts +5 -0
  145. package/dist/omegga/matchers/types.d.ts.map +1 -0
  146. package/dist/omegga/matchers/types.js +7 -0
  147. package/dist/omegga/matchers/types.js.map +1 -0
  148. package/dist/omegga/matchers/version.d.ts +3 -0
  149. package/dist/omegga/matchers/version.d.ts.map +1 -0
  150. package/dist/omegga/matchers/version.js +45 -0
  151. package/dist/omegga/matchers/version.js.map +1 -0
  152. package/dist/omegga/player.d.ts +71 -0
  153. package/dist/omegga/player.d.ts.map +1 -0
  154. package/dist/omegga/player.js +442 -0
  155. package/dist/omegga/player.js.map +1 -0
  156. package/dist/omegga/plugin/plugin_jsonrpc_stdio.d.ts +23 -0
  157. package/dist/omegga/plugin/plugin_jsonrpc_stdio.d.ts.map +1 -0
  158. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js +441 -0
  159. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js.map +1 -0
  160. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.d.ts +129 -0
  161. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.d.ts.map +1 -0
  162. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js +260 -0
  163. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js.map +1 -0
  164. package/dist/omegga/plugin/plugin_node_safe/worker.d.ts +1 -0
  165. package/dist/omegga/plugin/plugin_node_safe/worker.d.ts.map +1 -0
  166. package/dist/omegga/plugin/plugin_node_safe/worker.js +289 -0
  167. package/dist/omegga/plugin/plugin_node_safe/worker.js.map +1 -0
  168. package/dist/omegga/plugin/plugin_node_safe.d.ts +24 -0
  169. package/dist/omegga/plugin/plugin_node_safe.d.ts.map +1 -0
  170. package/dist/omegga/plugin/plugin_node_safe.js +397 -0
  171. package/dist/omegga/plugin/plugin_node_safe.js.map +1 -0
  172. package/dist/omegga/plugin/plugin_node_unsafe.d.ts +13 -0
  173. package/dist/omegga/plugin/plugin_node_unsafe.d.ts.map +1 -0
  174. package/dist/omegga/plugin/plugin_node_unsafe.js +178 -0
  175. package/dist/omegga/plugin/plugin_node_unsafe.js.map +1 -0
  176. package/dist/omegga/plugin.d.ts +86 -0
  177. package/dist/omegga/plugin.d.ts.map +1 -0
  178. package/dist/omegga/plugin.js +458 -0
  179. package/dist/omegga/plugin.js.map +1 -0
  180. package/dist/omegga/server.d.ts +149 -0
  181. package/dist/omegga/server.d.ts.map +1 -0
  182. package/dist/omegga/server.js +601 -0
  183. package/dist/omegga/server.js.map +1 -0
  184. package/dist/omegga/types.d.ts +48 -0
  185. package/dist/omegga/types.d.ts.map +1 -0
  186. package/dist/omegga/types.js +3 -0
  187. package/dist/omegga/types.js.map +1 -0
  188. package/dist/omegga/wrapper.d.ts +22 -0
  189. package/dist/omegga/wrapper.d.ts.map +1 -0
  190. package/dist/omegga/wrapper.js +75 -0
  191. package/dist/omegga/wrapper.js.map +1 -0
  192. package/dist/omeggaplugin.d.ts +1 -0
  193. package/dist/omeggaplugin.js +4 -0
  194. package/dist/omeggaplugin.js.map +1 -0
  195. package/dist/plugin.d.ts +781 -0
  196. package/dist/plugin.js +41 -0
  197. package/dist/plugin.js.map +1 -0
  198. package/dist/softconfig.d.ts +51 -0
  199. package/dist/softconfig.d.ts.map +1 -0
  200. package/dist/softconfig.js +82 -0
  201. package/dist/softconfig.js.map +1 -0
  202. package/dist/util/brick/checkBounds.d.ts +8 -0
  203. package/dist/util/brick/checkBounds.d.ts.map +1 -0
  204. package/dist/util/brick/checkBounds.js +22 -0
  205. package/dist/util/brick/checkBounds.js.map +1 -0
  206. package/dist/util/brick/constants.d.ts +18 -0
  207. package/dist/util/brick/constants.d.ts.map +1 -0
  208. package/dist/util/brick/constants.js +184 -0
  209. package/dist/util/brick/constants.js.map +1 -0
  210. package/dist/util/brick/getBounds.d.ts +4 -0
  211. package/dist/util/brick/getBounds.d.ts.map +1 -0
  212. package/dist/util/brick/getBounds.js +39 -0
  213. package/dist/util/brick/getBounds.js.map +1 -0
  214. package/dist/util/brick/getBrickSize.d.ts +3 -0
  215. package/dist/util/brick/getBrickSize.d.ts.map +1 -0
  216. package/dist/util/brick/getBrickSize.js +12 -0
  217. package/dist/util/brick/getBrickSize.js.map +1 -0
  218. package/dist/util/brick/getScaleAxis.d.ts +3 -0
  219. package/dist/util/brick/getScaleAxis.d.ts.map +1 -0
  220. package/dist/util/brick/getScaleAxis.js +38 -0
  221. package/dist/util/brick/getScaleAxis.js.map +1 -0
  222. package/dist/util/brick/index.d.ts +13 -0
  223. package/dist/util/brick/index.d.ts.map +1 -0
  224. package/dist/util/brick/index.js +29 -0
  225. package/dist/util/brick/index.js.map +1 -0
  226. package/dist/util/brick/rotate.d.ts +17 -0
  227. package/dist/util/brick/rotate.d.ts.map +1 -0
  228. package/dist/util/brick/rotate.js +38 -0
  229. package/dist/util/brick/rotate.js.map +1 -0
  230. package/dist/util/brick/setOwnership.d.ts +12 -0
  231. package/dist/util/brick/setOwnership.d.ts.map +1 -0
  232. package/dist/util/brick/setOwnership.js +21 -0
  233. package/dist/util/brick/setOwnership.js.map +1 -0
  234. package/dist/util/chat.d.ts +23 -0
  235. package/dist/util/chat.d.ts.map +1 -0
  236. package/dist/util/chat.js +50 -0
  237. package/dist/util/chat.js.map +1 -0
  238. package/dist/util/color.d.ts +13 -0
  239. package/dist/util/color.d.ts.map +1 -0
  240. package/dist/util/color.js +130 -0
  241. package/dist/util/color.js.map +1 -0
  242. package/dist/util/file.d.ts +5 -0
  243. package/dist/util/file.d.ts.map +1 -0
  244. package/dist/util/file.js +114 -0
  245. package/dist/util/file.js.map +1 -0
  246. package/dist/util/index.d.ts +162 -0
  247. package/dist/util/index.d.ts.map +1 -0
  248. package/dist/util/index.js +92 -0
  249. package/dist/util/index.js.map +1 -0
  250. package/dist/util/map.d.ts +6 -0
  251. package/dist/util/map.d.ts.map +1 -0
  252. package/dist/util/map.js +26 -0
  253. package/dist/util/map.js.map +1 -0
  254. package/dist/util/pattern.d.ts +1 -0
  255. package/dist/util/pattern.d.ts.map +1 -0
  256. package/dist/util/pattern.js +11 -0
  257. package/dist/util/pattern.js.map +1 -0
  258. package/dist/util/time.d.ts +4 -0
  259. package/dist/util/time.d.ts.map +1 -0
  260. package/dist/util/time.js +41 -0
  261. package/dist/util/time.js.map +1 -0
  262. package/dist/util/uuid.d.ts +2 -0
  263. package/dist/util/uuid.d.ts.map +1 -0
  264. package/dist/util/uuid.js +8 -0
  265. package/dist/util/uuid.js.map +1 -0
  266. package/dist/util/wsl.d.ts +1 -0
  267. package/dist/util/wsl.d.ts.map +1 -0
  268. package/dist/util/wsl.js +14 -0
  269. package/dist/util/wsl.js.map +1 -0
  270. package/dist/webserver/backend/api.d.ts +3 -0
  271. package/dist/webserver/backend/api.d.ts.map +1 -0
  272. package/dist/webserver/backend/api.js +685 -0
  273. package/dist/webserver/backend/api.js.map +1 -0
  274. package/dist/webserver/backend/calendar.d.ts +5 -0
  275. package/dist/webserver/backend/calendar.d.ts.map +1 -0
  276. package/dist/webserver/backend/calendar.js +21 -0
  277. package/dist/webserver/backend/calendar.js.map +1 -0
  278. package/dist/webserver/backend/database.d.ts +149 -0
  279. package/dist/webserver/backend/database.d.ts.map +1 -0
  280. package/dist/webserver/backend/database.js +575 -0
  281. package/dist/webserver/backend/database.js.map +1 -0
  282. package/dist/webserver/backend/index.d.ts +31 -0
  283. package/dist/webserver/backend/index.d.ts.map +1 -0
  284. package/dist/webserver/backend/index.js +189 -0
  285. package/dist/webserver/backend/index.js.map +1 -0
  286. package/dist/webserver/backend/metrics.d.ts +3 -0
  287. package/dist/webserver/backend/metrics.d.ts.map +1 -0
  288. package/dist/webserver/backend/metrics.js +203 -0
  289. package/dist/webserver/backend/metrics.js.map +1 -0
  290. package/dist/webserver/backend/types.d.ts +115 -0
  291. package/dist/webserver/backend/types.d.ts.map +1 -0
  292. package/dist/webserver/backend/types.js +3 -0
  293. package/dist/webserver/backend/types.js.map +1 -0
  294. package/dist/webserver/backend/util.d.ts +2 -0
  295. package/dist/webserver/backend/util.d.ts.map +1 -0
  296. package/dist/webserver/backend/util.js +78 -0
  297. package/dist/webserver/backend/util.js.map +1 -0
  298. package/dist/webserver/index.d.ts +2 -0
  299. package/dist/webserver/index.d.ts.map +1 -0
  300. package/dist/webserver/index.js +9 -0
  301. package/dist/webserver/index.js.map +1 -0
  302. package/{src/webserver/frontend → frontend}/app.html +0 -0
  303. package/{src/webserver/frontend → frontend}/assets/fonts/GlacialIndifferenceBold.ttf +0 -0
  304. package/{src/webserver/frontend → frontend}/assets/fonts/GlacialIndifferenceItalic.otf +0 -0
  305. package/{src/webserver/frontend → frontend}/assets/fonts/GlacialIndifferenceMedium.otf +0 -0
  306. package/{src/webserver/frontend → frontend}/assets/fonts/GlacialIndifferenceRegular.ttf +0 -0
  307. package/{src/webserver/frontend → frontend}/assets/fonts/RobotoBold.ttf +0 -0
  308. package/{src/webserver/frontend → frontend}/assets/fonts/RobotoItalic.ttf +0 -0
  309. package/{src/webserver/frontend → frontend}/assets/fonts/RobotoRegular.ttf +0 -0
  310. package/{src/webserver/frontend → frontend}/assets/img/auth_bg.webp +0 -0
  311. package/{src/webserver/frontend → frontend}/assets/img/dark_bg.webp +0 -0
  312. package/{src/webserver/frontend → frontend}/assets/img/turkey.webp +0 -0
  313. package/{src/webserver/frontend → frontend}/auth.html +0 -0
  314. package/index.js +10 -2
  315. package/package.json +44 -16
  316. package/public/app.bundle.js +537 -73
  317. package/public/app.bundle.js.map +1 -1
  318. package/public/app.css +727 -2
  319. package/public/app.css.map +1 -1
  320. package/public/auth.bundle.js +18 -18
  321. package/public/auth.bundle.js.map +1 -1
  322. package/public/auth.css +364 -2
  323. package/public/auth.css.map +1 -1
  324. package/templates/rpc/README.md +29 -0
  325. package/templates/rpc/doc.json +7 -0
  326. package/templates/rpc/omegga_plugin +0 -0
  327. package/templates/rpc/plugin.json +4 -0
  328. package/templates/rpc/setup.sh +3 -0
  329. package/templates/safe/README.md +29 -0
  330. package/templates/safe/access.json +1 -0
  331. package/templates/safe/doc.json +7 -0
  332. package/templates/safe/omegga.plugin.js +20 -0
  333. package/templates/safe/plugin.json +4 -0
  334. package/templates/safe/setup.sh +4 -0
  335. package/templates/safe-ts/.gitignore.rename +3 -0
  336. package/templates/safe-ts/README.md +29 -0
  337. package/templates/safe-ts/access.json +1 -0
  338. package/templates/safe-ts/doc.json +7 -0
  339. package/templates/safe-ts/omegga.d.ts +1311 -0
  340. package/templates/safe-ts/omegga.plugin.ts +29 -0
  341. package/templates/safe-ts/plugin.json +4 -0
  342. package/templates/safe-ts/setup.sh +4 -0
  343. package/templates/safe-ts/tsconfig.json +10 -0
  344. package/templates/unsafe/README.md +29 -0
  345. package/templates/unsafe/doc.json +7 -0
  346. package/templates/unsafe/omegga.main.js +15 -0
  347. package/templates/unsafe/plugin.json +4 -0
  348. package/templates/unsafe/setup.sh +4 -0
  349. package/.babelrc.json +0 -5
  350. package/.github/workflows/lint.yml +0 -26
  351. package/.prettierrc +0 -7
  352. package/.vscode/extensions.json +0 -5
  353. package/src/OMEGGA_LEGACY_INSTALL +0 -44
  354. package/src/brickadia/config.js +0 -42
  355. package/src/brickadia/server.js +0 -227
  356. package/src/cli/auth.js +0 -104
  357. package/src/cli/config.js +0 -77
  358. package/src/cli/index.js +0 -6
  359. package/src/cli/installer.js +0 -65
  360. package/src/cli/plugin.js +0 -575
  361. package/src/cli/terminal.js +0 -466
  362. package/src/config/authorizer.js +0 -37
  363. package/src/config/formats/format_js.js +0 -6
  364. package/src/config/formats/format_yml.js +0 -8
  365. package/src/config/index.js +0 -81
  366. package/src/config/reader.js +0 -27
  367. package/src/config/validator.js +0 -32
  368. package/src/config/writer.js +0 -20
  369. package/src/info/default_commands.json +0 -26
  370. package/src/lib.js +0 -23
  371. package/src/main.js +0 -332
  372. package/src/omegga/auth.js +0 -138
  373. package/src/omegga/commandInjector.js +0 -228
  374. package/src/omegga/index.js +0 -22
  375. package/src/omegga/logWrangler.js +0 -323
  376. package/src/omegga/matchers/auth.js +0 -49
  377. package/src/omegga/matchers/chat.js +0 -73
  378. package/src/omegga/matchers/command.js +0 -39
  379. package/src/omegga/matchers/exit.js +0 -19
  380. package/src/omegga/matchers/init.js +0 -23
  381. package/src/omegga/matchers/join.js +0 -115
  382. package/src/omegga/matchers/leave.js +0 -58
  383. package/src/omegga/matchers/mapChange.js +0 -37
  384. package/src/omegga/matchers/version.js +0 -45
  385. package/src/omegga/player.js +0 -585
  386. package/src/omegga/plugin/plugin_jsonrpc_stdio.js +0 -526
  387. package/src/omegga/plugin/plugin_node_safe/proxyOmegga.js +0 -117
  388. package/src/omegga/plugin/plugin_node_safe/worker.js +0 -238
  389. package/src/omegga/plugin/plugin_node_safe.js +0 -473
  390. package/src/omegga/plugin/plugin_node_unsafe.js +0 -177
  391. package/src/omegga/plugin.js +0 -565
  392. package/src/omegga/server.js +0 -658
  393. package/src/omegga/wrapper.js +0 -62
  394. package/src/softconfig.js +0 -64
  395. package/src/util/brick/checkBounds.js +0 -22
  396. package/src/util/brick/constants.js +0 -185
  397. package/src/util/brick/getBounds.js +0 -36
  398. package/src/util/brick/getBrickSize.js +0 -9
  399. package/src/util/brick/getScaleAxis.js +0 -31
  400. package/src/util/brick/index.js +0 -9
  401. package/src/util/brick/rotate.js +0 -43
  402. package/src/util/brick/setOwnership.js +0 -20
  403. package/src/util/chat.js +0 -28
  404. package/src/util/color.js +0 -143
  405. package/src/util/file.js +0 -119
  406. package/src/util/index.js +0 -28
  407. package/src/util/map.js +0 -28
  408. package/src/util/pattern.js +0 -14
  409. package/src/util/time.js +0 -46
  410. package/src/util/uuid.js +0 -8
  411. package/src/util/wsl.js +0 -9
  412. package/src/webserver/backend/api.js +0 -795
  413. package/src/webserver/backend/calendar.js +0 -15
  414. package/src/webserver/backend/database.js +0 -725
  415. package/src/webserver/backend/index.js +0 -206
  416. package/src/webserver/backend/metrics.js +0 -148
  417. package/src/webserver/backend/util.js +0 -75
  418. package/src/webserver/frontend/.eslintrc.yml +0 -26
  419. package/src/webserver/frontend/app.js +0 -78
  420. package/src/webserver/frontend/auth.js +0 -16
  421. package/src/webserver/frontend/components/Background.vue +0 -83
  422. package/src/webserver/frontend/components/Button.vue +0 -105
  423. package/src/webserver/frontend/components/ChatEntry.vue +0 -107
  424. package/src/webserver/frontend/components/ChatTime.vue +0 -40
  425. package/src/webserver/frontend/components/Dimmer.vue +0 -43
  426. package/src/webserver/frontend/components/Dropdown.vue +0 -145
  427. package/src/webserver/frontend/components/Footer.vue +0 -29
  428. package/src/webserver/frontend/components/Header.vue +0 -27
  429. package/src/webserver/frontend/components/InfiniteScroll.vue +0 -51
  430. package/src/webserver/frontend/components/Input.vue +0 -93
  431. package/src/webserver/frontend/components/ListInput.vue +0 -105
  432. package/src/webserver/frontend/components/Loader.vue +0 -98
  433. package/src/webserver/frontend/components/MainMenuButton.vue +0 -83
  434. package/src/webserver/frontend/components/Modal.vue +0 -44
  435. package/src/webserver/frontend/components/NavBar.vue +0 -24
  436. package/src/webserver/frontend/components/PlayerDropdown.vue +0 -210
  437. package/src/webserver/frontend/components/PopoutContent.vue +0 -32
  438. package/src/webserver/frontend/components/RoleDropdown.vue +0 -157
  439. package/src/webserver/frontend/components/Scroll.vue +0 -33
  440. package/src/webserver/frontend/components/Toggle.vue +0 -91
  441. package/src/webserver/frontend/components/index.js +0 -33
  442. package/src/webserver/frontend/css/font.scss +0 -53
  443. package/src/webserver/frontend/css/mixins.scss +0 -49
  444. package/src/webserver/frontend/css/style.scss +0 -166
  445. package/src/webserver/frontend/css/theme.scss +0 -64
  446. package/src/webserver/frontend/partials/NavHeader.vue +0 -55
  447. package/src/webserver/frontend/partials/Page.vue +0 -40
  448. package/src/webserver/frontend/partials/PageContent.vue +0 -31
  449. package/src/webserver/frontend/partials/SideNav.vue +0 -115
  450. package/src/webserver/frontend/partials/index.js +0 -4
  451. package/src/webserver/frontend/router.js +0 -83
  452. package/src/webserver/frontend/views/Auth.vue +0 -190
  453. package/src/webserver/frontend/views/History.vue +0 -462
  454. package/src/webserver/frontend/views/Home.vue +0 -251
  455. package/src/webserver/frontend/views/Main.vue +0 -69
  456. package/src/webserver/frontend/views/NotFound.vue +0 -10
  457. package/src/webserver/frontend/views/Players.vue +0 -425
  458. package/src/webserver/frontend/views/PlayersInspector.vue +0 -538
  459. package/src/webserver/frontend/views/Plugins.vue +0 -217
  460. package/src/webserver/frontend/views/PluginsInspector.vue +0 -418
  461. package/src/webserver/frontend/views/Server.vue +0 -167
  462. package/src/webserver/frontend/views/Users.vue +0 -538
  463. package/src/webserver/frontend/widgets/Chat.vue +0 -124
  464. package/src/webserver/frontend/widgets/Status.vue +0 -91
  465. package/src/webserver/frontend/widgets/index.js +0 -2
  466. package/src/webserver/frontend/widgets/tooltip.js +0 -108
  467. package/src/webserver/index.js +0 -4
@@ -0,0 +1,395 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const server_1 = __importDefault(require("../omegga/server"));
7
+ const chat_1 = require("../util/chat");
8
+ const readline_1 = __importDefault(require("readline"));
9
+ let log, err, warn;
10
+ // the terminal wraps omegga and displays console output and handles console input
11
+ class Terminal {
12
+ constructor(omegga, options = {}) {
13
+ this.options = options;
14
+ this.omegga = omegga;
15
+ this.commands = {};
16
+ // terminal interface
17
+ this.rl = readline_1.default.createInterface({
18
+ input: process.stdin,
19
+ output: process.stdout,
20
+ terminal: true,
21
+ });
22
+ this.rl.setPrompt('> '.brightGreen);
23
+ // shortand fns
24
+ log = (...args) => this.log('>>'.green, ...args);
25
+ err = (...args) => this.error('!>'.red, ...args);
26
+ warn = (...args) => this.warn('W>'.yellow, ...args);
27
+ // print log line if debug is enabled
28
+ let launcherDone = false;
29
+ let lastDoneMessage = '';
30
+ omegga.on('line', l => {
31
+ if (options.debug)
32
+ this.log('::'.blue, l);
33
+ else if (!launcherDone) {
34
+ if (l.startsWith('DOWNLOADING')) {
35
+ // TOOD: if someone is proactive enough in the future, you could turn these steps into a legitimate progress bar
36
+ /* Here's some launcher log lines that might be helpful
37
+ Grabbing manifest and checking game files...
38
+ DOWNLOADING MANIFEST | Hold on...
39
+ DOWNLOADING MANIFEST (100%) | Hold on...
40
+ DOWNLOADING MANIFEST (100%) | 0 B/s - 13 KiB / 13 KiB (Unknown time remaining...)
41
+ DOWNLOADING MANIFEST (100%) | Done!
42
+ Checking launcher and downloading version info...
43
+ Installing patches and booting...
44
+ DOWNLOADING BRICKADIA (0%) | Done!
45
+ DOWNLOADING BRICKADIA (100%) | 110 MiB/s - 584 MiB / 584 MiB (1 second remaining...)
46
+ DOWNLOADING BRICKADIA (100%) | Nearly done...
47
+ DOWNLOADING BRICKADIA (100%), INSTALLING BRICKADIA (86%) | Nearly done...
48
+ */
49
+ process.stdout.clearLine(0);
50
+ process.stdout.cursorTo(0);
51
+ process.stdout.write(l);
52
+ // add a newline on "Done!" but prevent newlines on repeat done messages
53
+ if (l.match(/Done!/) && l !== lastDoneMessage) {
54
+ lastDoneMessage = l;
55
+ process.stdout.write('\n');
56
+ }
57
+ }
58
+ else if (l.match(/Disabling core dumps./)) {
59
+ launcherDone = true;
60
+ }
61
+ }
62
+ });
63
+ // print debug events regardless of debug status
64
+ omegga.on('debug', l => this.log('?>'.magenta, l));
65
+ // print chat events as players join/leave the server
66
+ omegga.on('join', p => this.log(`${p.name.underline} joined.`.brightBlue));
67
+ omegga.on('leave', p => this.log(`${p.name.underline} left.`.brightBlue));
68
+ omegga.on('chat', (name, message) => this.log(`${name.brightYellow.underline}: ${message}`));
69
+ omegga.on('start', () => {
70
+ const wsl = require('../util/wsl');
71
+ log(`Server has started${wsl === 1 ? ' in single thread mode due to WSL1' : ''}. Type ${'/help'.yellow} for more commands`);
72
+ // check if this is WSL2 and wsl2binds is installed
73
+ if (wsl === 2 &&
74
+ this.omegga.pluginLoader &&
75
+ !this.omegga.pluginLoader.plugins.some(p => p.getName() === 'wsl2binds')) {
76
+ warn('####'.yellow, `You are running ${'WSL2'.yellow} and you don't have the ${'wsl2binds'.yellow} plugin.`);
77
+ warn('####'.yellow, `The wsl2binds plugin works as a ${'UDP proxy'.underline} between Windows and the WSL2 VM.`);
78
+ warn('####'.yellow, 'Install it by:');
79
+ warn('####'.yellow, ' 1. Closing omegga with', '/stop'.green);
80
+ warn('####'.yellow, ' 2. Installing wsl2binds with', 'omegga install gh:Meshiest/wsl2binds'.green);
81
+ warn('####'.yellow, ' 3. Restarting', 'omegga'.green);
82
+ }
83
+ });
84
+ omegga.on('mapchange', ({ map }) => log('Map changed to', (map.charAt(0).toUpperCase() + map.slice(1)).green));
85
+ omegga.on('unauthorized', () => {
86
+ err('Server failed authentication check');
87
+ process.exit();
88
+ });
89
+ omegga.on('error', e => err('Server caught unhandled exception:\n' + e));
90
+ omegga.on('server:stopped', () => log('Server has closed. Type', '/stop'.yellow, 'to close omegga'));
91
+ this.rl.on('line', this.handleLine.bind(this));
92
+ // console commands
93
+ Object.entries({
94
+ debug: {
95
+ desc: 'toggle visibility of brickadia console logs',
96
+ fn() {
97
+ options.debug = !options.debug;
98
+ log('Brickadia logs now', options.debug ? 'visible'.green : 'hidden'.red);
99
+ },
100
+ },
101
+ help: {
102
+ desc: 'list supported commands and their descriptions',
103
+ fn() {
104
+ const maxCmdLen = Math.max(...Object.keys(this.commands).map(s => s.length));
105
+ log('Omegga Help Text:\n');
106
+ this.log(' Console input not starting with / will be sent in chat from a "SERVER" user');
107
+ this.log(' Console input starting with / will be treated as one of the following commands\n');
108
+ this.log('-- Available Omegga commands (type', '/command'.yellow.underline, 'to run)');
109
+ Object.keys(this.commands)
110
+ .sort()
111
+ .forEach(k => {
112
+ this.log(' ', k.yellow.underline, '-'.padStart(maxCmdLen - k.length + 1), this.commands[k].desc);
113
+ });
114
+ this.log('');
115
+ },
116
+ },
117
+ cmd: {
118
+ desc: 'run a console command on the brickadia server. requires debug for log to show',
119
+ fn(...args) {
120
+ if (!this.omegga.started) {
121
+ err('Omegga is not running');
122
+ return;
123
+ }
124
+ this.omegga.writeln(args.join(' '));
125
+ },
126
+ },
127
+ ban: {
128
+ desc: 'ban a player',
129
+ fn(...args) {
130
+ if (!this.omegga.started) {
131
+ err('Omegga is not running');
132
+ return;
133
+ }
134
+ if (!args.length) {
135
+ return err('usage:', '/ban <name|id> [duration in mins] [reason]'.yellow);
136
+ }
137
+ this.omegga.writeln('Chat.Command /ban ' + args.join(' '));
138
+ },
139
+ },
140
+ unban: {
141
+ desc: 'unban a player',
142
+ fn(...args) {
143
+ if (!this.omegga.started) {
144
+ err('Omegga is not running');
145
+ return;
146
+ }
147
+ if (!args.length) {
148
+ return err('usage:', '/unban <name|id>'.yellow);
149
+ }
150
+ this.omegga.writeln('Chat.Command /unban ' + args.join(' '));
151
+ },
152
+ },
153
+ kick: {
154
+ desc: 'kick a player',
155
+ fn(...args) {
156
+ if (!this.omegga.started) {
157
+ err('Omegga is not running');
158
+ return;
159
+ }
160
+ if (!args.length) {
161
+ return err('usage:', '/kick <name|id> [reason]'.yellow);
162
+ }
163
+ this.omegga.writeln('Chat.Command /kick ' + args.join(' '));
164
+ },
165
+ },
166
+ grantrole: {
167
+ desc: 'grant a role to a player',
168
+ fn(...args) {
169
+ if (!this.omegga.started) {
170
+ err('Omegga is not running');
171
+ return;
172
+ }
173
+ if (!args.length) {
174
+ return err('usage:', '/grantrole <role name> <name|id>'.yellow);
175
+ }
176
+ this.omegga.writeln('Chat.Command /grantrole ' + args.join(' '));
177
+ },
178
+ },
179
+ revokerole: {
180
+ desc: 'revoke a role from a player',
181
+ fn(...args) {
182
+ if (!this.omegga.started) {
183
+ err('Omegga is not running');
184
+ return;
185
+ }
186
+ if (!args.length) {
187
+ return err('usage:', '/revokerole <role name> <name|id>'.yellow);
188
+ }
189
+ this.omegga.writeln('Chat.Command /revokerole ' + args.join(' '));
190
+ },
191
+ },
192
+ clearbricks: {
193
+ desc: "clear a player's bricks",
194
+ fn(...args) {
195
+ if (!this.omegga.started) {
196
+ err('Omegga is not running');
197
+ return;
198
+ }
199
+ if (!args.length) {
200
+ return err('usage:', '/clearbricks <name>'.yellow);
201
+ }
202
+ this.omegga.writeln(`Bricks.Clear "${args.join(' ')}"`);
203
+ },
204
+ },
205
+ clearallbricks: {
206
+ desc: 'clear all bricks',
207
+ fn() {
208
+ if (!this.omegga.started) {
209
+ err('Omegga is not running');
210
+ return;
211
+ }
212
+ this.omegga.writeln('Bricks.ClearAll');
213
+ },
214
+ },
215
+ status: {
216
+ desc: 'display server status information. brick count, online players, etc',
217
+ async fn() {
218
+ if (!this.omegga.started) {
219
+ err('Omegga is not running');
220
+ return;
221
+ }
222
+ const msToTime = (ms) => new Date(ms).toISOString().slice(11, 19);
223
+ try {
224
+ const status = await this.omegga.getServerStatus();
225
+ log('Server Status');
226
+ this.log(`
227
+ ${status.serverName.yellow}
228
+ Bricks: ${(status.bricks + '').yellow}
229
+ Components: ${(status.components + '').yellow}
230
+ Uptime: ${msToTime(status.time).yellow}
231
+ Players: ${status.players.length === 0 ? 'none'.grey : ''}
232
+ ${status.players
233
+ .map(p => `[${msToTime(p.time).grey}] ${p.name.brightYellow}`)
234
+ .join('\n ')}
235
+ `);
236
+ }
237
+ catch (e) {
238
+ err('An error occurred while getting server status');
239
+ }
240
+ },
241
+ },
242
+ stop: {
243
+ desc: 'stop the server and close Omegga',
244
+ async fn() {
245
+ log('Stopping server...');
246
+ await this.omegga.stop();
247
+ process.exit();
248
+ },
249
+ },
250
+ kill: {
251
+ desc: 'forcefully kill brickadia server process without closing omegga',
252
+ async fn() {
253
+ log('Stopping server...');
254
+ await this.omegga.stop();
255
+ },
256
+ },
257
+ save: {
258
+ desc: 'Save bricks to a specified file',
259
+ async fn(...args) {
260
+ const name = args.join(' ');
261
+ if (!name.length)
262
+ return err('usage:', '/save <name>'.yellow);
263
+ log('Saving bricks');
264
+ this.omegga.saveBricks(name);
265
+ },
266
+ },
267
+ load: {
268
+ desc: 'Load bricks from a specified file',
269
+ async fn(...args) {
270
+ const name = args.join(' ');
271
+ if (!name.length)
272
+ return err('usage:', '/load <name>'.yellow);
273
+ log('Loading bricks');
274
+ this.omegga.loadBricks(name);
275
+ },
276
+ },
277
+ start: {
278
+ desc: 'start the server if it is stopped',
279
+ fn() {
280
+ if (!this.omegga ||
281
+ (this.omegga && (this.omegga.starting || this.omegga.started))) {
282
+ err('Omegga is already running');
283
+ return;
284
+ }
285
+ log('Starting server...');
286
+ this.omegga.start();
287
+ },
288
+ },
289
+ reload: {
290
+ desc: 'reload available plugins',
291
+ async fn() {
292
+ if (!this.omegga.pluginLoader) {
293
+ err('Omegga is not using plugins');
294
+ return;
295
+ }
296
+ log('Unloading current plugins');
297
+ let success = await this.omegga.pluginLoader.unload();
298
+ if (!success) {
299
+ err('Could not unload all plugins');
300
+ return;
301
+ }
302
+ log('Scanning for new plugins');
303
+ success = await this.omegga.pluginLoader.scan();
304
+ if (!success) {
305
+ err('Could not scan for plugins');
306
+ return;
307
+ }
308
+ log('Starting plugins');
309
+ success = await this.omegga.pluginLoader.reload();
310
+ if (success) {
311
+ const plugins = this.omegga.pluginLoader.plugins
312
+ .filter(p => p.isLoaded())
313
+ .map(p => p.getName());
314
+ log('Loaded', (plugins.length + '').yellow, 'plugins:', plugins);
315
+ }
316
+ else {
317
+ err('Could not load all plugins');
318
+ }
319
+ },
320
+ },
321
+ }).forEach(([cmd, { desc, fn }]) => this.addCommand(cmd, desc, fn));
322
+ }
323
+ // add a command
324
+ addCommand(name, desc, fn) {
325
+ this.commands[name] = { name, desc, fn: fn.bind(this) };
326
+ }
327
+ async handleLine(line) {
328
+ if (line.startsWith('/')) {
329
+ const [cmd, ...args] = line.slice(1).split(' ');
330
+ if (!this.commands[cmd]) {
331
+ err(`unrecognized command /${cmd.underline}. Type /help for more info`.red);
332
+ }
333
+ else {
334
+ try {
335
+ const res = this.commands[cmd].fn.bind(this)(...args);
336
+ if (res instanceof Promise) {
337
+ await res;
338
+ }
339
+ }
340
+ catch (e) {
341
+ err('unhandled terminal error', e);
342
+ }
343
+ }
344
+ }
345
+ else if (line.trim().length > 0) {
346
+ if (this.omegga.started) {
347
+ // broadcast when the chat does not start with a command
348
+ this.omegga.broadcast(`"[<b><color=\\"ff00ff\\">SERVER</></>]: ${(0, chat_1.sanitize)(line)}"`);
349
+ process.stdout.clearLine(0);
350
+ this.log(`[${'SERVER'.brightMagenta.underline}]: ${line}`);
351
+ // if omegga is running a webserver - send this message in the chat log
352
+ if (this.omegga.webserver) {
353
+ const user = { name: 'SERVER', id: '', web: true, color: 'ff00ff' };
354
+ // create database entry, send to web ui
355
+ this.omegga.webserver.io
356
+ .to('chat')
357
+ .emit('chat', await this.omegga.webserver.database.addChatLog('msg', user, line));
358
+ }
359
+ }
360
+ else {
361
+ err('Server is not started yet. type'.red, '/help'.yellow, 'for more info'.red);
362
+ }
363
+ }
364
+ }
365
+ // let readline render a log without interrupting user input
366
+ log(...args) {
367
+ process.stdout.clearLine(0);
368
+ process.stdout.cursorTo(0);
369
+ console.log(...args);
370
+ this.rl.prompt(true);
371
+ }
372
+ // let readline render a debug log without interrupting user input
373
+ debug(...args) {
374
+ process.stdout.clearLine(0);
375
+ process.stdout.cursorTo(0);
376
+ console.debug(...args);
377
+ this.rl.prompt(true);
378
+ }
379
+ // let readline render a warning log without interrupting user input
380
+ warn(...args) {
381
+ process.stdout.clearLine(0);
382
+ process.stdout.cursorTo(0);
383
+ console.warn(...args);
384
+ this.rl.prompt(true);
385
+ }
386
+ // let readline render an error log without interrupting user input
387
+ error(...args) {
388
+ process.stdout.clearLine(0);
389
+ process.stdout.cursorTo(0);
390
+ console.error(...args);
391
+ this.rl.prompt(true);
392
+ }
393
+ }
394
+ exports.default = Terminal;
395
+ //# sourceMappingURL=terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/cli/terminal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ declare const authorizer: (email: string, password: string) => Promise<unknown>;
2
+ export default authorizer;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorizer.d.ts","sourceRoot":"","sources":["../../src/config/authorizer.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,UAAU,UAAW,MAAM,YAAY,MAAM,qBAwB/C,CAAC;AAEL,eAAe,UAAU,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ /*
3
+ Determine if email+password combo is valid
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const server_1 = __importDefault(require("../brickadia/server"));
10
+ const _config_1 = require("./");
11
+ const softconfig_1 = __importDefault(require("../softconfig"));
12
+ const invalidRegExp = /^(Error: AuthState is Invalid on dedicated server - exiting\.|Changing AuthState from \w+ to Invalid\.)$/;
13
+ const validRegExp = /^Changing AuthState from \w+ to ValidOnline\.$/;
14
+ const authorizer = (email, password) => new Promise(resolve => {
15
+ // create a server with these credentials
16
+ const server = new server_1.default(softconfig_1.default.DATA_PATH, {
17
+ credentials: { email, password },
18
+ server: {
19
+ port: 7775,
20
+ __LEGACY: _config_1.store.get('legacyBin'),
21
+ },
22
+ });
23
+ // wait for the invalid auth line or valid auth line, then kill the server
24
+ server.on('line', line => {
25
+ if (line.match(invalidRegExp)) {
26
+ server.stop();
27
+ resolve(false);
28
+ }
29
+ else if (line.match(validRegExp)) {
30
+ server.stop();
31
+ resolve(true);
32
+ }
33
+ });
34
+ // start the server
35
+ server.start();
36
+ });
37
+ exports.default = authorizer;
38
+ //# sourceMappingURL=authorizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorizer.js","sourceRoot":"","sources":["../../src/config/authorizer.ts"],"names":[],"mappings":";AAAA;;EAEE;;;;;AAEF,iEAAgD;AAChD,gCAAgC;AAChC,+DAAkC;AAElC,MAAM,aAAa,GACjB,0GAA0G,CAAC;AAC7G,MAAM,WAAW,GAAG,gDAAgD,CAAC;AAErE,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,QAAgB,EAAE,EAAE,CACrD,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;IACpB,yCAAyC;IACzC,MAAM,MAAM,GAAG,IAAI,gBAAe,CAAC,oBAAM,CAAC,SAAS,EAAE;QACnD,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;QAChC,MAAM,EAAE;YACN,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,eAAK,CAAC,GAAG,CAAC,WAAW,CAAC;SACjC;KACF,CAAC,CAAC;IAEH,0EAA0E;IAC1E,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;YAC7B,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,CAAC;SAChB;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;YAClC,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,CAAC;SACf;IACH,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEL,kBAAe,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IConfigFormat } from "../types";
2
+ declare const format_js: IConfigFormat;
3
+ export default format_js;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format_js.d.ts","sourceRoot":"","sources":["../../../src/config/formats/format_js.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAsB;AAEnD,QAAA,MAAM,SAAS,EAAE,aAKhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const format_js = {
4
+ extension: 'js',
5
+ encoding: 'string',
6
+ reader: str => JSON.parse(str),
7
+ writer: blob => JSON.stringify(blob, null, 2),
8
+ };
9
+ exports.default = format_js;
10
+ //# sourceMappingURL=format_js.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format_js.js","sourceRoot":"","sources":["../../../src/config/formats/format_js.ts"],"names":[],"mappings":";;AAEA,MAAM,SAAS,GAAkB;IAC/B,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;IAC9B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;CAC9C,CAAC;AAEF,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IConfigFormat } from "../types";
2
+ declare const format_yaml: IConfigFormat;
3
+ export default format_yaml;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format_yml.d.ts","sourceRoot":"","sources":["../../../src/config/formats/format_yml.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,aAAa,EAAE,iBAAsB;AAG5D,QAAA,MAAM,WAAW,EAAE,aAKlB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const js_yaml_1 = __importDefault(require("js-yaml"));
7
+ const format_yaml = {
8
+ extension: 'yml',
9
+ encoding: 'string',
10
+ reader: str => js_yaml_1.default.load(str),
11
+ writer: blob => js_yaml_1.default.dump(blob),
12
+ };
13
+ exports.default = format_yaml;
14
+ //# sourceMappingURL=format_yml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format_yml.js","sourceRoot":"","sources":["../../../src/config/formats/format_yml.ts"],"names":[],"mappings":";;;;;AACA,sDAA2B;AAE3B,MAAM,WAAW,GAAkB;IACjC,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,iBAAI,CAAC,IAAI,CAAC,GAAG,CAAY;IACxC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,iBAAI,CAAC,IAAI,CAAC,IAAI,CAAC;CAChC,CAAC;AAEF,kBAAe,WAAW,CAAC"}
@@ -0,0 +1,18 @@
1
+ import Configstore from 'configstore';
2
+ import { IConfig, IConfigFormat } from './types';
3
+ export * from './types';
4
+ export declare const store: Configstore;
5
+ export declare const defaultConfig: IConfig;
6
+ export declare const write: (path: string, blob: IConfig) => void;
7
+ export declare const read: (path?: string) => IConfig;
8
+ export declare const find: (dir?: string) => string;
9
+ export * from './types';
10
+ declare const _default: {
11
+ store: Configstore;
12
+ write: (path: string, blob: IConfig) => void;
13
+ read: (path?: string) => IConfig;
14
+ find: (dir?: string) => string;
15
+ defaultConfig: IConfig;
16
+ formats: IConfigFormat[];
17
+ };
18
+ export default _default;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,aAAa,CAAC;AAKtC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEjD,cAAc,SAAS,CAAC;AAExB,eAAO,MAAM,KAAK,aASjB,CAAC;AA4CF,eAAO,MAAM,aAAa,EAAE,OAe3B,CAAC;AAGF,eAAO,MAAM,KAAK,uCAAkB,CAAC;AAGrC,eAAO,MAAM,IAAI,4BAAkB,CAAC;AAGpC,eAAO,MAAM,IAAI,0BAUhB,CAAC;AAEF,cAAc,SAAS,CAAC;;;;;;;;;AAExB,wBAAoE"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.find = exports.read = exports.write = exports.defaultConfig = exports.store = void 0;
21
+ const configstore_1 = __importDefault(require("configstore"));
22
+ const fs_1 = __importDefault(require("fs"));
23
+ const path_1 = __importDefault(require("path"));
24
+ const softconfig_1 = __importDefault(require("../softconfig"));
25
+ const reader_1 = __importDefault(require("./reader"));
26
+ const writer_1 = __importDefault(require("./writer"));
27
+ __exportStar(require("./types"), exports);
28
+ exports.store = new configstore_1.default(softconfig_1.default.PROJECT_NAME, {
29
+ defaultOmegga: '.',
30
+ legacyBin: '',
31
+ }, {
32
+ globalConfigPath: true,
33
+ });
34
+ // find all format_EXT.js files in the formats path
35
+ const formats = fs_1.default
36
+ .readdirSync(path_1.default.join(__dirname, 'formats'))
37
+ // all formats match the format_EXT.js pattern
38
+ .filter(file => file.match(/format_[a-z]+\.js$/))
39
+ // require all the formats
40
+ .map(file => require(path_1.default.join(__dirname, 'formats', file)).default)
41
+ // format has a valid extension, reader, and writer
42
+ .filter(format => format.extension &&
43
+ format.extension.match(/^[a-z]+$/) &&
44
+ format.encoding &&
45
+ format.encoding.match(/^(string|buffer)$/) &&
46
+ format.reader &&
47
+ typeof format.reader === 'function' &&
48
+ format.writer &&
49
+ typeof format.writer === 'function');
50
+ // create read/write funcs for the provided formats
51
+ exports.defaultConfig = {
52
+ omegga: {
53
+ webui: true,
54
+ port: process.env.OMEGGA_PORT
55
+ ? Number(process.env.OMEGGA_PORT)
56
+ : softconfig_1.default.DEFAULT_PORT,
57
+ https: true,
58
+ },
59
+ server: {
60
+ port: process.env.BRICKADIA_PORT
61
+ ? Number(process.env.BRICKADIA_PORT)
62
+ : 7777,
63
+ map: 'Plate',
64
+ branch: 'main-server',
65
+ },
66
+ };
67
+ // Writes save data to a file
68
+ exports.write = (0, writer_1.default)(formats);
69
+ // reads save data from a file
70
+ exports.read = (0, reader_1.default)(formats);
71
+ // open config at a specified path
72
+ const find = (dir = '.') => {
73
+ // find the first config file matching these config file names
74
+ for (const f of softconfig_1.default.CONFIG_FILENAMES) {
75
+ for (const { extension } of formats) {
76
+ const file = path_1.default.join(dir, f + '.' + extension);
77
+ if (fs_1.default.existsSync(file))
78
+ return file;
79
+ }
80
+ }
81
+ return undefined;
82
+ };
83
+ exports.find = find;
84
+ __exportStar(require("./types"), exports);
85
+ exports.default = { store: exports.store, write: exports.write, read: exports.read, find: exports.find, defaultConfig: exports.defaultConfig, formats };
86
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,8DAAsC;AACtC,4CAAoB;AACpB,gDAAwB;AACxB,+DAAgC;AAChC,sDAA8B;AAE9B,sDAA8B;AAC9B,0CAAwB;AAEX,QAAA,KAAK,GAAG,IAAI,qBAAW,CAClC,oBAAI,CAAC,YAAY,EACjB;IACE,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,EAAE;CACd,EACD;IACE,gBAAgB,EAAE,IAAI;CACvB,CACF,CAAC;AAEF,mDAAmD;AACnD,MAAM,OAAO,GAAoB,YAAE;KAChC,WAAW,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC7C,8CAA8C;KAC7C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACjD,0BAA0B;KACzB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IACpE,mDAAmD;KAClD,MAAM,CACL,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,SAAS;IAChB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;IAClC,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC;IAC1C,MAAM,CAAC,MAAM;IACb,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU;IACnC,MAAM,CAAC,MAAM;IACb,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,CACtC,CAAC;AAEJ,mDAAmD;AACtC,QAAA,aAAa,GAAY;IACpC,MAAM,EAAE;QACN,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;YAC3B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;YACjC,CAAC,CAAC,oBAAI,CAAC,YAAY;QACrB,KAAK,EAAE,IAAI;KACZ;IACD,MAAM,EAAE;QACN,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;YAC9B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YACpC,CAAC,CAAC,IAAI;QACR,GAAG,EAAE,OAAO;QACZ,MAAM,EAAE,aAAa;KACtB;CACF,CAAC;AAEF,6BAA6B;AAChB,QAAA,KAAK,GAAG,IAAA,gBAAM,EAAC,OAAO,CAAC,CAAC;AAErC,8BAA8B;AACjB,QAAA,IAAI,GAAG,IAAA,gBAAM,EAAC,OAAO,CAAC,CAAC;AAEpC,kCAAkC;AAC3B,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE;IAChC,8DAA8D;IAC9D,KAAK,MAAM,CAAC,IAAI,oBAAI,CAAC,gBAAgB,EAAE;QACrC,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,OAAO,EAAE;YACnC,MAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;YACjD,IAAI,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;SACtC;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAVW,QAAA,IAAI,QAUf;AAEF,0CAAwB;AAExB,kBAAe,EAAE,KAAK,EAAL,aAAK,EAAE,KAAK,EAAL,aAAK,EAAE,IAAI,EAAJ,YAAI,EAAE,IAAI,EAAJ,YAAI,EAAE,aAAa,EAAb,qBAAa,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { IConfigFormat } from './types';
2
+ declare const reader: (formats: IConfigFormat[]) => (path?: string) => import("./types").IConfig;
3
+ export default reader;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/config/reader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAIxC,QAAA,MAAM,MAAM,YACA,aAAa,EAAE,aAClB,MAAM,8BAsBZ,CAAC;AAEJ,eAAe,MAAM,CAAC"}