@wocker/ws 1.0.22 → 1.0.24

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.
Files changed (139) hide show
  1. package/lib/{AppModule.d.ts → RootModule.d.ts} +1 -1
  2. package/lib/RootModule.js +93 -0
  3. package/lib/controllers/DebugController.d.ts +1 -1
  4. package/lib/controllers/DebugController.js +7 -9
  5. package/lib/controllers/ExperimentalController.d.ts +8 -0
  6. package/lib/controllers/ExperimentalController.js +76 -0
  7. package/lib/controllers/PluginController.d.ts +2 -1
  8. package/lib/controllers/PluginController.js +3 -3
  9. package/lib/controllers/ProjectController.d.ts +8 -7
  10. package/lib/controllers/ProjectController.js +123 -240
  11. package/lib/controllers/index.d.ts +1 -4
  12. package/lib/controllers/index.js +1 -4
  13. package/lib/env.d.ts +2 -3
  14. package/lib/env.js +3 -4
  15. package/lib/main.js +8 -8
  16. package/lib/makes/Plugin.d.ts +0 -1
  17. package/lib/makes/Plugin.js +0 -1
  18. package/lib/makes/index.d.ts +0 -2
  19. package/lib/makes/index.js +0 -2
  20. package/lib/modules/app/index.d.ts +2 -0
  21. package/lib/modules/app/index.js +32 -0
  22. package/lib/modules/docker/index.d.ts +8 -0
  23. package/lib/modules/docker/index.js +41 -0
  24. package/lib/modules/docker/services/ContainerService.d.ts +14 -0
  25. package/lib/modules/docker/services/ContainerService.js +115 -0
  26. package/lib/{services → modules/docker/services}/DockerService.d.ts +12 -5
  27. package/lib/{services → modules/docker/services}/DockerService.js +27 -114
  28. package/lib/modules/docker/services/ImageService.d.ts +18 -0
  29. package/lib/modules/docker/services/ImageService.js +68 -0
  30. package/lib/modules/docker/services/ModemService.d.ts +15 -0
  31. package/lib/modules/docker/services/ModemService.js +138 -0
  32. package/lib/modules/docker/services/ProtoService.d.ts +6 -0
  33. package/lib/modules/docker/services/ProtoService.js +20 -0
  34. package/lib/modules/index.d.ts +6 -0
  35. package/lib/{keystore → modules}/index.js +6 -1
  36. package/lib/{controllers → modules/keystore/controllers}/KeystoreController.d.ts +2 -2
  37. package/lib/{controllers → modules/keystore/controllers}/KeystoreController.js +4 -5
  38. package/lib/modules/keystore/index.d.ts +4 -0
  39. package/lib/modules/keystore/index.js +29 -0
  40. package/lib/{keystore → modules/keystore}/providers/FileKeystoreProvider.d.ts +3 -4
  41. package/lib/{keystore → modules/keystore}/providers/FileKeystoreProvider.js +4 -5
  42. package/lib/{keystore → modules/keystore}/providers/KeytarKeystoreProvider.js +1 -1
  43. package/lib/{keystore → modules/keystore/services}/KeystoreService.d.ts +4 -3
  44. package/lib/{keystore → modules/keystore/services}/KeystoreService.js +9 -6
  45. package/lib/modules/preset/controllers/PresetController.d.ts +18 -0
  46. package/lib/modules/preset/controllers/PresetController.js +157 -0
  47. package/lib/modules/preset/controllers/PresetListener.d.ts +14 -0
  48. package/lib/modules/preset/controllers/PresetListener.js +140 -0
  49. package/lib/modules/preset/index.d.ts +5 -0
  50. package/lib/modules/preset/index.js +39 -0
  51. package/lib/modules/preset/repositories/PresetRepository.d.ts +16 -0
  52. package/lib/{repositories → modules/preset/repositories}/PresetRepository.js +9 -11
  53. package/lib/{services → modules/preset/services}/PresetService.d.ts +4 -12
  54. package/lib/{services → modules/preset/services}/PresetService.js +22 -27
  55. package/lib/modules/project/controllers/ProjectController.d.ts +13 -0
  56. package/lib/modules/project/controllers/ProjectController.js +127 -0
  57. package/lib/modules/project/index.d.ts +5 -0
  58. package/lib/modules/project/index.js +39 -0
  59. package/lib/modules/project/repositories/ProjectRepository.d.ts +13 -0
  60. package/lib/modules/project/repositories/ProjectRepository.js +90 -0
  61. package/lib/modules/project/services/ProjectService.d.ts +21 -0
  62. package/lib/modules/project/services/ProjectService.js +211 -0
  63. package/lib/{controllers → modules/proxy/controllers}/CertController.d.ts +2 -1
  64. package/lib/{controllers → modules/proxy/controllers}/CertController.js +4 -3
  65. package/lib/{controllers → modules/proxy/controllers}/ProxyController.d.ts +5 -4
  66. package/lib/{controllers → modules/proxy/controllers}/ProxyController.js +12 -11
  67. package/lib/modules/proxy/index.d.ts +5 -0
  68. package/lib/modules/proxy/index.js +41 -0
  69. package/lib/{services → modules/proxy/services}/CertService.d.ts +5 -6
  70. package/lib/{services → modules/proxy/services}/CertService.js +13 -14
  71. package/lib/{services → modules/proxy/services}/ProxyService.d.ts +4 -4
  72. package/lib/{services → modules/proxy/services}/ProxyService.js +27 -20
  73. package/lib/services/PluginService.d.ts +1 -3
  74. package/lib/services/PluginService.js +12 -18
  75. package/lib/utils/followProgress2.d.ts +1 -0
  76. package/lib/utils/followProgress2.js +63 -0
  77. package/lib/utils/index.d.ts +1 -2
  78. package/lib/utils/index.js +1 -2
  79. package/package.json +7 -8
  80. package/proto/buildkit.proto +55 -0
  81. package/proto/solver/pb/ops.proto +443 -0
  82. package/lib/AppModule.js +0 -84
  83. package/lib/controllers/PresetController.d.ts +0 -23
  84. package/lib/controllers/PresetController.js +0 -361
  85. package/lib/keystore/index.d.ts +0 -1
  86. package/lib/keystore/types/Encryption.d.ts +0 -9
  87. package/lib/keystore/types/Encryption.js +0 -81
  88. package/lib/keystore/types/Encryptor.d.ts +0 -10
  89. package/lib/keystore/types/Encryptor.js +0 -59
  90. package/lib/makes/FS.d.ts +0 -27
  91. package/lib/makes/FS.js +0 -284
  92. package/lib/makes/LineConvertStream.d.ts +0 -11
  93. package/lib/makes/LineConvertStream.js +0 -42
  94. package/lib/makes/Logger.d.ts +0 -9
  95. package/lib/makes/Logger.js +0 -34
  96. package/lib/plugins/MongodbPlugin.d.ts +0 -20
  97. package/lib/plugins/MongodbPlugin.js +0 -288
  98. package/lib/plugins/index.d.ts +0 -1
  99. package/lib/plugins/index.js +0 -17
  100. package/lib/repositories/PresetRepository.d.ts +0 -23
  101. package/lib/repositories/index.d.ts +0 -1
  102. package/lib/repositories/index.js +0 -17
  103. package/lib/services/AppConfigService.d.ts +0 -35
  104. package/lib/services/AppConfigService.js +0 -163
  105. package/lib/services/AppEventsService.d.ts +0 -9
  106. package/lib/services/AppEventsService.js +0 -43
  107. package/lib/services/LogService.d.ts +0 -15
  108. package/lib/services/LogService.js +0 -67
  109. package/lib/services/ProjectService.d.ts +0 -27
  110. package/lib/services/ProjectService.js +0 -207
  111. package/lib/services/index.d.ts +0 -10
  112. package/lib/services/index.js +0 -26
  113. package/lib/utils/followProgress.d.ts +0 -1
  114. package/lib/utils/followProgress.js +0 -73
  115. package/presets/go/Dockerfile +0 -19
  116. package/presets/go/config.json +0 -14
  117. package/presets/php-fpm/Dockerfile +0 -173
  118. package/presets/php-fpm/bin/compare-version +0 -3
  119. package/presets/php-fpm/config.json +0 -55
  120. package/presets/php-fpm/etc/nginx/sites-available/default.conf +0 -36
  121. /package/lib/{utils/format-size-units.d.ts → modules/docker/utils/formatSizeUnits.d.ts} +0 -0
  122. /package/lib/{utils/format-size-units.js → modules/docker/utils/formatSizeUnits.js} +0 -0
  123. /package/lib/{keystore → modules/keystore}/providers/KeytarKeystoreProvider.d.ts +0 -0
  124. /package/lib/{keystore → modules/keystore}/types/FileKeystore.d.ts +0 -0
  125. /package/lib/{keystore → modules/keystore}/types/FileKeystore.js +0 -0
  126. /package/lib/{keystore → modules/keystore}/types/Keytar.d.ts +0 -0
  127. /package/lib/{keystore → modules/keystore}/types/Keytar.js +0 -0
  128. /package/lib/{keystore → modules/keystore}/utils/createEncryptionKey.d.ts +0 -0
  129. /package/lib/{keystore → modules/keystore}/utils/createEncryptionKey.js +0 -0
  130. /package/lib/{keystore → modules/keystore}/utils/createPasswordHash.d.ts +0 -0
  131. /package/lib/{keystore → modules/keystore}/utils/createPasswordHash.js +0 -0
  132. /package/lib/{keystore → modules/keystore}/utils/decrypt.d.ts +0 -0
  133. /package/lib/{keystore → modules/keystore}/utils/decrypt.js +0 -0
  134. /package/lib/{keystore → modules/keystore}/utils/encrypt.d.ts +0 -0
  135. /package/lib/{keystore → modules/keystore}/utils/encrypt.js +0 -0
  136. /package/lib/{keystore → modules/keystore}/utils/index.d.ts +0 -0
  137. /package/lib/{keystore → modules/keystore}/utils/index.js +0 -0
  138. /package/lib/{keystore → modules/keystore}/utils/verifyPasswordHash.d.ts +0 -0
  139. /package/lib/{keystore → modules/keystore}/utils/verifyPasswordHash.js +0 -0
@@ -55,18 +55,20 @@ const cli_table3_1 = __importDefault(require("cli-table3"));
55
55
  const yoctocolors_cjs_1 = __importDefault(require("yoctocolors-cjs"));
56
56
  const Path = __importStar(require("path"));
57
57
  const async_mutex_1 = require("async-mutex");
58
- const makes_1 = require("../makes");
59
- const services_1 = require("../services");
58
+ const docker_1 = require("../modules/docker");
59
+ const project_1 = require("../modules/project");
60
60
  let ProjectController = class ProjectController {
61
- constructor(appConfigService, appEventsService, projectService, logService, dockerService) {
61
+ constructor(appConfigService, processService, eventService, projectService, projectRepository, logService, dockerService) {
62
62
  this.appConfigService = appConfigService;
63
- this.appEventsService = appEventsService;
63
+ this.processService = processService;
64
+ this.eventService = eventService;
64
65
  this.projectService = projectService;
66
+ this.projectRepository = projectRepository;
65
67
  this.logService = logService;
66
68
  this.dockerService = dockerService;
67
69
  }
68
70
  async getProjectNames() {
69
- const projects = this.projectService.search();
71
+ const projects = this.projectRepository.search();
70
72
  return projects.map((project) => {
71
73
  return project.name;
72
74
  });
@@ -81,16 +83,16 @@ let ProjectController = class ProjectController {
81
83
  }
82
84
  }
83
85
  async init(name, type) {
84
- let project = this.projectService.searchOne({
85
- path: this.appConfigService.pwd()
86
+ const fs = new core_1.FileSystem(this.processService.pwd());
87
+ let project = this.projectRepository.searchOne({
88
+ path: fs.path()
86
89
  });
87
- const fs = new core_1.FileSystem(this.appConfigService.pwd());
88
90
  if (!project) {
89
- project = this.projectService.fromObject({
90
- path: this.appConfigService.pwd()
91
+ project = this.projectRepository.fromObject({
92
+ path: fs.path()
91
93
  });
92
94
  }
93
- project.path = this.appConfigService.pwd();
95
+ project.path = fs.path();
94
96
  if (name) {
95
97
  project.name = name;
96
98
  }
@@ -104,7 +106,7 @@ let ProjectController = class ProjectController {
104
106
  if (typeof name !== "string") {
105
107
  return true;
106
108
  }
107
- const otherProject = this.projectService.searchOne({
109
+ const otherProject = this.projectRepository.searchOne({
108
110
  name
109
111
  });
110
112
  if (otherProject && otherProject.path !== project.path) {
@@ -122,13 +124,14 @@ let ProjectController = class ProjectController {
122
124
  if (!type || !project.type || !mapTypes[project.type]) {
123
125
  project.type = await (0, utils_1.promptSelect)({
124
126
  message: "Project type",
127
+ required: true,
125
128
  options: mapTypes,
126
129
  default: project.type
127
130
  });
128
131
  }
129
132
  switch (project.type) {
130
133
  case core_1.PROJECT_TYPE_DOCKERFILE: {
131
- const files = await fs.readdirFiles();
134
+ const files = fs.readdir();
132
135
  const dockerfiles = files.filter((fileName) => {
133
136
  if (new RegExp("^(.*)\\.dockerfile$").test(fileName)) {
134
137
  return true;
@@ -140,6 +143,7 @@ let ProjectController = class ProjectController {
140
143
  }
141
144
  project.dockerfile = await (0, utils_1.promptSelect)({
142
145
  message: "Dockerfile",
146
+ required: true,
143
147
  options: dockerfiles.map((dockerfile) => {
144
148
  return {
145
149
  value: dockerfile
@@ -157,23 +161,44 @@ let ProjectController = class ProjectController {
157
161
  });
158
162
  break;
159
163
  }
164
+ case core_1.PROJECT_TYPE_COMPOSE: {
165
+ const composeFiles = fs.readdir().filter((file) => {
166
+ return /docker-compose\./.test(file);
167
+ });
168
+ if (composeFiles.length === 0) {
169
+ throw new Error("docker-compose files not found");
170
+ }
171
+ project.composefile = await (0, utils_1.promptSelect)({
172
+ message: "Docker compose",
173
+ required: true,
174
+ options: composeFiles,
175
+ default: project.composefile
176
+ });
177
+ break;
178
+ }
160
179
  case core_1.PROJECT_TYPE_PRESET:
161
180
  break;
162
181
  default:
163
182
  throw new Error("Invalid project type");
164
183
  }
165
- await this.appEventsService.emit("project:init", project);
166
- await project.save();
184
+ await this.eventService.emit("project:init", project);
185
+ project.save();
167
186
  }
168
187
  async destroy(name) {
169
188
  const project = this.projectService.get(name);
189
+ await this.projectService.stop(project);
190
+ this.appConfigService.removeProject(project.id);
191
+ this.appConfigService.save();
192
+ this.appConfigService.fs.rm(`projects/${project.id}`, {
193
+ recursive: true
194
+ });
170
195
  }
171
196
  async projectList(all) {
172
197
  const table = new cli_table3_1.default({
173
198
  head: ["Name", "Type", "Status"],
174
199
  colAligns: ["left", "center", "center"]
175
200
  });
176
- const projects = this.projectService.search({});
201
+ const projects = this.projectRepository.search();
177
202
  for (const project of projects) {
178
203
  const container = await this.dockerService.getContainer(project.containerName);
179
204
  if (!container) {
@@ -187,28 +212,8 @@ let ProjectController = class ProjectController {
187
212
  }
188
213
  return table.toString();
189
214
  }
190
- async start(name, detach, attach, rebuild, restart) {
191
- const project = this.projectService.get(name);
192
- await this.projectService.start(project, restart, rebuild);
193
- if (attach) {
194
- await this.dockerService.attach(project.containerName);
195
- }
196
- if (detach) {
197
- console.info(yoctocolors_cjs_1.default.yellow("Warning: Detach option is deprecated"));
198
- }
199
- }
200
- async stop(name) {
201
- if (name) {
202
- this.projectService.cdProject(name);
203
- }
204
- const project = this.projectService.get();
205
- await this.projectService.stop(project);
206
- }
207
215
  async domains(name) {
208
- if (name) {
209
- this.projectService.cdProject(name);
210
- }
211
- const project = this.projectService.get();
216
+ const project = this.projectService.get(name);
212
217
  const table = new cli_table3_1.default({
213
218
  head: [yoctocolors_cjs_1.default.yellow("Domain")]
214
219
  });
@@ -218,49 +223,34 @@ let ProjectController = class ProjectController {
218
223
  return table.toString();
219
224
  }
220
225
  async addDomain(addDomains, name) {
221
- if (name) {
222
- this.projectService.cdProject(name);
223
- }
224
- const project = this.projectService.get();
226
+ const project = this.projectService.get(name);
225
227
  for (const domain of addDomains) {
226
228
  project.addDomain(domain);
227
229
  }
228
- await project.save();
230
+ project.save();
229
231
  }
230
232
  async setDomains(domains, name) {
231
- if (name) {
232
- this.projectService.cdProject(name);
233
- }
234
- const project = this.projectService.get();
233
+ const project = this.projectService.get(name);
235
234
  project.clearDomains();
236
235
  for (const domain of domains) {
237
236
  project.addDomain(domain);
238
237
  }
239
- await project.save();
238
+ project.save();
240
239
  }
241
240
  async removeDomain(removeDomains, name) {
242
- if (name) {
243
- this.projectService.cdProject(name);
244
- }
245
- const project = this.projectService.get();
241
+ const project = this.projectService.get(name);
246
242
  for (const domain of removeDomains) {
247
243
  project.removeDomain(domain);
248
244
  }
249
- await project.save();
245
+ project.save();
250
246
  }
251
247
  async clearDomain(name) {
252
- if (name) {
253
- this.projectService.cdProject(name);
254
- }
255
- const project = this.projectService.get();
248
+ const project = this.projectService.get(name);
256
249
  project.clearDomains();
257
- await project.save();
250
+ project.save();
258
251
  }
259
252
  async ports(name) {
260
- if (name) {
261
- this.projectService.cdProject(name);
262
- }
263
- const project = this.projectService.get();
253
+ const project = this.projectService.get(name);
264
254
  const table = new cli_table3_1.default({
265
255
  head: ["Ports"]
266
256
  });
@@ -270,42 +260,30 @@ let ProjectController = class ProjectController {
270
260
  return table.toString();
271
261
  }
272
262
  async addPort(hostPort, containerPort, name) {
273
- if (name) {
274
- this.projectService.cdProject(name);
275
- }
276
- const project = this.projectService.get();
263
+ const project = this.projectService.get(name);
277
264
  project.linkPort(parseInt(hostPort), parseInt(containerPort));
278
- await project.save();
265
+ project.save();
279
266
  }
280
267
  async removePort(hostPort, containerPort, name) {
281
- if (name) {
282
- this.projectService.cdProject(name);
283
- }
284
- const project = this.projectService.get();
268
+ const project = this.projectService.get(name);
285
269
  project.unlinkPort(parseInt(hostPort), parseInt(containerPort));
286
- await project.save();
270
+ project.save();
287
271
  }
288
272
  async clearPorts(name) {
289
- if (name) {
290
- this.projectService.cdProject(name);
291
- }
292
- const project = this.projectService.get();
273
+ const project = this.projectService.get(name);
293
274
  if (project.ports) {
294
275
  delete project.ports;
295
- await project.save();
276
+ project.save();
296
277
  }
297
278
  }
298
279
  async configList(name, global) {
299
- if (name) {
300
- this.projectService.cdProject(name);
301
- }
302
280
  let env;
303
281
  if (!global) {
304
- const project = this.projectService.get();
282
+ const project = this.projectService.get(name);
305
283
  env = project.env || {};
306
284
  }
307
285
  else {
308
- const config = this.appConfigService.getConfig();
286
+ const config = this.appConfigService.config;
309
287
  env = config.env || {};
310
288
  }
311
289
  const table = new cli_table3_1.default({
@@ -317,12 +295,9 @@ let ProjectController = class ProjectController {
317
295
  return table.toString();
318
296
  }
319
297
  async configGet(keys, name, global) {
320
- if (name) {
321
- this.projectService.cdProject(name);
322
- }
323
298
  let config = global
324
- ? this.appConfigService.getConfig()
325
- : this.projectService.get();
299
+ ? this.appConfigService.config
300
+ : this.projectService.get(name);
326
301
  const table = new cli_table3_1.default({
327
302
  head: ["KEY", "VALUE"]
328
303
  });
@@ -336,28 +311,27 @@ let ProjectController = class ProjectController {
336
311
  return table.toString();
337
312
  }
338
313
  async configSet(variables, name, global) {
339
- if (!global && name) {
340
- this.projectService.cdProject(name);
314
+ if (global) {
315
+ for (const variable of variables) {
316
+ const [key, value] = variable.split("=");
317
+ if (!value) {
318
+ console.info(yoctocolors_cjs_1.default.yellow(`No value for "${key}"`));
319
+ continue;
320
+ }
321
+ this.appConfigService.config.setEnv(key.trim(), value.trim());
322
+ }
323
+ return;
341
324
  }
342
- const config = global
343
- ? this.appConfigService.getConfig()
344
- : this.projectService.get();
325
+ const project = this.projectService.get(name);
345
326
  for (const variable of variables) {
346
327
  const [key, value] = variable.split("=");
347
328
  if (!value) {
348
329
  console.info(yoctocolors_cjs_1.default.yellow(`No value for "${key}"`));
349
330
  continue;
350
331
  }
351
- config.setEnv(key.trim(), value.trim());
352
- }
353
- await config.save();
354
- if (!global) {
355
- const project = this.projectService.get();
356
- const container = await this.dockerService.getContainer(project.containerName);
357
- if (container) {
358
- await this.projectService.start(project, true);
359
- }
332
+ project.setEnv(key, value);
360
333
  }
334
+ project.save();
361
335
  }
362
336
  async configUnset(configs, name, global) {
363
337
  const env = configs.reduce((env, config) => {
@@ -368,27 +342,14 @@ let ProjectController = class ProjectController {
368
342
  if (global) {
369
343
  return;
370
344
  }
371
- if (name) {
372
- this.projectService.cdProject(name);
373
- }
374
- const project = this.projectService.get();
345
+ const project = this.projectService.get(name);
375
346
  for (const i in env) {
376
347
  project.unsetEnv(i);
377
348
  }
378
- await project.save();
379
- if (!global) {
380
- const project = this.projectService.get();
381
- const container = await this.dockerService.getContainer(project.containerName);
382
- if (container) {
383
- await this.projectService.start(project, true);
384
- }
385
- }
349
+ project.save();
386
350
  }
387
351
  async buildArgsList(name) {
388
- if (name) {
389
- this.projectService.cdProject(name);
390
- }
391
- const project = this.projectService.get();
352
+ const project = this.projectService.get(name);
392
353
  const table = new cli_table3_1.default({
393
354
  head: ["KEY", "VALUE"]
394
355
  });
@@ -399,10 +360,7 @@ let ProjectController = class ProjectController {
399
360
  return table.toString();
400
361
  }
401
362
  async buildArgsGet(args, name) {
402
- if (name) {
403
- this.projectService.cdProject(name);
404
- }
405
- const project = this.projectService.get();
363
+ const project = this.projectService.get(name);
406
364
  const table = new cli_table3_1.default({
407
365
  head: ["KEY", "VALUE"]
408
366
  });
@@ -414,11 +372,8 @@ let ProjectController = class ProjectController {
414
372
  }
415
373
  return table.toString();
416
374
  }
417
- async buildArgsSet(name, args) {
418
- if (name) {
419
- this.projectService.cdProject(name);
420
- }
421
- const project = this.projectService.get();
375
+ async buildArgsSet(args, name) {
376
+ const project = this.projectService.get(name);
422
377
  const buildArgs = args.reduce((env, config) => {
423
378
  let [, key = "", value = ""] = config.split(/^([^=]+)=(.*)$/);
424
379
  key = key.trim();
@@ -434,13 +389,10 @@ let ProjectController = class ProjectController {
434
389
  }
435
390
  project.buildArgs[key] = buildArgs[key];
436
391
  }
437
- await project.save();
392
+ project.save();
438
393
  }
439
394
  async buildArgsUnset(args, name) {
440
- if (name) {
441
- this.projectService.cdProject(name);
442
- }
443
- const project = this.projectService.get();
395
+ const project = this.projectService.get(name);
444
396
  const buildArgs = args.reduce((env, config) => {
445
397
  let [, key = "", value = ""] = config.split(/^([^=]+)(?:=(.*))?$/);
446
398
  key = key.trim();
@@ -456,13 +408,10 @@ let ProjectController = class ProjectController {
456
408
  delete project.buildArgs[key];
457
409
  }
458
410
  }
459
- await project.save();
411
+ project.save();
460
412
  }
461
413
  async volumeList(name) {
462
- if (name) {
463
- this.projectService.cdProject(name);
464
- }
465
- const project = this.projectService.get();
414
+ const project = this.projectService.get(name);
466
415
  const table = new cli_table3_1.default({
467
416
  head: ["Volume"]
468
417
  });
@@ -473,30 +422,21 @@ let ProjectController = class ProjectController {
473
422
  return table.toString();
474
423
  }
475
424
  async volumeMount(volumes, name) {
476
- if (name) {
477
- this.projectService.cdProject(name);
478
- }
479
- const project = this.projectService.get();
425
+ const project = this.projectService.get(name);
480
426
  if (Array.isArray(volumes) && volumes.length > 0) {
481
427
  project.volumeMount(...volumes);
482
- await project.save();
428
+ project.save();
483
429
  }
484
430
  }
485
431
  async volumeUnmount(volumes, name) {
486
- if (name) {
487
- this.projectService.cdProject(name);
488
- }
489
- const project = this.projectService.get();
432
+ const project = this.projectService.get(name);
490
433
  if (Array.isArray(volumes) && volumes.length > 0) {
491
434
  project.volumeUnmount(...volumes);
492
- await project.save();
435
+ project.save();
493
436
  }
494
437
  }
495
438
  async extraHostList(name) {
496
- if (name) {
497
- this.projectService.cdProject(name);
498
- }
499
- const project = this.projectService.get();
439
+ const project = this.projectService.get(name);
500
440
  if (!project.extraHosts) {
501
441
  return "No extra hosts found";
502
442
  }
@@ -511,40 +451,25 @@ let ProjectController = class ProjectController {
511
451
  return table.toString();
512
452
  }
513
453
  async addExtraHost(extraHost, extraDomain, name) {
514
- if (name) {
515
- this.projectService.cdProject(name);
516
- }
517
- const project = this.projectService.get();
454
+ const project = this.projectService.get(name);
518
455
  project.addExtraHost(extraHost, extraDomain);
519
- await project.save();
456
+ project.save();
520
457
  }
521
458
  async removeExtraHost(extraHost, name) {
522
- if (name) {
523
- this.projectService.cdProject(name);
524
- }
525
- const project = this.projectService.get();
459
+ const project = this.projectService.get(name);
526
460
  project.removeExtraHost(extraHost);
527
- await project.save();
461
+ project.save();
528
462
  }
529
463
  async attach(name) {
530
- if (name) {
531
- this.projectService.cdProject(name);
532
- }
533
- const project = this.projectService.get();
464
+ const project = this.projectService.get(name);
534
465
  await this.dockerService.attach(project.containerName);
535
466
  }
536
467
  async exec(command, name) {
537
- if (name) {
538
- this.projectService.cdProject(name);
539
- }
540
- const project = this.projectService.get();
468
+ const project = this.projectService.get(name);
541
469
  await this.dockerService.exec(project.containerName, command, true);
542
470
  }
543
471
  async run(script, args, name) {
544
- if (name) {
545
- this.projectService.cdProject(name);
546
- }
547
- const project = this.projectService.get();
472
+ const project = this.projectService.get(name);
548
473
  if (!project.scripts || !project.scripts[script]) {
549
474
  throw new Error(`Script ${script} not found`);
550
475
  }
@@ -571,7 +496,6 @@ let ProjectController = class ProjectController {
571
496
  if (clear) {
572
497
  this.logService.clear();
573
498
  }
574
- const logFilepath = this.appConfigService.dataPath("ws.log");
575
499
  const prepareLog = (str) => {
576
500
  return str.replace(/^\[.*]\s([^:]+):\s.*$/gm, (substring, type) => {
577
501
  switch (type) {
@@ -591,26 +515,29 @@ let ProjectController = class ProjectController {
591
515
  }
592
516
  });
593
517
  };
594
- const stream = makes_1.FS.createReadLinesStream(logFilepath, follow ? -10 : undefined);
595
- stream.on("data", (data) => {
596
- process.stdout.write(prepareLog(data.toString()));
518
+ const file = this.appConfigService.fs.open("ws.log", "r");
519
+ const stream = file.createReadlineStream({
520
+ start: -10
521
+ });
522
+ stream.on("data", (line) => {
523
+ process.stdout.write(prepareLog(line));
597
524
  process.stdout.write("\n");
598
525
  });
599
526
  if (follow) {
600
- const stats = await makes_1.FS.stat(logFilepath);
601
- const watcher = makes_1.FS.watch(logFilepath);
527
+ const stats = file.stat();
528
+ const watcher = this.appConfigService.fs.watch("ws.log");
602
529
  const mutex = new async_mutex_1.Mutex();
603
- let position = BigInt(stats.size);
530
+ let position = stats.size;
604
531
  watcher.on("change", async () => {
605
532
  await mutex.acquire();
606
533
  try {
607
- const stats = await makes_1.FS.stat(logFilepath);
608
- if (BigInt(stats.size) < position) {
534
+ const stats = file.stat();
535
+ if (stats.size < position) {
609
536
  console.info("file truncated");
610
- position = 0n;
537
+ position = 0;
611
538
  }
612
- const buffer = await makes_1.FS.readBytes(logFilepath, position);
613
- position += BigInt(buffer.length);
539
+ const buffer = file.readBytes(position);
540
+ position += buffer.length;
614
541
  process.stdout.write(prepareLog(buffer.toString("utf-8")));
615
542
  }
616
543
  finally {
@@ -620,10 +547,8 @@ let ProjectController = class ProjectController {
620
547
  }
621
548
  return;
622
549
  }
623
- if (name) {
624
- this.projectService.cdProject(name);
625
- }
626
- await this.projectService.logs(detach);
550
+ const project = this.projectService.get(name);
551
+ await this.projectService.logs(project, detach);
627
552
  }
628
553
  };
629
554
  exports.ProjectController = ProjectController;
@@ -676,51 +601,6 @@ __decorate([
676
601
  __metadata("design:paramtypes", [Boolean]),
677
602
  __metadata("design:returntype", Promise)
678
603
  ], ProjectController.prototype, "projectList", null);
679
- __decorate([
680
- (0, core_1.Command)("start"),
681
- (0, core_1.Description)("Starting project"),
682
- __param(0, (0, core_1.Option)("name", {
683
- type: "string",
684
- alias: "n",
685
- description: "The name of the project",
686
- help: true
687
- })),
688
- __param(1, (0, core_1.Option)("detach", {
689
- type: "boolean",
690
- description: "Detach",
691
- alias: "d"
692
- })),
693
- __param(2, (0, core_1.Option)("attach", {
694
- type: "boolean",
695
- description: "Attach",
696
- alias: "a"
697
- })),
698
- __param(3, (0, core_1.Option)("build", {
699
- type: "boolean",
700
- description: "Build",
701
- alias: "b"
702
- })),
703
- __param(4, (0, core_1.Option)("restart", {
704
- type: "boolean",
705
- alias: "r",
706
- description: "Restart"
707
- })),
708
- __metadata("design:type", Function),
709
- __metadata("design:paramtypes", [String, Boolean, Boolean, Boolean, Boolean]),
710
- __metadata("design:returntype", Promise)
711
- ], ProjectController.prototype, "start", null);
712
- __decorate([
713
- (0, core_1.Command)("stop"),
714
- (0, core_1.Description)("Stopping project"),
715
- __param(0, (0, core_1.Option)("name", {
716
- type: "string",
717
- alias: "n",
718
- description: "The name of the project"
719
- })),
720
- __metadata("design:type", Function),
721
- __metadata("design:paramtypes", [String]),
722
- __metadata("design:returntype", Promise)
723
- ], ProjectController.prototype, "stop", null);
724
604
  __decorate([
725
605
  (0, core_1.Command)("domains"),
726
606
  (0, core_1.Description)("Project domain list"),
@@ -921,13 +801,14 @@ __decorate([
921
801
  ], ProjectController.prototype, "buildArgsGet", null);
922
802
  __decorate([
923
803
  (0, core_1.Command)("build-args:set [...buildArgs]"),
924
- __param(0, (0, core_1.Option)("name", {
804
+ __param(0, (0, core_1.Param)("buildArgs")),
805
+ __param(1, (0, core_1.Option)("name", {
925
806
  type: "string",
926
807
  alias: "n",
927
808
  description: "The name of the project"
928
809
  })),
929
810
  __metadata("design:type", Function),
930
- __metadata("design:paramtypes", [String, Array]),
811
+ __metadata("design:paramtypes", [Array, String]),
931
812
  __metadata("design:returntype", Promise)
932
813
  ], ProjectController.prototype, "buildArgsSet", null);
933
814
  __decorate([
@@ -1073,7 +954,7 @@ __decorate([
1073
954
  type: "boolean",
1074
955
  alias: "f"
1075
956
  })),
1076
- __param(4, (0, core_1.Option)("clear", { alias: "c" })),
957
+ __param(4, (0, core_1.Option)("clear", "c")),
1077
958
  __metadata("design:type", Function),
1078
959
  __metadata("design:paramtypes", [String, Boolean, Boolean, Boolean, Boolean]),
1079
960
  __metadata("design:returntype", Promise)
@@ -1081,9 +962,11 @@ __decorate([
1081
962
  exports.ProjectController = ProjectController = __decorate([
1082
963
  (0, core_1.Controller)(),
1083
964
  (0, core_1.Description)("Project commands"),
1084
- __metadata("design:paramtypes", [services_1.AppConfigService,
1085
- services_1.AppEventsService,
1086
- services_1.ProjectService,
1087
- services_1.LogService,
1088
- services_1.DockerService])
965
+ __metadata("design:paramtypes", [core_1.AppConfigService,
966
+ core_1.ProcessService,
967
+ core_1.EventService,
968
+ project_1.ProjectService,
969
+ project_1.ProjectRepository,
970
+ core_1.LogService,
971
+ docker_1.DockerService])
1089
972
  ], ProjectController);
@@ -1,8 +1,5 @@
1
- export * from "./CertController";
2
1
  export * from "./CompletionController";
3
2
  export * from "./DebugController";
4
- export * from "./KeystoreController";
3
+ export * from "./ExperimentalController";
5
4
  export * from "./PluginController";
6
- export * from "./PresetController";
7
5
  export * from "./ProjectController";
8
- export * from "./ProxyController";
@@ -14,11 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./CertController"), exports);
18
17
  __exportStar(require("./CompletionController"), exports);
19
18
  __exportStar(require("./DebugController"), exports);
20
- __exportStar(require("./KeystoreController"), exports);
19
+ __exportStar(require("./ExperimentalController"), exports);
21
20
  __exportStar(require("./PluginController"), exports);
22
- __exportStar(require("./PresetController"), exports);
23
21
  __exportStar(require("./ProjectController"), exports);
24
- __exportStar(require("./ProxyController"), exports);