@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,35 @@
1
+ FROM docker.io/nginxproxy/docker-gen:0.15.0 AS docker-gen
2
+
3
+ FROM docker.io/nginxproxy/forego:0.18.3 AS forego
4
+
5
+ FROM alpine:edge
6
+
7
+ RUN set -eu && \
8
+ apk --no-cache add \
9
+ tini \
10
+ bash \
11
+ dnsmasq-dnssec && \
12
+ mkdir -p /etc/default/ && \
13
+ echo -e "ENABLED=1\nIGNORE_RESOLVCONF=yes" > /etc/default/dnsmasq && \
14
+ # rm -f /etc/dnsmasq.conf && \
15
+ rm -rf /tmp/* /var/cache/apk/*
16
+
17
+ #COPY ./dnsmasq.conf.tmpl /app/dnsmasq.conf.tmpl
18
+ #COPY ./Procfile /app/Procfile
19
+
20
+ #RUN wget https://github.com/jwilder/docker-gen/releases/download/0.3.3/docker-gen-linux-amd64-0.3.3.tar.gz && \
21
+ # tar xvzf docker-gen-linux-amd64-0.3.3.tar.gz && \
22
+ # rm docker-gen-linux-amd64-0.3.3.tar.gz && \
23
+ # mv docker-gen /usr/local/bin/
24
+
25
+ # Install Forego + docker-gen
26
+ COPY --from=forego /usr/local/bin/forego /usr/local/bin/forego
27
+ COPY --from=docker-gen /usr/local/bin/docker-gen /usr/local/bin/docker-gen
28
+
29
+ COPY app /app/
30
+ RUN chmod 755 /app/dnsmasq.sh
31
+
32
+ WORKDIR /app/
33
+
34
+ #ENTRYPOINT ["/sbin/tini", "--", "honcho", "-f", "/app/Procfile", "start"]
35
+ CMD ["forego", "start", "-r"]
@@ -0,0 +1,2 @@
1
+ dockergen: docker-gen -watch -notify "pkill -HUP dnsmasq" dnsmasq.conf.tmpl /etc/dnsmasq.conf
2
+ # dnsmasq: /app/dnsmasq.sh
@@ -0,0 +1,11 @@
1
+ {{- $globals := dict }}
2
+ {{- $_ := set $globals "containers" $ }}
3
+
4
+ {{- range $hostname, $containers := groupByMulti $globals.containers "Env.VIRTUAL_HOST" "," }}
5
+ {{ $hostname }}
6
+
7
+ {{- range $container := $containers }}
8
+ {{ printf "%#v" $container.Networks }}
9
+ {{- end }}
10
+ {{- end }}
11
+
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env bash
2
+ set -Eeuo pipefail
3
+
4
+ conf="/etc/dnsmasq.conf"
5
+
6
+ # Check if config file is not a directory
7
+ if [ -d "$conf" ]; then
8
+ echo "The bind $conf maps to a file that does not exist!"
9
+ exit 1
10
+ fi
11
+
12
+ if [ ! -f "$conf" ]; then
13
+ conf="/etc/dnsmasq.custom"
14
+ template="/etc/dnsmasq.default"
15
+
16
+ if [ ! -f "$template" ]; then
17
+ echo "Your /etc directory does not contain a valid dnsmasq.conf file!"
18
+ exit 1
19
+ fi
20
+
21
+ rm -f "$conf"
22
+ cp "$template" "$conf"
23
+
24
+ [ -n "$DNS1" ] && sed -i -e "s/1.0.0.1/$DNS1/g" "$conf"
25
+ [ -n "$DNS2" ] && sed -i -e "s/1.1.1.1/$DNS2/g" "$conf"
26
+ fi
27
+
28
+ exec dnsmasq "--conf-file=$conf" --no-daemon --no-resolv
@@ -21,5 +21,3 @@ RUN if [ -n "$SSH_PASSWORD" ]; then \
21
21
  ssh-keygen -A; \
22
22
  echo "sshd: /usr/sbin/sshd -D" >> /app/Procfile; \
23
23
  fi
24
-
25
- EXPOSE 22
package/bin/ws.js DELETED
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- const {app} = require("../lib/main.js");
4
-
5
-
6
- app.run(process.argv);
@@ -1,6 +0,0 @@
1
- import { Container } from "@wocker/core";
2
- export declare class RootModule {
3
- load(container: Container): Promise<{
4
- imports: any[];
5
- }>;
6
- }
package/lib/RootModule.js DELETED
@@ -1,93 +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 RootModule_1;
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.RootModule = void 0;
11
- const core_1 = require("@wocker/core");
12
- const controllers_1 = require("./controllers");
13
- const PluginService_1 = require("./services/PluginService");
14
- const NpmService_1 = require("./services/NpmService");
15
- const modules_1 = require("./modules");
16
- let RootModule = RootModule_1 = class RootModule {
17
- async load(container) {
18
- const appModule = container.getModule(RootModule_1), fs = appModule.get(core_1.AppFileSystemService), appConfigService = appModule.get(core_1.AppConfigService), logService = appModule.get(core_1.LogService), pluginService = appModule.get(PluginService_1.PluginService);
19
- const imports = [];
20
- for (const pluginData of appConfigService.plugins || []) {
21
- try {
22
- const plugin = await pluginService.import(pluginData.name);
23
- Reflect.defineMetadata(core_1.MODULE_METADATA.PROVIDERS, [
24
- ...Reflect.getMetadata(core_1.MODULE_METADATA.PROVIDERS, plugin.type) || [],
25
- {
26
- provide: core_1.PLUGIN_DIR_KEY,
27
- useValue: fs.path("plugins", plugin.name)
28
- }
29
- ], plugin.type);
30
- imports.push(plugin.type);
31
- }
32
- catch (err) {
33
- logService.error(err.message);
34
- appConfigService.removePlugin(pluginData.name);
35
- appConfigService.save();
36
- throw err;
37
- }
38
- }
39
- return {
40
- imports
41
- };
42
- }
43
- };
44
- exports.RootModule = RootModule;
45
- exports.RootModule = RootModule = RootModule_1 = __decorate([
46
- (0, core_1.Global)(),
47
- (0, core_1.Module)({
48
- imports: [
49
- modules_1.AppModule,
50
- modules_1.ProjectModule,
51
- modules_1.PresetModule,
52
- modules_1.DockerModule,
53
- modules_1.KeystoreModule,
54
- modules_1.ProxyModule
55
- ],
56
- controllers: [
57
- controllers_1.CompletionController,
58
- controllers_1.ProjectController,
59
- controllers_1.PluginController,
60
- controllers_1.ExperimentalController,
61
- controllers_1.DebugController
62
- ],
63
- providers: [
64
- core_1.AppService,
65
- core_1.AppFileSystemService,
66
- core_1.AppConfigService,
67
- core_1.EventService,
68
- core_1.LogService,
69
- NpmService_1.NpmService,
70
- PluginService_1.PluginService,
71
- core_1.ProcessService
72
- ],
73
- exports: [
74
- core_1.WOCKER_VERSION_KEY,
75
- core_1.WOCKER_DATA_DIR_KEY,
76
- core_1.AppService,
77
- core_1.AppFileSystemService,
78
- core_1.AppConfigService,
79
- core_1.EventService,
80
- core_1.LogService,
81
- modules_1.DockerService,
82
- modules_1.CertService,
83
- modules_1.ContainerService,
84
- modules_1.ImageService,
85
- modules_1.ProxyService,
86
- modules_1.KeystoreService,
87
- modules_1.PresetRepository,
88
- modules_1.PresetService,
89
- modules_1.ProjectService,
90
- core_1.ProcessService
91
- ]
92
- })
93
- ], RootModule);
@@ -1,45 +0,0 @@
1
- import { ProjectType, AppConfigService, EventService, LogService, ProcessService } from "@wocker/core";
2
- import { DockerService } from "../modules/docker";
3
- import { ProjectService, ProjectRepository } from "../modules/project";
4
- export declare class ProjectController {
5
- protected readonly appConfigService: AppConfigService;
6
- protected readonly processService: ProcessService;
7
- protected readonly eventService: EventService;
8
- protected readonly projectService: ProjectService;
9
- protected readonly projectRepository: ProjectRepository;
10
- protected readonly logService: LogService;
11
- protected readonly dockerService: DockerService;
12
- constructor(appConfigService: AppConfigService, processService: ProcessService, eventService: EventService, projectService: ProjectService, projectRepository: ProjectRepository, logService: LogService, dockerService: DockerService);
13
- protected getProjectNames(): Promise<string[]>;
14
- getScriptNames(): Promise<string[]>;
15
- init(name: string, type: ProjectType): Promise<void>;
16
- destroy(name?: string): Promise<void>;
17
- projectList(all: boolean): Promise<string>;
18
- domains(name?: string): Promise<string>;
19
- addDomain(addDomains: string[], name: string): Promise<void>;
20
- setDomains(domains: string[], name: string): Promise<void>;
21
- removeDomain(removeDomains: string[], name: string): Promise<void>;
22
- clearDomain(name?: string): Promise<void>;
23
- ports(name?: string): Promise<string>;
24
- addPort(hostPort: string, containerPort: string, name?: string): Promise<void>;
25
- removePort(hostPort: string, containerPort: string, name?: string): Promise<void>;
26
- clearPorts(name?: string): Promise<void>;
27
- configList(name?: string, global?: boolean): Promise<string>;
28
- configGet(keys: string[], name: string, global: boolean): Promise<string>;
29
- configSet(variables: string[], name: string, global: boolean): Promise<void>;
30
- configUnset(configs: string[], name?: string, global?: boolean): Promise<void>;
31
- buildArgsList(name?: string): Promise<string>;
32
- buildArgsGet(args: string[], name?: string): Promise<string>;
33
- buildArgsSet(args: string[], name: string): Promise<void>;
34
- buildArgsUnset(args: string[], name: string): Promise<void>;
35
- volumeList(name?: string): Promise<string>;
36
- volumeMount(volumes: string[], name: string): Promise<void>;
37
- volumeUnmount(volumes: string[], name: string): Promise<void>;
38
- extraHostList(name?: string): Promise<string>;
39
- addExtraHost(extraHost: string, extraDomain: string, name?: string): Promise<void>;
40
- removeExtraHost(extraHost: string, name?: string): Promise<void>;
41
- attach(name?: string): Promise<void>;
42
- exec(command?: string[], name?: string): Promise<void>;
43
- run(script: string, args?: string[], name?: string): Promise<void>;
44
- logs(name?: string, global?: boolean, detach?: boolean, follow?: boolean, clear?: boolean): Promise<void>;
45
- }