greybel-mock-environment 1.2.4 → 1.2.5
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/dist/environment.js +1 -1
- package/dist/fs.d.ts +7 -19
- package/dist/fs.js +217 -197
- package/dist/generators/network.d.ts +6 -5
- package/dist/generators/network.js +30 -21
- package/dist/scripts.d.ts +41 -0
- package/dist/scripts.js +44 -0
- package/dist/types/computer.d.ts +2 -2
- package/dist/types/computer.js +2 -2
- package/dist/types/device.d.ts +5 -6
- package/dist/types/device.js +27 -34
- package/dist/types/file-system.d.ts +8 -10
- package/dist/types/file-system.js +85 -57
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +6 -1
- package/dist/types/meta-info.d.ts +27 -0
- package/dist/types/meta-info.js +31 -0
- package/dist/types/router.d.ts +2 -2
- package/dist/types/router.js +2 -2
- package/dist/types/switch.d.ts +2 -2
- package/dist/types/switch.js +2 -2
- package/package.json +1 -1
package/dist/environment.js
CHANGED
|
@@ -150,7 +150,7 @@ var MockEnvironment = /** @class */ (function () {
|
|
|
150
150
|
isProtected: true,
|
|
151
151
|
type: types_1.FileType.Bin
|
|
152
152
|
});
|
|
153
|
-
currentPath.
|
|
153
|
+
currentPath.putEntity(programPath);
|
|
154
154
|
me.localSession = new types_1.Session({
|
|
155
155
|
user: user,
|
|
156
156
|
computer: computer,
|
package/dist/fs.d.ts
CHANGED
|
@@ -1,30 +1,18 @@
|
|
|
1
1
|
import { Service } from './types';
|
|
2
2
|
import { Entity, File, Folder } from './types/file-system';
|
|
3
|
+
import { MetaInfo } from './types/meta-info';
|
|
3
4
|
import { Port } from './types/port';
|
|
4
5
|
import { User } from './types/user';
|
|
5
|
-
export declare
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export declare
|
|
10
|
-
Easy = 0,
|
|
11
|
-
Medium = 1,
|
|
12
|
-
Hard = 2
|
|
13
|
-
}
|
|
14
|
-
export declare enum FSDeviceType {
|
|
15
|
-
Unknown = 0,
|
|
16
|
-
Computer = 1,
|
|
17
|
-
Router = 2,
|
|
18
|
-
Switch = 3
|
|
19
|
-
}
|
|
6
|
+
export declare function getLibraryFile(service: Service, parent?: Entity): File;
|
|
7
|
+
export declare type Files = Map<string, File>;
|
|
8
|
+
export declare function generateFiles(...files: File[]): Files;
|
|
9
|
+
export declare type Folders = Map<string, Folder>;
|
|
10
|
+
export declare function generateFolders(...folders: Folder[]): Folders;
|
|
20
11
|
export interface FSOptions {
|
|
21
12
|
users: User[];
|
|
22
|
-
|
|
23
|
-
ownerType: FSDeviceOwnerType;
|
|
24
|
-
difficulty?: FSCreationVariation;
|
|
13
|
+
meta: MetaInfo;
|
|
25
14
|
parent?: Entity;
|
|
26
15
|
ports?: Map<number, Port>;
|
|
27
16
|
}
|
|
28
|
-
export declare function getLibraryFile(service: Service, parent?: Entity): File;
|
|
29
17
|
export declare function getUserFolder(options: FSOptions, user: string): Folder;
|
|
30
18
|
export declare function getDefaultFileSystem(options: FSOptions): Folder;
|
package/dist/fs.js
CHANGED
|
@@ -10,6 +10,29 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
13
36
|
var __values = (this && this.__values) || function(o) {
|
|
14
37
|
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
15
38
|
if (m) return m.call(o);
|
|
@@ -47,50 +70,11 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
47
70
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
48
71
|
};
|
|
49
72
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
-
exports.getDefaultFileSystem = exports.getUserFolder = exports.
|
|
73
|
+
exports.getDefaultFileSystem = exports.getUserFolder = exports.generateFolders = exports.generateFiles = exports.getLibraryFile = void 0;
|
|
74
|
+
var BinFiles = __importStar(require("./scripts"));
|
|
51
75
|
var types_1 = require("./types");
|
|
52
76
|
var file_system_1 = require("./types/file-system");
|
|
53
|
-
var
|
|
54
|
-
(function (FSDeviceOwnerType) {
|
|
55
|
-
FSDeviceOwnerType[FSDeviceOwnerType["Player"] = 0] = "Player";
|
|
56
|
-
FSDeviceOwnerType[FSDeviceOwnerType["Npc"] = 1] = "Npc";
|
|
57
|
-
})(FSDeviceOwnerType = exports.FSDeviceOwnerType || (exports.FSDeviceOwnerType = {}));
|
|
58
|
-
var FSCreationVariation;
|
|
59
|
-
(function (FSCreationVariation) {
|
|
60
|
-
FSCreationVariation[FSCreationVariation["Easy"] = 0] = "Easy";
|
|
61
|
-
FSCreationVariation[FSCreationVariation["Medium"] = 1] = "Medium";
|
|
62
|
-
FSCreationVariation[FSCreationVariation["Hard"] = 2] = "Hard";
|
|
63
|
-
})(FSCreationVariation = exports.FSCreationVariation || (exports.FSCreationVariation = {}));
|
|
64
|
-
var FSDeviceType;
|
|
65
|
-
(function (FSDeviceType) {
|
|
66
|
-
FSDeviceType[FSDeviceType["Unknown"] = 0] = "Unknown";
|
|
67
|
-
FSDeviceType[FSDeviceType["Computer"] = 1] = "Computer";
|
|
68
|
-
FSDeviceType[FSDeviceType["Router"] = 2] = "Router";
|
|
69
|
-
FSDeviceType[FSDeviceType["Switch"] = 3] = "Switch";
|
|
70
|
-
})(FSDeviceType = exports.FSDeviceType || (exports.FSDeviceType = {}));
|
|
71
|
-
function getEtcAptFiles(options) {
|
|
72
|
-
return [
|
|
73
|
-
new file_system_1.File({
|
|
74
|
-
name: 'sources.txt',
|
|
75
|
-
permissions: '-rw-r-----',
|
|
76
|
-
owner: 'root',
|
|
77
|
-
content: "{\n\t\t\t\"official_server\": true,\n\t\t\t\"sourceList\": {}\n\t\t}",
|
|
78
|
-
type: file_system_1.FileType.Plain
|
|
79
|
-
}, options.parent)
|
|
80
|
-
];
|
|
81
|
-
}
|
|
82
|
-
function getEtcAptFolder(options) {
|
|
83
|
-
var aptFolder = new file_system_1.Folder({
|
|
84
|
-
name: 'apt',
|
|
85
|
-
permissions: 'drwxr-x---',
|
|
86
|
-
owner: 'root',
|
|
87
|
-
folders: [],
|
|
88
|
-
files: []
|
|
89
|
-
}, options.parent);
|
|
90
|
-
var newOptions = __assign(__assign({}, options), { parent: aptFolder });
|
|
91
|
-
aptFolder.files = getEtcAptFiles(newOptions);
|
|
92
|
-
return aptFolder;
|
|
93
|
-
}
|
|
77
|
+
var meta_info_1 = require("./types/meta-info");
|
|
94
78
|
function getLibraryFile(service, parent) {
|
|
95
79
|
switch (service) {
|
|
96
80
|
case types_1.Service.SSH: {
|
|
@@ -133,43 +117,78 @@ function getLibraryFile(service, parent) {
|
|
|
133
117
|
return null;
|
|
134
118
|
}
|
|
135
119
|
exports.getLibraryFile = getLibraryFile;
|
|
120
|
+
function generateFiles() {
|
|
121
|
+
var files = [];
|
|
122
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
123
|
+
files[_i] = arguments[_i];
|
|
124
|
+
}
|
|
125
|
+
return files.reduce(function (r, f) {
|
|
126
|
+
r.set(f.name, f);
|
|
127
|
+
return r;
|
|
128
|
+
}, new Map());
|
|
129
|
+
}
|
|
130
|
+
exports.generateFiles = generateFiles;
|
|
131
|
+
function generateFolders() {
|
|
132
|
+
var folders = [];
|
|
133
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
134
|
+
folders[_i] = arguments[_i];
|
|
135
|
+
}
|
|
136
|
+
return folders.reduce(function (r, f) {
|
|
137
|
+
r.set(f.name, f);
|
|
138
|
+
return r;
|
|
139
|
+
}, new Map());
|
|
140
|
+
}
|
|
141
|
+
exports.generateFolders = generateFolders;
|
|
142
|
+
function getEtcAptFiles(options) {
|
|
143
|
+
return generateFiles(new file_system_1.File({
|
|
144
|
+
name: 'sources.txt',
|
|
145
|
+
permissions: '-rw-r-----',
|
|
146
|
+
owner: 'root',
|
|
147
|
+
content: "{\n\t\t\t\"official_server\": true,\n\t\t\t\"sourceList\": {}\n\t\t}",
|
|
148
|
+
type: file_system_1.FileType.Plain
|
|
149
|
+
}, options.parent));
|
|
150
|
+
}
|
|
151
|
+
function getEtcAptFolder(options) {
|
|
152
|
+
var aptFolder = new file_system_1.Folder({
|
|
153
|
+
name: 'apt',
|
|
154
|
+
permissions: 'drwxr-x---',
|
|
155
|
+
owner: 'root'
|
|
156
|
+
}, options.parent);
|
|
157
|
+
var newOptions = __assign(__assign({}, options), { parent: aptFolder });
|
|
158
|
+
aptFolder.files = getEtcAptFiles(newOptions);
|
|
159
|
+
return aptFolder;
|
|
160
|
+
}
|
|
136
161
|
function getEtcFiles(options) {
|
|
137
|
-
return
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
content: "",
|
|
159
|
-
type: file_system_1.FileType.Plain
|
|
160
|
-
}, options.parent)
|
|
161
|
-
];
|
|
162
|
+
return generateFiles(new file_system_1.File({
|
|
163
|
+
name: 'passwd',
|
|
164
|
+
permissions: '-rw-r-----',
|
|
165
|
+
owner: 'root',
|
|
166
|
+
content: options.users
|
|
167
|
+
.map(function (v) { return "".concat(v.username, ":").concat(v.passwordHashed); })
|
|
168
|
+
.join('\n'),
|
|
169
|
+
type: file_system_1.FileType.Plain
|
|
170
|
+
}, options.parent), new file_system_1.File({
|
|
171
|
+
name: 'xorg.conf',
|
|
172
|
+
permissions: '-rw-r-----',
|
|
173
|
+
owner: 'root',
|
|
174
|
+
content: "",
|
|
175
|
+
type: file_system_1.FileType.Plain
|
|
176
|
+
}, options.parent), new file_system_1.File({
|
|
177
|
+
name: 'fstab',
|
|
178
|
+
permissions: '-rw-r-----',
|
|
179
|
+
owner: 'root',
|
|
180
|
+
content: "",
|
|
181
|
+
type: file_system_1.FileType.Plain
|
|
182
|
+
}, options.parent));
|
|
162
183
|
}
|
|
163
184
|
function getEtcFolder(options) {
|
|
164
185
|
var etcFolder = new file_system_1.Folder({
|
|
165
186
|
name: 'etc',
|
|
166
187
|
permissions: 'drwxr-x---',
|
|
167
|
-
owner: 'root'
|
|
168
|
-
folders: [],
|
|
169
|
-
files: []
|
|
188
|
+
owner: 'root'
|
|
170
189
|
}, options.parent);
|
|
171
190
|
var newOptions = __assign(__assign({}, options), { parent: etcFolder });
|
|
172
|
-
etcFolder.folders =
|
|
191
|
+
etcFolder.folders = generateFolders(getEtcAptFolder(newOptions));
|
|
173
192
|
etcFolder.files = getEtcFiles(newOptions);
|
|
174
193
|
return etcFolder;
|
|
175
194
|
}
|
|
@@ -191,7 +210,7 @@ function getLibFiles(options) {
|
|
|
191
210
|
version: '1.0.0.0'
|
|
192
211
|
}, options.parent)
|
|
193
212
|
];
|
|
194
|
-
if (options.
|
|
213
|
+
if (options.meta.deviceType === meta_info_1.MetaDeviceType.Computer) {
|
|
195
214
|
libFiles.push(new file_system_1.File({
|
|
196
215
|
name: 'kernel_module.so',
|
|
197
216
|
permissions: '-rw-r-----',
|
|
@@ -209,7 +228,7 @@ function getLibFiles(options) {
|
|
|
209
228
|
version: '1.0.0.0'
|
|
210
229
|
}, options.parent));
|
|
211
230
|
}
|
|
212
|
-
if (options.ownerType ===
|
|
231
|
+
if (options.meta.ownerType === meta_info_1.MetaOwnerType.Player) {
|
|
213
232
|
libFiles.push(new file_system_1.File({
|
|
214
233
|
name: 'crypto.so',
|
|
215
234
|
permissions: '-rw-r--r--',
|
|
@@ -257,93 +276,70 @@ function getLibFiles(options) {
|
|
|
257
276
|
}
|
|
258
277
|
finally { if (e_1) throw e_1.error; }
|
|
259
278
|
}
|
|
260
|
-
return libFiles;
|
|
279
|
+
return generateFiles.apply(void 0, __spreadArray([], __read(libFiles), false));
|
|
261
280
|
}
|
|
262
281
|
function getLibFolder(options) {
|
|
263
282
|
var libFolder = new file_system_1.Folder({
|
|
264
283
|
name: 'lib',
|
|
265
284
|
permissions: 'drwxrwx---',
|
|
266
|
-
owner: 'root'
|
|
267
|
-
folders: [],
|
|
268
|
-
files: []
|
|
285
|
+
owner: 'root'
|
|
269
286
|
}, options.parent);
|
|
270
287
|
var newOptions = __assign(__assign({}, options), { parent: libFolder });
|
|
271
288
|
libFolder.files = getLibFiles(newOptions);
|
|
272
289
|
return libFolder;
|
|
273
290
|
}
|
|
274
291
|
function getSysFiles(options) {
|
|
275
|
-
return
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
owner: 'root',
|
|
292
|
-
type: file_system_1.FileType.System
|
|
293
|
-
}, options.parent)
|
|
294
|
-
];
|
|
292
|
+
return generateFiles(new file_system_1.File({
|
|
293
|
+
name: 'xorg.sys',
|
|
294
|
+
permissions: '-r-x------',
|
|
295
|
+
owner: 'root',
|
|
296
|
+
type: file_system_1.FileType.System
|
|
297
|
+
}, options.parent), new file_system_1.File({
|
|
298
|
+
name: 'config.sys',
|
|
299
|
+
permissions: '-rw-------',
|
|
300
|
+
owner: 'root',
|
|
301
|
+
type: file_system_1.FileType.System
|
|
302
|
+
}, options.parent), new file_system_1.File({
|
|
303
|
+
name: 'network.cfg',
|
|
304
|
+
permissions: '-rw-------',
|
|
305
|
+
owner: 'root',
|
|
306
|
+
type: file_system_1.FileType.System
|
|
307
|
+
}, options.parent));
|
|
295
308
|
}
|
|
296
309
|
function getSysFolder(options) {
|
|
297
310
|
var sysFolder = new file_system_1.Folder({
|
|
298
311
|
name: 'sys',
|
|
299
312
|
permissions: 'drwxr-xr-x',
|
|
300
|
-
owner: 'root'
|
|
301
|
-
folders: [],
|
|
302
|
-
files: []
|
|
313
|
+
owner: 'root'
|
|
303
314
|
}, options.parent);
|
|
304
315
|
var newOptions = __assign(__assign({}, options), { parent: sysFolder });
|
|
305
316
|
sysFolder.files = getSysFiles(newOptions);
|
|
306
317
|
return sysFolder;
|
|
307
318
|
}
|
|
308
319
|
function getDefaultHomeFolders(options, owner) {
|
|
309
|
-
return
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
permissions: 'drwxr-----',
|
|
327
|
-
owner: owner,
|
|
328
|
-
folders: [],
|
|
329
|
-
files: []
|
|
330
|
-
}, options.parent),
|
|
331
|
-
new file_system_1.Folder({
|
|
332
|
-
name: '.Trash',
|
|
333
|
-
permissions: 'drwxr-----',
|
|
334
|
-
owner: owner,
|
|
335
|
-
folders: [],
|
|
336
|
-
files: []
|
|
337
|
-
}, options.parent)
|
|
338
|
-
];
|
|
320
|
+
return generateFolders(new file_system_1.Folder({
|
|
321
|
+
name: 'Desktop',
|
|
322
|
+
permissions: 'drwxr-----',
|
|
323
|
+
owner: owner
|
|
324
|
+
}, options.parent), new file_system_1.Folder({
|
|
325
|
+
name: 'Downloads',
|
|
326
|
+
permissions: 'drwxr-----',
|
|
327
|
+
owner: owner
|
|
328
|
+
}, options.parent), new file_system_1.Folder({
|
|
329
|
+
name: 'Config',
|
|
330
|
+
permissions: 'drwxr-----',
|
|
331
|
+
owner: owner
|
|
332
|
+
}, options.parent), new file_system_1.Folder({
|
|
333
|
+
name: '.Trash',
|
|
334
|
+
permissions: 'drwxr-----',
|
|
335
|
+
owner: owner
|
|
336
|
+
}, options.parent));
|
|
339
337
|
}
|
|
340
338
|
function getRootFolder(options) {
|
|
341
339
|
var rootFolder = new file_system_1.Folder({
|
|
342
340
|
name: 'root',
|
|
343
341
|
permissions: 'drwxr-----',
|
|
344
|
-
owner: 'root'
|
|
345
|
-
folders: [],
|
|
346
|
-
files: []
|
|
342
|
+
owner: 'root'
|
|
347
343
|
}, options.parent);
|
|
348
344
|
var newOptions = __assign(__assign({}, options), { parent: rootFolder });
|
|
349
345
|
rootFolder.folders = getDefaultHomeFolders(newOptions, 'root');
|
|
@@ -353,9 +349,7 @@ function getUserFolder(options, user) {
|
|
|
353
349
|
var userFolder = new file_system_1.Folder({
|
|
354
350
|
name: user,
|
|
355
351
|
permissions: 'drwxr-----',
|
|
356
|
-
owner: user
|
|
357
|
-
folders: [],
|
|
358
|
-
files: []
|
|
352
|
+
owner: user
|
|
359
353
|
}, options.parent);
|
|
360
354
|
var newOptions = __assign(__assign({}, options), { parent: userFolder });
|
|
361
355
|
userFolder.folders = getDefaultHomeFolders(newOptions, user);
|
|
@@ -366,9 +360,7 @@ function getGuestFolder(options) {
|
|
|
366
360
|
var guestFolder = new file_system_1.Folder({
|
|
367
361
|
name: 'guest',
|
|
368
362
|
permissions: 'drwxrwxrwx',
|
|
369
|
-
owner: 'guest'
|
|
370
|
-
folders: [],
|
|
371
|
-
files: []
|
|
363
|
+
owner: 'guest'
|
|
372
364
|
}, options.parent);
|
|
373
365
|
var newOptions = __assign(__assign({}, options), { parent: guestFolder });
|
|
374
366
|
guestFolder.folders = getDefaultHomeFolders(newOptions, 'guest');
|
|
@@ -378,86 +370,126 @@ function getHomeFolder(options) {
|
|
|
378
370
|
var homeFolder = new file_system_1.Folder({
|
|
379
371
|
name: 'home',
|
|
380
372
|
permissions: 'drwxr-xr-x',
|
|
381
|
-
owner: 'root'
|
|
382
|
-
folders: [],
|
|
383
|
-
files: []
|
|
373
|
+
owner: 'root'
|
|
384
374
|
}, options.parent);
|
|
385
375
|
var newOptions = __assign(__assign({}, options), { parent: homeFolder });
|
|
386
|
-
homeFolder.folders = __spreadArray(__spreadArray([], __read(options.users
|
|
376
|
+
homeFolder.folders = generateFolders.apply(void 0, __spreadArray(__spreadArray([], __read(options.users
|
|
387
377
|
.filter(function (v) { return v.username !== 'root'; })
|
|
388
|
-
.map(function (v) { return getUserFolder(newOptions, v.username); })), false), [
|
|
389
|
-
getGuestFolder(newOptions)
|
|
390
|
-
], false);
|
|
378
|
+
.map(function (v) { return getUserFolder(newOptions, v.username); })), false), [getGuestFolder(newOptions)], false));
|
|
391
379
|
return homeFolder;
|
|
392
380
|
}
|
|
393
381
|
function getVarFolder(options) {
|
|
394
382
|
return new file_system_1.Folder({
|
|
395
383
|
name: 'var',
|
|
396
384
|
permissions: 'drwxr-xr-x',
|
|
397
|
-
owner: 'root'
|
|
398
|
-
folders: [],
|
|
399
|
-
files: []
|
|
385
|
+
owner: 'root'
|
|
400
386
|
}, options.parent);
|
|
401
387
|
}
|
|
388
|
+
function getBinFiles(options) {
|
|
389
|
+
var files = [
|
|
390
|
+
['build', BinFiles.build],
|
|
391
|
+
['cat', BinFiles.cat],
|
|
392
|
+
['cp', BinFiles.cp],
|
|
393
|
+
['kill', BinFiles.kill],
|
|
394
|
+
['ls', BinFiles.ls],
|
|
395
|
+
['mkdir', BinFiles.mkdir],
|
|
396
|
+
['mv', BinFiles.mv],
|
|
397
|
+
['ps', BinFiles.ps],
|
|
398
|
+
['pwd', BinFiles.pwd],
|
|
399
|
+
['rm', BinFiles.rm],
|
|
400
|
+
['sudo', BinFiles.sudo],
|
|
401
|
+
['touch', BinFiles.touch],
|
|
402
|
+
['whoami', BinFiles.whoami],
|
|
403
|
+
['aircrack', BinFiles.aircrack],
|
|
404
|
+
['aireplay', BinFiles.aireplay],
|
|
405
|
+
['airmon', BinFiles.airmon],
|
|
406
|
+
['apt-get', BinFiles.aptGet],
|
|
407
|
+
['ftp', BinFiles.ftp],
|
|
408
|
+
['ifconfig', BinFiles.ifconfig],
|
|
409
|
+
['iwconfig', BinFiles.iwconfig],
|
|
410
|
+
['iwlist', BinFiles.iwlist],
|
|
411
|
+
['nmap', BinFiles.nmap],
|
|
412
|
+
['nslookup', BinFiles.nslookup],
|
|
413
|
+
['ping', BinFiles.ping],
|
|
414
|
+
['rshell-interface', BinFiles.rshellInterface],
|
|
415
|
+
['smtp-user-list', BinFiles.smtpUserList],
|
|
416
|
+
['sniffer', BinFiles.sniffer],
|
|
417
|
+
['ssh', BinFiles.ssh],
|
|
418
|
+
['whois', BinFiles.whois],
|
|
419
|
+
['chgrp', BinFiles.chgrp],
|
|
420
|
+
['chmod', BinFiles.chmod],
|
|
421
|
+
['chown', BinFiles.chown],
|
|
422
|
+
['groupadd', BinFiles.groupadd],
|
|
423
|
+
['groupdel', BinFiles.groupdel],
|
|
424
|
+
['groups', BinFiles.groups],
|
|
425
|
+
['passwd', BinFiles.passwd],
|
|
426
|
+
['useradd', BinFiles.useradd],
|
|
427
|
+
['userdel', BinFiles.userdel],
|
|
428
|
+
['decipher', BinFiles.decipher],
|
|
429
|
+
['scanlib', BinFiles.scanlib],
|
|
430
|
+
['scanrouter', BinFiles.scanrouter]
|
|
431
|
+
];
|
|
432
|
+
return generateFiles.apply(void 0, __spreadArray([], __read(files.map(function (_a) {
|
|
433
|
+
var _b = __read(_a, 2), name = _b[0], content = _b[1];
|
|
434
|
+
return new file_system_1.File({
|
|
435
|
+
name: name,
|
|
436
|
+
permissions: '-r-x--x--x',
|
|
437
|
+
owner: 'root',
|
|
438
|
+
type: file_system_1.FileType.Bin,
|
|
439
|
+
content: content
|
|
440
|
+
}, options.parent);
|
|
441
|
+
})), false));
|
|
442
|
+
}
|
|
402
443
|
function getBinFolder(options) {
|
|
403
|
-
|
|
444
|
+
var binFolder = new file_system_1.Folder({
|
|
404
445
|
name: 'bin',
|
|
405
446
|
permissions: 'drwxrwxr-x',
|
|
406
|
-
owner: 'root'
|
|
407
|
-
folders: [],
|
|
408
|
-
files: []
|
|
447
|
+
owner: 'root'
|
|
409
448
|
}, options.parent);
|
|
449
|
+
var newOptions = __assign(__assign({}, options), { parent: binFolder });
|
|
450
|
+
binFolder.files = getBinFiles(newOptions);
|
|
451
|
+
return binFolder;
|
|
410
452
|
}
|
|
411
453
|
function getUsrBinFolder(options) {
|
|
412
454
|
return new file_system_1.Folder({
|
|
413
455
|
name: 'bin',
|
|
414
456
|
permissions: 'drwxrwxr-x',
|
|
415
|
-
owner: 'root'
|
|
416
|
-
folders: [],
|
|
417
|
-
files: []
|
|
457
|
+
owner: 'root'
|
|
418
458
|
}, options.parent);
|
|
419
459
|
}
|
|
420
460
|
function getUsrFolder(options) {
|
|
421
461
|
var usrFolder = new file_system_1.Folder({
|
|
422
462
|
name: 'usr',
|
|
423
463
|
permissions: 'drwxrwxr-x',
|
|
424
|
-
owner: 'root'
|
|
425
|
-
folders: [],
|
|
426
|
-
files: []
|
|
464
|
+
owner: 'root'
|
|
427
465
|
}, options.parent);
|
|
428
466
|
var newOptions = __assign(__assign({}, options), { parent: usrFolder });
|
|
429
|
-
usrFolder.folders =
|
|
467
|
+
usrFolder.folders = generateFolders(getUsrBinFolder(newOptions));
|
|
430
468
|
return usrFolder;
|
|
431
469
|
}
|
|
432
470
|
function getBootFiles(options) {
|
|
433
|
-
return
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
owner: 'root',
|
|
450
|
-
type: file_system_1.FileType.System
|
|
451
|
-
}, options.parent)
|
|
452
|
-
];
|
|
471
|
+
return generateFiles(new file_system_1.File({
|
|
472
|
+
name: 'System.map',
|
|
473
|
+
permissions: '-rw-------',
|
|
474
|
+
owner: 'root',
|
|
475
|
+
type: file_system_1.FileType.System
|
|
476
|
+
}, options.parent), new file_system_1.File({
|
|
477
|
+
name: 'inittrd.img',
|
|
478
|
+
permissions: '-r--------',
|
|
479
|
+
owner: 'root',
|
|
480
|
+
type: file_system_1.FileType.System
|
|
481
|
+
}, options.parent), new file_system_1.File({
|
|
482
|
+
name: 'kernel.img',
|
|
483
|
+
permissions: '-r--------',
|
|
484
|
+
owner: 'root',
|
|
485
|
+
type: file_system_1.FileType.System
|
|
486
|
+
}, options.parent));
|
|
453
487
|
}
|
|
454
488
|
function getBootFolder(options) {
|
|
455
489
|
var bootFolder = new file_system_1.Folder({
|
|
456
490
|
name: 'sys',
|
|
457
491
|
permissions: 'drwxr-xr-x',
|
|
458
|
-
owner: 'root'
|
|
459
|
-
folders: [],
|
|
460
|
-
files: []
|
|
492
|
+
owner: 'root'
|
|
461
493
|
}, options.parent);
|
|
462
494
|
var newOptions = __assign(__assign({}, options), { parent: bootFolder });
|
|
463
495
|
bootFolder.files = getBootFiles(newOptions);
|
|
@@ -468,22 +500,10 @@ function getDefaultFileSystem(options) {
|
|
|
468
500
|
name: '',
|
|
469
501
|
permissions: 'drwxr--r--',
|
|
470
502
|
owner: 'root',
|
|
471
|
-
isProtected: true
|
|
472
|
-
files: [],
|
|
473
|
-
folders: []
|
|
503
|
+
isProtected: true
|
|
474
504
|
});
|
|
475
505
|
var newOptions = __assign(__assign({}, options), { parent: defaultSystem });
|
|
476
|
-
defaultSystem.folders =
|
|
477
|
-
getEtcFolder(newOptions),
|
|
478
|
-
getLibFolder(newOptions),
|
|
479
|
-
getSysFolder(newOptions),
|
|
480
|
-
getRootFolder(newOptions),
|
|
481
|
-
getHomeFolder(newOptions),
|
|
482
|
-
getVarFolder(newOptions),
|
|
483
|
-
getBinFolder(newOptions),
|
|
484
|
-
getUsrFolder(newOptions),
|
|
485
|
-
getBootFolder(newOptions)
|
|
486
|
-
];
|
|
506
|
+
defaultSystem.folders = generateFolders(getEtcFolder(newOptions), getLibFolder(newOptions), getSysFolder(newOptions), getRootFolder(newOptions), getHomeFolder(newOptions), getVarFolder(newOptions), getBinFolder(newOptions), getUsrFolder(newOptions), getBootFolder(newOptions));
|
|
487
507
|
return defaultSystem;
|
|
488
508
|
}
|
|
489
509
|
exports.getDefaultFileSystem = getDefaultFileSystem;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { RandomSeed } from 'random-seed';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { Computer, MetaOwnerLevel, NetworkDevice, Port, Router, Switch, User } from '../types';
|
|
3
|
+
import { RouterOptions } from '../types/router';
|
|
4
|
+
import { SwitchOptions } from '../types/switch';
|
|
4
5
|
import BasicGenerator from './basic';
|
|
5
6
|
import EmailGenerator from './email';
|
|
6
7
|
import UserGenerator from './user';
|
|
@@ -21,7 +22,7 @@ export declare class ServerMapGenerator {
|
|
|
21
22
|
portRng: RandomSeed;
|
|
22
23
|
constructor({ router, networkRng, portRng, basicGenerator, userGenerator, networkGenerator }: ServerMapGeneratorOptions);
|
|
23
24
|
generateLocalIp(router: Router): string;
|
|
24
|
-
generateSwitch(options?: Partial<
|
|
25
|
+
generateSwitch(options?: Partial<SwitchOptions>): Switch;
|
|
25
26
|
generateComputer(router: Router, users: User[], rootPassword?: string): Computer;
|
|
26
27
|
generateLocalComputer(users: User[], rootPassword?: string): Computer;
|
|
27
28
|
generatePorts(router: Router): Map<number, Port>;
|
|
@@ -41,8 +42,8 @@ export default class NetworkGenerator {
|
|
|
41
42
|
serverMap: Map<string, ServerMapGenerator>;
|
|
42
43
|
constructor({ seed, basicGenerator, userGenerator, emailGenerator }: NetworkGeneratorOptions);
|
|
43
44
|
generateIp(): string;
|
|
44
|
-
generateDifficulty():
|
|
45
|
+
generateDifficulty(): MetaOwnerLevel;
|
|
45
46
|
generateLocalComputer(users: User[], rootPassword?: string): Computer;
|
|
46
|
-
generateRouter(options?: Partial<
|
|
47
|
+
generateRouter(options?: Partial<RouterOptions>): Router;
|
|
47
48
|
generateNetworkDevice(): NetworkDevice;
|
|
48
49
|
}
|