0
0
mirror of https://github.com/sp-tarkov/server.git synced 2025-02-13 09:50:43 -05:00
Refringe 0368a230fb
BunJS Runtime, Updated Build System, and... (#992)
This is a big one. 🔥

**Changes:**
- Targets next major release (v4.0.0)
- Switch runtimes from NodeJS to BunJS (bun.sh)
- Typescript library support moved to `ESNext`
- Typescript compile option `verbatimModuleSyntax` enabled
    - Updated all interfaces to be imported explicitly as types
- Strict mode enabled
- Reduces the number of tsconfig files
- Pins all dep packages to specific patch versions
- Includes Bun lock file in repo (doesn't cause issues like the
package-lock did)
- Replaces Gulp with a new Typescript based build system
- Adds `core-js` as a workaround for Bun not playing nice with
`reflect-metadata`
- Removes `pkg` and `swc` (Yay Bun!)
- Updated package scripts and entry point system to be more intuitive
- Updated VSCode workspace configurations
- Updated `.gitignore` to align with updated project structure
- Updated Biome configuration to align with updated project structure
- `Program.ts` - Removes call to set encoding on the process
- `global.d.ts` - Added underscores to build globals to match other
global names
- `JsonUtil.ts` - Replaced old `fixJson` package with newer `jsonrepair`
package
- `HashUtil.ts` - Replaced old `buffer-crc32` package with built-in
`node:zlib` package
- `DatabaseImporter.ts` - Updates database validation object to be flat,
where the keys are the relative path to the file
- `BunTimer.ts` - Adds an easy to use timer class that's compatible with
nanoseconds.

**TODO:**
- Look into mod loading. I think we use a TS transpiler for mods and I
believe that can be removed now.
- Bun includes a number of APIs that can be used in place of Node's
packages (built-in or otherwise); HTTP server, WebSocket server, File
IO, Hashing, File Globing, Testing... Each of these should be utilized
where ever possible.
- Update in-repo documentation to reference BunJS instead of NodeJS.
2024-12-21 22:46:39 +00:00

203 lines
7.8 KiB
JSON

{
"sptVersion": "4.0.0",
"projectName": "SPT",
"compatibleTarkovVersion": "0.15.5.33420",
"serverName": "SPT Server",
"profileSaveIntervalSeconds": 15,
"sptFriendNickname": "SPT",
"allowProfileWipe": true,
"bsgLogging": {
"verbosity": 6,
"sendToServer": false
},
"release": {
"betaDisclaimerTimeoutDelay": 30
},
"fixes": {
"fixShotgunDispersion": true,
"removeModItemsFromProfile": false,
"removeInvalidTradersFromProfile": false,
"fixProfileBreakingInventoryItemIssues": false
},
"survey": {
"locale": {
"en": {
"question_1": "How off-topic is general chat on the SPT discord?",
"question_1_answer_1": "Not at all",
"question_1_answer_2": "A little",
"question_1_answer_3": "Sometimes",
"question_1_answer_4": "Somewhat often",
"question_1_answer_5": "Quite often",
"question_1_answer_6": "Most of the time",
"question_1_answer_7": "Almost always",
"question_1_answer_8": "Always",
"question_1_answer_9": "NOT OFF TOPIC ENOUGH",
"question_1_answer_10": "I LIVE TO MAKE GENERAL CHAT OFF TOPIC",
"question_1_answer_11": "I am posting gifs to general chat as we speak",
"question_2": "When you download a mod from the hub do you read the readme/mod description?",
"question_2_answer_1": "What's a description",
"question_2_answer_2": "I can't read",
"question_2_answer_3": "I am illiterate",
"question_2_answer_4": "I am too busy making general chat off-topic to read",
"question_2_answer_5": "YOU WILL NEVER MAKE ME READ TEXT I WILL ASK IN GENERAL CHAT INSTEAD",
"title": "Feedback survey",
"time": "About 1 minute",
"description": "This is the first SPT survey! Your survey doesn't get sent anywhere, its just for modders to see how it works and maybe make use of.",
"farewell": "I told you at the start the survey doesn't get sent anywhere and yet you still completed it, curious."
}
},
"survey": {
"id": 1,
"welcomePageData": {
"titleLocaleKey": "title",
"timeLocaleKey": "time",
"descriptionLocaleKey": "description"
},
"farewellPageData": {
"textLocaleKey": "farewell"
},
"pages": [[0, 1]],
"questions": [
{
"id": 0,
"sortIndex": 1,
"titleLocaleKey": "question_1",
"hintLocaleKey": "",
"answerLimit": 10,
"answerType": "MultiOption",
"answers": [
{
"id": 0,
"questionId": 0,
"sortIndex": 1,
"localeKey": "question_1_answer_1"
},
{
"id": 1,
"questionId": 0,
"sortIndex": 1,
"localeKey": "question_1_answer_2"
},
{
"id": 2,
"questionId": 0,
"sortIndex": 1,
"localeKey": "question_1_answer_3"
},
{
"id": 3,
"questionId": 0,
"sortIndex": 1,
"localeKey": "question_1_answer_4"
},
{
"id": 4,
"questionId": 0,
"sortIndex": 1,
"localeKey": "question_1_answer_5"
},
{
"id": 5,
"questionId": 0,
"sortIndex": 1,
"localeKey": "question_1_answer_6"
},
{
"id": 6,
"questionId": 0,
"sortIndex": 1,
"localeKey": "question_1_answer_7"
},
{
"id": 7,
"questionId": 0,
"sortIndex": 1,
"localeKey": "question_1_answer_8"
},
{
"id": 8,
"questionId": 0,
"sortIndex": 1,
"localeKey": "question_1_answer_9"
},
{
"id": 9,
"questionId": 0,
"sortIndex": 1,
"localeKey": "question_1_answer_10"
},
{
"id": 10,
"questionId": 0,
"sortIndex": 1,
"localeKey": "question_1_answer_11"
}
]
},
{
"id": 1,
"sortIndex": 1,
"titleLocaleKey": "question_2",
"hintLocaleKey": "",
"answerLimit": 5,
"answerType": "SingleOption",
"answers": [
{
"id": 0,
"questionId": 1,
"sortIndex": 1,
"localeKey": "question_2_answer_1"
},
{
"id": 1,
"questionId": 1,
"sortIndex": 1,
"localeKey": "question_2_answer_2"
},
{
"id": 2,
"questionId": 1,
"sortIndex": 1,
"localeKey": "question_2_answer_3"
},
{
"id": 3,
"questionId": 1,
"sortIndex": 1,
"localeKey": "question_2_answer_4"
},
{
"id": 4,
"questionId": 1,
"sortIndex": 1,
"localeKey": "question_2_answer_5"
}
]
}
],
"isNew": false
}
},
"features": {
"autoInstallModDependencies": false,
"compressProfile": false,
"chatbotFeatures": {
"sptFriendEnabled": true,
"sptFriendGiftsEnabled": true,
"commandoEnabled": true,
"commandoFeatures": {
"giveCommandEnabled": true
},
"commandUseLimits": {
"StashRows": 15
},
"ids": {
"commando": "6723fd51c5924c57ce0ca01e",
"spt": "6723fd51c5924c57ce0ca01f"
}
},
"createNewProfileTypesBlacklist": []
},
"customWatermarkLocaleKeys": []
}