@wocker/ws 1.0.24 → 1.0.26

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 (117) hide show
  1. package/README.md +1 -1
  2. package/lib/AppModule.js +42 -0
  3. package/lib/env.d.ts +2 -3
  4. package/lib/env.js +12 -42
  5. package/lib/main.d.ts +2 -3
  6. package/lib/main.js +24 -26
  7. package/lib/makes/GithubClient.d.ts +24 -3
  8. package/lib/makes/GithubClient.js +20 -6
  9. package/lib/makes/Version.d.ts +22 -0
  10. package/lib/makes/Version.js +59 -0
  11. package/lib/makes/VersionRange.d.ts +6 -0
  12. package/lib/makes/VersionRange.js +18 -0
  13. package/lib/makes/VersionRule.d.ts +24 -0
  14. package/lib/makes/VersionRule.js +68 -0
  15. package/lib/makes/index.d.ts +2 -0
  16. package/lib/makes/index.js +2 -0
  17. package/lib/modules/core/index.d.ts +2 -0
  18. package/lib/modules/{app → core}/index.js +13 -19
  19. package/lib/modules/dns/controllers/DnsController.d.ts +7 -0
  20. package/lib/modules/dns/controllers/DnsController.js +47 -0
  21. package/lib/modules/dns/index.d.ts +4 -0
  22. package/lib/modules/dns/index.js +41 -0
  23. package/lib/modules/dns/services/DnsService.d.ts +10 -0
  24. package/lib/modules/dns/services/DnsService.js +77 -0
  25. package/lib/modules/docker/index.d.ts +2 -1
  26. package/lib/modules/docker/index.js +5 -1
  27. package/lib/modules/docker/services/ComposeService.d.ts +32 -0
  28. package/lib/modules/docker/services/ComposeService.js +127 -0
  29. package/lib/modules/docker/services/ContainerService.d.ts +1 -1
  30. package/lib/modules/docker/services/DockerService.js +2 -25
  31. package/lib/modules/docker/services/ImageService.d.ts +2 -8
  32. package/lib/modules/docker/services/ImageService.js +15 -3
  33. package/lib/modules/docker/services/ModemService.d.ts +3 -3
  34. package/lib/modules/docker/services/ModemService.js +24 -6
  35. package/lib/modules/docker/services/ProtoService.js +2 -2
  36. package/lib/modules/docker/type/ComposeConfig.d.ts +12 -0
  37. package/lib/modules/index.d.ts +4 -1
  38. package/lib/modules/index.js +4 -1
  39. package/lib/modules/keystore/controllers/KeystoreController.d.ts +0 -3
  40. package/lib/modules/keystore/controllers/KeystoreController.js +3 -54
  41. package/lib/modules/keystore/services/KeystoreService.d.ts +3 -3
  42. package/lib/modules/keystore/services/KeystoreService.js +6 -4
  43. package/lib/modules/keystore/utils/createEncryptionKey.d.ts +1 -1
  44. package/lib/modules/package-manager/index.d.ts +5 -0
  45. package/lib/modules/package-manager/index.js +33 -0
  46. package/lib/modules/package-manager/providers/NpmProvider.d.ts +7 -0
  47. package/lib/modules/package-manager/providers/NpmProvider.js +39 -0
  48. package/lib/modules/package-manager/providers/PnpmProvider.d.ts +7 -0
  49. package/lib/modules/package-manager/providers/PnpmProvider.js +30 -0
  50. package/lib/modules/package-manager/providers/YarnProvider.d.ts +7 -0
  51. package/lib/modules/package-manager/providers/YarnProvider.js +29 -0
  52. package/lib/modules/package-manager/service/PackageManager.d.ts +10 -0
  53. package/lib/modules/package-manager/service/PackageManager.js +70 -0
  54. package/lib/modules/package-manager/service/RegistryService.d.ts +4 -0
  55. package/lib/{services/NpmService.js → modules/package-manager/service/RegistryService.js} +6 -11
  56. package/lib/modules/package-manager/types/Package.d.ts +4 -0
  57. package/lib/modules/package-manager/types/Package.js +2 -0
  58. package/lib/modules/package-manager/types/PackageInfo.js +2 -0
  59. package/lib/modules/package-manager/types/PackageManagerProvider.d.ts +6 -0
  60. package/lib/modules/package-manager/types/PackageManagerProvider.js +6 -0
  61. package/lib/{controllers → modules/plugin/controllers}/PluginController.d.ts +2 -2
  62. package/lib/{controllers → modules/plugin/controllers}/PluginController.js +21 -20
  63. package/lib/modules/plugin/index.d.ts +4 -0
  64. package/lib/modules/plugin/index.js +67 -0
  65. package/lib/{services → modules/plugin/services}/PluginService.d.ts +7 -5
  66. package/lib/{services → modules/plugin/services}/PluginService.js +38 -40
  67. package/lib/modules/preset/controllers/PresetController.d.ts +1 -1
  68. package/lib/modules/preset/controllers/PresetController.js +14 -7
  69. package/lib/modules/preset/controllers/PresetListener.d.ts +3 -2
  70. package/lib/modules/preset/controllers/PresetListener.js +6 -3
  71. package/lib/modules/preset/services/PresetService.d.ts +2 -1
  72. package/lib/modules/preset/services/PresetService.js +84 -15
  73. package/lib/modules/project/controllers/ProjectController.d.ts +38 -2
  74. package/lib/modules/project/controllers/ProjectController.js +848 -2
  75. package/lib/modules/project/controllers/SecretsController.d.ts +8 -0
  76. package/lib/modules/project/controllers/SecretsController.js +72 -0
  77. package/lib/modules/project/index.js +5 -1
  78. package/lib/modules/project/repositories/ProjectRepository.d.ts +3 -6
  79. package/lib/modules/project/repositories/ProjectRepository.js +9 -28
  80. package/lib/modules/project/services/ProjectService.d.ts +10 -4
  81. package/lib/modules/project/services/ProjectService.js +103 -8
  82. package/lib/modules/proxy/controllers/ProxyController.d.ts +1 -2
  83. package/lib/modules/proxy/controllers/ProxyController.js +1 -2
  84. package/lib/modules/proxy/services/CertService.js +1 -1
  85. package/lib/modules/proxy/services/ProxyService.d.ts +1 -0
  86. package/lib/modules/proxy/services/ProxyService.js +9 -4
  87. package/lib/utils/exec.js +4 -1
  88. package/lib/utils/get-cursor-position.js +1 -1
  89. package/lib/utils/index.d.ts +0 -1
  90. package/lib/utils/index.js +0 -1
  91. package/package.json +15 -15
  92. package/plugins/dns/Dockerfile +35 -0
  93. package/plugins/dns/app/Procfile +2 -0
  94. package/plugins/dns/app/dnsmasq.conf.tmpl +11 -0
  95. package/plugins/dns/app/dnsmasq.sh +28 -0
  96. package/plugins/proxy/Dockerfile +0 -2
  97. package/bin/ws.js +0 -6
  98. package/lib/RootModule.d.ts +0 -6
  99. package/lib/RootModule.js +0 -93
  100. package/lib/controllers/ProjectController.d.ts +0 -45
  101. package/lib/controllers/ProjectController.js +0 -972
  102. package/lib/controllers/index.d.ts +0 -5
  103. package/lib/controllers/index.js +0 -21
  104. package/lib/services/NpmService.d.ts +0 -5
  105. package/lib/types/index.d.ts +0 -1
  106. package/lib/types/index.js +0 -17
  107. package/lib/utils/followProgress2.d.ts +0 -1
  108. package/lib/utils/followProgress2.js +0 -63
  109. /package/lib/{modules/app/index.d.ts → AppModule.d.ts} +0 -0
  110. /package/lib/{controllers → modules/core/controllers}/CompletionController.d.ts +0 -0
  111. /package/lib/{controllers → modules/core/controllers}/CompletionController.js +0 -0
  112. /package/lib/{controllers → modules/core/controllers}/DebugController.d.ts +0 -0
  113. /package/lib/{controllers → modules/core/controllers}/DebugController.js +0 -0
  114. /package/lib/{controllers → modules/core/controllers}/ExperimentalController.d.ts +0 -0
  115. /package/lib/{controllers → modules/core/controllers}/ExperimentalController.js +0 -0
  116. /package/lib/{types/PackageInfo.js → modules/docker/type/ComposeConfig.js} +0 -0
  117. /package/lib/{types → modules/package-manager/types}/PackageInfo.d.ts +0 -0
@@ -0,0 +1,10 @@
1
+ import { DockerService } from "../../docker";
2
+ export declare class DnsService {
3
+ protected readonly dockerService: DockerService;
4
+ protected imageName: string;
5
+ protected containerName: string;
6
+ constructor(dockerService: DockerService);
7
+ start(restart?: boolean, rebuild?: boolean): Promise<void>;
8
+ stop(): Promise<void>;
9
+ build(rebuild?: boolean): Promise<void>;
10
+ }
@@ -0,0 +1,77 @@
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.DnsService = void 0;
16
+ const core_1 = require("@wocker/core");
17
+ const path_1 = __importDefault(require("path"));
18
+ const docker_1 = require("../../docker");
19
+ const env_1 = require("../../../env");
20
+ let DnsService = class DnsService {
21
+ constructor(dockerService) {
22
+ this.dockerService = dockerService;
23
+ this.imageName = "wocker-dns:0.0.1";
24
+ this.containerName = "wocker-dns";
25
+ }
26
+ async start(restart, rebuild) {
27
+ console.info("Starting DNS service...");
28
+ console.info("DNS service currently isn't working");
29
+ if (restart || rebuild) {
30
+ await this.dockerService.removeContainer(this.containerName);
31
+ }
32
+ await this.build(rebuild);
33
+ let container = await this.dockerService.getContainer(this.containerName);
34
+ const fs = new core_1.FileSystem(`${env_1.ROOT_DIR}/plugins/dns`);
35
+ if (!fs.exists("etc/dnsmasq.conf")) {
36
+ fs.writeFile("etc/dnsmasq.conf", "");
37
+ }
38
+ if (!container) {
39
+ container = await this.dockerService.createContainer({
40
+ name: this.containerName,
41
+ image: this.imageName,
42
+ volumes: [
43
+ "/var/run/docker.sock.raw:/var/run/docker.sock:ro",
44
+ "/var/run/docker.sock.raw:/tmp/docker.sock:ro",
45
+ `${fs.path("app/Procfile")}:/app/Procfile`,
46
+ `${fs.path("app/dnsmasq.conf.tmpl")}:/app/dnsmasq.conf.tmpl`,
47
+ `${fs.path("etc/dnsmasq.conf")}:/etc/dnsmasq.conf`
48
+ ]
49
+ });
50
+ }
51
+ const { State: { Running } } = await container.inspect();
52
+ if (!Running) {
53
+ await container.start();
54
+ }
55
+ }
56
+ async stop() {
57
+ await this.dockerService.removeContainer(this.containerName);
58
+ }
59
+ async build(rebuild) {
60
+ if (await this.dockerService.imageExists(this.imageName)) {
61
+ if (!rebuild) {
62
+ return;
63
+ }
64
+ await this.dockerService.imageRm(this.imageName);
65
+ }
66
+ await this.dockerService.buildImage({
67
+ tag: this.imageName,
68
+ dockerfile: "./Dockerfile",
69
+ context: path_1.default.join(env_1.ROOT_DIR, "fixtures/dns")
70
+ });
71
+ }
72
+ };
73
+ exports.DnsService = DnsService;
74
+ exports.DnsService = DnsService = __decorate([
75
+ (0, core_1.Injectable)(),
76
+ __metadata("design:paramtypes", [docker_1.DockerService])
77
+ ], DnsService);
@@ -1,3 +1,4 @@
1
+ import { ComposeService } from "./services/ComposeService";
1
2
  import { ContainerService } from "./services/ContainerService";
2
3
  import { DockerService } from "./services/DockerService";
3
4
  import { ImageService } from "./services/ImageService";
@@ -5,4 +6,4 @@ import { ModemService } from "./services/ModemService";
5
6
  import { ProtoService } from "./services/ProtoService";
6
7
  export declare class DockerModule {
7
8
  }
8
- export { ContainerService, DockerService, ImageService, ModemService, ProtoService };
9
+ export { ComposeService, ContainerService, DockerService, ImageService, ModemService, ProtoService };
@@ -6,8 +6,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ProtoService = exports.ModemService = exports.ImageService = exports.DockerService = exports.ContainerService = exports.DockerModule = void 0;
9
+ exports.ProtoService = exports.ModemService = exports.ImageService = exports.DockerService = exports.ContainerService = exports.ComposeService = exports.DockerModule = void 0;
10
10
  const core_1 = require("@wocker/core");
11
+ const ComposeService_1 = require("./services/ComposeService");
12
+ Object.defineProperty(exports, "ComposeService", { enumerable: true, get: function () { return ComposeService_1.ComposeService; } });
11
13
  const ContainerService_1 = require("./services/ContainerService");
12
14
  Object.defineProperty(exports, "ContainerService", { enumerable: true, get: function () { return ContainerService_1.ContainerService; } });
13
15
  const DockerService_1 = require("./services/DockerService");
@@ -24,6 +26,7 @@ exports.DockerModule = DockerModule;
24
26
  exports.DockerModule = DockerModule = __decorate([
25
27
  (0, core_1.Module)({
26
28
  providers: [
29
+ ComposeService_1.ComposeService,
27
30
  ContainerService_1.ContainerService,
28
31
  DockerService_1.DockerService,
29
32
  ImageService_1.ImageService,
@@ -31,6 +34,7 @@ exports.DockerModule = DockerModule = __decorate([
31
34
  ProtoService_1.ProtoService
32
35
  ],
33
36
  exports: [
37
+ ComposeService_1.ComposeService,
34
38
  ContainerService_1.ContainerService,
35
39
  DockerService_1.DockerService,
36
40
  ImageService_1.ImageService,
@@ -0,0 +1,32 @@
1
+ import { LogService } from "@wocker/core";
2
+ import { ComposeConfig } from "../type/ComposeConfig";
3
+ type UpOptions = {
4
+ composefile: string;
5
+ context: string;
6
+ };
7
+ type DownOptions = {
8
+ composefile: string;
9
+ context: string;
10
+ };
11
+ type BuildOptions = {
12
+ composefile: string;
13
+ context: string;
14
+ };
15
+ type ExecOptions = {
16
+ service: string;
17
+ args: string[];
18
+ composefile: string;
19
+ context: string;
20
+ };
21
+ export declare class ComposeService {
22
+ protected readonly logService: LogService;
23
+ constructor(logService: LogService);
24
+ up(options: UpOptions): Promise<void>;
25
+ down(options: DownOptions): Promise<void>;
26
+ build(options: BuildOptions): Promise<void>;
27
+ exec(options: ExecOptions): Promise<void>;
28
+ protected getConfig(context: string, composefile: string): ComposeConfig;
29
+ protected getConfigAsString(context: string, composefile: string): string;
30
+ protected processChunk(chunk: Buffer<ArrayBufferLike>, streamSource?: "stdout" | "stderr"): void;
31
+ }
32
+ export {};
@@ -0,0 +1,127 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.ComposeService = void 0;
49
+ const core_1 = require("@wocker/core");
50
+ const yaml_1 = __importDefault(require("yaml"));
51
+ const compose = __importStar(require("docker-compose"));
52
+ let ComposeService = class ComposeService {
53
+ constructor(logService) {
54
+ this.logService = logService;
55
+ }
56
+ async up(options) {
57
+ const { context, composefile } = options;
58
+ const res = await compose.upAll({
59
+ cwd: context,
60
+ configAsString: this.getConfigAsString(context, composefile),
61
+ callback: (chunk, streamSource) => this.processChunk(chunk, streamSource)
62
+ });
63
+ this.logService.debug("compose up", res);
64
+ }
65
+ async down(options) {
66
+ const { context, composefile } = options;
67
+ const res = await compose.downAll({
68
+ cwd: context,
69
+ configAsString: this.getConfigAsString(context, composefile),
70
+ callback: (chunk, streamSource) => this.processChunk(chunk, streamSource)
71
+ });
72
+ this.logService.debug("compose down", res);
73
+ }
74
+ async build(options) {
75
+ const { context, composefile } = options;
76
+ const res = await compose.buildAll({
77
+ cwd: context,
78
+ config: composefile,
79
+ callback: (chunk, streamSource) => this.processChunk(chunk, streamSource)
80
+ });
81
+ this.logService.debug("build", res);
82
+ }
83
+ async exec(options) {
84
+ const { service, args, context, composefile } = options;
85
+ await compose.exec(service, args, {
86
+ configAsString: this.getConfigAsString(context, composefile),
87
+ callback: (chunk, streamSource) => this.processChunk(chunk, streamSource)
88
+ });
89
+ }
90
+ getConfig(context, composefile) {
91
+ const fs = new core_1.FileSystem(context), config = fs.readYAML(composefile);
92
+ if (!config.networks) {
93
+ config.networks = {};
94
+ }
95
+ config.networks.workspace = {
96
+ external: true
97
+ };
98
+ for (const name in config.services) {
99
+ if (!config.services[name].networks) {
100
+ config.services[name].networks = [];
101
+ }
102
+ if (!config.services[name].networks.includes("workspace")) {
103
+ config.services[name].networks.push("workspace");
104
+ }
105
+ }
106
+ return config;
107
+ }
108
+ getConfigAsString(context, composefile) {
109
+ const config = this.getConfig(context, composefile);
110
+ return yaml_1.default.stringify(config);
111
+ }
112
+ processChunk(chunk, streamSource) {
113
+ switch (streamSource) {
114
+ case "stdout":
115
+ process.stdout.write(chunk);
116
+ break;
117
+ case "stderr":
118
+ process.stderr.write(chunk);
119
+ break;
120
+ }
121
+ }
122
+ };
123
+ exports.ComposeService = ComposeService;
124
+ exports.ComposeService = ComposeService = __decorate([
125
+ (0, core_1.Injectable)("DOCKER_COMPOSE_SERVICE"),
126
+ __metadata("design:paramtypes", [core_1.LogService])
127
+ ], ComposeService);
@@ -1,6 +1,6 @@
1
1
  import { LogService, DockerServiceParams as Params } from "@wocker/core";
2
- import type Docker from "dockerode";
3
2
  import { Duplex } from "stream";
3
+ import type Docker from "dockerode";
4
4
  import type { Container } from "dockerode";
5
5
  import { ModemService } from "./ModemService";
6
6
  export declare class ContainerService {
@@ -67,7 +67,6 @@ let DockerService = class DockerService extends core_1.DockerService {
67
67
  User: user,
68
68
  Image: image,
69
69
  Hostname: name,
70
- Domainname: name,
71
70
  Labels: {
72
71
  ...projectId ? { projectId } : {}
73
72
  },
@@ -126,7 +125,7 @@ let DockerService = class DockerService extends core_1.DockerService {
126
125
  },
127
126
  NetworkingConfig: {
128
127
  EndpointsConfig: networkMode === "host" ? {} : {
129
- workspace: {
128
+ [networkName]: {
130
129
  Links: links,
131
130
  Aliases: aliases || (env.VIRTUAL_HOST ? env.VIRTUAL_HOST.split(",") : undefined)
132
131
  }
@@ -141,29 +140,7 @@ let DockerService = class DockerService extends core_1.DockerService {
141
140
  await this.containerService.rm(name);
142
141
  }
143
142
  async buildImage(params) {
144
- const { tag, labels = {}, buildArgs = {}, context, src } = params;
145
- const fs = new core_1.FileSystem(context);
146
- const files = await fs.readdirFiles("", {
147
- recursive: true
148
- });
149
- const stream = await this.docker.buildImage({
150
- context,
151
- src: files
152
- }, {
153
- t: tag,
154
- labels,
155
- buildargs: Object.keys(buildArgs).reduce((res, key) => {
156
- const value = buildArgs[key];
157
- if (typeof value !== "undefined") {
158
- res[key] = typeof buildArgs[key] !== "string"
159
- ? buildArgs[key].toString()
160
- : buildArgs[key];
161
- }
162
- return res;
163
- }, {}),
164
- dockerfile: src
165
- });
166
- await this.modemService.followProgress(stream);
143
+ await this.imageService.build(params);
167
144
  }
168
145
  async imageExists(tag) {
169
146
  return this.imageService.exists(tag);
@@ -1,18 +1,12 @@
1
1
  import type Docker from "dockerode";
2
+ import { DockerServiceParams as Params } from "@wocker/core";
2
3
  import { ModemService } from "./ModemService";
3
- type BuildParams = {
4
- tag: string;
5
- context: string;
6
- dockerfile: string;
7
- version: "1" | "2";
8
- };
9
4
  export declare class ImageService {
10
5
  protected readonly modemService: ModemService;
11
6
  constructor(modemService: ModemService);
12
7
  get docker(): Docker;
13
- build(params: BuildParams): Promise<void>;
8
+ build(params: Params.BuildImage): Promise<void>;
14
9
  exists(tag: string): Promise<boolean>;
15
10
  pull(tag: string): Promise<void>;
16
11
  rm(tag: string, force?: boolean): Promise<void>;
17
12
  }
18
- export {};
@@ -20,7 +20,10 @@ let ImageService = class ImageService {
20
20
  return this.modemService.docker;
21
21
  }
22
22
  async build(params) {
23
- const { tag, context, dockerfile, version } = params;
23
+ const { version, tag, context, labels, buildArgs } = params;
24
+ const dockerfile = "dockerfile" in params
25
+ ? params.dockerfile
26
+ : params.src;
24
27
  const files = (new core_1.FileSystem(context)).readdir("", {
25
28
  recursive: true
26
29
  });
@@ -28,9 +31,18 @@ let ImageService = class ImageService {
28
31
  context,
29
32
  src: files
30
33
  }, {
34
+ version,
31
35
  t: tag,
32
- dockerfile,
33
- version
36
+ labels,
37
+ buildargs: Object.keys(buildArgs || {}).reduce((res, key) => {
38
+ const value = buildArgs[key];
39
+ if (typeof value !== "undefined") {
40
+ res[key] = typeof value !== "string" ? value.toString() : value;
41
+ }
42
+ return res;
43
+ }, {}),
44
+ rm: true,
45
+ dockerfile
34
46
  });
35
47
  await this.modemService.followProgress(stream);
36
48
  }
@@ -1,13 +1,13 @@
1
- import { ModemService as CoreModemService } from "@wocker/core";
1
+ import { ModemService as CoreModemService, LogService } from "@wocker/core";
2
2
  import type Modem from "docker-modem";
3
3
  import type Docker from "dockerode";
4
4
  import { ProtoService } from "./ProtoService";
5
5
  export declare class ModemService extends CoreModemService {
6
6
  protected readonly protoService: ProtoService;
7
+ protected readonly logService: LogService;
7
8
  protected _modem?: Modem;
8
9
  protected _docker?: Docker;
9
- protected record?: boolean;
10
- constructor(protoService: ProtoService);
10
+ constructor(protoService: ProtoService, logService: LogService);
11
11
  get modem(): Modem;
12
12
  get docker(): Docker;
13
13
  attachStream(stream: NodeJS.ReadWriteStream): Promise<NodeJS.ReadWriteStream>;
@@ -14,10 +14,10 @@ const core_1 = require("@wocker/core");
14
14
  const formatSizeUnits_1 = require("../utils/formatSizeUnits");
15
15
  const ProtoService_1 = require("./ProtoService");
16
16
  let ModemService = class ModemService extends core_1.ModemService {
17
- constructor(protoService) {
17
+ constructor(protoService, logService) {
18
18
  super();
19
19
  this.protoService = protoService;
20
- this.record = true;
20
+ this.logService = logService;
21
21
  }
22
22
  get modem() {
23
23
  if (!this._modem) {
@@ -76,13 +76,30 @@ let ModemService = class ModemService extends core_1.ModemService {
76
76
  const text = chunk.toString().replace(/}\s*\{/g, "},{"), items = JSON.parse(`[${text}]`);
77
77
  for (const item of items) {
78
78
  if (item.id === "moby.buildkit.trace") {
79
+ const StatusResponse = this.protoService.lookupType("moby.buildkit.v1.StatusResponse");
80
+ const buffer = Buffer.from(item.aux, "base64");
81
+ const decoded = StatusResponse.decode(buffer);
82
+ const obj = StatusResponse.toObject(decoded, {
83
+ enums: String,
84
+ longs: String,
85
+ bytes: String,
86
+ defaults: true
87
+ });
88
+ console.dir(obj, {
89
+ depth: null
90
+ });
79
91
  }
80
- if (item.stream) {
92
+ else if (item.id === "moby.image.id") {
93
+ console.dir(item, {
94
+ depth: null
95
+ });
96
+ }
97
+ else if (item.stream) {
81
98
  process.stdout.write(`${item.stream}`);
82
99
  line += item.stream.split("\n").length - 1;
83
100
  }
84
101
  else if (item.id) {
85
- const { id, status, processDetail: { current, total, } = {} } = item;
102
+ const { id, status, processDetail: { current, total } = {} } = item;
86
103
  if (typeof mapLines[id] === "undefined") {
87
104
  mapLines[id] = line;
88
105
  }
@@ -133,6 +150,7 @@ let ModemService = class ModemService extends core_1.ModemService {
133
150
  };
134
151
  exports.ModemService = ModemService;
135
152
  exports.ModemService = ModemService = __decorate([
136
- (0, core_1.Injectable)("MODEM_SERVICE"),
137
- __metadata("design:paramtypes", [ProtoService_1.ProtoService])
153
+ (0, core_1.Injectable)("DOCKER_MODEM_SERVICE"),
154
+ __metadata("design:paramtypes", [ProtoService_1.ProtoService,
155
+ core_1.LogService])
138
156
  ], ModemService);
@@ -7,8 +7,8 @@ class ProtoService {
7
7
  get root() {
8
8
  if (!this._root) {
9
9
  this._root = (0, protobufjs_1.loadSync)([
10
- `${env_1.ROOT_DIR}/proto/solver/pb/ops.proto`,
11
- `${env_1.ROOT_DIR}/proto/buildkit.proto`
10
+ `${env_1.ROOT_DIR}/fixtures/proto/solver/pb/ops.proto`,
11
+ `${env_1.ROOT_DIR}/fixtures/proto/buildkit.proto`
12
12
  ]);
13
13
  }
14
14
  return this._root;
@@ -0,0 +1,12 @@
1
+ export type ComposeConfig = {
2
+ services: {
3
+ [name: string]: {
4
+ networks?: string[];
5
+ };
6
+ };
7
+ networks?: {
8
+ [name: string]: {
9
+ external?: boolean;
10
+ };
11
+ };
12
+ };
@@ -1,6 +1,9 @@
1
- export * from "./app";
1
+ export * from "./core";
2
+ export * from "./dns";
2
3
  export * from "./docker";
3
4
  export * from "./keystore";
5
+ export * from "./package-manager";
6
+ export * from "./plugin";
4
7
  export * from "./preset";
5
8
  export * from "./project";
6
9
  export * from "./proxy";
@@ -14,9 +14,12 @@ 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("./app"), exports);
17
+ __exportStar(require("./core"), exports);
18
+ __exportStar(require("./dns"), exports);
18
19
  __exportStar(require("./docker"), exports);
19
20
  __exportStar(require("./keystore"), exports);
21
+ __exportStar(require("./package-manager"), exports);
22
+ __exportStar(require("./plugin"), exports);
20
23
  __exportStar(require("./preset"), exports);
21
24
  __exportStar(require("./project"), exports);
22
25
  __exportStar(require("./proxy"), exports);
@@ -5,7 +5,4 @@ export declare class KeystoreController {
5
5
  protected readonly keystoreService: KeystoreService;
6
6
  constructor(appConfigService: AppConfigService, keystoreService: KeystoreService);
7
7
  init(provider?: string): Promise<void>;
8
- add(name?: string, provider?: string): Promise<void>;
9
- inspect(name?: string, provider?: string): Promise<string | undefined>;
10
- delete(name?: string, provider?: string): Promise<void>;
11
8
  }
@@ -35,68 +35,17 @@ let KeystoreController = class KeystoreController {
35
35
  this.appConfigService.config.keystore = provider;
36
36
  this.appConfigService.save();
37
37
  }
38
- async add(name, provider) {
39
- const value = await (0, utils_1.promptInput)({
40
- message: "Secret value",
41
- type: "password"
42
- });
43
- await this.keystoreService.provider(provider).set(name, value);
44
- }
45
- async inspect(name, provider) {
46
- return this.keystoreService.provider(provider).get(name);
47
- }
48
- async delete(name, provider) {
49
- await this.keystoreService.provider(provider).delete(name);
50
- }
51
38
  };
52
39
  exports.KeystoreController = KeystoreController;
53
40
  __decorate([
54
41
  (0, core_1.Command)("keystore:init"),
55
- __param(0, (0, core_1.Option)("provider", {
56
- type: "string",
57
- description: "Keystore provider name"
58
- })),
42
+ (0, core_1.Description)("Initialize keystore"),
43
+ __param(0, (0, core_1.Option)("provider", "p")),
44
+ __param(0, (0, core_1.Description)("Keystore provider name")),
59
45
  __metadata("design:type", Function),
60
46
  __metadata("design:paramtypes", [String]),
61
47
  __metadata("design:returntype", Promise)
62
48
  ], KeystoreController.prototype, "init", null);
63
- __decorate([
64
- (0, core_1.Command)("secret:create [name]"),
65
- (0, core_1.Description)("Adds secret value to keystore"),
66
- __param(0, (0, core_1.Param)("name")),
67
- __param(1, (0, core_1.Option)("provider", {
68
- alias: "p",
69
- type: "string",
70
- description: "Provider name"
71
- })),
72
- __metadata("design:type", Function),
73
- __metadata("design:paramtypes", [String, String]),
74
- __metadata("design:returntype", Promise)
75
- ], KeystoreController.prototype, "add", null);
76
- __decorate([
77
- (0, core_1.Command)("secret:inspect [name]"),
78
- __param(0, (0, core_1.Param)("name")),
79
- __param(1, (0, core_1.Option)("provider", {
80
- type: "string",
81
- alias: "p"
82
- })),
83
- __metadata("design:type", Function),
84
- __metadata("design:paramtypes", [String, String]),
85
- __metadata("design:returntype", Promise)
86
- ], KeystoreController.prototype, "inspect", null);
87
- __decorate([
88
- (0, core_1.Command)("secret:rm [name]"),
89
- (0, core_1.Description)("Removes secret value from keystore"),
90
- __param(0, (0, core_1.Param)("name")),
91
- __param(1, (0, core_1.Option)("provider", {
92
- type: "string",
93
- alias: "p",
94
- description: "Provider name"
95
- })),
96
- __metadata("design:type", Function),
97
- __metadata("design:paramtypes", [String, String]),
98
- __metadata("design:returntype", Promise)
99
- ], KeystoreController.prototype, "delete", null);
100
49
  exports.KeystoreController = KeystoreController = __decorate([
101
50
  (0, core_1.Controller)(),
102
51
  (0, core_1.Description)("Keystore commands"),
@@ -1,13 +1,13 @@
1
- import { AppService, AppConfigService, AppFileSystemService, KeystoreService as CoreKeystoreService, KeystoreProvider } from "@wocker/core";
1
+ import { AppConfigService, AppFileSystemService, KeystoreService as CoreKeystoreService, KeystoreProvider } from "@wocker/core";
2
2
  export declare class KeystoreService extends CoreKeystoreService {
3
- protected readonly appService: AppService;
4
3
  protected readonly appConfigService: AppConfigService;
5
4
  protected readonly fs: AppFileSystemService;
6
5
  protected providers: Map<string, KeystoreProvider>;
7
- constructor(appService: AppService, appConfigService: AppConfigService, fs: AppFileSystemService);
6
+ constructor(appConfigService: AppConfigService, fs: AppFileSystemService);
8
7
  hasProvider(name: string): boolean;
9
8
  provider(name?: string): KeystoreProvider;
10
9
  get(keys: string | string[], byDefault?: string): Promise<string | undefined>;
11
10
  set(key: string, value: string): Promise<void>;
11
+ delete(key: string): Promise<void>;
12
12
  registerProvider(name: string, provider: KeystoreProvider): void;
13
13
  }
@@ -14,9 +14,8 @@ const core_1 = require("@wocker/core");
14
14
  const KeytarKeystoreProvider_1 = require("../providers/KeytarKeystoreProvider");
15
15
  const FileKeystoreProvider_1 = require("../providers/FileKeystoreProvider");
16
16
  let KeystoreService = class KeystoreService extends core_1.KeystoreService {
17
- constructor(appService, appConfigService, fs) {
17
+ constructor(appConfigService, fs) {
18
18
  super();
19
- this.appService = appService;
20
19
  this.appConfigService = appConfigService;
21
20
  this.fs = fs;
22
21
  this.providers = new Map();
@@ -57,6 +56,10 @@ let KeystoreService = class KeystoreService extends core_1.KeystoreService {
57
56
  const provider = this.provider();
58
57
  await provider.set(key, value);
59
58
  }
59
+ async delete(key) {
60
+ const provider = this.provider();
61
+ await provider.delete(key);
62
+ }
60
63
  registerProvider(name, provider) {
61
64
  if (this.providers.has(name)) {
62
65
  throw new Error(`Provider ${name} already registered`);
@@ -67,7 +70,6 @@ let KeystoreService = class KeystoreService extends core_1.KeystoreService {
67
70
  exports.KeystoreService = KeystoreService;
68
71
  exports.KeystoreService = KeystoreService = __decorate([
69
72
  (0, core_1.Injectable)("KEYSTORE_SERVICE"),
70
- __metadata("design:paramtypes", [core_1.AppService,
71
- core_1.AppConfigService,
73
+ __metadata("design:paramtypes", [core_1.AppConfigService,
72
74
  core_1.AppFileSystemService])
73
75
  ], KeystoreService);
@@ -1 +1 @@
1
- export declare const createEncryptionKey: (password: string, passwordHash: string) => Buffer<ArrayBufferLike>;
1
+ export declare const createEncryptionKey: (password: string, passwordHash: string) => NonSharedBuffer;