greybel-mock-environment 1.0.9 → 1.1.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/environment.d.ts +5 -6
- package/dist/environment.js +34 -27
- package/dist/{default-fs.d.ts → fs.d.ts} +0 -0
- package/dist/{default-fs.js → fs.js} +125 -181
- package/dist/generators/network.js +5 -5
- package/dist/index.d.ts +2 -1
- package/dist/index.js +4 -2
- 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];
|
|
File without changes
|
|
@@ -29,307 +29,265 @@ exports.getDefaultFileSystem = exports.getUserFolder = void 0;
|
|
|
29
29
|
var types_1 = require("./types");
|
|
30
30
|
function getEtcAptFiles(parent) {
|
|
31
31
|
return [
|
|
32
|
-
{
|
|
32
|
+
new types_1.File({
|
|
33
33
|
name: 'sources.txt',
|
|
34
34
|
permissions: '-rw-r-----',
|
|
35
35
|
owner: 'root',
|
|
36
36
|
content: "{\n\t\t\t\"official_server\": true,\n\t\t\t\"sourceList\": {}\n\t\t}",
|
|
37
|
-
type: types_1.FileType.Plain
|
|
38
|
-
|
|
39
|
-
}
|
|
37
|
+
type: types_1.FileType.Plain
|
|
38
|
+
}, parent)
|
|
40
39
|
];
|
|
41
40
|
}
|
|
42
41
|
function getEtcAptFolder(parent) {
|
|
43
|
-
var aptFolder = {
|
|
42
|
+
var aptFolder = new types_1.Folder({
|
|
44
43
|
name: 'apt',
|
|
45
44
|
permissions: 'drwxr-x---',
|
|
46
45
|
owner: 'root',
|
|
47
|
-
isFolder: true,
|
|
48
46
|
folders: [],
|
|
49
|
-
files: []
|
|
50
|
-
|
|
51
|
-
};
|
|
47
|
+
files: []
|
|
48
|
+
}, parent);
|
|
52
49
|
aptFolder.files = getEtcAptFiles(aptFolder);
|
|
53
50
|
return aptFolder;
|
|
54
51
|
}
|
|
55
52
|
function getEtcFiles(parent, users) {
|
|
56
53
|
return [
|
|
57
|
-
{
|
|
54
|
+
new types_1.File({
|
|
58
55
|
name: 'passwd',
|
|
59
56
|
permissions: '-rw-r-----',
|
|
60
57
|
owner: 'root',
|
|
61
|
-
content: users
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
58
|
+
content: users
|
|
59
|
+
.map(function (v) { return "".concat(v.username, ":").concat(v.passwordHashed); })
|
|
60
|
+
.join('\n'),
|
|
61
|
+
type: types_1.FileType.Plain
|
|
62
|
+
}, parent),
|
|
63
|
+
new types_1.File({
|
|
66
64
|
name: 'xorg.conf',
|
|
67
65
|
permissions: '-rw-r-----',
|
|
68
66
|
owner: 'root',
|
|
69
67
|
content: "",
|
|
70
|
-
type: types_1.FileType.Plain
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
{
|
|
68
|
+
type: types_1.FileType.Plain
|
|
69
|
+
}, parent),
|
|
70
|
+
new types_1.File({
|
|
74
71
|
name: 'fstab',
|
|
75
72
|
permissions: '-rw-r-----',
|
|
76
73
|
owner: 'root',
|
|
77
74
|
content: "",
|
|
78
|
-
type: types_1.FileType.Plain
|
|
79
|
-
|
|
80
|
-
}
|
|
75
|
+
type: types_1.FileType.Plain
|
|
76
|
+
}, parent)
|
|
81
77
|
];
|
|
82
78
|
}
|
|
83
79
|
function getEtcFolder(parent, users) {
|
|
84
|
-
var etcFolder = {
|
|
80
|
+
var etcFolder = new types_1.Folder({
|
|
85
81
|
name: 'etc',
|
|
86
82
|
permissions: 'drwxr-x---',
|
|
87
83
|
owner: 'root',
|
|
88
|
-
isFolder: true,
|
|
89
84
|
folders: [],
|
|
90
|
-
files: []
|
|
91
|
-
|
|
92
|
-
};
|
|
85
|
+
files: []
|
|
86
|
+
}, parent);
|
|
93
87
|
etcFolder.folders = [getEtcAptFolder(etcFolder)];
|
|
94
88
|
etcFolder.files = getEtcFiles(etcFolder, users);
|
|
95
89
|
return etcFolder;
|
|
96
90
|
}
|
|
97
91
|
function getLibFiles(parent) {
|
|
98
92
|
return [
|
|
99
|
-
{
|
|
93
|
+
new types_1.File({
|
|
100
94
|
name: 'init.so',
|
|
101
95
|
permissions: '-rw-r-----',
|
|
102
96
|
owner: 'root',
|
|
103
|
-
type: types_1.FileType.Init
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
{
|
|
97
|
+
type: types_1.FileType.Init
|
|
98
|
+
}, parent),
|
|
99
|
+
new types_1.File({
|
|
107
100
|
name: 'kernel_module.so',
|
|
108
101
|
permissions: '-rw-r-----',
|
|
109
102
|
owner: 'root',
|
|
110
|
-
type: types_1.FileType.KernelModule
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
{
|
|
103
|
+
type: types_1.FileType.KernelModule
|
|
104
|
+
}, parent),
|
|
105
|
+
new types_1.File({
|
|
114
106
|
name: 'net.so',
|
|
115
107
|
permissions: '-rw-r-----',
|
|
116
108
|
owner: 'root',
|
|
117
|
-
type: types_1.FileType.Net
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
{
|
|
109
|
+
type: types_1.FileType.Net
|
|
110
|
+
}, parent),
|
|
111
|
+
new types_1.File({
|
|
121
112
|
name: 'aptclient.so',
|
|
122
113
|
permissions: '-rw-r--r--',
|
|
123
114
|
owner: 'root',
|
|
124
|
-
type: types_1.FileType.AptClient
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
{
|
|
115
|
+
type: types_1.FileType.AptClient
|
|
116
|
+
}, parent),
|
|
117
|
+
new types_1.File({
|
|
128
118
|
name: 'crypto.so',
|
|
129
119
|
permissions: '-rw-r--r--',
|
|
130
120
|
owner: 'root',
|
|
131
|
-
type: types_1.FileType.Crypto
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
{
|
|
121
|
+
type: types_1.FileType.Crypto
|
|
122
|
+
}, parent),
|
|
123
|
+
new types_1.File({
|
|
135
124
|
name: 'metaxploit.so',
|
|
136
125
|
permissions: '-rw-r--r--',
|
|
137
126
|
owner: 'root',
|
|
138
|
-
type: types_1.FileType.Metaxploit
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
{
|
|
127
|
+
type: types_1.FileType.Metaxploit
|
|
128
|
+
}, parent),
|
|
129
|
+
new types_1.File({
|
|
142
130
|
name: 'blockchain.so',
|
|
143
131
|
permissions: '-rw-r--r--',
|
|
144
132
|
owner: 'root',
|
|
145
|
-
type: types_1.FileType.Blockchain
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
{
|
|
133
|
+
type: types_1.FileType.Blockchain
|
|
134
|
+
}, parent),
|
|
135
|
+
new types_1.File({
|
|
149
136
|
name: 'ssh.so',
|
|
150
137
|
permissions: '-rw-r--r--',
|
|
151
138
|
owner: 'root',
|
|
152
|
-
type: types_1.FileType.SSH
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
{
|
|
139
|
+
type: types_1.FileType.SSH
|
|
140
|
+
}, parent),
|
|
141
|
+
new types_1.File({
|
|
156
142
|
name: 'ftp.so',
|
|
157
143
|
permissions: '-rw-r--r--',
|
|
158
144
|
owner: 'root',
|
|
159
|
-
type: types_1.FileType.FTP
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
{
|
|
145
|
+
type: types_1.FileType.FTP
|
|
146
|
+
}, parent),
|
|
147
|
+
new types_1.File({
|
|
163
148
|
name: 'http.so',
|
|
164
149
|
permissions: '-rw-r--r--',
|
|
165
150
|
owner: 'root',
|
|
166
|
-
type: types_1.FileType.HTTP
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
{
|
|
151
|
+
type: types_1.FileType.HTTP
|
|
152
|
+
}, parent),
|
|
153
|
+
new types_1.File({
|
|
170
154
|
name: 'chat.so',
|
|
171
155
|
permissions: '-rw-r--r--',
|
|
172
156
|
owner: 'root',
|
|
173
|
-
type: types_1.FileType.Chat
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
{
|
|
157
|
+
type: types_1.FileType.Chat
|
|
158
|
+
}, parent),
|
|
159
|
+
new types_1.File({
|
|
177
160
|
name: 'rshell.so',
|
|
178
161
|
permissions: '-rw-r--r--',
|
|
179
162
|
owner: 'root',
|
|
180
|
-
type: types_1.FileType.RShell
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
{
|
|
163
|
+
type: types_1.FileType.RShell
|
|
164
|
+
}, parent),
|
|
165
|
+
new types_1.File({
|
|
184
166
|
name: 'repository.so',
|
|
185
167
|
permissions: '-rw-r--r--',
|
|
186
168
|
owner: 'root',
|
|
187
|
-
type: types_1.FileType.Repository
|
|
188
|
-
|
|
189
|
-
}
|
|
169
|
+
type: types_1.FileType.Repository
|
|
170
|
+
}, parent)
|
|
190
171
|
];
|
|
191
172
|
}
|
|
192
173
|
function getLibFolder(parent) {
|
|
193
|
-
var libFolder = {
|
|
174
|
+
var libFolder = new types_1.Folder({
|
|
194
175
|
name: 'lib',
|
|
195
176
|
permissions: 'drwxrwx---',
|
|
196
177
|
owner: 'root',
|
|
197
|
-
isFolder: true,
|
|
198
178
|
folders: [],
|
|
199
|
-
files: []
|
|
200
|
-
|
|
201
|
-
};
|
|
179
|
+
files: []
|
|
180
|
+
}, parent);
|
|
202
181
|
libFolder.files = getLibFiles(libFolder);
|
|
203
182
|
return libFolder;
|
|
204
183
|
}
|
|
205
184
|
function getSysFiles(parent) {
|
|
206
185
|
return [
|
|
207
|
-
{
|
|
186
|
+
new types_1.File({
|
|
208
187
|
name: 'xorg.sys',
|
|
209
188
|
permissions: '-r-x------',
|
|
210
189
|
owner: 'root',
|
|
211
|
-
type: types_1.FileType.System
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
{
|
|
190
|
+
type: types_1.FileType.System
|
|
191
|
+
}, parent),
|
|
192
|
+
new types_1.File({
|
|
215
193
|
name: 'config.sys',
|
|
216
194
|
permissions: '-rw-------',
|
|
217
195
|
owner: 'root',
|
|
218
|
-
type: types_1.FileType.System
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
{
|
|
196
|
+
type: types_1.FileType.System
|
|
197
|
+
}, parent),
|
|
198
|
+
new types_1.File({
|
|
222
199
|
name: 'network.cfg',
|
|
223
200
|
permissions: '-rw-------',
|
|
224
201
|
owner: 'root',
|
|
225
|
-
type: types_1.FileType.System
|
|
226
|
-
|
|
227
|
-
}
|
|
202
|
+
type: types_1.FileType.System
|
|
203
|
+
}, parent)
|
|
228
204
|
];
|
|
229
205
|
}
|
|
230
206
|
function getSysFolder(parent) {
|
|
231
|
-
var sysFolder = {
|
|
207
|
+
var sysFolder = new types_1.Folder({
|
|
232
208
|
name: 'sys',
|
|
233
209
|
permissions: 'drwxr-xr-x',
|
|
234
210
|
owner: 'root',
|
|
235
|
-
isFolder: true,
|
|
236
211
|
folders: [],
|
|
237
|
-
files: []
|
|
238
|
-
|
|
239
|
-
};
|
|
212
|
+
files: []
|
|
213
|
+
}, parent);
|
|
240
214
|
sysFolder.files = getSysFiles(sysFolder);
|
|
241
215
|
return sysFolder;
|
|
242
216
|
}
|
|
243
217
|
function getDefaultHomeFolders(parent, owner, permissions) {
|
|
244
218
|
return [
|
|
245
|
-
{
|
|
219
|
+
new types_1.Folder({
|
|
246
220
|
name: 'Desktop',
|
|
247
221
|
permissions: permissions,
|
|
248
222
|
owner: owner,
|
|
249
|
-
isFolder: true,
|
|
250
223
|
folders: [],
|
|
251
|
-
files: []
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
{
|
|
224
|
+
files: []
|
|
225
|
+
}, parent),
|
|
226
|
+
new types_1.Folder({
|
|
255
227
|
name: 'Downloads',
|
|
256
228
|
permissions: permissions,
|
|
257
229
|
owner: owner,
|
|
258
|
-
isFolder: true,
|
|
259
230
|
folders: [],
|
|
260
|
-
files: []
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
{
|
|
231
|
+
files: []
|
|
232
|
+
}, parent),
|
|
233
|
+
new types_1.Folder({
|
|
264
234
|
name: 'Config',
|
|
265
235
|
permissions: permissions,
|
|
266
236
|
owner: owner,
|
|
267
|
-
isFolder: true,
|
|
268
237
|
folders: [],
|
|
269
|
-
files: []
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
{
|
|
238
|
+
files: []
|
|
239
|
+
}, parent),
|
|
240
|
+
new types_1.Folder({
|
|
273
241
|
name: '.Trash',
|
|
274
242
|
permissions: permissions,
|
|
275
243
|
owner: owner,
|
|
276
|
-
isFolder: true,
|
|
277
244
|
folders: [],
|
|
278
|
-
files: []
|
|
279
|
-
|
|
280
|
-
}
|
|
245
|
+
files: []
|
|
246
|
+
}, parent)
|
|
281
247
|
];
|
|
282
248
|
}
|
|
283
249
|
function getRootFolder(parent) {
|
|
284
|
-
var rootFolder = {
|
|
250
|
+
var rootFolder = new types_1.Folder({
|
|
285
251
|
name: 'root',
|
|
286
252
|
permissions: 'drwxr-----',
|
|
287
253
|
owner: 'root',
|
|
288
|
-
isFolder: true,
|
|
289
254
|
folders: [],
|
|
290
|
-
files: []
|
|
291
|
-
|
|
292
|
-
};
|
|
255
|
+
files: []
|
|
256
|
+
}, parent);
|
|
293
257
|
rootFolder.folders = getDefaultHomeFolders(rootFolder, 'root', 'drwxrwx---');
|
|
294
258
|
return rootFolder;
|
|
295
259
|
}
|
|
296
260
|
function getUserFolder(parent, user) {
|
|
297
|
-
var userFolder = {
|
|
261
|
+
var userFolder = new types_1.Folder({
|
|
298
262
|
name: user,
|
|
299
263
|
permissions: 'drwxr-----',
|
|
300
264
|
owner: user,
|
|
301
|
-
isFolder: true,
|
|
302
265
|
folders: [],
|
|
303
|
-
files: []
|
|
304
|
-
|
|
305
|
-
};
|
|
266
|
+
files: []
|
|
267
|
+
}, parent);
|
|
306
268
|
userFolder.folders = getDefaultHomeFolders(userFolder, user, 'drwxrwx---');
|
|
307
269
|
return userFolder;
|
|
308
270
|
}
|
|
309
271
|
exports.getUserFolder = getUserFolder;
|
|
310
272
|
function getGuestFolder(parent) {
|
|
311
|
-
var guestFolder = {
|
|
273
|
+
var guestFolder = new types_1.Folder({
|
|
312
274
|
name: 'guest',
|
|
313
275
|
permissions: 'drwxrwxrwx',
|
|
314
276
|
owner: 'guest',
|
|
315
|
-
isFolder: true,
|
|
316
277
|
folders: [],
|
|
317
|
-
files: []
|
|
318
|
-
|
|
319
|
-
};
|
|
278
|
+
files: []
|
|
279
|
+
}, parent);
|
|
320
280
|
guestFolder.folders = getDefaultHomeFolders(guestFolder, 'guest', 'drwxrwxrwx');
|
|
321
281
|
return guestFolder;
|
|
322
282
|
}
|
|
323
283
|
function getHomeFolder(parent, users) {
|
|
324
|
-
var homeFolder = {
|
|
284
|
+
var homeFolder = new types_1.Folder({
|
|
325
285
|
name: 'home',
|
|
326
286
|
permissions: 'drwxr-xr-x',
|
|
327
287
|
owner: 'root',
|
|
328
|
-
isFolder: true,
|
|
329
288
|
folders: [],
|
|
330
|
-
files: []
|
|
331
|
-
|
|
332
|
-
};
|
|
289
|
+
files: []
|
|
290
|
+
}, parent);
|
|
333
291
|
homeFolder.folders = __spreadArray(__spreadArray([], __read(users
|
|
334
292
|
.filter(function (v) { return v.username !== 'root'; })
|
|
335
293
|
.map(function (v) { return getUserFolder(homeFolder, v.username); })), false), [
|
|
@@ -338,99 +296,85 @@ function getHomeFolder(parent, users) {
|
|
|
338
296
|
return homeFolder;
|
|
339
297
|
}
|
|
340
298
|
function getVarFolder(parent) {
|
|
341
|
-
return {
|
|
299
|
+
return new types_1.Folder({
|
|
342
300
|
name: 'var',
|
|
343
301
|
permissions: 'drwxr-xr-x',
|
|
344
302
|
owner: 'root',
|
|
345
|
-
isFolder: true,
|
|
346
303
|
folders: [],
|
|
347
|
-
files: []
|
|
348
|
-
|
|
349
|
-
};
|
|
304
|
+
files: []
|
|
305
|
+
}, parent);
|
|
350
306
|
}
|
|
351
307
|
function getBinFolder(parent) {
|
|
352
|
-
return {
|
|
308
|
+
return new types_1.Folder({
|
|
353
309
|
name: 'bin',
|
|
354
310
|
permissions: 'drwxrwxr-x',
|
|
355
311
|
owner: 'root',
|
|
356
|
-
isFolder: true,
|
|
357
312
|
folders: [],
|
|
358
|
-
files: []
|
|
359
|
-
|
|
360
|
-
};
|
|
313
|
+
files: []
|
|
314
|
+
}, parent);
|
|
361
315
|
}
|
|
362
316
|
function getUsrBinFolder(parent) {
|
|
363
|
-
return {
|
|
317
|
+
return new types_1.Folder({
|
|
364
318
|
name: 'bin',
|
|
365
319
|
permissions: 'drwxrwxr-x',
|
|
366
320
|
owner: 'root',
|
|
367
|
-
isFolder: true,
|
|
368
321
|
folders: [],
|
|
369
|
-
files: []
|
|
370
|
-
|
|
371
|
-
};
|
|
322
|
+
files: []
|
|
323
|
+
}, parent);
|
|
372
324
|
}
|
|
373
325
|
function getUsrFolder(parent) {
|
|
374
|
-
var usrFolder = {
|
|
326
|
+
var usrFolder = new types_1.Folder({
|
|
375
327
|
name: 'usr',
|
|
376
328
|
permissions: 'drwxrwxr-x',
|
|
377
329
|
owner: 'root',
|
|
378
|
-
isFolder: true,
|
|
379
330
|
folders: [],
|
|
380
|
-
files: []
|
|
381
|
-
|
|
382
|
-
};
|
|
331
|
+
files: []
|
|
332
|
+
}, parent);
|
|
383
333
|
usrFolder.folders = [getUsrBinFolder(usrFolder)];
|
|
384
334
|
return usrFolder;
|
|
385
335
|
}
|
|
386
336
|
function getBootFiles(parent) {
|
|
387
337
|
return [
|
|
388
|
-
{
|
|
338
|
+
new types_1.File({
|
|
389
339
|
name: 'System.map',
|
|
390
340
|
permissions: '-rw-------',
|
|
391
341
|
owner: 'root',
|
|
392
|
-
type: types_1.FileType.System
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
{
|
|
342
|
+
type: types_1.FileType.System
|
|
343
|
+
}, parent),
|
|
344
|
+
new types_1.File({
|
|
396
345
|
name: 'inittrd.img',
|
|
397
346
|
permissions: '-r--------',
|
|
398
347
|
owner: 'root',
|
|
399
|
-
type: types_1.FileType.System
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
{
|
|
348
|
+
type: types_1.FileType.System
|
|
349
|
+
}, parent),
|
|
350
|
+
new types_1.File({
|
|
403
351
|
name: 'kernel.img',
|
|
404
352
|
permissions: '-r--------',
|
|
405
353
|
owner: 'root',
|
|
406
|
-
type: types_1.FileType.System
|
|
407
|
-
|
|
408
|
-
}
|
|
354
|
+
type: types_1.FileType.System
|
|
355
|
+
}, parent)
|
|
409
356
|
];
|
|
410
357
|
}
|
|
411
358
|
function getBootFolder(parent) {
|
|
412
|
-
var bootFolder = {
|
|
359
|
+
var bootFolder = new types_1.Folder({
|
|
413
360
|
name: 'sys',
|
|
414
361
|
permissions: 'drwxr-xr-x',
|
|
415
362
|
owner: 'root',
|
|
416
|
-
isFolder: true,
|
|
417
363
|
folders: [],
|
|
418
|
-
files: []
|
|
419
|
-
|
|
420
|
-
};
|
|
364
|
+
files: []
|
|
365
|
+
}, parent);
|
|
421
366
|
bootFolder.files = getBootFiles(bootFolder);
|
|
422
367
|
return bootFolder;
|
|
423
368
|
}
|
|
424
369
|
function getDefaultFileSystem(users) {
|
|
425
|
-
var defaultSystem = {
|
|
370
|
+
var defaultSystem = new types_1.Folder({
|
|
426
371
|
name: '',
|
|
427
372
|
permissions: 'drwxr--r--',
|
|
428
373
|
owner: 'root',
|
|
429
|
-
isFolder: true,
|
|
430
374
|
isProtected: true,
|
|
431
375
|
files: [],
|
|
432
376
|
folders: []
|
|
433
|
-
};
|
|
377
|
+
});
|
|
434
378
|
defaultSystem.folders = [
|
|
435
379
|
getEtcFolder(defaultSystem, users),
|
|
436
380
|
getLibFolder(defaultSystem),
|