greybel-mock-environment 1.2.3 → 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.d.ts +9 -1
- package/dist/environment.js +50 -12
- package/dist/fs.d.ts +7 -19
- package/dist/fs.js +217 -197
- package/dist/generators/basic.d.ts +3 -0
- package/dist/generators/basic.js +8 -0
- package/dist/generators/network.d.ts +6 -7
- package/dist/generators/network.js +52 -39
- package/dist/index.d.ts +1 -1
- 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 +26 -7
- package/dist/types/device.js +157 -17
- package/dist/types/file-system.d.ts +19 -15
- package/dist/types/file-system.js +116 -72
- package/dist/types/index.d.ts +4 -1
- package/dist/types/index.js +12 -3
- package/dist/types/location.d.ts +11 -0
- package/dist/types/location.js +23 -0
- package/dist/types/meta-info.d.ts +27 -0
- package/dist/types/meta-info.js +31 -0
- package/dist/types/net-card.d.ts +5 -0
- package/dist/types/net-card.js +9 -0
- package/dist/types/network-device.d.ts +3 -2
- package/dist/types/process.d.ts +16 -0
- package/dist/types/process.js +22 -0
- package/dist/types/router.d.ts +12 -2
- package/dist/types/router.js +12 -2
- package/dist/types/switch.d.ts +2 -2
- package/dist/types/switch.js +2 -2
- package/dist/types/user.d.ts +2 -2
- package/dist/utils.d.ts +5 -3
- package/dist/utils.js +21 -8
- package/package.json +1 -1
- package/dist/types/wifi-network.d.ts +0 -16
- package/dist/types/wifi-network.js +0 -14
package/dist/environment.d.ts
CHANGED
|
@@ -3,8 +3,14 @@ import EmailGenerator from './generators/email';
|
|
|
3
3
|
import NetworkGenerator from './generators/network';
|
|
4
4
|
import UserGenerator from './generators/user';
|
|
5
5
|
import VulnerabilityGenerator from './generators/vulnerability';
|
|
6
|
-
import { Computer, EMail, Port, Router, Session, Switch } from './types';
|
|
6
|
+
import { Computer, Device, EMail, Location, Port, Router, Session, Switch } from './types';
|
|
7
|
+
export interface RouterLocation {
|
|
8
|
+
distance: number;
|
|
9
|
+
percentage: number;
|
|
10
|
+
router: Router;
|
|
11
|
+
}
|
|
7
12
|
export default class MockEnvironment {
|
|
13
|
+
readonly WIFI_MAX_DISTANCE: number;
|
|
8
14
|
seed: string;
|
|
9
15
|
basicGenerator: BasicGenerator;
|
|
10
16
|
emailGenerator: EmailGenerator;
|
|
@@ -29,7 +35,9 @@ export default class MockEnvironment {
|
|
|
29
35
|
setupLocalSession(username: string, password: string): void;
|
|
30
36
|
getLatestSession(): Session;
|
|
31
37
|
getLocal(): Session;
|
|
38
|
+
connect(router: Router, device: Device): void;
|
|
32
39
|
connectLocal(router: Router): void;
|
|
40
|
+
findRoutersCloseToLocation(loc: Location): RouterLocation[];
|
|
33
41
|
getRouterByIp(ipAddress: string): Router | null;
|
|
34
42
|
getSwitchByIp(ipAddress: string): Switch | null;
|
|
35
43
|
findRouterViaNS(name: string): Router;
|
package/dist/environment.js
CHANGED
|
@@ -40,6 +40,7 @@ var utils_1 = require("./utils");
|
|
|
40
40
|
var MockEnvironment = /** @class */ (function () {
|
|
41
41
|
function MockEnvironment(seed, localUser) {
|
|
42
42
|
if (seed === void 0) { seed = 'test'; }
|
|
43
|
+
this.WIFI_MAX_DISTANCE = 10;
|
|
43
44
|
var me = this;
|
|
44
45
|
me.seed = seed;
|
|
45
46
|
me.basicGenerator = new basic_1.default({ seed: seed });
|
|
@@ -149,7 +150,7 @@ var MockEnvironment = /** @class */ (function () {
|
|
|
149
150
|
isProtected: true,
|
|
150
151
|
type: types_1.FileType.Bin
|
|
151
152
|
});
|
|
152
|
-
currentPath.
|
|
153
|
+
currentPath.putEntity(programPath);
|
|
153
154
|
me.localSession = new types_1.Session({
|
|
154
155
|
user: user,
|
|
155
156
|
computer: computer,
|
|
@@ -164,21 +165,58 @@ var MockEnvironment = /** @class */ (function () {
|
|
|
164
165
|
MockEnvironment.prototype.getLocal = function () {
|
|
165
166
|
return this.localSession;
|
|
166
167
|
};
|
|
167
|
-
MockEnvironment.prototype.
|
|
168
|
+
MockEnvironment.prototype.connect = function (router, device) {
|
|
169
|
+
if (!(device instanceof types_1.Computer) && !(device instanceof types_1.Switch)) {
|
|
170
|
+
throw new Error('Cannot connect router to router.');
|
|
171
|
+
}
|
|
172
|
+
if (device.router) {
|
|
173
|
+
device.router.devices.delete(device.localIp);
|
|
174
|
+
}
|
|
168
175
|
var me = this;
|
|
169
176
|
var serverMap = me.networkGenerator.serverMap;
|
|
170
177
|
if (!serverMap.has(router.publicIp)) {
|
|
171
178
|
throw new Error("Router with ip ".concat(router.publicIp, " is unknown in serverMap."));
|
|
172
179
|
}
|
|
173
|
-
var computer = me.localSession.computer;
|
|
174
|
-
if (computer.router) {
|
|
175
|
-
computer.router.devices.delete(computer.localIp);
|
|
176
|
-
}
|
|
177
180
|
var serverMapGenerator = serverMap.get(router.publicIp);
|
|
178
181
|
var localIp = serverMapGenerator.generateLocalIp(router);
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
router.devices.set(localIp,
|
|
182
|
+
device.router = router;
|
|
183
|
+
device.localIp = localIp;
|
|
184
|
+
router.devices.set(localIp, device);
|
|
185
|
+
};
|
|
186
|
+
MockEnvironment.prototype.connectLocal = function (router) {
|
|
187
|
+
this.connect(router, this.localSession.computer);
|
|
188
|
+
};
|
|
189
|
+
MockEnvironment.prototype.findRoutersCloseToLocation = function (loc) {
|
|
190
|
+
var e_1, _a;
|
|
191
|
+
var me = this;
|
|
192
|
+
var getDistance = function (routerLoc) {
|
|
193
|
+
var y = routerLoc.x - loc.x;
|
|
194
|
+
var x = routerLoc.y - loc.y;
|
|
195
|
+
return Math.sqrt(x * x + y * y);
|
|
196
|
+
};
|
|
197
|
+
var result = [];
|
|
198
|
+
try {
|
|
199
|
+
for (var _b = __values(me.networkGenerator.serverMap.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
200
|
+
var serverMapGenerator = _c.value;
|
|
201
|
+
var distance = getDistance(serverMapGenerator.router.location);
|
|
202
|
+
if (distance < me.WIFI_MAX_DISTANCE) {
|
|
203
|
+
var percentage = Math.round(((me.WIFI_MAX_DISTANCE - distance) * 100) / me.WIFI_MAX_DISTANCE);
|
|
204
|
+
result.push({
|
|
205
|
+
percentage: percentage,
|
|
206
|
+
distance: distance,
|
|
207
|
+
router: serverMapGenerator.router
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
213
|
+
finally {
|
|
214
|
+
try {
|
|
215
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
216
|
+
}
|
|
217
|
+
finally { if (e_1) throw e_1.error; }
|
|
218
|
+
}
|
|
219
|
+
return result;
|
|
182
220
|
};
|
|
183
221
|
MockEnvironment.prototype.getRouterByIp = function (ipAddress) {
|
|
184
222
|
var me = this;
|
|
@@ -194,7 +232,7 @@ var MockEnvironment = /** @class */ (function () {
|
|
|
194
232
|
});
|
|
195
233
|
};
|
|
196
234
|
MockEnvironment.prototype.getSwitchByIp = function (ipAddress) {
|
|
197
|
-
var
|
|
235
|
+
var e_2, _a;
|
|
198
236
|
var me = this;
|
|
199
237
|
if (!(0, utils_1.isValidIp)(ipAddress) || !(0, utils_1.isLanIp)(ipAddress)) {
|
|
200
238
|
return null;
|
|
@@ -208,12 +246,12 @@ var MockEnvironment = /** @class */ (function () {
|
|
|
208
246
|
}
|
|
209
247
|
}
|
|
210
248
|
}
|
|
211
|
-
catch (
|
|
249
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
212
250
|
finally {
|
|
213
251
|
try {
|
|
214
252
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
215
253
|
}
|
|
216
|
-
finally { if (
|
|
254
|
+
finally { if (e_2) throw e_2.error; }
|
|
217
255
|
}
|
|
218
256
|
return null;
|
|
219
257
|
};
|
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;
|