@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
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./MongodbPlugin"), exports);
@@ -1,23 +0,0 @@
1
- import { AppConfig, Preset, PresetSource } from "@wocker/core";
2
- import { AppConfigService } from "../services/AppConfigService";
3
- import { LogService } from "../services/LogService";
4
- type PresetData = {
5
- name: string;
6
- source: PresetSource;
7
- path?: string;
8
- };
9
- type SearchOptions = Partial<{
10
- name: string;
11
- source: string;
12
- path: string;
13
- }>;
14
- export declare class PresetRepository {
15
- protected readonly appConfig: AppConfigService;
16
- protected readonly logService: LogService;
17
- constructor(appConfig: AppConfigService, logService: LogService);
18
- protected load(data: PresetData): Preset;
19
- protected configs(): AppConfig["presets"];
20
- search(options?: SearchOptions): Preset[];
21
- searchOne(options?: SearchOptions): Preset | null;
22
- }
23
- export {};
@@ -1 +0,0 @@
1
- export * from "./PresetRepository";
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./PresetRepository"), exports);
@@ -1,35 +0,0 @@
1
- import { AppConfig, AppConfigService as CoreAppConfigService, FileSystem } from "@wocker/core";
2
- type TypeMap = {
3
- [type: string]: string;
4
- };
5
- export declare class AppConfigService extends CoreAppConfigService {
6
- protected _pwd: string;
7
- protected _fs?: FileSystem;
8
- protected _config?: AppConfig;
9
- protected readonly mapTypes: TypeMap;
10
- constructor();
11
- get version(): string;
12
- get config(): AppConfig;
13
- get projects(): {
14
- id: string;
15
- name?: string;
16
- path?: string;
17
- src?: string;
18
- }[];
19
- get fs(): FileSystem;
20
- pwd(...parts: string[]): string;
21
- setPWD(pwd: string): void;
22
- dataPath(...parts: string[]): string;
23
- pluginsPath(...parts: string[]): string;
24
- presetPath(...parts: string[]): string;
25
- getProjectTypes(): TypeMap;
26
- addProject(id: string, name: string, path: string): void;
27
- removeProject(id: string): {
28
- id: string;
29
- name?: string;
30
- path?: string;
31
- src?: string;
32
- };
33
- save(): void;
34
- }
35
- export {};
@@ -1,163 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
- var __metadata = (this && this.__metadata) || function (k, v) {
42
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
- };
44
- Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.AppConfigService = void 0;
46
- const core_1 = require("@wocker/core");
47
- const Path = __importStar(require("path"));
48
- const env_1 = require("../env");
49
- let AppConfigService = class AppConfigService extends core_1.AppConfigService {
50
- constructor() {
51
- super();
52
- this.mapTypes = {
53
- [core_1.PROJECT_TYPE_IMAGE]: "Image",
54
- [core_1.PROJECT_TYPE_DOCKERFILE]: "Dockerfile",
55
- [core_1.PROJECT_TYPE_PRESET]: "Preset"
56
- };
57
- this._pwd = (process.cwd() || process.env.PWD);
58
- }
59
- get version() {
60
- return env_1.WOCKER_VERSION;
61
- }
62
- get config() {
63
- if (!this._config) {
64
- const fs = this.fs;
65
- let data = {};
66
- if (fs.exists("wocker.config.js")) {
67
- try {
68
- const { config } = require(fs.path("wocker.config.js"));
69
- data = config;
70
- }
71
- catch (err) {
72
- if (fs.exists("wocker.config.json")) {
73
- let json = fs.readJSON("wocker.config.json");
74
- if (typeof json === "string") {
75
- json = JSON.parse(json);
76
- }
77
- data = json;
78
- }
79
- }
80
- }
81
- else if (fs.exists("wocker.config.json")) {
82
- data = fs.readJSON("wocker.config.json");
83
- }
84
- else if (fs.exists("wocker.json")) {
85
- let json = fs.readJSON("wocker.json");
86
- if (typeof json === "string") {
87
- json = JSON.parse(json);
88
- }
89
- data = json;
90
- }
91
- else if (fs.exists("data.json")) {
92
- data = fs.readJSON("data.json");
93
- }
94
- else if (!fs.exists()) {
95
- fs.mkdir("", {
96
- recursive: true
97
- });
98
- }
99
- this._config = new class extends core_1.AppConfig {
100
- constructor(data) {
101
- super(data);
102
- }
103
- async save() {
104
- if (!fs.exists()) {
105
- fs.mkdir("", {
106
- recursive: true
107
- });
108
- }
109
- fs.writeFile("wocker.config.js", this.toJsString());
110
- fs.writeFile("wocker.config.json", this.toString());
111
- if (fs.exists("data.json")) {
112
- fs.rm("data.json");
113
- }
114
- if (fs.exists("wocker.json")) {
115
- fs.rm("wocker.json");
116
- }
117
- }
118
- }(data);
119
- }
120
- return this._config;
121
- }
122
- get projects() {
123
- return this.config.projects;
124
- }
125
- get fs() {
126
- if (!this._fs) {
127
- this._fs = new core_1.FileSystem(env_1.DATA_DIR);
128
- }
129
- return this._fs;
130
- }
131
- pwd(...parts) {
132
- return Path.join(this._pwd, ...parts);
133
- }
134
- setPWD(pwd) {
135
- this._pwd = pwd;
136
- }
137
- dataPath(...parts) {
138
- return Path.join(env_1.DATA_DIR, ...parts);
139
- }
140
- pluginsPath(...parts) {
141
- return Path.join(env_1.PLUGINS_DIR, ...parts);
142
- }
143
- presetPath(...parts) {
144
- return Path.join(env_1.PRESETS_DIR, ...parts);
145
- }
146
- getProjectTypes() {
147
- return this.mapTypes;
148
- }
149
- addProject(id, name, path) {
150
- this.config.addProject(id, name, path);
151
- }
152
- removeProject(id) {
153
- return this.config.getProject(id);
154
- }
155
- save() {
156
- this.config.save();
157
- }
158
- };
159
- exports.AppConfigService = AppConfigService;
160
- exports.AppConfigService = AppConfigService = __decorate([
161
- (0, core_1.Injectable)("APP_CONFIG"),
162
- __metadata("design:paramtypes", [])
163
- ], AppConfigService);
@@ -1,9 +0,0 @@
1
- import { AppEventsService as CoreAppEventsService, AppEventHandle } from "@wocker/core";
2
- export declare class AppEventsService extends CoreAppEventsService {
3
- protected handles: {
4
- [event: string]: Set<AppEventHandle>;
5
- };
6
- on(event: string, handle: AppEventHandle): (() => void);
7
- off(event: string, handle: AppEventHandle): void;
8
- emit(event: string, ...args: any[]): Promise<void>;
9
- }
@@ -1,43 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.AppEventsService = void 0;
10
- const core_1 = require("@wocker/core");
11
- let AppEventsService = class AppEventsService extends core_1.AppEventsService {
12
- constructor() {
13
- super(...arguments);
14
- this.handles = {};
15
- }
16
- on(event, handle) {
17
- if (!this.handles[event]) {
18
- this.handles[event] = new Set();
19
- }
20
- this.handles[event].add(handle);
21
- return () => {
22
- this.off(event, handle);
23
- };
24
- }
25
- off(event, handle) {
26
- if (!this.handles[event]) {
27
- return;
28
- }
29
- this.handles[event].delete(handle);
30
- }
31
- async emit(event, ...args) {
32
- if (!this.handles[event]) {
33
- return;
34
- }
35
- for (const handle of this.handles[event].values()) {
36
- await handle(...args);
37
- }
38
- }
39
- };
40
- exports.AppEventsService = AppEventsService;
41
- exports.AppEventsService = AppEventsService = __decorate([
42
- (0, core_1.Injectable)("APP_EVENTS_SERVICE")
43
- ], AppEventsService);
@@ -1,15 +0,0 @@
1
- import { FileSystem, LogService as CoreLogService } from "@wocker/core";
2
- import { AppConfigService } from "./AppConfigService";
3
- export declare class LogService extends CoreLogService {
4
- protected readonly appConfigService: AppConfigService;
5
- constructor(appConfigService: AppConfigService);
6
- protected get fs(): FileSystem;
7
- protected get logName(): string;
8
- debug(...data: any[]): void;
9
- log(...data: any[]): void;
10
- info(...data: any[]): void;
11
- warn(...data: any[]): void;
12
- error(...data: any[]): void;
13
- clear(): void;
14
- protected _log(type: string, ...data: any[]): void;
15
- }
@@ -1,67 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.LogService = void 0;
16
- const core_1 = require("@wocker/core");
17
- const format_1 = __importDefault(require("date-fns/format"));
18
- const makes_1 = require("../makes");
19
- const AppConfigService_1 = require("./AppConfigService");
20
- let LogService = class LogService extends core_1.LogService {
21
- constructor(appConfigService) {
22
- super();
23
- this.appConfigService = appConfigService;
24
- makes_1.Logger.install(this);
25
- }
26
- get fs() {
27
- return this.appConfigService.fs;
28
- }
29
- get logName() {
30
- return "ws.log";
31
- }
32
- debug(...data) {
33
- this._log("debug", ...data);
34
- }
35
- log(...data) {
36
- this._log("log", ...data);
37
- }
38
- info(...data) {
39
- this._log("info", ...data);
40
- }
41
- warn(...data) {
42
- this._log("warn", ...data);
43
- }
44
- error(...data) {
45
- this._log("error", ...data);
46
- }
47
- clear() {
48
- this.fs.writeFile(this.logName, "");
49
- }
50
- _log(type, ...data) {
51
- if (type === "debug" && !this.appConfigService.config.debug) {
52
- return;
53
- }
54
- const time = (0, format_1.default)(new Date(), "yyyy-MM-dd HH:mm:ss"), logData = data.map((item) => {
55
- return typeof item !== "string" ? JSON.stringify(item) : item;
56
- }).join(" ");
57
- if (!this.fs.exists(this.logName)) {
58
- this.fs.writeFile(this.logName, "");
59
- }
60
- this.fs.appendFile(this.logName, `[${time}] ${type}: ${logData}\n`);
61
- }
62
- };
63
- exports.LogService = LogService;
64
- exports.LogService = LogService = __decorate([
65
- (0, core_1.Injectable)("LOG_SERVICE"),
66
- __metadata("design:paramtypes", [AppConfigService_1.AppConfigService])
67
- ], LogService);
@@ -1,27 +0,0 @@
1
- import { Project, ProjectProperties } from "@wocker/core";
2
- import { KeystoreService } from "../keystore";
3
- import { AppConfigService } from "./AppConfigService";
4
- import { AppEventsService } from "./AppEventsService";
5
- import { DockerService } from "./DockerService";
6
- type SearchParams = Partial<{
7
- name: string;
8
- path: string;
9
- }>;
10
- declare class ProjectService {
11
- protected readonly appConfigService: AppConfigService;
12
- protected readonly appEventsService: AppEventsService;
13
- protected readonly keystoreService: KeystoreService;
14
- protected readonly dockerService: DockerService;
15
- constructor(appConfigService: AppConfigService, appEventsService: AppEventsService, keystoreService: KeystoreService, dockerService: DockerService);
16
- fromObject(data: Partial<ProjectProperties>): Project;
17
- get(name?: string): Project;
18
- getById(id: string): Project;
19
- cdProject(name: string): void;
20
- start(project: Project, restart?: boolean, rebuild?: boolean): Promise<void>;
21
- stop(project: Project): Promise<void>;
22
- save(project: Project): void;
23
- search(params?: Partial<SearchParams>): Project[];
24
- searchOne(params?: Partial<SearchParams>): Project | null;
25
- logs(detach?: boolean): Promise<void>;
26
- }
27
- export { ProjectService };
@@ -1,207 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ProjectService = void 0;
13
- const core_1 = require("@wocker/core");
14
- const keystore_1 = require("../keystore");
15
- const AppConfigService_1 = require("./AppConfigService");
16
- const AppEventsService_1 = require("./AppEventsService");
17
- const DockerService_1 = require("./DockerService");
18
- let ProjectService = class ProjectService {
19
- constructor(appConfigService, appEventsService, keystoreService, dockerService) {
20
- this.appConfigService = appConfigService;
21
- this.appEventsService = appEventsService;
22
- this.keystoreService = keystoreService;
23
- this.dockerService = dockerService;
24
- }
25
- fromObject(data) {
26
- const _this = this;
27
- return new class extends core_1.Project {
28
- constructor(data) {
29
- super(data);
30
- }
31
- async getSecret(key, defaultValue) {
32
- return _this.keystoreService.get(`p:${this.name}:${key}`, defaultValue);
33
- }
34
- async setSecret(key, value) {
35
- return _this.keystoreService.set(`p:${this.name}:${key}`, value);
36
- }
37
- save() {
38
- _this.save(this);
39
- }
40
- }(data);
41
- }
42
- get(name) {
43
- const project = name
44
- ? this.searchOne({ name })
45
- : this.searchOne({
46
- path: this.appConfigService.pwd()
47
- });
48
- if (!project) {
49
- throw new Error("Project not found");
50
- }
51
- if (name) {
52
- this.appConfigService.setPWD(project.path);
53
- }
54
- return project;
55
- }
56
- getById(id) {
57
- const config = this.appConfigService.getConfig();
58
- const projectData = config.getProject(id);
59
- const data = this.appConfigService.fs.readJSON("projects", id, "config.json");
60
- return this.fromObject({
61
- ...data,
62
- path: projectData.path || projectData.src
63
- });
64
- }
65
- cdProject(name) {
66
- const project = this.searchOne({
67
- name
68
- });
69
- if (!project) {
70
- throw new Error("Project not found");
71
- }
72
- this.appConfigService.setPWD(project.path);
73
- }
74
- async start(project, restart, rebuild) {
75
- let container = await this.dockerService.getContainer(project.containerName);
76
- if (container && (restart || rebuild)) {
77
- container = null;
78
- await this.appEventsService.emit("project:stop", project);
79
- await this.dockerService.removeContainer(project.containerName);
80
- }
81
- if (!container) {
82
- if (project.type === core_1.PROJECT_TYPE_DOCKERFILE) {
83
- project.imageName = `project-${project.name}:develop`;
84
- if (rebuild) {
85
- await this.dockerService.imageRm(project.imageName);
86
- }
87
- const images = await this.dockerService.imageLs({
88
- tag: project.imageName
89
- });
90
- if (images.length === 0) {
91
- await this.dockerService.buildImage({
92
- tag: project.imageName,
93
- buildArgs: project.buildArgs,
94
- context: this.appConfigService.pwd(),
95
- src: project.dockerfile
96
- });
97
- }
98
- }
99
- if (rebuild) {
100
- await this.appEventsService.emit("project:rebuild", project);
101
- }
102
- await this.appEventsService.emit("project:beforeStart", project);
103
- const config = this.appConfigService.getConfig();
104
- container = await this.dockerService.createContainer({
105
- name: project.containerName,
106
- image: project.imageName,
107
- env: {
108
- ...config.env || {},
109
- ...project.env || {}
110
- },
111
- ports: project.ports || [],
112
- volumes: (project.volumes || []).map((volume) => {
113
- const regVolume = /^([^:]+):([^:]+)(?::([^:]+))?$/;
114
- const [, source, destination, options] = regVolume.exec(volume);
115
- if (source.startsWith("/")) {
116
- return volume;
117
- }
118
- return `${this.appConfigService.pwd(source)}:${destination}` + (options ? `:${options}` : "");
119
- }),
120
- extraHosts: Object.keys(project.extraHosts || {}).map((host) => {
121
- return `${project.extraHosts[host]}:${host}`;
122
- })
123
- });
124
- }
125
- const { State: { Status } } = await container.inspect();
126
- if (Status === "created" || Status === "exited") {
127
- await container.start();
128
- }
129
- await this.appEventsService.emit("project:start", project);
130
- }
131
- async stop(project) {
132
- const container = await this.dockerService.getContainer(project.containerName);
133
- if (!container) {
134
- return;
135
- }
136
- await this.appEventsService.emit("project:stop", project);
137
- await this.dockerService.removeContainer(project.containerName);
138
- }
139
- save(project) {
140
- if (!project.name) {
141
- throw new Error("Project should has a name");
142
- }
143
- if (!project.path) {
144
- throw new Error("Project should has a path");
145
- }
146
- if (!project.id) {
147
- project.id = project.name;
148
- }
149
- if (!this.appConfigService.fs.exists(`projects/${project.id}`)) {
150
- this.appConfigService.fs.mkdir(`projects/${project.id}`, {
151
- recursive: true
152
- });
153
- }
154
- const { path, ...rest } = project.toJSON();
155
- this.appConfigService.addProject(project.id, project.name, path);
156
- this.appConfigService.fs.writeJSON(`projects/${project.id}/config.json`, rest);
157
- this.appConfigService.save();
158
- }
159
- search(params = {}) {
160
- const { name, path } = params;
161
- const projects = [];
162
- for (const projectConfig of this.appConfigService.projects || []) {
163
- if (name && projectConfig.name !== name) {
164
- continue;
165
- }
166
- if (path && (projectConfig.path || projectConfig.src) !== path) {
167
- continue;
168
- }
169
- const project = this.getById(projectConfig.id);
170
- if (name && project.name !== name) {
171
- continue;
172
- }
173
- projects.push(project);
174
- }
175
- return projects;
176
- }
177
- searchOne(params = {}) {
178
- const [project] = this.search(params);
179
- return project || null;
180
- }
181
- async logs(detach) {
182
- const project = this.get();
183
- const container = await this.dockerService.getContainer(project.containerName);
184
- if (!container) {
185
- throw new Error("Project not started");
186
- }
187
- if (!detach) {
188
- await this.dockerService.logs(container);
189
- }
190
- else {
191
- const data = await container.logs({
192
- stdout: true,
193
- stderr: true,
194
- follow: false
195
- });
196
- process.stdout.write(data);
197
- }
198
- }
199
- };
200
- exports.ProjectService = ProjectService;
201
- exports.ProjectService = ProjectService = __decorate([
202
- (0, core_1.Injectable)("PROJECT_SERVICE"),
203
- __metadata("design:paramtypes", [AppConfigService_1.AppConfigService,
204
- AppEventsService_1.AppEventsService,
205
- keystore_1.KeystoreService,
206
- DockerService_1.DockerService])
207
- ], ProjectService);
@@ -1,10 +0,0 @@
1
- export * from "./AppConfigService";
2
- export * from "./AppEventsService";
3
- export * from "./CertService";
4
- export * from "./DockerService";
5
- export * from "./LogService";
6
- export * from "./NpmService";
7
- export * from "./PluginService";
8
- export * from "./PresetService";
9
- export * from "./ProjectService";
10
- export * from "./ProxyService";
@@ -1,26 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./AppConfigService"), exports);
18
- __exportStar(require("./AppEventsService"), exports);
19
- __exportStar(require("./CertService"), exports);
20
- __exportStar(require("./DockerService"), exports);
21
- __exportStar(require("./LogService"), exports);
22
- __exportStar(require("./NpmService"), exports);
23
- __exportStar(require("./PluginService"), exports);
24
- __exportStar(require("./PresetService"), exports);
25
- __exportStar(require("./ProjectService"), exports);
26
- __exportStar(require("./ProxyService"), exports);
@@ -1 +0,0 @@
1
- export declare const followProgress: (stream: NodeJS.ReadableStream) => Promise<unknown>;