ysk-server-core 1.0.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 (1526) hide show
  1. package/README.md +16 -0
  2. package/dist/agents/comms.d.ts +33 -0
  3. package/dist/agents/comms.d.ts.map +1 -0
  4. package/dist/agents/comms.js +67 -0
  5. package/dist/agents/comms.js.map +1 -0
  6. package/dist/agents/fleet.d.ts +60 -0
  7. package/dist/agents/fleet.d.ts.map +1 -0
  8. package/dist/agents/fleet.js +260 -0
  9. package/dist/agents/fleet.js.map +1 -0
  10. package/dist/agents/index.d.ts +7 -0
  11. package/dist/agents/index.d.ts.map +1 -0
  12. package/dist/agents/index.js +7 -0
  13. package/dist/agents/index.js.map +1 -0
  14. package/dist/agents/install.d.ts +34 -0
  15. package/dist/agents/install.d.ts.map +1 -0
  16. package/dist/agents/install.js +154 -0
  17. package/dist/agents/install.js.map +1 -0
  18. package/dist/agents/outbound-agent.d.ts +40 -0
  19. package/dist/agents/outbound-agent.d.ts.map +1 -0
  20. package/dist/agents/outbound-agent.js +135 -0
  21. package/dist/agents/outbound-agent.js.map +1 -0
  22. package/dist/agents/probe.d.ts +44 -0
  23. package/dist/agents/probe.d.ts.map +1 -0
  24. package/dist/agents/probe.js +129 -0
  25. package/dist/agents/probe.js.map +1 -0
  26. package/dist/agents/runtime.d.ts +25 -0
  27. package/dist/agents/runtime.d.ts.map +1 -0
  28. package/dist/agents/runtime.js +82 -0
  29. package/dist/agents/runtime.js.map +1 -0
  30. package/dist/config/schema.d.ts +58 -0
  31. package/dist/config/schema.d.ts.map +1 -0
  32. package/dist/config/schema.js +112 -0
  33. package/dist/config/schema.js.map +1 -0
  34. package/dist/db/database.d.ts +24 -0
  35. package/dist/db/database.d.ts.map +1 -0
  36. package/dist/db/database.js +31 -0
  37. package/dist/db/database.js.map +1 -0
  38. package/dist/db/document-store.d.ts +66 -0
  39. package/dist/db/document-store.d.ts.map +1 -0
  40. package/dist/db/document-store.js +363 -0
  41. package/dist/db/document-store.js.map +1 -0
  42. package/dist/db/index.d.ts +4 -0
  43. package/dist/db/index.d.ts.map +1 -0
  44. package/dist/db/index.js +4 -0
  45. package/dist/db/index.js.map +1 -0
  46. package/dist/db/schema.d.ts +8 -0
  47. package/dist/db/schema.d.ts.map +1 -0
  48. package/dist/db/schema.js +124 -0
  49. package/dist/db/schema.js.map +1 -0
  50. package/dist/db/store.d.ts +257 -0
  51. package/dist/db/store.d.ts.map +1 -0
  52. package/dist/db/store.js +100 -0
  53. package/dist/db/store.js.map +1 -0
  54. package/dist/email/autodiscover.d.ts +17 -0
  55. package/dist/email/autodiscover.d.ts.map +1 -0
  56. package/dist/email/autodiscover.js +70 -0
  57. package/dist/email/autodiscover.js.map +1 -0
  58. package/dist/email/deliverability.d.ts +55 -0
  59. package/dist/email/deliverability.d.ts.map +1 -0
  60. package/dist/email/deliverability.js +135 -0
  61. package/dist/email/deliverability.js.map +1 -0
  62. package/dist/email/dns-records.d.ts +70 -0
  63. package/dist/email/dns-records.d.ts.map +1 -0
  64. package/dist/email/dns-records.js +249 -0
  65. package/dist/email/dns-records.js.map +1 -0
  66. package/dist/email/dnsbl.d.ts +45 -0
  67. package/dist/email/dnsbl.d.ts.map +1 -0
  68. package/dist/email/dnsbl.js +127 -0
  69. package/dist/email/dnsbl.js.map +1 -0
  70. package/dist/email/domain-flags-apply.d.ts +78 -0
  71. package/dist/email/domain-flags-apply.d.ts.map +1 -0
  72. package/dist/email/domain-flags-apply.js +304 -0
  73. package/dist/email/domain-flags-apply.js.map +1 -0
  74. package/dist/email/dovecot-passdb.d.ts +59 -0
  75. package/dist/email/dovecot-passdb.d.ts.map +1 -0
  76. package/dist/email/dovecot-passdb.js +220 -0
  77. package/dist/email/dovecot-passdb.js.map +1 -0
  78. package/dist/email/email-bootstrap.d.ts +69 -0
  79. package/dist/email/email-bootstrap.d.ts.map +1 -0
  80. package/dist/email/email-bootstrap.js +294 -0
  81. package/dist/email/email-bootstrap.js.map +1 -0
  82. package/dist/email/index.d.ts +22 -0
  83. package/dist/email/index.d.ts.map +1 -0
  84. package/dist/email/index.js +22 -0
  85. package/dist/email/index.js.map +1 -0
  86. package/dist/email/live-checks.d.ts +52 -0
  87. package/dist/email/live-checks.d.ts.map +1 -0
  88. package/dist/email/live-checks.js +124 -0
  89. package/dist/email/live-checks.js.map +1 -0
  90. package/dist/email/mail-policy.d.ts +24 -0
  91. package/dist/email/mail-policy.d.ts.map +1 -0
  92. package/dist/email/mail-policy.js +318 -0
  93. package/dist/email/mail-policy.js.map +1 -0
  94. package/dist/email/mail-queue.d.ts +23 -0
  95. package/dist/email/mail-queue.d.ts.map +1 -0
  96. package/dist/email/mail-queue.js +188 -0
  97. package/dist/email/mail-queue.js.map +1 -0
  98. package/dist/email/mail-tls-apply.d.ts +31 -0
  99. package/dist/email/mail-tls-apply.d.ts.map +1 -0
  100. package/dist/email/mail-tls-apply.js +134 -0
  101. package/dist/email/mail-tls-apply.js.map +1 -0
  102. package/dist/email/password-hash.d.ts +16 -0
  103. package/dist/email/password-hash.d.ts.map +1 -0
  104. package/dist/email/password-hash.js +56 -0
  105. package/dist/email/password-hash.js.map +1 -0
  106. package/dist/email/relay.d.ts +45 -0
  107. package/dist/email/relay.d.ts.map +1 -0
  108. package/dist/email/relay.js +122 -0
  109. package/dist/email/relay.js.map +1 -0
  110. package/dist/email/roundcube-sso-plugin.d.ts +44 -0
  111. package/dist/email/roundcube-sso-plugin.d.ts.map +1 -0
  112. package/dist/email/roundcube-sso-plugin.js +278 -0
  113. package/dist/email/roundcube-sso-plugin.js.map +1 -0
  114. package/dist/email/sender-rate-policy.d.ts +24 -0
  115. package/dist/email/sender-rate-policy.d.ts.map +1 -0
  116. package/dist/email/sender-rate-policy.js +245 -0
  117. package/dist/email/sender-rate-policy.js.map +1 -0
  118. package/dist/email/service.d.ts +211 -0
  119. package/dist/email/service.d.ts.map +1 -0
  120. package/dist/email/service.js +1017 -0
  121. package/dist/email/service.js.map +1 -0
  122. package/dist/email/sieve.d.ts +32 -0
  123. package/dist/email/sieve.d.ts.map +1 -0
  124. package/dist/email/sieve.js +80 -0
  125. package/dist/email/sieve.js.map +1 -0
  126. package/dist/email/warmup.d.ts +26 -0
  127. package/dist/email/warmup.d.ts.map +1 -0
  128. package/dist/email/warmup.js +59 -0
  129. package/dist/email/warmup.js.map +1 -0
  130. package/dist/email/webmail-apply.d.ts +40 -0
  131. package/dist/email/webmail-apply.d.ts.map +1 -0
  132. package/dist/email/webmail-apply.js +191 -0
  133. package/dist/email/webmail-apply.js.map +1 -0
  134. package/dist/email/webmail-project.d.ts +194 -0
  135. package/dist/email/webmail-project.d.ts.map +1 -0
  136. package/dist/email/webmail-project.js +1365 -0
  137. package/dist/email/webmail-project.js.map +1 -0
  138. package/dist/email/webmail-sso.d.ts +40 -0
  139. package/dist/email/webmail-sso.d.ts.map +1 -0
  140. package/dist/email/webmail-sso.js +87 -0
  141. package/dist/email/webmail-sso.js.map +1 -0
  142. package/dist/errors/index.d.ts +2 -0
  143. package/dist/errors/index.d.ts.map +1 -0
  144. package/dist/errors/index.js +2 -0
  145. package/dist/errors/index.js.map +1 -0
  146. package/dist/files/index.d.ts +5 -0
  147. package/dist/files/index.d.ts.map +1 -0
  148. package/dist/files/index.js +5 -0
  149. package/dist/files/index.js.map +1 -0
  150. package/dist/files/manager.d.ts +172 -0
  151. package/dist/files/manager.d.ts.map +1 -0
  152. package/dist/files/manager.js +525 -0
  153. package/dist/files/manager.js.map +1 -0
  154. package/dist/files/shares.d.ts +36 -0
  155. package/dist/files/shares.d.ts.map +1 -0
  156. package/dist/files/shares.js +136 -0
  157. package/dist/files/shares.js.map +1 -0
  158. package/dist/files/versions.d.ts +16 -0
  159. package/dist/files/versions.d.ts.map +1 -0
  160. package/dist/files/versions.js +90 -0
  161. package/dist/files/versions.js.map +1 -0
  162. package/dist/files/webdav.d.ts +42 -0
  163. package/dist/files/webdav.d.ts.map +1 -0
  164. package/dist/files/webdav.js +116 -0
  165. package/dist/files/webdav.js.map +1 -0
  166. package/dist/host/executor.d.ts +93 -0
  167. package/dist/host/executor.d.ts.map +1 -0
  168. package/dist/host/executor.js +764 -0
  169. package/dist/host/executor.js.map +1 -0
  170. package/dist/host/health.d.ts +29 -0
  171. package/dist/host/health.d.ts.map +1 -0
  172. package/dist/host/health.js +132 -0
  173. package/dist/host/health.js.map +1 -0
  174. package/dist/host/host-job.d.ts +27 -0
  175. package/dist/host/host-job.d.ts.map +1 -0
  176. package/dist/host/host-job.js +38 -0
  177. package/dist/host/host-job.js.map +1 -0
  178. package/dist/host/host-overview.d.ts +54 -0
  179. package/dist/host/host-overview.d.ts.map +1 -0
  180. package/dist/host/host-overview.js +459 -0
  181. package/dist/host/host-overview.js.map +1 -0
  182. package/dist/host/host-power.d.ts +27 -0
  183. package/dist/host/host-power.d.ts.map +1 -0
  184. package/dist/host/host-power.js +99 -0
  185. package/dist/host/host-power.js.map +1 -0
  186. package/dist/host/index.d.ts +7 -0
  187. package/dist/host/index.d.ts.map +1 -0
  188. package/dist/host/index.js +7 -0
  189. package/dist/host/index.js.map +1 -0
  190. package/dist/host/timezones.d.ts +19 -0
  191. package/dist/host/timezones.d.ts.map +1 -0
  192. package/dist/host/timezones.js +64 -0
  193. package/dist/host/timezones.js.map +1 -0
  194. package/dist/host-browse/audio-bridge.d.ts +20 -0
  195. package/dist/host-browse/audio-bridge.d.ts.map +1 -0
  196. package/dist/host-browse/audio-bridge.js +96 -0
  197. package/dist/host-browse/audio-bridge.js.map +1 -0
  198. package/dist/host-browse/bookmarks.d.ts +44 -0
  199. package/dist/host-browse/bookmarks.d.ts.map +1 -0
  200. package/dist/host-browse/bookmarks.js +54 -0
  201. package/dist/host-browse/bookmarks.js.map +1 -0
  202. package/dist/host-browse/browser-engine.d.ts +167 -0
  203. package/dist/host-browse/browser-engine.d.ts.map +1 -0
  204. package/dist/host-browse/browser-engine.js +777 -0
  205. package/dist/host-browse/browser-engine.js.map +1 -0
  206. package/dist/host-browse/chrome-as-user.d.ts +34 -0
  207. package/dist/host-browse/chrome-as-user.d.ts.map +1 -0
  208. package/dist/host-browse/chrome-as-user.js +131 -0
  209. package/dist/host-browse/chrome-as-user.js.map +1 -0
  210. package/dist/host-browse/chrome-probe.d.ts +11 -0
  211. package/dist/host-browse/chrome-probe.d.ts.map +1 -0
  212. package/dist/host-browse/chrome-probe.js +62 -0
  213. package/dist/host-browse/chrome-probe.js.map +1 -0
  214. package/dist/host-browse/cookie-jar.d.ts +25 -0
  215. package/dist/host-browse/cookie-jar.d.ts.map +1 -0
  216. package/dist/host-browse/cookie-jar.js +126 -0
  217. package/dist/host-browse/cookie-jar.js.map +1 -0
  218. package/dist/host-browse/danger.d.ts +20 -0
  219. package/dist/host-browse/danger.d.ts.map +1 -0
  220. package/dist/host-browse/danger.js +84 -0
  221. package/dist/host-browse/danger.js.map +1 -0
  222. package/dist/host-browse/downloads.d.ts +31 -0
  223. package/dist/host-browse/downloads.d.ts.map +1 -0
  224. package/dist/host-browse/downloads.js +61 -0
  225. package/dist/host-browse/downloads.js.map +1 -0
  226. package/dist/host-browse/ephemeral-user.d.ts +39 -0
  227. package/dist/host-browse/ephemeral-user.d.ts.map +1 -0
  228. package/dist/host-browse/ephemeral-user.js +100 -0
  229. package/dist/host-browse/ephemeral-user.js.map +1 -0
  230. package/dist/host-browse/headers.d.ts +18 -0
  231. package/dist/host-browse/headers.d.ts.map +1 -0
  232. package/dist/host-browse/headers.js +93 -0
  233. package/dist/host-browse/headers.js.map +1 -0
  234. package/dist/host-browse/index.d.ts +18 -0
  235. package/dist/host-browse/index.d.ts.map +1 -0
  236. package/dist/host-browse/index.js +18 -0
  237. package/dist/host-browse/index.js.map +1 -0
  238. package/dist/host-browse/live-ticket.d.ts +19 -0
  239. package/dist/host-browse/live-ticket.d.ts.map +1 -0
  240. package/dist/host-browse/live-ticket.js +39 -0
  241. package/dist/host-browse/live-ticket.js.map +1 -0
  242. package/dist/host-browse/rewrite-html.d.ts +22 -0
  243. package/dist/host-browse/rewrite-html.d.ts.map +1 -0
  244. package/dist/host-browse/rewrite-html.js +134 -0
  245. package/dist/host-browse/rewrite-html.js.map +1 -0
  246. package/dist/host-browse/service.d.ts +122 -0
  247. package/dist/host-browse/service.d.ts.map +1 -0
  248. package/dist/host-browse/service.js +934 -0
  249. package/dist/host-browse/service.js.map +1 -0
  250. package/dist/host-browse/session-store.d.ts +57 -0
  251. package/dist/host-browse/session-store.d.ts.map +1 -0
  252. package/dist/host-browse/session-store.js +182 -0
  253. package/dist/host-browse/session-store.js.map +1 -0
  254. package/dist/host-browse/ssrf.d.ts +27 -0
  255. package/dist/host-browse/ssrf.d.ts.map +1 -0
  256. package/dist/host-browse/ssrf.js +191 -0
  257. package/dist/host-browse/ssrf.js.map +1 -0
  258. package/dist/host-browse/stream-presets.d.ts +33 -0
  259. package/dist/host-browse/stream-presets.d.ts.map +1 -0
  260. package/dist/host-browse/stream-presets.js +84 -0
  261. package/dist/host-browse/stream-presets.js.map +1 -0
  262. package/dist/host-browse/types.d.ts +151 -0
  263. package/dist/host-browse/types.d.ts.map +1 -0
  264. package/dist/host-browse/types.js +42 -0
  265. package/dist/host-browse/types.js.map +1 -0
  266. package/dist/hosting/adminer.d.ts +21 -0
  267. package/dist/hosting/adminer.d.ts.map +1 -0
  268. package/dist/hosting/adminer.js +183 -0
  269. package/dist/hosting/adminer.js.map +1 -0
  270. package/dist/hosting/apache/artifacts.d.ts +57 -0
  271. package/dist/hosting/apache/artifacts.d.ts.map +1 -0
  272. package/dist/hosting/apache/artifacts.js +309 -0
  273. package/dist/hosting/apache/artifacts.js.map +1 -0
  274. package/dist/hosting/apache/index.d.ts +8 -0
  275. package/dist/hosting/apache/index.d.ts.map +1 -0
  276. package/dist/hosting/apache/index.js +8 -0
  277. package/dist/hosting/apache/index.js.map +1 -0
  278. package/dist/hosting/apache/render-site.d.ts +17 -0
  279. package/dist/hosting/apache/render-site.d.ts.map +1 -0
  280. package/dist/hosting/apache/render-site.js +93 -0
  281. package/dist/hosting/apache/render-site.js.map +1 -0
  282. package/dist/hosting/apache/service.d.ts +27 -0
  283. package/dist/hosting/apache/service.d.ts.map +1 -0
  284. package/dist/hosting/apache/service.js +162 -0
  285. package/dist/hosting/apache/service.js.map +1 -0
  286. package/dist/hosting/apache/settings.d.ts +25 -0
  287. package/dist/hosting/apache/settings.d.ts.map +1 -0
  288. package/dist/hosting/apache/settings.js +104 -0
  289. package/dist/hosting/apache/settings.js.map +1 -0
  290. package/dist/hosting/apache/sites-list.d.ts +51 -0
  291. package/dist/hosting/apache/sites-list.d.ts.map +1 -0
  292. package/dist/hosting/apache/sites-list.js +188 -0
  293. package/dist/hosting/apache/sites-list.js.map +1 -0
  294. package/dist/hosting/apache/sync.d.ts +24 -0
  295. package/dist/hosting/apache/sync.d.ts.map +1 -0
  296. package/dist/hosting/apache/sync.js +148 -0
  297. package/dist/hosting/apache/sync.js.map +1 -0
  298. package/dist/hosting/apache/types.d.ts +28 -0
  299. package/dist/hosting/apache/types.d.ts.map +1 -0
  300. package/dist/hosting/apache/types.js +9 -0
  301. package/dist/hosting/apache/types.js.map +1 -0
  302. package/dist/hosting/app-templates.d.ts +44 -0
  303. package/dist/hosting/app-templates.d.ts.map +1 -0
  304. package/dist/hosting/app-templates.js +477 -0
  305. package/dist/hosting/app-templates.js.map +1 -0
  306. package/dist/hosting/apply-audit.d.ts +31 -0
  307. package/dist/hosting/apply-audit.d.ts.map +1 -0
  308. package/dist/hosting/apply-audit.js +149 -0
  309. package/dist/hosting/apply-audit.js.map +1 -0
  310. package/dist/hosting/apply-honesty.d.ts +25 -0
  311. package/dist/hosting/apply-honesty.d.ts.map +1 -0
  312. package/dist/hosting/apply-honesty.js +16 -0
  313. package/dist/hosting/apply-honesty.js.map +1 -0
  314. package/dist/hosting/backup-cron.d.ts +299 -0
  315. package/dist/hosting/backup-cron.d.ts.map +1 -0
  316. package/dist/hosting/backup-cron.js +1021 -0
  317. package/dist/hosting/backup-cron.js.map +1 -0
  318. package/dist/hosting/backup-remote.d.ts +44 -0
  319. package/dist/hosting/backup-remote.d.ts.map +1 -0
  320. package/dist/hosting/backup-remote.js +196 -0
  321. package/dist/hosting/backup-remote.js.map +1 -0
  322. package/dist/hosting/backup-restic.d.ts +82 -0
  323. package/dist/hosting/backup-restic.d.ts.map +1 -0
  324. package/dist/hosting/backup-restic.js +290 -0
  325. package/dist/hosting/backup-restic.js.map +1 -0
  326. package/dist/hosting/bt-tracker/index.d.ts +10 -0
  327. package/dist/hosting/bt-tracker/index.d.ts.map +1 -0
  328. package/dist/hosting/bt-tracker/index.js +10 -0
  329. package/dist/hosting/bt-tracker/index.js.map +1 -0
  330. package/dist/hosting/bt-tracker/prepare-share-bt.d.ts +17 -0
  331. package/dist/hosting/bt-tracker/prepare-share-bt.d.ts.map +1 -0
  332. package/dist/hosting/bt-tracker/prepare-share-bt.js +54 -0
  333. package/dist/hosting/bt-tracker/prepare-share-bt.js.map +1 -0
  334. package/dist/hosting/bt-tracker/process.d.ts +28 -0
  335. package/dist/hosting/bt-tracker/process.d.ts.map +1 -0
  336. package/dist/hosting/bt-tracker/process.js +210 -0
  337. package/dist/hosting/bt-tracker/process.js.map +1 -0
  338. package/dist/hosting/bt-tracker/restore-shares.d.ts +24 -0
  339. package/dist/hosting/bt-tracker/restore-shares.d.ts.map +1 -0
  340. package/dist/hosting/bt-tracker/restore-shares.js +140 -0
  341. package/dist/hosting/bt-tracker/restore-shares.js.map +1 -0
  342. package/dist/hosting/bt-tracker/scrape.d.ts +23 -0
  343. package/dist/hosting/bt-tracker/scrape.d.ts.map +1 -0
  344. package/dist/hosting/bt-tracker/scrape.js +147 -0
  345. package/dist/hosting/bt-tracker/scrape.js.map +1 -0
  346. package/dist/hosting/bt-tracker/seeder.d.ts +45 -0
  347. package/dist/hosting/bt-tracker/seeder.d.ts.map +1 -0
  348. package/dist/hosting/bt-tracker/seeder.js +154 -0
  349. package/dist/hosting/bt-tracker/seeder.js.map +1 -0
  350. package/dist/hosting/bt-tracker/service.d.ts +99 -0
  351. package/dist/hosting/bt-tracker/service.d.ts.map +1 -0
  352. package/dist/hosting/bt-tracker/service.js +405 -0
  353. package/dist/hosting/bt-tracker/service.js.map +1 -0
  354. package/dist/hosting/bt-tracker/settings.d.ts +38 -0
  355. package/dist/hosting/bt-tracker/settings.d.ts.map +1 -0
  356. package/dist/hosting/bt-tracker/settings.js +151 -0
  357. package/dist/hosting/bt-tracker/settings.js.map +1 -0
  358. package/dist/hosting/bt-tracker/torrent-create.d.ts +44 -0
  359. package/dist/hosting/bt-tracker/torrent-create.d.ts.map +1 -0
  360. package/dist/hosting/bt-tracker/torrent-create.js +194 -0
  361. package/dist/hosting/bt-tracker/torrent-create.js.map +1 -0
  362. package/dist/hosting/bt-tracker/torrent-jobs.d.ts +40 -0
  363. package/dist/hosting/bt-tracker/torrent-jobs.d.ts.map +1 -0
  364. package/dist/hosting/bt-tracker/torrent-jobs.js +109 -0
  365. package/dist/hosting/bt-tracker/torrent-jobs.js.map +1 -0
  366. package/dist/hosting/bt-tracker/worker.d.ts +2 -0
  367. package/dist/hosting/bt-tracker/worker.d.ts.map +1 -0
  368. package/dist/hosting/bt-tracker/worker.js +47 -0
  369. package/dist/hosting/bt-tracker/worker.js.map +1 -0
  370. package/dist/hosting/cdn/dns-sync.d.ts +131 -0
  371. package/dist/hosting/cdn/dns-sync.d.ts.map +1 -0
  372. package/dist/hosting/cdn/dns-sync.js +520 -0
  373. package/dist/hosting/cdn/dns-sync.js.map +1 -0
  374. package/dist/hosting/cdn/edge-render.d.ts +76 -0
  375. package/dist/hosting/cdn/edge-render.d.ts.map +1 -0
  376. package/dist/hosting/cdn/edge-render.js +380 -0
  377. package/dist/hosting/cdn/edge-render.js.map +1 -0
  378. package/dist/hosting/cdn/fan-out.d.ts +67 -0
  379. package/dist/hosting/cdn/fan-out.d.ts.map +1 -0
  380. package/dist/hosting/cdn/fan-out.js +807 -0
  381. package/dist/hosting/cdn/fan-out.js.map +1 -0
  382. package/dist/hosting/cdn/fleet-payload.d.ts +42 -0
  383. package/dist/hosting/cdn/fleet-payload.d.ts.map +1 -0
  384. package/dist/hosting/cdn/fleet-payload.js +128 -0
  385. package/dist/hosting/cdn/fleet-payload.js.map +1 -0
  386. package/dist/hosting/cdn/from-project.d.ts +39 -0
  387. package/dist/hosting/cdn/from-project.d.ts.map +1 -0
  388. package/dist/hosting/cdn/from-project.js +101 -0
  389. package/dist/hosting/cdn/from-project.js.map +1 -0
  390. package/dist/hosting/cdn/index.d.ts +10 -0
  391. package/dist/hosting/cdn/index.d.ts.map +1 -0
  392. package/dist/hosting/cdn/index.js +10 -0
  393. package/dist/hosting/cdn/index.js.map +1 -0
  394. package/dist/hosting/cdn/metrics.d.ts +69 -0
  395. package/dist/hosting/cdn/metrics.d.ts.map +1 -0
  396. package/dist/hosting/cdn/metrics.js +270 -0
  397. package/dist/hosting/cdn/metrics.js.map +1 -0
  398. package/dist/hosting/cdn/nodes.d.ts +51 -0
  399. package/dist/hosting/cdn/nodes.d.ts.map +1 -0
  400. package/dist/hosting/cdn/nodes.js +282 -0
  401. package/dist/hosting/cdn/nodes.js.map +1 -0
  402. package/dist/hosting/cdn/sites.d.ts +27 -0
  403. package/dist/hosting/cdn/sites.d.ts.map +1 -0
  404. package/dist/hosting/cdn/sites.js +265 -0
  405. package/dist/hosting/cdn/sites.js.map +1 -0
  406. package/dist/hosting/cdn/ssl.d.ts +82 -0
  407. package/dist/hosting/cdn/ssl.d.ts.map +1 -0
  408. package/dist/hosting/cdn/ssl.js +593 -0
  409. package/dist/hosting/cdn/ssl.js.map +1 -0
  410. package/dist/hosting/cloudflare-dns.d.ts +65 -0
  411. package/dist/hosting/cloudflare-dns.d.ts.map +1 -0
  412. package/dist/hosting/cloudflare-dns.js +206 -0
  413. package/dist/hosting/cloudflare-dns.js.map +1 -0
  414. package/dist/hosting/database.d.ts +27 -0
  415. package/dist/hosting/database.d.ts.map +1 -0
  416. package/dist/hosting/database.js +51 -0
  417. package/dist/hosting/database.js.map +1 -0
  418. package/dist/hosting/datadir-perms.d.ts +19 -0
  419. package/dist/hosting/datadir-perms.d.ts.map +1 -0
  420. package/dist/hosting/datadir-perms.js +55 -0
  421. package/dist/hosting/datadir-perms.js.map +1 -0
  422. package/dist/hosting/db-browser-project.d.ts +67 -0
  423. package/dist/hosting/db-browser-project.d.ts.map +1 -0
  424. package/dist/hosting/db-browser-project.js +287 -0
  425. package/dist/hosting/db-browser-project.js.map +1 -0
  426. package/dist/hosting/db-client.d.ts +33 -0
  427. package/dist/hosting/db-client.d.ts.map +1 -0
  428. package/dist/hosting/db-client.js +70 -0
  429. package/dist/hosting/db-client.js.map +1 -0
  430. package/dist/hosting/db-cluster/apply-local.d.ts +35 -0
  431. package/dist/hosting/db-cluster/apply-local.d.ts.map +1 -0
  432. package/dist/hosting/db-cluster/apply-local.js +349 -0
  433. package/dist/hosting/db-cluster/apply-local.js.map +1 -0
  434. package/dist/hosting/db-cluster/fleet-dispatch.d.ts +42 -0
  435. package/dist/hosting/db-cluster/fleet-dispatch.d.ts.map +1 -0
  436. package/dist/hosting/db-cluster/fleet-dispatch.js +116 -0
  437. package/dist/hosting/db-cluster/fleet-dispatch.js.map +1 -0
  438. package/dist/hosting/db-cluster/import-sync.d.ts +18 -0
  439. package/dist/hosting/db-cluster/import-sync.d.ts.map +1 -0
  440. package/dist/hosting/db-cluster/import-sync.js +57 -0
  441. package/dist/hosting/db-cluster/import-sync.js.map +1 -0
  442. package/dist/hosting/db-cluster/index.d.ts +14 -0
  443. package/dist/hosting/db-cluster/index.d.ts.map +1 -0
  444. package/dist/hosting/db-cluster/index.js +14 -0
  445. package/dist/hosting/db-cluster/index.js.map +1 -0
  446. package/dist/hosting/db-cluster/peer-ops.d.ts +50 -0
  447. package/dist/hosting/db-cluster/peer-ops.d.ts.map +1 -0
  448. package/dist/hosting/db-cluster/peer-ops.js +470 -0
  449. package/dist/hosting/db-cluster/peer-ops.js.map +1 -0
  450. package/dist/hosting/db-cluster/plan-mariadb-galera.d.ts +14 -0
  451. package/dist/hosting/db-cluster/plan-mariadb-galera.d.ts.map +1 -0
  452. package/dist/hosting/db-cluster/plan-mariadb-galera.js +190 -0
  453. package/dist/hosting/db-cluster/plan-mariadb-galera.js.map +1 -0
  454. package/dist/hosting/db-cluster/plan-mysql-replica.d.ts +13 -0
  455. package/dist/hosting/db-cluster/plan-mysql-replica.d.ts.map +1 -0
  456. package/dist/hosting/db-cluster/plan-mysql-replica.js +221 -0
  457. package/dist/hosting/db-cluster/plan-mysql-replica.js.map +1 -0
  458. package/dist/hosting/db-cluster/plan-postgres-replica.d.ts +11 -0
  459. package/dist/hosting/db-cluster/plan-postgres-replica.d.ts.map +1 -0
  460. package/dist/hosting/db-cluster/plan-postgres-replica.js +193 -0
  461. package/dist/hosting/db-cluster/plan-postgres-replica.js.map +1 -0
  462. package/dist/hosting/db-cluster/plan-redis-replica.d.ts +10 -0
  463. package/dist/hosting/db-cluster/plan-redis-replica.d.ts.map +1 -0
  464. package/dist/hosting/db-cluster/plan-redis-replica.js +184 -0
  465. package/dist/hosting/db-cluster/plan-redis-replica.js.map +1 -0
  466. package/dist/hosting/db-cluster/plan.d.ts +15 -0
  467. package/dist/hosting/db-cluster/plan.d.ts.map +1 -0
  468. package/dist/hosting/db-cluster/plan.js +59 -0
  469. package/dist/hosting/db-cluster/plan.js.map +1 -0
  470. package/dist/hosting/db-cluster/probe.d.ts +37 -0
  471. package/dist/hosting/db-cluster/probe.d.ts.map +1 -0
  472. package/dist/hosting/db-cluster/probe.js +414 -0
  473. package/dist/hosting/db-cluster/probe.js.map +1 -0
  474. package/dist/hosting/db-cluster/push-peer.d.ts +85 -0
  475. package/dist/hosting/db-cluster/push-peer.d.ts.map +1 -0
  476. package/dist/hosting/db-cluster/push-peer.js +360 -0
  477. package/dist/hosting/db-cluster/push-peer.js.map +1 -0
  478. package/dist/hosting/db-cluster/store.d.ts +12 -0
  479. package/dist/hosting/db-cluster/store.d.ts.map +1 -0
  480. package/dist/hosting/db-cluster/store.js +240 -0
  481. package/dist/hosting/db-cluster/store.js.map +1 -0
  482. package/dist/hosting/db-cluster/types.d.ts +83 -0
  483. package/dist/hosting/db-cluster/types.d.ts.map +1 -0
  484. package/dist/hosting/db-cluster/types.js +6 -0
  485. package/dist/hosting/db-cluster/types.js.map +1 -0
  486. package/dist/hosting/db-dump.d.ts +39 -0
  487. package/dist/hosting/db-dump.d.ts.map +1 -0
  488. package/dist/hosting/db-dump.js +150 -0
  489. package/dist/hosting/db-dump.js.map +1 -0
  490. package/dist/hosting/db-engine.d.ts +75 -0
  491. package/dist/hosting/db-engine.d.ts.map +1 -0
  492. package/dist/hosting/db-engine.js +225 -0
  493. package/dist/hosting/db-engine.js.map +1 -0
  494. package/dist/hosting/db-service-config.d.ts +100 -0
  495. package/dist/hosting/db-service-config.d.ts.map +1 -0
  496. package/dist/hosting/db-service-config.js +410 -0
  497. package/dist/hosting/db-service-config.js.map +1 -0
  498. package/dist/hosting/defense/auto-ban.d.ts +86 -0
  499. package/dist/hosting/defense/auto-ban.d.ts.map +1 -0
  500. package/dist/hosting/defense/auto-ban.js +573 -0
  501. package/dist/hosting/defense/auto-ban.js.map +1 -0
  502. package/dist/hosting/defense/automation.d.ts +104 -0
  503. package/dist/hosting/defense/automation.d.ts.map +1 -0
  504. package/dist/hosting/defense/automation.js +475 -0
  505. package/dist/hosting/defense/automation.js.map +1 -0
  506. package/dist/hosting/defense/cf-ufw.d.ts +23 -0
  507. package/dist/hosting/defense/cf-ufw.d.ts.map +1 -0
  508. package/dist/hosting/defense/cf-ufw.js +108 -0
  509. package/dist/hosting/defense/cf-ufw.js.map +1 -0
  510. package/dist/hosting/defense/cloudflare-ua.d.ts +58 -0
  511. package/dist/hosting/defense/cloudflare-ua.d.ts.map +1 -0
  512. package/dist/hosting/defense/cloudflare-ua.js +167 -0
  513. package/dist/hosting/defense/cloudflare-ua.js.map +1 -0
  514. package/dist/hosting/defense/defense-service.d.ts +96 -0
  515. package/dist/hosting/defense/defense-service.d.ts.map +1 -0
  516. package/dist/hosting/defense/defense-service.js +597 -0
  517. package/dist/hosting/defense/defense-service.js.map +1 -0
  518. package/dist/hosting/defense/geoip/downloader.d.ts +24 -0
  519. package/dist/hosting/defense/geoip/downloader.d.ts.map +1 -0
  520. package/dist/hosting/defense/geoip/downloader.js +179 -0
  521. package/dist/hosting/defense/geoip/downloader.js.map +1 -0
  522. package/dist/hosting/defense/geoip/index.d.ts +32 -0
  523. package/dist/hosting/defense/geoip/index.d.ts.map +1 -0
  524. package/dist/hosting/defense/geoip/index.js +140 -0
  525. package/dist/hosting/defense/geoip/index.js.map +1 -0
  526. package/dist/hosting/defense/geoip/lookup.d.ts +4 -0
  527. package/dist/hosting/defense/geoip/lookup.d.ts.map +1 -0
  528. package/dist/hosting/defense/geoip/lookup.js +320 -0
  529. package/dist/hosting/defense/geoip/lookup.js.map +1 -0
  530. package/dist/hosting/defense/geoip/nginx-geo.d.ts +19 -0
  531. package/dist/hosting/defense/geoip/nginx-geo.d.ts.map +1 -0
  532. package/dist/hosting/defense/geoip/nginx-geo.js +94 -0
  533. package/dist/hosting/defense/geoip/nginx-geo.js.map +1 -0
  534. package/dist/hosting/defense/geoip/policy.d.ts +21 -0
  535. package/dist/hosting/defense/geoip/policy.d.ts.map +1 -0
  536. package/dist/hosting/defense/geoip/policy.js +161 -0
  537. package/dist/hosting/defense/geoip/policy.js.map +1 -0
  538. package/dist/hosting/defense/geoip/providers.d.ts +30 -0
  539. package/dist/hosting/defense/geoip/providers.d.ts.map +1 -0
  540. package/dist/hosting/defense/geoip/providers.js +98 -0
  541. package/dist/hosting/defense/geoip/providers.js.map +1 -0
  542. package/dist/hosting/defense/geoip/types.d.ts +102 -0
  543. package/dist/hosting/defense/geoip/types.d.ts.map +1 -0
  544. package/dist/hosting/defense/geoip/types.js +89 -0
  545. package/dist/hosting/defense/geoip/types.js.map +1 -0
  546. package/dist/hosting/defense/index.d.ts +12 -0
  547. package/dist/hosting/defense/index.d.ts.map +1 -0
  548. package/dist/hosting/defense/index.js +12 -0
  549. package/dist/hosting/defense/index.js.map +1 -0
  550. package/dist/hosting/defense/intel.d.ts +26 -0
  551. package/dist/hosting/defense/intel.d.ts.map +1 -0
  552. package/dist/hosting/defense/intel.js +148 -0
  553. package/dist/hosting/defense/intel.js.map +1 -0
  554. package/dist/hosting/defense/nginx-limits.d.ts +39 -0
  555. package/dist/hosting/defense/nginx-limits.d.ts.map +1 -0
  556. package/dist/hosting/defense/nginx-limits.js +142 -0
  557. package/dist/hosting/defense/nginx-limits.js.map +1 -0
  558. package/dist/hosting/defense/presets.d.ts +12 -0
  559. package/dist/hosting/defense/presets.d.ts.map +1 -0
  560. package/dist/hosting/defense/presets.js +128 -0
  561. package/dist/hosting/defense/presets.js.map +1 -0
  562. package/dist/hosting/defense/signals.d.ts +60 -0
  563. package/dist/hosting/defense/signals.d.ts.map +1 -0
  564. package/dist/hosting/defense/signals.js +176 -0
  565. package/dist/hosting/defense/signals.js.map +1 -0
  566. package/dist/hosting/defense/types.d.ts +134 -0
  567. package/dist/hosting/defense/types.d.ts.map +1 -0
  568. package/dist/hosting/defense/types.js +5 -0
  569. package/dist/hosting/defense/types.js.map +1 -0
  570. package/dist/hosting/dns-cluster.d.ts +100 -0
  571. package/dist/hosting/dns-cluster.d.ts.map +1 -0
  572. package/dist/hosting/dns-cluster.js +532 -0
  573. package/dist/hosting/dns-cluster.js.map +1 -0
  574. package/dist/hosting/dns-health.d.ts +93 -0
  575. package/dist/hosting/dns-health.d.ts.map +1 -0
  576. package/dist/hosting/dns-health.js +491 -0
  577. package/dist/hosting/dns-health.js.map +1 -0
  578. package/dist/hosting/dns-lookup.d.ts +22 -0
  579. package/dist/hosting/dns-lookup.d.ts.map +1 -0
  580. package/dist/hosting/dns-lookup.js +114 -0
  581. package/dist/hosting/dns-lookup.js.map +1 -0
  582. package/dist/hosting/dns-validate.d.ts +25 -0
  583. package/dist/hosting/dns-validate.d.ts.map +1 -0
  584. package/dist/hosting/dns-validate.js +145 -0
  585. package/dist/hosting/dns-validate.js.map +1 -0
  586. package/dist/hosting/dns-zone.d.ts +112 -0
  587. package/dist/hosting/dns-zone.d.ts.map +1 -0
  588. package/dist/hosting/dns-zone.js +365 -0
  589. package/dist/hosting/dns-zone.js.map +1 -0
  590. package/dist/hosting/dnssec.d.ts +22 -0
  591. package/dist/hosting/dnssec.d.ts.map +1 -0
  592. package/dist/hosting/dnssec.js +170 -0
  593. package/dist/hosting/dnssec.js.map +1 -0
  594. package/dist/hosting/extras.d.ts +106 -0
  595. package/dist/hosting/extras.d.ts.map +1 -0
  596. package/dist/hosting/extras.js +294 -0
  597. package/dist/hosting/extras.js.map +1 -0
  598. package/dist/hosting/fail2ban-ops.d.ts +72 -0
  599. package/dist/hosting/fail2ban-ops.d.ts.map +1 -0
  600. package/dist/hosting/fail2ban-ops.js +229 -0
  601. package/dist/hosting/fail2ban-ops.js.map +1 -0
  602. package/dist/hosting/firewall-ops.d.ts +109 -0
  603. package/dist/hosting/firewall-ops.d.ts.map +1 -0
  604. package/dist/hosting/firewall-ops.js +398 -0
  605. package/dist/hosting/firewall-ops.js.map +1 -0
  606. package/dist/hosting/ftps-service.d.ts +182 -0
  607. package/dist/hosting/ftps-service.d.ts.map +1 -0
  608. package/dist/hosting/ftps-service.js +909 -0
  609. package/dist/hosting/ftps-service.js.map +1 -0
  610. package/dist/hosting/git-deploy.d.ts +33 -0
  611. package/dist/hosting/git-deploy.d.ts.map +1 -0
  612. package/dist/hosting/git-deploy.js +181 -0
  613. package/dist/hosting/git-deploy.js.map +1 -0
  614. package/dist/hosting/global-search.d.ts +23 -0
  615. package/dist/hosting/global-search.d.ts.map +1 -0
  616. package/dist/hosting/global-search.js +296 -0
  617. package/dist/hosting/global-search.js.map +1 -0
  618. package/dist/hosting/host-migrate/bootstrap-target.d.ts +84 -0
  619. package/dist/hosting/host-migrate/bootstrap-target.d.ts.map +1 -0
  620. package/dist/hosting/host-migrate/bootstrap-target.js +457 -0
  621. package/dist/hosting/host-migrate/bootstrap-target.js.map +1 -0
  622. package/dist/hosting/host-migrate/index.d.ts +16 -0
  623. package/dist/hosting/host-migrate/index.d.ts.map +1 -0
  624. package/dist/hosting/host-migrate/index.js +16 -0
  625. package/dist/hosting/host-migrate/index.js.map +1 -0
  626. package/dist/hosting/host-migrate/inventory.d.ts +27 -0
  627. package/dist/hosting/host-migrate/inventory.d.ts.map +1 -0
  628. package/dist/hosting/host-migrate/inventory.js +386 -0
  629. package/dist/hosting/host-migrate/inventory.js.map +1 -0
  630. package/dist/hosting/host-migrate/job-store.d.ts +23 -0
  631. package/dist/hosting/host-migrate/job-store.d.ts.map +1 -0
  632. package/dist/hosting/host-migrate/job-store.js +126 -0
  633. package/dist/hosting/host-migrate/job-store.js.map +1 -0
  634. package/dist/hosting/host-migrate/orchestrator.d.ts +69 -0
  635. package/dist/hosting/host-migrate/orchestrator.d.ts.map +1 -0
  636. package/dist/hosting/host-migrate/orchestrator.js +376 -0
  637. package/dist/hosting/host-migrate/orchestrator.js.map +1 -0
  638. package/dist/hosting/host-migrate/package-source.d.ts +88 -0
  639. package/dist/hosting/host-migrate/package-source.d.ts.map +1 -0
  640. package/dist/hosting/host-migrate/package-source.js +473 -0
  641. package/dist/hosting/host-migrate/package-source.js.map +1 -0
  642. package/dist/hosting/host-migrate/post-transfer.d.ts +32 -0
  643. package/dist/hosting/host-migrate/post-transfer.d.ts.map +1 -0
  644. package/dist/hosting/host-migrate/post-transfer.js +81 -0
  645. package/dist/hosting/host-migrate/post-transfer.js.map +1 -0
  646. package/dist/hosting/host-migrate/preflight.d.ts +58 -0
  647. package/dist/hosting/host-migrate/preflight.d.ts.map +1 -0
  648. package/dist/hosting/host-migrate/preflight.js +315 -0
  649. package/dist/hosting/host-migrate/preflight.js.map +1 -0
  650. package/dist/hosting/host-migrate/reapply.d.ts +36 -0
  651. package/dist/hosting/host-migrate/reapply.d.ts.map +1 -0
  652. package/dist/hosting/host-migrate/reapply.js +361 -0
  653. package/dist/hosting/host-migrate/reapply.js.map +1 -0
  654. package/dist/hosting/host-migrate/redis-dump.d.ts +25 -0
  655. package/dist/hosting/host-migrate/redis-dump.d.ts.map +1 -0
  656. package/dist/hosting/host-migrate/redis-dump.js +153 -0
  657. package/dist/hosting/host-migrate/redis-dump.js.map +1 -0
  658. package/dist/hosting/host-migrate/restore.d.ts +62 -0
  659. package/dist/hosting/host-migrate/restore.d.ts.map +1 -0
  660. package/dist/hosting/host-migrate/restore.js +420 -0
  661. package/dist/hosting/host-migrate/restore.js.map +1 -0
  662. package/dist/hosting/host-migrate/temp-key.d.ts +56 -0
  663. package/dist/hosting/host-migrate/temp-key.d.ts.map +1 -0
  664. package/dist/hosting/host-migrate/temp-key.js +207 -0
  665. package/dist/hosting/host-migrate/temp-key.js.map +1 -0
  666. package/dist/hosting/host-migrate/transfer.d.ts +57 -0
  667. package/dist/hosting/host-migrate/transfer.d.ts.map +1 -0
  668. package/dist/hosting/host-migrate/transfer.js +408 -0
  669. package/dist/hosting/host-migrate/transfer.js.map +1 -0
  670. package/dist/hosting/host-migrate/transport.d.ts +96 -0
  671. package/dist/hosting/host-migrate/transport.d.ts.map +1 -0
  672. package/dist/hosting/host-migrate/transport.js +363 -0
  673. package/dist/hosting/host-migrate/transport.js.map +1 -0
  674. package/dist/hosting/host-migrate/types.d.ts +8 -0
  675. package/dist/hosting/host-migrate/types.d.ts.map +1 -0
  676. package/dist/hosting/host-migrate/types.js +9 -0
  677. package/dist/hosting/host-migrate/types.js.map +1 -0
  678. package/dist/hosting/host-migrate/verify.d.ts +29 -0
  679. package/dist/hosting/host-migrate/verify.d.ts.map +1 -0
  680. package/dist/hosting/host-migrate/verify.js +268 -0
  681. package/dist/hosting/host-migrate/verify.js.map +1 -0
  682. package/dist/hosting/index.d.ts +103 -0
  683. package/dist/hosting/index.d.ts.map +1 -0
  684. package/dist/hosting/index.js +103 -0
  685. package/dist/hosting/index.js.map +1 -0
  686. package/dist/hosting/log-center/catalog.d.ts +33 -0
  687. package/dist/hosting/log-center/catalog.d.ts.map +1 -0
  688. package/dist/hosting/log-center/catalog.js +321 -0
  689. package/dist/hosting/log-center/catalog.js.map +1 -0
  690. package/dist/hosting/log-center/file-tail.d.ts +20 -0
  691. package/dist/hosting/log-center/file-tail.d.ts.map +1 -0
  692. package/dist/hosting/log-center/file-tail.js +89 -0
  693. package/dist/hosting/log-center/file-tail.js.map +1 -0
  694. package/dist/hosting/log-center/index.d.ts +6 -0
  695. package/dist/hosting/log-center/index.d.ts.map +1 -0
  696. package/dist/hosting/log-center/index.js +6 -0
  697. package/dist/hosting/log-center/index.js.map +1 -0
  698. package/dist/hosting/log-center/journal.d.ts +35 -0
  699. package/dist/hosting/log-center/journal.d.ts.map +1 -0
  700. package/dist/hosting/log-center/journal.js +248 -0
  701. package/dist/hosting/log-center/journal.js.map +1 -0
  702. package/dist/hosting/log-center/service.d.ts +92 -0
  703. package/dist/hosting/log-center/service.d.ts.map +1 -0
  704. package/dist/hosting/log-center/service.js +548 -0
  705. package/dist/hosting/log-center/service.js.map +1 -0
  706. package/dist/hosting/log-center/types.d.ts +103 -0
  707. package/dist/hosting/log-center/types.d.ts.map +1 -0
  708. package/dist/hosting/log-center/types.js +17 -0
  709. package/dist/hosting/log-center/types.js.map +1 -0
  710. package/dist/hosting/managed-resources.d.ts +87 -0
  711. package/dist/hosting/managed-resources.d.ts.map +1 -0
  712. package/dist/hosting/managed-resources.js +561 -0
  713. package/dist/hosting/managed-resources.js.map +1 -0
  714. package/dist/hosting/mysql-provision.d.ts +37 -0
  715. package/dist/hosting/mysql-provision.d.ts.map +1 -0
  716. package/dist/hosting/mysql-provision.js +91 -0
  717. package/dist/hosting/mysql-provision.js.map +1 -0
  718. package/dist/hosting/nginx-settings.d.ts +47 -0
  719. package/dist/hosting/nginx-settings.d.ts.map +1 -0
  720. package/dist/hosting/nginx-settings.js +147 -0
  721. package/dist/hosting/nginx-settings.js.map +1 -0
  722. package/dist/hosting/nginx-sites-list.d.ts +31 -0
  723. package/dist/hosting/nginx-sites-list.d.ts.map +1 -0
  724. package/dist/hosting/nginx-sites-list.js +86 -0
  725. package/dist/hosting/nginx-sites-list.js.map +1 -0
  726. package/dist/hosting/nginx-ssl.d.ts +84 -0
  727. package/dist/hosting/nginx-ssl.d.ts.map +1 -0
  728. package/dist/hosting/nginx-ssl.js +342 -0
  729. package/dist/hosting/nginx-ssl.js.map +1 -0
  730. package/dist/hosting/nginx-sync.d.ts +38 -0
  731. package/dist/hosting/nginx-sync.d.ts.map +1 -0
  732. package/dist/hosting/nginx-sync.js +141 -0
  733. package/dist/hosting/nginx-sync.js.map +1 -0
  734. package/dist/hosting/node-apply.d.ts +32 -0
  735. package/dist/hosting/node-apply.d.ts.map +1 -0
  736. package/dist/hosting/node-apply.js +86 -0
  737. package/dist/hosting/node-apply.js.map +1 -0
  738. package/dist/hosting/package-limits.d.ts +38 -0
  739. package/dist/hosting/package-limits.d.ts.map +1 -0
  740. package/dist/hosting/package-limits.js +129 -0
  741. package/dist/hosting/package-limits.js.map +1 -0
  742. package/dist/hosting/panel-tls.d.ts +150 -0
  743. package/dist/hosting/panel-tls.d.ts.map +1 -0
  744. package/dist/hosting/panel-tls.js +533 -0
  745. package/dist/hosting/panel-tls.js.map +1 -0
  746. package/dist/hosting/php-disable-functions.d.ts +25 -0
  747. package/dist/hosting/php-disable-functions.d.ts.map +1 -0
  748. package/dist/hosting/php-disable-functions.js +79 -0
  749. package/dist/hosting/php-disable-functions.js.map +1 -0
  750. package/dist/hosting/php-extensions.d.ts +118 -0
  751. package/dist/hosting/php-extensions.d.ts.map +1 -0
  752. package/dist/hosting/php-extensions.js +482 -0
  753. package/dist/hosting/php-extensions.js.map +1 -0
  754. package/dist/hosting/php-fpm.d.ts +38 -0
  755. package/dist/hosting/php-fpm.d.ts.map +1 -0
  756. package/dist/hosting/php-fpm.js +94 -0
  757. package/dist/hosting/php-fpm.js.map +1 -0
  758. package/dist/hosting/php-ini-catalog.d.ts +55 -0
  759. package/dist/hosting/php-ini-catalog.d.ts.map +1 -0
  760. package/dist/hosting/php-ini-catalog.js +469 -0
  761. package/dist/hosting/php-ini-catalog.js.map +1 -0
  762. package/dist/hosting/php-ini.d.ts +54 -0
  763. package/dist/hosting/php-ini.d.ts.map +1 -0
  764. package/dist/hosting/php-ini.js +299 -0
  765. package/dist/hosting/php-ini.js.map +1 -0
  766. package/dist/hosting/pm2-apply.d.ts +163 -0
  767. package/dist/hosting/pm2-apply.d.ts.map +1 -0
  768. package/dist/hosting/pm2-apply.js +629 -0
  769. package/dist/hosting/pm2-apply.js.map +1 -0
  770. package/dist/hosting/pm2-status.d.ts +59 -0
  771. package/dist/hosting/pm2-status.d.ts.map +1 -0
  772. package/dist/hosting/pm2-status.js +188 -0
  773. package/dist/hosting/pm2-status.js.map +1 -0
  774. package/dist/hosting/postfix-bootstrap.d.ts +56 -0
  775. package/dist/hosting/postfix-bootstrap.d.ts.map +1 -0
  776. package/dist/hosting/postfix-bootstrap.js +212 -0
  777. package/dist/hosting/postfix-bootstrap.js.map +1 -0
  778. package/dist/hosting/postgres-provision.d.ts +48 -0
  779. package/dist/hosting/postgres-provision.d.ts.map +1 -0
  780. package/dist/hosting/postgres-provision.js +166 -0
  781. package/dist/hosting/postgres-provision.js.map +1 -0
  782. package/dist/hosting/powerdns-apply.d.ts +215 -0
  783. package/dist/hosting/powerdns-apply.d.ts.map +1 -0
  784. package/dist/hosting/powerdns-apply.js +790 -0
  785. package/dist/hosting/powerdns-apply.js.map +1 -0
  786. package/dist/hosting/process-fleet.d.ts +55 -0
  787. package/dist/hosting/process-fleet.d.ts.map +1 -0
  788. package/dist/hosting/process-fleet.js +203 -0
  789. package/dist/hosting/process-fleet.js.map +1 -0
  790. package/dist/hosting/production-readiness.d.ts +47 -0
  791. package/dist/hosting/production-readiness.d.ts.map +1 -0
  792. package/dist/hosting/production-readiness.js +797 -0
  793. package/dist/hosting/production-readiness.js.map +1 -0
  794. package/dist/hosting/project-isolation-status.d.ts +47 -0
  795. package/dist/hosting/project-isolation-status.d.ts.map +1 -0
  796. package/dist/hosting/project-isolation-status.js +150 -0
  797. package/dist/hosting/project-isolation-status.js.map +1 -0
  798. package/dist/hosting/project-logs.d.ts +124 -0
  799. package/dist/hosting/project-logs.d.ts.map +1 -0
  800. package/dist/hosting/project-logs.js +510 -0
  801. package/dist/hosting/project-logs.js.map +1 -0
  802. package/dist/hosting/project-ops.d.ts +324 -0
  803. package/dist/hosting/project-ops.d.ts.map +1 -0
  804. package/dist/hosting/project-ops.js +2509 -0
  805. package/dist/hosting/project-ops.js.map +1 -0
  806. package/dist/hosting/project-os-user.d.ts +44 -0
  807. package/dist/hosting/project-os-user.d.ts.map +1 -0
  808. package/dist/hosting/project-os-user.js +279 -0
  809. package/dist/hosting/project-os-user.js.map +1 -0
  810. package/dist/hosting/project-ownership.d.ts +21 -0
  811. package/dist/hosting/project-ownership.d.ts.map +1 -0
  812. package/dist/hosting/project-ownership.js +52 -0
  813. package/dist/hosting/project-ownership.js.map +1 -0
  814. package/dist/hosting/project-service.d.ts +156 -0
  815. package/dist/hosting/project-service.d.ts.map +1 -0
  816. package/dist/hosting/project-service.js +950 -0
  817. package/dist/hosting/project-service.js.map +1 -0
  818. package/dist/hosting/project-user-run.d.ts +61 -0
  819. package/dist/hosting/project-user-run.d.ts.map +1 -0
  820. package/dist/hosting/project-user-run.js +130 -0
  821. package/dist/hosting/project-user-run.js.map +1 -0
  822. package/dist/hosting/project-web-group.d.ts +21 -0
  823. package/dist/hosting/project-web-group.d.ts.map +1 -0
  824. package/dist/hosting/project-web-group.js +79 -0
  825. package/dist/hosting/project-web-group.js.map +1 -0
  826. package/dist/hosting/project.d.ts +58 -0
  827. package/dist/hosting/project.d.ts.map +1 -0
  828. package/dist/hosting/project.js +154 -0
  829. package/dist/hosting/project.js.map +1 -0
  830. package/dist/hosting/public-files.d.ts +53 -0
  831. package/dist/hosting/public-files.d.ts.map +1 -0
  832. package/dist/hosting/public-files.js +324 -0
  833. package/dist/hosting/public-files.js.map +1 -0
  834. package/dist/hosting/quota.d.ts +36 -0
  835. package/dist/hosting/quota.d.ts.map +1 -0
  836. package/dist/hosting/quota.js +70 -0
  837. package/dist/hosting/quota.js.map +1 -0
  838. package/dist/hosting/real-ip/apply.d.ts +17 -0
  839. package/dist/hosting/real-ip/apply.d.ts.map +1 -0
  840. package/dist/hosting/real-ip/apply.js +62 -0
  841. package/dist/hosting/real-ip/apply.js.map +1 -0
  842. package/dist/hosting/real-ip/index.d.ts +7 -0
  843. package/dist/hosting/real-ip/index.d.ts.map +1 -0
  844. package/dist/hosting/real-ip/index.js +7 -0
  845. package/dist/hosting/real-ip/index.js.map +1 -0
  846. package/dist/hosting/real-ip/providers.d.ts +12 -0
  847. package/dist/hosting/real-ip/providers.d.ts.map +1 -0
  848. package/dist/hosting/real-ip/providers.js +237 -0
  849. package/dist/hosting/real-ip/providers.js.map +1 -0
  850. package/dist/hosting/real-ip/refresh.d.ts +17 -0
  851. package/dist/hosting/real-ip/refresh.d.ts.map +1 -0
  852. package/dist/hosting/real-ip/refresh.js +113 -0
  853. package/dist/hosting/real-ip/refresh.js.map +1 -0
  854. package/dist/hosting/real-ip/render.d.ts +39 -0
  855. package/dist/hosting/real-ip/render.d.ts.map +1 -0
  856. package/dist/hosting/real-ip/render.js +132 -0
  857. package/dist/hosting/real-ip/render.js.map +1 -0
  858. package/dist/hosting/real-ip/store.d.ts +9 -0
  859. package/dist/hosting/real-ip/store.d.ts.map +1 -0
  860. package/dist/hosting/real-ip/store.js +66 -0
  861. package/dist/hosting/real-ip/store.js.map +1 -0
  862. package/dist/hosting/real-ip/types.d.ts +41 -0
  863. package/dist/hosting/real-ip/types.d.ts.map +1 -0
  864. package/dist/hosting/real-ip/types.js +10 -0
  865. package/dist/hosting/real-ip/types.js.map +1 -0
  866. package/dist/hosting/rebuild.d.ts +82 -0
  867. package/dist/hosting/rebuild.d.ts.map +1 -0
  868. package/dist/hosting/rebuild.js +241 -0
  869. package/dist/hosting/rebuild.js.map +1 -0
  870. package/dist/hosting/redis-browser.d.ts +109 -0
  871. package/dist/hosting/redis-browser.d.ts.map +1 -0
  872. package/dist/hosting/redis-browser.js +312 -0
  873. package/dist/hosting/redis-browser.js.map +1 -0
  874. package/dist/hosting/redis-provision.d.ts +39 -0
  875. package/dist/hosting/redis-provision.d.ts.map +1 -0
  876. package/dist/hosting/redis-provision.js +107 -0
  877. package/dist/hosting/redis-provision.js.map +1 -0
  878. package/dist/hosting/runtime-latest.d.ts +33 -0
  879. package/dist/hosting/runtime-latest.d.ts.map +1 -0
  880. package/dist/hosting/runtime-latest.js +180 -0
  881. package/dist/hosting/runtime-latest.js.map +1 -0
  882. package/dist/hosting/runtime-panel-defaults.d.ts +7 -0
  883. package/dist/hosting/runtime-panel-defaults.d.ts.map +1 -0
  884. package/dist/hosting/runtime-panel-defaults.js +43 -0
  885. package/dist/hosting/runtime-panel-defaults.js.map +1 -0
  886. package/dist/hosting/runtime-plugins.d.ts +164 -0
  887. package/dist/hosting/runtime-plugins.d.ts.map +1 -0
  888. package/dist/hosting/runtime-plugins.js +799 -0
  889. package/dist/hosting/runtime-plugins.js.map +1 -0
  890. package/dist/hosting/runtime-probe.d.ts +155 -0
  891. package/dist/hosting/runtime-probe.d.ts.map +1 -0
  892. package/dist/hosting/runtime-probe.js +1872 -0
  893. package/dist/hosting/runtime-probe.js.map +1 -0
  894. package/dist/hosting/runtime-tools.d.ts +20 -0
  895. package/dist/hosting/runtime-tools.d.ts.map +1 -0
  896. package/dist/hosting/runtime-tools.js +41 -0
  897. package/dist/hosting/runtime-tools.js.map +1 -0
  898. package/dist/hosting/runtime-tuning.d.ts +46 -0
  899. package/dist/hosting/runtime-tuning.d.ts.map +1 -0
  900. package/dist/hosting/runtime-tuning.js +289 -0
  901. package/dist/hosting/runtime-tuning.js.map +1 -0
  902. package/dist/hosting/runtime.d.ts +163 -0
  903. package/dist/hosting/runtime.d.ts.map +1 -0
  904. package/dist/hosting/runtime.js +709 -0
  905. package/dist/hosting/runtime.js.map +1 -0
  906. package/dist/hosting/service-catalog/index.d.ts +10 -0
  907. package/dist/hosting/service-catalog/index.d.ts.map +1 -0
  908. package/dist/hosting/service-catalog/index.js +22 -0
  909. package/dist/hosting/service-catalog/index.js.map +1 -0
  910. package/dist/hosting/service-catalog/mysql.d.ts +5 -0
  911. package/dist/hosting/service-catalog/mysql.d.ts.map +1 -0
  912. package/dist/hosting/service-catalog/mysql.js +257 -0
  913. package/dist/hosting/service-catalog/mysql.js.map +1 -0
  914. package/dist/hosting/service-catalog/postgres.d.ts +3 -0
  915. package/dist/hosting/service-catalog/postgres.d.ts.map +1 -0
  916. package/dist/hosting/service-catalog/postgres.js +140 -0
  917. package/dist/hosting/service-catalog/postgres.js.map +1 -0
  918. package/dist/hosting/service-catalog/redis.d.ts +3 -0
  919. package/dist/hosting/service-catalog/redis.d.ts.map +1 -0
  920. package/dist/hosting/service-catalog/redis.js +146 -0
  921. package/dist/hosting/service-catalog/redis.js.map +1 -0
  922. package/dist/hosting/service-catalog/types.d.ts +59 -0
  923. package/dist/hosting/service-catalog/types.d.ts.map +1 -0
  924. package/dist/hosting/service-catalog/types.js +72 -0
  925. package/dist/hosting/service-catalog/types.js.map +1 -0
  926. package/dist/hosting/service-console.d.ts +51 -0
  927. package/dist/hosting/service-console.d.ts.map +1 -0
  928. package/dist/hosting/service-console.js +480 -0
  929. package/dist/hosting/service-console.js.map +1 -0
  930. package/dist/hosting/service-exposure/geo-countries.d.ts +51 -0
  931. package/dist/hosting/service-exposure/geo-countries.d.ts.map +1 -0
  932. package/dist/hosting/service-exposure/geo-countries.js +245 -0
  933. package/dist/hosting/service-exposure/geo-countries.js.map +1 -0
  934. package/dist/hosting/service-exposure/index.d.ts +5 -0
  935. package/dist/hosting/service-exposure/index.d.ts.map +1 -0
  936. package/dist/hosting/service-exposure/index.js +5 -0
  937. package/dist/hosting/service-exposure/index.js.map +1 -0
  938. package/dist/hosting/service-exposure/ports.d.ts +38 -0
  939. package/dist/hosting/service-exposure/ports.d.ts.map +1 -0
  940. package/dist/hosting/service-exposure/ports.js +175 -0
  941. package/dist/hosting/service-exposure/ports.js.map +1 -0
  942. package/dist/hosting/service-exposure/store.d.ts +18 -0
  943. package/dist/hosting/service-exposure/store.d.ts.map +1 -0
  944. package/dist/hosting/service-exposure/store.js +158 -0
  945. package/dist/hosting/service-exposure/store.js.map +1 -0
  946. package/dist/hosting/service-exposure/sync.d.ts +89 -0
  947. package/dist/hosting/service-exposure/sync.d.ts.map +1 -0
  948. package/dist/hosting/service-exposure/sync.js +365 -0
  949. package/dist/hosting/service-exposure/sync.js.map +1 -0
  950. package/dist/hosting/service-matrix.d.ts +31 -0
  951. package/dist/hosting/service-matrix.d.ts.map +1 -0
  952. package/dist/hosting/service-matrix.js +282 -0
  953. package/dist/hosting/service-matrix.js.map +1 -0
  954. package/dist/hosting/sftp-keys.d.ts +35 -0
  955. package/dist/hosting/sftp-keys.d.ts.map +1 -0
  956. package/dist/hosting/sftp-keys.js +151 -0
  957. package/dist/hosting/sftp-keys.js.map +1 -0
  958. package/dist/hosting/software-catalog.d.ts +56 -0
  959. package/dist/hosting/software-catalog.d.ts.map +1 -0
  960. package/dist/hosting/software-catalog.js +380 -0
  961. package/dist/hosting/software-catalog.js.map +1 -0
  962. package/dist/hosting/software-install.d.ts +88 -0
  963. package/dist/hosting/software-install.d.ts.map +1 -0
  964. package/dist/hosting/software-install.js +610 -0
  965. package/dist/hosting/software-install.js.map +1 -0
  966. package/dist/hosting/software-probe/HostSoftwareProbe.d.ts +45 -0
  967. package/dist/hosting/software-probe/HostSoftwareProbe.d.ts.map +1 -0
  968. package/dist/hosting/software-probe/HostSoftwareProbe.js +362 -0
  969. package/dist/hosting/software-probe/HostSoftwareProbe.js.map +1 -0
  970. package/dist/hosting/software-probe/index.d.ts +6 -0
  971. package/dist/hosting/software-probe/index.d.ts.map +1 -0
  972. package/dist/hosting/software-probe/index.js +6 -0
  973. package/dist/hosting/software-probe/index.js.map +1 -0
  974. package/dist/hosting/software-probe/registry.d.ts +11 -0
  975. package/dist/hosting/software-probe/registry.d.ts.map +1 -0
  976. package/dist/hosting/software-probe/registry.js +100 -0
  977. package/dist/hosting/software-probe/registry.js.map +1 -0
  978. package/dist/hosting/software-probe/resolve-bin.d.ts +38 -0
  979. package/dist/hosting/software-probe/resolve-bin.d.ts.map +1 -0
  980. package/dist/hosting/software-probe/resolve-bin.js +168 -0
  981. package/dist/hosting/software-probe/resolve-bin.js.map +1 -0
  982. package/dist/hosting/software-probe/shell.d.ts +22 -0
  983. package/dist/hosting/software-probe/shell.d.ts.map +1 -0
  984. package/dist/hosting/software-probe/shell.js +41 -0
  985. package/dist/hosting/software-probe/shell.js.map +1 -0
  986. package/dist/hosting/software-probe/types.d.ts +57 -0
  987. package/dist/hosting/software-probe/types.d.ts.map +1 -0
  988. package/dist/hosting/software-probe/types.js +6 -0
  989. package/dist/hosting/software-probe/types.js.map +1 -0
  990. package/dist/hosting/software-uninstall.d.ts +67 -0
  991. package/dist/hosting/software-uninstall.d.ts.map +1 -0
  992. package/dist/hosting/software-uninstall.js +333 -0
  993. package/dist/hosting/software-uninstall.js.map +1 -0
  994. package/dist/hosting/sql-engine-health/actions.d.ts +20 -0
  995. package/dist/hosting/sql-engine-health/actions.d.ts.map +1 -0
  996. package/dist/hosting/sql-engine-health/actions.js +29 -0
  997. package/dist/hosting/sql-engine-health/actions.js.map +1 -0
  998. package/dist/hosting/sql-engine-health/compat.d.ts +33 -0
  999. package/dist/hosting/sql-engine-health/compat.d.ts.map +1 -0
  1000. package/dist/hosting/sql-engine-health/compat.js +45 -0
  1001. package/dist/hosting/sql-engine-health/compat.js.map +1 -0
  1002. package/dist/hosting/sql-engine-health/diagnose.d.ts +10 -0
  1003. package/dist/hosting/sql-engine-health/diagnose.d.ts.map +1 -0
  1004. package/dist/hosting/sql-engine-health/diagnose.js +268 -0
  1005. package/dist/hosting/sql-engine-health/diagnose.js.map +1 -0
  1006. package/dist/hosting/sql-engine-health/execute.d.ts +14 -0
  1007. package/dist/hosting/sql-engine-health/execute.d.ts.map +1 -0
  1008. package/dist/hosting/sql-engine-health/execute.js +130 -0
  1009. package/dist/hosting/sql-engine-health/execute.js.map +1 -0
  1010. package/dist/hosting/sql-engine-health/index.d.ts +6 -0
  1011. package/dist/hosting/sql-engine-health/index.d.ts.map +1 -0
  1012. package/dist/hosting/sql-engine-health/index.js +6 -0
  1013. package/dist/hosting/sql-engine-health/index.js.map +1 -0
  1014. package/dist/hosting/sql-engine-health/types.d.ts +63 -0
  1015. package/dist/hosting/sql-engine-health/types.d.ts.map +1 -0
  1016. package/dist/hosting/sql-engine-health/types.js +6 -0
  1017. package/dist/hosting/sql-engine-health/types.js.map +1 -0
  1018. package/dist/hosting/sql-engine-switch/grants.d.ts +10 -0
  1019. package/dist/hosting/sql-engine-switch/grants.d.ts.map +1 -0
  1020. package/dist/hosting/sql-engine-switch/grants.js +61 -0
  1021. package/dist/hosting/sql-engine-switch/grants.js.map +1 -0
  1022. package/dist/hosting/sql-engine-switch/index.d.ts +7 -0
  1023. package/dist/hosting/sql-engine-switch/index.d.ts.map +1 -0
  1024. package/dist/hosting/sql-engine-switch/index.js +7 -0
  1025. package/dist/hosting/sql-engine-switch/index.js.map +1 -0
  1026. package/dist/hosting/sql-engine-switch/migrate.d.ts +22 -0
  1027. package/dist/hosting/sql-engine-switch/migrate.d.ts.map +1 -0
  1028. package/dist/hosting/sql-engine-switch/migrate.js +389 -0
  1029. package/dist/hosting/sql-engine-switch/migrate.js.map +1 -0
  1030. package/dist/hosting/sql-engine-switch/mysql-frozen.d.ts +74 -0
  1031. package/dist/hosting/sql-engine-switch/mysql-frozen.d.ts.map +1 -0
  1032. package/dist/hosting/sql-engine-switch/mysql-frozen.js +317 -0
  1033. package/dist/hosting/sql-engine-switch/mysql-frozen.js.map +1 -0
  1034. package/dist/hosting/sql-engine-switch/preview.d.ts +18 -0
  1035. package/dist/hosting/sql-engine-switch/preview.d.ts.map +1 -0
  1036. package/dist/hosting/sql-engine-switch/preview.js +173 -0
  1037. package/dist/hosting/sql-engine-switch/preview.js.map +1 -0
  1038. package/dist/hosting/sql-engine-switch/sql-auth.d.ts +9 -0
  1039. package/dist/hosting/sql-engine-switch/sql-auth.d.ts.map +1 -0
  1040. package/dist/hosting/sql-engine-switch/sql-auth.js +23 -0
  1041. package/dist/hosting/sql-engine-switch/sql-auth.js.map +1 -0
  1042. package/dist/hosting/sql-engine-switch/types.d.ts +51 -0
  1043. package/dist/hosting/sql-engine-switch/types.d.ts.map +1 -0
  1044. package/dist/hosting/sql-engine-switch/types.js +5 -0
  1045. package/dist/hosting/sql-engine-switch/types.js.map +1 -0
  1046. package/dist/hosting/sshd-sftp-snippet.d.ts +35 -0
  1047. package/dist/hosting/sshd-sftp-snippet.d.ts.map +1 -0
  1048. package/dist/hosting/sshd-sftp-snippet.js +135 -0
  1049. package/dist/hosting/sshd-sftp-snippet.js.map +1 -0
  1050. package/dist/hosting/ssl-certs.d.ts +151 -0
  1051. package/dist/hosting/ssl-certs.d.ts.map +1 -0
  1052. package/dist/hosting/ssl-certs.js +462 -0
  1053. package/dist/hosting/ssl-certs.js.map +1 -0
  1054. package/dist/hosting/ssl-le-errors.d.ts +19 -0
  1055. package/dist/hosting/ssl-le-errors.d.ts.map +1 -0
  1056. package/dist/hosting/ssl-le-errors.js +105 -0
  1057. package/dist/hosting/ssl-le-errors.js.map +1 -0
  1058. package/dist/hosting/stack/definitions.d.ts +67 -0
  1059. package/dist/hosting/stack/definitions.d.ts.map +1 -0
  1060. package/dist/hosting/stack/definitions.js +519 -0
  1061. package/dist/hosting/stack/definitions.js.map +1 -0
  1062. package/dist/hosting/stack/index.d.ts +4 -0
  1063. package/dist/hosting/stack/index.d.ts.map +1 -0
  1064. package/dist/hosting/stack/index.js +4 -0
  1065. package/dist/hosting/stack/index.js.map +1 -0
  1066. package/dist/hosting/stack/manifest.d.ts +48 -0
  1067. package/dist/hosting/stack/manifest.d.ts.map +1 -0
  1068. package/dist/hosting/stack/manifest.js +108 -0
  1069. package/dist/hosting/stack/manifest.js.map +1 -0
  1070. package/dist/hosting/stack/ops.d.ts +89 -0
  1071. package/dist/hosting/stack/ops.d.ts.map +1 -0
  1072. package/dist/hosting/stack/ops.js +485 -0
  1073. package/dist/hosting/stack/ops.js.map +1 -0
  1074. package/dist/hosting/system-apply.d.ts +242 -0
  1075. package/dist/hosting/system-apply.d.ts.map +1 -0
  1076. package/dist/hosting/system-apply.js +1148 -0
  1077. package/dist/hosting/system-apply.js.map +1 -0
  1078. package/dist/hosting/temp-db-user.d.ts +75 -0
  1079. package/dist/hosting/temp-db-user.d.ts.map +1 -0
  1080. package/dist/hosting/temp-db-user.js +230 -0
  1081. package/dist/hosting/temp-db-user.js.map +1 -0
  1082. package/dist/hosting/version-discovery.d.ts +59 -0
  1083. package/dist/hosting/version-discovery.d.ts.map +1 -0
  1084. package/dist/hosting/version-discovery.js +599 -0
  1085. package/dist/hosting/version-discovery.js.map +1 -0
  1086. package/dist/hosting/vnc/client-profiles.d.ts +78 -0
  1087. package/dist/hosting/vnc/client-profiles.d.ts.map +1 -0
  1088. package/dist/hosting/vnc/client-profiles.js +251 -0
  1089. package/dist/hosting/vnc/client-profiles.js.map +1 -0
  1090. package/dist/hosting/vnc/index.d.ts +13 -0
  1091. package/dist/hosting/vnc/index.d.ts.map +1 -0
  1092. package/dist/hosting/vnc/index.js +13 -0
  1093. package/dist/hosting/vnc/index.js.map +1 -0
  1094. package/dist/hosting/vnc/linux-user.d.ts +33 -0
  1095. package/dist/hosting/vnc/linux-user.d.ts.map +1 -0
  1096. package/dist/hosting/vnc/linux-user.js +114 -0
  1097. package/dist/hosting/vnc/linux-user.js.map +1 -0
  1098. package/dist/hosting/vnc/novnc.d.ts +89 -0
  1099. package/dist/hosting/vnc/novnc.d.ts.map +1 -0
  1100. package/dist/hosting/vnc/novnc.js +232 -0
  1101. package/dist/hosting/vnc/novnc.js.map +1 -0
  1102. package/dist/hosting/vnc/passwd.d.ts +16 -0
  1103. package/dist/hosting/vnc/passwd.d.ts.map +1 -0
  1104. package/dist/hosting/vnc/passwd.js +41 -0
  1105. package/dist/hosting/vnc/passwd.js.map +1 -0
  1106. package/dist/hosting/vnc/ports.d.ts +12 -0
  1107. package/dist/hosting/vnc/ports.d.ts.map +1 -0
  1108. package/dist/hosting/vnc/ports.js +36 -0
  1109. package/dist/hosting/vnc/ports.js.map +1 -0
  1110. package/dist/hosting/vnc/rfb-probe.d.ts +23 -0
  1111. package/dist/hosting/vnc/rfb-probe.d.ts.map +1 -0
  1112. package/dist/hosting/vnc/rfb-probe.js +95 -0
  1113. package/dist/hosting/vnc/rfb-probe.js.map +1 -0
  1114. package/dist/hosting/vnc/server-session.d.ts +69 -0
  1115. package/dist/hosting/vnc/server-session.d.ts.map +1 -0
  1116. package/dist/hosting/vnc/server-session.js +390 -0
  1117. package/dist/hosting/vnc/server-session.js.map +1 -0
  1118. package/dist/hosting/vnc/service.d.ts +135 -0
  1119. package/dist/hosting/vnc/service.d.ts.map +1 -0
  1120. package/dist/hosting/vnc/service.js +896 -0
  1121. package/dist/hosting/vnc/service.js.map +1 -0
  1122. package/dist/hosting/vnc/session-ticket.d.ts +37 -0
  1123. package/dist/hosting/vnc/session-ticket.d.ts.map +1 -0
  1124. package/dist/hosting/vnc/session-ticket.js +64 -0
  1125. package/dist/hosting/vnc/session-ticket.js.map +1 -0
  1126. package/dist/hosting/vnc/share-links.d.ts +27 -0
  1127. package/dist/hosting/vnc/share-links.d.ts.map +1 -0
  1128. package/dist/hosting/vnc/share-links.js +68 -0
  1129. package/dist/hosting/vnc/share-links.js.map +1 -0
  1130. package/dist/hosting/vnc/types.d.ts +87 -0
  1131. package/dist/hosting/vnc/types.d.ts.map +1 -0
  1132. package/dist/hosting/vnc/types.js +35 -0
  1133. package/dist/hosting/vnc/types.js.map +1 -0
  1134. package/dist/hosting/vnc/xstartup.d.ts +7 -0
  1135. package/dist/hosting/vnc/xstartup.d.ts.map +1 -0
  1136. package/dist/hosting/vnc/xstartup.js +50 -0
  1137. package/dist/hosting/vnc/xstartup.js.map +1 -0
  1138. package/dist/hosting/vpn/access-mode.d.ts +37 -0
  1139. package/dist/hosting/vpn/access-mode.d.ts.map +1 -0
  1140. package/dist/hosting/vpn/access-mode.js +126 -0
  1141. package/dist/hosting/vpn/access-mode.js.map +1 -0
  1142. package/dist/hosting/vpn/client-conf-protect.d.ts +28 -0
  1143. package/dist/hosting/vpn/client-conf-protect.d.ts.map +1 -0
  1144. package/dist/hosting/vpn/client-conf-protect.js +138 -0
  1145. package/dist/hosting/vpn/client-conf-protect.js.map +1 -0
  1146. package/dist/hosting/vpn/endpoint.d.ts +26 -0
  1147. package/dist/hosting/vpn/endpoint.d.ts.map +1 -0
  1148. package/dist/hosting/vpn/endpoint.js +90 -0
  1149. package/dist/hosting/vpn/endpoint.js.map +1 -0
  1150. package/dist/hosting/vpn/index.d.ts +12 -0
  1151. package/dist/hosting/vpn/index.d.ts.map +1 -0
  1152. package/dist/hosting/vpn/index.js +12 -0
  1153. package/dist/hosting/vpn/index.js.map +1 -0
  1154. package/dist/hosting/vpn/monitor.d.ts +141 -0
  1155. package/dist/hosting/vpn/monitor.d.ts.map +1 -0
  1156. package/dist/hosting/vpn/monitor.js +537 -0
  1157. package/dist/hosting/vpn/monitor.js.map +1 -0
  1158. package/dist/hosting/vpn/openvpn-conf.d.ts +34 -0
  1159. package/dist/hosting/vpn/openvpn-conf.d.ts.map +1 -0
  1160. package/dist/hosting/vpn/openvpn-conf.js +89 -0
  1161. package/dist/hosting/vpn/openvpn-conf.js.map +1 -0
  1162. package/dist/hosting/vpn/openvpn-ops.d.ts +72 -0
  1163. package/dist/hosting/vpn/openvpn-ops.d.ts.map +1 -0
  1164. package/dist/hosting/vpn/openvpn-ops.js +500 -0
  1165. package/dist/hosting/vpn/openvpn-ops.js.map +1 -0
  1166. package/dist/hosting/vpn/outline-ops.d.ts +71 -0
  1167. package/dist/hosting/vpn/outline-ops.d.ts.map +1 -0
  1168. package/dist/hosting/vpn/outline-ops.js +321 -0
  1169. package/dist/hosting/vpn/outline-ops.js.map +1 -0
  1170. package/dist/hosting/vpn/ports.d.ts +10 -0
  1171. package/dist/hosting/vpn/ports.d.ts.map +1 -0
  1172. package/dist/hosting/vpn/ports.js +48 -0
  1173. package/dist/hosting/vpn/ports.js.map +1 -0
  1174. package/dist/hosting/vpn/service.d.ts +114 -0
  1175. package/dist/hosting/vpn/service.d.ts.map +1 -0
  1176. package/dist/hosting/vpn/service.js +786 -0
  1177. package/dist/hosting/vpn/service.js.map +1 -0
  1178. package/dist/hosting/vpn/types.d.ts +66 -0
  1179. package/dist/hosting/vpn/types.d.ts.map +1 -0
  1180. package/dist/hosting/vpn/types.js +10 -0
  1181. package/dist/hosting/vpn/types.js.map +1 -0
  1182. package/dist/hosting/vpn/wireguard-conf.d.ts +31 -0
  1183. package/dist/hosting/vpn/wireguard-conf.d.ts.map +1 -0
  1184. package/dist/hosting/vpn/wireguard-conf.js +69 -0
  1185. package/dist/hosting/vpn/wireguard-conf.js.map +1 -0
  1186. package/dist/hosting/web-stats.d.ts +53 -0
  1187. package/dist/hosting/web-stats.d.ts.map +1 -0
  1188. package/dist/hosting/web-stats.js +177 -0
  1189. package/dist/hosting/web-stats.js.map +1 -0
  1190. package/dist/hosting/web-ui-build.d.ts +44 -0
  1191. package/dist/hosting/web-ui-build.d.ts.map +1 -0
  1192. package/dist/hosting/web-ui-build.js +297 -0
  1193. package/dist/hosting/web-ui-build.js.map +1 -0
  1194. package/dist/hosting/wizard.d.ts +43 -0
  1195. package/dist/hosting/wizard.d.ts.map +1 -0
  1196. package/dist/hosting/wizard.js +158 -0
  1197. package/dist/hosting/wizard.js.map +1 -0
  1198. package/dist/hosting/wordpress-download.d.ts +26 -0
  1199. package/dist/hosting/wordpress-download.d.ts.map +1 -0
  1200. package/dist/hosting/wordpress-download.js +70 -0
  1201. package/dist/hosting/wordpress-download.js.map +1 -0
  1202. package/dist/hosting/wordpress-setup.d.ts +40 -0
  1203. package/dist/hosting/wordpress-setup.d.ts.map +1 -0
  1204. package/dist/hosting/wordpress-setup.js +150 -0
  1205. package/dist/hosting/wordpress-setup.js.map +1 -0
  1206. package/dist/index.d.ts +19 -0
  1207. package/dist/index.d.ts.map +1 -0
  1208. package/dist/index.js +19 -0
  1209. package/dist/index.js.map +1 -0
  1210. package/dist/llm/gateway.d.ts +61 -0
  1211. package/dist/llm/gateway.d.ts.map +1 -0
  1212. package/dist/llm/gateway.js +98 -0
  1213. package/dist/llm/gateway.js.map +1 -0
  1214. package/dist/llm/http-transport.d.ts +6 -0
  1215. package/dist/llm/http-transport.d.ts.map +1 -0
  1216. package/dist/llm/http-transport.js +52 -0
  1217. package/dist/llm/http-transport.js.map +1 -0
  1218. package/dist/llm/index.d.ts +3 -0
  1219. package/dist/llm/index.d.ts.map +1 -0
  1220. package/dist/llm/index.js +3 -0
  1221. package/dist/llm/index.js.map +1 -0
  1222. package/dist/monitoring/index.d.ts +7 -0
  1223. package/dist/monitoring/index.d.ts.map +1 -0
  1224. package/dist/monitoring/index.js +7 -0
  1225. package/dist/monitoring/index.js.map +1 -0
  1226. package/dist/monitoring/metrics.d.ts +26 -0
  1227. package/dist/monitoring/metrics.d.ts.map +1 -0
  1228. package/dist/monitoring/metrics.js +144 -0
  1229. package/dist/monitoring/metrics.js.map +1 -0
  1230. package/dist/monitoring/notifications.d.ts +29 -0
  1231. package/dist/monitoring/notifications.d.ts.map +1 -0
  1232. package/dist/monitoring/notifications.js +337 -0
  1233. package/dist/monitoring/notifications.js.map +1 -0
  1234. package/dist/monitoring/process-signal.d.ts +78 -0
  1235. package/dist/monitoring/process-signal.d.ts.map +1 -0
  1236. package/dist/monitoring/process-signal.js +289 -0
  1237. package/dist/monitoring/process-signal.js.map +1 -0
  1238. package/dist/monitoring/process-snapshot.d.ts +21 -0
  1239. package/dist/monitoring/process-snapshot.d.ts.map +1 -0
  1240. package/dist/monitoring/process-snapshot.js +219 -0
  1241. package/dist/monitoring/process-snapshot.js.map +1 -0
  1242. package/dist/monitoring/project-usage.d.ts +45 -0
  1243. package/dist/monitoring/project-usage.d.ts.map +1 -0
  1244. package/dist/monitoring/project-usage.js +75 -0
  1245. package/dist/monitoring/project-usage.js.map +1 -0
  1246. package/dist/monitoring/top-snapshot.d.ts +47 -0
  1247. package/dist/monitoring/top-snapshot.d.ts.map +1 -0
  1248. package/dist/monitoring/top-snapshot.js +245 -0
  1249. package/dist/monitoring/top-snapshot.js.map +1 -0
  1250. package/dist/net/index.d.ts +7 -0
  1251. package/dist/net/index.d.ts.map +1 -0
  1252. package/dist/net/index.js +7 -0
  1253. package/dist/net/index.js.map +1 -0
  1254. package/dist/net/ip.d.ts +41 -0
  1255. package/dist/net/ip.d.ts.map +1 -0
  1256. package/dist/net/ip.js +326 -0
  1257. package/dist/net/ip.js.map +1 -0
  1258. package/dist/net/network-apply.d.ts +73 -0
  1259. package/dist/net/network-apply.d.ts.map +1 -0
  1260. package/dist/net/network-apply.js +712 -0
  1261. package/dist/net/network-apply.js.map +1 -0
  1262. package/dist/net/network-parse.d.ts +27 -0
  1263. package/dist/net/network-parse.d.ts.map +1 -0
  1264. package/dist/net/network-parse.js +162 -0
  1265. package/dist/net/network-parse.js.map +1 -0
  1266. package/dist/net/network-snapshot.d.ts +9 -0
  1267. package/dist/net/network-snapshot.d.ts.map +1 -0
  1268. package/dist/net/network-snapshot.js +241 -0
  1269. package/dist/net/network-snapshot.js.map +1 -0
  1270. package/dist/net/network-types.d.ts +107 -0
  1271. package/dist/net/network-types.d.ts.map +1 -0
  1272. package/dist/net/network-types.js +5 -0
  1273. package/dist/net/network-types.js.map +1 -0
  1274. package/dist/net/ssrf.d.ts +25 -0
  1275. package/dist/net/ssrf.d.ts.map +1 -0
  1276. package/dist/net/ssrf.js +127 -0
  1277. package/dist/net/ssrf.js.map +1 -0
  1278. package/dist/repositories/approval-repo.d.ts +13 -0
  1279. package/dist/repositories/approval-repo.d.ts.map +1 -0
  1280. package/dist/repositories/approval-repo.js +29 -0
  1281. package/dist/repositories/approval-repo.js.map +1 -0
  1282. package/dist/repositories/audit-repo.d.ts +21 -0
  1283. package/dist/repositories/audit-repo.d.ts.map +1 -0
  1284. package/dist/repositories/audit-repo.js +39 -0
  1285. package/dist/repositories/audit-repo.js.map +1 -0
  1286. package/dist/repositories/index.d.ts +7 -0
  1287. package/dist/repositories/index.d.ts.map +1 -0
  1288. package/dist/repositories/index.js +7 -0
  1289. package/dist/repositories/index.js.map +1 -0
  1290. package/dist/repositories/project-repo.d.ts +19 -0
  1291. package/dist/repositories/project-repo.d.ts.map +1 -0
  1292. package/dist/repositories/project-repo.js +142 -0
  1293. package/dist/repositories/project-repo.js.map +1 -0
  1294. package/dist/repositories/session-repo.d.ts +37 -0
  1295. package/dist/repositories/session-repo.d.ts.map +1 -0
  1296. package/dist/repositories/session-repo.js +141 -0
  1297. package/dist/repositories/session-repo.js.map +1 -0
  1298. package/dist/repositories/settings-repo.d.ts +10 -0
  1299. package/dist/repositories/settings-repo.d.ts.map +1 -0
  1300. package/dist/repositories/settings-repo.js +23 -0
  1301. package/dist/repositories/settings-repo.js.map +1 -0
  1302. package/dist/repositories/user-repo.d.ts +21 -0
  1303. package/dist/repositories/user-repo.d.ts.map +1 -0
  1304. package/dist/repositories/user-repo.js +104 -0
  1305. package/dist/repositories/user-repo.js.map +1 -0
  1306. package/dist/security/allowlist.d.ts +40 -0
  1307. package/dist/security/allowlist.d.ts.map +1 -0
  1308. package/dist/security/allowlist.js +167 -0
  1309. package/dist/security/allowlist.js.map +1 -0
  1310. package/dist/security/api-keys.d.ts +40 -0
  1311. package/dist/security/api-keys.d.ts.map +1 -0
  1312. package/dist/security/api-keys.js +99 -0
  1313. package/dist/security/api-keys.js.map +1 -0
  1314. package/dist/security/approval.d.ts +37 -0
  1315. package/dist/security/approval.d.ts.map +1 -0
  1316. package/dist/security/approval.js +152 -0
  1317. package/dist/security/approval.js.map +1 -0
  1318. package/dist/security/capabilities-enforce.d.ts +18 -0
  1319. package/dist/security/capabilities-enforce.d.ts.map +1 -0
  1320. package/dist/security/capabilities-enforce.js +29 -0
  1321. package/dist/security/capabilities-enforce.js.map +1 -0
  1322. package/dist/security/index.d.ts +14 -0
  1323. package/dist/security/index.d.ts.map +1 -0
  1324. package/dist/security/index.js +14 -0
  1325. package/dist/security/index.js.map +1 -0
  1326. package/dist/security/mfa/backup-export.d.ts +30 -0
  1327. package/dist/security/mfa/backup-export.d.ts.map +1 -0
  1328. package/dist/security/mfa/backup-export.js +57 -0
  1329. package/dist/security/mfa/backup-export.js.map +1 -0
  1330. package/dist/security/mfa/fail2ban-jails.d.ts +10 -0
  1331. package/dist/security/mfa/fail2ban-jails.d.ts.map +1 -0
  1332. package/dist/security/mfa/fail2ban-jails.js +71 -0
  1333. package/dist/security/mfa/fail2ban-jails.js.map +1 -0
  1334. package/dist/security/mfa/index.d.ts +9 -0
  1335. package/dist/security/mfa/index.d.ts.map +1 -0
  1336. package/dist/security/mfa/index.js +9 -0
  1337. package/dist/security/mfa/index.js.map +1 -0
  1338. package/dist/security/mfa/rate-limit.d.ts +30 -0
  1339. package/dist/security/mfa/rate-limit.d.ts.map +1 -0
  1340. package/dist/security/mfa/rate-limit.js +90 -0
  1341. package/dist/security/mfa/rate-limit.js.map +1 -0
  1342. package/dist/security/mfa/recovery-codes.d.ts +10 -0
  1343. package/dist/security/mfa/recovery-codes.d.ts.map +1 -0
  1344. package/dist/security/mfa/recovery-codes.js +38 -0
  1345. package/dist/security/mfa/recovery-codes.js.map +1 -0
  1346. package/dist/security/mfa/remember-device.d.ts +34 -0
  1347. package/dist/security/mfa/remember-device.d.ts.map +1 -0
  1348. package/dist/security/mfa/remember-device.js +112 -0
  1349. package/dist/security/mfa/remember-device.js.map +1 -0
  1350. package/dist/security/mfa/step-up.d.ts +9 -0
  1351. package/dist/security/mfa/step-up.d.ts.map +1 -0
  1352. package/dist/security/mfa/step-up.js +25 -0
  1353. package/dist/security/mfa/step-up.js.map +1 -0
  1354. package/dist/security/mfa/totp-crypto.d.ts +13 -0
  1355. package/dist/security/mfa/totp-crypto.d.ts.map +1 -0
  1356. package/dist/security/mfa/totp-crypto.js +29 -0
  1357. package/dist/security/mfa/totp-crypto.js.map +1 -0
  1358. package/dist/security/mfa/webauthn.d.ts +69 -0
  1359. package/dist/security/mfa/webauthn.d.ts.map +1 -0
  1360. package/dist/security/mfa/webauthn.js +178 -0
  1361. package/dist/security/mfa/webauthn.js.map +1 -0
  1362. package/dist/security/operation-level.d.ts +14 -0
  1363. package/dist/security/operation-level.d.ts.map +1 -0
  1364. package/dist/security/operation-level.js +39 -0
  1365. package/dist/security/operation-level.js.map +1 -0
  1366. package/dist/security/password-policy.d.ts +22 -0
  1367. package/dist/security/password-policy.d.ts.map +1 -0
  1368. package/dist/security/password-policy.js +50 -0
  1369. package/dist/security/password-policy.js.map +1 -0
  1370. package/dist/security/rbac.d.ts +18 -0
  1371. package/dist/security/rbac.d.ts.map +1 -0
  1372. package/dist/security/rbac.js +58 -0
  1373. package/dist/security/rbac.js.map +1 -0
  1374. package/dist/security/sandbox.d.ts +34 -0
  1375. package/dist/security/sandbox.d.ts.map +1 -0
  1376. package/dist/security/sandbox.js +62 -0
  1377. package/dist/security/sandbox.js.map +1 -0
  1378. package/dist/security/ssh-2fa/index.d.ts +4 -0
  1379. package/dist/security/ssh-2fa/index.d.ts.map +1 -0
  1380. package/dist/security/ssh-2fa/index.js +4 -0
  1381. package/dist/security/ssh-2fa/index.js.map +1 -0
  1382. package/dist/security/ssh-2fa/install.d.ts +93 -0
  1383. package/dist/security/ssh-2fa/install.d.ts.map +1 -0
  1384. package/dist/security/ssh-2fa/install.js +457 -0
  1385. package/dist/security/ssh-2fa/install.js.map +1 -0
  1386. package/dist/security/ssh-2fa/store.d.ts +44 -0
  1387. package/dist/security/ssh-2fa/store.d.ts.map +1 -0
  1388. package/dist/security/ssh-2fa/store.js +209 -0
  1389. package/dist/security/ssh-2fa/store.js.map +1 -0
  1390. package/dist/security/ssh-2fa/types.d.ts +33 -0
  1391. package/dist/security/ssh-2fa/types.d.ts.map +1 -0
  1392. package/dist/security/ssh-2fa/types.js +9 -0
  1393. package/dist/security/ssh-2fa/types.js.map +1 -0
  1394. package/dist/security/ssh-identity/crypto.d.ts +24 -0
  1395. package/dist/security/ssh-identity/crypto.d.ts.map +1 -0
  1396. package/dist/security/ssh-identity/crypto.js +109 -0
  1397. package/dist/security/ssh-identity/crypto.js.map +1 -0
  1398. package/dist/security/ssh-identity/generate.d.ts +18 -0
  1399. package/dist/security/ssh-identity/generate.d.ts.map +1 -0
  1400. package/dist/security/ssh-identity/generate.js +102 -0
  1401. package/dist/security/ssh-identity/generate.js.map +1 -0
  1402. package/dist/security/ssh-identity/index.d.ts +7 -0
  1403. package/dist/security/ssh-identity/index.d.ts.map +1 -0
  1404. package/dist/security/ssh-identity/index.js +7 -0
  1405. package/dist/security/ssh-identity/index.js.map +1 -0
  1406. package/dist/security/ssh-identity/install.d.ts +37 -0
  1407. package/dist/security/ssh-identity/install.d.ts.map +1 -0
  1408. package/dist/security/ssh-identity/install.js +281 -0
  1409. package/dist/security/ssh-identity/install.js.map +1 -0
  1410. package/dist/security/ssh-identity/ops.d.ts +77 -0
  1411. package/dist/security/ssh-identity/ops.d.ts.map +1 -0
  1412. package/dist/security/ssh-identity/ops.js +244 -0
  1413. package/dist/security/ssh-identity/ops.js.map +1 -0
  1414. package/dist/security/ssh-identity/store.d.ts +51 -0
  1415. package/dist/security/ssh-identity/store.d.ts.map +1 -0
  1416. package/dist/security/ssh-identity/store.js +240 -0
  1417. package/dist/security/ssh-identity/store.js.map +1 -0
  1418. package/dist/security/ssh-identity/types.d.ts +43 -0
  1419. package/dist/security/ssh-identity/types.d.ts.map +1 -0
  1420. package/dist/security/ssh-identity/types.js +9 -0
  1421. package/dist/security/ssh-identity/types.js.map +1 -0
  1422. package/dist/security/tool-executor.d.ts +39 -0
  1423. package/dist/security/tool-executor.d.ts.map +1 -0
  1424. package/dist/security/tool-executor.js +271 -0
  1425. package/dist/security/tool-executor.js.map +1 -0
  1426. package/dist/security/totp.d.ts +15 -0
  1427. package/dist/security/totp.d.ts.map +1 -0
  1428. package/dist/security/totp.js +97 -0
  1429. package/dist/security/totp.js.map +1 -0
  1430. package/dist/services/ai-task-service.d.ts +35 -0
  1431. package/dist/services/ai-task-service.d.ts.map +1 -0
  1432. package/dist/services/ai-task-service.js +208 -0
  1433. package/dist/services/ai-task-service.js.map +1 -0
  1434. package/dist/services/auth.d.ts +126 -0
  1435. package/dist/services/auth.d.ts.map +1 -0
  1436. package/dist/services/auth.js +705 -0
  1437. package/dist/services/auth.js.map +1 -0
  1438. package/dist/services/index.d.ts +9 -0
  1439. package/dist/services/index.d.ts.map +1 -0
  1440. package/dist/services/index.js +9 -0
  1441. package/dist/services/index.js.map +1 -0
  1442. package/dist/services/list-filter.d.ts +24 -0
  1443. package/dist/services/list-filter.d.ts.map +1 -0
  1444. package/dist/services/list-filter.js +90 -0
  1445. package/dist/services/list-filter.js.map +1 -0
  1446. package/dist/services/protection-probe.d.ts +31 -0
  1447. package/dist/services/protection-probe.d.ts.map +1 -0
  1448. package/dist/services/protection-probe.js +97 -0
  1449. package/dist/services/protection-probe.js.map +1 -0
  1450. package/dist/services/protection.d.ts +23 -0
  1451. package/dist/services/protection.d.ts.map +1 -0
  1452. package/dist/services/protection.js +51 -0
  1453. package/dist/services/protection.js.map +1 -0
  1454. package/dist/services/rbac-policy.d.ts +95 -0
  1455. package/dist/services/rbac-policy.d.ts.map +1 -0
  1456. package/dist/services/rbac-policy.js +260 -0
  1457. package/dist/services/rbac-policy.js.map +1 -0
  1458. package/dist/services/scheduler.d.ts +35 -0
  1459. package/dist/services/scheduler.d.ts.map +1 -0
  1460. package/dist/services/scheduler.js +124 -0
  1461. package/dist/services/scheduler.js.map +1 -0
  1462. package/dist/services/users-admin.d.ts +64 -0
  1463. package/dist/services/users-admin.d.ts.map +1 -0
  1464. package/dist/services/users-admin.js +249 -0
  1465. package/dist/services/users-admin.js.map +1 -0
  1466. package/dist/skills/index.d.ts +3 -0
  1467. package/dist/skills/index.d.ts.map +1 -0
  1468. package/dist/skills/index.js +3 -0
  1469. package/dist/skills/index.js.map +1 -0
  1470. package/dist/skills/playbooks.d.ts +32 -0
  1471. package/dist/skills/playbooks.d.ts.map +1 -0
  1472. package/dist/skills/playbooks.js +164 -0
  1473. package/dist/skills/playbooks.js.map +1 -0
  1474. package/dist/skills/task-planner.d.ts +74 -0
  1475. package/dist/skills/task-planner.d.ts.map +1 -0
  1476. package/dist/skills/task-planner.js +172 -0
  1477. package/dist/skills/task-planner.js.map +1 -0
  1478. package/dist/terminal/index.d.ts +4 -0
  1479. package/dist/terminal/index.d.ts.map +1 -0
  1480. package/dist/terminal/index.js +4 -0
  1481. package/dist/terminal/index.js.map +1 -0
  1482. package/dist/terminal/spawn-plan.d.ts +30 -0
  1483. package/dist/terminal/spawn-plan.d.ts.map +1 -0
  1484. package/dist/terminal/spawn-plan.js +63 -0
  1485. package/dist/terminal/spawn-plan.js.map +1 -0
  1486. package/dist/terminal/targets.d.ts +39 -0
  1487. package/dist/terminal/targets.d.ts.map +1 -0
  1488. package/dist/terminal/targets.js +51 -0
  1489. package/dist/terminal/targets.js.map +1 -0
  1490. package/dist/terminal/tickets.d.ts +34 -0
  1491. package/dist/terminal/tickets.d.ts.map +1 -0
  1492. package/dist/terminal/tickets.js +64 -0
  1493. package/dist/terminal/tickets.js.map +1 -0
  1494. package/dist/test/host.d.ts +11 -0
  1495. package/dist/test/host.d.ts.map +1 -0
  1496. package/dist/test/host.js +25 -0
  1497. package/dist/test/host.js.map +1 -0
  1498. package/dist/update/advisor.d.ts +39 -0
  1499. package/dist/update/advisor.d.ts.map +1 -0
  1500. package/dist/update/advisor.js +117 -0
  1501. package/dist/update/advisor.js.map +1 -0
  1502. package/dist/update/index.d.ts +7 -0
  1503. package/dist/update/index.d.ts.map +1 -0
  1504. package/dist/update/index.js +7 -0
  1505. package/dist/update/index.js.map +1 -0
  1506. package/dist/update/inventory.d.ts +40 -0
  1507. package/dist/update/inventory.d.ts.map +1 -0
  1508. package/dist/update/inventory.js +182 -0
  1509. package/dist/update/inventory.js.map +1 -0
  1510. package/dist/update/package-apply.d.ts +74 -0
  1511. package/dist/update/package-apply.d.ts.map +1 -0
  1512. package/dist/update/package-apply.js +188 -0
  1513. package/dist/update/package-apply.js.map +1 -0
  1514. package/dist/update/self-update-apply.d.ts +112 -0
  1515. package/dist/update/self-update-apply.d.ts.map +1 -0
  1516. package/dist/update/self-update-apply.js +437 -0
  1517. package/dist/update/self-update-apply.js.map +1 -0
  1518. package/dist/update/self-update.d.ts +33 -0
  1519. package/dist/update/self-update.d.ts.map +1 -0
  1520. package/dist/update/self-update.js +88 -0
  1521. package/dist/update/self-update.js.map +1 -0
  1522. package/dist/update/summary.d.ts +35 -0
  1523. package/dist/update/summary.d.ts.map +1 -0
  1524. package/dist/update/summary.js +88 -0
  1525. package/dist/update/summary.js.map +1 -0
  1526. package/package.json +54 -0
@@ -0,0 +1,1148 @@
1
+ /**
2
+ * System-level apply orchestrators: write configs under dataDir, optionally install/copy with YSK_EXECUTE.
3
+ */
4
+ import { mkdirSync, writeFileSync, existsSync, copyFileSync, readFileSync } from 'node:fs';
5
+ import { join } from 'node:path';
6
+ import { planEmailStackInstall } from '../email/dns-records.js';
7
+ import { planLetsEncrypt, renderNginxProxy } from './nginx-ssl.js';
8
+ import { apacheBackendBind, apacheBackendPort, apacheBackendUpstream, renderPhpVhost, selectPhpRuntime, } from './runtime.js';
9
+ import { planFirewall } from './extras.js';
10
+ import { ErrorCodes, YskError, tl } from 'ysk-server-shared';
11
+ import { HostSoftwareProbe, shellEnsureAptPackage } from './software-probe/index.js';
12
+ export function panelBlockMessage(reason) {
13
+ switch (reason) {
14
+ case 'no_execute':
15
+ return tl('ops.blocked.needExecute');
16
+ case 'no_root':
17
+ return tl('notes.auto.n0008');
18
+ case 'missing_binary':
19
+ return tl('notes.auto.n0524');
20
+ case 'network':
21
+ return tl('notes.auto.n1316');
22
+ case 'validation':
23
+ return tl('notes.auto.n1465');
24
+ default:
25
+ return tl('notes.auto.n0898');
26
+ }
27
+ }
28
+ async function runAll(host, commands, execute) {
29
+ const out = [];
30
+ if (!execute)
31
+ return out;
32
+ for (const argv of commands) {
33
+ const r = await host.runCommand(argv, { timeoutMs: 180_000 });
34
+ out.push({ argv, exitCode: r.exitCode, stderr: r.stderr, stdout: r.stdout });
35
+ }
36
+ return out;
37
+ }
38
+ /**
39
+ * Write Postfix/Dovecot/OpenDKIM managed configs + install helper;
40
+ * optionally apt-install when root+EXECUTE. Never fakes ok when install requested but skipped.
41
+ */
42
+ export async function applyEmailStack(input) {
43
+ const domain = input.domain.trim().toLowerCase();
44
+ if (!domain)
45
+ throw new YskError(ErrorCodes.VALIDATION, tl('notes.needDomain'), { httpStatus: 400 });
46
+ const mailHost = input.mailHostname ?? `mail.${domain}`;
47
+ const dir = join(input.dataDir, 'email', domain);
48
+ mkdirSync(join(dir, 'postfix'), { recursive: true });
49
+ mkdirSync(join(dir, 'dovecot'), { recursive: true });
50
+ mkdirSync(join(dir, 'opendkim'), { recursive: true });
51
+ const certBase = `/etc/letsencrypt/live/${mailHost}`;
52
+ const mainCf = [
53
+ `# Generated by YSK Server for ${domain}`,
54
+ `myhostname = ${mailHost}`,
55
+ `myorigin = ${domain}`,
56
+ 'inet_interfaces = all',
57
+ 'inet_protocols = all',
58
+ 'smtpd_banner = $myhostname ESMTP YSK',
59
+ 'smtpd_tls_security_level = may',
60
+ `smtpd_tls_cert_file = ${certBase}/fullchain.pem`,
61
+ `smtpd_tls_key_file = ${certBase}/privkey.pem`,
62
+ 'smtp_tls_security_level = may',
63
+ 'smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination',
64
+ 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination',
65
+ 'mynetworks = 127.0.0.0/8 [::1]/128',
66
+ 'home_mailbox = Maildir/',
67
+ 'milter_default_action = accept',
68
+ 'milter_protocol = 6',
69
+ 'smtpd_milters = inet:localhost:8891',
70
+ 'non_smtpd_milters = inet:localhost:8891',
71
+ '',
72
+ ].join('\n');
73
+ const masterCfSnippet = [
74
+ '# YSK snippet — ensure submission/smtps (merge carefully into /etc/postfix/master.cf)',
75
+ 'submission inet n - y - - smtpd',
76
+ ' -o syslog_name=postfix/submission',
77
+ ' -o smtpd_tls_security_level=encrypt',
78
+ ' -o smtpd_sasl_auth_enable=yes',
79
+ 'smtps inet n - y - - smtpd',
80
+ ' -o syslog_name=postfix/smtps',
81
+ ' -o smtpd_tls_wrappermode=yes',
82
+ ' -o smtpd_sasl_auth_enable=yes',
83
+ '',
84
+ ].join('\n');
85
+ const dovecot = [
86
+ '# Generated by YSK Server',
87
+ 'protocols = imap lmtp',
88
+ 'listen = *, ::',
89
+ 'mail_location = maildir:~/Maildir',
90
+ 'ssl = required',
91
+ `ssl_cert = <${certBase}/fullchain.pem`,
92
+ `ssl_key = <${certBase}/privkey.pem`,
93
+ 'auth_mechanisms = plain login',
94
+ 'disable_plaintext_auth = yes',
95
+ '',
96
+ ].join('\n');
97
+ const opendkim = [
98
+ 'Syslog yes',
99
+ 'Mode sv',
100
+ 'Canonicalization relaxed/simple',
101
+ `Domain ${domain}`,
102
+ 'Selector default',
103
+ `KeyFile ${dir}/opendkim/default.private`,
104
+ 'Socket inet:8891@localhost',
105
+ 'PidFile /run/opendkim/opendkim.pid',
106
+ '',
107
+ ].join('\n');
108
+ const keyTable = `default._domainkey.${domain} ${domain}:default:${dir}/opendkim/default.private\n`;
109
+ const signingTable = `*@${domain} default._domainkey.${domain}\n`;
110
+ const written = [
111
+ join(dir, 'postfix', 'main.cf'),
112
+ join(dir, 'postfix', 'master.cf.ysk-snippet'),
113
+ join(dir, 'dovecot', 'dovecot.conf'),
114
+ join(dir, 'opendkim', 'opendkim.conf'),
115
+ join(dir, 'opendkim', 'KeyTable'),
116
+ join(dir, 'opendkim', 'SigningTable'),
117
+ join(dir, 'install-mta.sh'),
118
+ join(dir, 'README.txt'),
119
+ ];
120
+ writeFileSync(written[0], mainCf, 'utf8');
121
+ writeFileSync(written[1], masterCfSnippet, 'utf8');
122
+ writeFileSync(written[2], dovecot, 'utf8');
123
+ writeFileSync(written[3], opendkim, 'utf8');
124
+ writeFileSync(written[4], keyTable, 'utf8');
125
+ writeFileSync(written[5], signingTable, 'utf8');
126
+ const plan = planEmailStackInstall(domain);
127
+ const installScript = [
128
+ '#!/usr/bin/env bash',
129
+ `# YSK Server MTA install helper for ${domain}`,
130
+ 'set -euo pipefail',
131
+ `DOMAIN=${JSON.stringify(domain)}`,
132
+ `MAILHOST=${JSON.stringify(mailHost)}`,
133
+ `DIR=${JSON.stringify(dir)}`,
134
+ 'export DEBIAN_FRONTEND=noninteractive',
135
+ `apt-get update`,
136
+ `apt-get install -y ${plan.packages.join(' ')}`,
137
+ 'cp "$DIR/postfix/main.cf" /etc/postfix/main.cf',
138
+ 'cp "$DIR/dovecot/dovecot.conf" /etc/dovecot/dovecot.conf',
139
+ 'cp "$DIR/opendkim/opendkim.conf" /etc/opendkim.conf',
140
+ 'systemctl enable --now postfix',
141
+ 'systemctl enable --now dovecot',
142
+ 'systemctl enable --now opendkim',
143
+ 'systemctl reload postfix || systemctl restart postfix',
144
+ 'echo "MTA configs applied for $DOMAIN — still need DNS/PTR/Port25"',
145
+ '',
146
+ ].join('\n');
147
+ writeFileSync(written[6], installScript, 'utf8');
148
+ writeFileSync(written[7], [
149
+ `YSK Server managed mail configs for ${domain}`,
150
+ `Mail host: ${mailHost}`,
151
+ 'Always review before copy to /etc.',
152
+ tl('notes.auto.n0526'),
153
+ `Helper: ${written[6]}`,
154
+ `Ports: ${plan.ports.join(', ')}`,
155
+ 'External: SPF/DKIM/DMARC/PTR + Port 25 or SMTP relay',
156
+ '',
157
+ ].join('\n'), 'utf8');
158
+ const notes = [...plan.notes, `Configs under ${dir}`, `Install helper: ${written[6]}`];
159
+ const commands = [];
160
+ if (input.installPackages) {
161
+ commands.push(['apt-get', 'update']);
162
+ // Never leave postfix in "No configuration" (no main.cf → unit skipped)
163
+ commands.push([
164
+ 'bash',
165
+ '-c',
166
+ [
167
+ 'MAILNAME="$(hostname -f 2>/dev/null || hostname 2>/dev/null || echo localhost)"',
168
+ 'echo "postfix postfix/main_mailer_type select Internet Site" | debconf-set-selections',
169
+ 'echo "postfix postfix/mailname string $MAILNAME" | debconf-set-selections',
170
+ ].join('; '),
171
+ ]);
172
+ commands.push([
173
+ 'bash',
174
+ '-c',
175
+ `DEBIAN_FRONTEND=noninteractive apt-get install -y ${plan.packages.join(' ')}`,
176
+ ]);
177
+ commands.push(['cp', written[0], '/etc/postfix/main.cf']);
178
+ commands.push(['cp', written[2], '/etc/dovecot/dovecot.conf']);
179
+ commands.push(['systemctl', 'enable', '--now', 'postfix']);
180
+ commands.push(['systemctl', 'enable', '--now', 'dovecot']);
181
+ commands.push(['systemctl', 'reload', 'postfix']);
182
+ }
183
+ const wantInstall = Boolean(input.installPackages);
184
+ const execute = Boolean(wantInstall && input.host.executeEnabled() && input.host.isRoot());
185
+ if (wantInstall && !execute) {
186
+ notes.push(tl('notes.auto.n0641'));
187
+ }
188
+ const commandResults = await runAll(input.host, commands, execute);
189
+ const ranOk = commandResults.every((c) => c.exitCode === 0);
190
+ const serviceStatus = {};
191
+ for (const svc of ['postfix', 'dovecot', 'opendkim']) {
192
+ try {
193
+ const st = await input.host.runCommand(['systemctl', 'is-active', svc], { timeoutMs: 5_000 });
194
+ serviceStatus[svc] = (st.stdout || st.stderr || `exit_${st.exitCode}`).trim();
195
+ }
196
+ catch {
197
+ serviceStatus[svc] = 'unknown';
198
+ }
199
+ }
200
+ notes.push(`services: ${JSON.stringify(serviceStatus)}`);
201
+ return {
202
+ ok: wantInstall ? execute && ranOk : true,
203
+ written,
204
+ commands: commands.map((a) => a.join(' ')),
205
+ commandResults,
206
+ notes,
207
+ serviceStatus,
208
+ requiresExecute: !input.host.executeEnabled(),
209
+ requiresRoot: !input.host.isRoot()
210
+ };
211
+ }
212
+ /**
213
+ * Issue / renew cert via panel: always attempts real execution when allowed.
214
+ * Never instructs the operator to copy shell commands.
215
+ */
216
+ export async function applyLetsEncrypt(input) {
217
+ const domain = input.domain.trim().toLowerCase();
218
+ const isWildcard = domain.startsWith('*.');
219
+ const challenge = input.challenge ?? (isWildcard ? 'dns-01' : 'http-01');
220
+ const plan = planLetsEncrypt({
221
+ domain,
222
+ email: input.email,
223
+ provider: 'letsencrypt',
224
+ challenge
225
+ });
226
+ const want = input.run !== false;
227
+ const hasExecute = input.host.executeEnabled();
228
+ const isRoot = input.host.isRoot();
229
+ const execute = Boolean(want && hasExecute && isRoot);
230
+ let blocked = false;
231
+ let blockReason;
232
+ let blockMessage;
233
+ const notes = [];
234
+ const steps = [];
235
+ if (want && !hasExecute) {
236
+ blocked = true;
237
+ blockReason = 'no_execute';
238
+ blockMessage = panelBlockMessage('no_execute');
239
+ notes.push(blockMessage);
240
+ steps.push({ name: tl('notes.ssl.requestCert'), status: 'blocked', detail: blockMessage });
241
+ }
242
+ else if (want && !isRoot) {
243
+ blocked = true;
244
+ blockReason = 'no_root';
245
+ blockMessage = panelBlockMessage('no_root');
246
+ notes.push(blockMessage);
247
+ steps.push({ name: tl('notes.ssl.requestCert'), status: 'blocked', detail: blockMessage });
248
+ }
249
+ const commands = plan.commands.map((c) => ['bash', '-c', c]);
250
+ const commandResults = await runAll(input.host, commands, execute);
251
+ if (execute) {
252
+ const ranOk = commandResults.length > 0 && commandResults.every((c) => c.exitCode === 0);
253
+ if (ranOk) {
254
+ notes.push(tl('notes.auto.n0752'));
255
+ steps.push({ name: tl('notes.ssl.requestCert'), status: 'ok' });
256
+ steps.push({ name: tl('notes.auto.n1515'), status: 'ok' });
257
+ }
258
+ else {
259
+ const err = commandResults
260
+ .map((c) => `${c.stderr || ''}\n${c.stdout || ''}`)
261
+ .filter((s) => s.trim())
262
+ .join('\n');
263
+ const { notesForLetsEncryptFailure } = await import('./ssl-le-errors.js');
264
+ const humanNotes = notesForLetsEncryptFailure(err, domain);
265
+ notes.push(...humanNotes);
266
+ steps.push({
267
+ name: tl('notes.ssl.requestCert'),
268
+ status: 'failed',
269
+ detail: humanNotes[0] || err.slice(0, 200) || undefined,
270
+ });
271
+ }
272
+ return {
273
+ ok: ranOk,
274
+ executed: true,
275
+ blocked: false,
276
+ written: [],
277
+ commands: plan.commands,
278
+ commandResults,
279
+ notes,
280
+ steps
281
+ };
282
+ }
283
+ // Explicit plan-only (run=false): plan success — not a failed certificate issue.
284
+ if (!want) {
285
+ notes.push('letsencrypt plan only (run=false) — not issued');
286
+ steps.push({ name: tl('notes.ssl.requestCert'), status: 'ok', detail: 'planned' });
287
+ return {
288
+ ok: true,
289
+ executed: false,
290
+ blocked: false,
291
+ dryRun: true,
292
+ written: [],
293
+ commands: plan.commands,
294
+ commandResults,
295
+ notes,
296
+ steps,
297
+ };
298
+ }
299
+ // Wanted run but blocked (no EXECUTE/root) — honest fail-closed
300
+ return {
301
+ ok: false,
302
+ executed: false,
303
+ blocked,
304
+ blockReason,
305
+ blockMessage,
306
+ written: [],
307
+ commands: plan.commands,
308
+ commandResults,
309
+ notes,
310
+ steps
311
+ };
312
+ }
313
+ /**
314
+ * Write Apache PHP vhost (backend bind only) + optional enable.
315
+ * Topology: Nginx → Apache (127.0.0.1:8080) → PHP-FPM sock.
316
+ */
317
+ export async function applyPhpHosting(input) {
318
+ const rt = selectPhpRuntime(input.phpVersion);
319
+ const bind = apacheBackendBind();
320
+ const port = apacheBackendPort();
321
+ const apacheUpstream = apacheBackendUpstream();
322
+ const dir = join(input.dataDir, 'apache', 'sites');
323
+ mkdirSync(dir, { recursive: true });
324
+ mkdirSync(input.docRoot, { recursive: true });
325
+ const conf = renderPhpVhost({
326
+ domain: input.domain,
327
+ serverAliases: input.serverAliases,
328
+ docRoot: input.docRoot,
329
+ phpVersion: rt.version,
330
+ poolName: input.poolName,
331
+ bind,
332
+ port,
333
+ });
334
+ const path = join(dir, `ysk-${input.poolName}.conf`);
335
+ writeFileSync(path, conf, 'utf8');
336
+ const index = join(input.docRoot, 'index.php');
337
+ if (!existsSync(index)) {
338
+ writeFileSync(index, '<?php echo "YSK PHP OK\\n";\n', 'utf8');
339
+ }
340
+ const notes = [
341
+ `PHP ${rt.version} Apache vhost at ${path}`,
342
+ `Apache backend ${bind}:${port} (Nginx proxies; FPM sock)`,
343
+ `binary ${rt.binaryPath}`,
344
+ ];
345
+ // Retire orphan dataDir confs with the same ServerName (not owned by other projects).
346
+ try {
347
+ const { retireOrphanApacheConfsForDomain } = await import('./apache/artifacts.js');
348
+ const retired = await retireOrphanApacheConfsForDomain({
349
+ dataDir: input.dataDir,
350
+ host: input.host,
351
+ domain: input.domain,
352
+ keepBasename: `ysk-${input.poolName}.conf`,
353
+ projects: input.projects ?? [],
354
+ });
355
+ notes.push(...retired.notes.slice(0, 6));
356
+ }
357
+ catch (e) {
358
+ notes.push(`orphan retire skipped: ${e instanceof Error ? e.message : String(e)}`);
359
+ }
360
+ const commands = [];
361
+ if (input.enableSite) {
362
+ // Ensure Apache listens only on backend (not public :80)
363
+ commands.push([
364
+ 'bash',
365
+ '-c',
366
+ [
367
+ 'set -e',
368
+ 'if [ ! -d /etc/apache2 ]; then exit 0; fi',
369
+ `cp -a /etc/apache2/ports.conf /etc/apache2/ports.conf.ysk-bak 2>/dev/null || true`,
370
+ `cat > /etc/apache2/ports.conf <<'EOF'`,
371
+ `# Managed by YSK — Apache PHP backend; Nginx owns public :80/:443`,
372
+ `Listen ${bind}:${port}`,
373
+ `EOF`,
374
+ // Disable default public sites if present
375
+ 'a2dissite 000-default 2>/dev/null || true',
376
+ 'a2dissite default-ssl 2>/dev/null || true',
377
+ // Modules for FPM via proxy_fcgi
378
+ 'a2enmod proxy 2>/dev/null || true',
379
+ 'a2enmod proxy_fcgi 2>/dev/null || true',
380
+ 'a2enmod setenvif 2>/dev/null || true',
381
+ 'a2enmod rewrite 2>/dev/null || true',
382
+ ].join('\n'),
383
+ ]);
384
+ const siteName = `ysk-${input.poolName}`;
385
+ commands.push(['cp', path, `/etc/apache2/sites-available/${siteName}.conf`]);
386
+ commands.push(['a2ensite', siteName]);
387
+ commands.push(['apache2ctl', 'configtest']);
388
+ commands.push(['systemctl', 'reload', 'apache2']);
389
+ }
390
+ const execute = Boolean(input.enableSite && input.host.executeEnabled() && input.host.isRoot());
391
+ if (input.enableSite && !execute)
392
+ notes.push(tl('notes.auto.n1150'));
393
+ const commandResults = await runAll(input.host, commands, execute);
394
+ const ranOk = commandResults.length === 0 || commandResults.every((c) => c.exitCode === 0);
395
+ let phpActive;
396
+ let apacheActive;
397
+ if (execute) {
398
+ const st = await input.host.runCommand(['systemctl', 'is-active', `php${rt.version}-fpm`], {
399
+ timeoutMs: 5_000,
400
+ });
401
+ phpActive = (st.stdout || st.stderr || '').trim();
402
+ notes.push(`php-fpm is-active: ${phpActive}`);
403
+ const ap = await input.host.runCommand(['systemctl', 'is-active', 'apache2'], {
404
+ timeoutMs: 5_000,
405
+ });
406
+ apacheActive = (ap.stdout || ap.stderr || '').trim();
407
+ notes.push(`apache2 is-active: ${apacheActive}`);
408
+ }
409
+ const siteEnabled = Boolean(execute && ranOk && apacheActive === 'active');
410
+ if (input.enableSite && execute && !siteEnabled) {
411
+ notes.push('Apache site enable incomplete — Nginx→Apache path may fail');
412
+ }
413
+ // RemoteIP so PHP sees real client after Nginx real_ip restore
414
+ if (execute) {
415
+ try {
416
+ const { applyRealIpArtifacts } = await import('./real-ip/index.js');
417
+ const rip = await applyRealIpArtifacts({
418
+ dataDir: input.dataDir,
419
+ host: input.host,
420
+ enableApacheRemoteIp: true,
421
+ });
422
+ notes.push(...rip.notes);
423
+ }
424
+ catch (e) {
425
+ notes.push(`real-ip/RemoteIP apply skipped: ${e instanceof Error ? e.message : String(e)}`);
426
+ }
427
+ }
428
+ return {
429
+ ok: execute ? ranOk && siteEnabled : true,
430
+ written: [path, index],
431
+ commands: commands.map((c) => c.join(' ')),
432
+ commandResults,
433
+ notes: phpActive ? [...notes, `php_fpm=${phpActive}`] : notes,
434
+ siteEnabled,
435
+ apacheUpstream,
436
+ vhostPath: path,
437
+ };
438
+ }
439
+ /**
440
+ * Write FTPS (vsftpd) under dataDir; install/start when requested + privileged.
441
+ * Prefer applyFtpsService when JsonStore is available (full panel flow).
442
+ * Never fakes ok when install requested but skipped/failed.
443
+ */
444
+ export async function applyFtps(input) {
445
+ const { buildVsftpdConf, ftpsPaths, DEFAULT_FTPS_SETTINGS } = await import('./ftps-service.js');
446
+ const paths = ftpsPaths(input.dataDir);
447
+ mkdirSync(paths.root, { recursive: true });
448
+ const settings = {
449
+ ...DEFAULT_FTPS_SETTINGS,
450
+ sslDomain: input.domain,
451
+ ...(input.settings ?? {})
452
+ };
453
+ const confBody = buildVsftpdConf({ dataDir: input.dataDir, settings });
454
+ writeFileSync(paths.conf, confBody, 'utf8');
455
+ const notes = [
456
+ tl('notes.tpl.wroteSettings', { path: paths.conf }),
457
+ `PASV ${settings.pasvMin}-${settings.pasvMax}`,
458
+ ];
459
+ const steps = [
460
+ { name: tl('notes.ftp.writeVsftpd'), status: 'ok', detail: paths.conf },
461
+ ];
462
+ // install only when explicitly requested (never default true)
463
+ const want = input.install === true;
464
+ const execute = Boolean(want && input.host.executeEnabled() && input.host.isRoot());
465
+ if (want && !execute) {
466
+ const reason = !input.host.executeEnabled() ? 'no_execute' : 'no_root';
467
+ const blockMessage = panelBlockMessage(reason);
468
+ notes.push(blockMessage);
469
+ steps.push({ name: tl('notes.ftp.startVsftpd'), status: 'blocked', detail: blockMessage });
470
+ return {
471
+ ok: false,
472
+ executed: false,
473
+ blocked: true,
474
+ blockReason: reason,
475
+ blockMessage,
476
+ written: [paths.conf],
477
+ commands: [],
478
+ commandResults: [],
479
+ notes,
480
+ steps,
481
+ requiresExecute: !input.host.executeEnabled(),
482
+ requiresRoot: !input.host.isRoot()
483
+ };
484
+ }
485
+ if (!want) {
486
+ notes.push(tl('notes.auto.n0735'));
487
+ return {
488
+ ok: true,
489
+ executed: false,
490
+ written: [paths.conf],
491
+ commands: [],
492
+ commandResults: [],
493
+ notes,
494
+ steps,
495
+ requiresExecute: !input.host.executeEnabled(),
496
+ requiresRoot: !input.host.isRoot()
497
+ };
498
+ }
499
+ const commands = [
500
+ [
501
+ 'bash',
502
+ '-c',
503
+ shellEnsureAptPackage('vsftpd', 'vsftpd db-util'),
504
+ ],
505
+ ['cp', paths.conf, '/etc/vsftpd.conf'],
506
+ ['systemctl', 'enable', '--now', 'vsftpd'],
507
+ ];
508
+ const commandResults = await runAll(input.host, commands, true);
509
+ const ranOk = commandResults.every((c) => c.exitCode === 0);
510
+ if (ranOk) {
511
+ notes.push(tl('notes.ftp.vsftpdStarted'));
512
+ steps.push({ name: tl('notes.ftp.startVsftpd'), status: 'ok' });
513
+ }
514
+ else {
515
+ notes.push(tl('notes.auto.n0464'));
516
+ steps.push({ name: tl('notes.ftp.startVsftpd'), status: 'failed' });
517
+ }
518
+ return {
519
+ ok: ranOk,
520
+ executed: true,
521
+ written: [paths.conf],
522
+ commands: [],
523
+ commandResults,
524
+ notes,
525
+ steps,
526
+ requiresExecute: false,
527
+ requiresRoot: false
528
+ };
529
+ }
530
+ /** Live ufw status for panel (honest probe, no mutation). */
531
+ export async function probeFirewallStatus(host) {
532
+ const installed = (await new HostSoftwareProbe(host).presence('ufw')).installed;
533
+ let active = 'unknown';
534
+ let statusText = '';
535
+ const numberedRules = [];
536
+ if (installed) {
537
+ try {
538
+ const st = await host.runCommand(['ufw', 'status'], { timeoutMs: 8_000 });
539
+ statusText = `${st.stdout || ''}\n${st.stderr || ''}`.trim();
540
+ const first = statusText.split('\n')[0] || '';
541
+ if (/inactive/i.test(first))
542
+ active = 'inactive';
543
+ else if (/active/i.test(first))
544
+ active = 'active';
545
+ else
546
+ active = first.slice(0, 40) || 'unknown';
547
+ }
548
+ catch {
549
+ statusText = '';
550
+ active = 'unknown';
551
+ }
552
+ try {
553
+ const num = await host.runCommand(['ufw', 'status', 'numbered'], { timeoutMs: 8_000 });
554
+ const body = `${num.stdout || ''}`.trim();
555
+ for (const line of body.split('\n')) {
556
+ const t = line.trim();
557
+ if (/^\[\s*\d+\]/.test(t) || t.includes('ALLOW') || t.includes('DENY')) {
558
+ numberedRules.push(t);
559
+ }
560
+ }
561
+ }
562
+ catch {
563
+ /* ignore */
564
+ }
565
+ }
566
+ return {
567
+ installed,
568
+ active,
569
+ statusText: statusText.slice(0, 4000),
570
+ numberedRules: numberedRules.slice(0, 80),
571
+ executeEnabled: host.executeEnabled(),
572
+ isRoot: host.isRoot()
573
+ };
574
+ }
575
+ /** Live fail2ban status for panel. */
576
+ export async function probeFail2banStatus(host) {
577
+ const defaultJails = planFirewall({}).fail2banJails;
578
+ const f2b = await new HostSoftwareProbe(host).presence('fail2ban');
579
+ const installed = f2b.installed;
580
+ let active = f2b.units?.[0]?.active ?? 'unknown';
581
+ let enabled = f2b.units?.[0]?.enabled ?? 'unknown';
582
+ try {
583
+ if (active === 'unknown' || !active) {
584
+ const a = await host.runCommand(['systemctl', 'is-active', 'fail2ban'], { timeoutMs: 4_000 });
585
+ active = (a.stdout || a.stderr || 'unknown').trim().split(/\s+/)[0] || 'unknown';
586
+ }
587
+ }
588
+ catch {
589
+ active = installed ? 'unknown' : 'not-found';
590
+ }
591
+ try {
592
+ const e = await host.runCommand(['systemctl', 'is-enabled', 'fail2ban'], { timeoutMs: 4_000 });
593
+ enabled = (e.stdout || e.stderr || 'unknown').trim().split(/\s+/)[0] || 'unknown';
594
+ }
595
+ catch {
596
+ enabled = 'unknown';
597
+ }
598
+ const jails = [];
599
+ if (installed) {
600
+ try {
601
+ const list = await host.runCommand(['fail2ban-client', 'status'], { timeoutMs: 8_000 });
602
+ const text = `${list.stdout || ''}\n${list.stderr || ''}`;
603
+ const m = text.match(/Jail list:\s*(.+)/i);
604
+ const names = m
605
+ ? m[1]
606
+ .split(/[,\s]+/)
607
+ .map((s) => s.trim())
608
+ .filter(Boolean)
609
+ : [];
610
+ for (const name of names.slice(0, 24)) {
611
+ try {
612
+ const js = await host.runCommand(['fail2ban-client', 'status', name], {
613
+ timeoutMs: 5_000
614
+ });
615
+ const raw = `${js.stdout || ''}`.trim();
616
+ const cur = raw.match(/Currently banned:\s*(\d+)/i);
617
+ const tot = raw.match(/Total banned:\s*(\d+)/i);
618
+ jails.push({
619
+ name,
620
+ currentlyBanned: cur ? Number(cur[1]) : undefined,
621
+ totalBanned: tot ? Number(tot[1]) : undefined,
622
+ raw: raw.slice(0, 500)
623
+ });
624
+ }
625
+ catch {
626
+ jails.push({ name });
627
+ }
628
+ }
629
+ }
630
+ catch {
631
+ /* ignore */
632
+ }
633
+ }
634
+ return {
635
+ installed,
636
+ active,
637
+ enabled,
638
+ jails,
639
+ executeEnabled: host.executeEnabled(),
640
+ isRoot: host.isRoot(),
641
+ defaultJails
642
+ };
643
+ }
644
+ /** List banned IPs for a jail (or all jails). Read is best-effort (no EXECUTE required). */
645
+ export async function fail2banBannedIps(host, jail) {
646
+ const items = [];
647
+ const jails = [];
648
+ if (jail) {
649
+ jails.push(jail);
650
+ }
651
+ else {
652
+ const st = await probeFail2banStatus(host);
653
+ jails.push(...st.jails.map((j) => j.name));
654
+ }
655
+ if (!jails.length) {
656
+ return {
657
+ ok: true,
658
+ requiresExecute: false,
659
+ items: [],
660
+ notes: [tl('notes.auto.n1091')]
661
+ };
662
+ }
663
+ for (const j of jails.slice(0, 20)) {
664
+ const r = await host.runCommand(['fail2ban-client', 'status', j], { timeoutMs: 8_000 });
665
+ const text = `${r.stdout || ''}\n${r.stderr || ''}`;
666
+ if (r.exitCode !== 0 && /permission|root|error/i.test(text)) {
667
+ return {
668
+ ok: false,
669
+ blocked: !host.executeEnabled(),
670
+ requiresExecute: !host.executeEnabled(),
671
+ items: [],
672
+ notes: [
673
+ host.executeEnabled()
674
+ ? tl('notes.auto.n1438')
675
+ : tl('notes.auto.n1437'),
676
+ ]
677
+ };
678
+ }
679
+ const m = text.match(/Banned IP list:\s*(.+)/i);
680
+ if (!m)
681
+ continue;
682
+ const ips = m[1]
683
+ .split(/[,\s]+/)
684
+ .map((s) => s.trim())
685
+ .filter((ip) => /^\d{1,3}(\.\d{1,3}){3}$/.test(ip) || ip.includes(':'));
686
+ for (const ip of ips)
687
+ items.push({ jail: j, ip });
688
+ }
689
+ return {
690
+ ok: true,
691
+ requiresExecute: false,
692
+ items,
693
+ notes: [tl('notes.auto.t0218', { v0: (items.length) })]
694
+ };
695
+ }
696
+ export async function fail2banUnban(host, jail, ip) {
697
+ if (!host.executeEnabled()) {
698
+ return {
699
+ ok: false,
700
+ blocked: true,
701
+ requiresExecute: true,
702
+ notes: [tl('notes.auto.n1139')]
703
+ };
704
+ }
705
+ const safeJail = jail.replace(/[^a-zA-Z0-9._-]/g, '');
706
+ const safeIp = ip.trim();
707
+ const r = await host.runCommand(['fail2ban-client', 'set', safeJail, 'unbanip', safeIp], {
708
+ timeoutMs: 10_000
709
+ });
710
+ return {
711
+ ok: r.exitCode === 0,
712
+ requiresExecute: false,
713
+ notes: [
714
+ r.exitCode === 0
715
+ ? tl('notes.auto.t0219', { v0: (safeIp), v1: (safeJail) })
716
+ : tl('notes.auto.t0220', { v0: (r.stderr || r.stdout) }),
717
+ ]
718
+ };
719
+ }
720
+ export async function fail2banIgnoreIp(host, dataDir, ip, action = 'add') {
721
+ const written = [];
722
+ const notes = [];
723
+ const safeIp = ip.trim();
724
+ if (!/^\d{1,3}(\.\d{1,3}){3}$/.test(safeIp) && !safeIp.includes(':')) {
725
+ return {
726
+ ok: false,
727
+ notes: [tl('notes.invalidIp')],
728
+ written,
729
+ requiresExecute: false,
730
+ apply_status: 'failed'
731
+ };
732
+ }
733
+ // Persist ignore list under dataDir (always — feeds jail.local ignoreip=)
734
+ if (dataDir) {
735
+ const dir = join(dataDir, 'fail2ban');
736
+ mkdirSync(dir, { recursive: true });
737
+ const listPath = join(dir, 'ignoreip.txt');
738
+ let list = [];
739
+ if (existsSync(listPath)) {
740
+ list = readFileSync(listPath, 'utf8')
741
+ .split(/\n/)
742
+ .map((s) => s.trim())
743
+ .filter(Boolean);
744
+ }
745
+ if (action === 'add' && !list.includes(safeIp))
746
+ list.push(safeIp);
747
+ if (action === 'remove')
748
+ list = list.filter((x) => x !== safeIp);
749
+ writeFileSync(listPath, list.join('\n') + (list.length ? '\n' : ''), 'utf8');
750
+ written.push(listPath);
751
+ notes.push(tl('notes.auto.t0221', { v0: (listPath), v1: (list.length) }));
752
+ }
753
+ if (!host.executeEnabled()) {
754
+ // Control-plane written is success; live client needs EXECUTE (honest written, not fake applied)
755
+ return {
756
+ ok: true,
757
+ notes: [
758
+ ...notes,
759
+ tl('notes.auto.n1231'),
760
+ ],
761
+ written,
762
+ requiresExecute: true,
763
+ apply_status: 'written'
764
+ };
765
+ }
766
+ // set ignoreip on sshd jail — applied only when client succeeds
767
+ const r = await host.runCommand(['fail2ban-client', 'set', 'sshd', action === 'add' ? 'addignoreip' : 'delignoreip', safeIp], { timeoutMs: 10_000 });
768
+ const ok = r.exitCode === 0;
769
+ notes.push(ok
770
+ ? tl('notes.auto.t0222', { v0: (action), v1: (safeIp) })
771
+ : tl('notes.auto.t0223', { v0: (r.stderr || r.stdout || 'failed') }));
772
+ return {
773
+ ok,
774
+ notes,
775
+ written,
776
+ requiresExecute: false,
777
+ apply_status: ok ? 'applied' : 'failed'
778
+ };
779
+ }
780
+ /**
781
+ * Write ufw script under dataDir; apply only when EXECUTE+root.
782
+ * Never fakes ok=true when apply was requested but skipped/failed.
783
+ */
784
+ export async function applyFirewall(input) {
785
+ const plan = planFirewall({
786
+ allowSmtp: input.allowSmtp,
787
+ extraTcpPorts: input.extraTcpPorts,
788
+ extraPortSpecs: input.extraPortSpecs
789
+ });
790
+ const notes = ['Rules generated by planFirewall'];
791
+ const written = [];
792
+ if (input.dataDir) {
793
+ const dir = join(input.dataDir, 'firewall');
794
+ mkdirSync(dir, { recursive: true });
795
+ const scriptPath = join(dir, 'ufw-apply.sh');
796
+ const body = [
797
+ '#!/usr/bin/env bash',
798
+ '# Generated by YSK Server — review before running',
799
+ 'set -euo pipefail',
800
+ ...plan.rules.map((r) => r),
801
+ '',
802
+ ].join('\n');
803
+ writeFileSync(scriptPath, body, 'utf8');
804
+ written.push(scriptPath);
805
+ notes.push(`Script: ${scriptPath}`);
806
+ }
807
+ const commands = plan.commands.map((c) => ['bash', '-c', c]);
808
+ const want = Boolean(input.apply);
809
+ const execute = Boolean(want && input.host.executeEnabled() && input.host.isRoot());
810
+ if (want && !execute) {
811
+ const reason = !input.host.executeEnabled() ? 'no_execute' : 'no_root';
812
+ notes.push(panelBlockMessage(reason));
813
+ return {
814
+ ok: false,
815
+ executed: false,
816
+ blocked: true,
817
+ blockReason: reason,
818
+ blockMessage: panelBlockMessage(reason),
819
+ written,
820
+ commands: plan.commands,
821
+ commandResults: [],
822
+ notes,
823
+ requiresExecute: !input.host.executeEnabled(),
824
+ requiresRoot: !input.host.isRoot()
825
+ };
826
+ }
827
+ const commandResults = await runAll(input.host, commands, execute);
828
+ const ranOk = commandResults.every((c) => c.exitCode === 0);
829
+ if (want && !ranOk)
830
+ notes.push(tl('notes.auto.n0457'));
831
+ else if (want)
832
+ notes.push(tl('notes.auto.n0757'));
833
+ return {
834
+ ok: want ? execute && ranOk : true,
835
+ executed: execute,
836
+ written,
837
+ commands: plan.commands,
838
+ commandResults,
839
+ notes: [...notes, tl('notes.auto.t0224', { v0: (plan.fail2banJails.join(', ')) })],
840
+ requiresExecute: !input.host.executeEnabled(),
841
+ requiresRoot: !input.host.isRoot()
842
+ };
843
+ }
844
+ /**
845
+ * Write fail2ban jail.local under dataDir; optional apt install + enable.
846
+ * Never reports ok=true for skipped system mutations when apply=true.
847
+ */
848
+ export async function applyFail2ban(input) {
849
+ const plan = planFirewall({});
850
+ const jails = input.jails ?? plan.fail2banJails;
851
+ // Prefer deep writer (ignoreip + policy)
852
+ const { writeFail2banJailLocal } = await import('./fail2ban-ops.js');
853
+ const { path: jailPath } = writeFail2banJailLocal(input.dataDir, {
854
+ bantime: input.bantime ?? '1h',
855
+ findtime: input.findtime ?? '10m',
856
+ maxretry: input.maxretry ?? 5,
857
+ jails
858
+ });
859
+ const notes = [`Wrote ${jailPath}`, `Jails: ${jails.join(', ')}`];
860
+ const commands = [];
861
+ if (input.apply) {
862
+ commands.push([
863
+ 'bash',
864
+ '-c',
865
+ shellEnsureAptPackage('fail2ban-client', 'fail2ban'),
866
+ ]);
867
+ commands.push(['cp', jailPath, '/etc/fail2ban/jail.local']);
868
+ commands.push(['systemctl', 'enable', '--now', 'fail2ban']);
869
+ commands.push(['systemctl', 'reload', 'fail2ban']);
870
+ }
871
+ const execute = Boolean(input.apply && input.host.executeEnabled() && input.host.isRoot());
872
+ if (input.apply && !execute) {
873
+ const reason = !input.host.executeEnabled() ? 'no_execute' : 'no_root';
874
+ notes.push(panelBlockMessage(reason));
875
+ return {
876
+ ok: false,
877
+ executed: false,
878
+ blocked: true,
879
+ blockReason: reason,
880
+ blockMessage: panelBlockMessage(reason),
881
+ written: [jailPath],
882
+ commands: commands.map((c) => c.join(' ')),
883
+ commandResults: [],
884
+ notes,
885
+ requiresExecute: !input.host.executeEnabled(),
886
+ requiresRoot: !input.host.isRoot()
887
+ };
888
+ }
889
+ const commandResults = await runAll(input.host, commands, execute);
890
+ let serviceActive;
891
+ if (execute || input.host.pathExists('/usr/bin/fail2ban-client')) {
892
+ try {
893
+ const st = await input.host.runCommand(['systemctl', 'is-active', 'fail2ban'], {
894
+ timeoutMs: 5_000
895
+ });
896
+ serviceActive = (st.stdout || st.stderr || '').trim();
897
+ notes.push(`fail2ban is-active: ${serviceActive}`);
898
+ }
899
+ catch {
900
+ serviceActive = 'unknown';
901
+ }
902
+ }
903
+ const ranOk = commandResults.every((c) => c.exitCode === 0);
904
+ if (input.apply && !ranOk)
905
+ notes.push(tl('notes.auto.n0282'));
906
+ else if (input.apply)
907
+ notes.push(tl('notes.auto.n0754'));
908
+ else
909
+ notes.push(tl('notes.auto.n0764'));
910
+ return {
911
+ ok: input.apply ? execute && ranOk : true,
912
+ executed: execute,
913
+ written: [jailPath],
914
+ commands: commands.map((c) => c.join(' ')),
915
+ commandResults,
916
+ notes,
917
+ requiresExecute: !input.host.executeEnabled(),
918
+ requiresRoot: !input.host.isRoot(),
919
+ serviceActive
920
+ };
921
+ }
922
+ /**
923
+ * Write nginx proxy conf and optionally sync + reload.
924
+ */
925
+ export async function applyNginxSite(input) {
926
+ const conf = renderNginxProxy({
927
+ serverName: input.serverName,
928
+ upstream: input.upstream,
929
+ ssl: Boolean(input.ssl),
930
+ cloudflareRealIp: true
931
+ });
932
+ const dir = join(input.dataDir, 'nginx', 'conf.d');
933
+ mkdirSync(dir, { recursive: true });
934
+ const path = join(dir, `${input.serverName.replace(/[^a-z0-9.-]+/gi, '_')}.conf`);
935
+ writeFileSync(path, conf, 'utf8');
936
+ const notes = [tl('notes.tpl.wroteManaged', { path: path })];
937
+ const commands = [];
938
+ if (input.reload) {
939
+ commands.push(['nginx', '-t']);
940
+ commands.push(['systemctl', 'reload', 'nginx']);
941
+ }
942
+ const execute = Boolean(input.reload && input.host.executeEnabled());
943
+ if (input.reload && !input.host.executeEnabled()) {
944
+ notes.push(tl('ops.blocked.nginxReload'));
945
+ return {
946
+ ok: false,
947
+ executed: false,
948
+ blocked: true,
949
+ blockReason: 'no_execute',
950
+ blockMessage: panelBlockMessage('no_execute'),
951
+ written: [path],
952
+ commands: commands.map((c) => c.join(' ')),
953
+ commandResults: [],
954
+ notes
955
+ };
956
+ }
957
+ const commandResults = await runAll(input.host, commands, execute);
958
+ const failed = commandResults.some((r) => r.exitCode !== 0);
959
+ if (input.reload && failed) {
960
+ notes.push(tl('notes.auto.n0338'));
961
+ }
962
+ else if (input.reload && execute) {
963
+ notes.push(tl('notes.nginx.reloaded'));
964
+ }
965
+ else if (!input.reload) {
966
+ notes.push(tl('notes.auto.n0567'));
967
+ }
968
+ return {
969
+ ok: !failed,
970
+ executed: execute,
971
+ written: [path],
972
+ commands: commands.map((c) => c.join(' ')),
973
+ commandResults,
974
+ notes
975
+ };
976
+ }
977
+ /**
978
+ * Install systemd unit for control plane from template.
979
+ */
980
+ export function writeControlPlaneSystemdUnit(input) {
981
+ const dir = join(input.dataDir, 'systemd');
982
+ mkdirSync(dir, { recursive: true });
983
+ const unitPath = join(dir, 'ysk-server.service');
984
+ const node = input.nodePath ?? process.execPath;
985
+ const user = input.user ?? 'root';
986
+ const content = `[Unit]
987
+ Description=YSK Server control plane
988
+ After=network.target
989
+
990
+ [Service]
991
+ Type=simple
992
+ User=${user}
993
+ WorkingDirectory=${input.dataDir}
994
+ Environment=NODE_ENV=production
995
+ ExecStart=${node} ${input.cliPath} serve --config ${join(input.dataDir, 'config.json')}
996
+ Restart=on-failure
997
+ RestartSec=5
998
+
999
+ [Install]
1000
+ WantedBy=multi-user.target
1001
+ `;
1002
+ writeFileSync(unitPath, content, 'utf8');
1003
+ return { unitPath, content };
1004
+ }
1005
+ export async function installControlPlaneSystemd(input) {
1006
+ const { unitPath } = writeControlPlaneSystemdUnit({
1007
+ dataDir: input.dataDir,
1008
+ cliPath: input.cliPath
1009
+ });
1010
+ const notes = [tl('notes.auto.t0225', { v0: (unitPath) })];
1011
+ const commands = [];
1012
+ if (input.enable) {
1013
+ commands.push(['cp', unitPath, '/etc/systemd/system/ysk-server.service']);
1014
+ commands.push(['systemctl', 'daemon-reload']);
1015
+ commands.push(['systemctl', 'enable', '--now', 'ysk-server']);
1016
+ }
1017
+ const canExecute = Boolean(input.host.executeEnabled() && input.host.isRoot());
1018
+ const execute = Boolean(input.enable && canExecute);
1019
+ if (input.enable && !execute) {
1020
+ const reason = !input.host.executeEnabled() ? 'no_execute' : 'no_root';
1021
+ notes.push(tl('notes.auto.n0444'));
1022
+ return {
1023
+ ok: false,
1024
+ executed: false,
1025
+ blocked: true,
1026
+ blockReason: reason,
1027
+ blockMessage: panelBlockMessage(reason),
1028
+ written: [unitPath],
1029
+ commands: commands.map((c) => c.join(' ')),
1030
+ commandResults: [],
1031
+ notes
1032
+ };
1033
+ }
1034
+ const commandResults = await runAll(input.host, commands, execute);
1035
+ const failed = commandResults.some((r) => r.exitCode !== 0);
1036
+ if (input.enable && failed)
1037
+ notes.push(tl('notes.auto.n0442'));
1038
+ else if (input.enable)
1039
+ notes.push(tl('notes.auto.n0758'));
1040
+ else
1041
+ notes.push(tl('notes.auto.n0569'));
1042
+ return {
1043
+ ok: !failed,
1044
+ executed: execute,
1045
+ written: [unitPath],
1046
+ commands: commands.map((c) => c.join(' ')),
1047
+ commandResults,
1048
+ notes
1049
+ };
1050
+ }
1051
+ /** Probe control-plane unit active/enabled state (honest status for panel). */
1052
+ export async function probeControlPlaneSystemd(host, dataDir) {
1053
+ const unit = 'ysk-server';
1054
+ const unitPathHint = '/etc/systemd/system/ysk-server.service';
1055
+ let active = 'unknown';
1056
+ let enabled = 'unknown';
1057
+ try {
1058
+ const a = await host.runCommand(['systemctl', 'is-active', unit], { timeoutMs: 5_000 });
1059
+ active = (a.stdout || a.stderr || 'unknown').trim().split('\n')[0] || 'unknown';
1060
+ }
1061
+ catch {
1062
+ active = 'unknown';
1063
+ }
1064
+ try {
1065
+ const e = await host.runCommand(['systemctl', 'is-enabled', unit], { timeoutMs: 5_000 });
1066
+ enabled = (e.stdout || e.stderr || 'unknown').trim().split('\n')[0] || 'unknown';
1067
+ }
1068
+ catch {
1069
+ enabled = 'unknown';
1070
+ }
1071
+ let systemUnitExists = false;
1072
+ try {
1073
+ systemUnitExists = host.pathExists(unitPathHint);
1074
+ }
1075
+ catch {
1076
+ systemUnitExists = false;
1077
+ }
1078
+ const managedUnitPath = dataDir ? join(dataDir, 'systemd', 'ysk-server.service') : null;
1079
+ let managedUnitExists = false;
1080
+ if (managedUnitPath) {
1081
+ try {
1082
+ managedUnitExists = host.pathExists(managedUnitPath) || existsSync(managedUnitPath);
1083
+ }
1084
+ catch {
1085
+ managedUnitExists = false;
1086
+ }
1087
+ }
1088
+ const show = {
1089
+ mainPid: null,
1090
+ activeEnterTimestamp: null,
1091
+ fragmentPath: null,
1092
+ description: null
1093
+ };
1094
+ try {
1095
+ const s = await host.runCommand([
1096
+ 'systemctl',
1097
+ 'show',
1098
+ unit,
1099
+ '-p',
1100
+ 'MainPID',
1101
+ '-p',
1102
+ 'ActiveEnterTimestamp',
1103
+ '-p',
1104
+ 'FragmentPath',
1105
+ '-p',
1106
+ 'Description',
1107
+ '--no-page',
1108
+ ], { timeoutMs: 5_000 });
1109
+ if (s.exitCode === 0 && s.stdout) {
1110
+ for (const line of s.stdout.split('\n')) {
1111
+ const i = line.indexOf('=');
1112
+ if (i <= 0)
1113
+ continue;
1114
+ const k = line.slice(0, i).trim();
1115
+ const v = line.slice(i + 1).trim();
1116
+ if (k === 'MainPID' && v && v !== '0')
1117
+ show.mainPid = v;
1118
+ if (k === 'ActiveEnterTimestamp' && v && v !== 'n/a')
1119
+ show.activeEnterTimestamp = v;
1120
+ if (k === 'FragmentPath' && v)
1121
+ show.fragmentPath = v;
1122
+ if (k === 'Description' && v)
1123
+ show.description = v;
1124
+ }
1125
+ }
1126
+ }
1127
+ catch {
1128
+ /* best-effort */
1129
+ }
1130
+ const executeEnabled = host.executeEnabled();
1131
+ const isRoot = host.isRoot();
1132
+ return {
1133
+ unit,
1134
+ unitPathHint,
1135
+ active,
1136
+ enabled,
1137
+ executeEnabled,
1138
+ isRoot,
1139
+ canInstall: executeEnabled && isRoot,
1140
+ systemUnitExists,
1141
+ managedUnitPath,
1142
+ managedUnitExists,
1143
+ show
1144
+ };
1145
+ }
1146
+ // silence unused import if any
1147
+ void copyFileSync;
1148
+ //# sourceMappingURL=system-apply.js.map