discos 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/PRIVACY_POLICY.md +29 -0
- package/.github/TERMS_OF_SERVICE.md +56 -0
- package/LICENSE +201 -0
- package/README.md +70 -0
- package/dist/common.d.ts +157 -0
- package/dist/common.d.ts.map +1 -0
- package/dist/common.js +226 -0
- package/dist/common.js.map +1 -0
- package/dist/config.d.ts +18 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +20 -0
- package/dist/config.js.map +1 -0
- package/dist/ext/langMap.d.ts +2 -0
- package/dist/ext/langMap.d.ts.map +1 -0
- package/dist/ext/langMap.js +275 -0
- package/dist/ext/langMap.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/admin.d.ts +4 -0
- package/dist/modules/admin.d.ts.map +1 -0
- package/dist/modules/admin.js +281 -0
- package/dist/modules/admin.js.map +1 -0
- package/dist/modules/clear.d.ts +3 -0
- package/dist/modules/clear.d.ts.map +1 -0
- package/dist/modules/clear.js +82 -0
- package/dist/modules/clear.js.map +1 -0
- package/dist/modules/command.d.ts +5 -0
- package/dist/modules/command.d.ts.map +1 -0
- package/dist/modules/command.js +89 -0
- package/dist/modules/command.js.map +1 -0
- package/dist/modules/debug.d.ts +4 -0
- package/dist/modules/debug.d.ts.map +1 -0
- package/dist/modules/debug.js +47 -0
- package/dist/modules/debug.js.map +1 -0
- package/dist/modules/file.d.ts +7 -0
- package/dist/modules/file.d.ts.map +1 -0
- package/dist/modules/file.js +141 -0
- package/dist/modules/file.js.map +1 -0
- package/dist/modules/watch.d.ts +4 -0
- package/dist/modules/watch.d.ts.map +1 -0
- package/dist/modules/watch.js +63 -0
- package/dist/modules/watch.js.map +1 -0
- package/dist/shared/consts.d.ts +3 -0
- package/dist/shared/consts.d.ts.map +1 -0
- package/dist/shared/consts.js +6 -0
- package/dist/shared/consts.js.map +1 -0
- package/dist/shared/index.d.ts +3 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +19 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/interfaces.d.ts +13 -0
- package/dist/shared/interfaces.d.ts.map +1 -0
- package/dist/shared/interfaces.js +3 -0
- package/dist/shared/interfaces.js.map +1 -0
- package/dist/slash-commands.d.ts +2 -0
- package/dist/slash-commands.d.ts.map +1 -0
- package/dist/slash-commands.js +242 -0
- package/dist/slash-commands.js.map +1 -0
- package/dist/startup.d.ts +2 -0
- package/dist/startup.d.ts.map +1 -0
- package/dist/startup.js +200 -0
- package/dist/startup.js.map +1 -0
- package/dist/tools/backend.d.ts +5 -0
- package/dist/tools/backend.d.ts.map +1 -0
- package/dist/tools/backend.js +155 -0
- package/dist/tools/backend.js.map +1 -0
- package/dist/tools/ipcServer.d.ts +4 -0
- package/dist/tools/ipcServer.d.ts.map +1 -0
- package/dist/tools/ipcServer.js +83 -0
- package/dist/tools/ipcServer.js.map +1 -0
- package/dist/tools/queue-utils.d.ts +9 -0
- package/dist/tools/queue-utils.d.ts.map +1 -0
- package/dist/tools/queue-utils.js +70 -0
- package/dist/tools/queue-utils.js.map +1 -0
- package/dist/tools/validateDb.d.ts +2 -0
- package/dist/tools/validateDb.d.ts.map +1 -0
- package/dist/tools/validateDb.js +111 -0
- package/dist/tools/validateDb.js.map +1 -0
- package/dist/tools/validateDotenv.d.ts +2 -0
- package/dist/tools/validateDotenv.d.ts.map +1 -0
- package/dist/tools/validateDotenv.js +117 -0
- package/dist/tools/validateDotenv.js.map +1 -0
- package/dist/types/db.d.ts +9 -0
- package/dist/types/db.d.ts.map +1 -0
- package/dist/types/db.js +3 -0
- package/dist/types/db.js.map +1 -0
- package/dist/types/queues.d.ts +6 -0
- package/dist/types/queues.d.ts.map +1 -0
- package/dist/types/queues.js +3 -0
- package/dist/types/queues.js.map +1 -0
- package/package.json +71 -0
- package/setup/install.sh +527 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.validateDb = validateDb;
|
|
40
|
+
const fs_1 = __importDefault(require("fs"));
|
|
41
|
+
const COMMON = __importStar(require("../common"));
|
|
42
|
+
const config_1 = require("../config");
|
|
43
|
+
const isValidId = (id) => /^\d{17,}$/.test(id);
|
|
44
|
+
function validateDb() {
|
|
45
|
+
let db;
|
|
46
|
+
try {
|
|
47
|
+
const rawData = fs_1.default.readFileSync(process.env.DATABASE_PATH, 'utf-8');
|
|
48
|
+
db = JSON.parse(rawData);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
console.error(COMMON.DB_ERR);
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
if (typeof db !== 'object' || db === null) {
|
|
55
|
+
console.error(COMMON.DB_ERR);
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
const { users, adminUsers, allowedChannels } = db;
|
|
59
|
+
if (typeof users !== 'object' || users === null) {
|
|
60
|
+
console.error(COMMON.DB_USER_ERR);
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
const userIds = Object.keys(users);
|
|
64
|
+
if (userIds.length === 0) {
|
|
65
|
+
console.warn(COMMON.DB_USERS_EMPTY);
|
|
66
|
+
}
|
|
67
|
+
if (userIds.some((id) => !isValidId(id))) {
|
|
68
|
+
console.error(COMMON.DB_USERS_INVALID);
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
if (!Array.isArray(adminUsers)) {
|
|
72
|
+
console.error(COMMON.DB_ADMIN_ERR);
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
if (adminUsers.length === 0) {
|
|
76
|
+
console.error(COMMON.DB_NO_ADMIN);
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
if (adminUsers.some((id) => !isValidId(id))) {
|
|
80
|
+
console.error(COMMON.DB_ADMIN_INVALID);
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
if (allowedChannels !== undefined) {
|
|
84
|
+
if (!Array.isArray(allowedChannels)) {
|
|
85
|
+
console.error(COMMON.DB_ALLOWED_CHANNELS_ARRAY);
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
if (allowedChannels.length === 0) {
|
|
89
|
+
console.warn(COMMON.DB_ALLOWED_CH_EMPTY);
|
|
90
|
+
}
|
|
91
|
+
if (allowedChannels.some((id) => !isValidId(id))) {
|
|
92
|
+
console.error(COMMON.DB_ALLOWED_CH_INVALID);
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
const booleanFields = ['standalone', 'safemode', 'lockdown'];
|
|
97
|
+
for (const key of booleanFields) {
|
|
98
|
+
if (typeof db[key] !== 'boolean') {
|
|
99
|
+
console.error(`${COMMON.DB_BOOLEAN_ERR} (${key})`);
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
config_1.Config.allowedUsers = userIds;
|
|
104
|
+
config_1.Config.adminUsers = adminUsers;
|
|
105
|
+
config_1.Config.allowedChannels = allowedChannels;
|
|
106
|
+
config_1.Config.standalone = db.standalone;
|
|
107
|
+
config_1.Config.safemode = db.safemode;
|
|
108
|
+
config_1.Config.lockdown = db.lockdown;
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=validateDb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateDb.js","sourceRoot":"","sources":["../../src/tools/validateDb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateDotenv.d.ts","sourceRoot":"","sources":["../../src/tools/validateDotenv.ts"],"names":[],"mappings":"AAOA,wBAAgB,cAAc,IAAI,OAAO,CA+FxC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.validateDotenv = validateDotenv;
|
|
40
|
+
const COMMON = __importStar(require("../common"));
|
|
41
|
+
const dotenv_1 = __importDefault(require("dotenv"));
|
|
42
|
+
const config_1 = require("../config");
|
|
43
|
+
dotenv_1.default.config({ quiet: true });
|
|
44
|
+
function validateDotenv() {
|
|
45
|
+
const requiredEnvVars = [
|
|
46
|
+
'BOT_TOKEN',
|
|
47
|
+
'APP_ID',
|
|
48
|
+
'GUILD_IDS',
|
|
49
|
+
'CMD_QUEUE_MAX_SIZE',
|
|
50
|
+
'BACKEND',
|
|
51
|
+
'DATABASE_PATH',
|
|
52
|
+
'FILE_MAX_SIZE',
|
|
53
|
+
'READ_BIN_OVERRIDE',
|
|
54
|
+
'QUICK_VIEW',
|
|
55
|
+
'QUICK_VIEW_MAX_LENGTH',
|
|
56
|
+
];
|
|
57
|
+
const missingVars = requiredEnvVars.filter((envVar) => !process.env[envVar]);
|
|
58
|
+
if (missingVars.length > 0) {
|
|
59
|
+
console.error(COMMON.ENV_MISSING_VAR(missingVars));
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
if (process.env.BOT_TOKEN.length < 59) {
|
|
63
|
+
console.error(COMMON.ENV_TOKEN);
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
if (!/^\d{17,}$/.test(process.env.APP_ID)) {
|
|
67
|
+
console.error(COMMON.ENV_APPID);
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
const guildIds = process.env.GUILD_IDS.split(',').map((id) => id.trim());
|
|
71
|
+
if (guildIds.some((id) => !/^\d{17,}$/.test(id))) {
|
|
72
|
+
console.error(COMMON.ENV_GUILDS);
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
const cmdQueueMaxSize = parseInt(process.env.CMD_QUEUE_MAX_SIZE, 10);
|
|
76
|
+
if (isNaN(cmdQueueMaxSize) || cmdQueueMaxSize <= 0) {
|
|
77
|
+
console.error(COMMON.ENV_QUEUE_MAX);
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
config_1.Config.cmdQueueMaxSize = cmdQueueMaxSize;
|
|
81
|
+
if (!process.env.BACKEND || process.env.BACKEND.trim() === '') {
|
|
82
|
+
console.error(COMMON.ENV_BACKEND);
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
config_1.Config.backend = process.env.BACKEND;
|
|
86
|
+
if (!process.env.DATABASE_PATH || process.env.DATABASE_PATH.trim() === '') {
|
|
87
|
+
console.error('DiscOS ERROR: DATABASE_PATH must be a non-empty string.');
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
config_1.Config.databasePath = process.env.DATABASE_PATH;
|
|
91
|
+
const fileMaxSize = parseInt(process.env.FILE_MAX_SIZE, 10);
|
|
92
|
+
if (isNaN(fileMaxSize) || fileMaxSize <= 0 || fileMaxSize > 1000) {
|
|
93
|
+
console.error(COMMON.ENV_FILE_MAX);
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
config_1.Config.fileMaxSize = fileMaxSize;
|
|
97
|
+
const readBinOverride = process.env.READ_BIN_OVERRIDE.split(',').map((bin) => bin.trim());
|
|
98
|
+
if (readBinOverride.length === 0 || readBinOverride.some((bin) => bin === '')) {
|
|
99
|
+
console.error(COMMON.ENV_BIN_OVERRIDE);
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
config_1.Config.readBinOverride = readBinOverride;
|
|
103
|
+
const quickView = process.env.QUICK_VIEW.split(',').map((ext) => ext.trim());
|
|
104
|
+
if (quickView.length === 0 || quickView.some((ext) => ext === '' || ext === '?')) {
|
|
105
|
+
console.error(COMMON.ENV_QUICK_VIEW);
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
config_1.Config.quickView = quickView;
|
|
109
|
+
const quickViewMaxLength = parseInt(process.env.QUICK_VIEW_MAX_LENGTH, 10);
|
|
110
|
+
if (isNaN(quickViewMaxLength) || quickViewMaxLength <= 0 || quickViewMaxLength > 2000) {
|
|
111
|
+
console.error(COMMON.ENV_QUICK_VIEW_MAX_LENGTH);
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
config_1.Config.quickViewMaxLength = quickViewMaxLength;
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=validateDotenv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateDotenv.js","sourceRoot":"","sources":["../../src/tools/validateDotenv.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/types/db.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,EAAE,GAAG;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC"}
|
package/dist/types/db.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/types/db.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queues.d.ts","sourceRoot":"","sources":["../../src/types/queues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,eAAe,EAAE,iBAAiB,EAAE,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,iBAAiB,EAAE,CAAC;CAC9C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queues.js","sourceRoot":"","sources":["../../src/types/queues.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "discos",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"types": "dist/index.d.ts",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "rm -f tsconfig.tsbuildinfo && npx tsc -b",
|
|
8
|
+
"setup": "node dist/slash-commands.js",
|
|
9
|
+
"start": "node dist/startup.js",
|
|
10
|
+
"dev": "npx tsc -b && node dist/startup.js",
|
|
11
|
+
"docker:build": "docker build -t discos:latest .",
|
|
12
|
+
"docker:up": "docker compose up -d",
|
|
13
|
+
"docker:down": "docker compose down",
|
|
14
|
+
"docker:prune": "docker system prune -a -f",
|
|
15
|
+
"release:docker": "node scripts/release-docker.js",
|
|
16
|
+
"release:npm": "rm -rf dist && rm -f tsconfig.tsbuildinfo && npm run build && npm publish --access public",
|
|
17
|
+
"release:all": "npm run release:npm && npm run release:docker",
|
|
18
|
+
"release:login": "docker login && npm login",
|
|
19
|
+
"format": "prettier --write \"**/*.{ts,json,md}\" --log-level silent",
|
|
20
|
+
"lint": "eslint . --ext .ts --cache",
|
|
21
|
+
"postinstall": "node -e \"if (process.env.NODE_ENV !== 'production') require('child_process').execSync('git config core.hooksPath .husky')\""
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"discord",
|
|
25
|
+
"discord-bot",
|
|
26
|
+
"linux",
|
|
27
|
+
"server",
|
|
28
|
+
"bot",
|
|
29
|
+
"ssh",
|
|
30
|
+
"remote-control",
|
|
31
|
+
"terminal",
|
|
32
|
+
"commands",
|
|
33
|
+
"remote",
|
|
34
|
+
"interaction",
|
|
35
|
+
"control",
|
|
36
|
+
"file",
|
|
37
|
+
"transfer"
|
|
38
|
+
],
|
|
39
|
+
"author": "https://github.com/BrNi05",
|
|
40
|
+
"license": "Apache-2.0",
|
|
41
|
+
"description": "DiscOS is a secure interaction bridge between Discord and Linux servers",
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"axios": "^1.11.0",
|
|
44
|
+
"discord.js": "^14.22.1",
|
|
45
|
+
"dotenv": "^17.2.1",
|
|
46
|
+
"file-type": "^21.0.0",
|
|
47
|
+
"shell-escape": "^0.2.0"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@eslint/js": "^9.33.0",
|
|
51
|
+
"@types/node": "^24.3.0",
|
|
52
|
+
"@types/shell-escape": "^0.2.3",
|
|
53
|
+
"eslint": "^9.33.0",
|
|
54
|
+
"eslint-config-prettier": "^10.1.8",
|
|
55
|
+
"eslint-plugin-node": "^11.1.0",
|
|
56
|
+
"eslint-plugin-prettier": "^5.5.3",
|
|
57
|
+
"husky": "^9.1.7",
|
|
58
|
+
"prettier": "^3.6.2",
|
|
59
|
+
"ts-node": "^10.9.2",
|
|
60
|
+
"typescript": "^5.8.3",
|
|
61
|
+
"typescript-eslint": "^8.41.0"
|
|
62
|
+
},
|
|
63
|
+
"files": [
|
|
64
|
+
"dist",
|
|
65
|
+
"LICENSE",
|
|
66
|
+
"README.md",
|
|
67
|
+
".github/TERMS_OF_SERVICE.md",
|
|
68
|
+
".github/PRIVACY_POLICY.md",
|
|
69
|
+
"setup/install.sh"
|
|
70
|
+
]
|
|
71
|
+
}
|