Commit Graph

208 Commits

Author SHA1 Message Date
Guangcong Luo
ec7332b498 Import Utils from lib/utils
Some checks are pending
Node.js CI / build (16.x) (push) Waiting to run
This mostly is just a step towards removing sim's dependency on Node's
stdlib.
2025-01-14 23:01:53 -08:00
Mia
d3e60b31f7
Sim: Use a CSPRNG (#10806)
* Sim: Use a CSPRNG

* Add test

* fix test prng

* move prng test to others

* fix slight hack

* tf?

* Fuck this

* fucking lol

* fix crap

* i'm going to kill someone

* i hate state

* fix test

* Good work genius

* typo

* Fix exportinputlog

* Refactor for inputlog backwards compatibility

This is a pretty major refactor which is mostly unrelated to the
feature, but it does make the code a lot simpler.

* Readability pass

* Readability (again)

* Remove sodium-native dependency

* Refactor to serialize seeds in hex strings

(Also removes the Buffer dependency from PRNG, and slightly improves
comments.)

* Apparently << is 32-bit signed

* Readability

---------

Co-authored-by: Guangcong Luo <guangcongluo@gmail.com>
2025-01-11 13:56:34 -06:00
Kris Johnson
89128dee97
Utils#Multiset: Redefine get to remove undefined return (#10329) 2024-06-06 17:16:59 -06:00
Mia
b048de52e2 Make the logs/ directory prefix configurable 2024-05-19 12:30:22 -05:00
Mia
bdc1ed2401 Chatlog: Add support for linecounts on the database 2024-05-18 03:14:57 -05:00
Mia
56c3b69fcd Utils: Ensure require cache clearing is exhaustive
Previously, this was limited by a depth check that always got hit, meaning it never fully properly cleaned out the module tree (most likely due to the fact the uncacheModuleTree call would loop around to the same module through recursion, meaning mod.children never got deleted, so it never stopped looping). This commit fixes that.
2024-04-22 15:41:54 -05:00
Guangcong Luo
517f34bee8
Fix outdated reference to .end() in Streams doc 2024-01-17 22:20:59 -08:00
Guangcong Luo
6f1a640b71
Improve Streams docs 2024-01-17 22:19:52 -08:00
Guangcong Luo
e22f49ef04 Fix REPL crashing on startup
The problem is that we were cleaning up old REPL sockets after
launching new ones. This moves the cleanup step to before Artemis
and Friends processes are launched.
2023-12-29 17:08:58 -06:00
urkerab
cd7aa49a16
Deep freeze an object's values directly (#10022) 2023-12-28 07:10:32 -08:00
Guangcong Luo
9cd64cba15 Freeze cached Sim objects
We're hunting ~~wabbits~~ validator bugs.

Honestly, this has been a long time coming, but Object.freeze perf
used to not be good enough for us to use it here. Here's hoping!
2023-12-07 01:26:51 -05:00
Guangcong Luo
6b42b4f6b2 Experimental direct replay uploading
We have a new replay server on a new engine using a new schema.

Everything's gone remarkably well, considering.
2023-12-02 11:07:08 -05:00
Mia
4b79ee1276 Net: Expose response data to consumers
Headers are useful for a couple of Net consumers (rate limit data, that sort of thing.)
2023-11-28 12:27:38 -06:00
Mia
effb8ed103 Utils: Explicitly traverse the module tree to ensure no references are held long-term 2023-11-20 22:19:49 -06:00
Mia
071d7e3c94 Process-manager: Don't hold unnecessary module references past their expiry 2023-11-20 21:28:42 -06:00
Mia
56a5175d00 Fix typo
Didn't mean to commit this.
2023-11-04 16:43:55 -05:00
Mia
d6c78db0dd SQL: Account for dist files in loading extensions 2023-11-04 16:41:47 -05:00
Mia
5f6d9029ac Prevent chat processes from nesting 2023-11-04 16:37:49 -05:00
Mia
0211066723
Add offline messaging (#8440) 2023-11-04 14:45:18 -05:00
Mia
f190b1c8a7
Add a chat plugin for storing teams remotely (#9513) 2023-09-24 11:22:26 -05:00
Mia
8caf1b7932 Process-manager: Respawn timed-out processes 2023-06-12 13:17:58 -05:00
Annika
0bc78dddf5 TypeScript 5! 2023-04-09 13:02:19 -07:00
Mia
35c7c62566 Fix Postgres config loading 2022-12-22 15:57:05 -06:00
Mia
b11177d530
Migrate to esbuild for compilation (#9203) 2022-12-22 15:19:29 -06:00
Mia
93a0a0f61c
Rooms: Only lockdown after restarts when battles crash (#9110) 2022-12-04 12:45:31 -05:00
Mia
8bdebea6e4 Fix eslint errors 2022-11-17 16:18:39 -06:00
Annika
9c5d654b89
Revert "Improved typing for utils.ts, and for iterating over base stats (#8919)" (#8938)
This reverts commit c589fb5a5a.
2022-10-16 18:27:25 -07:00
GregLyons
c589fb5a5a
Improved typing for utils.ts, and for iterating over base stats (#8919) 2022-10-16 18:08:11 -07:00
PartMan
161b48daff
Scavengers: Add Speedrun Twist (#8852) 2022-08-06 17:48:46 -07:00
Mia
0860a6e036 Remove accidental debug print 2022-07-28 03:10:12 -05:00
Mia
a0963b8f32 Postgres: Ensure table version is always inserted 2022-07-28 00:12:23 -05:00
Mia
922a7bf8a9 Postgres: Fix bugs in migration API 2022-07-27 23:57:31 -05:00
Mia
67fcc14bf4
Rooms: Ensure battles save all data correctly (#8851)
* Rooms: Ensure battles save all data correctly

* Standardize migration code for future use
2022-07-27 21:08:19 -07:00
Mia
ec4cb6a6fa
Support persisting battles in a Postgres database (#8442) 2022-07-22 18:07:10 -07:00
Annika
bc6e0dcdb7 REPL: Fix heapdump path
The `path` identifier referred to the module `path`, not the path that the heapdump should be written to
2022-03-02 19:48:22 -08:00
Annika
6e91e22740 Improve typing and fix build 2022-02-28 19:49:08 -08:00
Mia
1c8381113f
SQL: Expose an sql-template-strings API
Necessary for consumers of the DatabaseTable API wishing to use the delete etc functions. And this solution is much nicer than `tableinstance.SQL\`\``.
2022-02-01 12:36:31 -06:00
Mia
29cef961c6
SQL: Add an abstraction for typed queries (#8565) 2022-02-01 10:02:53 -08:00
Mia
fa8f7a3e50
SQL: Propagate errors to the parent process (#8613) 2022-01-05 17:56:52 -08:00
Mia
971a02061a
Fix build
I don't know why this counts as a variable.
2021-11-27 22:43:36 -06:00
Mia
5649bc5f30 Crashlogger: Don't crash if there's no Config global 2021-11-27 14:34:20 -06:00
Guangcong Luo
57554dc283 Stop using fs.exists
`fs.exists` should in practice be replaced with try-catch (since the
latter isn't susceptible to race conditions).
2021-10-09 15:53:30 -04:00
Mia
a4e81e29d3 Crashlogger: Support passing nodemailer configuration
This is useful for the new loginserver.
2021-10-03 19:58:13 -05:00
Mia
e08e1a9cf0 Repl: Create file directory if it doesn't exist 2021-09-13 20:26:11 -05:00
Mia
7811795344
Handle new TypeScript version (#8449)
Co-authored-by: Guangcong Luo <guangcongluo@gmail.com>
2021-08-30 20:11:44 -07:00
Mia
d9b342745c Process-Manager: Allow undefined responses in QueryProcessManager 2021-08-21 13:20:06 -05:00
Mia
b70bf3fa17
ProcessManager: Crashlog bad JSON responses (#8438) 2021-08-20 18:18:34 -07:00
Mia
8cf1035ee2
SQL: Automatically prepare statements unless told otherwise (#8439) 2021-08-18 12:51:39 -07:00
Mia
0a2ed42d13 SQL: Support turning SQL.Statements to JSON 2021-08-15 15:17:45 -05:00
Annika
a7ddaa1b63 SQL library: Support loading extensions at will 2021-08-14 20:35:08 -07:00