greybel-mock-environment 1.1.9 → 1.2.1

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/fs.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { Entity, Folder } from './types/file-system';
1
+ import { Service } from './types';
2
+ import { Entity, File, Folder } from './types/file-system';
2
3
  import { Port } from './types/port';
3
4
  import { User } from './types/user';
4
5
  export declare enum FSDeviceOwnerType {
@@ -24,5 +25,6 @@ export interface FSOptions {
24
25
  parent?: Entity;
25
26
  ports?: Map<number, Port>;
26
27
  }
28
+ export declare function getLibraryFile(service: Service, parent?: Entity): File;
27
29
  export declare function getUserFolder(options: FSOptions, user: string): Folder;
28
30
  export declare function getDefaultFileSystem(options: FSOptions): Folder;
package/dist/fs.js CHANGED
@@ -47,7 +47,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
47
47
  return to.concat(ar || Array.prototype.slice.call(from));
48
48
  };
49
49
  Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.getDefaultFileSystem = exports.getUserFolder = exports.FSDeviceType = exports.FSCreationVariation = exports.FSDeviceOwnerType = void 0;
50
+ exports.getDefaultFileSystem = exports.getUserFolder = exports.getLibraryFile = exports.FSDeviceType = exports.FSCreationVariation = exports.FSDeviceOwnerType = void 0;
51
51
  var types_1 = require("./types");
52
52
  var file_system_1 = require("./types/file-system");
53
53
  var FSDeviceOwnerType;
@@ -91,6 +91,48 @@ function getEtcAptFolder(options) {
91
91
  aptFolder.files = getEtcAptFiles(newOptions);
92
92
  return aptFolder;
93
93
  }
94
+ function getLibraryFile(service, parent) {
95
+ switch (service) {
96
+ case types_1.Service.SSH: {
97
+ return new file_system_1.File({
98
+ name: 'ssh.so',
99
+ permissions: '-rw-r--r--',
100
+ owner: 'root',
101
+ type: file_system_1.FileType.SSH,
102
+ version: '1.0.0.0'
103
+ }, parent);
104
+ }
105
+ case types_1.Service.FTP: {
106
+ return new file_system_1.File({
107
+ name: 'ftp.so',
108
+ permissions: '-rw-r--r--',
109
+ owner: 'root',
110
+ type: file_system_1.FileType.FTP,
111
+ version: '1.0.0.0'
112
+ }, parent);
113
+ }
114
+ case types_1.Service.HTTP: {
115
+ return new file_system_1.File({
116
+ name: 'http.so',
117
+ permissions: '-rw-r--r--',
118
+ owner: 'root',
119
+ type: file_system_1.FileType.HTTP,
120
+ version: '1.0.0.0'
121
+ }, parent);
122
+ }
123
+ case types_1.Service.RSHELL: {
124
+ return new file_system_1.File({
125
+ name: 'rshell.so',
126
+ permissions: '-rw-r--r--',
127
+ owner: 'root',
128
+ type: file_system_1.FileType.RShell,
129
+ version: '1.0.0.0'
130
+ }, parent);
131
+ }
132
+ }
133
+ return null;
134
+ }
135
+ exports.getLibraryFile = getLibraryFile;
94
136
  function getEtcFiles(options) {
95
137
  return [
96
138
  new file_system_1.File({
@@ -202,47 +244,9 @@ function getLibFiles(options) {
202
244
  try {
203
245
  for (var services_1 = __values(services), services_1_1 = services_1.next(); !services_1_1.done; services_1_1 = services_1.next()) {
204
246
  var service = services_1_1.value;
205
- switch (service) {
206
- case types_1.Service.SSH: {
207
- libFiles.push(new file_system_1.File({
208
- name: 'ssh.so',
209
- permissions: '-rw-r--r--',
210
- owner: 'root',
211
- type: file_system_1.FileType.SSH,
212
- version: '1.0.0.0'
213
- }, options.parent));
214
- break;
215
- }
216
- case types_1.Service.FTP: {
217
- libFiles.push(new file_system_1.File({
218
- name: 'ftp.so',
219
- permissions: '-rw-r--r--',
220
- owner: 'root',
221
- type: file_system_1.FileType.FTP,
222
- version: '1.0.0.0'
223
- }, options.parent));
224
- break;
225
- }
226
- case types_1.Service.HTTP: {
227
- libFiles.push(new file_system_1.File({
228
- name: 'http.so',
229
- permissions: '-rw-r--r--',
230
- owner: 'root',
231
- type: file_system_1.FileType.HTTP,
232
- version: '1.0.0.0'
233
- }, options.parent));
234
- break;
235
- }
236
- case types_1.Service.RSHELL: {
237
- libFiles.push(new file_system_1.File({
238
- name: 'rshell.so',
239
- permissions: '-rw-r--r--',
240
- owner: 'root',
241
- type: file_system_1.FileType.RShell,
242
- version: '1.0.0.0'
243
- }, options.parent));
244
- break;
245
- }
247
+ var file = getLibraryFile(service, options.parent);
248
+ if (file !== null) {
249
+ libFiles.push(file);
246
250
  }
247
251
  }
248
252
  }
@@ -1,5 +1,6 @@
1
1
  import { FSDeviceType } from '../fs';
2
2
  import { Device, DeviceOptions } from './device';
3
+ import { Port } from './port';
3
4
  import { Router } from './router';
4
5
  export interface ComputerOptions extends DeviceOptions {
5
6
  router?: Router;
@@ -9,5 +10,6 @@ export declare class Computer extends Device {
9
10
  constructor(options: ComputerOptions);
10
11
  getDeviceType(): FSDeviceType;
11
12
  getRouter(): Device;
13
+ addPort(port: Port): void;
12
14
  findByLanIp(ip: string): Device;
13
15
  }
@@ -31,6 +31,10 @@ var Computer = /** @class */ (function (_super) {
31
31
  Computer.prototype.getRouter = function () {
32
32
  return this.router;
33
33
  };
34
+ Computer.prototype.addPort = function (port) {
35
+ _super.prototype.addPort.call(this, port);
36
+ this.router.ports.set(port.port, port);
37
+ };
34
38
  Computer.prototype.findByLanIp = function (ip) {
35
39
  return this.getRouter().findByLanIp(ip);
36
40
  };
@@ -31,6 +31,7 @@ export declare class Device {
31
31
  changePassword(username: string, password: string): boolean;
32
32
  getUserByVulnerability(vulActionUser: VulnerabilityActionUser): User;
33
33
  findPort(portNumber: number): Port;
34
+ addPort(port: Port): void;
34
35
  findLibraryFileByPort(port: Port): File;
35
36
  getKernel(): File;
36
37
  }
@@ -113,6 +113,16 @@ var Device = /** @class */ (function () {
113
113
  }
114
114
  return null;
115
115
  };
116
+ Device.prototype.addPort = function (port) {
117
+ this.ports.set(port.port, port);
118
+ var addedPort = this.ports.get(port.port);
119
+ var libFolder = this.getFile(['lib']);
120
+ if (!(libFolder instanceof file_system_1.Folder)) {
121
+ return;
122
+ }
123
+ var libaryFile = (0, fs_1.getLibraryFile)(addedPort.service, libFolder);
124
+ libFolder.putFile(libaryFile);
125
+ };
116
126
  Device.prototype.findLibraryFileByPort = function (port) {
117
127
  var _this = this;
118
128
  var get = function (fileName, type) {
@@ -1,6 +1,7 @@
1
1
  import { FSDeviceType } from '../fs';
2
2
  import { Computer } from './computer';
3
3
  import { Device, DeviceOptions } from './device';
4
+ import { Port } from './port';
4
5
  export interface RouterOptions extends DeviceOptions {
5
6
  bssid: string;
6
7
  essid: string;
@@ -20,4 +21,5 @@ export declare class Router extends Device {
20
21
  getRouter(): Device;
21
22
  findByLanIp(ip: string): Device;
22
23
  getComputers(): Computer[];
24
+ findDeviceByPort(port: Port): Device;
23
25
  }
@@ -89,6 +89,26 @@ var Router = /** @class */ (function (_super) {
89
89
  return item instanceof computer_1.Computer;
90
90
  });
91
91
  };
92
+ Router.prototype.findDeviceByPort = function (port) {
93
+ var e_2, _a;
94
+ try {
95
+ for (var _b = __values(this.devices.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
96
+ var device = _c.value;
97
+ var p = device.findPort(port.port);
98
+ if (p !== null) {
99
+ return device;
100
+ }
101
+ }
102
+ }
103
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
104
+ finally {
105
+ try {
106
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
107
+ }
108
+ finally { if (e_2) throw e_2.error; }
109
+ }
110
+ return null;
111
+ };
92
112
  return Router;
93
113
  }(device_1.Device));
94
114
  exports.Router = Router;
@@ -1,5 +1,6 @@
1
1
  import { FSDeviceType } from '../fs';
2
2
  import { Device } from './device';
3
+ import { Port } from './port';
3
4
  import { Router, RouterOptions } from './router';
4
5
  export interface SwitchOptions extends RouterOptions {
5
6
  router: Router;
@@ -7,6 +8,7 @@ export interface SwitchOptions extends RouterOptions {
7
8
  export declare class Switch extends Router {
8
9
  router?: Router;
9
10
  constructor(options: SwitchOptions);
11
+ addPort(port: Port): void;
10
12
  getDeviceType(): FSDeviceType;
11
13
  getRouter(): Device;
12
14
  }
@@ -25,6 +25,10 @@ var Switch = /** @class */ (function (_super) {
25
25
  _this.router = options.router;
26
26
  return _this;
27
27
  }
28
+ Switch.prototype.addPort = function (port) {
29
+ _super.prototype.addPort.call(this, port);
30
+ this.router.ports.set(port.port, port);
31
+ };
28
32
  Switch.prototype.getDeviceType = function () {
29
33
  return fs_1.FSDeviceType.Switch;
30
34
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "greybel-mock-environment",
3
- "version": "1.1.9",
3
+ "version": "1.2.1",
4
4
  "description": "Mock environment",
5
5
  "main": "dist/index",
6
6
  "typings": "dist/index",