@northflank/js-client 0.4.1 → 0.5.0-beta.0

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 (257) hide show
  1. package/dist/cjs/api-client.d.ts +6013 -0
  2. package/dist/cjs/api-client.js +1 -0
  3. package/dist/cjs/package.json +3 -0
  4. package/dist/esm/api-client.d.ts +6013 -0
  5. package/dist/esm/api-client.js +15 -0
  6. package/dist/esm/package.json +3 -0
  7. package/package.json +12 -19
  8. package/dist/api-client.d.ts +0 -481
  9. package/dist/api-client.js +0 -748
  10. package/dist/api-endpoint.d.ts +0 -63
  11. package/dist/api-endpoint.js +0 -216
  12. package/dist/context/api-client-context-provider.d.ts +0 -47
  13. package/dist/context/api-client-context-provider.js +0 -332
  14. package/dist/context/api-client-file-context-provider.d.ts +0 -11
  15. package/dist/context/api-client-file-context-provider.js +0 -138
  16. package/dist/context/api-client-in-memory-context-provider.d.ts +0 -6
  17. package/dist/context/api-client-in-memory-context-provider.js +0 -82
  18. package/dist/context/index.d.ts +0 -3
  19. package/dist/context/index.js +0 -15
  20. package/dist/endpoints/abort/addon/backup.d.ts +0 -21
  21. package/dist/endpoints/abort/addon/backup.js +0 -36
  22. package/dist/endpoints/abort/addon/restore.d.ts +0 -26
  23. package/dist/endpoints/abort/addon/restore.js +0 -36
  24. package/dist/endpoints/abort/job/build.d.ts +0 -21
  25. package/dist/endpoints/abort/job/build.js +0 -36
  26. package/dist/endpoints/abort/job/run.d.ts +0 -21
  27. package/dist/endpoints/abort/job/run.js +0 -36
  28. package/dist/endpoints/abort/service/build.d.ts +0 -21
  29. package/dist/endpoints/abort/service/build.js +0 -36
  30. package/dist/endpoints/add/domain/subdomain.d.ts +0 -33
  31. package/dist/endpoints/add/domain/subdomain.js +0 -36
  32. package/dist/endpoints/add/registryCredentials.d.ts +0 -47
  33. package/dist/endpoints/add/registryCredentials.js +0 -36
  34. package/dist/endpoints/assign/subdomain/service.d.ts +0 -28
  35. package/dist/endpoints/assign/subdomain/service.js +0 -36
  36. package/dist/endpoints/backup/addon.d.ts +0 -51
  37. package/dist/endpoints/backup/addon.js +0 -36
  38. package/dist/endpoints/create/addon.d.ts +0 -90
  39. package/dist/endpoints/create/addon.js +0 -36
  40. package/dist/endpoints/create/domain.d.ts +0 -27
  41. package/dist/endpoints/create/domain.js +0 -36
  42. package/dist/endpoints/create/job/cron.d.ts +0 -157
  43. package/dist/endpoints/create/job/cron.js +0 -36
  44. package/dist/endpoints/create/job/manual.d.ts +0 -147
  45. package/dist/endpoints/create/job/manual.js +0 -36
  46. package/dist/endpoints/create/project.d.ts +0 -29
  47. package/dist/endpoints/create/project.js +0 -36
  48. package/dist/endpoints/create/secret.d.ts +0 -79
  49. package/dist/endpoints/create/secret.js +0 -36
  50. package/dist/endpoints/create/service/build.d.ts +0 -116
  51. package/dist/endpoints/create/service/build.js +0 -36
  52. package/dist/endpoints/create/service/combined.d.ts +0 -166
  53. package/dist/endpoints/create/service/combined.js +0 -36
  54. package/dist/endpoints/create/service/deployment.d.ts +0 -137
  55. package/dist/endpoints/create/service/deployment.js +0 -36
  56. package/dist/endpoints/delete/addon.d.ts +0 -19
  57. package/dist/endpoints/delete/addon.js +0 -36
  58. package/dist/endpoints/delete/backup.d.ts +0 -21
  59. package/dist/endpoints/delete/backup.js +0 -36
  60. package/dist/endpoints/delete/domain.d.ts +0 -17
  61. package/dist/endpoints/delete/domain.js +0 -36
  62. package/dist/endpoints/delete/job.d.ts +0 -19
  63. package/dist/endpoints/delete/job.js +0 -36
  64. package/dist/endpoints/delete/project.d.ts +0 -17
  65. package/dist/endpoints/delete/project.js +0 -36
  66. package/dist/endpoints/delete/registryCredentials.d.ts +0 -17
  67. package/dist/endpoints/delete/registryCredentials.js +0 -36
  68. package/dist/endpoints/delete/secret.d.ts +0 -19
  69. package/dist/endpoints/delete/secret.js +0 -36
  70. package/dist/endpoints/delete/secretLink.d.ts +0 -21
  71. package/dist/endpoints/delete/secretLink.js +0 -36
  72. package/dist/endpoints/delete/service.d.ts +0 -19
  73. package/dist/endpoints/delete/service.js +0 -36
  74. package/dist/endpoints/delete/subdomain.d.ts +0 -19
  75. package/dist/endpoints/delete/subdomain.js +0 -36
  76. package/dist/endpoints/get/addon/backup/download.d.ts +0 -24
  77. package/dist/endpoints/get/addon/backup/download.js +0 -36
  78. package/dist/endpoints/get/addon/backup.d.ts +0 -46
  79. package/dist/endpoints/get/addon/backup.js +0 -36
  80. package/dist/endpoints/get/addon/backups.d.ts +0 -54
  81. package/dist/endpoints/get/addon/backups.js +0 -40
  82. package/dist/endpoints/get/addon/containers.d.ts +0 -40
  83. package/dist/endpoints/get/addon/containers.js +0 -40
  84. package/dist/endpoints/get/addon/credentials.d.ts +0 -24
  85. package/dist/endpoints/get/addon/credentials.js +0 -36
  86. package/dist/endpoints/get/addon/types.d.ts +0 -48
  87. package/dist/endpoints/get/addon/types.js +0 -36
  88. package/dist/endpoints/get/addon/version.d.ts +0 -53
  89. package/dist/endpoints/get/addon/version.js +0 -36
  90. package/dist/endpoints/get/addon.d.ts +0 -69
  91. package/dist/endpoints/get/addon.js +0 -36
  92. package/dist/endpoints/get/dnsId.d.ts +0 -15
  93. package/dist/endpoints/get/dnsId.js +0 -36
  94. package/dist/endpoints/get/domain.d.ts +0 -33
  95. package/dist/endpoints/get/domain.js +0 -36
  96. package/dist/endpoints/get/job/buildArguments.d.ts +0 -19
  97. package/dist/endpoints/get/job/buildArguments.js +0 -36
  98. package/dist/endpoints/get/job/builds.d.ts +0 -50
  99. package/dist/endpoints/get/job/builds.js +0 -39
  100. package/dist/endpoints/get/job/containers.d.ts +0 -40
  101. package/dist/endpoints/get/job/containers.js +0 -40
  102. package/dist/endpoints/get/job/deployment.d.ts +0 -51
  103. package/dist/endpoints/get/job/deployment.js +0 -36
  104. package/dist/endpoints/get/job/environment.d.ts +0 -24
  105. package/dist/endpoints/get/job/environment.js +0 -40
  106. package/dist/endpoints/get/job/environmentDetails.d.ts +0 -42
  107. package/dist/endpoints/get/job/environmentDetails.js +0 -36
  108. package/dist/endpoints/get/job/healthChecks.d.ts +0 -44
  109. package/dist/endpoints/get/job/healthChecks.js +0 -36
  110. package/dist/endpoints/get/job/run.d.ts +0 -42
  111. package/dist/endpoints/get/job/run.js +0 -36
  112. package/dist/endpoints/get/job/runs.d.ts +0 -52
  113. package/dist/endpoints/get/job/runs.js +0 -39
  114. package/dist/endpoints/get/job.d.ts +0 -86
  115. package/dist/endpoints/get/job.js +0 -36
  116. package/dist/endpoints/get/project.d.ts +0 -72
  117. package/dist/endpoints/get/project.js +0 -36
  118. package/dist/endpoints/get/registryCredentials.d.ts +0 -34
  119. package/dist/endpoints/get/registryCredentials.js +0 -36
  120. package/dist/endpoints/get/secret.d.ts +0 -55
  121. package/dist/endpoints/get/secret.js +0 -39
  122. package/dist/endpoints/get/secretDetails.d.ts +0 -63
  123. package/dist/endpoints/get/secretDetails.js +0 -36
  124. package/dist/endpoints/get/secretLink.d.ts +0 -44
  125. package/dist/endpoints/get/secretLink.js +0 -36
  126. package/dist/endpoints/get/service/buildArguments.d.ts +0 -19
  127. package/dist/endpoints/get/service/buildArguments.js +0 -36
  128. package/dist/endpoints/get/service/builds.d.ts +0 -50
  129. package/dist/endpoints/get/service/builds.js +0 -40
  130. package/dist/endpoints/get/service/containers.d.ts +0 -40
  131. package/dist/endpoints/get/service/containers.js +0 -40
  132. package/dist/endpoints/get/service/deployment.d.ts +0 -51
  133. package/dist/endpoints/get/service/deployment.js +0 -36
  134. package/dist/endpoints/get/service/environmentVariableDetails.d.ts +0 -42
  135. package/dist/endpoints/get/service/environmentVariableDetails.js +0 -36
  136. package/dist/endpoints/get/service/environmentVariables.d.ts +0 -24
  137. package/dist/endpoints/get/service/environmentVariables.js +0 -40
  138. package/dist/endpoints/get/service/healthChecks.d.ts +0 -44
  139. package/dist/endpoints/get/service/healthChecks.js +0 -36
  140. package/dist/endpoints/get/service/ports.d.ts +0 -35
  141. package/dist/endpoints/get/service/ports.js +0 -36
  142. package/dist/endpoints/get/service.d.ts +0 -103
  143. package/dist/endpoints/get/service.js +0 -36
  144. package/dist/endpoints/get/subdomain.d.ts +0 -30
  145. package/dist/endpoints/get/subdomain.js +0 -36
  146. package/dist/endpoints/import/addon/backup.d.ts +0 -31
  147. package/dist/endpoints/import/addon/backup.js +0 -36
  148. package/dist/endpoints/list/addons.d.ts +0 -45
  149. package/dist/endpoints/list/addons.js +0 -39
  150. package/dist/endpoints/list/domains.d.ts +0 -34
  151. package/dist/endpoints/list/domains.js +0 -39
  152. package/dist/endpoints/list/jobs.d.ts +0 -44
  153. package/dist/endpoints/list/jobs.js +0 -39
  154. package/dist/endpoints/list/plans.d.ts +0 -30
  155. package/dist/endpoints/list/plans.js +0 -36
  156. package/dist/endpoints/list/projects.d.ts +0 -32
  157. package/dist/endpoints/list/projects.js +0 -39
  158. package/dist/endpoints/list/regions.d.ts +0 -18
  159. package/dist/endpoints/list/regions.js +0 -36
  160. package/dist/endpoints/list/registryCredentials.d.ts +0 -41
  161. package/dist/endpoints/list/registryCredentials.js +0 -39
  162. package/dist/endpoints/list/secrets.d.ts +0 -52
  163. package/dist/endpoints/list/secrets.js +0 -39
  164. package/dist/endpoints/list/services.d.ts +0 -44
  165. package/dist/endpoints/list/services.js +0 -39
  166. package/dist/endpoints/list/vcs.d.ts +0 -51
  167. package/dist/endpoints/list/vcs.js +0 -36
  168. package/dist/endpoints/pause/addon.d.ts +0 -19
  169. package/dist/endpoints/pause/addon.js +0 -36
  170. package/dist/endpoints/pause/service.d.ts +0 -19
  171. package/dist/endpoints/pause/service.js +0 -36
  172. package/dist/endpoints/restart/addon.d.ts +0 -19
  173. package/dist/endpoints/restart/addon.js +0 -36
  174. package/dist/endpoints/restart/service.d.ts +0 -19
  175. package/dist/endpoints/restart/service.js +0 -36
  176. package/dist/endpoints/restore/addon/backup.d.ts +0 -21
  177. package/dist/endpoints/restore/addon/backup.js +0 -36
  178. package/dist/endpoints/resume/addon.d.ts +0 -19
  179. package/dist/endpoints/resume/addon.js +0 -36
  180. package/dist/endpoints/resume/service.d.ts +0 -24
  181. package/dist/endpoints/resume/service.js +0 -36
  182. package/dist/endpoints/scale/addon.d.ts +0 -28
  183. package/dist/endpoints/scale/addon.js +0 -36
  184. package/dist/endpoints/scale/service.d.ts +0 -26
  185. package/dist/endpoints/scale/service.js +0 -36
  186. package/dist/endpoints/start/job/build.d.ts +0 -37
  187. package/dist/endpoints/start/job/build.js +0 -36
  188. package/dist/endpoints/start/job/run.d.ts +0 -37
  189. package/dist/endpoints/start/job/run.js +0 -36
  190. package/dist/endpoints/start/service/build.d.ts +0 -41
  191. package/dist/endpoints/start/service/build.js +0 -36
  192. package/dist/endpoints/unassign/subdomain.d.ts +0 -19
  193. package/dist/endpoints/unassign/subdomain.js +0 -36
  194. package/dist/endpoints/update/addon/networkSettings.d.ts +0 -26
  195. package/dist/endpoints/update/addon/networkSettings.js +0 -36
  196. package/dist/endpoints/update/addon/security.d.ts +0 -29
  197. package/dist/endpoints/update/addon/security.js +0 -36
  198. package/dist/endpoints/update/addon/version.d.ts +0 -24
  199. package/dist/endpoints/update/addon/version.js +0 -36
  200. package/dist/endpoints/update/job/buildArguments.d.ts +0 -24
  201. package/dist/endpoints/update/job/buildArguments.js +0 -36
  202. package/dist/endpoints/update/job/cmdOverride.d.ts +0 -24
  203. package/dist/endpoints/update/job/cmdOverride.js +0 -36
  204. package/dist/endpoints/update/job/deployment.d.ts +0 -37
  205. package/dist/endpoints/update/job/deployment.js +0 -36
  206. package/dist/endpoints/update/job/environment.d.ts +0 -24
  207. package/dist/endpoints/update/job/environment.js +0 -36
  208. package/dist/endpoints/update/job/healthChecks.d.ts +0 -45
  209. package/dist/endpoints/update/job/healthChecks.js +0 -36
  210. package/dist/endpoints/update/job/settings.d.ts +0 -30
  211. package/dist/endpoints/update/job/settings.js +0 -36
  212. package/dist/endpoints/update/registryCredentials.d.ts +0 -31
  213. package/dist/endpoints/update/registryCredentials.js +0 -36
  214. package/dist/endpoints/update/secret.d.ts +0 -54
  215. package/dist/endpoints/update/secret.js +0 -36
  216. package/dist/endpoints/update/secretLink.d.ts +0 -40
  217. package/dist/endpoints/update/secretLink.js +0 -36
  218. package/dist/endpoints/update/service/buildArguments.d.ts +0 -24
  219. package/dist/endpoints/update/service/buildArguments.js +0 -36
  220. package/dist/endpoints/update/service/buildOptions.d.ts +0 -52
  221. package/dist/endpoints/update/service/buildOptions.js +0 -36
  222. package/dist/endpoints/update/service/cmdOverride.d.ts +0 -24
  223. package/dist/endpoints/update/service/cmdOverride.js +0 -36
  224. package/dist/endpoints/update/service/deployment.d.ts +0 -37
  225. package/dist/endpoints/update/service/deployment.js +0 -36
  226. package/dist/endpoints/update/service/environmentVariables.d.ts +0 -29
  227. package/dist/endpoints/update/service/environmentVariables.js +0 -36
  228. package/dist/endpoints/update/service/healthChecks.d.ts +0 -45
  229. package/dist/endpoints/update/service/healthChecks.js +0 -36
  230. package/dist/endpoints/update/service/ports.d.ts +0 -55
  231. package/dist/endpoints/update/service/ports.js +0 -36
  232. package/dist/endpoints/verify/domain.d.ts +0 -17
  233. package/dist/endpoints/verify/domain.js +0 -36
  234. package/dist/endpoints/verify/subdomain.d.ts +0 -19
  235. package/dist/endpoints/verify/subdomain.js +0 -36
  236. package/dist/port-forward/client/api-helper.d.ts +0 -30
  237. package/dist/port-forward/client/api-helper.js +0 -102
  238. package/dist/port-forward/client/atomic-write.d.ts +0 -3
  239. package/dist/port-forward/client/atomic-write.js +0 -95
  240. package/dist/port-forward/client/host-file-ast.d.ts +0 -52
  241. package/dist/port-forward/client/host-file-ast.js +0 -279
  242. package/dist/port-forward/client/host-file.d.ts +0 -26
  243. package/dist/port-forward/client/host-file.js +0 -226
  244. package/dist/port-forward/client/loopback.d.ts +0 -4
  245. package/dist/port-forward/client/loopback.js +0 -219
  246. package/dist/port-forward/client/port-forwarder.d.ts +0 -86
  247. package/dist/port-forward/client/port-forwarder.js +0 -593
  248. package/dist/port-forward/client/port-tunnel-tcp.d.ts +0 -34
  249. package/dist/port-forward/client/port-tunnel-tcp.js +0 -209
  250. package/dist/port-forward/client/port-tunnel-udp.d.ts +0 -25
  251. package/dist/port-forward/client/port-tunnel-udp.js +0 -147
  252. package/dist/port-forward/client/port-tunnel.d.ts +0 -32
  253. package/dist/port-forward/client/port-tunnel.js +0 -2
  254. package/dist/port-forward/client/promise-mutex.d.ts +0 -4
  255. package/dist/port-forward/client/promise-mutex.js +0 -62
  256. package/dist/utils.d.ts +0 -8
  257. package/dist/utils.js +0 -97
@@ -1,279 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __spreadArray = (this && this.__spreadArray) || function (to, from) {
14
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
15
- to[j] = from[i];
16
- return to;
17
- };
18
- var __importDefault = (this && this.__importDefault) || function (mod) {
19
- return (mod && mod.__esModule) ? mod : { "default": mod };
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.parseHostsFile = exports.generateHostsFile = exports.HostsFileAst = void 0;
23
- var lodash_1 = __importDefault(require("lodash"));
24
- var isWindows = process.platform === 'win32';
25
- var DEFAULT_EOL = isWindows ? '\r\n' : '\n';
26
- var DEFAULT_INDENT = 17;
27
- var HostsFileAst = /** @class */ (function () {
28
- function HostsFileAst(nodes, config) {
29
- this.nodes = nodes;
30
- this.config = config;
31
- }
32
- HostsFileAst.prototype.add = function (ip, hosts, header) {
33
- var _this = this;
34
- if (hosts.length === 0) {
35
- return this;
36
- }
37
- var entry = this.findOrCreateEntry(ip, header);
38
- hosts.forEach(function (host) {
39
- // Host already exists?
40
- if (entry.hosts.find(function (e) { return e.host === host; })) {
41
- return;
42
- }
43
- var whitespace = 1;
44
- // Prefix first host entry with appropriate whitespace
45
- if (entry.hosts.length === 0) {
46
- whitespace = _this.config.indent - ("" + entry.ipPrefixWhitespace + entry.ip).length;
47
- }
48
- entry.hosts.push({
49
- whitespace: ' '.repeat(whitespace < 1 ? 1 : whitespace),
50
- host: host,
51
- });
52
- });
53
- return this;
54
- };
55
- HostsFileAst.prototype.remove = function (ip, hosts) {
56
- var _this = this;
57
- this.findEntries(ip).forEach(function (entry) {
58
- hosts.forEach(function (host) {
59
- var hostEntry = entry.hosts.findIndex(function (e) { return e.host === host; });
60
- if (hostEntry < 0) {
61
- return;
62
- }
63
- // Retain whitespace between ip and first host
64
- if (hostEntry === 0 && entry.hosts[1] !== undefined) {
65
- // eslint-disable-next-line no-param-reassign
66
- entry.hosts[1].whitespace = entry.hosts[0].whitespace;
67
- }
68
- entry.hosts.splice(hostEntry, 1);
69
- // Remove empty entry nodes (after the last host was removed)
70
- if (entry.hosts.length === 0) {
71
- _this.removeEntry(entry);
72
- }
73
- });
74
- });
75
- return this;
76
- };
77
- HostsFileAst.prototype.removeHosts = function (hosts) {
78
- var _this = this;
79
- filterNodes(this.nodes, 'entry').forEach(function (entry) {
80
- _this.remove(entry.ip, hosts);
81
- });
82
- };
83
- HostsFileAst.prototype.removeIps = function (ips) {
84
- var _this = this;
85
- ips.forEach(function (ip) {
86
- _this.findEntries(ip).forEach(function (entry) { return _this.removeEntry(entry); });
87
- });
88
- return this;
89
- };
90
- HostsFileAst.prototype.resolveHosts = function (ip) {
91
- return lodash_1.default.flatMap(this.findEntries(ip), function (e) { return e.hosts.map(function (h) { return h.host; }); });
92
- };
93
- HostsFileAst.prototype.resolveIps = function (host) {
94
- return filterNodes(this.nodes, 'entry')
95
- .filter(function (entry) { return entry.hosts.some(function (h) { return h.host === host; }); })
96
- .map(function (entry) { return entry.ip; });
97
- };
98
- HostsFileAst.prototype.toString = function () {
99
- return exports.generateHostsFile(this.nodes, this.config.eol);
100
- };
101
- HostsFileAst.prototype.removeEntry = function (entryOrIndex) {
102
- var index = lodash_1.default.isNumber(entryOrIndex)
103
- ? entryOrIndex
104
- : this.nodes.findIndex(function (e) { return e === entryOrIndex; });
105
- if (index < 0) {
106
- return;
107
- }
108
- this.nodes.splice(index, 1);
109
- };
110
- HostsFileAst.prototype.findEntries = function (ip) {
111
- return filterNodes(this.nodes, 'entry').filter(function (e) { return e.ip === ip; });
112
- };
113
- HostsFileAst.prototype.findOrCreateEntry = function (ip, header) {
114
- var existingEntry = this.findEntries(ip)[0];
115
- // Existing entry
116
- if (existingEntry) {
117
- return existingEntry;
118
- }
119
- var newEntry = this.makeEntry(ip);
120
- if (header) {
121
- var headerFormatted_1 = formatHeader(header);
122
- var headerEntryIndex = this.nodes.findIndex(function (e) { return e.type === 'comment' && e.line === headerFormatted_1; });
123
- if (headerEntryIndex >= 0) {
124
- this.insertAt(headerEntryIndex + 1, newEntry);
125
- }
126
- else {
127
- var needsNewline = this.nodes[this.nodes.length - 1].type !== 'blank';
128
- var newNodes = needsNewline
129
- ? [blankNode(), commentNode(headerFormatted_1), newEntry]
130
- : [commentNode(headerFormatted_1), newEntry];
131
- this.insertAt.apply(this, __spreadArray([this.nodes.length], newNodes));
132
- }
133
- }
134
- else {
135
- this.insertAt(this.nodes.length, newEntry);
136
- }
137
- return newEntry;
138
- };
139
- HostsFileAst.prototype.insertAt = function (index) {
140
- var _a;
141
- var nodes = [];
142
- for (var _i = 1; _i < arguments.length; _i++) {
143
- nodes[_i - 1] = arguments[_i];
144
- }
145
- (_a = this.nodes).splice.apply(_a, __spreadArray([index, 0], nodes));
146
- };
147
- HostsFileAst.prototype.makeEntry = function (ip, options) {
148
- var ipPrefixWhitespace = this.config.ipPrefixWhitespace;
149
- return __assign({ type: 'entry', ip: ip, ipPrefixWhitespace: ipPrefixWhitespace, hosts: [] }, options);
150
- };
151
- HostsFileAst.fromNodes = function (nodes, options) {
152
- var _a, _b;
153
- var getDefaultEOL = function () {
154
- var _a;
155
- var eol = filterNodes(nodes, 'eol').map(function (value) { return value.line; });
156
- return (_a = getMostCommonValue(eol)) !== null && _a !== void 0 ? _a : DEFAULT_EOL;
157
- };
158
- var getDefaultIndent = function () {
159
- var _a;
160
- var indents = lodash_1.default.flatMap(filterNodes(nodes, 'entry'), function (_a) {
161
- var ipPrefixWhitespace = _a.ipPrefixWhitespace, ip = _a.ip, hosts = _a.hosts;
162
- var firstHost = hosts[0];
163
- if (!firstHost) {
164
- return [];
165
- }
166
- var lineUntilFirstHost = "" + ipPrefixWhitespace + ip + firstHost.whitespace;
167
- return [lineUntilFirstHost.length];
168
- });
169
- return (_a = getMostCommonValue(indents)) !== null && _a !== void 0 ? _a : DEFAULT_INDENT;
170
- };
171
- return new HostsFileAst(nodes.filter(function (n) { return n.type !== 'eol'; }), {
172
- eol: (_a = options === null || options === void 0 ? void 0 : options.eol) !== null && _a !== void 0 ? _a : getDefaultEOL(),
173
- indent: (_b = options === null || options === void 0 ? void 0 : options.indent) !== null && _b !== void 0 ? _b : getDefaultIndent(),
174
- ipPrefixWhitespace: '',
175
- });
176
- };
177
- HostsFileAst.parse = function (data, options) {
178
- return this.fromNodes(exports.parseHostsFile(data), options);
179
- };
180
- return HostsFileAst;
181
- }());
182
- exports.HostsFileAst = HostsFileAst;
183
- var blankNode = function () { return ({
184
- type: 'blank',
185
- line: '',
186
- }); };
187
- var commentNode = function (comment) { return ({
188
- type: 'comment',
189
- line: formatHeader(comment),
190
- }); };
191
- var formatHeader = function (header) { return (header.startsWith('#') ? header : "# " + header); };
192
- var generateHostsFile = function (nodes, eol) {
193
- var nodeStrings = nodes.map(function (n) {
194
- switch (n.type) {
195
- case 'entry': {
196
- var hosts = n.hosts.map(function (_a) {
197
- var whitespace = _a.whitespace, host = _a.host;
198
- return "" + whitespace + host;
199
- }).join('');
200
- return "" + n.ipPrefixWhitespace + n.ip + hosts;
201
- }
202
- case 'blank':
203
- return n.line;
204
- case 'comment':
205
- return n.line;
206
- case 'invalid':
207
- return n.line;
208
- case 'eol':
209
- default:
210
- return '';
211
- }
212
- });
213
- return nodeStrings.join(eol !== null && eol !== void 0 ? eol : DEFAULT_EOL);
214
- };
215
- exports.generateHostsFile = generateHostsFile;
216
- var parseHostsFile = function (data) {
217
- var isComment = function (line) { return line.match(/^\s*#.*$/); };
218
- var isWhitespace = function (line) { return line.match(/^\s*$/); };
219
- var isEndOfLine = function (line) { return line.match(/^(\r?\n)$/); };
220
- var lines = data.split(/(\r?\n)/);
221
- return lines.map(function (line) {
222
- if (isComment(line))
223
- return { type: 'comment', line: line };
224
- if (isEndOfLine(line))
225
- return { type: 'eol', line: line };
226
- if (isWhitespace(line))
227
- return { type: 'blank', line: line };
228
- return parseHostsEntry(line);
229
- });
230
- };
231
- exports.parseHostsFile = parseHostsFile;
232
- var parseHostsEntry = function (line) {
233
- var tokens = line.match(/^(\s*)(\S+)(.+)?$/);
234
- if (!tokens) {
235
- return { type: 'invalid', line: line };
236
- }
237
- var ipPrefixWhitespace = tokens[1], ip = tokens[2], hostsRaw = tokens.slice(3);
238
- var invalid = false;
239
- var hostsWithoutUndefined = hostsRaw.filter(function (token) { return token !== undefined; });
240
- var hosts = lodash_1.default.flatMap(hostsWithoutUndefined, function (token) {
241
- var hostElements = token.match(/(\s+)(\S+)/g);
242
- if (!hostElements) {
243
- invalid = true;
244
- return [];
245
- }
246
- return hostElements.map(function (element) {
247
- var match = element.match(/^(\s+)(\S+)$/);
248
- if (!match) {
249
- invalid = true;
250
- }
251
- var _a = match !== null && match !== void 0 ? match : [], whitespace = _a[1], host = _a[2];
252
- return { whitespace: whitespace, host: host };
253
- });
254
- });
255
- if (invalid) {
256
- return { type: 'invalid', line: line };
257
- }
258
- return {
259
- type: 'entry',
260
- ipPrefixWhitespace: ipPrefixWhitespace,
261
- ip: ip,
262
- hosts: hosts,
263
- };
264
- };
265
- var filterNodes = function (nodes, type) {
266
- return nodes.filter(function (n) { return n.type === type; });
267
- };
268
- var getMostCommonValue = function (values) {
269
- var histogram = new Map();
270
- values.forEach(function (v) {
271
- var _a;
272
- histogram.set(v, ((_a = histogram.get(v)) !== null && _a !== void 0 ? _a : 0) + 1);
273
- });
274
- var max = lodash_1.default.maxBy(Array.from(histogram.entries()), function (a) { return a[1]; });
275
- if (max) {
276
- return max[0];
277
- }
278
- return undefined;
279
- };
@@ -1,26 +0,0 @@
1
- import { HostsFileAstOptions } from './host-file-ast';
2
- export declare type HostsFileOptions = Partial<HostsFileConfig>;
3
- export declare type HostsFileWriteMode = 'disabled' | 'atomic' | 'standard';
4
- export interface HostsFileConfig extends Partial<HostsFileAstOptions> {
5
- writeMode: HostsFileWriteMode;
6
- header?: string;
7
- hostsFile: string;
8
- }
9
- export declare class HostsFile {
10
- private readonly config;
11
- private ast;
12
- constructor(options?: HostsFileOptions);
13
- add(ip: string, ...hosts: string[]): this;
14
- remove(ip: string, ...hosts: string[]): this;
15
- removeHosts(...hosts: string[]): this;
16
- removeIps(...ips: string[]): this;
17
- read(): Promise<this>;
18
- write(options?: {
19
- writeMode?: HostsFileWriteMode;
20
- }): Promise<this>;
21
- backup(options: {
22
- suffix: string;
23
- rewrite?: boolean;
24
- }): Promise<void>;
25
- static load(options?: HostsFileOptions): Promise<HostsFile>;
26
- }
@@ -1,226 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
- }) : (function(o, m, k, k2) {
17
- if (k2 === undefined) k2 = k;
18
- o[k2] = m[k];
19
- }));
20
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
- Object.defineProperty(o, "default", { enumerable: true, value: v });
22
- }) : function(o, v) {
23
- o["default"] = v;
24
- });
25
- var __importStar = (this && this.__importStar) || function (mod) {
26
- if (mod && mod.__esModule) return mod;
27
- var result = {};
28
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
- __setModuleDefault(result, mod);
30
- return result;
31
- };
32
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
33
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
34
- return new (P || (P = Promise))(function (resolve, reject) {
35
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
36
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
37
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
38
- step((generator = generator.apply(thisArg, _arguments || [])).next());
39
- });
40
- };
41
- var __generator = (this && this.__generator) || function (thisArg, body) {
42
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
43
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
44
- function verb(n) { return function (v) { return step([n, v]); }; }
45
- function step(op) {
46
- if (f) throw new TypeError("Generator is already executing.");
47
- while (_) try {
48
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
49
- if (y = 0, t) op = [op[0] & 2, t.value];
50
- switch (op[0]) {
51
- case 0: case 1: t = op; break;
52
- case 4: _.label++; return { value: op[1], done: false };
53
- case 5: _.label++; y = op[1]; op = [0]; continue;
54
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
55
- default:
56
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
57
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
58
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
59
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
60
- if (t[2]) _.ops.pop();
61
- _.trys.pop(); continue;
62
- }
63
- op = body.call(thisArg, _);
64
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
65
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
66
- }
67
- };
68
- var __importDefault = (this && this.__importDefault) || function (mod) {
69
- return (mod && mod.__esModule) ? mod : { "default": mod };
70
- };
71
- Object.defineProperty(exports, "__esModule", { value: true });
72
- exports.HostsFile = void 0;
73
- var lodash_1 = __importDefault(require("lodash"));
74
- var fs_1 = __importDefault(require("fs"));
75
- var path_1 = __importDefault(require("path"));
76
- var fsAtomic = __importStar(require("./atomic-write"));
77
- var host_file_ast_1 = require("./host-file-ast");
78
- var isWindows = process.platform === 'win32';
79
- var DEFAULT_HOSTS = isWindows ? 'C:/Windows/System32/drivers/etc/hosts' : '/etc/hosts';
80
- var HostsFile = /** @class */ (function () {
81
- function HostsFile(options) {
82
- this.ast = host_file_ast_1.HostsFileAst.fromNodes([]);
83
- var defaults = {
84
- writeMode: 'atomic',
85
- hostsFile: DEFAULT_HOSTS,
86
- };
87
- this.config = __assign(__assign({}, defaults), options);
88
- }
89
- HostsFile.prototype.add = function (ip) {
90
- var hosts = [];
91
- for (var _i = 1; _i < arguments.length; _i++) {
92
- hosts[_i - 1] = arguments[_i];
93
- }
94
- if (!lodash_1.default.isString(ip)) {
95
- throw new Error("Expected 'ip' to be a string, but got " + typeof ip + ".");
96
- }
97
- hosts.forEach(function (host) {
98
- if (!lodash_1.default.isString(host)) {
99
- throw new Error("Expected 'host' to be a string, but got " + typeof host + ".");
100
- }
101
- });
102
- this.ast.add(ip, hosts, this.config.header);
103
- return this;
104
- };
105
- HostsFile.prototype.remove = function (ip) {
106
- var hosts = [];
107
- for (var _i = 1; _i < arguments.length; _i++) {
108
- hosts[_i - 1] = arguments[_i];
109
- }
110
- if (!lodash_1.default.isString(ip)) {
111
- throw new Error("Expected 'ip' to be a string, but got " + typeof ip + ".");
112
- }
113
- hosts.forEach(function (host) {
114
- if (!lodash_1.default.isString(host)) {
115
- throw new Error("Expected 'host' to be a string, but got " + typeof host + ".");
116
- }
117
- });
118
- this.ast.remove(ip, hosts);
119
- return this;
120
- };
121
- HostsFile.prototype.removeHosts = function () {
122
- var hosts = [];
123
- for (var _i = 0; _i < arguments.length; _i++) {
124
- hosts[_i] = arguments[_i];
125
- }
126
- hosts.forEach(function (host) {
127
- if (!lodash_1.default.isString(host)) {
128
- throw new Error("Expected 'host' to be a string, but got " + typeof host + ".");
129
- }
130
- });
131
- this.ast.removeHosts(hosts);
132
- return this;
133
- };
134
- HostsFile.prototype.removeIps = function () {
135
- var ips = [];
136
- for (var _i = 0; _i < arguments.length; _i++) {
137
- ips[_i] = arguments[_i];
138
- }
139
- ips.forEach(function (ip) {
140
- if (!lodash_1.default.isString(ip)) {
141
- throw new Error("Expected 'ip' to be a string, but got " + typeof ip + ".");
142
- }
143
- });
144
- this.ast.removeIps(ips);
145
- return this;
146
- };
147
- HostsFile.prototype.read = function () {
148
- return __awaiter(this, void 0, void 0, function () {
149
- var buffer;
150
- return __generator(this, function (_a) {
151
- switch (_a.label) {
152
- case 0: return [4 /*yield*/, fs_1.default.promises.readFile(this.config.hostsFile)];
153
- case 1:
154
- buffer = _a.sent();
155
- this.ast = host_file_ast_1.HostsFileAst.parse(buffer.toString(), this.config);
156
- return [2 /*return*/, this];
157
- }
158
- });
159
- });
160
- };
161
- HostsFile.prototype.write = function (options) {
162
- return __awaiter(this, void 0, void 0, function () {
163
- var _a, hostsFile, writeMode, data, _b;
164
- return __generator(this, function (_c) {
165
- switch (_c.label) {
166
- case 0:
167
- _a = __assign(__assign({}, this.config), options), hostsFile = _a.hostsFile, writeMode = _a.writeMode;
168
- data = this.ast.toString();
169
- _b = writeMode;
170
- switch (_b) {
171
- case undefined: return [3 /*break*/, 1];
172
- case 'atomic': return [3 /*break*/, 1];
173
- case 'standard': return [3 /*break*/, 3];
174
- case 'disabled': return [3 /*break*/, 5];
175
- }
176
- return [3 /*break*/, 5];
177
- case 1: return [4 /*yield*/, fsAtomic.writeFile(hostsFile, data)];
178
- case 2:
179
- _c.sent();
180
- return [3 /*break*/, 6];
181
- case 3: return [4 /*yield*/, fs_1.default.promises.writeFile(hostsFile, data)];
182
- case 4:
183
- _c.sent();
184
- return [3 /*break*/, 6];
185
- case 5: return [3 /*break*/, 6];
186
- case 6: return [2 /*return*/, this];
187
- }
188
- });
189
- });
190
- };
191
- HostsFile.prototype.backup = function (options) {
192
- return __awaiter(this, void 0, void 0, function () {
193
- var dirname, basename, newBaseName, newHostsFile;
194
- return __generator(this, function (_a) {
195
- switch (_a.label) {
196
- case 0:
197
- if (!fs_1.default.existsSync(this.config.hostsFile)) {
198
- return [2 /*return*/];
199
- }
200
- dirname = path_1.default.dirname(this.config.hostsFile);
201
- basename = path_1.default.basename(this.config.hostsFile);
202
- newBaseName = "" + basename + options.suffix;
203
- newHostsFile = path_1.default.resolve(dirname, newBaseName);
204
- if (!(!fs_1.default.existsSync(newHostsFile) || options.rewrite)) return [3 /*break*/, 2];
205
- return [4 /*yield*/, fs_1.default.promises.copyFile(this.config.hostsFile, newHostsFile)];
206
- case 1:
207
- _a.sent();
208
- _a.label = 2;
209
- case 2: return [2 /*return*/];
210
- }
211
- });
212
- });
213
- };
214
- HostsFile.load = function (options) {
215
- return __awaiter(this, void 0, void 0, function () {
216
- return __generator(this, function (_a) {
217
- switch (_a.label) {
218
- case 0: return [4 /*yield*/, new HostsFile(options).read()];
219
- case 1: return [2 /*return*/, _a.sent()];
220
- }
221
- });
222
- });
223
- };
224
- return HostsFile;
225
- }());
226
- exports.HostsFile = HostsFile;
@@ -1,4 +0,0 @@
1
- export declare const findAvailableLoopbackIp: (port: number, ipMinStr?: string | undefined, ipMaxStr?: string | undefined) => Promise<string>;
2
- export declare const isPortAvailableForIp: (port: number, ip?: string | undefined) => Promise<unknown>;
3
- export declare const ip2int: (ip: string) => number;
4
- export declare const int2ip: (int: number) => string;