greybel-mock-environment 1.1.0 → 1.1.2
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 +5 -6
- package/dist/environment.js +34 -27
- package/dist/fs.d.ts +3 -36
- package/dist/fs.js +127 -520
- package/dist/index.d.ts +3 -2
- package/dist/index.js +5 -5
- package/dist/mock-transpiler.d.ts +15 -0
- package/dist/mock-transpiler.js +493 -0
- package/dist/types/computer.d.ts +8 -0
- package/dist/types/computer.js +45 -0
- package/dist/types/file-system.d.ts +25 -2
- package/dist/types/file-system.js +201 -2
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +3 -1
- package/dist/types/session.d.ts +14 -0
- package/dist/types/session.js +18 -0
- package/dist/types/user.d.ts +1 -0
- package/dist/types/user.js +4 -0
- package/dist/utils.d.ts +18 -0
- package/dist/utils.js +101 -1
- package/package.json +2 -1
package/dist/environment.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ 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,
|
|
6
|
+
import { Computer, EMail, Port, Router, Session, Switch } from './types';
|
|
7
7
|
export default class MockEnvironment {
|
|
8
8
|
seed: string;
|
|
9
9
|
basicGenerator: BasicGenerator;
|
|
@@ -11,7 +11,8 @@ export default class MockEnvironment {
|
|
|
11
11
|
userGenerator: UserGenerator;
|
|
12
12
|
vulnerabilityGenerator: VulnerabilityGenerator;
|
|
13
13
|
networkGenerator: NetworkGenerator;
|
|
14
|
-
|
|
14
|
+
sessions: Session[];
|
|
15
|
+
localSession: Session;
|
|
15
16
|
constructor(seed: string, localUser: {
|
|
16
17
|
username: string;
|
|
17
18
|
password: string;
|
|
@@ -25,10 +26,8 @@ export default class MockEnvironment {
|
|
|
25
26
|
computer: Computer;
|
|
26
27
|
} | null;
|
|
27
28
|
setupLibraries(): void;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
user: User;
|
|
31
|
-
};
|
|
29
|
+
getLatestSession(): Session;
|
|
30
|
+
getLocal(): Session;
|
|
32
31
|
connectLocal(router: Router): void;
|
|
33
32
|
getRouterByIp(ipAddress: string): Router | null;
|
|
34
33
|
getSwitchByIp(ipAddress: string): Switch | null;
|
package/dist/environment.js
CHANGED
|
@@ -40,28 +40,37 @@ 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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
var me = this;
|
|
44
|
+
me.seed = seed;
|
|
45
|
+
me.basicGenerator = new basic_1.default({ seed: seed });
|
|
46
|
+
me.emailGenerator = new email_1.default({
|
|
46
47
|
seed: seed,
|
|
47
|
-
basicGenerator:
|
|
48
|
+
basicGenerator: me.basicGenerator
|
|
48
49
|
});
|
|
49
|
-
|
|
50
|
+
me.userGenerator = new user_1.default({
|
|
50
51
|
seed: seed,
|
|
51
|
-
basicGenerator:
|
|
52
|
-
emailGenerator:
|
|
52
|
+
basicGenerator: me.basicGenerator,
|
|
53
|
+
emailGenerator: me.emailGenerator
|
|
53
54
|
});
|
|
54
|
-
|
|
55
|
+
me.vulnerabilityGenerator = new vulnerability_1.default({
|
|
55
56
|
seed: seed,
|
|
56
|
-
basicGenerator:
|
|
57
|
+
basicGenerator: me.basicGenerator
|
|
57
58
|
});
|
|
58
|
-
|
|
59
|
+
me.networkGenerator = new network_1.default({
|
|
59
60
|
seed: seed,
|
|
60
|
-
basicGenerator:
|
|
61
|
-
userGenerator:
|
|
62
|
-
emailGenerator:
|
|
61
|
+
basicGenerator: me.basicGenerator,
|
|
62
|
+
userGenerator: me.userGenerator,
|
|
63
|
+
emailGenerator: me.emailGenerator
|
|
64
|
+
});
|
|
65
|
+
var user = me.userGenerator.generate(localUser.username, localUser.password);
|
|
66
|
+
var computer = me.networkGenerator.generateLocalComputer([user], 'test');
|
|
67
|
+
var location = computer.getHome(user);
|
|
68
|
+
me.localSession = new types_1.Session({
|
|
69
|
+
user: user,
|
|
70
|
+
computer: computer,
|
|
71
|
+
location: location
|
|
63
72
|
});
|
|
64
|
-
|
|
73
|
+
me.sessions.push(me.localSession);
|
|
65
74
|
}
|
|
66
75
|
MockEnvironment.prototype.getComputerInLan = function (ipAddress, router) {
|
|
67
76
|
var me = this;
|
|
@@ -135,13 +144,11 @@ var MockEnvironment = /** @class */ (function () {
|
|
|
135
144
|
remote: true
|
|
136
145
|
});
|
|
137
146
|
};
|
|
147
|
+
MockEnvironment.prototype.getLatestSession = function () {
|
|
148
|
+
return this.sessions[this.sessions.length - 1];
|
|
149
|
+
};
|
|
138
150
|
MockEnvironment.prototype.getLocal = function () {
|
|
139
|
-
|
|
140
|
-
var user = computer.users[1];
|
|
141
|
-
return {
|
|
142
|
-
computer: computer,
|
|
143
|
-
user: user
|
|
144
|
-
};
|
|
151
|
+
return this.localSession;
|
|
145
152
|
};
|
|
146
153
|
MockEnvironment.prototype.connectLocal = function (router) {
|
|
147
154
|
var me = this;
|
|
@@ -149,15 +156,15 @@ var MockEnvironment = /** @class */ (function () {
|
|
|
149
156
|
if (!serverMap.has(router.publicIp)) {
|
|
150
157
|
throw new Error("Router with ip ".concat(router.publicIp, " is unknown in serverMap."));
|
|
151
158
|
}
|
|
152
|
-
var
|
|
153
|
-
if (
|
|
154
|
-
|
|
159
|
+
var computer = me.localSession.computer;
|
|
160
|
+
if (computer.router) {
|
|
161
|
+
computer.router.devices.delete(computer.localIp);
|
|
155
162
|
}
|
|
156
163
|
var serverMapGenerator = serverMap.get(router.publicIp);
|
|
157
164
|
var localIp = serverMapGenerator.generateLocalIp(router);
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
router.devices.set(localIp,
|
|
165
|
+
computer.router = router;
|
|
166
|
+
computer.localIp = localIp;
|
|
167
|
+
router.devices.set(localIp, computer);
|
|
161
168
|
};
|
|
162
169
|
MockEnvironment.prototype.getRouterByIp = function (ipAddress) {
|
|
163
170
|
var me = this;
|
|
@@ -178,7 +185,7 @@ var MockEnvironment = /** @class */ (function () {
|
|
|
178
185
|
if (!(0, utils_1.isValidIp)(ipAddress) || !(0, utils_1.isLanIp)(ipAddress)) {
|
|
179
186
|
return null;
|
|
180
187
|
}
|
|
181
|
-
var localRouter = me.
|
|
188
|
+
var localRouter = me.getLatestSession().computer.router;
|
|
182
189
|
try {
|
|
183
190
|
for (var _b = __values(localRouter.devices), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
184
191
|
var _d = __read(_c.value, 2), localIp = _d[0], device = _d[1];
|
package/dist/fs.d.ts
CHANGED
|
@@ -1,36 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare function getUserFolder(parent:
|
|
3
|
-
export declare function getDefaultFileSystem(users:
|
|
4
|
-
export interface PermissionSegment {
|
|
5
|
-
x: boolean;
|
|
6
|
-
w: boolean;
|
|
7
|
-
r: boolean;
|
|
8
|
-
}
|
|
9
|
-
export interface PermissionMap {
|
|
10
|
-
u: PermissionSegment;
|
|
11
|
-
g: PermissionSegment;
|
|
12
|
-
o: PermissionSegment;
|
|
13
|
-
}
|
|
14
|
-
export declare function getPermissionSegmentValueByString(flag: PermissionSegment, flagType: string): boolean;
|
|
15
|
-
export declare function setPermissionSegmentValueByString(flag: PermissionSegment, flagType: string, value: boolean): void;
|
|
16
|
-
export declare function getPermissionSegmentByString(flag: PermissionMap, userType: string): PermissionSegment;
|
|
17
|
-
export declare function transformFlagsToPermissions(permissionMap: PermissionMap): string;
|
|
18
|
-
export declare function parsePermissions(file: Type.FSEntity): PermissionMap;
|
|
19
|
-
export declare function getPermissions(user: Type.User, file: Type.FSEntity): PermissionSegment;
|
|
20
|
-
export declare function getFile(entity: Type.FSEntity, path: string[]): Type.FSEntity | null;
|
|
21
|
-
export declare function hasFile(folder: Type.Folder, fileName: string): boolean;
|
|
22
|
-
export declare function getFileIndex(folder: Type.Folder, fileName: string): {
|
|
23
|
-
isFolder: boolean;
|
|
24
|
-
index: number;
|
|
25
|
-
};
|
|
26
|
-
export declare function putFile(folder: Type.Folder, file: Type.File): void;
|
|
27
|
-
export declare function removeFile(folder: Type.Folder, fileName: string): boolean;
|
|
28
|
-
export declare function traverseChildren(entity: Type.FSEntity, callback: (v: Type.FSEntity) => void, skip?: boolean): void;
|
|
29
|
-
export declare function copyFile(entity: Type.FSEntity, parent: Type.FSEntity): Type.FSEntity;
|
|
30
|
-
export declare function getHomePath(user: Type.User, computer: Type.Computer): string[] | null;
|
|
31
|
-
export declare function getFilePath(entity: Type.FSEntity): string[] | null;
|
|
32
|
-
export declare function getTraversalPath(path: string | null, currentLocation: string[] | null): null | string[];
|
|
33
|
-
export declare function getFileLibrary(file: Type.File): Type.Library | null;
|
|
34
|
-
export declare function getServiceLibrary(service: Type.Service): Type.Library | null;
|
|
35
|
-
export declare function getUserByVulnerability(vulActionUser: Type.VulnerabilityActionUser, computer: Type.Computer): Type.User;
|
|
36
|
-
export declare function changePassword(computer: Type.Computer, username: string, password: string): boolean;
|
|
1
|
+
import { Folder, FSEntity, User } from './types';
|
|
2
|
+
export declare function getUserFolder(parent: FSEntity, user: string): Folder;
|
|
3
|
+
export declare function getDefaultFileSystem(users: User[]): Folder;
|