omegga 1.2.9 → 1.4.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 (328) hide show
  1. package/README.md +50 -11
  2. package/dist/brickadia/config.js +26 -90
  3. package/dist/brickadia/config.js.map +1 -1
  4. package/dist/brickadia/server.js +290 -293
  5. package/dist/brickadia/server.js.map +1 -1
  6. package/dist/cli/auth.js +149 -177
  7. package/dist/cli/auth.js.map +1 -1
  8. package/dist/cli/config.js +64 -66
  9. package/dist/cli/config.js.map +1 -1
  10. package/dist/cli/index.js +14 -14
  11. package/dist/cli/index.js.map +1 -1
  12. package/dist/cli/installer.js +37 -43
  13. package/dist/cli/installer.js.map +1 -1
  14. package/dist/cli/plugin.js +651 -682
  15. package/dist/cli/plugin.js.map +1 -1
  16. package/dist/cli/terminal.js +811 -733
  17. package/dist/cli/terminal.js.map +1 -1
  18. package/dist/config/formats/format_js.js +6 -6
  19. package/dist/config/formats/format_js.js.map +1 -1
  20. package/dist/config/formats/format_yml.js +7 -10
  21. package/dist/config/formats/format_yml.js.map +1 -1
  22. package/dist/config/index.js +46 -68
  23. package/dist/config/index.js.map +1 -1
  24. package/dist/config/reader.js +16 -27
  25. package/dist/config/reader.js.map +1 -1
  26. package/dist/config/validator.js +23 -25
  27. package/dist/config/validator.js.map +1 -1
  28. package/dist/config/writer.js +11 -21
  29. package/dist/config/writer.js.map +1 -1
  30. package/dist/index.js +18 -64
  31. package/dist/index.js.map +1 -1
  32. package/dist/info/default_commands.json.js +39 -0
  33. package/dist/info/default_commands.json.js.map +1 -0
  34. package/dist/logger.js +61 -60
  35. package/dist/logger.js.map +1 -1
  36. package/dist/main.js +425 -471
  37. package/dist/main.js.map +1 -1
  38. package/dist/omegga/auth.js +101 -148
  39. package/dist/omegga/auth.js.map +1 -1
  40. package/dist/omegga/commandInjector.js +261 -251
  41. package/dist/omegga/commandInjector.js.map +1 -1
  42. package/dist/omegga/index.js +14 -52
  43. package/dist/omegga/index.js.map +1 -1
  44. package/dist/omegga/logWrangler.js +224 -275
  45. package/dist/omegga/logWrangler.js.map +1 -1
  46. package/dist/omegga/matchers/auth.js +36 -50
  47. package/dist/omegga/matchers/auth.js.map +1 -1
  48. package/dist/omegga/matchers/chat.js +49 -71
  49. package/dist/omegga/matchers/chat.js.map +1 -1
  50. package/dist/omegga/matchers/command.js +25 -36
  51. package/dist/omegga/matchers/command.js.map +1 -1
  52. package/dist/omegga/matchers/exit.js +15 -18
  53. package/dist/omegga/matchers/exit.js.map +1 -1
  54. package/dist/omegga/matchers/index.js +26 -40
  55. package/dist/omegga/matchers/index.js.map +1 -1
  56. package/dist/omegga/matchers/init.js +20 -23
  57. package/dist/omegga/matchers/init.js.map +1 -1
  58. package/dist/omegga/matchers/interact.js +58 -64
  59. package/dist/omegga/matchers/interact.js.map +1 -1
  60. package/dist/omegga/matchers/join.js +74 -95
  61. package/dist/omegga/matchers/join.js.map +1 -1
  62. package/dist/omegga/matchers/leave.js +43 -56
  63. package/dist/omegga/matchers/leave.js.map +1 -1
  64. package/dist/omegga/matchers/mapChange.js +26 -35
  65. package/dist/omegga/matchers/mapChange.js.map +1 -1
  66. package/dist/omegga/matchers/minigameJoin.js +24 -31
  67. package/dist/omegga/matchers/minigameJoin.js.map +1 -1
  68. package/dist/omegga/matchers/version.js +42 -49
  69. package/dist/omegga/matchers/version.js.map +1 -1
  70. package/dist/omegga/player.js +562 -528
  71. package/dist/omegga/player.js.map +1 -1
  72. package/dist/omegga/plugin/interface.js +91 -98
  73. package/dist/omegga/plugin/interface.js.map +1 -1
  74. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js +578 -429
  75. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js.map +1 -1
  76. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js +282 -294
  77. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js.map +1 -1
  78. package/dist/omegga/plugin/plugin_node_safe.js +365 -393
  79. package/dist/omegga/plugin/plugin_node_safe.js.map +1 -1
  80. package/dist/omegga/plugin/plugin_node_unsafe.js +119 -179
  81. package/dist/omegga/plugin/plugin_node_unsafe.js.map +1 -1
  82. package/dist/omegga/plugin.js +402 -347
  83. package/dist/omegga/plugin.js.map +1 -1
  84. package/dist/omegga/server.js +742 -774
  85. package/dist/omegga/server.js.map +1 -1
  86. package/dist/omegga/wrapper.js +64 -91
  87. package/dist/omegga/wrapper.js.map +1 -1
  88. package/dist/plugin.js +11 -31
  89. package/dist/plugin.js.map +1 -1
  90. package/dist/softconfig.js +139 -100
  91. package/dist/softconfig.js.map +1 -1
  92. package/dist/updater/steam.js +104 -114
  93. package/dist/updater/steam.js.map +1 -1
  94. package/dist/util/brdb.js +496 -528
  95. package/dist/util/brdb.js.map +1 -1
  96. package/dist/util/brick/checkBounds.js +11 -15
  97. package/dist/util/brick/checkBounds.js.map +1 -1
  98. package/dist/util/brick/constants.js +723 -174
  99. package/dist/util/brick/constants.js.map +1 -1
  100. package/dist/util/brick/displayName.js +204 -211
  101. package/dist/util/brick/displayName.js.map +1 -1
  102. package/dist/util/brick/getBounds.js +29 -41
  103. package/dist/util/brick/getBounds.js.map +1 -1
  104. package/dist/util/brick/getBrickSize.js +6 -7
  105. package/dist/util/brick/getBrickSize.js.map +1 -1
  106. package/dist/util/brick/getScaleAxis.js +24 -30
  107. package/dist/util/brick/getScaleAxis.js.map +1 -1
  108. package/dist/util/brick/index.js +8 -29
  109. package/dist/util/brick/index.js.map +1 -1
  110. package/dist/util/brick/rotate.js +29 -34
  111. package/dist/util/brick/rotate.js.map +1 -1
  112. package/dist/util/brick/setOwnership.js +13 -19
  113. package/dist/util/brick/setOwnership.js.map +1 -1
  114. package/dist/util/chat.js +53 -44
  115. package/dist/util/chat.js.map +1 -1
  116. package/dist/util/color.js +112 -124
  117. package/dist/util/color.js.map +1 -1
  118. package/dist/util/file.js +54 -98
  119. package/dist/util/file.js.map +1 -1
  120. package/dist/util/index.js +84 -106
  121. package/dist/util/index.js.map +1 -1
  122. package/dist/util/map.js +18 -20
  123. package/dist/util/map.js.map +1 -1
  124. package/dist/util/pattern.js +6 -9
  125. package/dist/util/pattern.js.map +1 -1
  126. package/dist/util/time.js +31 -34
  127. package/dist/util/time.js.map +1 -1
  128. package/dist/util/uuid.js +10 -8
  129. package/dist/util/uuid.js.map +1 -1
  130. package/dist/util/wsl.js +19 -25
  131. package/dist/util/wsl.js.map +1 -1
  132. package/dist/version.js +7 -9
  133. package/dist/version.js.map +1 -1
  134. package/dist/webserver/backend/api.js +784 -874
  135. package/dist/webserver/backend/api.js.map +1 -1
  136. package/dist/webserver/backend/calendar.js +14 -17
  137. package/dist/webserver/backend/calendar.js.map +1 -1
  138. package/dist/webserver/backend/database.js +563 -613
  139. package/dist/webserver/backend/database.js.map +1 -1
  140. package/dist/webserver/backend/index.js +153 -191
  141. package/dist/webserver/backend/index.js.map +1 -1
  142. package/dist/webserver/backend/metrics.js +219 -248
  143. package/dist/webserver/backend/metrics.js.map +1 -1
  144. package/dist/webserver/backend/util.js +47 -68
  145. package/dist/webserver/backend/util.js.map +1 -1
  146. package/dist/worker.js +322 -0
  147. package/dist/worker.js.map +1 -0
  148. package/package.json +16 -11
  149. package/public/app.html +18 -18
  150. package/public/assets/IconArrowRight-BuVxhqKX.js +2 -0
  151. package/public/assets/{IconArrowRight-CA5_cccJ.js.map → IconArrowRight-BuVxhqKX.js.map} +1 -1
  152. package/public/assets/IconCheck-DOe3u7iH.js +2 -0
  153. package/public/assets/{IconCheck-Dyq5qyY1.js.map → IconCheck-DOe3u7iH.js.map} +1 -1
  154. package/public/assets/IconLockOpen-Bs7Tsf6u.js +2 -0
  155. package/public/assets/{IconLockOpen-D95XLORK.js.map → IconLockOpen-Bs7Tsf6u.js.map} +1 -1
  156. package/public/assets/IconWorld-B6GK5qpx.js +2 -0
  157. package/public/assets/{IconWorld-DtARpBKX.js.map → IconWorld-B6GK5qpx.js.map} +1 -1
  158. package/public/assets/IconWorldPlus-DpfueG8_.js +2 -0
  159. package/public/assets/{IconWorldPlus-CGBAsLNj.js.map → IconWorldPlus-DpfueG8_.js.map} +1 -1
  160. package/public/assets/IconX-CvmO0bbE.js +2 -0
  161. package/public/assets/{IconX-SYtbnYKI.js.map → IconX-CvmO0bbE.js.map} +1 -1
  162. package/public/assets/app-nJIpyOiP.js +6 -0
  163. package/public/assets/{app-BtOlgo__.js.map → app-nJIpyOiP.js.map} +1 -1
  164. package/public/assets/{auth-CvxEWAMc.js → auth-6N37o421.js} +2 -2
  165. package/public/assets/{auth-CvxEWAMc.js.map → auth-6N37o421.js.map} +1 -1
  166. package/public/assets/client-BT1QYH0O.js +10 -0
  167. package/public/assets/{client-C5T7_OK9.js.map → client-BT1QYH0O.js.map} +1 -1
  168. package/public/assets/index-2cgXLhrt.js +2 -0
  169. package/public/assets/{index-CRRRLlCc.js.map → index-2cgXLhrt.js.map} +1 -1
  170. package/public/assets/index-3dNmNZ9B.js +10 -0
  171. package/public/assets/{index-Bq9C9SqB.js.map → index-3dNmNZ9B.js.map} +1 -1
  172. package/public/assets/{index-i4mjW0og.js → index-CrN8I5Az.js} +2 -2
  173. package/public/assets/index-CrN8I5Az.js.map +1 -0
  174. package/public/assets/index-CtCtK5BX.js +2 -0
  175. package/public/assets/{index-DqHVrEeL.js.map → index-CtCtK5BX.js.map} +1 -1
  176. package/public/assets/index-D0OPOe3j.js +2 -0
  177. package/public/assets/{index-c0qeY2gs.js.map → index-D0OPOe3j.js.map} +1 -1
  178. package/public/assets/{index-DYcAgWjJ.js → index-DY750sgZ.js} +2 -2
  179. package/public/assets/{index-DYcAgWjJ.js.map → index-DY750sgZ.js.map} +1 -1
  180. package/public/assets/jsx-runtime-BX5r4UiA.js +2 -0
  181. package/public/assets/jsx-runtime-BX5r4UiA.js.map +1 -0
  182. package/public/assets/jsx-runtime-DldvXD6N.js +2 -0
  183. package/public/assets/{jsx-runtime-Bw5QeaCk.js.map → jsx-runtime-DldvXD6N.js.map} +1 -1
  184. package/public/assets/shared/@components-DdtLZOaA.js +2 -0
  185. package/public/assets/shared/@components-DdtLZOaA.js.map +1 -0
  186. package/public/assets/shared/{@hooks-DfTzYBIL.js → @hooks-Ch_hJYh0.js} +2 -2
  187. package/public/assets/shared/{@hooks-DfTzYBIL.js.map → @hooks-Ch_hJYh0.js.map} +1 -1
  188. package/public/assets/shared/{@nanostores_react-HTG3s0lp.js → @nanostores_react-DJPF1Eqx.js} +2 -2
  189. package/public/assets/shared/{@nanostores_react-HTG3s0lp.js.map → @nanostores_react-DJPF1Eqx.js.map} +1 -1
  190. package/public/assets/shared/@tabler_icons-react-B4bN8gHc.js +3 -0
  191. package/public/assets/shared/{@tabler_icons-react--FJWdUou.js.map → @tabler_icons-react-B4bN8gHc.js.map} +1 -1
  192. package/public/assets/shared/nanostores-BFqqIY_c.js.map +1 -1
  193. package/public/assets/shared/react-dom-8Rcmh_FG.js +2 -0
  194. package/public/assets/shared/{react-dom-BznoGTRX.js.map → react-dom-8Rcmh_FG.js.map} +1 -1
  195. package/public/assets/shared/react-iXLZ_Bod.js +2 -0
  196. package/public/assets/shared/{react-CR6vSpIu.js.map → react-iXLZ_Bod.js.map} +1 -1
  197. package/public/assets/shared/react_jsx-runtime-BwhiLcBy.js +2 -0
  198. package/public/assets/shared/{react_jsx-runtime-C15Zu6_p.js.map → react_jsx-runtime-BwhiLcBy.js.map} +1 -1
  199. package/public/assets/shared/{wouter-DbmGxXTo.js → wouter-CUC1caxu.js} +2 -2
  200. package/public/assets/shared/wouter-CUC1caxu.js.map +1 -0
  201. package/public/auth.html +14 -14
  202. package/templates/safe-ts/omegga.d.ts +31 -1
  203. package/dist/brickadia/config.d.ts +0 -3
  204. package/dist/brickadia/presets.d.ts +0 -65
  205. package/dist/brickadia/presets.js +0 -3
  206. package/dist/brickadia/presets.js.map +0 -1
  207. package/dist/brickadia/server.d.ts +0 -36
  208. package/dist/brickadia/types.d.ts +0 -45
  209. package/dist/brickadia/types.js +0 -3
  210. package/dist/brickadia/types.js.map +0 -1
  211. package/dist/cli/auth.d.ts +0 -26
  212. package/dist/cli/config.d.ts +0 -10
  213. package/dist/cli/index.d.ts +0 -30
  214. package/dist/cli/installer.d.ts +0 -1
  215. package/dist/cli/plugin.d.ts +0 -22
  216. package/dist/cli/terminal.d.ts +0 -25
  217. package/dist/config/authorizer.d.ts +0 -2
  218. package/dist/config/authorizer.js +0 -38
  219. package/dist/config/authorizer.js.map +0 -1
  220. package/dist/config/formats/format_js.d.ts +0 -3
  221. package/dist/config/formats/format_yml.d.ts +0 -3
  222. package/dist/config/index.d.ts +0 -18
  223. package/dist/config/reader.d.ts +0 -3
  224. package/dist/config/types.d.ts +0 -50
  225. package/dist/config/types.js +0 -3
  226. package/dist/config/types.js.map +0 -1
  227. package/dist/config/validator.d.ts +0 -6
  228. package/dist/config/writer.d.ts +0 -3
  229. package/dist/index.d.ts +0 -22
  230. package/dist/info/default_commands.json +0 -29
  231. package/dist/logger.d.ts +0 -41
  232. package/dist/main.d.ts +0 -1
  233. package/dist/omegga/auth.d.ts +0 -9
  234. package/dist/omegga/commandInjector.d.ts +0 -35
  235. package/dist/omegga/index.d.ts +0 -7
  236. package/dist/omegga/logWrangler.d.ts +0 -32
  237. package/dist/omegga/matchers/auth.d.ts +0 -10
  238. package/dist/omegga/matchers/chat.d.ts +0 -10
  239. package/dist/omegga/matchers/command.d.ts +0 -7
  240. package/dist/omegga/matchers/exit.d.ts +0 -3
  241. package/dist/omegga/matchers/index.d.ts +0 -3
  242. package/dist/omegga/matchers/init.d.ts +0 -3
  243. package/dist/omegga/matchers/interact.d.ts +0 -4
  244. package/dist/omegga/matchers/join.d.ts +0 -4
  245. package/dist/omegga/matchers/leave.d.ts +0 -4
  246. package/dist/omegga/matchers/mapChange.d.ts +0 -3
  247. package/dist/omegga/matchers/minigameJoin.d.ts +0 -9
  248. package/dist/omegga/matchers/types.d.ts +0 -5
  249. package/dist/omegga/matchers/types.js +0 -3
  250. package/dist/omegga/matchers/types.js.map +0 -1
  251. package/dist/omegga/matchers/version.d.ts +0 -3
  252. package/dist/omegga/player.d.ts +0 -81
  253. package/dist/omegga/plugin/interface.d.ts +0 -30
  254. package/dist/omegga/plugin/plugin_jsonrpc_stdio.d.ts +0 -23
  255. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.d.ts +0 -145
  256. package/dist/omegga/plugin/plugin_node_safe/worker.d.ts +0 -1
  257. package/dist/omegga/plugin/plugin_node_safe/worker.js +0 -367
  258. package/dist/omegga/plugin/plugin_node_safe/worker.js.map +0 -1
  259. package/dist/omegga/plugin/plugin_node_safe.d.ts +0 -23
  260. package/dist/omegga/plugin/plugin_node_unsafe.d.ts +0 -13
  261. package/dist/omegga/plugin.d.ts +0 -63
  262. package/dist/omegga/server.d.ts +0 -166
  263. package/dist/omegga/types.d.ts +0 -49
  264. package/dist/omegga/types.js +0 -3
  265. package/dist/omegga/types.js.map +0 -1
  266. package/dist/omegga/wrapper.d.ts +0 -32
  267. package/dist/plugin.d.ts +0 -916
  268. package/dist/softconfig.d.ts +0 -67
  269. package/dist/tsconfig.tsbuildinfo +0 -1
  270. package/dist/updater/index.d.ts +0 -1
  271. package/dist/updater/index.js +0 -10
  272. package/dist/updater/index.js.map +0 -1
  273. package/dist/updater/steam.d.ts +0 -52
  274. package/dist/util/brdb.d.ts +0 -31
  275. package/dist/util/brick/checkBounds.d.ts +0 -8
  276. package/dist/util/brick/constants.d.ts +0 -18
  277. package/dist/util/brick/displayName.d.ts +0 -7
  278. package/dist/util/brick/getBounds.d.ts +0 -5
  279. package/dist/util/brick/getBrickSize.d.ts +0 -3
  280. package/dist/util/brick/getScaleAxis.d.ts +0 -3
  281. package/dist/util/brick/index.d.ts +0 -14
  282. package/dist/util/brick/rotate.d.ts +0 -16
  283. package/dist/util/brick/setOwnership.d.ts +0 -12
  284. package/dist/util/chat.d.ts +0 -23
  285. package/dist/util/color.d.ts +0 -13
  286. package/dist/util/file.d.ts +0 -5
  287. package/dist/util/index.d.ts +0 -183
  288. package/dist/util/map.d.ts +0 -6
  289. package/dist/util/pattern.d.ts +0 -1
  290. package/dist/util/time.d.ts +0 -39
  291. package/dist/util/uuid.d.ts +0 -3
  292. package/dist/util/wsl.d.ts +0 -2
  293. package/dist/version.d.ts +0 -2
  294. package/dist/webserver/backend/api.d.ts +0 -115
  295. package/dist/webserver/backend/calendar.d.ts +0 -5
  296. package/dist/webserver/backend/database.d.ts +0 -150
  297. package/dist/webserver/backend/index.d.ts +0 -30
  298. package/dist/webserver/backend/metrics.d.ts +0 -3
  299. package/dist/webserver/backend/types.d.ts +0 -114
  300. package/dist/webserver/backend/types.js +0 -3
  301. package/dist/webserver/backend/types.js.map +0 -1
  302. package/dist/webserver/backend/util.d.ts +0 -2
  303. package/dist/webserver/index.d.ts +0 -2
  304. package/dist/webserver/index.js +0 -9
  305. package/dist/webserver/index.js.map +0 -1
  306. package/public/assets/IconArrowRight-CA5_cccJ.js +0 -7
  307. package/public/assets/IconCheck-Dyq5qyY1.js +0 -17
  308. package/public/assets/IconLockOpen-D95XLORK.js +0 -7
  309. package/public/assets/IconWorld-DtARpBKX.js +0 -72
  310. package/public/assets/IconWorldPlus-CGBAsLNj.js +0 -182
  311. package/public/assets/IconX-SYtbnYKI.js +0 -12
  312. package/public/assets/app-BtOlgo__.js +0 -6
  313. package/public/assets/client-C5T7_OK9.js +0 -26
  314. package/public/assets/index-Bq9C9SqB.js +0 -10
  315. package/public/assets/index-CRRRLlCc.js +0 -10
  316. package/public/assets/index-DqHVrEeL.js +0 -10
  317. package/public/assets/index-c0qeY2gs.js +0 -10
  318. package/public/assets/index-i4mjW0og.js.map +0 -1
  319. package/public/assets/jsx-runtime-Bw5QeaCk.js +0 -10
  320. package/public/assets/jsx-runtime-DoEZbXM1.js +0 -2
  321. package/public/assets/jsx-runtime-DoEZbXM1.js.map +0 -1
  322. package/public/assets/shared/@components-DVehBp7v.js +0 -2
  323. package/public/assets/shared/@components-DVehBp7v.js.map +0 -1
  324. package/public/assets/shared/@tabler_icons-react--FJWdUou.js +0 -29458
  325. package/public/assets/shared/react-CR6vSpIu.js +0 -2
  326. package/public/assets/shared/react-dom-BznoGTRX.js +0 -2
  327. package/public/assets/shared/react_jsx-runtime-C15Zu6_p.js +0 -2
  328. package/public/assets/shared/wouter-DbmGxXTo.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"nanostores-BFqqIY_c.js","sources":["../../../node_modules/nanostores/task/index.js","../../../node_modules/nanostores/clean-stores/index.js","../../../node_modules/nanostores/lifecycle/index.js","../../../node_modules/nanostores/computed/index.js","../../../node_modules/nanostores/deep-map/path.js","../../../node_modules/nanostores/deep-map/index.js","../../../node_modules/nanostores/effect/index.js","../../../node_modules/nanostores/keep-mount/index.js","../../../node_modules/nanostores/map/index.js","../../../node_modules/nanostores/map-creator/index.js"],"sourcesContent":["let tasks = 0\nlet resolves = []\n\nexport function startTask() {\n tasks += 1\n return () => {\n tasks -= 1\n if (tasks === 0) {\n let prevResolves = resolves\n resolves = []\n for (let i of prevResolves) i()\n }\n }\n}\n\nexport function task(cb) {\n let endTask = startTask()\n let promise = cb().finally(endTask)\n promise.t = true\n return promise\n}\n\nexport function allTasks() {\n if (tasks === 0) {\n return Promise.resolve()\n } else {\n return new Promise(resolve => {\n resolves.push(resolve)\n })\n }\n}\n\nexport function cleanTasks() {\n tasks = 0\n}\n","import { cleanTasks } from '../task/index.js'\n\nexport let clean = Symbol('clean')\n\nexport let cleanStores = (...stores) => {\n if (process.env.NODE_ENV === 'production') {\n throw new Error(\n 'cleanStores() can be used only during development or tests'\n )\n }\n cleanTasks()\n for (let $store of stores) {\n if ($store) {\n if ($store.mocked) delete $store.mocked\n if ($store[clean]) $store[clean]()\n }\n }\n}\n","import { clean } from '../clean-stores/index.js'\n\nconst START = 0\nconst STOP = 1\nconst SET = 2\nconst NOTIFY = 3\nconst MOUNT = 5\nconst UNMOUNT = 6\nconst REVERT_MUTATION = 10\n\nexport let on = (object, listener, eventKey, mutateStore) => {\n object.events = object.events || {}\n if (!object.events[eventKey + REVERT_MUTATION]) {\n object.events[eventKey + REVERT_MUTATION] = mutateStore(eventProps => {\n // eslint-disable-next-line no-sequences\n object.events[eventKey].reduceRight((event, l) => (l(event), event), {\n shared: {},\n ...eventProps\n })\n })\n }\n object.events[eventKey] = object.events[eventKey] || []\n object.events[eventKey].push(listener)\n return () => {\n let currentListeners = object.events[eventKey]\n let index = currentListeners.indexOf(listener)\n currentListeners.splice(index, 1)\n if (!currentListeners.length) {\n delete object.events[eventKey]\n object.events[eventKey + REVERT_MUTATION]()\n delete object.events[eventKey + REVERT_MUTATION]\n }\n }\n}\n\nexport let onStart = ($store, listener) =>\n on($store, listener, START, runListeners => {\n let originListen = $store.listen\n $store.listen = arg => {\n if (!$store.lc && !$store.starting) {\n $store.starting = true\n runListeners()\n delete $store.starting\n }\n return originListen(arg)\n }\n return () => {\n $store.listen = originListen\n }\n })\n\nexport let onStop = ($store, listener) =>\n on($store, listener, STOP, runListeners => {\n let originOff = $store.off\n $store.off = () => {\n runListeners()\n originOff()\n }\n return () => {\n $store.off = originOff\n }\n })\n\nexport let onSet = ($store, listener) =>\n on($store, listener, SET, runListeners => {\n let originSet = $store.set\n let originSetKey = $store.setKey\n if ($store.setKey) {\n $store.setKey = (changed, changedValue) => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({\n abort,\n changed,\n newValue: { ...$store.value, [changed]: changedValue }\n })\n if (!isAborted) return originSetKey(changed, changedValue)\n }\n }\n $store.set = newValue => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({ abort, newValue })\n if (!isAborted) return originSet(newValue)\n }\n return () => {\n $store.set = originSet\n $store.setKey = originSetKey\n }\n })\n\nexport let onNotify = ($store, listener) =>\n on($store, listener, NOTIFY, runListeners => {\n let originNotify = $store.notify\n $store.notify = (oldValue, changed) => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({ abort, changed, oldValue })\n if (!isAborted) return originNotify(oldValue, changed)\n }\n return () => {\n $store.notify = originNotify\n }\n })\n\nexport let STORE_UNMOUNT_DELAY = 1000\n\nexport let onMount = ($store, initialize) => {\n let listener = payload => {\n let destroy = initialize(payload)\n if (destroy) $store.events[UNMOUNT].push(destroy)\n }\n return on($store, listener, MOUNT, runListeners => {\n let originListen = $store.listen\n $store.listen = (...args) => {\n if (!$store.lc && !$store.active) {\n $store.active = true\n runListeners()\n }\n return originListen(...args)\n }\n\n let originOff = $store.off\n $store.events[UNMOUNT] = []\n $store.off = () => {\n originOff()\n setTimeout(() => {\n if ($store.active && !$store.lc) {\n $store.active = false\n for (let destroy of $store.events[UNMOUNT]) destroy()\n $store.events[UNMOUNT] = []\n }\n }, STORE_UNMOUNT_DELAY)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n let originClean = $store[clean]\n $store[clean] = () => {\n for (let destroy of $store.events[UNMOUNT]) destroy()\n $store.events[UNMOUNT] = []\n $store.active = false\n originClean()\n }\n }\n\n return () => {\n $store.listen = originListen\n $store.off = originOff\n }\n })\n}\n","import { atom, epoch } from '../atom/index.js'\nimport { onMount } from '../lifecycle/index.js'\n\nlet computedStore = (stores, cb, batched) => {\n if (!Array.isArray(stores)) stores = [stores]\n\n let previousArgs\n let currentEpoch\n let set = () => {\n if (currentEpoch === epoch) return\n currentEpoch = epoch\n let args = stores.map($store => $store.get())\n if (!previousArgs || args.some((arg, i) => arg !== previousArgs[i])) {\n previousArgs = args\n let value = cb(...args)\n if (value && value.then && value.t) {\n value.then(asyncValue => {\n if (previousArgs === args) {\n // Prevent a stale set\n $computed.set(asyncValue)\n }\n })\n } else {\n $computed.set(value)\n currentEpoch = epoch\n }\n }\n }\n let $computed = atom(undefined)\n let get = $computed.get\n $computed.get = () => {\n set()\n return get()\n }\n\n let timer\n let run = batched\n ? () => {\n clearTimeout(timer)\n timer = setTimeout(set)\n }\n : set\n\n onMount($computed, () => {\n let unbinds = stores.map($store => $store.listen(run))\n set()\n return () => {\n for (let unbind of unbinds) unbind()\n }\n })\n\n return $computed\n}\n\nexport let computed = (stores, fn) => computedStore(stores, fn)\nexport let batched = (stores, fn) => computedStore(stores, fn, true)\n","export function getPath(obj, path) {\n let allKeys = getAllKeysFromPath(path)\n let res = obj\n for (let key of allKeys) {\n if (res === undefined) {\n break\n }\n res = res[key]\n }\n return res\n}\n\nexport function setPath(obj, path, value) {\n return setByKey(obj != null ? obj : {}, getAllKeysFromPath(path), value)\n}\n\nexport function setByKey(obj, splittedKeys, value) {\n let key = splittedKeys[0]\n let copy = Array.isArray(obj) ? [...obj] : { ...obj }\n if (splittedKeys.length === 1) {\n if (value === undefined) {\n if (Array.isArray(copy)) {\n copy.splice(key, 1)\n } else {\n delete copy[key]\n }\n } else {\n copy[key] = value\n }\n return copy\n }\n ensureKey(copy, key, splittedKeys[1])\n copy[key] = setByKey(copy[key], splittedKeys.slice(1), value)\n return copy\n}\n\nconst ARRAY_INDEX = /(.*)\\[(\\d+)\\]/\n\nfunction getAllKeysFromPath(path) {\n return path.split('.').flatMap(key => getKeyAndIndicesFromKey(key))\n}\n\nfunction getKeyAndIndicesFromKey(key) {\n if (ARRAY_INDEX.test(key)) {\n let [, keyPart, index] = key.match(ARRAY_INDEX)\n return [...getKeyAndIndicesFromKey(keyPart), index]\n }\n return [key]\n}\n\nconst IS_NUMBER = /^\\d+$/\nfunction ensureKey(obj, key, nextKey) {\n if (key in obj) {\n return\n }\n\n let isNum = IS_NUMBER.test(nextKey)\n\n if (isNum) {\n obj[key] = Array(parseInt(nextKey, 10) + 1)\n } else {\n obj[key] = {}\n }\n}\n","import { atom } from '../atom/index.js'\nimport { getPath, setPath } from './path.js'\n\nexport { getPath, setByKey, setPath } from './path.js'\n\nexport function deepMap(initial = {}) {\n let $deepMap = atom(initial)\n $deepMap.setKey = (key, value) => {\n if (getPath($deepMap.value, key) !== value) {\n let oldValue = $deepMap.value\n $deepMap.value = setPath($deepMap.value, key, value)\n $deepMap.notify(oldValue, key)\n }\n }\n return $deepMap\n}\n\nexport function getKey(store, key) {\n let value = store.get()\n return getPath(value, key)\n}\n","export let effect = (stores, callback) => {\n if (!Array.isArray(stores)) stores = [stores]\n\n let unbinds = []\n let lastRunUnbind\n\n let run = () => {\n lastRunUnbind && lastRunUnbind()\n\n let values = stores.map(store => store.get())\n lastRunUnbind = callback(...values)\n }\n\n unbinds = stores.map(store => store.listen(run))\n run()\n\n return () => {\n unbinds.forEach(unbind => unbind())\n lastRunUnbind && lastRunUnbind()\n }\n}\n","export let keepMount = $store => {\n $store.listen(() => {})\n}\n","import { atom } from '../atom/index.js'\n\nexport let map = (initial = {}) => {\n let $map = atom(initial)\n\n $map.setKey = function (key, value) {\n let oldMap = $map.value\n if (typeof value === 'undefined' && key in $map.value) {\n $map.value = { ...$map.value }\n delete $map.value[key]\n $map.notify(oldMap, key)\n } else if ($map.value[key] !== value) {\n $map.value = {\n ...$map.value,\n [key]: value\n }\n $map.notify(oldMap, key)\n }\n }\n\n return $map\n}\n","import { clean } from '../clean-stores/index.js'\nimport { onMount } from '../lifecycle/index.js'\nimport { map } from '../map/index.js'\n\nexport function mapCreator(init) {\n let Creator = (id, ...args) => {\n if (!Creator.cache[id]) {\n Creator.cache[id] = Creator.build(id, ...args)\n }\n return Creator.cache[id]\n }\n\n Creator.build = (id, ...args) => {\n let store = map({ id })\n onMount(store, () => {\n let destroy\n if (init) destroy = init(store, id, ...args)\n return () => {\n delete Creator.cache[id]\n if (destroy) destroy()\n }\n })\n return store\n }\n\n Creator.cache = {}\n\n if (process.env.NODE_ENV !== 'production') {\n Creator[clean] = () => {\n for (let id in Creator.cache) {\n Creator.cache[id][clean]()\n }\n Creator.cache = {}\n }\n }\n\n return Creator\n}\n"],"names":["tasks","resolves","startTask","prevResolves","i","task","cb","endTask","promise","allTasks","resolve","cleanTasks","clean","cleanStores","stores","START","STOP","SET","NOTIFY","MOUNT","UNMOUNT","REVERT_MUTATION","on","object","listener","eventKey","mutateStore","eventProps","event","l","currentListeners","index","onStart","$store","runListeners","originListen","arg","onStop","originOff","onSet","originSet","originSetKey","changed","changedValue","isAborted","newValue","onNotify","originNotify","oldValue","STORE_UNMOUNT_DELAY","onMount","initialize","payload","destroy","args","computedStore","batched","previousArgs","currentEpoch","set","epoch","value","asyncValue","$computed","atom","get","timer","run","unbinds","unbind","computed","fn","getPath","obj","path","allKeys","getAllKeysFromPath","res","key","setPath","setByKey","splittedKeys","copy","ensureKey","ARRAY_INDEX","getKeyAndIndicesFromKey","keyPart","IS_NUMBER","nextKey","deepMap","initial","$deepMap","getKey","store","effect","callback","lastRunUnbind","values","keepMount","map","$map","oldMap","mapCreator","init","Creator","id"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}
1
+ {"version":3,"file":"nanostores-BFqqIY_c.js","sources":["../../../node_modules/nanostores/task/index.js","../../../node_modules/nanostores/clean-stores/index.js","../../../node_modules/nanostores/lifecycle/index.js","../../../node_modules/nanostores/computed/index.js","../../../node_modules/nanostores/deep-map/path.js","../../../node_modules/nanostores/deep-map/index.js","../../../node_modules/nanostores/effect/index.js","../../../node_modules/nanostores/keep-mount/index.js","../../../node_modules/nanostores/map/index.js","../../../node_modules/nanostores/map-creator/index.js"],"sourcesContent":["let tasks = 0\nlet resolves = []\n\nexport function startTask() {\n tasks += 1\n return () => {\n tasks -= 1\n if (tasks === 0) {\n let prevResolves = resolves\n resolves = []\n for (let i of prevResolves) i()\n }\n }\n}\n\nexport function task(cb) {\n let endTask = startTask()\n let promise = cb().finally(endTask)\n promise.t = true\n return promise\n}\n\nexport function allTasks() {\n if (tasks === 0) {\n return Promise.resolve()\n } else {\n return new Promise(resolve => {\n resolves.push(resolve)\n })\n }\n}\n\nexport function cleanTasks() {\n tasks = 0\n}\n","import { cleanTasks } from '../task/index.js'\n\nexport let clean = Symbol('clean')\n\nexport let cleanStores = (...stores) => {\n if (process.env.NODE_ENV === 'production') {\n throw new Error(\n 'cleanStores() can be used only during development or tests'\n )\n }\n cleanTasks()\n for (let $store of stores) {\n if ($store) {\n if ($store.mocked) delete $store.mocked\n if ($store[clean]) $store[clean]()\n }\n }\n}\n","import { clean } from '../clean-stores/index.js'\n\nconst START = 0\nconst STOP = 1\nconst SET = 2\nconst NOTIFY = 3\nconst MOUNT = 5\nconst UNMOUNT = 6\nconst REVERT_MUTATION = 10\n\nexport let on = (object, listener, eventKey, mutateStore) => {\n object.events = object.events || {}\n if (!object.events[eventKey + REVERT_MUTATION]) {\n object.events[eventKey + REVERT_MUTATION] = mutateStore(eventProps => {\n // eslint-disable-next-line no-sequences\n object.events[eventKey].reduceRight((event, l) => (l(event), event), {\n shared: {},\n ...eventProps\n })\n })\n }\n object.events[eventKey] = object.events[eventKey] || []\n object.events[eventKey].push(listener)\n return () => {\n let currentListeners = object.events[eventKey]\n let index = currentListeners.indexOf(listener)\n currentListeners.splice(index, 1)\n if (!currentListeners.length) {\n delete object.events[eventKey]\n object.events[eventKey + REVERT_MUTATION]()\n delete object.events[eventKey + REVERT_MUTATION]\n }\n }\n}\n\nexport let onStart = ($store, listener) =>\n on($store, listener, START, runListeners => {\n let originListen = $store.listen\n $store.listen = arg => {\n if (!$store.lc && !$store.starting) {\n $store.starting = true\n runListeners()\n delete $store.starting\n }\n return originListen(arg)\n }\n return () => {\n $store.listen = originListen\n }\n })\n\nexport let onStop = ($store, listener) =>\n on($store, listener, STOP, runListeners => {\n let originOff = $store.off\n $store.off = () => {\n runListeners()\n originOff()\n }\n return () => {\n $store.off = originOff\n }\n })\n\nexport let onSet = ($store, listener) =>\n on($store, listener, SET, runListeners => {\n let originSet = $store.set\n let originSetKey = $store.setKey\n if ($store.setKey) {\n $store.setKey = (changed, changedValue) => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({\n abort,\n changed,\n newValue: { ...$store.value, [changed]: changedValue }\n })\n if (!isAborted) return originSetKey(changed, changedValue)\n }\n }\n $store.set = newValue => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({ abort, newValue })\n if (!isAborted) return originSet(newValue)\n }\n return () => {\n $store.set = originSet\n $store.setKey = originSetKey\n }\n })\n\nexport let onNotify = ($store, listener) =>\n on($store, listener, NOTIFY, runListeners => {\n let originNotify = $store.notify\n $store.notify = (oldValue, changed) => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({ abort, changed, oldValue })\n if (!isAborted) return originNotify(oldValue, changed)\n }\n return () => {\n $store.notify = originNotify\n }\n })\n\nexport let STORE_UNMOUNT_DELAY = 1000\n\nexport let onMount = ($store, initialize) => {\n let listener = payload => {\n let destroy = initialize(payload)\n if (destroy) $store.events[UNMOUNT].push(destroy)\n }\n return on($store, listener, MOUNT, runListeners => {\n let originListen = $store.listen\n $store.listen = (...args) => {\n if (!$store.lc && !$store.active) {\n $store.active = true\n runListeners()\n }\n return originListen(...args)\n }\n\n let originOff = $store.off\n $store.events[UNMOUNT] = []\n $store.off = () => {\n originOff()\n setTimeout(() => {\n if ($store.active && !$store.lc) {\n $store.active = false\n for (let destroy of $store.events[UNMOUNT]) destroy()\n $store.events[UNMOUNT] = []\n }\n }, STORE_UNMOUNT_DELAY)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n let originClean = $store[clean]\n $store[clean] = () => {\n for (let destroy of $store.events[UNMOUNT]) destroy()\n $store.events[UNMOUNT] = []\n $store.active = false\n originClean()\n }\n }\n\n return () => {\n $store.listen = originListen\n $store.off = originOff\n }\n })\n}\n","import { atom, epoch } from '../atom/index.js'\nimport { onMount } from '../lifecycle/index.js'\n\nlet computedStore = (stores, cb, batched) => {\n if (!Array.isArray(stores)) stores = [stores]\n\n let previousArgs\n let currentEpoch\n let set = () => {\n if (currentEpoch === epoch) return\n currentEpoch = epoch\n let args = stores.map($store => $store.get())\n if (!previousArgs || args.some((arg, i) => arg !== previousArgs[i])) {\n previousArgs = args\n let value = cb(...args)\n if (value && value.then && value.t) {\n value.then(asyncValue => {\n if (previousArgs === args) {\n // Prevent a stale set\n $computed.set(asyncValue)\n }\n })\n } else {\n $computed.set(value)\n currentEpoch = epoch\n }\n }\n }\n let $computed = atom(undefined)\n let get = $computed.get\n $computed.get = () => {\n set()\n return get()\n }\n\n let timer\n let run = batched\n ? () => {\n clearTimeout(timer)\n timer = setTimeout(set)\n }\n : set\n\n onMount($computed, () => {\n let unbinds = stores.map($store => $store.listen(run))\n set()\n return () => {\n for (let unbind of unbinds) unbind()\n }\n })\n\n return $computed\n}\n\nexport let computed = (stores, fn) => computedStore(stores, fn)\nexport let batched = (stores, fn) => computedStore(stores, fn, true)\n","export function getPath(obj, path) {\n let allKeys = getAllKeysFromPath(path)\n let res = obj\n for (let key of allKeys) {\n if (res === undefined) {\n break\n }\n res = res[key]\n }\n return res\n}\n\nexport function setPath(obj, path, value) {\n return setByKey(obj != null ? obj : {}, getAllKeysFromPath(path), value)\n}\n\nexport function setByKey(obj, splittedKeys, value) {\n let key = splittedKeys[0]\n let copy = Array.isArray(obj) ? [...obj] : { ...obj }\n if (splittedKeys.length === 1) {\n if (value === undefined) {\n if (Array.isArray(copy)) {\n copy.splice(key, 1)\n } else {\n delete copy[key]\n }\n } else {\n copy[key] = value\n }\n return copy\n }\n ensureKey(copy, key, splittedKeys[1])\n copy[key] = setByKey(copy[key], splittedKeys.slice(1), value)\n return copy\n}\n\nconst ARRAY_INDEX = /(.*)\\[(\\d+)\\]/\n\nfunction getAllKeysFromPath(path) {\n return path.split('.').flatMap(key => getKeyAndIndicesFromKey(key))\n}\n\nfunction getKeyAndIndicesFromKey(key) {\n if (ARRAY_INDEX.test(key)) {\n let [, keyPart, index] = key.match(ARRAY_INDEX)\n return [...getKeyAndIndicesFromKey(keyPart), index]\n }\n return [key]\n}\n\nconst IS_NUMBER = /^\\d+$/\nfunction ensureKey(obj, key, nextKey) {\n if (key in obj) {\n return\n }\n\n let isNum = IS_NUMBER.test(nextKey)\n\n if (isNum) {\n obj[key] = Array(parseInt(nextKey, 10) + 1)\n } else {\n obj[key] = {}\n }\n}\n","import { atom } from '../atom/index.js'\nimport { getPath, setPath } from './path.js'\n\nexport { getPath, setByKey, setPath } from './path.js'\n\nexport function deepMap(initial = {}) {\n let $deepMap = atom(initial)\n $deepMap.setKey = (key, value) => {\n if (getPath($deepMap.value, key) !== value) {\n let oldValue = $deepMap.value\n $deepMap.value = setPath($deepMap.value, key, value)\n $deepMap.notify(oldValue, key)\n }\n }\n return $deepMap\n}\n\nexport function getKey(store, key) {\n let value = store.get()\n return getPath(value, key)\n}\n","export let effect = (stores, callback) => {\n if (!Array.isArray(stores)) stores = [stores]\n\n let unbinds = []\n let lastRunUnbind\n\n let run = () => {\n lastRunUnbind && lastRunUnbind()\n\n let values = stores.map(store => store.get())\n lastRunUnbind = callback(...values)\n }\n\n unbinds = stores.map(store => store.listen(run))\n run()\n\n return () => {\n unbinds.forEach(unbind => unbind())\n lastRunUnbind && lastRunUnbind()\n }\n}\n","export let keepMount = $store => {\n $store.listen(() => {})\n}\n","import { atom } from '../atom/index.js'\n\nexport let map = (initial = {}) => {\n let $map = atom(initial)\n\n $map.setKey = function (key, value) {\n let oldMap = $map.value\n if (typeof value === 'undefined' && key in $map.value) {\n $map.value = { ...$map.value }\n delete $map.value[key]\n $map.notify(oldMap, key)\n } else if ($map.value[key] !== value) {\n $map.value = {\n ...$map.value,\n [key]: value\n }\n $map.notify(oldMap, key)\n }\n }\n\n return $map\n}\n","import { clean } from '../clean-stores/index.js'\nimport { onMount } from '../lifecycle/index.js'\nimport { map } from '../map/index.js'\n\nexport function mapCreator(init) {\n let Creator = (id, ...args) => {\n if (!Creator.cache[id]) {\n Creator.cache[id] = Creator.build(id, ...args)\n }\n return Creator.cache[id]\n }\n\n Creator.build = (id, ...args) => {\n let store = map({ id })\n onMount(store, () => {\n let destroy\n if (init) destroy = init(store, id, ...args)\n return () => {\n delete Creator.cache[id]\n if (destroy) destroy()\n }\n })\n return store\n }\n\n Creator.cache = {}\n\n if (process.env.NODE_ENV !== 'production') {\n Creator[clean] = () => {\n for (let id in Creator.cache) {\n Creator.cache[id][clean]()\n }\n Creator.cache = {}\n }\n }\n\n return Creator\n}\n"],"names":["tasks","resolves","startTask","prevResolves","i","task","cb","endTask","promise","allTasks","resolve","cleanTasks","clean","cleanStores","stores","START","STOP","SET","NOTIFY","MOUNT","UNMOUNT","REVERT_MUTATION","on","object","listener","eventKey","mutateStore","eventProps","event","l","currentListeners","index","onStart","$store","runListeners","originListen","arg","onStop","originOff","onSet","originSet","originSetKey","changed","changedValue","isAborted","newValue","onNotify","originNotify","oldValue","STORE_UNMOUNT_DELAY","onMount","initialize","payload","destroy","args","computedStore","batched","previousArgs","currentEpoch","set","epoch","value","asyncValue","$computed","atom","get","timer","run","unbinds","unbind","computed","fn","getPath","obj","path","allKeys","getAllKeysFromPath","res","key","setPath","setByKey","splittedKeys","copy","ensureKey","ARRAY_INDEX","getKeyAndIndicesFromKey","keyPart","IS_NUMBER","nextKey","deepMap","initial","$deepMap","getKey","store","effect","callback","lastRunUnbind","values","keepMount","map","$map","oldMap","mapCreator","init","Creator","id"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}
@@ -0,0 +1,2 @@
1
+ import{g as r}from"../_commonjsHelpers-CE1G-McA.js";import{r as o}from"../index-CtCtK5BX.js";import"../index-D0OPOe3j.js";var t=o();const p=r(t);export{p as default};
2
+ //# sourceMappingURL=react-dom-8Rcmh_FG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-dom-BznoGTRX.js","sources":["../../../node_modules/react-dom/index.js?commonjs-entry"],"sourcesContent":["import { getDefaultExportFromCjs } from \"\u0000commonjsHelpers.js\";\nimport { __require as requireReactDom } from \"/home/cake/git/brickadia/omegga/node_modules/react-dom/index.js\";\nvar reactDomExports = requireReactDom();\nexport { reactDomExports as __moduleExports };\nexport default /*@__PURE__*/getDefaultExportFromCjs(reactDomExports);"],"names":["reactDomExports","requireReactDom","index","getDefaultExportFromCjs"],"mappings":"0HAEA,IAAIA,EAAkBC,EAAe,EAErC,MAAAC,EAA4BC,EAAwBH,CAAe","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"react-dom-8Rcmh_FG.js","sources":["../../../node_modules/react-dom/index.js?commonjs-entry"],"sourcesContent":["import { getDefaultExportFromCjs } from \"\u0000commonjsHelpers.js\";\nimport { __require as requireReactDom } from \"/home/cake/git/brickadia/omegga/node_modules/react-dom/index.js\";\nvar reactDomExports = requireReactDom();\nexport { reactDomExports as __moduleExports };\nexport default /*@__PURE__*/getDefaultExportFromCjs(reactDomExports);"],"names":["reactDomExports","requireReactDom","index","getDefaultExportFromCjs"],"mappings":"0HAEA,IAAIA,EAAkBC,EAAe,EAErC,MAAAC,EAA4BC,EAAwBH,CAAe","x_google_ignoreList":[0]}
@@ -0,0 +1,2 @@
1
+ import{g as r}from"../_commonjsHelpers-CE1G-McA.js";import{r as t}from"../index-D0OPOe3j.js";var e=t();const s=r(e);export{s as default};
2
+ //# sourceMappingURL=react-iXLZ_Bod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-CR6vSpIu.js","sources":["../../../node_modules/react/index.js?commonjs-entry"],"sourcesContent":["import { getDefaultExportFromCjs } from \"\u0000commonjsHelpers.js\";\nimport { __require as requireReact } from \"/home/cake/git/brickadia/omegga/node_modules/react/index.js\";\nvar reactExports = requireReact();\nexport { reactExports as __moduleExports };\nexport default /*@__PURE__*/getDefaultExportFromCjs(reactExports);"],"names":["reactExports","requireReact","index","getDefaultExportFromCjs"],"mappings":"6FAEA,IAAIA,EAAeC,EAAY,EAE/B,MAAAC,EAA4BC,EAAwBH,CAAY","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"react-iXLZ_Bod.js","sources":["../../../node_modules/react/index.js?commonjs-entry"],"sourcesContent":["import { getDefaultExportFromCjs } from \"\u0000commonjsHelpers.js\";\nimport { __require as requireReact } from \"/home/cake/git/brickadia/omegga/node_modules/react/index.js\";\nvar reactExports = requireReact();\nexport { reactExports as __moduleExports };\nexport default /*@__PURE__*/getDefaultExportFromCjs(reactExports);"],"names":["reactExports","requireReact","index","getDefaultExportFromCjs"],"mappings":"6FAEA,IAAIA,EAAeC,EAAY,EAE/B,MAAAC,EAA4BC,EAAwBH,CAAY","x_google_ignoreList":[0]}
@@ -0,0 +1,2 @@
1
+ import{g as r}from"../_commonjsHelpers-CE1G-McA.js";import{r as t}from"../jsx-runtime-DldvXD6N.js";var e=t();const m=r(e);export{m as default};
2
+ //# sourceMappingURL=react_jsx-runtime-BwhiLcBy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react_jsx-runtime-C15Zu6_p.js","sources":["../../../node_modules/react/jsx-runtime.js?commonjs-entry"],"sourcesContent":["import { getDefaultExportFromCjs } from \"\u0000commonjsHelpers.js\";\nimport { __require as requireJsxRuntime } from \"/home/cake/git/brickadia/omegga/node_modules/react/jsx-runtime.js\";\nvar jsxRuntimeExports = requireJsxRuntime();\nexport { jsxRuntimeExports as __moduleExports };\nexport default /*@__PURE__*/getDefaultExportFromCjs(jsxRuntimeExports);"],"names":["jsxRuntimeExports","requireJsxRuntime","jsxRuntime","getDefaultExportFromCjs"],"mappings":"mGAEA,IAAIA,EAAoBC,EAAiB,EAEzC,MAAAC,EAA4BC,EAAwBH,CAAiB","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"react_jsx-runtime-BwhiLcBy.js","sources":["../../../node_modules/react/jsx-runtime.js?commonjs-entry"],"sourcesContent":["import { getDefaultExportFromCjs } from \"\u0000commonjsHelpers.js\";\nimport { __require as requireJsxRuntime } from \"/home/cake/git/brickadia/omegga/node_modules/react/jsx-runtime.js\";\nvar jsxRuntimeExports = requireJsxRuntime();\nexport { jsxRuntimeExports as __moduleExports };\nexport default /*@__PURE__*/getDefaultExportFromCjs(jsxRuntimeExports);"],"names":["jsxRuntimeExports","requireJsxRuntime","jsxRuntime","getDefaultExportFromCjs"],"mappings":"mGAEA,IAAIA,EAAoBC,EAAiB,EAEzC,MAAAC,EAA4BC,EAAwBH,CAAiB","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- import{L as r,d as u,R as m,b as i,S as R,m as c,a as h,e as p,u as S,f as L,g as d,h as f}from"../index-CRRRLlCc.js";import"../index-i4mjW0og.js";import"../index-c0qeY2gs.js";import"../_commonjsHelpers-CE1G-McA.js";export{r as Link,u as Redirect,m as Route,i as Router,R as Switch,c as matchRoute,h as useLocation,p as useParams,S as useRoute,L as useRouter,d as useSearch,f as useSearchParams};
2
- //# sourceMappingURL=wouter-DbmGxXTo.js.map
1
+ import{L as r,d as u,R as m,b as i,S as R,m as c,a as h,e as p,u as S,f as L,g as d,h as f}from"../index-2cgXLhrt.js";import"../index-CrN8I5Az.js";import"../index-D0OPOe3j.js";import"../_commonjsHelpers-CE1G-McA.js";export{r as Link,u as Redirect,m as Route,i as Router,R as Switch,c as matchRoute,h as useLocation,p as useParams,S as useRoute,L as useRouter,d as useSearch,f as useSearchParams};
2
+ //# sourceMappingURL=wouter-CUC1caxu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wouter-CUC1caxu.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/public/auth.html CHANGED
@@ -1242,23 +1242,23 @@ body {
1242
1242
  }
1243
1243
  }
1244
1244
  </style>
1245
- <script type="importmap">{"imports":{"react":"./assets/shared/react-CR6vSpIu.js","react-dom":"./assets/shared/react-dom-BznoGTRX.js","react/jsx-runtime":"./assets/shared/react_jsx-runtime-C15Zu6_p.js","@nanostores/react":"./assets/shared/@nanostores_react-HTG3s0lp.js","nanostores":"./assets/shared/nanostores-BFqqIY_c.js","@tabler/icons-react":"./assets/shared/@tabler_icons-react--FJWdUou.js","@hooks":"./assets/shared/@hooks-DfTzYBIL.js","wouter":"./assets/shared/wouter-DbmGxXTo.js","@utils":"./assets/shared/@utils-BA2UvC9c.js","@components":"./assets/shared/@components-DVehBp7v.js"}}</script>
1246
- <script type="module" crossorigin src="/assets/auth-CvxEWAMc.js"></script>
1247
- <link rel="modulepreload" crossorigin href="/assets/index-c0qeY2gs.js">
1248
- <link rel="modulepreload" crossorigin href="/assets/index-DqHVrEeL.js">
1249
- <link rel="modulepreload" crossorigin href="/assets/client-C5T7_OK9.js">
1250
- <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-Bw5QeaCk.js">
1251
- <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-DoEZbXM1.js">
1245
+ <script type="importmap">{"imports":{"react":"./assets/shared/react-iXLZ_Bod.js","react-dom":"./assets/shared/react-dom-8Rcmh_FG.js","react/jsx-runtime":"./assets/shared/react_jsx-runtime-BwhiLcBy.js","@nanostores/react":"./assets/shared/@nanostores_react-DJPF1Eqx.js","nanostores":"./assets/shared/nanostores-BFqqIY_c.js","@tabler/icons-react":"./assets/shared/@tabler_icons-react-B4bN8gHc.js","@hooks":"./assets/shared/@hooks-Ch_hJYh0.js","wouter":"./assets/shared/wouter-CUC1caxu.js","@utils":"./assets/shared/@utils-BA2UvC9c.js","@components":"./assets/shared/@components-DdtLZOaA.js"}}</script>
1246
+ <script type="module" crossorigin src="/assets/auth-6N37o421.js"></script>
1247
+ <link rel="modulepreload" crossorigin href="/assets/index-D0OPOe3j.js">
1248
+ <link rel="modulepreload" crossorigin href="/assets/index-CtCtK5BX.js">
1249
+ <link rel="modulepreload" crossorigin href="/assets/client-BT1QYH0O.js">
1250
+ <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-DldvXD6N.js">
1251
+ <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-BX5r4UiA.js">
1252
1252
  <link rel="modulepreload" crossorigin href="/assets/_commonjsHelpers-CE1G-McA.js">
1253
- <link rel="modulepreload" crossorigin href="/assets/index-i4mjW0og.js">
1253
+ <link rel="modulepreload" crossorigin href="/assets/index-CrN8I5Az.js">
1254
1254
  <link rel="modulepreload" crossorigin href="/assets/index-CJ4e7_2M.js">
1255
- <link rel="modulepreload" crossorigin href="/assets/shared/@nanostores_react-HTG3s0lp.js">
1255
+ <link rel="modulepreload" crossorigin href="/assets/shared/@nanostores_react-DJPF1Eqx.js">
1256
1256
  <link rel="modulepreload" crossorigin href="/assets/index-CSV4ZXsq.js">
1257
- <link rel="modulepreload" crossorigin href="/assets/IconCheck-Dyq5qyY1.js">
1258
- <link rel="modulepreload" crossorigin href="/assets/IconX-SYtbnYKI.js">
1259
- <link rel="modulepreload" crossorigin href="/assets/index-DYcAgWjJ.js">
1260
- <link rel="modulepreload" crossorigin href="/assets/IconArrowRight-CA5_cccJ.js">
1261
- <link rel="modulepreload" crossorigin href="/assets/IconLockOpen-D95XLORK.js">
1257
+ <link rel="modulepreload" crossorigin href="/assets/IconCheck-DOe3u7iH.js">
1258
+ <link rel="modulepreload" crossorigin href="/assets/IconX-CvmO0bbE.js">
1259
+ <link rel="modulepreload" crossorigin href="/assets/index-DY750sgZ.js">
1260
+ <link rel="modulepreload" crossorigin href="/assets/IconArrowRight-BuVxhqKX.js">
1261
+ <link rel="modulepreload" crossorigin href="/assets/IconLockOpen-Bs7Tsf6u.js">
1262
1262
  </head>
1263
1263
  <body>
1264
1264
  <div id="root"></div>
@@ -1,4 +1,4 @@
1
- import { randomUUID as random } from 'crypto';
1
+ import { randomUUID as random } from 'node:crypto';
2
2
 
3
3
  export interface BRColor {
4
4
  r: number;
@@ -1592,6 +1592,18 @@ export interface OmeggaPlayer {
1592
1592
  * @param minigameIndex minigame index
1593
1593
  */
1594
1594
  getScore(minigameIndex: number): Promise<number>;
1595
+ /**
1596
+ * Set leaderboard value
1597
+ * @param key leaderboard key (Score, Kills, Deaths, CorrectGuesses)
1598
+ * @param value leaderboard value
1599
+ */
1600
+ setLeaderboard(key: string, value: number): void;
1601
+ /**
1602
+ * Get leaderboard value
1603
+ * @param key leaderboard key (Score, Kills, Deaths, CorrectGuesses)
1604
+ * @return leaderboard value
1605
+ */
1606
+ getLeaderboard(key: string): Promise<number | null>;
1595
1607
  }
1596
1608
  export interface StaticPlayer {
1597
1609
  /**
@@ -1671,6 +1683,22 @@ export interface StaticPlayer {
1671
1683
  * @param minigameIndex minigame index
1672
1684
  */
1673
1685
  getScore(omegga: OmeggaLike, target: string | OmeggaPlayer, minigameIndex: number): Promise<number>;
1686
+ /**
1687
+ * Set leaderboard value
1688
+ * @param omegga Omegga instance
1689
+ * @param target Player or player name/id
1690
+ * @param key leaderboard key (Score, Kills, Deaths, CorrectGuesses)
1691
+ * @param value leaderboard value
1692
+ */
1693
+ setLeaderboard(omegga: OmeggaLike, target: string | OmeggaPlayer, key: string, value: number): void;
1694
+ /**
1695
+ * Get leaderboard value
1696
+ * @param omegga Omegga instance
1697
+ * @param target Player or player name/id
1698
+ * @param key leaderboard key (Score, Kills, Deaths, CorrectGuesses)
1699
+ * @return leaderboard value
1700
+ */
1701
+ getLeaderboard(omegga: OmeggaLike, target: string | OmeggaPlayer, key: string): Promise<number | null>;
1674
1702
  }
1675
1703
  export interface InjectedCommands {
1676
1704
  /** Get server status */
@@ -1750,6 +1778,8 @@ export interface OmeggaLike extends OmeggaCore, LogWrangling, InjectedCommands,
1750
1778
  worldPath: string;
1751
1779
  /** path to presets */
1752
1780
  presetPath: string;
1781
+ /** path to containing dir */
1782
+ path: string;
1753
1783
  /** get a plugin's name, documentation, and loaded status
1754
1784
  * If run in an unsafe plugin, the emitPlugin method sends events from
1755
1785
  * an "unsafe" plugin
@@ -1,3 +0,0 @@
1
- import { IConfig } from "../config/types";
2
- export declare function write(serverPath: string, config: IConfig): void;
3
- export declare function read(): void;
@@ -1,65 +0,0 @@
1
- import { BRColor, BRVector } from './types';
2
- export type Preset<T extends string, D> = {
3
- formatVersion?: '1';
4
- presetVersion?: '1';
5
- type?: T;
6
- data?: D;
7
- };
8
- export type EnvironmentPreset = Preset<'Environment', {
9
- groups?: {
10
- Sky?: {
11
- timeOfDay?: number;
12
- timeChangeSpeed?: number;
13
- sunAngle?: number;
14
- sunScale?: number;
15
- sunHorizonScaleMultiplier?: number;
16
- sunlightColor?: BRColor;
17
- skyIntensity?: number;
18
- skyColor?: BRColor;
19
- moonScale?: number;
20
- moonlightIntensity?: number;
21
- moonlightColor?: BRColor;
22
- starsIntensity?: number;
23
- starsColor?: BRColor;
24
- auroraIntensity?: number;
25
- weatherIntensity?: number;
26
- rainSnow?: number;
27
- cloudCoverage?: number;
28
- cloudSpeedMultiplier?: number;
29
- precipitationParticleAmount?: number;
30
- bCloseLightning?: boolean;
31
- rainVolume?: number;
32
- closeThunderVolume?: number;
33
- distantThunderVolume?: number;
34
- windVolume?: number;
35
- clearFogDensity?: number;
36
- cloudyFogDensity?: number;
37
- clearFogHeightFalloff?: number;
38
- cloudyFogHeightFalloff?: number;
39
- fogColor?: BRColor;
40
- };
41
- GroundPlate?: {
42
- variance?: number;
43
- varianceBrickSize?: number;
44
- groundColor?: BRColor;
45
- groundAccentColor?: BRColor;
46
- isVisible?: boolean;
47
- bUseStudTexture?: boolean;
48
- };
49
- Water?: {
50
- waterHeight?: number;
51
- waterAbsorption?: BRVector;
52
- waterScattering?: BRVector;
53
- waterFogIntensity?: number;
54
- waterFogAmbientColor?: BRColor;
55
- waterFogAmbientScale?: number;
56
- waterFogScatteringColor?: BRColor;
57
- waterFogScatteringScale?: number;
58
- };
59
- Ambience?: {
60
- selectedAmbienceTypeInt?: number;
61
- ambienceVolume?: number;
62
- reverbEffect?: string;
63
- };
64
- };
65
- }>;
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=presets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/brickadia/presets.ts"],"names":[],"mappings":""}
@@ -1,36 +0,0 @@
1
- import { IConfig } from "../config/types";
2
- import 'colors';
3
- import EventEmitter from 'events';
4
- /** Start a brickadia server */
5
- export default class BrickadiaServer extends EventEmitter {
6
- #private;
7
- config: IConfig;
8
- path: string;
9
- constructor(dataPath: string, config: IConfig);
10
- getActiveWorldFile(): string;
11
- /** A world specified by the active world file */
12
- getActiveWorld(): string | null;
13
- /** Set the world to use next startup */
14
- setActiveWorld(world: string | null): boolean;
15
- /** A world specified by the config */
16
- getConfigWorld(): string | null;
17
- /** A world specified by the BRICKADIA_WORLD env variable */
18
- getEnvWorld(): string | null;
19
- /** Check if a world exists */
20
- worldExists(world: string): boolean;
21
- /** Get the world that will be used next startup */
22
- getNextWorld(): {
23
- source: string;
24
- file: string;
25
- };
26
- start(): void;
27
- write(line: string): void;
28
- writeln(line: string): void;
29
- stop(): void;
30
- cleanup(): void;
31
- attachListeners(): void;
32
- detachListeners(): void;
33
- errorListener(line: string): void;
34
- exitListener(...args: any[]): void;
35
- lineListener(line: string): void;
36
- }
@@ -1,45 +0,0 @@
1
- export interface BRColor {
2
- r: number;
3
- b: number;
4
- g: number;
5
- a: number;
6
- }
7
- export interface BRVector {
8
- x: number;
9
- y: number;
10
- z: number;
11
- }
12
- export interface BRBanListEntry {
13
- bannerId: string;
14
- created: string;
15
- expires: string;
16
- reason: string;
17
- }
18
- export interface BRBanList {
19
- banList: Record<string, BRBanListEntry>;
20
- }
21
- export interface BRRolePermission {
22
- name: string;
23
- state: 'Allowed' | 'Unchanged' | 'Forbidden';
24
- }
25
- export interface BRRoleSetupEntry {
26
- name: string;
27
- permissions: BRRolePermission[];
28
- color: BRColor;
29
- bHasColor: boolean;
30
- }
31
- export interface BRRoleSetup {
32
- roles: BRRoleSetupEntry[];
33
- defaultRole: BRRoleSetupEntry;
34
- ownerRoleColor: BRColor;
35
- bOwnerRoleHasColor: boolean;
36
- version: string;
37
- }
38
- export interface BRRoleAssignments {
39
- savedPlayerRoles: Record<string, {
40
- roles: string[];
41
- }>;
42
- }
43
- export interface BRPlayerNameCache {
44
- savedPlayerNames: Record<string, string>;
45
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/brickadia/types.ts"],"names":[],"mappings":""}
@@ -1,26 +0,0 @@
1
- import 'colors';
2
- export declare const AUTH_PATH: string;
3
- declare function authFromPrompt({ email, password, debug, isSteam, branch, authDir, savedDir, launchArgs, }: {
4
- email?: string | null;
5
- password?: string | null;
6
- debug?: boolean;
7
- isSteam?: boolean;
8
- branch?: string;
9
- authDir?: string;
10
- savedDir?: string;
11
- launchArgs?: string;
12
- }): Promise<boolean>;
13
- declare function authExists(dir?: string): boolean;
14
- declare function deleteAuthFiles(dir?: string): void;
15
- export declare function getGlobalToken(): string;
16
- export declare const prompt: typeof authFromPrompt;
17
- export declare const exists: typeof authExists;
18
- export declare const clean: typeof deleteAuthFiles;
19
- declare const _default: {
20
- AUTH_PATH: string;
21
- prompt: typeof authFromPrompt;
22
- exists: typeof authExists;
23
- clean: typeof deleteAuthFiles;
24
- getGlobalToken: typeof getGlobalToken;
25
- };
26
- export default _default;
@@ -1,10 +0,0 @@
1
- interface IConfigField {
2
- desc: string;
3
- example: string;
4
- default: string;
5
- get(): string;
6
- set(value: string): void;
7
- }
8
- declare const fields: Record<string, IConfigField>;
9
- declare const _default: (field: keyof typeof fields | "list", value: string, _opts?: {}) => void;
10
- export default _default;
@@ -1,30 +0,0 @@
1
- import _Terminal from './terminal';
2
- export declare const auth: {
3
- AUTH_PATH: string;
4
- prompt: ({ email, password, debug, isSteam, branch, authDir, savedDir, launchArgs, }: {
5
- email?: string | null;
6
- password?: string | null;
7
- debug?: boolean;
8
- isSteam?: boolean;
9
- branch?: string;
10
- authDir?: string;
11
- savedDir?: string;
12
- launchArgs?: string;
13
- }) => Promise<boolean>;
14
- exists: (dir?: string) => boolean;
15
- clean: (dir?: string) => void;
16
- getGlobalToken: typeof import("./auth").getGlobalToken;
17
- };
18
- export declare const config: (field: string | "list", value: string, _opts?: {}) => void;
19
- export declare const pluginUtil: {
20
- install: typeof import("./plugin").install;
21
- update: typeof import("./plugin").update;
22
- check: typeof import("./plugin").check;
23
- init: () => Promise<void>;
24
- listConfig: (pluginName: string, json?: boolean) => Promise<void>;
25
- getConfig: (pluginName: string, configName: string, json?: boolean) => Promise<void>;
26
- setConfig: (pluginName: any, configName: string, valueString: string) => Promise<void>;
27
- resetAllConfigs: (pluginName: any, force: any) => Promise<void>;
28
- resetConfig: (pluginName: any, configName: string) => Promise<void>;
29
- };
30
- export declare const Terminal: typeof _Terminal;
@@ -1 +0,0 @@
1
- export declare function installLauncher(): Promise<void>;
@@ -1,22 +0,0 @@
1
- import 'colors';
2
- export declare function install(plugins: string[], _options: unknown): Promise<void>;
3
- export declare function update(pluginsNames: string[], _options: unknown): Promise<void>;
4
- export declare function check(pluginNames: string[], _options: unknown): Promise<void>;
5
- declare function init(): Promise<void>;
6
- declare function listConfig(pluginName: string, json?: boolean): Promise<void>;
7
- declare function getConfig(pluginName: string, configName: string, json?: boolean): Promise<void>;
8
- declare function setConfig(pluginName: any, configName: string, valueString: string): Promise<void>;
9
- declare function resetAllConfigs(pluginName: any, force: any): Promise<void>;
10
- declare function resetConfig(pluginName: any, configName: string): Promise<void>;
11
- declare const _default: {
12
- install: typeof install;
13
- update: typeof update;
14
- check: typeof check;
15
- init: typeof init;
16
- listConfig: typeof listConfig;
17
- getConfig: typeof getConfig;
18
- setConfig: typeof setConfig;
19
- resetAllConfigs: typeof resetAllConfigs;
20
- resetConfig: typeof resetConfig;
21
- };
22
- export default _default;
@@ -1,25 +0,0 @@
1
- import Omegga from "../omegga/server";
2
- import { IOmeggaOptions } from "../omegga/types";
3
- import readline from 'readline';
4
- declare global {
5
- interface String {
6
- brightRed: string;
7
- brightGreen: string;
8
- brightYellow: string;
9
- brightBlue: string;
10
- brightMagenta: string;
11
- brightCyan: string;
12
- brightWhite: string;
13
- }
14
- }
15
- export default class Terminal {
16
- options: IOmeggaOptions;
17
- omegga: Omegga;
18
- rl: readline.Interface;
19
- constructor(omegga: Omegga, options?: IOmeggaOptions);
20
- handleLine(line: string): Promise<void>;
21
- log(...args: any[]): void;
22
- debug(...args: any[]): void;
23
- warn(...args: any[]): void;
24
- error(...args: any[]): void;
25
- }
@@ -1,2 +0,0 @@
1
- declare const authorizer: (email: string, password: string) => Promise<unknown>;
2
- export default authorizer;
@@ -1,38 +0,0 @@
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
@@ -1 +0,0 @@
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,CAAC;YAC9B,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEL,kBAAe,UAAU,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { IConfigFormat } from "../types";
2
- declare const format_js: IConfigFormat;
3
- export default format_js;
@@ -1,3 +0,0 @@
1
- import type { IConfigFormat } from "../types";
2
- declare const format_yaml: IConfigFormat;
3
- export default format_yaml;
@@ -1,18 +0,0 @@
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;
@@ -1,3 +0,0 @@
1
- import { IConfigFormat } from './types';
2
- declare const reader: (formats: IConfigFormat[]) => (path?: string) => import("./types").IConfig;
3
- export default reader;