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.
@@ -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, Switch, User } from './types';
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
- localComputer: Computer;
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
- getLocal(): {
29
- computer: Computer;
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;
@@ -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
- this.seed = seed;
44
- this.basicGenerator = new basic_1.default({ seed: seed });
45
- this.emailGenerator = new email_1.default({
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: this.basicGenerator
48
+ basicGenerator: me.basicGenerator
48
49
  });
49
- this.userGenerator = new user_1.default({
50
+ me.userGenerator = new user_1.default({
50
51
  seed: seed,
51
- basicGenerator: this.basicGenerator,
52
- emailGenerator: this.emailGenerator
52
+ basicGenerator: me.basicGenerator,
53
+ emailGenerator: me.emailGenerator
53
54
  });
54
- this.vulnerabilityGenerator = new vulnerability_1.default({
55
+ me.vulnerabilityGenerator = new vulnerability_1.default({
55
56
  seed: seed,
56
- basicGenerator: this.basicGenerator
57
+ basicGenerator: me.basicGenerator
57
58
  });
58
- this.networkGenerator = new network_1.default({
59
+ me.networkGenerator = new network_1.default({
59
60
  seed: seed,
60
- basicGenerator: this.basicGenerator,
61
- userGenerator: this.userGenerator,
62
- emailGenerator: this.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
- this.localComputer = this.networkGenerator.generateLocalComputer([this.userGenerator.generate(localUser.username, localUser.password)], 'test');
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
- var computer = this.localComputer;
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 localComputer = me.localComputer;
153
- if (localComputer.router) {
154
- localComputer.router.devices.delete(localComputer.localIp);
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
- localComputer.router = router;
159
- localComputer.localIp = localIp;
160
- router.devices.set(localIp, localComputer);
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.localComputer.router;
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 * as Type from './types';
2
- export declare function getUserFolder(parent: Type.FSEntity, user: string): Type.Folder;
3
- export declare function getDefaultFileSystem(users: Type.User[]): Type.Folder;
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;