mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-16 06:18:42 +02:00
Compare commits
399 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6d8e1a6d24 | ||
|
|
e76e254c3e | ||
|
|
ab80ee66c8 | ||
|
|
f25756916a | ||
|
|
7b3265346d | ||
|
|
9a2bb16548 | ||
|
|
ba7d45362f | ||
|
|
995294a770 | ||
|
|
a0fc9cc713 | ||
|
|
a354867fc4 | ||
|
|
b8f03cb50b | ||
|
|
abcd6c545a | ||
|
|
ebf08d5d1f | ||
|
|
8b3206e1c6 | ||
|
|
d9efea0fe6 | ||
|
|
70383d9085 | ||
|
|
16b9ad21ea | ||
|
|
e782b6fd7c | ||
|
|
e64247571d | ||
|
|
7b3cf48453 | ||
|
|
481938a2fb | ||
|
|
463d4cdb1d | ||
|
|
cf48d666f5 | ||
|
|
30a6419b11 | ||
|
|
304a918cc9 | ||
|
|
eeab6df718 | ||
|
|
fe3e8fb348 | ||
|
|
d9e8161a64 | ||
|
|
653d531d0a | ||
|
|
bd5c502f53 | ||
|
|
5f6a5c8785 | ||
|
|
7321d64383 | ||
|
|
2316bf5b69 | ||
|
|
c42d4143c9 | ||
|
|
18ae6ce215 | ||
|
|
101914b660 | ||
|
|
3afafe4454 | ||
|
|
cb92643c7e | ||
|
|
e622b9b904 | ||
|
|
d9f04203cf | ||
|
|
2f7950b49c | ||
|
|
1f08724fea | ||
|
|
a28bb4bd99 | ||
|
|
f40d4f8e92 | ||
|
|
76ce2f9955 | ||
|
|
2ee548a140 | ||
|
|
54d099e552 | ||
|
|
bd6585617c | ||
|
|
f439352438 | ||
|
|
c2a56a6150 | ||
|
|
b8d3109158 | ||
|
|
bed66f980f | ||
|
|
e674a177d6 | ||
|
|
53f187fb89 | ||
|
|
ee4471e22c | ||
|
|
4b5e0b1f6a | ||
|
|
bf5c43daa2 | ||
|
|
30cdaa1a7a | ||
|
|
48a7eb364f | ||
|
|
70521c9156 | ||
|
|
efd4152eed | ||
|
|
23445a917d | ||
|
|
8703da4ab6 | ||
|
|
7f8757b536 | ||
|
|
b42f775493 | ||
|
|
30c04f8152 | ||
|
|
81a707123e | ||
|
|
cfa941ce58 | ||
|
|
c82b2e15a0 | ||
|
|
fe14d4fef3 | ||
|
|
08eb60d21b | ||
|
|
7ed64cbc9c | ||
|
|
819e9f3448 | ||
|
|
7bb36ec111 | ||
|
|
fe7e1c86bc | ||
|
|
d2c7b2504c | ||
|
|
175af0bd28 | ||
|
|
8deb907b89 | ||
|
|
36e3dd73ac | ||
|
|
585e089976 | ||
|
|
7a4a973c06 | ||
|
|
1d8a1d5089 | ||
|
|
7113ee5425 | ||
|
|
38d99ff15e | ||
|
|
b7962ad8ab | ||
|
|
ed308b4fa6 | ||
|
|
574c284321 | ||
|
|
9dc3b22919 | ||
|
|
25afecc0ec | ||
|
|
7f5bc5700e | ||
|
|
da6262c856 | ||
|
|
1288d1c289 | ||
|
|
e478b9a224 | ||
|
|
7ee7a79763 | ||
|
|
519b4fef44 | ||
|
|
e23db93c8b | ||
|
|
1b8205e9d5 | ||
|
|
52111f6e07 | ||
|
|
8ebfcdb089 | ||
|
|
19984a6f22 | ||
|
|
b88361921e | ||
|
|
591ad45154 | ||
|
|
b53c35126e | ||
|
|
35c32e2871 | ||
|
|
e55387df4d | ||
|
|
2414949c2c | ||
|
|
309cd55085 | ||
|
|
8289b23cff | ||
|
|
aef362204d | ||
|
|
bfb9841832 | ||
|
|
6f009679ad | ||
|
|
6a1691fe54 | ||
|
|
bc71b8e18f | ||
|
|
a79d7f9e45 | ||
|
|
478646290e | ||
|
|
5696db2788 | ||
|
|
d4bdb8de2b | ||
|
|
4d3dbf169d | ||
|
|
dc4a85e591 | ||
|
|
de8883ed0f | ||
|
|
3fac471d51 | ||
|
|
0f23c95737 | ||
|
|
f4fcb5cde1 | ||
|
|
e56ed353e5 | ||
|
|
d3b9f32c3f | ||
|
|
384d1c1a2b | ||
|
|
7a1fce6f64 | ||
|
|
eba86e4bf0 | ||
|
|
a3f9a5c21e | ||
|
|
703e7c52ae | ||
|
|
7b993f3550 | ||
|
|
216500ed32 | ||
|
|
dd3975ab1d | ||
|
|
ed59f325ef | ||
|
|
057ccc2a2b | ||
|
|
1ad6f9f310 | ||
|
|
104a97d711 | ||
|
|
be437c83f6 | ||
|
|
7ae309edda | ||
|
|
7ab4ad8174 | ||
|
|
524714601e | ||
|
|
da7f01cca9 | ||
|
|
6c9555ba32 | ||
|
|
6beb6e9f95 | ||
|
|
61274310d6 | ||
|
|
12f9a2b24d | ||
|
|
c467daaf86 | ||
|
|
a923041382 | ||
|
|
ae1ca8f9a6 | ||
|
|
6669c4da6a | ||
|
|
5f1a94a9d3 | ||
|
|
fe87f1f628 | ||
|
|
8553bcb8fc | ||
|
|
75dabd10be | ||
|
|
d8de22a273 | ||
|
|
714c1cc9d6 | ||
|
|
08097aaf09 | ||
|
|
db226ce0b8 | ||
|
|
c5581e92bc | ||
|
|
7c4cd7ef86 | ||
|
|
28a4af0ddc | ||
|
|
0c2a59bb6c | ||
|
|
99f7a4cc7b | ||
|
|
35a34470a2 | ||
|
|
c637d0e4e4 | ||
|
|
803afc5244 | ||
|
|
bbd942ceca | ||
|
|
1e5f7184a2 | ||
|
|
fc8958af83 | ||
|
|
6b9f9ef7fa | ||
|
|
dd4b54406c | ||
|
|
d81358c80f | ||
|
|
6aaeb6b59e | ||
|
|
edf8e24046 | ||
|
|
c0662599b3 | ||
|
|
7ef7b692d0 | ||
|
|
25ac8432fc | ||
|
|
0457081908 | ||
|
|
162310f005 | ||
|
|
c703b71871 | ||
|
|
e9d1ddfaf3 | ||
|
|
4d5401f62e | ||
|
|
de5c1bbf98 | ||
|
|
c93205fec6 | ||
|
|
09c5ec7769 | ||
|
|
33af6685f8 | ||
|
|
d2dd6916b1 | ||
|
|
863ac2c8c0 | ||
|
|
1547581c24 | ||
|
|
1755b7cd7f | ||
|
|
0bf01aacab | ||
|
|
69babf02b2 | ||
|
|
d61e12fdd1 | ||
|
|
4aaf845fca | ||
|
|
4f4c6fe7e5 | ||
|
|
d801743842 | ||
|
|
a5f5c81912 | ||
|
|
65082f677e | ||
|
|
ffc34387f0 | ||
|
|
6a3d22d7bd | ||
|
|
4c7f192645 | ||
|
|
6288eec6d7 | ||
|
|
3d6692b292 | ||
|
|
153dbfff12 | ||
|
|
483d554fc2 | ||
|
|
91105c6d8c | ||
|
|
373ced2efe | ||
|
|
f6871f0911 | ||
|
|
d00fad472e | ||
|
|
b655b7a44e | ||
|
|
1577467fe1 | ||
|
|
ac05135f59 | ||
|
|
47cf5c1610 | ||
|
|
e6755afcb3 | ||
|
|
27a8abbdec | ||
|
|
aba2336093 | ||
|
|
9b483bdd8a | ||
|
|
8c8af38a3a | ||
|
|
93b9a10e41 | ||
|
|
22aec2a8b9 | ||
|
|
ef334cb851 | ||
|
|
c894aba8f5 | ||
|
|
ddb10f833c | ||
|
|
733f2ccb5b | ||
|
|
dc7c9bb065 | ||
|
|
b79df29ef4 | ||
|
|
078f94cbc0 | ||
|
|
0ba337f091 | ||
|
|
fca414e7c9 | ||
|
|
ca374076b8 | ||
|
|
84c4dba1e2 | ||
|
|
fccc27fe58 | ||
|
|
65214c0322 | ||
|
|
903f812424 | ||
|
|
e8311d4f05 | ||
|
|
8c2a23f2ba | ||
|
|
fbc41d0278 | ||
|
|
e966e78b72 | ||
|
|
4d551915b3 | ||
|
|
fd5b0f8241 | ||
|
|
6bd50e6f24 | ||
|
|
9697a82e0c | ||
|
|
187226a30f | ||
|
|
2f2355942f | ||
|
|
330a32e1d0 | ||
|
|
011d5e8fd6 | ||
|
|
5277db2c65 | ||
|
|
497618dc2f | ||
|
|
0ded11af53 | ||
|
|
cf45981cd2 | ||
|
|
55e21d1e19 | ||
|
|
b6b4788845 | ||
|
|
05295598a4 | ||
|
|
cb7c75a3ce | ||
|
|
51ac4d009c | ||
|
|
f79470148e | ||
|
|
788a7549da | ||
|
|
39c5a356b1 | ||
|
|
157ff8ea88 | ||
|
|
d0e66d5be2 | ||
|
|
2ac0470cea | ||
|
|
c5ca30d796 | ||
|
|
63574bca0c | ||
|
|
44f0a77c4e | ||
|
|
87c4cbbc57 | ||
|
|
6f8a59593a | ||
|
|
82511e5030 | ||
|
|
7017f3c2f8 | ||
|
|
f0f335e09a | ||
|
|
a433c8284c | ||
|
|
9827fda4a4 | ||
|
|
dd9ace7891 | ||
|
|
1b03618555 | ||
|
|
68a8427838 | ||
|
|
7e721c144e | ||
|
|
0da9d9d3c0 | ||
|
|
8742df9588 | ||
|
|
4db4b77954 | ||
|
|
1dac133ef4 | ||
|
|
e096456c29 | ||
|
|
eba840dcd3 | ||
|
|
550829a1c3 | ||
|
|
ccf0aa4771 | ||
|
|
e7b68676f5 | ||
|
|
498bb6128a | ||
|
|
a42b72d31a | ||
|
|
489ba595f3 | ||
|
|
7ef12a0323 | ||
|
|
c6141f2adf | ||
|
|
2b7f6381eb | ||
|
|
5789003d46 | ||
|
|
3a7ff7880d | ||
|
|
09b74a3868 | ||
|
|
28d1610bac | ||
|
|
1ce22e9788 | ||
|
|
28ef5df880 | ||
|
|
97d679bdac | ||
|
|
da1b8533e0 | ||
|
|
417671ecb8 | ||
|
|
a6436ca4b3 | ||
|
|
473217ef31 | ||
|
|
e957864c4b | ||
|
|
c6434e2297 | ||
|
|
a3c26caf2c | ||
|
|
5482848eeb | ||
|
|
902306530c | ||
|
|
b114fb9eed | ||
|
|
ecc63eb07e | ||
|
|
107b4e90e9 | ||
|
|
61ffed9b3a | ||
|
|
21c7f56d23 | ||
|
|
89fc22f28f | ||
|
|
544c38065e | ||
|
|
1ce0584b25 | ||
|
|
375cf453b3 | ||
|
|
4dd4f920c3 | ||
|
|
019f2d6a11 | ||
|
|
b46b6e62bc | ||
|
|
79b0f83b5f | ||
|
|
76f0f3d6d3 | ||
|
|
3b4cac5584 | ||
|
|
aee353a54e | ||
|
|
1dc4d01d64 | ||
|
|
99383eb1c7 | ||
|
|
7fc46649f9 | ||
|
|
34cc0441c2 | ||
|
|
f2baa04f45 | ||
|
|
8b6caeb68b | ||
|
|
997ae8c176 | ||
|
|
05875e4f3e | ||
|
|
f93bbfbd5d | ||
|
|
6a76e1a9ab | ||
|
|
aaf80a9a33 | ||
|
|
0c4cf81f66 | ||
|
|
99afd2ff2a | ||
|
|
9585913e0a | ||
|
|
b06b8bbdde | ||
|
|
4e8c43fdbe | ||
|
|
14b4722210 | ||
|
|
2df04bc567 | ||
|
|
e56e3dddf1 | ||
|
|
2997384403 | ||
|
|
fdcb8306d9 | ||
|
|
023f32bce3 | ||
|
|
87e2f5c23b | ||
|
|
6f67224146 | ||
|
|
009622069f | ||
|
|
2a149df13e | ||
|
|
0bdab7bec8 | ||
|
|
ca12bddaf5 | ||
|
|
bc5789af60 | ||
|
|
cb2f530b88 | ||
|
|
d58e2ec7cf | ||
|
|
e608e07879 | ||
|
|
87925f1900 | ||
|
|
e339b5dc5f | ||
|
|
62be77b3f4 | ||
|
|
848fc9905a | ||
|
|
5d266e01a6 | ||
|
|
445c0c3134 | ||
|
|
36a8b35cfb | ||
|
|
71e37823dd | ||
|
|
36312c660d | ||
|
|
e992cb966a | ||
|
|
eed2c5d6d4 | ||
|
|
61c311a126 | ||
|
|
daa7a22786 | ||
|
|
ff0118f2f4 | ||
|
|
9dd8275be1 | ||
|
|
62ab9f33be | ||
|
|
d4120fa688 | ||
|
|
45cf414e9c | ||
|
|
38f693e2c1 | ||
|
|
9c41995e59 | ||
|
|
ad03e4ee82 | ||
|
|
1a052a7daf | ||
|
|
686d2e2b9b | ||
|
|
1007ce5e68 | ||
|
|
7e94a8653e | ||
|
|
6fa149ff08 | ||
|
|
2f40b66789 | ||
|
|
269a74d5c0 | ||
|
|
79cfbb5f2e | ||
|
|
1b271d6e29 | ||
|
|
feb3f1a5db | ||
|
|
32197e024d | ||
|
|
7226a9effa | ||
|
|
74fe6af595 | ||
|
|
e22527e7b7 | ||
|
|
f4cd4b3362 | ||
|
|
a4e9fd9705 | ||
|
|
aa5d37c7c1 | ||
|
|
673efb427f | ||
|
|
7b00fcc5b1 | ||
|
|
7f575eb34c | ||
|
|
3f0c10adf4 | ||
|
|
7f82ceaf24 | ||
|
|
3c52984d61 | ||
|
|
a8e48ddb12 |
191
.git_blame_ignore_revs
Normal file
191
.git_blame_ignore_revs
Normal file
@@ -0,0 +1,191 @@
|
||||
## What is this?
|
||||
## Some git commits contain mostly prettier/lint changes and aren't as valuable when
|
||||
## using `git blame`. This file contains a list of hashes that identify such commits
|
||||
## in a way that git can use.
|
||||
|
||||
## Tell git to use this file with:
|
||||
## git config --local blame.ignoreRevsFile .git_blame_ignore_revs
|
||||
|
||||
## This file was created by cleaning up and filtering the output of this command line:
|
||||
## git log --grep "[Pp]rettier"
|
||||
|
||||
## All that's really needed here are the actual 40-digit hashes of
|
||||
## the commits. I left the author/date info in as it helped when I
|
||||
## was filtering this list to just formatting changes.
|
||||
|
||||
4c9ca4990450740785a4dc95a75de53aeac724df
|
||||
# Author: omuretsu
|
||||
# Date: Fri Jun 23 10:14:18 2023 -0400
|
||||
|
||||
07b1eefe33b16251e0e67ae3231db2059defb1cc
|
||||
# Author: omuretsu
|
||||
# Date: Tue Feb 7 21:16:18 2023 -0500
|
||||
|
||||
bbe6421b067b0d0b876c42e49dafcbbb6458ef8d
|
||||
# Author: borisflagell
|
||||
# Date: Tue Oct 11 15:33:55 2022 +0300
|
||||
|
||||
ed0a28d29272ba2d5716618b73d231bca1ad79d1
|
||||
# Author: hydroflame
|
||||
# Date: Sun Oct 9 00:22:25 2022 -0400
|
||||
|
||||
a1f90d77ce708efb968d7e7ddb804b9862f2f460
|
||||
# Author: Snarling
|
||||
# Date: Tue Sep 27 19:58:14 2022 -0400
|
||||
|
||||
6be884a9ad42e9920be233302a066dea01766c8e
|
||||
# Author: borisflagell
|
||||
# Date: Sat May 28 01:15:05 2022 +0200
|
||||
|
||||
51ba358464ce5787ef472531e0bdb2b6b239955e
|
||||
# Author: Markus-D-M
|
||||
# Date: Wed May 25 21:27:58 2022 +0200
|
||||
|
||||
9091441389182a261438ec16ea17edcf11ab6f39
|
||||
# Author: borisflagell
|
||||
# Date: Mon May 23 19:43:46 2022 +0200
|
||||
|
||||
5bc1d293ca14f717d967ff4a345fe1ace1ffdd4c
|
||||
# Author: borisflagell
|
||||
# Date: Sun May 22 11:59:14 2022 +0200
|
||||
|
||||
d44d71712f066518321cefed18e145141ea23818
|
||||
# Author: borisflagell
|
||||
# Date: Sun May 22 06:40:32 2022 +0200
|
||||
|
||||
bd2d5396a60f31c1bd9837786fb10586cbcc6eda
|
||||
# Author: phyzical
|
||||
# Date: Thu Apr 28 19:22:37 2022 +0800
|
||||
|
||||
ad4c84be937224297f6745b6df3d433466b047c1
|
||||
# Author: borisflagell
|
||||
# Date: Sat Apr 23 15:18:43 2022 +0200
|
||||
|
||||
d4f8f2d0354832101f48d60f0b3445cc1f43dd23
|
||||
# Author: borisflagell
|
||||
# Date: Sat Apr 23 15:01:24 2022 +0200
|
||||
|
||||
a7045a234353de795494c0b3f378808b4a6d32aa
|
||||
# Author: borisflagell
|
||||
# Date: Thu Apr 21 19:20:16 2022 +0200
|
||||
|
||||
421e7b8c74eb85238ccf45b1a83225a452024058
|
||||
# Author: borisflagell
|
||||
# Date: Thu Apr 21 18:51:04 2022 +0200
|
||||
|
||||
9850b56711b29c254102ad8694b1610b4d5adc81
|
||||
# Author: Snarling
|
||||
# Date: Sun Apr 17 17:23:14 2022 -0400
|
||||
|
||||
567fcf8fb63bc469ae61013cca511a76eb6f9086
|
||||
# Author: violet
|
||||
# Date: Wed Apr 13 14:42:07 2022 -0500
|
||||
|
||||
f6af85a38d8286aec702556f1296565de5a5067f
|
||||
# Author: violet
|
||||
# Date: Sun Apr 10 15:57:34 2022 -0500
|
||||
|
||||
57f04d3911b5a384c379dcfb2d0bcb18b25c37ea
|
||||
# Author: violet
|
||||
# Date: Thu Apr 7 11:45:21 2022 -0500
|
||||
|
||||
720e2112c6766b581e43e1f9e712c47300b22dcd
|
||||
# Author: violet
|
||||
# Date: Mon Mar 21 14:40:17 2022 -0500
|
||||
|
||||
ecffc8655a70e6e3c7bd03ba5723b437d7857dfa
|
||||
Merge: 8506dcfed 00d1d294e
|
||||
# Author: hydroflame
|
||||
# Date: Sun Mar 20 22:21:00 2022 -0400
|
||||
|
||||
901ee92fe97606bd27840900512b0fa760ba428e
|
||||
# Author: Olivier Gagnon
|
||||
# Date: Sun Mar 20 22:02:36 2022 -0400
|
||||
|
||||
b3f9380ebd3feb3b6ef91873a1c6a3a1ddc56654
|
||||
# Author: Billy Vong
|
||||
# Date: Fri Dec 17 12:56:48 2021 -0500
|
||||
|
||||
# I *really* didn't want to include this one because it has a few tiny, actual
|
||||
# code changes, but it reformats tens of thousands of lines of code. Argh.
|
||||
8f13363466c2e825bbfb7e4b66d853c4805eda61
|
||||
# Author: Olivier Gagnon
|
||||
# Date: Mon Oct 11 16:38:50 2021 -0400
|
||||
|
||||
66a2adaeb4b12a48fc8fdafe5e5169919f8d46a5
|
||||
# Author: Olivier Gagnon
|
||||
# Date: Wed Sep 22 12:56:55 2021 -0400
|
||||
|
||||
## Additional changes that should be ignored for blame.
|
||||
|
||||
2e7f164b5f251ce457f0d3b9a42cfa0f08ef200e
|
||||
# Author: tyasuh.taeragan
|
||||
# Date: Fri Oct 22 16:35:05 2021 -0400
|
||||
|
||||
a18bdd6afc77752bded2f0794bf35ad9d6455fa1
|
||||
# Author: Olivier Gagnon
|
||||
# Date: Sat Sep 4 19:09:30 2021 -0400
|
||||
|
||||
# from a search for "lint"; many more of these had significant code changes than
|
||||
# Prettier, so I'm only vetting the largest for inclusion
|
||||
|
||||
48f80f25d6fb90edc292481905814c0d5593b5a9
|
||||
# Author: Olivier Gagnon
|
||||
# Date: Wed Apr 6 19:30:08 2022 -0400
|
||||
|
||||
b0f20c8c8f4859f01cfc79bc3945a8e7272d6592
|
||||
# Author: Olivier Gagnon
|
||||
# Date: Sat Sep 25 01:26:03 2021 -0400
|
||||
|
||||
d745150c45979ab251b51447a0847e28966346a6
|
||||
# Author: Olivier Gagnon
|
||||
# Date: Sat May 1 03:17:31 2021 -0400
|
||||
|
||||
3fad5050961a3259b0158763f48016174a2a690e
|
||||
# Author: Olivier Gagnon
|
||||
# Date: Thu Apr 29 23:52:56 2021 -0400
|
||||
|
||||
#
|
||||
# The commits listed below showed up on a search for "[Pp]rettier", but
|
||||
# weren't just Prettier/lint changes.
|
||||
#
|
||||
|
||||
# 6459b1ab483cf66ae1e6e50518424311c6bbbd8b
|
||||
# Author: omuretsu
|
||||
# Date: Sat Feb 4 07:42:35 2023 -0500
|
||||
|
||||
# 5b4addbb212411aa1de27ba0ee16ebaabedbc6a1
|
||||
# Author: borisflagell
|
||||
# Date: Sun May 22 01:08:53 2022 +0200
|
||||
|
||||
# 705a56f3bdcb859179144cdafab7eeb8832f7eb9
|
||||
# Author: borisflagell
|
||||
# Date: Sat May 7 12:55:56 2022 +0200
|
||||
|
||||
# 4fa65322fe770dc3d79cd0301521d230694a1fc7
|
||||
# Author: borisflagell
|
||||
# Date: Thu Apr 21 18:37:47 2022 +0200
|
||||
|
||||
# 81d1c02fdfe087c3bd0a2a8a2a41c2f82a6fef56
|
||||
# Author: hydroflame
|
||||
# Date: Sun Mar 20 22:50:42 2022 -0400
|
||||
|
||||
# 4a7fcda86f5d3d05638b4a9f3a61e5937dde52c6
|
||||
# Author: hydroflame
|
||||
# Date: Sat Sep 4 19:03:05 2021 -0400
|
||||
|
||||
# 7ee2612c17a90a80e5a0a7793a4c81465e212c0c
|
||||
# Author: Martin Fournier
|
||||
# Date: Sun Jan 9 11:15:09 2022 -0500
|
||||
|
||||
# c59806c87d543c7cc78d1d68af9599d118c0cb2b
|
||||
# Author: Martin Fournier
|
||||
# Date: Fri Dec 17 09:54:32 2021 -0500
|
||||
|
||||
# 306facc0d10104d543974d5cb01b6ff419c9acb2
|
||||
# Author: David Edmondson
|
||||
# Date: Sat Sep 4 22:17:30 2021 -0700
|
||||
|
||||
# 1e42f73e2a1b7ac9489a7287c7be99298f412ac0
|
||||
# Author: David Edmondson
|
||||
# Date: Sat Sep 4 13:18:08 2021 -0700commit 2e7f164b5f251ce457f0d3b9a42cfa0f08ef200e
|
||||
@@ -15,3 +15,5 @@ markdown
|
||||
package.json
|
||||
package.lock.json
|
||||
tsdoc-metadata.json
|
||||
|
||||
.git_blame_ignore_revs
|
||||
|
||||
16
.readthedocs.yaml
Normal file
16
.readthedocs.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
# .readthedocs.yaml
|
||||
# Read the Docs configuration file
|
||||
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
||||
|
||||
# Required
|
||||
version: 2
|
||||
|
||||
# Set the version of Python and other tools you might need
|
||||
build:
|
||||
os: ubuntu-22.04
|
||||
tools:
|
||||
python: "3.11"
|
||||
|
||||
# Build documentation in the docs/ directory with Sphinx
|
||||
sphinx:
|
||||
configuration: doc/conf.py
|
||||
@@ -1,10 +1,13 @@
|
||||
import JSDOMEnvironment from "jest-environment-jsdom";
|
||||
import { cloneDeep } from "lodash";
|
||||
|
||||
// https://github.com/facebook/jest/blob/v29.4.3/website/versioned_docs/version-29.4/Configuration.md#testenvironment-string
|
||||
export default class FixJSDOMEnvironment extends JSDOMEnvironment {
|
||||
constructor(...args: ConstructorParameters<typeof JSDOMEnvironment>) {
|
||||
super(...args);
|
||||
|
||||
// TODO Tests aren't polyfilled.
|
||||
this.global.structuredClone = cloneDeep;
|
||||
// FIXME https://github.com/nodejs/node/issues/35889
|
||||
// Add missing importActual() function to mirror requireActual(),
|
||||
// which lets us work around the ESM bug.
|
||||
|
||||
93
dist/OFL.txt
vendored
Normal file
93
dist/OFL.txt
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
@@ -60,7 +60,7 @@ called `npm` is installed as well.
|
||||
|
||||
Not all code contributions will be accepted. The safest way to ensure
|
||||
that you don't waste time working on something that gets rejected is to
|
||||
run your idea(s)/plan(s) past the developpers first.
|
||||
run your idea(s)/plan(s) past the developers first.
|
||||
You can contact him through Discord.
|
||||
|
||||
Otherwise, here are some general guidelines for determining what types of
|
||||
@@ -207,9 +207,17 @@ the following rules:
|
||||
- Ensure you have run `npm run lint` to make sure your changes conform to the
|
||||
rules enforced across the code base. The command will fail if any of the
|
||||
linters find a violation.
|
||||
- Ensure you have run `npm run format` to make sure your changes conform to the
|
||||
style guide.
|
||||
- Also, ensure you have run `npm run test` to make sure your changes pass
|
||||
the automated tests.
|
||||
- Do not check in any bundled files (`dist\*.bundle.js`) or the `index.html`
|
||||
in the root of the repository. These will be updated as part of official
|
||||
releases.
|
||||
- The title of your Pull Request will need to be formatted like
|
||||
`MISC: Reticulated the splines`, where the first word must be capitalised
|
||||
and relate to the kind of change being implemented. Possible examples
|
||||
are UI, BUGFIX, SERVERS, NETSCRIPT... You get the idea.
|
||||
|
||||
## As a Documenter
|
||||
|
||||
@@ -232,7 +240,7 @@ rules:
|
||||
|
||||
## Deploying a new version
|
||||
|
||||
Update the following
|
||||
Update the following:
|
||||
|
||||
- `src/Constants.ts` `Version` and `LatestUpdate`
|
||||
- `package.json` `version`
|
||||
|
||||
34
doc/conf.py
Normal file
34
doc/conf.py
Normal file
@@ -0,0 +1,34 @@
|
||||
# Configuration file for the Sphinx documentation builder.
|
||||
#
|
||||
# This file only contains a selection of the most common options. For a full
|
||||
# list see the documentation:
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
||||
|
||||
# -- Path setup --------------------------------------------------------------
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#
|
||||
import os
|
||||
import sys
|
||||
|
||||
# -- Project information -----------------------------------------------------
|
||||
|
||||
project = 'Bitburner'
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [
|
||||
]
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
# This pattern also affects html_static_path and html_extra_path.
|
||||
exclude_patterns = ['*']
|
||||
exclude_patterns = ['doc/index.rst']
|
||||
|
||||
# -- Options for HTML output -------------------------------------------------
|
||||
5
doc/index.rst
Normal file
5
doc/index.rst
Normal file
@@ -0,0 +1,5 @@
|
||||
.. meta::
|
||||
:http-equiv=Refresh: 0; url='https://github.com/bitburner-official/bitburner-src/blob/stable/src/Documentation/doc/index.md'
|
||||
|
||||
This link is outdated as documentation for Bitburner has been migrated to an in-game menu, this page should have redirected you to the new location.
|
||||
You can also click `here to go to the game's documentation <https://github.com/bitburner-official/bitburner-src/blob/stable/src/Documentation/doc/index.md/>`_.
|
||||
@@ -2,8 +2,8 @@
|
||||
const http = require("http");
|
||||
const crypto = require("crypto");
|
||||
const log = require("electron-log");
|
||||
const Config = require("electron-config");
|
||||
const config = new Config();
|
||||
const Store = require("electron-store");
|
||||
const store = new Store();
|
||||
|
||||
let server;
|
||||
let window;
|
||||
@@ -100,7 +100,7 @@ async function initialize(win) {
|
||||
});
|
||||
});
|
||||
|
||||
const autostart = config.get("autostart", false);
|
||||
const autostart = store.get("autostart", false);
|
||||
if (autostart) {
|
||||
try {
|
||||
await enable();
|
||||
@@ -118,8 +118,8 @@ function enable() {
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
const port = config.get("port", 9990);
|
||||
const host = config.get("host", "127.0.0.1");
|
||||
const port = store.get("port", 9990);
|
||||
const host = store.get("host", "127.0.0.1");
|
||||
log.log(`Starting http server on port ${port} - listening on ${host}`);
|
||||
|
||||
// https://stackoverflow.com/a/62289870
|
||||
@@ -165,20 +165,20 @@ function isListening() {
|
||||
|
||||
function toggleAutostart() {
|
||||
const newValue = !isAutostart();
|
||||
config.set("autostart", newValue);
|
||||
store.set("autostart", newValue);
|
||||
log.log(`New autostart value is '${newValue}'`);
|
||||
}
|
||||
|
||||
function isAutostart() {
|
||||
return config.get("autostart");
|
||||
return store.get("autostart");
|
||||
}
|
||||
|
||||
function getAuthenticationToken() {
|
||||
const token = config.get("token");
|
||||
const token = store.get("token");
|
||||
if (token) return token;
|
||||
|
||||
const newToken = generateToken();
|
||||
config.set("token", newToken);
|
||||
store.set("token", newToken);
|
||||
return newToken;
|
||||
}
|
||||
|
||||
|
||||
@@ -44,6 +44,9 @@ async function createWindow(killall) {
|
||||
window.removeMenu();
|
||||
noScripts = killall ? { query: { noScripts: killall } } : {};
|
||||
window.loadFile("index.html", noScripts);
|
||||
window.once("ready-to-show", () => {
|
||||
utils.setZoomFactor(window, utils.getZoomFactor());
|
||||
});
|
||||
window.show();
|
||||
if (debug) window.webContents.openDevTools();
|
||||
|
||||
@@ -60,7 +63,6 @@ async function createWindow(killall) {
|
||||
|
||||
achievements.enableAchievementsInterval(window);
|
||||
utils.attachUnresponsiveAppHandler(window);
|
||||
utils.setZoomFactor(window);
|
||||
|
||||
try {
|
||||
await api.initialize(window);
|
||||
|
||||
@@ -7,15 +7,10 @@ var fs = require("fs");
|
||||
|
||||
var greenworks;
|
||||
|
||||
if (process.platform == "darwin") {
|
||||
if (process.arch == "x64") greenworks = require("./lib/greenworks-osx64");
|
||||
else if (process.arch == "ia32") greenworks = require("./lib/greenworks-osx32");
|
||||
} else if (process.platform == "win32") {
|
||||
if (process.arch == "x64") greenworks = require("./lib/greenworks-win64");
|
||||
else if (process.arch == "ia32") greenworks = require("./lib/greenworks-win32");
|
||||
} else if (process.platform == "linux") {
|
||||
if (process.arch == "x64") greenworks = require("./lib/greenworks-linux64");
|
||||
else if (process.arch == "ia32") greenworks = require("./lib/greenworks-linux32");
|
||||
if (process.arch === "x64") {
|
||||
if (process.platform === "darwin") greenworks = require("./lib/greenworks-osx64");
|
||||
else if (process.platform === "win32") greenworks = require("./lib/greenworks-win64");
|
||||
else if (process.platform === "linux") greenworks = require("./lib/greenworks-linux64");
|
||||
}
|
||||
|
||||
function error_process(err, error_callback) {
|
||||
|
||||
3
electron/jsconfig.json
Normal file
3
electron/jsconfig.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"compilerOptions": { "target": "ESNext" }
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,24 @@
|
||||
/* eslint-disable no-process-exit */
|
||||
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||
const { app, dialog, BrowserWindow, ipcMain, protocol } = require("electron");
|
||||
|
||||
const log = require("electron-log");
|
||||
log.catchErrors();
|
||||
|
||||
// This handler must be set ASAP to prevent ghost processes.
|
||||
process.on("uncaughtException", function () {
|
||||
// The exception will be logged by electron-log.
|
||||
app.quit();
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
// This handler must be set ASAP to prevent ghost processes.
|
||||
app.on("window-all-closed", () => {
|
||||
log.info("Quitting the app...");
|
||||
app.quit();
|
||||
process.exit(0);
|
||||
});
|
||||
|
||||
const greenworks = require("./greenworks");
|
||||
const api = require("./api-server");
|
||||
const gameWindow = require("./gameWindow");
|
||||
@@ -9,23 +26,16 @@ const achievements = require("./achievements");
|
||||
const utils = require("./utils");
|
||||
const storage = require("./storage");
|
||||
const debounce = require("lodash/debounce");
|
||||
const Config = require("electron-config");
|
||||
const config = new Config();
|
||||
const Store = require("electron-store");
|
||||
const store = new Store();
|
||||
const path = require("path");
|
||||
const { fileURLToPath } = require("url");
|
||||
|
||||
log.transports.file.level = config.get("file-log-level", "info");
|
||||
log.transports.console.level = config.get("console-log-level", "debug");
|
||||
log.transports.file.level = store.get("file-log-level", "info");
|
||||
log.transports.console.level = store.get("console-log-level", "debug");
|
||||
|
||||
log.catchErrors();
|
||||
log.info(`Started app: ${JSON.stringify(process.argv)}`);
|
||||
|
||||
process.on("uncaughtException", function () {
|
||||
// The exception will already have been logged by electron-log
|
||||
app.quit();
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
// We want to fail gracefully if we cannot connect to Steam
|
||||
try {
|
||||
if (greenworks && greenworks.init()) {
|
||||
@@ -42,13 +52,6 @@ try {
|
||||
|
||||
let isRestoreDisabled = false;
|
||||
|
||||
// This was moved so that startup errors do not lead to ghost processes
|
||||
app.on("window-all-closed", () => {
|
||||
log.info("Quitting the app...");
|
||||
app.quit();
|
||||
process.exit(0);
|
||||
});
|
||||
|
||||
function setStopProcessHandler(app, window) {
|
||||
const closingWindowHandler = async (e) => {
|
||||
// We need to prevent the default closing event to add custom logic
|
||||
@@ -105,7 +108,7 @@ function setStopProcessHandler(app, window) {
|
||||
window.gameInfo = { ...arg };
|
||||
await storage.prepareSaveFolders(window);
|
||||
|
||||
const restoreNewest = config.get("onload-restore-newest", true);
|
||||
const restoreNewest = store.get("onload-restore-newest", true);
|
||||
if (restoreNewest && !isRestoreDisabled) {
|
||||
try {
|
||||
await storage.restoreIfNewerExists(window);
|
||||
@@ -152,14 +155,14 @@ function setStopProcessHandler(app, window) {
|
||||
log.debug("Saving to Steam Cloud ...");
|
||||
try {
|
||||
const playerId = window.gameInfo.player.identifier;
|
||||
await storage.pushGameSaveToSteamCloud(save, playerId);
|
||||
await storage.pushSaveDataToSteamCloud(save, playerId);
|
||||
log.silly("Saved Game to Steam Cloud");
|
||||
} catch (error) {
|
||||
log.error(error);
|
||||
utils.writeToast(window, "Could not save to Steam Cloud.", "error", 5000);
|
||||
}
|
||||
},
|
||||
config.get("cloud-save-min-time", 1000 * 60 * 15),
|
||||
store.get("cloud-save-min-time", 1000 * 60 * 15),
|
||||
{ leading: true },
|
||||
);
|
||||
|
||||
@@ -174,7 +177,7 @@ function setStopProcessHandler(app, window) {
|
||||
utils.writeToast(window, "Could not save to disk", "error", 5000);
|
||||
}
|
||||
},
|
||||
config.get("disk-save-min-time", 1000 * 60 * 5),
|
||||
store.get("disk-save-min-time", 1000 * 60 * 5),
|
||||
{ leading: true },
|
||||
);
|
||||
|
||||
@@ -203,7 +206,7 @@ app.on("ready", async () => {
|
||||
if ((method === "GET" && relativePath.startsWith("dist")) || relativePath.match(/^[a-zA-Z-_]*\.html/)) {
|
||||
return callback(filePath);
|
||||
}
|
||||
log.error("Tried to access a page outside sandbox.");
|
||||
log.error(`Tried to access a page outside the sandbox. Url: ${url}. Method: ${method}.`);
|
||||
callback(path.join(__dirname, "fileError.txt"));
|
||||
});
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||
const { app, Menu, clipboard, dialog, shell } = require("electron");
|
||||
const log = require("electron-log");
|
||||
const Config = require("electron-config");
|
||||
const Store = require("electron-store");
|
||||
const api = require("./api-server");
|
||||
const utils = require("./utils");
|
||||
const storage = require("./storage");
|
||||
const config = new Config();
|
||||
const store = new Store();
|
||||
|
||||
function getMenu(window) {
|
||||
const canZoomIn = utils.getZoomFactor() <= 2;
|
||||
@@ -103,8 +103,8 @@ function getMenu(window) {
|
||||
enabled: storage.isCloudEnabled(),
|
||||
click: async () => {
|
||||
try {
|
||||
const saveGame = await storage.getSteamCloudSaveString();
|
||||
await storage.pushSaveGameForImport(window, saveGame, false);
|
||||
const saveData = await storage.getSteamCloudSaveData();
|
||||
await storage.pushSaveGameForImport(window, saveData, false);
|
||||
} catch (error) {
|
||||
log.error(error);
|
||||
utils.writeToast(window, "Could not load from Steam Cloud", "error", 5000);
|
||||
@@ -114,16 +114,6 @@ function getMenu(window) {
|
||||
{
|
||||
type: "separator",
|
||||
},
|
||||
{
|
||||
label: "Compress Disk Saves (.gz)",
|
||||
type: "checkbox",
|
||||
checked: storage.isSaveCompressionEnabled(),
|
||||
click: (menuItem) => {
|
||||
storage.setSaveCompressionConfig(menuItem.checked);
|
||||
utils.writeToast(window, `${menuItem.checked ? "Enabled" : "Disabled"} Save Compression`, "info", 5000);
|
||||
refreshMenu(window);
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Auto-Save to Disk",
|
||||
type: "checkbox",
|
||||
@@ -153,9 +143,9 @@ function getMenu(window) {
|
||||
{
|
||||
label: "Restore Newest on Load",
|
||||
type: "checkbox",
|
||||
checked: config.get("onload-restore-newest", true),
|
||||
checked: store.get("onload-restore-newest", true),
|
||||
click: (menuItem) => {
|
||||
config.set("onload-restore-newest", menuItem.checked);
|
||||
store.set("onload-restore-newest", menuItem.checked);
|
||||
utils.writeToast(
|
||||
window,
|
||||
`${menuItem.checked ? "Enabled" : "Disabled"} Restore Newest on Load`,
|
||||
@@ -222,7 +212,7 @@ function getMenu(window) {
|
||||
click: () => window.loadFile("index.html"),
|
||||
},
|
||||
{
|
||||
label: "Reload & Kill All Scripts",
|
||||
label: "Reload && Kill All Scripts",
|
||||
click: () => utils.reloadAndKill(window, true),
|
||||
},
|
||||
],
|
||||
|
||||
474
electron/package-lock.json
generated
474
electron/package-lock.json
generated
@@ -1,51 +1,106 @@
|
||||
{
|
||||
"name": "bitburner",
|
||||
"version": "2.5.0",
|
||||
"lockfileVersion": 2,
|
||||
"version": "2.6.2",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "bitburner",
|
||||
"version": "2.5.0",
|
||||
"version": "2.6.2",
|
||||
"dependencies": {
|
||||
"electron-config": "^2.0.0",
|
||||
"electron-log": "^4.4.8",
|
||||
"electron-store": "^8.1.0",
|
||||
"lodash": "^4.17.21"
|
||||
}
|
||||
},
|
||||
"node_modules/conf": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/conf/-/conf-1.4.0.tgz",
|
||||
"integrity": "sha512-bzlVWS2THbMetHqXKB8ypsXN4DQ/1qopGwNJi1eYbpwesJcd86FBjFciCQX/YwAhp9bM7NVnPFqZ5LpV7gP0Dg==",
|
||||
"node_modules/ajv": {
|
||||
"version": "8.12.0",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
|
||||
"integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
|
||||
"dependencies": {
|
||||
"dot-prop": "^4.1.0",
|
||||
"env-paths": "^1.0.0",
|
||||
"make-dir": "^1.0.0",
|
||||
"pkg-up": "^2.0.0",
|
||||
"write-file-atomic": "^2.3.0"
|
||||
"fast-deep-equal": "^3.1.1",
|
||||
"json-schema-traverse": "^1.0.0",
|
||||
"require-from-string": "^2.0.2",
|
||||
"uri-js": "^4.2.2"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/epoberezkin"
|
||||
}
|
||||
},
|
||||
"node_modules/ajv-formats": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
|
||||
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
|
||||
"dependencies": {
|
||||
"ajv": "^8.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"ajv": "^8.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"ajv": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/atomically": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz",
|
||||
"integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==",
|
||||
"engines": {
|
||||
"node": ">=10.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/conf": {
|
||||
"version": "10.2.0",
|
||||
"resolved": "https://registry.npmjs.org/conf/-/conf-10.2.0.tgz",
|
||||
"integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==",
|
||||
"dependencies": {
|
||||
"ajv": "^8.6.3",
|
||||
"ajv-formats": "^2.1.1",
|
||||
"atomically": "^1.7.0",
|
||||
"debounce-fn": "^4.0.0",
|
||||
"dot-prop": "^6.0.1",
|
||||
"env-paths": "^2.2.1",
|
||||
"json-schema-typed": "^7.0.3",
|
||||
"onetime": "^5.1.2",
|
||||
"pkg-up": "^3.1.0",
|
||||
"semver": "^7.3.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/debounce-fn": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz",
|
||||
"integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==",
|
||||
"dependencies": {
|
||||
"mimic-fn": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/dot-prop": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz",
|
||||
"integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==",
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
|
||||
"integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
|
||||
"dependencies": {
|
||||
"is-obj": "^1.0.0"
|
||||
"is-obj": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/electron-config": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/electron-config/-/electron-config-2.0.0.tgz",
|
||||
"integrity": "sha512-5mGwRK4lsAo6tiy4KNF/zUInYpUGr7JJzLA8FHOoqBWV3kkKJWSrDXo4Uk2Ffm5aeQ1o73XuorfkYhaWFV2O4g==",
|
||||
"deprecated": "Renamed to `electron-store`.",
|
||||
"dependencies": {
|
||||
"conf": "^1.0.0"
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/electron-log": {
|
||||
@@ -53,56 +108,70 @@
|
||||
"resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.8.tgz",
|
||||
"integrity": "sha512-QQ4GvrXO+HkgqqEOYbi+DHL7hj5JM+nHi/j+qrN9zeeXVKy8ZABgbu4CnG+BBqDZ2+tbeq9tUC4DZfIWFU5AZA=="
|
||||
},
|
||||
"node_modules/env-paths": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz",
|
||||
"integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
"node_modules/electron-store": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/electron-store/-/electron-store-8.1.0.tgz",
|
||||
"integrity": "sha512-2clHg/juMjOH0GT9cQ6qtmIvK183B39ZXR0bUoPwKwYHJsEF3quqyDzMFUAu+0OP8ijmN2CbPRAelhNbWUbzwA==",
|
||||
"dependencies": {
|
||||
"conf": "^10.2.0",
|
||||
"type-fest": "^2.17.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/env-paths": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
|
||||
"integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/fast-deep-equal": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
||||
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
|
||||
},
|
||||
"node_modules/find-up": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
|
||||
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
|
||||
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
|
||||
"dependencies": {
|
||||
"locate-path": "^2.0.0"
|
||||
"locate-path": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/graceful-fs": {
|
||||
"version": "4.2.8",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
|
||||
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
|
||||
},
|
||||
"node_modules/imurmurhash": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
|
||||
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
|
||||
"engines": {
|
||||
"node": ">=0.8.19"
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/is-obj": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
|
||||
"integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
|
||||
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/json-schema-traverse": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
|
||||
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
|
||||
},
|
||||
"node_modules/json-schema-typed": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz",
|
||||
"integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A=="
|
||||
},
|
||||
"node_modules/locate-path": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
|
||||
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
|
||||
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
|
||||
"dependencies": {
|
||||
"p-locate": "^2.0.0",
|
||||
"p-locate": "^3.0.0",
|
||||
"path-exists": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/lodash": {
|
||||
@@ -110,227 +179,152 @@
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
||||
},
|
||||
"node_modules/make-dir": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
|
||||
"integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
|
||||
"node_modules/lru-cache": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||
"dependencies": {
|
||||
"pify": "^3.0.0"
|
||||
"yallist": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/mimic-fn": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz",
|
||||
"integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/onetime": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
|
||||
"integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
|
||||
"dependencies": {
|
||||
"mimic-fn": "^2.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/onetime/node_modules/mimic-fn": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
|
||||
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/p-limit": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
|
||||
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
|
||||
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
|
||||
"dependencies": {
|
||||
"p-try": "^1.0.0"
|
||||
"p-try": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
"node": ">=6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/p-locate": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
|
||||
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
|
||||
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
|
||||
"dependencies": {
|
||||
"p-limit": "^1.1.0"
|
||||
"p-limit": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/p-try": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
|
||||
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
|
||||
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/path-exists": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
||||
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/pify": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
|
||||
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
|
||||
"integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/pkg-up": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
|
||||
"integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
|
||||
"integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
|
||||
"dependencies": {
|
||||
"find-up": "^2.1.0"
|
||||
"find-up": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/signal-exit": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz",
|
||||
"integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ=="
|
||||
"node_modules/punycode": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
|
||||
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/write-file-atomic": {
|
||||
"version": "2.4.3",
|
||||
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
|
||||
"integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
|
||||
"node_modules/require-from-string": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
|
||||
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/semver": {
|
||||
"version": "7.5.4",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
|
||||
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
|
||||
"dependencies": {
|
||||
"graceful-fs": "^4.1.11",
|
||||
"imurmurhash": "^0.1.4",
|
||||
"signal-exit": "^3.0.2"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"conf": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/conf/-/conf-1.4.0.tgz",
|
||||
"integrity": "sha512-bzlVWS2THbMetHqXKB8ypsXN4DQ/1qopGwNJi1eYbpwesJcd86FBjFciCQX/YwAhp9bM7NVnPFqZ5LpV7gP0Dg==",
|
||||
"requires": {
|
||||
"dot-prop": "^4.1.0",
|
||||
"env-paths": "^1.0.0",
|
||||
"make-dir": "^1.0.0",
|
||||
"pkg-up": "^2.0.0",
|
||||
"write-file-atomic": "^2.3.0"
|
||||
"lru-cache": "^6.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"dot-prop": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz",
|
||||
"integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==",
|
||||
"requires": {
|
||||
"is-obj": "^1.0.0"
|
||||
"node_modules/type-fest": {
|
||||
"version": "2.19.0",
|
||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
|
||||
"integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
|
||||
"engines": {
|
||||
"node": ">=12.20"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"electron-config": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/electron-config/-/electron-config-2.0.0.tgz",
|
||||
"integrity": "sha512-5mGwRK4lsAo6tiy4KNF/zUInYpUGr7JJzLA8FHOoqBWV3kkKJWSrDXo4Uk2Ffm5aeQ1o73XuorfkYhaWFV2O4g==",
|
||||
"requires": {
|
||||
"conf": "^1.0.0"
|
||||
"node_modules/uri-js": {
|
||||
"version": "4.4.1",
|
||||
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
|
||||
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
|
||||
"dependencies": {
|
||||
"punycode": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"electron-log": {
|
||||
"version": "4.4.8",
|
||||
"resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.8.tgz",
|
||||
"integrity": "sha512-QQ4GvrXO+HkgqqEOYbi+DHL7hj5JM+nHi/j+qrN9zeeXVKy8ZABgbu4CnG+BBqDZ2+tbeq9tUC4DZfIWFU5AZA=="
|
||||
},
|
||||
"env-paths": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz",
|
||||
"integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA="
|
||||
},
|
||||
"find-up": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
|
||||
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
|
||||
"requires": {
|
||||
"locate-path": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "4.2.8",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
|
||||
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
|
||||
},
|
||||
"imurmurhash": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
|
||||
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
|
||||
},
|
||||
"is-obj": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
|
||||
"integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
|
||||
},
|
||||
"locate-path": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
|
||||
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
|
||||
"requires": {
|
||||
"p-locate": "^2.0.0",
|
||||
"path-exists": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
||||
},
|
||||
"make-dir": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
|
||||
"integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
|
||||
"requires": {
|
||||
"pify": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"p-limit": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
|
||||
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
|
||||
"requires": {
|
||||
"p-try": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"p-locate": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
|
||||
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
|
||||
"requires": {
|
||||
"p-limit": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"p-try": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
|
||||
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
|
||||
},
|
||||
"path-exists": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
||||
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
|
||||
},
|
||||
"pify": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
|
||||
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
|
||||
},
|
||||
"pkg-up": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
|
||||
"integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
|
||||
"requires": {
|
||||
"find-up": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"signal-exit": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz",
|
||||
"integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ=="
|
||||
},
|
||||
"write-file-atomic": {
|
||||
"version": "2.4.3",
|
||||
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
|
||||
"integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.11",
|
||||
"imurmurhash": "^0.1.4",
|
||||
"signal-exit": "^3.0.2"
|
||||
}
|
||||
"node_modules/yallist": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"name": "bitburner",
|
||||
"version": "2.5.0",
|
||||
"version": "2.6.2",
|
||||
"description": "A cyberpunk-themed programming incremental game",
|
||||
"main": "main.js",
|
||||
"author": "Daniel Xie, Olivier Gagnon, et al.",
|
||||
"author": "Daniel Xie, hydroflame, et al.",
|
||||
"mac": {
|
||||
"icon": "./public/icons/mac/icon.icns",
|
||||
"category": "public.app-category.games"
|
||||
@@ -24,7 +24,7 @@
|
||||
"buildResources": "public"
|
||||
},
|
||||
"dependencies": {
|
||||
"electron-config": "^2.0.0",
|
||||
"electron-store": "^8.1.0",
|
||||
"electron-log": "^4.4.8",
|
||||
"lodash": "^4.17.21"
|
||||
}
|
||||
|
||||
1
electron/saveDataBinaryFormat.d.ts
vendored
Normal file
1
electron/saveDataBinaryFormat.d.ts
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export declare const isBinaryFormat: (saveData: string | Uint8Array) => boolean;
|
||||
13
electron/saveDataBinaryFormat.js
Normal file
13
electron/saveDataBinaryFormat.js
Normal file
@@ -0,0 +1,13 @@
|
||||
// The 2 magic bytes of the gzip header plus the mandatory compression type of DEFLATE
|
||||
const magicBytes = [0x1f, 0x8b, 0x08];
|
||||
|
||||
function isBinaryFormat(rawData) {
|
||||
for (let i = 0; i < magicBytes.length; ++i) {
|
||||
if (magicBytes[i] !== rawData[i]) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
module.exports = { isBinaryFormat };
|
||||
@@ -10,8 +10,9 @@ const gunzip = promisify(zlib.gunzip);
|
||||
const greenworks = require("./greenworks");
|
||||
const log = require("electron-log");
|
||||
const flatten = require("lodash/flatten");
|
||||
const Config = require("electron-config");
|
||||
const config = new Config();
|
||||
const Store = require("electron-store");
|
||||
const { isBinaryFormat } = require("./saveDataBinaryFormat");
|
||||
const store = new Store();
|
||||
|
||||
// https://stackoverflow.com/a/69418940
|
||||
const dirSize = async (directory) => {
|
||||
@@ -79,23 +80,15 @@ async function getFolderSizeInBytes(saveFolder) {
|
||||
}
|
||||
|
||||
function setAutosaveConfig(value) {
|
||||
config.set("autosave-enabled", value);
|
||||
store.set("autosave-enabled", value);
|
||||
}
|
||||
|
||||
function isAutosaveEnabled() {
|
||||
return config.get("autosave-enabled", true);
|
||||
}
|
||||
|
||||
function setSaveCompressionConfig(value) {
|
||||
config.set("save-compression-enabled", value);
|
||||
}
|
||||
|
||||
function isSaveCompressionEnabled() {
|
||||
return config.get("save-compression-enabled", true);
|
||||
return store.get("autosave-enabled", true);
|
||||
}
|
||||
|
||||
function setCloudEnabledConfig(value) {
|
||||
config.set("cloud-enabled", value);
|
||||
store.set("cloud-enabled", value);
|
||||
}
|
||||
|
||||
async function getSaveFolder(window, root = false) {
|
||||
@@ -112,7 +105,7 @@ function isCloudEnabled() {
|
||||
if (!greenworks.isCloudEnabledForUser()) return false;
|
||||
|
||||
// Let's check the config file to see if it's been overriden
|
||||
const enabledInConf = config.get("cloud-enabled", true);
|
||||
const enabledInConf = store.get("cloud-enabled", true);
|
||||
if (!enabledInConf) return false;
|
||||
|
||||
const isAppEnabled = greenworks.isCloudEnabled();
|
||||
@@ -163,17 +156,22 @@ async function backupSteamDataToDisk(currentPlayerId) {
|
||||
const file = greenworks.getFileNameAndSize(0);
|
||||
const previousPlayerId = file.name.replace(".json.gz", "");
|
||||
if (previousPlayerId !== currentPlayerId) {
|
||||
const backupSave = await getSteamCloudSaveString();
|
||||
const backupSaveData = await getSteamCloudSaveData();
|
||||
const backupFile = path.join(app.getPath("userData"), "/saves/_backups", `${previousPlayerId}.json.gz`);
|
||||
const buffer = Buffer.from(backupSave, "base64").toString("utf8");
|
||||
saveContent = await gzip(buffer);
|
||||
await fs.writeFile(backupFile, saveContent, "utf8");
|
||||
await fs.writeFile(backupFile, backupSaveData, "utf8");
|
||||
log.debug(`Saved backup game to '${backupFile}`);
|
||||
}
|
||||
}
|
||||
|
||||
async function pushGameSaveToSteamCloud(base64save, currentPlayerId) {
|
||||
if (!isCloudEnabled) return Promise.reject("Steam Cloud is not Enabled");
|
||||
/**
|
||||
* The name of save file is `${currentPlayerId}.json.gz`. The content of save file is weird: it's a base64 string of the
|
||||
* binary data of compressed json save string. It's weird because the extension is .json.gz while the content is a
|
||||
* base64 string. Check the comments in the implementation to see why it is like that.
|
||||
*/
|
||||
async function pushSaveDataToSteamCloud(saveData, currentPlayerId) {
|
||||
if (!isCloudEnabled()) {
|
||||
return Promise.reject("Steam Cloud is not Enabled");
|
||||
}
|
||||
|
||||
try {
|
||||
backupSteamDataToDisk(currentPlayerId);
|
||||
@@ -183,12 +181,19 @@ async function pushGameSaveToSteamCloud(base64save, currentPlayerId) {
|
||||
|
||||
const steamSaveName = `${currentPlayerId}.json.gz`;
|
||||
|
||||
// Let's decode the base64 string so GZIP is more efficient.
|
||||
const buffer = Buffer.from(base64save, "base64");
|
||||
const compressedBuffer = await gzip(buffer);
|
||||
// We can't use utf8 for some reason, steamworks is unhappy.
|
||||
const content = compressedBuffer.toString("base64");
|
||||
log.debug(`Uncompressed: ${base64save.length} bytes`);
|
||||
/**
|
||||
* When we push save file to Steam Cloud, we use greenworks.saveTextToFile. It seems that this method expects a string
|
||||
* as the file content. That is why saveData is encoded in base64 and pushed to Steam Cloud as a text file.
|
||||
*
|
||||
* Encoding saveData in UTF-8 (with buffer.toString("utf8")) is not the proper way to convert binary data to string.
|
||||
* Quote from buffer's documentation: "If encoding is 'utf8' and a byte sequence in the input is not valid UTF-8, then
|
||||
* each invalid byte is replaced with the replacement character U+FFFD.". The proper way to do it is to use
|
||||
* String.fromCharCode or String.fromCodePoint.
|
||||
*
|
||||
* Instead of implementing it, the old code (encoding in base64) is used here for backward compatibility.
|
||||
*/
|
||||
const content = saveData.toString("base64");
|
||||
log.debug(`Uncompressed: ${saveData.length} bytes`);
|
||||
log.debug(`Compressed: ${content.length} bytes`);
|
||||
log.debug(`Saving to Steam Cloud as ${steamSaveName}`);
|
||||
|
||||
@@ -199,41 +204,37 @@ async function pushGameSaveToSteamCloud(base64save, currentPlayerId) {
|
||||
}
|
||||
}
|
||||
|
||||
async function getSteamCloudSaveString() {
|
||||
if (!isCloudEnabled()) return Promise.reject("Steam Cloud is not Enabled");
|
||||
/**
|
||||
* This function processes the save file in Steam Cloud and returns the save data in the binary format.
|
||||
*/
|
||||
async function getSteamCloudSaveData() {
|
||||
if (!isCloudEnabled()) {
|
||||
return Promise.reject("Steam Cloud is not Enabled");
|
||||
}
|
||||
log.debug(`Fetching Save in Steam Cloud`);
|
||||
const cloudString = await getCloudFile();
|
||||
const gzippedBase64Buffer = Buffer.from(cloudString, "base64");
|
||||
const uncompressedBuffer = await gunzip(gzippedBase64Buffer);
|
||||
const content = uncompressedBuffer.toString("base64");
|
||||
log.debug(`Compressed: ${cloudString.length} bytes`);
|
||||
log.debug(`Uncompressed: ${content.length} bytes`);
|
||||
return content;
|
||||
// Decode cloudString to get save data back.
|
||||
const saveData = Buffer.from(cloudString, "base64");
|
||||
log.debug(`SaveData: ${saveData.length} bytes`);
|
||||
return saveData;
|
||||
}
|
||||
|
||||
async function saveGameToDisk(window, saveData) {
|
||||
async function saveGameToDisk(window, electronGameData) {
|
||||
const currentFolder = await getSaveFolder(window);
|
||||
let saveFolderSizeBytes = await getFolderSizeInBytes(currentFolder);
|
||||
const maxFolderSizeBytes = config.get("autosave-quota", 1e8); // 100Mb per playerIndentifier
|
||||
const maxFolderSizeBytes = store.get("autosave-quota", 1e8); // 100Mb per playerIndentifier
|
||||
const remainingSpaceBytes = maxFolderSizeBytes - saveFolderSizeBytes;
|
||||
log.debug(`Folder Usage: ${saveFolderSizeBytes} bytes`);
|
||||
log.debug(`Folder Capacity: ${maxFolderSizeBytes} bytes`);
|
||||
log.debug(
|
||||
`Remaining: ${remainingSpaceBytes} bytes (${((saveFolderSizeBytes / maxFolderSizeBytes) * 100).toFixed(2)}% used)`,
|
||||
);
|
||||
const shouldCompress = isSaveCompressionEnabled();
|
||||
const fileName = saveData.fileName;
|
||||
const file = path.join(currentFolder, fileName + (shouldCompress ? ".gz" : ""));
|
||||
let saveData = electronGameData.save;
|
||||
const file = path.join(currentFolder, electronGameData.fileName);
|
||||
try {
|
||||
let saveContent = saveData.save;
|
||||
if (shouldCompress) {
|
||||
// Let's decode the base64 string so GZIP is more efficient.
|
||||
const buffer = Buffer.from(saveContent, "base64").toString("utf8");
|
||||
saveContent = await gzip(buffer);
|
||||
}
|
||||
await fs.writeFile(file, saveContent, "utf8");
|
||||
await fs.writeFile(file, saveData, "utf8");
|
||||
log.debug(`Saved Game to '${file}'`);
|
||||
log.debug(`Save Size: ${saveContent.length} bytes`);
|
||||
log.debug(`Save Size: ${saveData.length} bytes`);
|
||||
} catch (error) {
|
||||
log.error(error);
|
||||
}
|
||||
@@ -276,14 +277,14 @@ async function loadLastFromDisk(window) {
|
||||
async function loadFileFromDisk(path) {
|
||||
const buffer = await fs.readFile(path);
|
||||
let content;
|
||||
if (path.endsWith(".gz")) {
|
||||
const uncompressedBuffer = await gunzip(buffer);
|
||||
content = uncompressedBuffer.toString("base64");
|
||||
log.debug(`Uncompressed file content (new size: ${content.length} bytes)`);
|
||||
if (isBinaryFormat(buffer)) {
|
||||
// Save file is in the binary format.
|
||||
content = buffer;
|
||||
} else {
|
||||
// Save file is in the base64 format.
|
||||
content = buffer.toString("utf8");
|
||||
log.debug(`Loaded file with ${content.length} bytes`);
|
||||
}
|
||||
log.debug(`Loaded file with ${content.length} bytes`);
|
||||
return content;
|
||||
}
|
||||
|
||||
@@ -319,7 +320,7 @@ async function restoreIfNewerExists(window) {
|
||||
const disk = {};
|
||||
|
||||
try {
|
||||
steam.save = await getSteamCloudSaveString();
|
||||
steam.save = await getSteamCloudSaveData();
|
||||
steam.data = await getSaveInformation(window, steam.save);
|
||||
} catch (error) {
|
||||
log.error("Could not retrieve steam file");
|
||||
@@ -361,12 +362,12 @@ async function restoreIfNewerExists(window) {
|
||||
// We add a few seconds to the currentSave's lastSave to prioritize it
|
||||
log.info("Found newer data than the current's save file");
|
||||
log.silly(bestMatch.data);
|
||||
await pushSaveGameForImport(window, bestMatch.save, true);
|
||||
pushSaveGameForImport(window, bestMatch.save, true);
|
||||
return true;
|
||||
} else if (bestMatch.data.playtime > currentData.playtime && currentData.playtime < lowPlaytime) {
|
||||
log.info("Found older save, but with more playtime, and current less than 15 mins played");
|
||||
log.silly(bestMatch.data);
|
||||
await pushSaveGameForImport(window, bestMatch.save, true);
|
||||
pushSaveGameForImport(window, bestMatch.save, true);
|
||||
return true;
|
||||
} else {
|
||||
log.debug("Current save data is the freshest");
|
||||
@@ -380,8 +381,8 @@ module.exports = {
|
||||
getSaveInformation,
|
||||
restoreIfNewerExists,
|
||||
pushSaveGameForImport,
|
||||
pushGameSaveToSteamCloud,
|
||||
getSteamCloudSaveString,
|
||||
pushSaveDataToSteamCloud,
|
||||
getSteamCloudSaveData,
|
||||
getSteamCloudQuota,
|
||||
deleteCloudFile,
|
||||
saveGameToDisk,
|
||||
@@ -394,6 +395,4 @@ module.exports = {
|
||||
setCloudEnabledConfig,
|
||||
isAutosaveEnabled,
|
||||
setAutosaveConfig,
|
||||
isSaveCompressionEnabled,
|
||||
setSaveCompressionConfig,
|
||||
};
|
||||
|
||||
@@ -2,13 +2,17 @@
|
||||
const { dialog, shell } = require("electron");
|
||||
const log = require("electron-log");
|
||||
|
||||
const Config = require("electron-config");
|
||||
const config = new Config();
|
||||
const Store = require("electron-store");
|
||||
const store = new Store();
|
||||
|
||||
function reloadAndKill(window, killScripts) {
|
||||
log.info("Reloading & Killing all scripts...");
|
||||
const zoomFactor = getZoomFactor();
|
||||
window.webContents.forcefullyCrashRenderer();
|
||||
window.loadFile("index.html", killScripts ? { query: { noScripts: true } } : {});
|
||||
window.once("ready-to-show", () => {
|
||||
setZoomFactor(window, zoomFactor);
|
||||
});
|
||||
}
|
||||
|
||||
function promptForReload(window) {
|
||||
@@ -88,7 +92,7 @@ async function writeToast(window, message, type = "info", duration = 2000) {
|
||||
}
|
||||
|
||||
function getZoomFactor() {
|
||||
const configZoom = config.get("zoom", 1);
|
||||
const configZoom = store.get("zoom", 1);
|
||||
return configZoom;
|
||||
}
|
||||
|
||||
@@ -96,7 +100,7 @@ function setZoomFactor(window, zoom = null) {
|
||||
if (zoom === null) {
|
||||
zoom = 1;
|
||||
} else {
|
||||
config.set("zoom", zoom);
|
||||
store.set("zoom", zoom);
|
||||
}
|
||||
window.webContents.setZoomFactor(zoom);
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
const { screen } = require("electron");
|
||||
const log = require("electron-log");
|
||||
const debounce = require("lodash/debounce");
|
||||
const Config = require("electron-config");
|
||||
const config = new Config();
|
||||
const Store = require("electron-store");
|
||||
const store = new Store();
|
||||
|
||||
// https://stackoverflow.com/a/68627253
|
||||
const windowTracker = (windowName) => {
|
||||
@@ -11,8 +11,8 @@ const windowTracker = (windowName) => {
|
||||
|
||||
const setBounds = () => {
|
||||
// Restore from appConfig
|
||||
if (config.has(`window.${windowName}`)) {
|
||||
windowState = config.get(`window.${windowName}`);
|
||||
if (store.has(`window.${windowName}`)) {
|
||||
windowState = store.get(`window.${windowName}`);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ const windowTracker = (windowName) => {
|
||||
|
||||
windowState.isMaximized = window.isMaximized();
|
||||
log.silly(`Saving window.${windowName} to configs`);
|
||||
config.set(`window.${windowName}`, windowState);
|
||||
store.set(`window.${windowName}`, windowState);
|
||||
log.silly(windowState);
|
||||
}, 1000);
|
||||
|
||||
|
||||
@@ -7,15 +7,17 @@ module.exports = {
|
||||
transformIgnorePatterns: ["node_modules/(?!react-markdown)/"],
|
||||
testPathIgnorePatterns: [".cypress", "node_modules", "dist"],
|
||||
testEnvironment: "./FixJSDOMEnvironment.ts",
|
||||
setupFiles: ["./jest.polyfills.js"],
|
||||
moduleNameMapper: {
|
||||
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":
|
||||
"<rootDir>/test/__mocks__/fileMock.js",
|
||||
"\\.(css|less)$": "<rootDir>/test/__mocks__/styleMock.js",
|
||||
"\\!!raw-loader!.*$": "<rootDir>/test/__mocks__/rawLoader.js",
|
||||
"\\.(css|less)$": "<rootDir>/test/__mocks__/NullMock.js",
|
||||
"\\!!raw-loader!.*$": "<rootDir>/test/__mocks__/NullMock.js",
|
||||
"@player": "<rootDir>/src/Player",
|
||||
"@enums": "<rootDir>/src/Enums",
|
||||
"@nsdefs": "<rootDir>/src/ScriptEditor/NetscriptDefinitions",
|
||||
"^monaco-editor$": "<rootDir>/test/__mocks__/monacoMock.js",
|
||||
"^monaco-vim$": "<rootDir>/test/__mocks__/monacoMock.js",
|
||||
"^monaco-editor$": "<rootDir>/test/__mocks__/NullMock.js",
|
||||
"^monaco-vim$": "<rootDir>/test/__mocks__/NullMock.js",
|
||||
"/utils/Protections$": "<rootDir>/test/__mocks__/NullMock.js",
|
||||
},
|
||||
};
|
||||
|
||||
6
jest.polyfills.js
Normal file
6
jest.polyfills.js
Normal file
@@ -0,0 +1,6 @@
|
||||
const { TextEncoder, TextDecoder } = require("node:util");
|
||||
|
||||
Object.defineProperties(globalThis, {
|
||||
TextEncoder: { value: TextEncoder },
|
||||
TextDecoder: { value: TextDecoder },
|
||||
});
|
||||
21
markdown/bitburner.backdoorrequirement.md
Normal file
21
markdown/bitburner.backdoorrequirement.md
Normal file
@@ -0,0 +1,21 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [BackdoorRequirement](./bitburner.backdoorrequirement.md)
|
||||
|
||||
## BackdoorRequirement interface
|
||||
|
||||
Player must have installed a backdoor on this server.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
interface BackdoorRequirement
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [server](./bitburner.backdoorrequirement.server.md) | | string | |
|
||||
| [type](./bitburner.backdoorrequirement.type.md) | | "backdoorInstalled" | |
|
||||
|
||||
11
markdown/bitburner.backdoorrequirement.server.md
Normal file
11
markdown/bitburner.backdoorrequirement.server.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [BackdoorRequirement](./bitburner.backdoorrequirement.md) > [server](./bitburner.backdoorrequirement.server.md)
|
||||
|
||||
## BackdoorRequirement.server property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
server: string;
|
||||
```
|
||||
11
markdown/bitburner.backdoorrequirement.type.md
Normal file
11
markdown/bitburner.backdoorrequirement.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [BackdoorRequirement](./bitburner.backdoorrequirement.md) > [type](./bitburner.backdoorrequirement.type.md)
|
||||
|
||||
## BackdoorRequirement.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "backdoorInstalled";
|
||||
```
|
||||
@@ -18,5 +18,5 @@ interface BasicHGWOptions
|
||||
| --- | --- | --- | --- |
|
||||
| [additionalMsec?](./bitburner.basichgwoptions.additionalmsec.md) | | number | _(Optional)_ Number of additional milliseconds that will be spent waiting between the start of the function and when it completes. |
|
||||
| [stock?](./bitburner.basichgwoptions.stock.md) | | boolean | _(Optional)_ Set to true this action will affect the stock market. |
|
||||
| [threads?](./bitburner.basichgwoptions.threads.md) | | number | _(Optional)_ Number of threads to use for this function. Must be less than or equal to the number of threads the script is running with. |
|
||||
| [threads?](./bitburner.basichgwoptions.threads.md) | | number | _(Optional)_ Number of threads to use for this function. Must be less than or equal to the number of threads the script is running with. Accepts positive non integer values. |
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## BasicHGWOptions.threads property
|
||||
|
||||
Number of threads to use for this function. Must be less than or equal to the number of threads the script is running with.
|
||||
Number of threads to use for this function. Must be less than or equal to the number of threads the script is running with. Accepts positive non integer values.
|
||||
|
||||
**Signature:**
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## BitNodeMultipliers.CorporationDivisions property
|
||||
|
||||
Influences the amount of divisions a corporation can have have at the same time
|
||||
Influences the amount of divisions a corporation can have at the same time
|
||||
|
||||
**Signature:**
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ interface BitNodeMultipliers
|
||||
| [CodingContractMoney](./bitburner.bitnodemultipliers.codingcontractmoney.md) | | number | Influences the amount of money gained from completing Coding Contracts |
|
||||
| [CompanyWorkExpGain](./bitburner.bitnodemultipliers.companyworkexpgain.md) | | number | Influences the experience gained for each ability when the player completes working their job. |
|
||||
| [CompanyWorkMoney](./bitburner.bitnodemultipliers.companyworkmoney.md) | | number | Influences how much money the player earns when completing working their job. |
|
||||
| [CorporationDivisions](./bitburner.bitnodemultipliers.corporationdivisions.md) | | number | Influences the amount of divisions a corporation can have have at the same time |
|
||||
| [CorporationDivisions](./bitburner.bitnodemultipliers.corporationdivisions.md) | | number | Influences the amount of divisions a corporation can have at the same time |
|
||||
| [CorporationSoftcap](./bitburner.bitnodemultipliers.corporationsoftcap.md) | | number | Influences the money gain from dividends of corporations created by the player. |
|
||||
| [CorporationValuation](./bitburner.bitnodemultipliers.corporationvaluation.md) | | number | Influences the valuation of corporations created by the player. |
|
||||
| [CrimeExpGain](./bitburner.bitnodemultipliers.crimeexpgain.md) | | number | Influences the base experience gained for each ability when the player commits a crime. |
|
||||
|
||||
11
markdown/bitburner.bitnoderequirement.bitnoden.md
Normal file
11
markdown/bitburner.bitnoderequirement.bitnoden.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [BitNodeRequirement](./bitburner.bitnoderequirement.md) > [bitNodeN](./bitburner.bitnoderequirement.bitnoden.md)
|
||||
|
||||
## BitNodeRequirement.bitNodeN property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
bitNodeN: number;
|
||||
```
|
||||
21
markdown/bitburner.bitnoderequirement.md
Normal file
21
markdown/bitburner.bitnoderequirement.md
Normal file
@@ -0,0 +1,21 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [BitNodeRequirement](./bitburner.bitnoderequirement.md)
|
||||
|
||||
## BitNodeRequirement interface
|
||||
|
||||
Player must be located in this BitNode.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
interface BitNodeRequirement
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [bitNodeN](./bitburner.bitnoderequirement.bitnoden.md) | | number | |
|
||||
| [type](./bitburner.bitnoderequirement.type.md) | | "bitNodeN" | |
|
||||
|
||||
11
markdown/bitburner.bitnoderequirement.type.md
Normal file
11
markdown/bitburner.bitnoderequirement.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [BitNodeRequirement](./bitburner.bitnoderequirement.md) > [type](./bitburner.bitnoderequirement.type.md)
|
||||
|
||||
## BitNodeRequirement.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "bitNodeN";
|
||||
```
|
||||
@@ -29,5 +29,5 @@ Estimated success chance for the specified action.
|
||||
|
||||
RAM cost: 4 GB
|
||||
|
||||
Returns the estimated success chance for the specified action. This chance is returned as a decimal value, NOT a percentage (e.g. if you have an estimated success chance of 80%, then this function will return 0.80, NOT 80).
|
||||
Returns the estimated success chance for the specified action. This chance is returned as a decimal value, NOT a percentage (e.g. if you have an estimated success chance of 80%, then this function will return 0.80, NOT 80). Returns 2 values, value\[0\] - MIN Chance, value\[1\] - MAX Chance
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ Get the reputation gain of an action.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
getActionRepGain(type: string, name: string, level: number): number;
|
||||
getActionRepGain(type: string, name: string, level?: number): number;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
@@ -18,7 +18,7 @@ getActionRepGain(type: string, name: string, level: number): number;
|
||||
| --- | --- | --- |
|
||||
| type | string | Type of action. |
|
||||
| name | string | Name of action. Must be an exact match. |
|
||||
| level | number | Optional number. Action level at which to calculate the gain. Will be the action's current level if not given. |
|
||||
| level | number | _(Optional)_ Optional number. Action level at which to calculate the gain. Will be the action's current level if not given. |
|
||||
|
||||
**Returns:**
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Bladeburner.getBonusTime() method
|
||||
|
||||
Get bladeburner bonus time.
|
||||
Get Bladeburner bonus time.
|
||||
|
||||
**Signature:**
|
||||
|
||||
@@ -25,5 +25,5 @@ Returns the amount of accumulated “bonus time” (milliseconds) for the Bladeb
|
||||
|
||||
“Bonus time” is accumulated when the game is offline or if the game is inactive in the browser.
|
||||
|
||||
“Bonus time” makes the game progress faster, up to 5x the normal speed. For example, if an action takes 30 seconds to complete but you’ve accumulated over 30 seconds in bonus time, then the action will only take 6 seconds in real life to complete.
|
||||
“Bonus time” makes the game progress faster, up to 5x the normal speed. For example, if an action takes 30 seconds to complete, but you’ve accumulated over 30 seconds in bonus time, then the action will only take 6 seconds in real life to complete.
|
||||
|
||||
|
||||
@@ -9,17 +9,15 @@ Get current action.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
getCurrentAction(): BladeburnerCurAction;
|
||||
getCurrentAction(): BladeburnerCurAction | null;
|
||||
```
|
||||
**Returns:**
|
||||
|
||||
[BladeburnerCurAction](./bitburner.bladeburnercuraction.md)
|
||||
[BladeburnerCurAction](./bitburner.bladeburnercuraction.md) \| null
|
||||
|
||||
Object that represents the player’s current Bladeburner action.
|
||||
Object that represents the player’s current Bladeburner action, or null if no action is being performed.
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 1 GB
|
||||
|
||||
Returns an object that represents the player’s current Bladeburner action. If the player is not performing an action, the function will return an object with the ‘type’ property set to “Idle”.
|
||||
|
||||
|
||||
25
markdown/bitburner.bladeburner.getnextblackop.md
Normal file
25
markdown/bitburner.bladeburner.getnextblackop.md
Normal file
@@ -0,0 +1,25 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [Bladeburner](./bitburner.bladeburner.md) > [getNextBlackOp](./bitburner.bladeburner.getnextblackop.md)
|
||||
|
||||
## Bladeburner.getNextBlackOp() method
|
||||
|
||||
Get an object with the name and rank requirement of the next BlackOp that can be completed.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
getNextBlackOp(): { name: string; rank: number } | null;
|
||||
```
|
||||
**Returns:**
|
||||
|
||||
{ name: string; rank: number } \| null
|
||||
|
||||
An object with the `.name` and `.rank` properties of the available BlackOp, or `null`<!-- -->.
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 2 GB
|
||||
|
||||
Returns the name and rank requirement for the available BlackOp. Returns `null` if no BlackOps remain in the BitNode.
|
||||
|
||||
@@ -9,14 +9,14 @@ Get skill level.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
getSkillLevel(name: string): number;
|
||||
getSkillLevel(skillName: string): number;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| name | string | |
|
||||
| skillName | string | Name of skill. Case-sensitive and must be an exact match. |
|
||||
|
||||
**Returns:**
|
||||
|
||||
|
||||
@@ -9,14 +9,14 @@ Get cost to upgrade skill.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
getSkillUpgradeCost(name: string, count?: number): number;
|
||||
getSkillUpgradeCost(skillName: string, count?: number): number;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| name | string | |
|
||||
| skillName | string | Name of skill. Case-sensitive and must be an exact match. |
|
||||
| count | number | _(Optional)_ Number of times to upgrade the skill. Defaults to 1 if not specified. |
|
||||
|
||||
**Returns:**
|
||||
@@ -31,5 +31,5 @@ RAM cost: 4 GB
|
||||
|
||||
This function returns the number of skill points needed to upgrade the specified skill the specified number of times.
|
||||
|
||||
The function returns -1 if an invalid skill name is passed in.
|
||||
The function returns -1 if an invalid skill name is passed in, and Infinity if the count overflows the maximum level.
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Bladeburner.getStamina() method
|
||||
|
||||
Get bladeburner stamina.
|
||||
Get Bladeburner stamina.
|
||||
|
||||
**Signature:**
|
||||
|
||||
|
||||
@@ -9,15 +9,15 @@ Get team size.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
getTeamSize(type: string, name: string): number;
|
||||
getTeamSize(type?: string, name?: string): number;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| type | string | Type of action. |
|
||||
| name | string | Name of action. Must be an exact match. |
|
||||
| type | string | _(Optional)_ Type of action. |
|
||||
| name | string | _(Optional)_ Name of action. Must be an exact match. |
|
||||
|
||||
**Returns:**
|
||||
|
||||
@@ -29,7 +29,7 @@ Number of Bladeburner team members that were assigned to the specified action.
|
||||
|
||||
RAM cost: 4 GB
|
||||
|
||||
Returns the number of Bladeburner team members you have assigned to the specified action.
|
||||
Returns the number of available Bladeburner team members. You can also pass the type and name of an action to get the number of Bladeburner team members you have assigned to the specified action.
|
||||
|
||||
Setting a team is only applicable for Operations and BlackOps. This function will return 0 for other action types.
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Bladeburner.inBladeburner() method
|
||||
|
||||
Returns whether player is a member of bladeburner division. Does not require API access.
|
||||
Returns whether player is a member of Bladeburner division. Does not require API access.
|
||||
|
||||
**Signature:**
|
||||
|
||||
@@ -15,7 +15,7 @@ inBladeburner(): boolean;
|
||||
|
||||
boolean
|
||||
|
||||
whether player is a member of bladeburner division.
|
||||
whether player is a member of Bladeburner division.
|
||||
|
||||
## Remarks
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Bladeburner.joinBladeburnerDivision() method
|
||||
|
||||
Join the bladeburner division.
|
||||
Join the Bladeburner division.
|
||||
|
||||
**Signature:**
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Bladeburner.joinBladeburnerFaction() method
|
||||
|
||||
Join the bladeburner faction.
|
||||
Join the Bladeburner faction.
|
||||
|
||||
**Signature:**
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ You have to be employed in the Bladeburner division and be in BitNode-7 or have
|
||||
| [getActionTime(type, name)](./bitburner.bladeburner.getactiontime.md) | Get the time to complete an action. |
|
||||
| [getBlackOpNames()](./bitburner.bladeburner.getblackopnames.md) | List all black ops. |
|
||||
| [getBlackOpRank(name)](./bitburner.bladeburner.getblackoprank.md) | Get black op required rank. |
|
||||
| [getBonusTime()](./bitburner.bladeburner.getbonustime.md) | Get bladeburner bonus time. |
|
||||
| [getBonusTime()](./bitburner.bladeburner.getbonustime.md) | Get Bladeburner bonus time. |
|
||||
| [getCity()](./bitburner.bladeburner.getcity.md) | Get current city. |
|
||||
| [getCityChaos(city)](./bitburner.bladeburner.getcitychaos.md) | Get chaos of a city. |
|
||||
| [getCityCommunities(city)](./bitburner.bladeburner.getcitycommunities.md) | Get number of communities in a city. |
|
||||
@@ -39,22 +39,24 @@ You have to be employed in the Bladeburner division and be in BitNode-7 or have
|
||||
| [getContractNames()](./bitburner.bladeburner.getcontractnames.md) | List all contracts. |
|
||||
| [getCurrentAction()](./bitburner.bladeburner.getcurrentaction.md) | Get current action. |
|
||||
| [getGeneralActionNames()](./bitburner.bladeburner.getgeneralactionnames.md) | List all general actions. |
|
||||
| [getNextBlackOp()](./bitburner.bladeburner.getnextblackop.md) | Get an object with the name and rank requirement of the next BlackOp that can be completed. |
|
||||
| [getOperationNames()](./bitburner.bladeburner.getoperationnames.md) | List all operations. |
|
||||
| [getRank()](./bitburner.bladeburner.getrank.md) | Get player bladeburner rank. |
|
||||
| [getSkillLevel(name)](./bitburner.bladeburner.getskilllevel.md) | Get skill level. |
|
||||
| [getSkillLevel(skillName)](./bitburner.bladeburner.getskilllevel.md) | Get skill level. |
|
||||
| [getSkillNames()](./bitburner.bladeburner.getskillnames.md) | List all skills. |
|
||||
| [getSkillPoints()](./bitburner.bladeburner.getskillpoints.md) | Get bladeburner skill points. |
|
||||
| [getSkillUpgradeCost(name, count)](./bitburner.bladeburner.getskillupgradecost.md) | Get cost to upgrade skill. |
|
||||
| [getStamina()](./bitburner.bladeburner.getstamina.md) | Get bladeburner stamina. |
|
||||
| [getSkillUpgradeCost(skillName, count)](./bitburner.bladeburner.getskillupgradecost.md) | Get cost to upgrade skill. |
|
||||
| [getStamina()](./bitburner.bladeburner.getstamina.md) | Get Bladeburner stamina. |
|
||||
| [getTeamSize(type, name)](./bitburner.bladeburner.getteamsize.md) | Get team size. |
|
||||
| [inBladeburner()](./bitburner.bladeburner.inbladeburner.md) | Returns whether player is a member of bladeburner division. Does not require API access. |
|
||||
| [joinBladeburnerDivision()](./bitburner.bladeburner.joinbladeburnerdivision.md) | Join the bladeburner division. |
|
||||
| [joinBladeburnerFaction()](./bitburner.bladeburner.joinbladeburnerfaction.md) | Join the bladeburner faction. |
|
||||
| [inBladeburner()](./bitburner.bladeburner.inbladeburner.md) | Returns whether player is a member of Bladeburner division. Does not require API access. |
|
||||
| [joinBladeburnerDivision()](./bitburner.bladeburner.joinbladeburnerdivision.md) | Join the Bladeburner division. |
|
||||
| [joinBladeburnerFaction()](./bitburner.bladeburner.joinbladeburnerfaction.md) | Join the Bladeburner faction. |
|
||||
| [nextUpdate()](./bitburner.bladeburner.nextupdate.md) | Sleep until the next Bladeburner update has happened. |
|
||||
| [setActionAutolevel(type, name, autoLevel)](./bitburner.bladeburner.setactionautolevel.md) | Set an action autolevel. |
|
||||
| [setActionLevel(type, name, level)](./bitburner.bladeburner.setactionlevel.md) | Set the level of an action. |
|
||||
| [setTeamSize(type, name, size)](./bitburner.bladeburner.setteamsize.md) | Set team size. |
|
||||
| [startAction(type, name)](./bitburner.bladeburner.startaction.md) | Start an action. |
|
||||
| [stopBladeburnerAction()](./bitburner.bladeburner.stopbladeburneraction.md) | Stop current action. |
|
||||
| [switchCity(city)](./bitburner.bladeburner.switchcity.md) | Travel to another city in bladeburner. |
|
||||
| [upgradeSkill(name, count)](./bitburner.bladeburner.upgradeskill.md) | Upgrade skill. |
|
||||
| [switchCity(city)](./bitburner.bladeburner.switchcity.md) | Travel to another city in Bladeburner. |
|
||||
| [upgradeSkill(skillName, count)](./bitburner.bladeburner.upgradeskill.md) | Upgrade skill. |
|
||||
|
||||
|
||||
37
markdown/bitburner.bladeburner.nextupdate.md
Normal file
37
markdown/bitburner.bladeburner.nextupdate.md
Normal file
@@ -0,0 +1,37 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [Bladeburner](./bitburner.bladeburner.md) > [nextUpdate](./bitburner.bladeburner.nextupdate.md)
|
||||
|
||||
## Bladeburner.nextUpdate() method
|
||||
|
||||
Sleep until the next Bladeburner update has happened.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
nextUpdate(): Promise<number>;
|
||||
```
|
||||
**Returns:**
|
||||
|
||||
Promise<number>
|
||||
|
||||
Promise that resolves to the number of milliseconds of Bladeburner time that were processed in the previous update (1000 - 5000 ms).
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 1 GB
|
||||
|
||||
The amount of real time spent asleep between updates can vary due to "bonus time" (usually 1 second).
|
||||
|
||||
## Example
|
||||
|
||||
|
||||
```js
|
||||
while (true) {
|
||||
const duration = await ns.bladeburner.nextUpdate();
|
||||
ns.print(`Bladeburner Division completed ${ns.tFormat(duration)} of actions.`);
|
||||
ns.print(`Bonus time remaining: ${ns.tFormat(ns.bladeburner.getBonusTime())}`);
|
||||
// Manage the Bladeburner division
|
||||
}
|
||||
```
|
||||
|
||||
@@ -31,3 +31,12 @@ RAM cost: 4 GB
|
||||
|
||||
Attempts to start the specified Bladeburner action. Returns true if the action was started successfully, and false otherwise.
|
||||
|
||||
## Example
|
||||
|
||||
|
||||
```js
|
||||
ns.bladeburner.startAction("Contracts", "Tracking")
|
||||
|
||||
// This will start the Bladeburner Contracts action of Tracking
|
||||
```
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Bladeburner.switchCity() method
|
||||
|
||||
Travel to another city in bladeburner.
|
||||
Travel to another city in Bladeburner.
|
||||
|
||||
**Signature:**
|
||||
|
||||
|
||||
@@ -9,14 +9,14 @@ Upgrade skill.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
upgradeSkill(name: string, count?: number): boolean;
|
||||
upgradeSkill(skillName: string, count?: number): boolean;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| name | string | |
|
||||
| skillName | string | Name of skill to be upgraded. Case-sensitive and must be an exact match. |
|
||||
| count | number | _(Optional)_ Number of times to upgrade the skill. Defaults to 1 if not specified. |
|
||||
|
||||
**Returns:**
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [BladeburnerRankRequirement](./bitburner.bladeburnerrankrequirement.md) > [bladeburnerRank](./bitburner.bladeburnerrankrequirement.bladeburnerrank.md)
|
||||
|
||||
## BladeburnerRankRequirement.bladeburnerRank property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
bladeburnerRank: number;
|
||||
```
|
||||
21
markdown/bitburner.bladeburnerrankrequirement.md
Normal file
21
markdown/bitburner.bladeburnerrankrequirement.md
Normal file
@@ -0,0 +1,21 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [BladeburnerRankRequirement](./bitburner.bladeburnerrankrequirement.md)
|
||||
|
||||
## BladeburnerRankRequirement interface
|
||||
|
||||
Player must have at least this rank in the Bladeburner Division.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
interface BladeburnerRankRequirement
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [bladeburnerRank](./bitburner.bladeburnerrankrequirement.bladeburnerrank.md) | | number | |
|
||||
| [type](./bitburner.bladeburnerrankrequirement.type.md) | | "bladeburnerRank" | |
|
||||
|
||||
11
markdown/bitburner.bladeburnerrankrequirement.type.md
Normal file
11
markdown/bitburner.bladeburnerrankrequirement.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [BladeburnerRankRequirement](./bitburner.bladeburnerrankrequirement.md) > [type](./bitburner.bladeburnerrankrequirement.type.md)
|
||||
|
||||
## BladeburnerRankRequirement.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "bladeburnerRank";
|
||||
```
|
||||
11
markdown/bitburner.cityrequirement.city.md
Normal file
11
markdown/bitburner.cityrequirement.city.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CityRequirement](./bitburner.cityrequirement.md) > [city](./bitburner.cityrequirement.city.md)
|
||||
|
||||
## CityRequirement.city property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
city: CityName;
|
||||
```
|
||||
21
markdown/bitburner.cityrequirement.md
Normal file
21
markdown/bitburner.cityrequirement.md
Normal file
@@ -0,0 +1,21 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CityRequirement](./bitburner.cityrequirement.md)
|
||||
|
||||
## CityRequirement interface
|
||||
|
||||
Player must be located in this city.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
interface CityRequirement
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [city](./bitburner.cityrequirement.city.md) | | [CityName](./bitburner.cityname.md) | |
|
||||
| [type](./bitburner.cityrequirement.type.md) | | "city" | |
|
||||
|
||||
11
markdown/bitburner.cityrequirement.type.md
Normal file
11
markdown/bitburner.cityrequirement.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CityRequirement](./bitburner.cityrequirement.md) > [type](./bitburner.cityrequirement.type.md)
|
||||
|
||||
## CityRequirement.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "city";
|
||||
```
|
||||
@@ -36,9 +36,11 @@ Attempts to solve the Coding Contract with the provided solution.
|
||||
|
||||
|
||||
```js
|
||||
const reward = codingcontract.attempt(yourSolution, filename, hostname);
|
||||
const reward = ns.codingcontract.attempt(yourSolution, filename, hostname);
|
||||
if (reward) {
|
||||
ns.tprint(`Contract solved successfully! Reward: ${reward}`)
|
||||
} else ns.tprint("Failed to solve contract.")
|
||||
ns.tprint(`Contract solved successfully! Reward: ${reward}`);
|
||||
} else {
|
||||
ns.tprint("Failed to solve contract.");
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ Generate a dummy contract.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
createDummyContract(type: string): void;
|
||||
createDummyContract(type: string): string;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
@@ -20,7 +20,9 @@ createDummyContract(type: string): void;
|
||||
|
||||
**Returns:**
|
||||
|
||||
void
|
||||
string
|
||||
|
||||
Filename of the contract.
|
||||
|
||||
## Remarks
|
||||
|
||||
|
||||
11
markdown/bitburner.companypositioninfo.field.md
Normal file
11
markdown/bitburner.companypositioninfo.field.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CompanyPositionInfo](./bitburner.companypositioninfo.md) > [field](./bitburner.companypositioninfo.field.md)
|
||||
|
||||
## CompanyPositionInfo.field property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
field: JobField;
|
||||
```
|
||||
@@ -16,6 +16,7 @@ export interface CompanyPositionInfo
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [field](./bitburner.companypositioninfo.field.md) | | [JobField](./bitburner.jobfield.md) | |
|
||||
| [name](./bitburner.companypositioninfo.name.md) | | [JobName](./bitburner.jobname.md) | |
|
||||
| [nextPosition](./bitburner.companypositioninfo.nextposition.md) | | [JobName](./bitburner.jobname.md) \| null | |
|
||||
| [requiredReputation](./bitburner.companypositioninfo.requiredreputation.md) | | number | |
|
||||
|
||||
11
markdown/bitburner.companyreputationrequirement.company.md
Normal file
11
markdown/bitburner.companyreputationrequirement.company.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CompanyReputationRequirement](./bitburner.companyreputationrequirement.md) > [company](./bitburner.companyreputationrequirement.company.md)
|
||||
|
||||
## CompanyReputationRequirement.company property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
company: CompanyName;
|
||||
```
|
||||
22
markdown/bitburner.companyreputationrequirement.md
Normal file
22
markdown/bitburner.companyreputationrequirement.md
Normal file
@@ -0,0 +1,22 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CompanyReputationRequirement](./bitburner.companyreputationrequirement.md)
|
||||
|
||||
## CompanyReputationRequirement interface
|
||||
|
||||
Player must have at least this much reputation with this company.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
interface CompanyReputationRequirement
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [company](./bitburner.companyreputationrequirement.company.md) | | [CompanyName](./bitburner.companyname.md) | |
|
||||
| [reputation](./bitburner.companyreputationrequirement.reputation.md) | | number | |
|
||||
| [type](./bitburner.companyreputationrequirement.type.md) | | "companyReputation" | |
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CompanyReputationRequirement](./bitburner.companyreputationrequirement.md) > [reputation](./bitburner.companyreputationrequirement.reputation.md)
|
||||
|
||||
## CompanyReputationRequirement.reputation property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
reputation: number;
|
||||
```
|
||||
11
markdown/bitburner.companyreputationrequirement.type.md
Normal file
11
markdown/bitburner.companyreputationrequirement.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CompanyReputationRequirement](./bitburner.companyreputationrequirement.md) > [type](./bitburner.companyreputationrequirement.type.md)
|
||||
|
||||
## CompanyReputationRequirement.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "companyReputation";
|
||||
```
|
||||
11
markdown/bitburner.companyworktask.companyname.md
Normal file
11
markdown/bitburner.companyworktask.companyname.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CompanyWorkTask](./bitburner.companyworktask.md) > [companyName](./bitburner.companyworktask.companyname.md)
|
||||
|
||||
## CompanyWorkTask.companyName property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
companyName: CompanyName;
|
||||
```
|
||||
11
markdown/bitburner.companyworktask.cyclesworked.md
Normal file
11
markdown/bitburner.companyworktask.cyclesworked.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CompanyWorkTask](./bitburner.companyworktask.md) > [cyclesWorked](./bitburner.companyworktask.cyclesworked.md)
|
||||
|
||||
## CompanyWorkTask.cyclesWorked property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
cyclesWorked: number;
|
||||
```
|
||||
26
markdown/bitburner.companyworktask.md
Normal file
26
markdown/bitburner.companyworktask.md
Normal file
@@ -0,0 +1,26 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CompanyWorkTask](./bitburner.companyworktask.md)
|
||||
|
||||
## CompanyWorkTask interface
|
||||
|
||||
Company Work
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
export interface CompanyWorkTask
|
||||
```
|
||||
|
||||
## Remarks
|
||||
|
||||
An object representing the current work for a company
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [companyName](./bitburner.companyworktask.companyname.md) | | [CompanyName](./bitburner.companyname.md) | |
|
||||
| [cyclesWorked](./bitburner.companyworktask.cyclesworked.md) | | number | |
|
||||
| [type](./bitburner.companyworktask.type.md) | | "COMPANY" | |
|
||||
|
||||
11
markdown/bitburner.companyworktask.type.md
Normal file
11
markdown/bitburner.companyworktask.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CompanyWorkTask](./bitburner.companyworktask.md) > [type](./bitburner.companyworktask.type.md)
|
||||
|
||||
## CompanyWorkTask.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "COMPANY";
|
||||
```
|
||||
@@ -39,6 +39,8 @@ export interface Corporation extends WarehouseAPI, OfficeAPI
|
||||
| [issueDividends(rate)](./bitburner.corporation.issuedividends.md) | Issue dividends |
|
||||
| [issueNewShares(amount)](./bitburner.corporation.issuenewshares.md) | Issue new shares |
|
||||
| [levelUpgrade(upgradeName)](./bitburner.corporation.levelupgrade.md) | Level an upgrade. |
|
||||
| [nextUpdate()](./bitburner.corporation.nextupdate.md) | Sleep until the next Corporation update has happened. |
|
||||
| [purchaseUnlock(upgradeName)](./bitburner.corporation.purchaseunlock.md) | Unlock an upgrade |
|
||||
| [sellDivision(divisionName)](./bitburner.corporation.selldivision.md) | Sell a division |
|
||||
| [sellShares(amount)](./bitburner.corporation.sellshares.md) | Sell Shares. Transfer shares from the CEO to public traders to receive money in the player's wallet. |
|
||||
|
||||
|
||||
41
markdown/bitburner.corporation.nextupdate.md
Normal file
41
markdown/bitburner.corporation.nextupdate.md
Normal file
@@ -0,0 +1,41 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [Corporation](./bitburner.corporation.md) > [nextUpdate](./bitburner.corporation.nextupdate.md)
|
||||
|
||||
## Corporation.nextUpdate() method
|
||||
|
||||
Sleep until the next Corporation update has happened.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
nextUpdate(): Promise<CorpStateName>;
|
||||
```
|
||||
**Returns:**
|
||||
|
||||
Promise<[CorpStateName](./bitburner.corpstatename.md)<!-- -->>
|
||||
|
||||
Promise that resolves to the name of the state that was just processed.
|
||||
|
||||
I.e. when the state is PURCHASE, it means purchasing has just happened. Note that this is the state just before `getCorporation().state`<!-- -->.
|
||||
|
||||
Possible states are START, PURCHASE, PRODUCTION, EXPORT, SALE.
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 1 GB
|
||||
|
||||
The amount of real time spent asleep between updates can vary due to "bonus time" (usually 200 milliseconds - 2 seconds).
|
||||
|
||||
## Example
|
||||
|
||||
|
||||
```js
|
||||
while (true) {
|
||||
const prevState = await ns.corporation.nextUpdate();
|
||||
const nextState = ns.corporation.getCorporation().nextState;
|
||||
ns.print(`Corporation finished with ${prevState}, next will be ${nextState}.`);
|
||||
// Manage the Corporation
|
||||
}
|
||||
```
|
||||
|
||||
28
markdown/bitburner.corporation.selldivision.md
Normal file
28
markdown/bitburner.corporation.selldivision.md
Normal file
@@ -0,0 +1,28 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [Corporation](./bitburner.corporation.md) > [sellDivision](./bitburner.corporation.selldivision.md)
|
||||
|
||||
## Corporation.sellDivision() method
|
||||
|
||||
Sell a division
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
sellDivision(divisionName: string): void;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| divisionName | string | Name of the division |
|
||||
|
||||
**Returns:**
|
||||
|
||||
void
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 20 GB
|
||||
|
||||
@@ -26,11 +26,12 @@ interface CorporationInfo
|
||||
| [issuedShares](./bitburner.corporationinfo.issuedshares.md) | | number | Amount of shares owned by public traders. Available for CEO buyback. |
|
||||
| [issueNewSharesCooldown](./bitburner.corporationinfo.issuenewsharescooldown.md) | | number | Cooldown until new shares can be issued |
|
||||
| [name](./bitburner.corporationinfo.name.md) | | string | Name of the corporation |
|
||||
| [nextState](./bitburner.corporationinfo.nextstate.md) | | [CorpStateName](./bitburner.corpstatename.md) | <p>The next state to be processed.</p><p>I.e. when the state is PURCHASE, it means purchasing will occur during the next state transition.</p><p>Possible states are START, PURCHASE, PRODUCTION, EXPORT, SALE.</p> |
|
||||
| [numShares](./bitburner.corporationinfo.numshares.md) | | number | Amount of shares owned by the CEO. |
|
||||
| [prevState](./bitburner.corporationinfo.prevstate.md) | | [CorpStateName](./bitburner.corpstatename.md) | <p>The last state that got processed.</p><p>I.e. when that state is PURCHASE, it means purchasing just happened.</p><p>Possible states are START, PURCHASE, PRODUCTION, EXPORT, SALE.</p> |
|
||||
| [public](./bitburner.corporationinfo.public.md) | | boolean | Indicating if the company is public |
|
||||
| [revenue](./bitburner.corporationinfo.revenue.md) | | number | Revenue per second this cycle |
|
||||
| [sharePrice](./bitburner.corporationinfo.shareprice.md) | | number | Price of the shares |
|
||||
| [shareSaleCooldown](./bitburner.corporationinfo.sharesalecooldown.md) | | number | Cooldown until shares can be sold again |
|
||||
| [state](./bitburner.corporationinfo.state.md) | | string | <p>The next state to be processed.</p><p>I.e. when the state is PURCHASE, it means purchasing will occur during the next state transition.</p><p>Possible states are START, PURCHASE, PRODUCTION, EXPORT, SALE.</p> |
|
||||
| [totalShares](./bitburner.corporationinfo.totalshares.md) | | number | Total number of shares issued by this corporation. |
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CorporationInfo](./bitburner.corporationinfo.md) > [state](./bitburner.corporationinfo.state.md)
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CorporationInfo](./bitburner.corporationinfo.md) > [nextState](./bitburner.corporationinfo.nextstate.md)
|
||||
|
||||
## CorporationInfo.state property
|
||||
## CorporationInfo.nextState property
|
||||
|
||||
The next state to be processed.
|
||||
|
||||
@@ -13,5 +13,5 @@ Possible states are START, PURCHASE, PRODUCTION, EXPORT, SALE.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
state: string;
|
||||
nextState: CorpStateName;
|
||||
```
|
||||
17
markdown/bitburner.corporationinfo.prevstate.md
Normal file
17
markdown/bitburner.corporationinfo.prevstate.md
Normal file
@@ -0,0 +1,17 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CorporationInfo](./bitburner.corporationinfo.md) > [prevState](./bitburner.corporationinfo.prevstate.md)
|
||||
|
||||
## CorporationInfo.prevState property
|
||||
|
||||
The last state that got processed.
|
||||
|
||||
I.e. when that state is PURCHASE, it means purchasing just happened.
|
||||
|
||||
Possible states are START, PURCHASE, PRODUCTION, EXPORT, SALE.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
prevState: CorpStateName;
|
||||
```
|
||||
11
markdown/bitburner.createprogramworktask.cyclesworked.md
Normal file
11
markdown/bitburner.createprogramworktask.cyclesworked.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CreateProgramWorkTask](./bitburner.createprogramworktask.md) > [cyclesWorked](./bitburner.createprogramworktask.cyclesworked.md)
|
||||
|
||||
## CreateProgramWorkTask.cyclesWorked property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
cyclesWorked: number;
|
||||
```
|
||||
26
markdown/bitburner.createprogramworktask.md
Normal file
26
markdown/bitburner.createprogramworktask.md
Normal file
@@ -0,0 +1,26 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CreateProgramWorkTask](./bitburner.createprogramworktask.md)
|
||||
|
||||
## CreateProgramWorkTask interface
|
||||
|
||||
Create Program
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
export interface CreateProgramWorkTask
|
||||
```
|
||||
|
||||
## Remarks
|
||||
|
||||
An object representing the status of the program being created
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [cyclesWorked](./bitburner.createprogramworktask.cyclesworked.md) | | number | |
|
||||
| [programName](./bitburner.createprogramworktask.programname.md) | | string | |
|
||||
| [type](./bitburner.createprogramworktask.type.md) | | "CREATE\_PROGRAM" | |
|
||||
|
||||
11
markdown/bitburner.createprogramworktask.programname.md
Normal file
11
markdown/bitburner.createprogramworktask.programname.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CreateProgramWorkTask](./bitburner.createprogramworktask.md) > [programName](./bitburner.createprogramworktask.programname.md)
|
||||
|
||||
## CreateProgramWorkTask.programName property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
programName: string;
|
||||
```
|
||||
11
markdown/bitburner.createprogramworktask.type.md
Normal file
11
markdown/bitburner.createprogramworktask.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CreateProgramWorkTask](./bitburner.createprogramworktask.md) > [type](./bitburner.createprogramworktask.type.md)
|
||||
|
||||
## CreateProgramWorkTask.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "CREATE_PROGRAM";
|
||||
```
|
||||
11
markdown/bitburner.crimetask.crimetype.md
Normal file
11
markdown/bitburner.crimetask.crimetype.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CrimeTask](./bitburner.crimetask.md) > [crimeType](./bitburner.crimetask.crimetype.md)
|
||||
|
||||
## CrimeTask.crimeType property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
crimeType: CrimeType;
|
||||
```
|
||||
11
markdown/bitburner.crimetask.cyclesworked.md
Normal file
11
markdown/bitburner.crimetask.cyclesworked.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CrimeTask](./bitburner.crimetask.md) > [cyclesWorked](./bitburner.crimetask.cyclesworked.md)
|
||||
|
||||
## CrimeTask.cyclesWorked property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
cyclesWorked: number;
|
||||
```
|
||||
26
markdown/bitburner.crimetask.md
Normal file
26
markdown/bitburner.crimetask.md
Normal file
@@ -0,0 +1,26 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CrimeTask](./bitburner.crimetask.md)
|
||||
|
||||
## CrimeTask interface
|
||||
|
||||
Crime
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
export interface CrimeTask
|
||||
```
|
||||
|
||||
## Remarks
|
||||
|
||||
An object representing the crime being commited
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [crimeType](./bitburner.crimetask.crimetype.md) | | [CrimeType](./bitburner.crimetype.md) | |
|
||||
| [cyclesWorked](./bitburner.crimetask.cyclesworked.md) | | number | |
|
||||
| [type](./bitburner.crimetask.type.md) | | "CRIME" | |
|
||||
|
||||
11
markdown/bitburner.crimetask.type.md
Normal file
11
markdown/bitburner.crimetask.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CrimeTask](./bitburner.crimetask.md) > [type](./bitburner.crimetask.type.md)
|
||||
|
||||
## CrimeTask.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "CRIME";
|
||||
```
|
||||
11
markdown/bitburner.employedbyrequirement.company.md
Normal file
11
markdown/bitburner.employedbyrequirement.company.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [EmployedByRequirement](./bitburner.employedbyrequirement.md) > [company](./bitburner.employedbyrequirement.company.md)
|
||||
|
||||
## EmployedByRequirement.company property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
company: CompanyName;
|
||||
```
|
||||
21
markdown/bitburner.employedbyrequirement.md
Normal file
21
markdown/bitburner.employedbyrequirement.md
Normal file
@@ -0,0 +1,21 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [EmployedByRequirement](./bitburner.employedbyrequirement.md)
|
||||
|
||||
## EmployedByRequirement interface
|
||||
|
||||
Player must be working for this company.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
interface EmployedByRequirement
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [company](./bitburner.employedbyrequirement.company.md) | | [CompanyName](./bitburner.companyname.md) | |
|
||||
| [type](./bitburner.employedbyrequirement.type.md) | | "employedBy" | |
|
||||
|
||||
11
markdown/bitburner.employedbyrequirement.type.md
Normal file
11
markdown/bitburner.employedbyrequirement.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [EmployedByRequirement](./bitburner.employedbyrequirement.md) > [type](./bitburner.employedbyrequirement.type.md)
|
||||
|
||||
## EmployedByRequirement.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "employedBy";
|
||||
```
|
||||
11
markdown/bitburner.everyrequirement.conditions.md
Normal file
11
markdown/bitburner.everyrequirement.conditions.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [EveryRequirement](./bitburner.everyrequirement.md) > [conditions](./bitburner.everyrequirement.conditions.md)
|
||||
|
||||
## EveryRequirement.conditions property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
conditions: PlayerRequirement[];
|
||||
```
|
||||
21
markdown/bitburner.everyrequirement.md
Normal file
21
markdown/bitburner.everyrequirement.md
Normal file
@@ -0,0 +1,21 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [EveryRequirement](./bitburner.everyrequirement.md)
|
||||
|
||||
## EveryRequirement interface
|
||||
|
||||
All sub-conditions must be satisfied.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
interface EveryRequirement
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [conditions](./bitburner.everyrequirement.conditions.md) | | [PlayerRequirement](./bitburner.playerrequirement.md)<!-- -->\[\] | |
|
||||
| [type](./bitburner.everyrequirement.type.md) | | "everyCondition" | |
|
||||
|
||||
11
markdown/bitburner.everyrequirement.type.md
Normal file
11
markdown/bitburner.everyrequirement.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [EveryRequirement](./bitburner.everyrequirement.md) > [type](./bitburner.everyrequirement.type.md)
|
||||
|
||||
## EveryRequirement.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "everyCondition";
|
||||
```
|
||||
11
markdown/bitburner.factionworktask.cyclesworked.md
Normal file
11
markdown/bitburner.factionworktask.cyclesworked.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [FactionWorkTask](./bitburner.factionworktask.md) > [cyclesWorked](./bitburner.factionworktask.cyclesworked.md)
|
||||
|
||||
## FactionWorkTask.cyclesWorked property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
cyclesWorked: number;
|
||||
```
|
||||
11
markdown/bitburner.factionworktask.factionname.md
Normal file
11
markdown/bitburner.factionworktask.factionname.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [FactionWorkTask](./bitburner.factionworktask.md) > [factionName](./bitburner.factionworktask.factionname.md)
|
||||
|
||||
## FactionWorkTask.factionName property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
factionName: string;
|
||||
```
|
||||
11
markdown/bitburner.factionworktask.factionworktype.md
Normal file
11
markdown/bitburner.factionworktask.factionworktype.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [FactionWorkTask](./bitburner.factionworktask.md) > [factionWorkType](./bitburner.factionworktask.factionworktype.md)
|
||||
|
||||
## FactionWorkTask.factionWorkType property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
factionWorkType: FactionWorkType;
|
||||
```
|
||||
27
markdown/bitburner.factionworktask.md
Normal file
27
markdown/bitburner.factionworktask.md
Normal file
@@ -0,0 +1,27 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [FactionWorkTask](./bitburner.factionworktask.md)
|
||||
|
||||
## FactionWorkTask interface
|
||||
|
||||
Faction Work
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
export interface FactionWorkTask
|
||||
```
|
||||
|
||||
## Remarks
|
||||
|
||||
An object representing the current work for a faction
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [cyclesWorked](./bitburner.factionworktask.cyclesworked.md) | | number | |
|
||||
| [factionName](./bitburner.factionworktask.factionname.md) | | string | |
|
||||
| [factionWorkType](./bitburner.factionworktask.factionworktype.md) | | [FactionWorkType](./bitburner.factionworktype.md) | |
|
||||
| [type](./bitburner.factionworktask.type.md) | | "FACTION" | |
|
||||
|
||||
11
markdown/bitburner.factionworktask.type.md
Normal file
11
markdown/bitburner.factionworktask.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [FactionWorkTask](./bitburner.factionworktask.md) > [type](./bitburner.factionworktask.type.md)
|
||||
|
||||
## FactionWorkTask.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "FACTION";
|
||||
```
|
||||
11
markdown/bitburner.filerequirement.file.md
Normal file
11
markdown/bitburner.filerequirement.file.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [FileRequirement](./bitburner.filerequirement.md) > [file](./bitburner.filerequirement.file.md)
|
||||
|
||||
## FileRequirement.file property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
file: string;
|
||||
```
|
||||
21
markdown/bitburner.filerequirement.md
Normal file
21
markdown/bitburner.filerequirement.md
Normal file
@@ -0,0 +1,21 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [FileRequirement](./bitburner.filerequirement.md)
|
||||
|
||||
## FileRequirement interface
|
||||
|
||||
Player must have a specific Literature or Message file on their home computer.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
interface FileRequirement
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [file](./bitburner.filerequirement.file.md) | | string | |
|
||||
| [type](./bitburner.filerequirement.type.md) | | "file" | |
|
||||
|
||||
11
markdown/bitburner.filerequirement.type.md
Normal file
11
markdown/bitburner.filerequirement.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [FileRequirement](./bitburner.filerequirement.md) > [type](./bitburner.filerequirement.type.md)
|
||||
|
||||
## FileRequirement.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "file";
|
||||
```
|
||||
11
markdown/bitburner.fragment.effect.md
Normal file
11
markdown/bitburner.fragment.effect.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [Fragment](./bitburner.fragment.md) > [effect](./bitburner.fragment.effect.md)
|
||||
|
||||
## Fragment.effect property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
effect: string;
|
||||
```
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user