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,105 +1,144 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- var _a;
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.METRIC_EMPTIES_BEFORE_PAUSE = exports.METRIC_HEARTBEAT_INTERVAL = exports.WEB_SESSION_TOKEN = exports.WEB_CERTS_DATA = exports.ACTIVE_WORLD_FILE = exports.SESSION_STORE = exports.SERVER_STORE = exports.USER_STORE = exports.STATUS_STORE = exports.PLUGIN_STORE = exports.PLAYER_STORE = exports.CHAT_STORE = exports.PLUGIN_POSTINSTALL = exports.PLUGIN_FILE = exports.PLUGIN_PATH = exports.DATA_PATH = exports.TEMP_DIR_NAME = exports.BRICKADIA_AUTH_FILES = exports.CONFIG_SAVED_DIR = exports.CONFIG_AUTH_DIR = exports.LOCAL_LAUNCHER = exports.GAME_BIN_PATH = exports.GAME_INSTALL_DIR = exports.STEAM_APP_ID = exports.GAME_DIRNAME = exports.STEAMCMD_PATH = exports.STEAM_DIR = exports.OVERRIDE_GAME_DIR = exports.BRICKADIA_INSTALLS = exports.CONFIG_FILENAMES = exports.DEFAULT_PORT = exports.GLOBAL_TOKEN = exports.CONFIG_HOME = exports.PROJECT_NAME = void 0;
8
- const os_1 = __importDefault(require("os"));
9
- const path_1 = __importDefault(require("path"));
10
- // home directory for omegga config
11
- exports.PROJECT_NAME = 'omegga';
12
- exports.CONFIG_HOME = path_1.default.join(os_1.default.homedir(), '.config/' + exports.PROJECT_NAME);
13
- exports.GLOBAL_TOKEN = path_1.default.join(exports.CONFIG_HOME, 'global_auth_token');
14
- exports.DEFAULT_PORT = 8080;
15
- // filenames that omegga searches for
16
- // extensions are added based on the available config formats
17
- exports.CONFIG_FILENAMES = [
18
- 'omegga-config',
19
- 'omegga',
20
- '.omegga-config',
21
- '.omegga',
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const os = require("os");
4
+ const path = require("path");
5
+ const PROJECT_NAME = "omegga";
6
+ const CONFIG_HOME = path.join(os.homedir(), ".config/" + PROJECT_NAME);
7
+ const GLOBAL_TOKEN = path.join(CONFIG_HOME, "global_auth_token");
8
+ const DEFAULT_PORT = 8080;
9
+ const CONFIG_FILENAMES = [
10
+ "omegga-config",
11
+ "omegga",
12
+ ".omegga-config",
13
+ ".omegga"
22
14
  ];
23
- exports.BRICKADIA_INSTALLS = path_1.default.join(os_1.default.homedir(), '.local/share/brickadia-launcher/brickadia-installs');
24
- let GAME_DIR = 'Brickadia';
25
- let INSTALL_DIR = path_1.default.join(exports.CONFIG_HOME, 'steam_installs');
26
- if (process.env.STEAM_GAME_DIR)
27
- GAME_DIR = process.env.STEAM_GAME_DIR;
28
- if (process.env.STEAM_INSTALLS_DIR)
15
+ const BRICKADIA_INSTALLS = path.join(
16
+ os.homedir(),
17
+ ".local/share/brickadia-launcher/brickadia-installs"
18
+ );
19
+ const STEAM_DIR = path.join(CONFIG_HOME, "steam");
20
+ const STEAMCMD_PATH = path.join(STEAM_DIR, "steamcmd.sh");
21
+ const DEFAULT_STEAM_APP_ID = "3017590";
22
+ function getAppId() {
23
+ return process.env.STEAM_APP_ID ?? DEFAULT_STEAM_APP_ID;
24
+ }
25
+ const GAME_BIN_PATH = "Binaries/Linux/BrickadiaServer-Linux-Shipping";
26
+ const LOCAL_LAUNCHER = path.join(
27
+ CONFIG_HOME,
28
+ "launcher/brickadia-launcher/main-brickadia-launcher"
29
+ );
30
+ const getOverrideGameDir = () => process.env.BRICKADIA_DIR;
31
+ function getOverrideGameBinary() {
32
+ const overrideDir = getOverrideGameDir();
33
+ if (!overrideDir) return null;
34
+ return path.join(overrideDir, GAME_BIN_PATH);
35
+ }
36
+ function getSteamGameDir() {
37
+ let GAME_DIR = "Brickadia";
38
+ if (process.env.STEAM_GAME_DIR) GAME_DIR = process.env.STEAM_GAME_DIR;
39
+ return process.env.STEAM_GAME_DIR ?? GAME_DIR;
40
+ }
41
+ function getSteamInstallDir() {
42
+ let INSTALL_DIR = path.join(CONFIG_HOME, "steam_installs");
43
+ if (process.env.STEAM_INSTALLS_DIR)
29
44
  INSTALL_DIR = process.env.STEAM_INSTALLS_DIR;
30
- exports.OVERRIDE_GAME_DIR = process.env.BRICKADIA_DIR;
31
- exports.STEAM_DIR = path_1.default.join(exports.CONFIG_HOME, 'steam');
32
- exports.STEAMCMD_PATH = path_1.default.join(exports.STEAM_DIR, 'steamcmd.sh');
33
- exports.GAME_DIRNAME = (_a = process.env.STEAM_GAME_DIR) !== null && _a !== void 0 ? _a : GAME_DIR;
34
- exports.STEAM_APP_ID = '3017590'; // Brickadia app ID
35
- exports.GAME_INSTALL_DIR = INSTALL_DIR;
36
- exports.GAME_BIN_PATH = 'Binaries/Linux/BrickadiaServer-Linux-Shipping';
37
- exports.LOCAL_LAUNCHER = path_1.default.join(exports.CONFIG_HOME, 'launcher/brickadia-launcher/main-brickadia-launcher');
38
- // path to auth files
39
- exports.CONFIG_AUTH_DIR = 'Auth';
40
- exports.CONFIG_SAVED_DIR = 'Saved';
41
- // files in Brickadia/Saved/Auth
42
- exports.BRICKADIA_AUTH_FILES = [
43
- 'OfflinePayload.bin',
44
- 'OfflineSignature.bin',
45
- 'SessionToken.bin',
45
+ return INSTALL_DIR;
46
+ }
47
+ const CONFIG_AUTH_DIR = "Auth";
48
+ const CONFIG_SAVED_DIR = "Saved";
49
+ const BRICKADIA_AUTH_FILES = [
50
+ "OfflinePayload.bin",
51
+ "OfflineSignature.bin",
52
+ "SessionToken.bin"
46
53
  ];
47
- // temporary install for generating auth files
48
- exports.TEMP_DIR_NAME = '.omegga-temp-data';
49
- // path to certain info folders
50
- exports.DATA_PATH = './data';
51
- exports.PLUGIN_PATH = './plugins';
52
- // plugin data
53
- exports.PLUGIN_FILE = './plugin.json';
54
- // post install file
55
- exports.PLUGIN_POSTINSTALL = './setup.sh';
56
- // databases
57
- exports.CHAT_STORE = 'chat.db';
58
- exports.PLAYER_STORE = 'players.db';
59
- exports.PLUGIN_STORE = 'plugins.db';
60
- exports.STATUS_STORE = 'status.db';
61
- exports.USER_STORE = 'users.db';
62
- exports.SERVER_STORE = 'store.db';
63
- exports.SESSION_STORE = 'session.db';
64
- exports.ACTIVE_WORLD_FILE = 'active_world';
65
- // website config
66
- exports.WEB_CERTS_DATA = 'web_certs.json';
67
- exports.WEB_SESSION_TOKEN = 'web_session_token';
68
- // how often server status is requested in a heartbeat
69
- exports.METRIC_HEARTBEAT_INTERVAL = 60 * 1000;
70
- // the number of empty server statuses before metric logging is paused
71
- exports.METRIC_EMPTIES_BEFORE_PAUSE = 3;
72
- // rexport as default
73
- exports.default = {
74
- PROJECT_NAME: exports.PROJECT_NAME,
75
- CONFIG_HOME: exports.CONFIG_HOME,
76
- DEFAULT_PORT: exports.DEFAULT_PORT,
77
- CONFIG_FILENAMES: exports.CONFIG_FILENAMES,
78
- BRICKADIA_INSTALLS: exports.BRICKADIA_INSTALLS,
79
- LOCAL_LAUNCHER: exports.LOCAL_LAUNCHER,
80
- CONFIG_AUTH_DIR: exports.CONFIG_AUTH_DIR,
81
- CONFIG_SAVED_DIR: exports.CONFIG_SAVED_DIR,
82
- BRICKADIA_AUTH_FILES: exports.BRICKADIA_AUTH_FILES,
83
- TEMP_DIR_NAME: exports.TEMP_DIR_NAME,
84
- DATA_PATH: exports.DATA_PATH,
85
- PLUGIN_PATH: exports.PLUGIN_PATH,
86
- PLUGIN_FILE: exports.PLUGIN_FILE,
87
- PLUGIN_POSTINSTALL: exports.PLUGIN_POSTINSTALL,
88
- CHAT_STORE: exports.CHAT_STORE,
89
- PLAYER_STORE: exports.PLAYER_STORE,
90
- PLUGIN_STORE: exports.PLUGIN_STORE,
91
- STATUS_STORE: exports.STATUS_STORE,
92
- USER_STORE: exports.USER_STORE,
93
- SERVER_STORE: exports.SERVER_STORE,
94
- SESSION_STORE: exports.SESSION_STORE,
95
- WEB_CERTS_DATA: exports.WEB_CERTS_DATA,
96
- WEB_SESSION_TOKEN: exports.WEB_SESSION_TOKEN,
97
- METRIC_HEARTBEAT_INTERVAL: exports.METRIC_HEARTBEAT_INTERVAL,
98
- METRIC_EMPTIES_BEFORE_PAUSE: exports.METRIC_EMPTIES_BEFORE_PAUSE,
99
- STEAM_DIR: exports.STEAM_DIR,
100
- STEAMCMD_PATH: exports.STEAMCMD_PATH,
101
- STEAM_INSTALLS_DIR: exports.GAME_INSTALL_DIR,
102
- STEAM_BRICKADIA_PATH: exports.GAME_BIN_PATH,
103
- GLOBAL_TOKEN: exports.GLOBAL_TOKEN,
54
+ const TEMP_DIR_NAME = ".omegga-temp-data";
55
+ const DATA_PATH = "./data";
56
+ const PLUGIN_PATH = "./plugins";
57
+ const PLUGIN_FILE = "./plugin.json";
58
+ const PLUGIN_POSTINSTALL = "./setup.sh";
59
+ const CHAT_STORE = "chat.db";
60
+ const PLAYER_STORE = "players.db";
61
+ const PLUGIN_STORE = "plugins.db";
62
+ const STATUS_STORE = "status.db";
63
+ const USER_STORE = "users.db";
64
+ const SERVER_STORE = "store.db";
65
+ const SESSION_STORE = "session.db";
66
+ const ACTIVE_WORLD_FILE = "active_world";
67
+ const WEB_CERTS_DATA = "web_certs.json";
68
+ const WEB_SESSION_TOKEN = "web_session_token";
69
+ const METRIC_HEARTBEAT_INTERVAL = 60 * 1e3;
70
+ const METRIC_EMPTIES_BEFORE_PAUSE = 3;
71
+ const soft = {
72
+ PROJECT_NAME,
73
+ CONFIG_HOME,
74
+ DEFAULT_PORT,
75
+ CONFIG_FILENAMES,
76
+ BRICKADIA_INSTALLS,
77
+ LOCAL_LAUNCHER,
78
+ CONFIG_AUTH_DIR,
79
+ CONFIG_SAVED_DIR,
80
+ BRICKADIA_AUTH_FILES,
81
+ TEMP_DIR_NAME,
82
+ DATA_PATH,
83
+ PLUGIN_PATH,
84
+ PLUGIN_FILE,
85
+ PLUGIN_POSTINSTALL,
86
+ CHAT_STORE,
87
+ PLAYER_STORE,
88
+ PLUGIN_STORE,
89
+ STATUS_STORE,
90
+ USER_STORE,
91
+ SERVER_STORE,
92
+ SESSION_STORE,
93
+ WEB_CERTS_DATA,
94
+ WEB_SESSION_TOKEN,
95
+ METRIC_HEARTBEAT_INTERVAL,
96
+ METRIC_EMPTIES_BEFORE_PAUSE,
97
+ STEAM_DIR,
98
+ STEAMCMD_PATH,
99
+ STEAM_BRICKADIA_PATH: GAME_BIN_PATH,
100
+ GLOBAL_TOKEN,
101
+ getOverrideGameDir,
102
+ getOverrideGameBinary,
103
+ getSteamGameDir,
104
+ getSteamInstallDir,
105
+ getAppId
104
106
  };
105
- //# sourceMappingURL=softconfig.js.map
107
+ exports.ACTIVE_WORLD_FILE = ACTIVE_WORLD_FILE;
108
+ exports.BRICKADIA_AUTH_FILES = BRICKADIA_AUTH_FILES;
109
+ exports.BRICKADIA_INSTALLS = BRICKADIA_INSTALLS;
110
+ exports.CHAT_STORE = CHAT_STORE;
111
+ exports.CONFIG_AUTH_DIR = CONFIG_AUTH_DIR;
112
+ exports.CONFIG_FILENAMES = CONFIG_FILENAMES;
113
+ exports.CONFIG_HOME = CONFIG_HOME;
114
+ exports.CONFIG_SAVED_DIR = CONFIG_SAVED_DIR;
115
+ exports.DATA_PATH = DATA_PATH;
116
+ exports.DEFAULT_PORT = DEFAULT_PORT;
117
+ exports.DEFAULT_STEAM_APP_ID = DEFAULT_STEAM_APP_ID;
118
+ exports.GAME_BIN_PATH = GAME_BIN_PATH;
119
+ exports.GLOBAL_TOKEN = GLOBAL_TOKEN;
120
+ exports.LOCAL_LAUNCHER = LOCAL_LAUNCHER;
121
+ exports.METRIC_EMPTIES_BEFORE_PAUSE = METRIC_EMPTIES_BEFORE_PAUSE;
122
+ exports.METRIC_HEARTBEAT_INTERVAL = METRIC_HEARTBEAT_INTERVAL;
123
+ exports.PLAYER_STORE = PLAYER_STORE;
124
+ exports.PLUGIN_FILE = PLUGIN_FILE;
125
+ exports.PLUGIN_PATH = PLUGIN_PATH;
126
+ exports.PLUGIN_POSTINSTALL = PLUGIN_POSTINSTALL;
127
+ exports.PLUGIN_STORE = PLUGIN_STORE;
128
+ exports.PROJECT_NAME = PROJECT_NAME;
129
+ exports.SERVER_STORE = SERVER_STORE;
130
+ exports.SESSION_STORE = SESSION_STORE;
131
+ exports.STATUS_STORE = STATUS_STORE;
132
+ exports.STEAMCMD_PATH = STEAMCMD_PATH;
133
+ exports.STEAM_DIR = STEAM_DIR;
134
+ exports.TEMP_DIR_NAME = TEMP_DIR_NAME;
135
+ exports.USER_STORE = USER_STORE;
136
+ exports.WEB_CERTS_DATA = WEB_CERTS_DATA;
137
+ exports.WEB_SESSION_TOKEN = WEB_SESSION_TOKEN;
138
+ exports.default = soft;
139
+ exports.getAppId = getAppId;
140
+ exports.getOverrideGameBinary = getOverrideGameBinary;
141
+ exports.getOverrideGameDir = getOverrideGameDir;
142
+ exports.getSteamGameDir = getSteamGameDir;
143
+ exports.getSteamInstallDir = getSteamInstallDir;
144
+ //# sourceMappingURL=softconfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"softconfig.js","sourceRoot":"","sources":["../src/softconfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"softconfig.js","sources":["../src/softconfig.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\n\n// home directory for omegga config\nexport const PROJECT_NAME = 'omegga';\nexport const CONFIG_HOME = path.join(os.homedir(), '.config/' + PROJECT_NAME);\nexport const GLOBAL_TOKEN = path.join(CONFIG_HOME, 'global_auth_token');\n\nexport const DEFAULT_PORT = 8080;\n\n// filenames that omegga searches for\n// extensions are added based on the available config formats\nexport const CONFIG_FILENAMES = [\n 'omegga-config',\n 'omegga',\n '.omegga-config',\n '.omegga',\n];\n\nexport const BRICKADIA_INSTALLS = path.join(\n os.homedir(),\n '.local/share/brickadia-launcher/brickadia-installs',\n);\n\nexport const STEAM_DIR = path.join(CONFIG_HOME, 'steam');\nexport const STEAMCMD_PATH = path.join(STEAM_DIR, 'steamcmd.sh');\nexport const DEFAULT_STEAM_APP_ID = '3017590'; // Brickadia app ID\nexport function getAppId() {\n return process.env.STEAM_APP_ID ?? DEFAULT_STEAM_APP_ID;\n}\nexport const GAME_BIN_PATH = 'Binaries/Linux/BrickadiaServer-Linux-Shipping';\nexport const LOCAL_LAUNCHER = path.join(\n CONFIG_HOME,\n 'launcher/brickadia-launcher/main-brickadia-launcher',\n);\n\nexport const getOverrideGameDir = () => process.env.BRICKADIA_DIR;\nexport function getOverrideGameBinary() {\n const overrideDir = getOverrideGameDir();\n if (!overrideDir) return null;\n return path.join(overrideDir, GAME_BIN_PATH);\n}\nexport function getSteamGameDir() {\n let GAME_DIR = 'Brickadia';\n if (process.env.STEAM_GAME_DIR) GAME_DIR = process.env.STEAM_GAME_DIR;\n return process.env.STEAM_GAME_DIR ?? GAME_DIR;\n}\nexport function getSteamInstallDir() {\n let INSTALL_DIR = path.join(CONFIG_HOME, 'steam_installs');\n if (process.env.STEAM_INSTALLS_DIR)\n INSTALL_DIR = process.env.STEAM_INSTALLS_DIR;\n return INSTALL_DIR;\n}\n\n// path to auth files\nexport const CONFIG_AUTH_DIR = 'Auth';\nexport const CONFIG_SAVED_DIR = 'Saved';\n// files in Brickadia/Saved/Auth\nexport const BRICKADIA_AUTH_FILES = [\n 'OfflinePayload.bin',\n 'OfflineSignature.bin',\n 'SessionToken.bin',\n];\n\n// temporary install for generating auth files\nexport const TEMP_DIR_NAME = '.omegga-temp-data';\n\n// path to certain info folders\nexport const DATA_PATH = './data';\nexport const PLUGIN_PATH = './plugins';\n\n// plugin data\nexport const PLUGIN_FILE = './plugin.json';\n// post install file\nexport const PLUGIN_POSTINSTALL = './setup.sh';\n\n// databases\nexport const CHAT_STORE = 'chat.db';\nexport const PLAYER_STORE = 'players.db';\nexport const PLUGIN_STORE = 'plugins.db';\nexport const STATUS_STORE = 'status.db';\nexport const USER_STORE = 'users.db';\nexport const SERVER_STORE = 'store.db';\nexport const SESSION_STORE = 'session.db';\nexport const ACTIVE_WORLD_FILE = 'active_world';\n\n// website config\nexport const WEB_CERTS_DATA = 'web_certs.json';\nexport const WEB_SESSION_TOKEN = 'web_session_token';\n\n// how often server status is requested in a heartbeat\nexport const METRIC_HEARTBEAT_INTERVAL = 60 * 1000;\n// the number of empty server statuses before metric logging is paused\nexport const METRIC_EMPTIES_BEFORE_PAUSE = 3;\n\n// rexport as default\nexport default {\n PROJECT_NAME,\n CONFIG_HOME,\n DEFAULT_PORT,\n CONFIG_FILENAMES,\n BRICKADIA_INSTALLS,\n LOCAL_LAUNCHER,\n CONFIG_AUTH_DIR,\n CONFIG_SAVED_DIR,\n BRICKADIA_AUTH_FILES,\n TEMP_DIR_NAME,\n DATA_PATH,\n PLUGIN_PATH,\n PLUGIN_FILE,\n PLUGIN_POSTINSTALL,\n CHAT_STORE,\n PLAYER_STORE,\n PLUGIN_STORE,\n STATUS_STORE,\n USER_STORE,\n SERVER_STORE,\n SESSION_STORE,\n WEB_CERTS_DATA,\n WEB_SESSION_TOKEN,\n METRIC_HEARTBEAT_INTERVAL,\n METRIC_EMPTIES_BEFORE_PAUSE,\n STEAM_DIR,\n STEAMCMD_PATH,\n STEAM_BRICKADIA_PATH: GAME_BIN_PATH,\n GLOBAL_TOKEN,\n getOverrideGameDir,\n getOverrideGameBinary,\n getSteamGameDir,\n getSteamInstallDir,\n getAppId,\n};\n"],"names":[],"mappings":";;;;AAIO,MAAM,eAAe;AACrB,MAAM,cAAc,KAAK,KAAK,GAAG,QAAA,GAAW,aAAa,YAAY;AACrE,MAAM,eAAe,KAAK,KAAK,aAAa,mBAAmB;AAE/D,MAAM,eAAe;AAIrB,MAAM,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,MAAM,qBAAqB,KAAK;AAAA,EACrC,GAAG,QAAA;AAAA,EACH;AACF;AAEO,MAAM,YAAY,KAAK,KAAK,aAAa,OAAO;AAChD,MAAM,gBAAgB,KAAK,KAAK,WAAW,aAAa;AACxD,MAAM,uBAAuB;AAC7B,SAAS,WAAW;AACzB,SAAO,QAAQ,IAAI,gBAAgB;AACrC;AACO,MAAM,gBAAgB;AACtB,MAAM,iBAAiB,KAAK;AAAA,EACjC;AAAA,EACA;AACF;AAEO,MAAM,qBAAqB,MAAM,QAAQ,IAAI;AAC7C,SAAS,wBAAwB;AACtC,QAAM,cAAc,mBAAA;AACpB,MAAI,CAAC,YAAa,QAAO;AACzB,SAAO,KAAK,KAAK,aAAa,aAAa;AAC7C;AACO,SAAS,kBAAkB;AAChC,MAAI,WAAW;AACf,MAAI,QAAQ,IAAI,eAAgB,YAAW,QAAQ,IAAI;AACvD,SAAO,QAAQ,IAAI,kBAAkB;AACvC;AACO,SAAS,qBAAqB;AACnC,MAAI,cAAc,KAAK,KAAK,aAAa,gBAAgB;AACzD,MAAI,QAAQ,IAAI;AACd,kBAAc,QAAQ,IAAI;AAC5B,SAAO;AACT;AAGO,MAAM,kBAAkB;AACxB,MAAM,mBAAmB;AAEzB,MAAM,uBAAuB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AACF;AAGO,MAAM,gBAAgB;AAGtB,MAAM,YAAY;AAClB,MAAM,cAAc;AAGpB,MAAM,cAAc;AAEpB,MAAM,qBAAqB;AAG3B,MAAM,aAAa;AACnB,MAAM,eAAe;AACrB,MAAM,eAAe;AACrB,MAAM,eAAe;AACrB,MAAM,aAAa;AACnB,MAAM,eAAe;AACrB,MAAM,gBAAgB;AACtB,MAAM,oBAAoB;AAG1B,MAAM,iBAAiB;AACvB,MAAM,oBAAoB;AAG1B,MAAM,4BAA4B,KAAK;AAEvC,MAAM,8BAA8B;AAG3C,MAAA,OAAe;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,sBAAsB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,139 +1,129 @@
1
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
- exports.clearLastSteamUpdateCheck = exports.getLastSteamUpdateCheck = void 0;
7
- exports.getAppId = getAppId;
8
- exports.steamcmdDownloadSelf = steamcmdDownloadSelf;
9
- exports.steamcmdDownloadGame = steamcmdDownloadGame;
10
- exports.getLocalSteamDepot = getLocalSteamDepot;
11
- exports.getRemoteSteamDepot = getRemoteSteamDepot;
12
- exports.hasSteamUpdate = hasSteamUpdate;
13
- const logger_1 = __importDefault(require("../logger"));
14
- const softconfig_1 = require("../softconfig");
15
- const child_process_1 = require("child_process");
16
- const fs_1 = require("fs");
17
- const path_1 = __importDefault(require("path"));
18
- const steam_acf2json_1 = __importDefault(require("steam-acf2json"));
19
- function getAppId() {
20
- var _a;
21
- return (_a = process.env.STEAM_APP_ID) !== null && _a !== void 0 ? _a : softconfig_1.STEAM_APP_ID;
22
- }
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const logger = require("../logger.js");
4
+ const softconfig = require("../softconfig.js");
5
+ const node_child_process = require("node:child_process");
6
+ const fs = require("node:fs");
7
+ const path = require("node:path");
8
+ const acfParser = require("steam-acf2json");
23
9
  function steamcmdDownloadSelf() {
24
- (0, child_process_1.execSync)(path_1.default.join(__dirname, '../../tools/install_steamcmd.sh'), {
25
- stdio: 'inherit',
26
- });
10
+ node_child_process.execSync(path.join(__dirname, "../../tools/install_steamcmd.sh"), {
11
+ stdio: "inherit"
12
+ });
27
13
  }
28
- function steamcmdDownloadGame({ steambeta, steambetaPassword, } = {}) {
29
- const args = [
30
- `+force_install_dir ${path_1.default.join(softconfig_1.GAME_INSTALL_DIR, steambeta !== null && steambeta !== void 0 ? steambeta : 'main')}`,
31
- `+login anonymous`,
32
- `+app_update ${getAppId()}`,
33
- steambeta ? `-beta ${steambeta}` : null,
34
- steambeta && steambetaPassword
35
- ? `-betapassword ${steambetaPassword}`
36
- : null,
37
- '+quit',
38
- ].filter(Boolean);
39
- (0, child_process_1.execSync)(`${softconfig_1.STEAMCMD_PATH} ${args.join(' ')}`, { stdio: 'inherit' });
14
+ function steamcmdDownloadGame({
15
+ steambeta,
16
+ steambetaPassword
17
+ } = {}) {
18
+ let steamLogin = "anonymous";
19
+ if (process.env.STEAM_USERNAME && process.env.STEAM_PASSWORD) {
20
+ logger.default.verbose("Using provided Steam credentials for download.");
21
+ steamLogin = `"${process.env.STEAM_USERNAME}" "${process.env.STEAM_PASSWORD}"`;
22
+ }
23
+ const installDir = softconfig.getSteamInstallDir();
24
+ const appId = softconfig.getAppId();
25
+ logger.default.verbose("Using with steam install dir:", installDir.yellow);
26
+ logger.default.verbose("Using with app ID:", appId.yellow);
27
+ const args = [
28
+ `+force_install_dir ${path.join(installDir, steambeta ?? "main")}`,
29
+ `+login ${steamLogin}`,
30
+ `+app_update ${appId}`,
31
+ steambeta ? `-beta ${steambeta}` : null,
32
+ steambeta && steambetaPassword ? `-betapassword ${steambetaPassword}` : null,
33
+ "+quit"
34
+ ].filter(Boolean);
35
+ node_child_process.execSync(`${softconfig.STEAMCMD_PATH} ${args.join(" ")}`, { stdio: "inherit" });
40
36
  }
41
37
  async function fetchSteamInfo() {
42
- const appId = getAppId();
43
- const res = await fetch('https://api.steamcmd.net/v1/info/' + appId);
44
- const json = await res.json();
45
- return json;
38
+ const appId = softconfig.getAppId();
39
+ const res = await fetch("https://api.steamcmd.net/v1/info/" + appId);
40
+ const json = await res.json();
41
+ return json;
46
42
  }
47
43
  function getSteamAcf(steambeta) {
48
- const appId = getAppId();
49
- const installDir = path_1.default.join(softconfig_1.GAME_INSTALL_DIR, steambeta !== null && steambeta !== void 0 ? steambeta : 'main');
50
- const acfPath = path_1.default.join(installDir, 'steamapps', `appmanifest_${appId}.acf`);
51
- if (!(0, fs_1.existsSync)(acfPath)) {
52
- logger_1.default.verbose(`File not found: ${acfPath}`);
53
- return null;
54
- }
55
- try {
56
- const plaintext = (0, fs_1.readFileSync)(acfPath, 'utf-8');
57
- const json = steam_acf2json_1.default.decode(plaintext);
58
- return json;
59
- }
60
- catch (err) {
61
- logger_1.default.error(`Error parsing ACF file ${acfPath}:`, err);
62
- return null;
63
- }
44
+ const appId = softconfig.getAppId();
45
+ const installDir = path.join(softconfig.getSteamInstallDir(), steambeta ?? "main");
46
+ const acfPath = path.join(
47
+ installDir,
48
+ "steamapps",
49
+ `appmanifest_${appId}.acf`
50
+ );
51
+ if (!fs.existsSync(acfPath)) {
52
+ logger.default.verbose(`File not found: ${acfPath}`);
53
+ return null;
54
+ }
55
+ try {
56
+ const plaintext = fs.readFileSync(acfPath, "utf-8");
57
+ const json = acfParser.decode(plaintext);
58
+ return json;
59
+ } catch (err) {
60
+ logger.default.error(`Error parsing ACF file ${acfPath}:`, err);
61
+ return null;
62
+ }
64
63
  }
65
64
  function getSteamDepot(info, branch) {
66
- var _a, _b, _c;
67
- const appId = getAppId();
68
- const depot = (_c = (_b = (_a = info.data[appId]) === null || _a === void 0 ? void 0 : _a.depots) === null || _b === void 0 ? void 0 : _b.branches) === null || _c === void 0 ? void 0 : _c[!branch || branch === 'main' ? 'public' : branch];
69
- if (!depot ||
70
- typeof depot !== 'object' ||
71
- !('buildid' in depot) ||
72
- !('timeupdated' in depot))
73
- return null;
74
- return {
75
- buildId: depot.buildid,
76
- timeUpdated: Number(depot.timeupdated),
77
- };
65
+ const appId = softconfig.getAppId();
66
+ const depot = info.data[appId]?.depots?.branches?.[!branch || branch === "main" ? "public" : branch];
67
+ if (!depot || typeof depot !== "object" || !("buildid" in depot) || !("timeupdated" in depot))
68
+ return null;
69
+ return {
70
+ buildId: depot.buildid,
71
+ timeUpdated: Number(depot.timeupdated)
72
+ };
78
73
  }
79
74
  function getSteamAcfDepot(acf) {
80
- const appId = getAppId();
81
- const appState = acf.AppState;
82
- if (!appState ||
83
- typeof appState !== 'object' ||
84
- appState.appid !== appId ||
85
- !('buildid' in appState) ||
86
- !('lastupdated' in appState))
87
- return null;
88
- return {
89
- buildId: appState.buildid,
90
- timeUpdated: Number(appState.lastupdated),
91
- };
75
+ const appId = softconfig.getAppId();
76
+ const appState = acf.AppState;
77
+ if (!appState || typeof appState !== "object" || appState.appid !== appId || !("buildid" in appState) || !("lastupdated" in appState))
78
+ return null;
79
+ return {
80
+ buildId: appState.buildid,
81
+ timeUpdated: Number(appState.lastupdated)
82
+ };
92
83
  }
93
84
  function getLocalSteamDepot(steambeta) {
94
- const acf = getSteamAcf(steambeta);
95
- if (!acf)
96
- return null;
97
- const depot = getSteamAcfDepot(acf);
98
- if (!depot)
99
- return null;
100
- return depot;
85
+ const acf = getSteamAcf(steambeta);
86
+ if (!acf) return null;
87
+ const depot = getSteamAcfDepot(acf);
88
+ if (!depot) return null;
89
+ return depot;
101
90
  }
102
91
  async function getRemoteSteamDepot(steambeta) {
103
- const info = await fetchSteamInfo();
104
- if (!info || !info.data) {
105
- return null;
106
- }
107
- const depot = getSteamDepot(info, steambeta);
108
- if (!depot)
109
- return null;
110
- return depot;
92
+ const info = await fetchSteamInfo();
93
+ if (!info || !info.data) {
94
+ return null;
95
+ }
96
+ const depot = getSteamDepot(info, steambeta);
97
+ if (!depot) return null;
98
+ return depot;
111
99
  }
112
100
  let lastUpdateCheck = 0;
113
101
  let lastUpdateAvailable = 0;
114
102
  let lastUpdateResult = false;
115
103
  const getLastSteamUpdateCheck = () => ({
116
- attempt: lastUpdateCheck,
117
- available: lastUpdateAvailable,
118
- result: lastUpdateResult,
104
+ attempt: lastUpdateCheck,
105
+ available: lastUpdateAvailable,
106
+ result: lastUpdateResult
119
107
  });
120
- exports.getLastSteamUpdateCheck = getLastSteamUpdateCheck;
121
108
  const clearLastSteamUpdateCheck = () => {
122
- lastUpdateResult = false;
109
+ lastUpdateResult = false;
123
110
  };
124
- exports.clearLastSteamUpdateCheck = clearLastSteamUpdateCheck;
125
111
  async function hasSteamUpdate(steambeta) {
126
- lastUpdateCheck = Date.now();
127
- const localDepot = getLocalSteamDepot(steambeta);
128
- if (!localDepot)
129
- return false;
130
- const remoteDepot = await getRemoteSteamDepot(steambeta);
131
- if (!remoteDepot)
132
- return false;
133
- lastUpdateAvailable = Date.now();
134
- const res = localDepot.buildId !== remoteDepot.buildId ||
135
- localDepot.timeUpdated < remoteDepot.timeUpdated;
136
- lastUpdateResult = res;
137
- return res;
112
+ lastUpdateCheck = Date.now();
113
+ const localDepot = getLocalSteamDepot(steambeta);
114
+ if (!localDepot) return false;
115
+ const remoteDepot = await getRemoteSteamDepot(steambeta);
116
+ if (!remoteDepot) return false;
117
+ lastUpdateAvailable = Date.now();
118
+ const res = localDepot.buildId !== remoteDepot.buildId || localDepot.timeUpdated < remoteDepot.timeUpdated;
119
+ lastUpdateResult = res;
120
+ return res;
138
121
  }
139
- //# sourceMappingURL=steam.js.map
122
+ exports.clearLastSteamUpdateCheck = clearLastSteamUpdateCheck;
123
+ exports.getLastSteamUpdateCheck = getLastSteamUpdateCheck;
124
+ exports.getLocalSteamDepot = getLocalSteamDepot;
125
+ exports.getRemoteSteamDepot = getRemoteSteamDepot;
126
+ exports.hasSteamUpdate = hasSteamUpdate;
127
+ exports.steamcmdDownloadGame = steamcmdDownloadGame;
128
+ exports.steamcmdDownloadSelf = steamcmdDownloadSelf;
129
+ //# sourceMappingURL=steam.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"steam.js","sourceRoot":"","sources":["../../src/updater/steam.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"steam.js","sources":["../../src/updater/steam.ts"],"sourcesContent":["import Logger from '@/logger';\nimport { getAppId, getSteamInstallDir, STEAMCMD_PATH } from '@/softconfig';\nimport { execSync } from 'node:child_process';\nimport { existsSync, readFileSync } from 'node:fs';\nimport path from 'node:path';\nimport acfParser from 'steam-acf2json';\n\nexport function steamcmdDownloadSelf() {\n execSync(path.join(__dirname, '../../tools/install_steamcmd.sh'), {\n stdio: 'inherit',\n });\n}\n\nexport function steamcmdDownloadGame({\n steambeta,\n steambetaPassword,\n}: {\n steambeta?: string;\n steambetaPassword?: string;\n} = {}) {\n let steamLogin = 'anonymous';\n if (process.env.STEAM_USERNAME && process.env.STEAM_PASSWORD) {\n Logger.verbose('Using provided Steam credentials for download.');\n steamLogin = `\"${process.env.STEAM_USERNAME}\" \"${process.env.STEAM_PASSWORD}\"`;\n }\n const installDir = getSteamInstallDir();\n const appId = getAppId();\n\n Logger.verbose('Using with steam install dir:', installDir.yellow);\n Logger.verbose('Using with app ID:', appId.yellow);\n\n const args = [\n `+force_install_dir ${path.join(installDir, steambeta ?? 'main')}`,\n `+login ${steamLogin}`,\n `+app_update ${appId}`,\n steambeta ? `-beta ${steambeta}` : null,\n steambeta && steambetaPassword\n ? `-betapassword ${steambetaPassword}`\n : null,\n '+quit',\n ].filter(Boolean);\n\n execSync(`${STEAMCMD_PATH} ${args.join(' ')}`, { stdio: 'inherit' });\n}\n\nexport type SteamInfo = {\n data: Record<\n string,\n {\n _change_number: number;\n _missing_token: boolean;\n _sha: string;\n _size: number;\n appid: number;\n common: unknown;\n config: unknown;\n depots: Record<\n string,\n {\n config: { oslist: 'linux' | 'windows' | 'macos' };\n }\n > & {\n branches: Record<\n string,\n {\n buildid: string;\n timeupdated: string;\n description?: string;\n }\n >;\n privatebranches: '1';\n };\n }\n >;\n status: 'success';\n};\n\nasync function fetchSteamInfo() {\n const appId = getAppId();\n const res = await fetch('https://api.steamcmd.net/v1/info/' + appId);\n const json = await res.json();\n return json as SteamInfo;\n}\n\nexport type SteamAcf = {\n AppState: {\n appid: string;\n buildid: string;\n lastupdated: string;\n };\n};\n\nfunction getSteamAcf(steambeta?: string) {\n const appId = getAppId();\n const installDir = path.join(getSteamInstallDir(), steambeta ?? 'main');\n const acfPath = path.join(\n installDir,\n 'steamapps',\n `appmanifest_${appId}.acf`,\n );\n if (!existsSync(acfPath)) {\n Logger.verbose(`File not found: ${acfPath}`);\n return null;\n }\n try {\n const plaintext = readFileSync(acfPath, 'utf-8');\n const json = acfParser.decode(plaintext);\n return json as SteamAcf;\n } catch (err) {\n Logger.error(`Error parsing ACF file ${acfPath}:`, err);\n return null;\n }\n}\n\nfunction getSteamDepot(info: SteamInfo, branch?: string) {\n const appId = getAppId();\n const depot =\n info.data[appId]?.depots?.branches?.[\n !branch || branch === 'main' ? 'public' : branch\n ];\n if (\n !depot ||\n typeof depot !== 'object' ||\n !('buildid' in depot) ||\n !('timeupdated' in depot)\n )\n return null;\n return {\n buildId: depot.buildid,\n timeUpdated: Number(depot.timeupdated),\n };\n}\n\nfunction getSteamAcfDepot(acf: SteamAcf) {\n const appId = getAppId();\n const appState = acf.AppState;\n if (\n !appState ||\n typeof appState !== 'object' ||\n appState.appid !== appId ||\n !('buildid' in appState) ||\n !('lastupdated' in appState)\n )\n return null;\n return {\n buildId: appState.buildid,\n timeUpdated: Number(appState.lastupdated),\n };\n}\n\nexport function getLocalSteamDepot(steambeta?: string) {\n const acf = getSteamAcf(steambeta);\n if (!acf) return null;\n const depot = getSteamAcfDepot(acf);\n if (!depot) return null;\n return depot;\n}\n\nexport async function getRemoteSteamDepot(steambeta?: string) {\n const info = await fetchSteamInfo();\n if (!info || !info.data) {\n return null;\n }\n const depot = getSteamDepot(info, steambeta);\n if (!depot) return null;\n return depot;\n}\n\nlet lastUpdateCheck = 0;\nlet lastUpdateAvailable = 0;\nlet lastUpdateResult = false;\n\nexport const getLastSteamUpdateCheck = () => ({\n attempt: lastUpdateCheck,\n available: lastUpdateAvailable,\n result: lastUpdateResult,\n});\n\nexport const clearLastSteamUpdateCheck = () => {\n lastUpdateResult = false;\n};\n\nexport async function hasSteamUpdate(steambeta?: string) {\n lastUpdateCheck = Date.now();\n const localDepot = getLocalSteamDepot(steambeta);\n if (!localDepot) return false;\n\n const remoteDepot = await getRemoteSteamDepot(steambeta);\n if (!remoteDepot) return false;\n\n lastUpdateAvailable = Date.now();\n const res =\n localDepot.buildId !== remoteDepot.buildId ||\n localDepot.timeUpdated < remoteDepot.timeUpdated;\n lastUpdateResult = res;\n\n return res;\n}\n"],"names":["execSync","Logger","getSteamInstallDir","getAppId","STEAMCMD_PATH","existsSync","readFileSync"],"mappings":"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"}