1
0
mirror of https://github.com/toast-ts/Daggerbot-TS.git synced 2024-11-17 20:30:58 -05:00

Merge branch 'master' into sequelize-v7

This commit is contained in:
toast-ts 2024-02-20 07:57:45 +11:00
commit 827881c136
7 changed files with 125 additions and 97 deletions

92
.pnp.cjs generated
View File

@ -26,7 +26,7 @@ const RAW_RUNTIME_STATE =
[null, {\
"packageLocation": "./",\
"packageDependencies": [\
["@napi-rs/canvas", "npm:0.1.45"],\
["@napi-rs/canvas", "npm:0.1.47"],\
["@octokit/rest", "npm:20.0.2"],\
["@sequelize/core", "virtual:20c353e2d6536e37339997f03975c6a660f4d296e664d291bd43620c6162cca8eb5ef90b0998dc9db75ff6862e5da587d0530bae26805f5fadc8f17aaa4ff794#npm:7.0.0-alpha.37"],\
["@toast/tokenservice-client", "npm:1.0.12::__archiveUrl=https%3A%2F%2Fgit.toast-server.net%2Fapi%2Fpackages%2Ftoast%2Fnpm%2F%2540toast%252Ftokenservice-client%2F-%2F1.0.12%2Ftokenservice-client-1.0.12.tgz"],\
@ -45,7 +45,7 @@ const RAW_RUNTIME_STATE =
["postgres-array", "npm:3.0.2"],\
["redis", "npm:4.6.13"],\
["simple-git", "npm:3.22.0"],\
["systeminformation", "npm:5.21.25"],\
["systeminformation", "npm:5.22.0"],\
["typescript", "patch:typescript@npm%3A5.3.3#optional!builtin<compat/typescript>::version=5.3.3&hash=e012d7"],\
["undici", "npm:6.6.2"]\
],\
@ -168,100 +168,100 @@ const RAW_RUNTIME_STATE =
}]\
]],\
["@napi-rs/canvas", [\
["npm:0.1.45", {\
"packageLocation": "./.yarn/cache/@napi-rs-canvas-npm-0.1.45-0960b25a44-7f15bee29a.zip/node_modules/@napi-rs/canvas/",\
["npm:0.1.47", {\
"packageLocation": "./.yarn/cache/@napi-rs-canvas-npm-0.1.47-ce54b45d37-9640b3dcc7.zip/node_modules/@napi-rs/canvas/",\
"packageDependencies": [\
["@napi-rs/canvas", "npm:0.1.45"],\
["@napi-rs/canvas-android-arm64", "npm:0.1.45"],\
["@napi-rs/canvas-darwin-arm64", "npm:0.1.45"],\
["@napi-rs/canvas-darwin-x64", "npm:0.1.45"],\
["@napi-rs/canvas-linux-arm-gnueabihf", "npm:0.1.45"],\
["@napi-rs/canvas-linux-arm64-gnu", "npm:0.1.45"],\
["@napi-rs/canvas-linux-arm64-musl", "npm:0.1.45"],\
["@napi-rs/canvas-linux-x64-gnu", "npm:0.1.45"],\
["@napi-rs/canvas-linux-x64-musl", "npm:0.1.45"],\
["@napi-rs/canvas-win32-x64-msvc", "npm:0.1.45"]\
["@napi-rs/canvas", "npm:0.1.47"],\
["@napi-rs/canvas-android-arm64", "npm:0.1.47"],\
["@napi-rs/canvas-darwin-arm64", "npm:0.1.47"],\
["@napi-rs/canvas-darwin-x64", "npm:0.1.47"],\
["@napi-rs/canvas-linux-arm-gnueabihf", "npm:0.1.47"],\
["@napi-rs/canvas-linux-arm64-gnu", "npm:0.1.47"],\
["@napi-rs/canvas-linux-arm64-musl", "npm:0.1.47"],\
["@napi-rs/canvas-linux-x64-gnu", "npm:0.1.47"],\
["@napi-rs/canvas-linux-x64-musl", "npm:0.1.47"],\
["@napi-rs/canvas-win32-x64-msvc", "npm:0.1.47"]\
],\
"linkType": "HARD"\
}]\
]],\
["@napi-rs/canvas-android-arm64", [\
["npm:0.1.45", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-android-arm64-npm-0.1.45-f9db60400d/node_modules/@napi-rs/canvas-android-arm64/",\
["npm:0.1.47", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-android-arm64-npm-0.1.47-d68e13525c/node_modules/@napi-rs/canvas-android-arm64/",\
"packageDependencies": [\
["@napi-rs/canvas-android-arm64", "npm:0.1.45"]\
["@napi-rs/canvas-android-arm64", "npm:0.1.47"]\
],\
"linkType": "HARD"\
}]\
]],\
["@napi-rs/canvas-darwin-arm64", [\
["npm:0.1.45", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-darwin-arm64-npm-0.1.45-abab660c50/node_modules/@napi-rs/canvas-darwin-arm64/",\
["npm:0.1.47", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-darwin-arm64-npm-0.1.47-2d595a8471/node_modules/@napi-rs/canvas-darwin-arm64/",\
"packageDependencies": [\
["@napi-rs/canvas-darwin-arm64", "npm:0.1.45"]\
["@napi-rs/canvas-darwin-arm64", "npm:0.1.47"]\
],\
"linkType": "HARD"\
}]\
]],\
["@napi-rs/canvas-darwin-x64", [\
["npm:0.1.45", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-darwin-x64-npm-0.1.45-bf2b81d116/node_modules/@napi-rs/canvas-darwin-x64/",\
["npm:0.1.47", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-darwin-x64-npm-0.1.47-8f351fe8b7/node_modules/@napi-rs/canvas-darwin-x64/",\
"packageDependencies": [\
["@napi-rs/canvas-darwin-x64", "npm:0.1.45"]\
["@napi-rs/canvas-darwin-x64", "npm:0.1.47"]\
],\
"linkType": "HARD"\
}]\
]],\
["@napi-rs/canvas-linux-arm-gnueabihf", [\
["npm:0.1.45", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-linux-arm-gnueabihf-npm-0.1.45-33468f951f/node_modules/@napi-rs/canvas-linux-arm-gnueabihf/",\
["npm:0.1.47", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-linux-arm-gnueabihf-npm-0.1.47-755d63eda3/node_modules/@napi-rs/canvas-linux-arm-gnueabihf/",\
"packageDependencies": [\
["@napi-rs/canvas-linux-arm-gnueabihf", "npm:0.1.45"]\
["@napi-rs/canvas-linux-arm-gnueabihf", "npm:0.1.47"]\
],\
"linkType": "HARD"\
}]\
]],\
["@napi-rs/canvas-linux-arm64-gnu", [\
["npm:0.1.45", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-linux-arm64-gnu-npm-0.1.45-b8b116a7f8/node_modules/@napi-rs/canvas-linux-arm64-gnu/",\
["npm:0.1.47", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-linux-arm64-gnu-npm-0.1.47-ff70f3de2a/node_modules/@napi-rs/canvas-linux-arm64-gnu/",\
"packageDependencies": [\
["@napi-rs/canvas-linux-arm64-gnu", "npm:0.1.45"]\
["@napi-rs/canvas-linux-arm64-gnu", "npm:0.1.47"]\
],\
"linkType": "HARD"\
}]\
]],\
["@napi-rs/canvas-linux-arm64-musl", [\
["npm:0.1.45", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-linux-arm64-musl-npm-0.1.45-4d130f680f/node_modules/@napi-rs/canvas-linux-arm64-musl/",\
["npm:0.1.47", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-linux-arm64-musl-npm-0.1.47-284cb9c2e8/node_modules/@napi-rs/canvas-linux-arm64-musl/",\
"packageDependencies": [\
["@napi-rs/canvas-linux-arm64-musl", "npm:0.1.45"]\
["@napi-rs/canvas-linux-arm64-musl", "npm:0.1.47"]\
],\
"linkType": "HARD"\
}]\
]],\
["@napi-rs/canvas-linux-x64-gnu", [\
["npm:0.1.45", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-linux-x64-gnu-npm-0.1.45-783e8dd6ba/node_modules/@napi-rs/canvas-linux-x64-gnu/",\
["npm:0.1.47", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-linux-x64-gnu-npm-0.1.47-76b9d4a09b/node_modules/@napi-rs/canvas-linux-x64-gnu/",\
"packageDependencies": [\
["@napi-rs/canvas-linux-x64-gnu", "npm:0.1.45"]\
["@napi-rs/canvas-linux-x64-gnu", "npm:0.1.47"]\
],\
"linkType": "HARD"\
}]\
]],\
["@napi-rs/canvas-linux-x64-musl", [\
["npm:0.1.45", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-linux-x64-musl-npm-0.1.45-3bd7e90815/node_modules/@napi-rs/canvas-linux-x64-musl/",\
["npm:0.1.47", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-linux-x64-musl-npm-0.1.47-f9ecacd8e4/node_modules/@napi-rs/canvas-linux-x64-musl/",\
"packageDependencies": [\
["@napi-rs/canvas-linux-x64-musl", "npm:0.1.45"]\
["@napi-rs/canvas-linux-x64-musl", "npm:0.1.47"]\
],\
"linkType": "HARD"\
}]\
]],\
["@napi-rs/canvas-win32-x64-msvc", [\
["npm:0.1.45", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-win32-x64-msvc-npm-0.1.45-5312f002c6/node_modules/@napi-rs/canvas-win32-x64-msvc/",\
["npm:0.1.47", {\
"packageLocation": "./.yarn/unplugged/@napi-rs-canvas-win32-x64-msvc-npm-0.1.47-13b81eda0e/node_modules/@napi-rs/canvas-win32-x64-msvc/",\
"packageDependencies": [\
["@napi-rs/canvas-win32-x64-msvc", "npm:0.1.45"]\
["@napi-rs/canvas-win32-x64-msvc", "npm:0.1.47"]\
],\
"linkType": "HARD"\
}]\
@ -853,7 +853,7 @@ const RAW_RUNTIME_STATE =
"packageLocation": "./",\
"packageDependencies": [\
["daggerbot-ts", "workspace:."],\
["@napi-rs/canvas", "npm:0.1.45"],\
["@napi-rs/canvas", "npm:0.1.47"],\
["@octokit/rest", "npm:20.0.2"],\
["@sequelize/core", "virtual:20c353e2d6536e37339997f03975c6a660f4d296e664d291bd43620c6162cca8eb5ef90b0998dc9db75ff6862e5da587d0530bae26805f5fadc8f17aaa4ff794#npm:7.0.0-alpha.37"],\
["@toast/tokenservice-client", "npm:1.0.12::__archiveUrl=https%3A%2F%2Fgit.toast-server.net%2Fapi%2Fpackages%2Ftoast%2Fnpm%2F%2540toast%252Ftokenservice-client%2F-%2F1.0.12%2Ftokenservice-client-1.0.12.tgz"],\
@ -872,7 +872,7 @@ const RAW_RUNTIME_STATE =
["postgres-array", "npm:3.0.2"],\
["redis", "npm:4.6.13"],\
["simple-git", "npm:3.22.0"],\
["systeminformation", "npm:5.21.25"],\
["systeminformation", "npm:5.22.0"],\
["typescript", "patch:typescript@npm%3A5.3.3#optional!builtin<compat/typescript>::version=5.3.3&hash=e012d7"],\
["undici", "npm:6.6.2"]\
],\
@ -1512,10 +1512,10 @@ const RAW_RUNTIME_STATE =
}]\
]],\
["systeminformation", [\
["npm:5.21.25", {\
"packageLocation": "./.yarn/unplugged/systeminformation-npm-5.21.25-046c250fe0/node_modules/systeminformation/",\
["npm:5.22.0", {\
"packageLocation": "./.yarn/unplugged/systeminformation-npm-5.22.0-ae815bb44c/node_modules/systeminformation/",\
"packageDependencies": [\
["systeminformation", "npm:5.21.25"]\
["systeminformation", "npm:5.22.0"]\
],\
"linkType": "HARD"\
}]\

View File

@ -32,7 +32,7 @@
"engineStrict": true,
"packageManager": "yarn@4.1.0+sha256.81a00df816059803e6b5148acf03ce313cad36b7f6e5af6efa040a15981a6ffb",
"dependencies": {
"@napi-rs/canvas": "0.1.45",
"@napi-rs/canvas": "0.1.47",
"@octokit/rest": "20.0.2",
"@sequelize/core": "7.0.0-alpha.37",
"@toast/tokenservice-client": "1.0.12",
@ -47,7 +47,7 @@
"postgres-array": "3.0.2",
"redis": "4.6.13",
"simple-git": "3.22.0",
"systeminformation": "5.21.25",
"systeminformation": "5.22.0",
"undici": "6.6.2"
},
"devDependencies": {

View File

@ -85,7 +85,8 @@
"dcmod_chat": "742324777934520350",
"mpmod_chat": "516344221452599306",
"multifarm_chat": "1149238561934151690",
"pw_list": "1193424588554645505"
"pw_list": "1193424588554645505",
"help_forum": "1022236553562558464"
}
}
}

View File

@ -25,6 +25,19 @@ client.on('error', (error: Error)=>_(error, 'clientError'));
// Interval timers for modules
setInterval(async()=>await MPModule(client), refreshTimerSecs);
setInterval(()=>YTModule(client), 180000); // 3 minutes
setInterval(async()=>{
const forum = client.guilds.cache.get(client.config.dcServer.id).channels.cache.get(client.config.dcServer.channels.help_forum) as Discord.ForumChannel;
await forum.threads.fetch();
for await (const thread of forum.threads.cache.values()) {
await thread.messages.fetch();
if (!thread.archived && thread.lastMessage.createdTimestamp <= Date.now() - 1555200000) {// check if thread is inactive for over 18 days
await thread.setLocked(true).catch(()=>null);
await thread.setArchived(true, 'Inactive for over 18 days').catch(()=>null);
Logger.console('log', 'ThreadTimer', `${thread.name} has been archived and locked due to inactivity`);
}
}
}, 1200000); // 20 minutes
// Event loop for punishments and daily msgs
setInterval(async()=>{

5
src/interfaces.d.ts vendored
View File

@ -159,8 +159,9 @@ export interface Config {
punishment_log: string,
dcmod_chat: string,
mpmod_chat: string,
multifarm_chat: string
pw_list: string
multifarm_chat: string,
pw_list: string,
help_forum: string
}
}
}

View File

@ -8,6 +8,7 @@ import {IServer} from '../models/MPServer.js';
import {XMLParser} from 'fast-xml-parser';
import {FSPlayer, FSData, FSCareerSavegame} from 'src/interfaces';
let failedAttempts:number = 0;
let loggingPrefix:string = 'MPModule';
let dataUnavailable:string = 'Unavailable';
export let refreshTimerSecs:number = 45000;
@ -131,6 +132,12 @@ export async function requestServerData(client:TClient, server:IServer):Promise<
else if (data.status === 404) Logger.console('log', loggingPrefix, `(${i+1}/${maxRetries}) ${server.serverName} responded with an error (404), API is disabled or mismatched code`)
} catch(err) {
Logger.console('log', loggingPrefix, `Couldn't get data for ${server.serverName}: ${err.message}`);
failedAttempts++;
if (failedAttempts >= 5 && server.isActive) {
Logger.console('log', loggingPrefix, `Maximum failed requests (${failedAttempts}) reached for ${server.serverName}, silenced server for 10 minutes`);
silenceServer(client, server, 600000);
}
return null;
}
await new Promise(resolve=>setTimeout(resolve, 500))
}
@ -179,3 +186,9 @@ function convertPlayerUptime(playTime:number) {
return (Days > 0 ? Days+' d ':'')+(Hours > 0 ? Hours+' h ':'')+(Minutes > 0 ? Minutes+' m':'')
}
function silenceServer(client:TClient, server:IServer, time:number):void {
client.MPServer.toggleServerUsability(server.serverName, false);
setTimeout(()=>client.MPServer.toggleServerUsability(server.serverName, true), time)
failedAttempts = 0;
}

View File

@ -107,82 +107,82 @@ __metadata:
languageName: node
linkType: hard
"@napi-rs/canvas-android-arm64@npm:0.1.45":
version: 0.1.45
resolution: "@napi-rs/canvas-android-arm64@npm:0.1.45"
"@napi-rs/canvas-android-arm64@npm:0.1.47":
version: 0.1.47
resolution: "@napi-rs/canvas-android-arm64@npm:0.1.47"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
"@napi-rs/canvas-darwin-arm64@npm:0.1.45":
version: 0.1.45
resolution: "@napi-rs/canvas-darwin-arm64@npm:0.1.45"
"@napi-rs/canvas-darwin-arm64@npm:0.1.47":
version: 0.1.47
resolution: "@napi-rs/canvas-darwin-arm64@npm:0.1.47"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
"@napi-rs/canvas-darwin-x64@npm:0.1.45":
version: 0.1.45
resolution: "@napi-rs/canvas-darwin-x64@npm:0.1.45"
"@napi-rs/canvas-darwin-x64@npm:0.1.47":
version: 0.1.47
resolution: "@napi-rs/canvas-darwin-x64@npm:0.1.47"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
"@napi-rs/canvas-linux-arm-gnueabihf@npm:0.1.45":
version: 0.1.45
resolution: "@napi-rs/canvas-linux-arm-gnueabihf@npm:0.1.45"
"@napi-rs/canvas-linux-arm-gnueabihf@npm:0.1.47":
version: 0.1.47
resolution: "@napi-rs/canvas-linux-arm-gnueabihf@npm:0.1.47"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
"@napi-rs/canvas-linux-arm64-gnu@npm:0.1.45":
version: 0.1.45
resolution: "@napi-rs/canvas-linux-arm64-gnu@npm:0.1.45"
"@napi-rs/canvas-linux-arm64-gnu@npm:0.1.47":
version: 0.1.47
resolution: "@napi-rs/canvas-linux-arm64-gnu@npm:0.1.47"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
"@napi-rs/canvas-linux-arm64-musl@npm:0.1.45":
version: 0.1.45
resolution: "@napi-rs/canvas-linux-arm64-musl@npm:0.1.45"
"@napi-rs/canvas-linux-arm64-musl@npm:0.1.47":
version: 0.1.47
resolution: "@napi-rs/canvas-linux-arm64-musl@npm:0.1.47"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
"@napi-rs/canvas-linux-x64-gnu@npm:0.1.45":
version: 0.1.45
resolution: "@napi-rs/canvas-linux-x64-gnu@npm:0.1.45"
"@napi-rs/canvas-linux-x64-gnu@npm:0.1.47":
version: 0.1.47
resolution: "@napi-rs/canvas-linux-x64-gnu@npm:0.1.47"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
"@napi-rs/canvas-linux-x64-musl@npm:0.1.45":
version: 0.1.45
resolution: "@napi-rs/canvas-linux-x64-musl@npm:0.1.45"
"@napi-rs/canvas-linux-x64-musl@npm:0.1.47":
version: 0.1.47
resolution: "@napi-rs/canvas-linux-x64-musl@npm:0.1.47"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
"@napi-rs/canvas-win32-x64-msvc@npm:0.1.45":
version: 0.1.45
resolution: "@napi-rs/canvas-win32-x64-msvc@npm:0.1.45"
"@napi-rs/canvas-win32-x64-msvc@npm:0.1.47":
version: 0.1.47
resolution: "@napi-rs/canvas-win32-x64-msvc@npm:0.1.47"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@napi-rs/canvas@npm:0.1.45":
version: 0.1.45
resolution: "@napi-rs/canvas@npm:0.1.45"
"@napi-rs/canvas@npm:0.1.47":
version: 0.1.47
resolution: "@napi-rs/canvas@npm:0.1.47"
dependencies:
"@napi-rs/canvas-android-arm64": "npm:0.1.45"
"@napi-rs/canvas-darwin-arm64": "npm:0.1.45"
"@napi-rs/canvas-darwin-x64": "npm:0.1.45"
"@napi-rs/canvas-linux-arm-gnueabihf": "npm:0.1.45"
"@napi-rs/canvas-linux-arm64-gnu": "npm:0.1.45"
"@napi-rs/canvas-linux-arm64-musl": "npm:0.1.45"
"@napi-rs/canvas-linux-x64-gnu": "npm:0.1.45"
"@napi-rs/canvas-linux-x64-musl": "npm:0.1.45"
"@napi-rs/canvas-win32-x64-msvc": "npm:0.1.45"
"@napi-rs/canvas-android-arm64": "npm:0.1.47"
"@napi-rs/canvas-darwin-arm64": "npm:0.1.47"
"@napi-rs/canvas-darwin-x64": "npm:0.1.47"
"@napi-rs/canvas-linux-arm-gnueabihf": "npm:0.1.47"
"@napi-rs/canvas-linux-arm64-gnu": "npm:0.1.47"
"@napi-rs/canvas-linux-arm64-musl": "npm:0.1.47"
"@napi-rs/canvas-linux-x64-gnu": "npm:0.1.47"
"@napi-rs/canvas-linux-x64-musl": "npm:0.1.47"
"@napi-rs/canvas-win32-x64-msvc": "npm:0.1.47"
dependenciesMeta:
"@napi-rs/canvas-android-arm64":
optional: true
@ -202,7 +202,7 @@ __metadata:
optional: true
"@napi-rs/canvas-win32-x64-msvc":
optional: true
checksum: 10/7f15bee29a30dae617ebcb7f76a8dfe0f44ebce01bc61c7931a3a6095a7f60555e369e5be31f0790feeddcfb1d16e9035780198734512bb539deaa17d3477b39
checksum: 10/9640b3dcc7dbc65a6777fadf66163c1a36d49af82cdb409142daea01aa90e797eb7ab98aee4db17e52adbc4878b62c8d7831619b4ccc580148816d60ab395698
languageName: node
linkType: hard
@ -621,7 +621,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "daggerbot-ts@workspace:."
dependencies:
"@napi-rs/canvas": "npm:0.1.45"
"@napi-rs/canvas": "npm:0.1.47"
"@octokit/rest": "npm:20.0.2"
"@sequelize/core": "npm:7.0.0-alpha.37"
"@toast/tokenservice-client": "npm:1.0.12"
@ -640,7 +640,7 @@ __metadata:
postgres-array: "npm:3.0.2"
redis: "npm:4.6.13"
simple-git: "npm:3.22.0"
systeminformation: "npm:5.21.25"
systeminformation: "npm:5.22.0"
typescript: "npm:5.3.3"
undici: "npm:6.6.2"
languageName: unknown
@ -1171,12 +1171,12 @@ __metadata:
languageName: node
linkType: hard
"systeminformation@npm:5.21.25":
version: 5.21.25
resolution: "systeminformation@npm:5.21.25"
"systeminformation@npm:5.22.0":
version: 5.22.0
resolution: "systeminformation@npm:5.22.0"
bin:
systeminformation: lib/cli.js
checksum: 10/5b56205879652cfe5e6147a97a0eba450a8d83b8ad304e5e998a9829a16124c7d43969740413857cb2a24bccb1588160dd026649c7eae3fd35cdb9b92c62ab86
checksum: 10/a739041bf0ef572eaebd06819ed54bb5f4a785793e3d542f16f39914ae5bbbf7d44b204ec936dcf560056709e97e2e55c11ee3ceda7b9585e778979f63ab7e3b
conditions: (os=darwin | os=linux | os=win32 | os=freebsd | os=openbsd | os=netbsd | os=sunos | os=android)
languageName: node
linkType: hard