@better-openclaw/core 1.0.20 → 1.0.22

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 (975) hide show
  1. package/.github/workflows/publish-core.yml +1 -1
  2. package/dist/bare-metal-partition.cjs +2 -3
  3. package/dist/bare-metal-partition.cjs.map +1 -1
  4. package/dist/bare-metal-partition.d.mts.map +1 -1
  5. package/dist/bare-metal-partition.mjs +1 -1
  6. package/dist/bare-metal-partition.test.cjs +4 -5
  7. package/dist/bare-metal-partition.test.cjs.map +1 -1
  8. package/dist/bare-metal-partition.test.mjs +3 -4
  9. package/dist/bare-metal-partition.test.mjs.map +1 -1
  10. package/dist/compose-validation.test.cjs +5 -6
  11. package/dist/compose-validation.test.cjs.map +1 -1
  12. package/dist/compose-validation.test.mjs +2 -3
  13. package/dist/compose-validation.test.mjs.map +1 -1
  14. package/dist/composer.cjs +4 -5
  15. package/dist/composer.cjs.map +1 -1
  16. package/dist/composer.d.mts.map +1 -1
  17. package/dist/composer.mjs +1 -2
  18. package/dist/composer.mjs.map +1 -1
  19. package/dist/composer.snapshot.test.cjs +4 -5
  20. package/dist/composer.snapshot.test.cjs.map +1 -1
  21. package/dist/composer.snapshot.test.mjs +3 -4
  22. package/dist/composer.snapshot.test.mjs.map +1 -1
  23. package/dist/composer.test.cjs +5 -6
  24. package/dist/composer.test.cjs.map +1 -1
  25. package/dist/composer.test.mjs +3 -4
  26. package/dist/composer.test.mjs.map +1 -1
  27. package/dist/coolify-BVGGcMrT.d.mts +18 -0
  28. package/dist/coolify-BVGGcMrT.d.mts.map +1 -0
  29. package/dist/coolify-vlb1G9V2.d.cts +18 -0
  30. package/dist/coolify-vlb1G9V2.d.cts.map +1 -0
  31. package/dist/deployers/coolify.cjs +63 -53
  32. package/dist/deployers/coolify.cjs.map +1 -1
  33. package/dist/deployers/coolify.d.cts +2 -25
  34. package/dist/deployers/coolify.d.mts +2 -25
  35. package/dist/deployers/coolify.mjs +62 -51
  36. package/dist/deployers/coolify.mjs.map +1 -1
  37. package/dist/deployers/dokploy.cjs +108 -32
  38. package/dist/deployers/dokploy.cjs.map +1 -1
  39. package/dist/deployers/dokploy.d.cts +2 -24
  40. package/dist/deployers/dokploy.d.mts +2 -24
  41. package/dist/deployers/dokploy.mjs +107 -30
  42. package/dist/deployers/dokploy.mjs.map +1 -1
  43. package/dist/deployers/index.cjs +4 -5
  44. package/dist/deployers/index.cjs.map +1 -1
  45. package/dist/deployers/index.d.cts +4 -4
  46. package/dist/deployers/index.d.cts.map +1 -1
  47. package/dist/deployers/index.d.mts +4 -4
  48. package/dist/deployers/index.d.mts.map +1 -1
  49. package/dist/deployers/index.mjs +1 -2
  50. package/dist/deployers/index.mjs.map +1 -1
  51. package/dist/deployers/strip-host-ports.cjs +137 -0
  52. package/dist/deployers/strip-host-ports.cjs.map +1 -0
  53. package/dist/deployers/strip-host-ports.d.cts +62 -0
  54. package/dist/deployers/strip-host-ports.d.cts.map +1 -0
  55. package/dist/deployers/strip-host-ports.d.mts +62 -0
  56. package/dist/deployers/strip-host-ports.d.mts.map +1 -0
  57. package/dist/deployers/strip-host-ports.mjs +132 -0
  58. package/dist/deployers/strip-host-ports.mjs.map +1 -0
  59. package/dist/deployers/strip-host-ports.test.cjs +88 -0
  60. package/dist/deployers/strip-host-ports.test.cjs.map +1 -0
  61. package/dist/deployers/strip-host-ports.test.d.cts +1 -0
  62. package/dist/deployers/strip-host-ports.test.d.mts +1 -0
  63. package/dist/deployers/strip-host-ports.test.mjs +89 -0
  64. package/dist/deployers/strip-host-ports.test.mjs.map +1 -0
  65. package/dist/deployers/types.d.cts +2 -72
  66. package/dist/deployers/types.d.mts +2 -72
  67. package/dist/deployers/types.mjs +1 -1
  68. package/dist/dokploy-8cbrxUun.d.cts +25 -0
  69. package/dist/dokploy-8cbrxUun.d.cts.map +1 -0
  70. package/dist/dokploy-BTflLhTM.d.mts +25 -0
  71. package/dist/dokploy-BTflLhTM.d.mts.map +1 -0
  72. package/dist/errors.cjs +2 -3
  73. package/dist/errors.cjs.map +1 -1
  74. package/dist/errors.mjs +1 -1
  75. package/dist/errors.mjs.map +1 -1
  76. package/dist/generate.cjs +27 -28
  77. package/dist/generate.cjs.map +1 -1
  78. package/dist/generate.d.mts.map +1 -1
  79. package/dist/generate.mjs +1 -2
  80. package/dist/generate.mjs.map +1 -1
  81. package/dist/generate.test.cjs +4 -5
  82. package/dist/generate.test.cjs.map +1 -1
  83. package/dist/generate.test.mjs +3 -4
  84. package/dist/generate.test.mjs.map +1 -1
  85. package/dist/generators/bare-metal-install.cjs +2 -3
  86. package/dist/generators/bare-metal-install.cjs.map +1 -1
  87. package/dist/generators/bare-metal-install.d.mts.map +1 -1
  88. package/dist/generators/bare-metal-install.mjs +1 -1
  89. package/dist/generators/bare-metal-install.test.cjs +3 -4
  90. package/dist/generators/bare-metal-install.test.cjs.map +1 -1
  91. package/dist/generators/bare-metal-install.test.mjs +3 -4
  92. package/dist/generators/bare-metal-install.test.mjs.map +1 -1
  93. package/dist/generators/caddy.cjs +2 -3
  94. package/dist/generators/caddy.cjs.map +1 -1
  95. package/dist/generators/caddy.d.mts.map +1 -1
  96. package/dist/generators/caddy.mjs +1 -1
  97. package/dist/generators/caddy.test.cjs +3 -4
  98. package/dist/generators/caddy.test.cjs.map +1 -1
  99. package/dist/generators/caddy.test.mjs +3 -4
  100. package/dist/generators/caddy.test.mjs.map +1 -1
  101. package/dist/generators/cloud-init.cjs +2 -3
  102. package/dist/generators/cloud-init.cjs.map +1 -1
  103. package/dist/generators/cloud-init.mjs +1 -1
  104. package/dist/generators/env.cjs +4 -5
  105. package/dist/generators/env.cjs.map +1 -1
  106. package/dist/generators/env.d.mts.map +1 -1
  107. package/dist/generators/env.mjs +1 -2
  108. package/dist/generators/env.mjs.map +1 -1
  109. package/dist/generators/env.test.cjs +3 -4
  110. package/dist/generators/env.test.cjs.map +1 -1
  111. package/dist/generators/env.test.mjs +3 -4
  112. package/dist/generators/env.test.mjs.map +1 -1
  113. package/dist/generators/get-shit-done.cjs +2 -3
  114. package/dist/generators/get-shit-done.cjs.map +1 -1
  115. package/dist/generators/get-shit-done.mjs +1 -1
  116. package/dist/generators/grafana.cjs +2 -3
  117. package/dist/generators/grafana.cjs.map +1 -1
  118. package/dist/generators/grafana.mjs +1 -1
  119. package/dist/generators/health-check.cjs +2 -3
  120. package/dist/generators/health-check.cjs.map +1 -1
  121. package/dist/generators/health-check.d.mts.map +1 -1
  122. package/dist/generators/health-check.mjs +1 -1
  123. package/dist/generators/health-check.test.cjs +3 -4
  124. package/dist/generators/health-check.test.cjs.map +1 -1
  125. package/dist/generators/health-check.test.mjs +3 -4
  126. package/dist/generators/health-check.test.mjs.map +1 -1
  127. package/dist/generators/n8n-workflows.cjs +2 -3
  128. package/dist/generators/n8n-workflows.cjs.map +1 -1
  129. package/dist/generators/n8n-workflows.d.mts.map +1 -1
  130. package/dist/generators/n8n-workflows.mjs +1 -1
  131. package/dist/generators/native-services.cjs +2 -3
  132. package/dist/generators/native-services.cjs.map +1 -1
  133. package/dist/generators/native-services.mjs +1 -1
  134. package/dist/generators/openclaw-install-script.cjs +2 -3
  135. package/dist/generators/openclaw-install-script.cjs.map +1 -1
  136. package/dist/generators/openclaw-install-script.mjs +1 -1
  137. package/dist/generators/openclaw-json.cjs +2 -3
  138. package/dist/generators/openclaw-json.cjs.map +1 -1
  139. package/dist/generators/openclaw-json.mjs +1 -1
  140. package/dist/generators/postgres-init.cjs +32 -3
  141. package/dist/generators/postgres-init.cjs.map +1 -1
  142. package/dist/generators/postgres-init.d.cts.map +1 -1
  143. package/dist/generators/postgres-init.d.mts.map +1 -1
  144. package/dist/generators/postgres-init.mjs +31 -1
  145. package/dist/generators/postgres-init.mjs.map +1 -1
  146. package/dist/generators/prometheus.cjs +2 -3
  147. package/dist/generators/prometheus.cjs.map +1 -1
  148. package/dist/generators/prometheus.d.mts.map +1 -1
  149. package/dist/generators/prometheus.mjs +1 -1
  150. package/dist/generators/readme.cjs +2 -3
  151. package/dist/generators/readme.cjs.map +1 -1
  152. package/dist/generators/readme.d.mts.map +1 -1
  153. package/dist/generators/readme.mjs +1 -1
  154. package/dist/generators/scripts.cjs +2 -3
  155. package/dist/generators/scripts.cjs.map +1 -1
  156. package/dist/generators/scripts.mjs +1 -1
  157. package/dist/generators/scripts.test.cjs +3 -4
  158. package/dist/generators/scripts.test.cjs.map +1 -1
  159. package/dist/generators/scripts.test.mjs +3 -4
  160. package/dist/generators/scripts.test.mjs.map +1 -1
  161. package/dist/generators/skills.cjs +3 -590
  162. package/dist/generators/skills.d.mts.map +1 -1
  163. package/dist/generators/skills.mjs +1 -2
  164. package/dist/generators/skills.mjs.map +1 -1
  165. package/dist/generators/stack-manifest.cjs +2 -3
  166. package/dist/generators/stack-manifest.cjs.map +1 -1
  167. package/dist/generators/stack-manifest.mjs +1 -1
  168. package/dist/generators/traefik.cjs +2 -3
  169. package/dist/generators/traefik.cjs.map +1 -1
  170. package/dist/generators/traefik.mjs +1 -1
  171. package/dist/generators/traefik.test.cjs +4 -5
  172. package/dist/generators/traefik.test.cjs.map +1 -1
  173. package/dist/generators/traefik.test.mjs +3 -4
  174. package/dist/generators/traefik.test.mjs.map +1 -1
  175. package/dist/index.cjs +35 -36
  176. package/dist/index.d.cts +5 -5
  177. package/dist/index.d.mts +5 -5
  178. package/dist/index.mjs +2 -3
  179. package/dist/{magic-string.es-D2agHT3I.cjs → magic-string.es-CJq41xdM.cjs} +2 -4
  180. package/dist/{magic-string.es-CfFonO_S.mjs.map → magic-string.es-CJq41xdM.cjs.map} +1 -1
  181. package/dist/{magic-string.es-CfFonO_S.mjs → magic-string.es-CoDyF8pj.mjs} +2 -3
  182. package/dist/{magic-string.es-D2agHT3I.cjs.map → magic-string.es-CoDyF8pj.mjs.map} +1 -1
  183. package/dist/migrations.cjs +5 -6
  184. package/dist/migrations.cjs.map +1 -1
  185. package/dist/migrations.mjs +4 -4
  186. package/dist/migrations.mjs.map +1 -1
  187. package/dist/migrations.test.cjs +6 -7
  188. package/dist/migrations.test.cjs.map +1 -1
  189. package/dist/migrations.test.mjs +7 -8
  190. package/dist/migrations.test.mjs.map +1 -1
  191. package/dist/port-scanner.cjs +2 -3
  192. package/dist/port-scanner.cjs.map +1 -1
  193. package/dist/port-scanner.d.mts.map +1 -1
  194. package/dist/port-scanner.mjs +1 -1
  195. package/dist/presets/presets.test.cjs +11 -8
  196. package/dist/presets/presets.test.cjs.map +1 -1
  197. package/dist/presets/presets.test.mjs +7 -4
  198. package/dist/presets/presets.test.mjs.map +1 -1
  199. package/dist/presets/registry.cjs +152 -3
  200. package/dist/presets/registry.cjs.map +1 -1
  201. package/dist/presets/registry.d.cts.map +1 -1
  202. package/dist/presets/registry.d.mts.map +1 -1
  203. package/dist/presets/registry.mjs +151 -1
  204. package/dist/presets/registry.mjs.map +1 -1
  205. package/dist/presets/registry.test.cjs +3 -4
  206. package/dist/presets/registry.test.cjs.map +1 -1
  207. package/dist/presets/registry.test.mjs +3 -4
  208. package/dist/presets/registry.test.mjs.map +1 -1
  209. package/dist/resolver.cjs +4 -5
  210. package/dist/resolver.cjs.map +1 -1
  211. package/dist/resolver.d.mts.map +1 -1
  212. package/dist/resolver.mjs +1 -2
  213. package/dist/resolver.mjs.map +1 -1
  214. package/dist/resolver.test.cjs +3 -4
  215. package/dist/resolver.test.cjs.map +1 -1
  216. package/dist/resolver.test.mjs +3 -4
  217. package/dist/resolver.test.mjs.map +1 -1
  218. package/dist/schema-C_hc7e4k.d.cts +898 -0
  219. package/dist/schema-C_hc7e4k.d.cts.map +1 -0
  220. package/dist/schema-CaesJaS2.d.mts +898 -0
  221. package/dist/schema-CaesJaS2.d.mts.map +1 -0
  222. package/dist/schema.cjs +15 -5
  223. package/dist/schema.cjs.map +1 -1
  224. package/dist/schema.d.cts +2 -854
  225. package/dist/schema.d.mts +2 -854
  226. package/dist/schema.mjs +13 -3
  227. package/dist/schema.mjs.map +1 -1
  228. package/dist/schema.test.cjs +3 -4
  229. package/dist/schema.test.cjs.map +1 -1
  230. package/dist/schema.test.mjs +3 -4
  231. package/dist/schema.test.mjs.map +1 -1
  232. package/dist/services/definitions/airbyte.cjs +76 -0
  233. package/dist/services/definitions/airbyte.cjs.map +1 -0
  234. package/dist/services/definitions/airbyte.d.cts +7 -0
  235. package/dist/services/definitions/airbyte.d.cts.map +1 -0
  236. package/dist/services/definitions/airbyte.d.mts +7 -0
  237. package/dist/services/definitions/airbyte.d.mts.map +1 -0
  238. package/dist/services/definitions/airbyte.mjs +75 -0
  239. package/dist/services/definitions/airbyte.mjs.map +1 -0
  240. package/dist/services/definitions/airflow.cjs +109 -0
  241. package/dist/services/definitions/airflow.cjs.map +1 -0
  242. package/dist/services/definitions/airflow.d.cts +7 -0
  243. package/dist/services/definitions/airflow.d.cts.map +1 -0
  244. package/dist/services/definitions/airflow.d.mts +7 -0
  245. package/dist/services/definitions/airflow.d.mts.map +1 -0
  246. package/dist/services/definitions/airflow.mjs +108 -0
  247. package/dist/services/definitions/airflow.mjs.map +1 -0
  248. package/dist/services/definitions/anything-llm.cjs +2 -3
  249. package/dist/services/definitions/anything-llm.cjs.map +1 -1
  250. package/dist/services/definitions/anything-llm.mjs +1 -1
  251. package/dist/services/definitions/appflowy.cjs +2 -3
  252. package/dist/services/definitions/appflowy.cjs.map +1 -1
  253. package/dist/services/definitions/appflowy.mjs +1 -1
  254. package/dist/services/definitions/appwrite.cjs +190 -0
  255. package/dist/services/definitions/appwrite.cjs.map +1 -0
  256. package/dist/services/definitions/appwrite.d.cts +7 -0
  257. package/dist/services/definitions/appwrite.d.cts.map +1 -0
  258. package/dist/services/definitions/appwrite.d.mts +7 -0
  259. package/dist/services/definitions/appwrite.d.mts.map +1 -0
  260. package/dist/services/definitions/appwrite.mjs +189 -0
  261. package/dist/services/definitions/appwrite.mjs.map +1 -0
  262. package/dist/services/definitions/authelia.cjs +145 -0
  263. package/dist/services/definitions/authelia.cjs.map +1 -0
  264. package/dist/services/definitions/authelia.d.cts +7 -0
  265. package/dist/services/definitions/authelia.d.cts.map +1 -0
  266. package/dist/services/definitions/authelia.d.mts +7 -0
  267. package/dist/services/definitions/authelia.d.mts.map +1 -0
  268. package/dist/services/definitions/authelia.mjs +144 -0
  269. package/dist/services/definitions/authelia.mjs.map +1 -0
  270. package/dist/services/definitions/authentik.cjs +2 -3
  271. package/dist/services/definitions/authentik.cjs.map +1 -1
  272. package/dist/services/definitions/authentik.mjs +1 -1
  273. package/dist/services/definitions/axolotl.cjs +67 -0
  274. package/dist/services/definitions/axolotl.cjs.map +1 -0
  275. package/dist/services/definitions/axolotl.d.cts +7 -0
  276. package/dist/services/definitions/axolotl.d.cts.map +1 -0
  277. package/dist/services/definitions/axolotl.d.mts +7 -0
  278. package/dist/services/definitions/axolotl.d.mts.map +1 -0
  279. package/dist/services/definitions/axolotl.mjs +66 -0
  280. package/dist/services/definitions/axolotl.mjs.map +1 -0
  281. package/dist/services/definitions/beszel.cjs +2 -3
  282. package/dist/services/definitions/beszel.cjs.map +1 -1
  283. package/dist/services/definitions/beszel.mjs +1 -1
  284. package/dist/services/definitions/browserless.cjs +2 -3
  285. package/dist/services/definitions/browserless.cjs.map +1 -1
  286. package/dist/services/definitions/browserless.mjs +1 -1
  287. package/dist/services/definitions/caddy.cjs +2 -3
  288. package/dist/services/definitions/caddy.cjs.map +1 -1
  289. package/dist/services/definitions/caddy.mjs +1 -1
  290. package/dist/services/definitions/cal-com.cjs +2 -3
  291. package/dist/services/definitions/cal-com.cjs.map +1 -1
  292. package/dist/services/definitions/cal-com.mjs +1 -1
  293. package/dist/services/definitions/chatwoot-worker.cjs +95 -0
  294. package/dist/services/definitions/chatwoot-worker.cjs.map +1 -0
  295. package/dist/services/definitions/chatwoot-worker.d.cts +7 -0
  296. package/dist/services/definitions/chatwoot-worker.d.cts.map +1 -0
  297. package/dist/services/definitions/chatwoot-worker.d.mts +7 -0
  298. package/dist/services/definitions/chatwoot-worker.d.mts.map +1 -0
  299. package/dist/services/definitions/chatwoot-worker.mjs +94 -0
  300. package/dist/services/definitions/chatwoot-worker.mjs.map +1 -0
  301. package/dist/services/definitions/chatwoot.cjs +112 -0
  302. package/dist/services/definitions/chatwoot.cjs.map +1 -0
  303. package/dist/services/definitions/chatwoot.d.cts +7 -0
  304. package/dist/services/definitions/chatwoot.d.cts.map +1 -0
  305. package/dist/services/definitions/chatwoot.d.mts +7 -0
  306. package/dist/services/definitions/chatwoot.d.mts.map +1 -0
  307. package/dist/services/definitions/chatwoot.mjs +111 -0
  308. package/dist/services/definitions/chatwoot.mjs.map +1 -0
  309. package/dist/services/definitions/chromadb.cjs +2 -3
  310. package/dist/services/definitions/chromadb.cjs.map +1 -1
  311. package/dist/services/definitions/chromadb.mjs +1 -1
  312. package/dist/services/definitions/claude-code.cjs +2 -3
  313. package/dist/services/definitions/claude-code.cjs.map +1 -1
  314. package/dist/services/definitions/claude-code.mjs +1 -1
  315. package/dist/services/definitions/code-server.cjs +2 -3
  316. package/dist/services/definitions/code-server.cjs.map +1 -1
  317. package/dist/services/definitions/code-server.mjs +1 -1
  318. package/dist/services/definitions/codex.cjs +2 -3
  319. package/dist/services/definitions/codex.cjs.map +1 -1
  320. package/dist/services/definitions/codex.mjs +1 -1
  321. package/dist/services/definitions/comfyui.cjs +2 -3
  322. package/dist/services/definitions/comfyui.cjs.map +1 -1
  323. package/dist/services/definitions/comfyui.mjs +1 -1
  324. package/dist/services/definitions/convex-dashboard.cjs +2 -3
  325. package/dist/services/definitions/convex-dashboard.cjs.map +1 -1
  326. package/dist/services/definitions/convex-dashboard.mjs +1 -1
  327. package/dist/services/definitions/convex.cjs +2 -3
  328. package/dist/services/definitions/convex.cjs.map +1 -1
  329. package/dist/services/definitions/convex.mjs +1 -1
  330. package/dist/services/definitions/coolify.cjs +2 -3
  331. package/dist/services/definitions/coolify.cjs.map +1 -1
  332. package/dist/services/definitions/coolify.mjs +1 -1
  333. package/dist/services/definitions/crowdsec.cjs +2 -3
  334. package/dist/services/definitions/crowdsec.cjs.map +1 -1
  335. package/dist/services/definitions/crowdsec.mjs +1 -1
  336. package/dist/services/definitions/dagster.cjs +83 -0
  337. package/dist/services/definitions/dagster.cjs.map +1 -0
  338. package/dist/services/definitions/dagster.d.cts +7 -0
  339. package/dist/services/definitions/dagster.d.cts.map +1 -0
  340. package/dist/services/definitions/dagster.d.mts +7 -0
  341. package/dist/services/definitions/dagster.d.mts.map +1 -0
  342. package/dist/services/definitions/dagster.mjs +82 -0
  343. package/dist/services/definitions/dagster.mjs.map +1 -0
  344. package/dist/services/definitions/desktop-environment.cjs +2 -3
  345. package/dist/services/definitions/desktop-environment.cjs.map +1 -1
  346. package/dist/services/definitions/desktop-environment.mjs +1 -1
  347. package/dist/services/definitions/dify.cjs +2 -3
  348. package/dist/services/definitions/dify.cjs.map +1 -1
  349. package/dist/services/definitions/dify.mjs +1 -1
  350. package/dist/services/definitions/directus.cjs +115 -0
  351. package/dist/services/definitions/directus.cjs.map +1 -0
  352. package/dist/services/definitions/directus.d.cts +7 -0
  353. package/dist/services/definitions/directus.d.cts.map +1 -0
  354. package/dist/services/definitions/directus.d.mts +7 -0
  355. package/dist/services/definitions/directus.d.mts.map +1 -0
  356. package/dist/services/definitions/directus.mjs +114 -0
  357. package/dist/services/definitions/directus.mjs.map +1 -0
  358. package/dist/services/definitions/docsgpt.cjs +2 -3
  359. package/dist/services/definitions/docsgpt.cjs.map +1 -1
  360. package/dist/services/definitions/docsgpt.mjs +1 -1
  361. package/dist/services/definitions/dokploy.cjs +2 -3
  362. package/dist/services/definitions/dokploy.cjs.map +1 -1
  363. package/dist/services/definitions/dokploy.mjs +1 -1
  364. package/dist/services/definitions/dozzle.cjs +2 -3
  365. package/dist/services/definitions/dozzle.cjs.map +1 -1
  366. package/dist/services/definitions/dozzle.mjs +1 -1
  367. package/dist/services/definitions/duplicati.cjs +76 -0
  368. package/dist/services/definitions/duplicati.cjs.map +1 -0
  369. package/dist/services/definitions/duplicati.d.cts +7 -0
  370. package/dist/services/definitions/duplicati.d.cts.map +1 -0
  371. package/dist/services/definitions/duplicati.d.mts +7 -0
  372. package/dist/services/definitions/duplicati.d.mts.map +1 -0
  373. package/dist/services/definitions/duplicati.mjs +75 -0
  374. package/dist/services/definitions/duplicati.mjs.map +1 -0
  375. package/dist/services/definitions/excalidraw.cjs +48 -0
  376. package/dist/services/definitions/excalidraw.cjs.map +1 -0
  377. package/dist/services/definitions/excalidraw.d.cts +7 -0
  378. package/dist/services/definitions/excalidraw.d.cts.map +1 -0
  379. package/dist/services/definitions/excalidraw.d.mts +7 -0
  380. package/dist/services/definitions/excalidraw.d.mts.map +1 -0
  381. package/dist/services/definitions/excalidraw.mjs +47 -0
  382. package/dist/services/definitions/excalidraw.mjs.map +1 -0
  383. package/dist/services/definitions/ffmpeg.cjs +2 -3
  384. package/dist/services/definitions/ffmpeg.cjs.map +1 -1
  385. package/dist/services/definitions/ffmpeg.mjs +1 -1
  386. package/dist/services/definitions/firecrawl-playwright.cjs +61 -0
  387. package/dist/services/definitions/firecrawl-playwright.cjs.map +1 -0
  388. package/dist/services/definitions/firecrawl-playwright.d.cts +7 -0
  389. package/dist/services/definitions/firecrawl-playwright.d.cts.map +1 -0
  390. package/dist/services/definitions/firecrawl-playwright.d.mts +7 -0
  391. package/dist/services/definitions/firecrawl-playwright.d.mts.map +1 -0
  392. package/dist/services/definitions/firecrawl-playwright.mjs +60 -0
  393. package/dist/services/definitions/firecrawl-playwright.mjs.map +1 -0
  394. package/dist/services/definitions/firecrawl.cjs +163 -0
  395. package/dist/services/definitions/firecrawl.cjs.map +1 -0
  396. package/dist/services/definitions/firecrawl.d.cts +7 -0
  397. package/dist/services/definitions/firecrawl.d.cts.map +1 -0
  398. package/dist/services/definitions/firecrawl.d.mts +7 -0
  399. package/dist/services/definitions/firecrawl.d.mts.map +1 -0
  400. package/dist/services/definitions/firecrawl.mjs +162 -0
  401. package/dist/services/definitions/firecrawl.mjs.map +1 -0
  402. package/dist/services/definitions/flagsmith.cjs +77 -0
  403. package/dist/services/definitions/flagsmith.cjs.map +1 -0
  404. package/dist/services/definitions/flagsmith.d.cts +7 -0
  405. package/dist/services/definitions/flagsmith.d.cts.map +1 -0
  406. package/dist/services/definitions/flagsmith.d.mts +7 -0
  407. package/dist/services/definitions/flagsmith.d.mts.map +1 -0
  408. package/dist/services/definitions/flagsmith.mjs +76 -0
  409. package/dist/services/definitions/flagsmith.mjs.map +1 -0
  410. package/dist/services/definitions/flowise.cjs +2 -3
  411. package/dist/services/definitions/flowise.cjs.map +1 -1
  412. package/dist/services/definitions/flowise.mjs +1 -1
  413. package/dist/services/definitions/fonoster.cjs +66 -0
  414. package/dist/services/definitions/fonoster.cjs.map +1 -0
  415. package/dist/services/definitions/fonoster.d.cts +7 -0
  416. package/dist/services/definitions/fonoster.d.cts.map +1 -0
  417. package/dist/services/definitions/fonoster.d.mts +7 -0
  418. package/dist/services/definitions/fonoster.d.mts.map +1 -0
  419. package/dist/services/definitions/fonoster.mjs +65 -0
  420. package/dist/services/definitions/fonoster.mjs.map +1 -0
  421. package/dist/services/definitions/formbricks.cjs +75 -0
  422. package/dist/services/definitions/formbricks.cjs.map +1 -0
  423. package/dist/services/definitions/formbricks.d.cts +7 -0
  424. package/dist/services/definitions/formbricks.d.cts.map +1 -0
  425. package/dist/services/definitions/formbricks.d.mts +7 -0
  426. package/dist/services/definitions/formbricks.d.mts.map +1 -0
  427. package/dist/services/definitions/formbricks.mjs +74 -0
  428. package/dist/services/definitions/formbricks.mjs.map +1 -0
  429. package/dist/services/definitions/gemini-cli.cjs +2 -3
  430. package/dist/services/definitions/gemini-cli.cjs.map +1 -1
  431. package/dist/services/definitions/gemini-cli.mjs +1 -1
  432. package/dist/services/definitions/ghost.cjs +2 -3
  433. package/dist/services/definitions/ghost.cjs.map +1 -1
  434. package/dist/services/definitions/ghost.mjs +1 -1
  435. package/dist/services/definitions/gitea.cjs +2 -3
  436. package/dist/services/definitions/gitea.cjs.map +1 -1
  437. package/dist/services/definitions/gitea.mjs +1 -1
  438. package/dist/services/definitions/gotify.cjs +2 -3
  439. package/dist/services/definitions/gotify.cjs.map +1 -1
  440. package/dist/services/definitions/gotify.mjs +1 -1
  441. package/dist/services/definitions/grafana.cjs +2 -3
  442. package/dist/services/definitions/grafana.cjs.map +1 -1
  443. package/dist/services/definitions/grafana.mjs +1 -1
  444. package/dist/services/definitions/headscale.cjs +2 -3
  445. package/dist/services/definitions/headscale.cjs.map +1 -1
  446. package/dist/services/definitions/headscale.mjs +1 -1
  447. package/dist/services/definitions/hedgedoc.cjs +82 -0
  448. package/dist/services/definitions/hedgedoc.cjs.map +1 -0
  449. package/dist/services/definitions/hedgedoc.d.cts +7 -0
  450. package/dist/services/definitions/hedgedoc.d.cts.map +1 -0
  451. package/dist/services/definitions/hedgedoc.d.mts +7 -0
  452. package/dist/services/definitions/hedgedoc.d.mts.map +1 -0
  453. package/dist/services/definitions/hedgedoc.mjs +81 -0
  454. package/dist/services/definitions/hedgedoc.mjs.map +1 -0
  455. package/dist/services/definitions/hexstrike.cjs +2 -3
  456. package/dist/services/definitions/hexstrike.cjs.map +1 -1
  457. package/dist/services/definitions/hexstrike.mjs +1 -1
  458. package/dist/services/definitions/heyform.cjs +64 -0
  459. package/dist/services/definitions/heyform.cjs.map +1 -0
  460. package/dist/services/definitions/heyform.d.cts +7 -0
  461. package/dist/services/definitions/heyform.d.cts.map +1 -0
  462. package/dist/services/definitions/heyform.d.mts +7 -0
  463. package/dist/services/definitions/heyform.d.mts.map +1 -0
  464. package/dist/services/definitions/heyform.mjs +63 -0
  465. package/dist/services/definitions/heyform.mjs.map +1 -0
  466. package/dist/services/definitions/homeassistant.cjs +2 -3
  467. package/dist/services/definitions/homeassistant.cjs.map +1 -1
  468. package/dist/services/definitions/homeassistant.mjs +1 -1
  469. package/dist/services/definitions/hoppscotch.cjs +76 -0
  470. package/dist/services/definitions/hoppscotch.cjs.map +1 -0
  471. package/dist/services/definitions/hoppscotch.d.cts +7 -0
  472. package/dist/services/definitions/hoppscotch.d.cts.map +1 -0
  473. package/dist/services/definitions/hoppscotch.d.mts +7 -0
  474. package/dist/services/definitions/hoppscotch.d.mts.map +1 -0
  475. package/dist/services/definitions/hoppscotch.mjs +75 -0
  476. package/dist/services/definitions/hoppscotch.mjs.map +1 -0
  477. package/dist/services/definitions/immich.cjs +2 -3
  478. package/dist/services/definitions/immich.cjs.map +1 -1
  479. package/dist/services/definitions/immich.mjs +1 -1
  480. package/dist/services/definitions/index.cjs +220 -98
  481. package/dist/services/definitions/index.cjs.map +1 -1
  482. package/dist/services/definitions/index.d.cts +42 -1
  483. package/dist/services/definitions/index.d.cts.map +1 -1
  484. package/dist/services/definitions/index.d.mts +42 -1
  485. package/dist/services/definitions/index.d.mts.map +1 -1
  486. package/dist/services/definitions/index.mjs +85 -4
  487. package/dist/services/definitions/index.mjs.map +1 -1
  488. package/dist/services/definitions/infisical.cjs +99 -0
  489. package/dist/services/definitions/infisical.cjs.map +1 -0
  490. package/dist/services/definitions/infisical.d.cts +7 -0
  491. package/dist/services/definitions/infisical.d.cts.map +1 -0
  492. package/dist/services/definitions/infisical.d.mts +7 -0
  493. package/dist/services/definitions/infisical.d.mts.map +1 -0
  494. package/dist/services/definitions/infisical.mjs +98 -0
  495. package/dist/services/definitions/infisical.mjs.map +1 -0
  496. package/dist/services/definitions/jellyfin.cjs +2 -3
  497. package/dist/services/definitions/jellyfin.cjs.map +1 -1
  498. package/dist/services/definitions/jellyfin.mjs +1 -1
  499. package/dist/services/definitions/jenkins.cjs +2 -3
  500. package/dist/services/definitions/jenkins.cjs.map +1 -1
  501. package/dist/services/definitions/jenkins.mjs +1 -1
  502. package/dist/services/definitions/keycloak.cjs +122 -0
  503. package/dist/services/definitions/keycloak.cjs.map +1 -0
  504. package/dist/services/definitions/keycloak.d.cts +7 -0
  505. package/dist/services/definitions/keycloak.d.cts.map +1 -0
  506. package/dist/services/definitions/keycloak.d.mts +7 -0
  507. package/dist/services/definitions/keycloak.d.mts.map +1 -0
  508. package/dist/services/definitions/keycloak.mjs +121 -0
  509. package/dist/services/definitions/keycloak.mjs.map +1 -0
  510. package/dist/services/definitions/kimi.cjs +2 -3
  511. package/dist/services/definitions/kimi.cjs.map +1 -1
  512. package/dist/services/definitions/kimi.mjs +1 -1
  513. package/dist/services/definitions/kong.cjs +121 -0
  514. package/dist/services/definitions/kong.cjs.map +1 -0
  515. package/dist/services/definitions/kong.d.cts +7 -0
  516. package/dist/services/definitions/kong.d.cts.map +1 -0
  517. package/dist/services/definitions/kong.d.mts +7 -0
  518. package/dist/services/definitions/kong.d.mts.map +1 -0
  519. package/dist/services/definitions/kong.mjs +120 -0
  520. package/dist/services/definitions/kong.mjs.map +1 -0
  521. package/dist/services/definitions/lago.cjs +95 -0
  522. package/dist/services/definitions/lago.cjs.map +1 -0
  523. package/dist/services/definitions/lago.d.cts +7 -0
  524. package/dist/services/definitions/lago.d.cts.map +1 -0
  525. package/dist/services/definitions/lago.d.mts +7 -0
  526. package/dist/services/definitions/lago.d.mts.map +1 -0
  527. package/dist/services/definitions/lago.mjs +94 -0
  528. package/dist/services/definitions/lago.mjs.map +1 -0
  529. package/dist/services/definitions/langflow.cjs +88 -0
  530. package/dist/services/definitions/langflow.cjs.map +1 -0
  531. package/dist/services/definitions/langflow.d.cts +7 -0
  532. package/dist/services/definitions/langflow.d.cts.map +1 -0
  533. package/dist/services/definitions/langflow.d.mts +7 -0
  534. package/dist/services/definitions/langflow.d.mts.map +1 -0
  535. package/dist/services/definitions/langflow.mjs +87 -0
  536. package/dist/services/definitions/langflow.mjs.map +1 -0
  537. package/dist/services/definitions/langfuse.cjs +79 -0
  538. package/dist/services/definitions/langfuse.cjs.map +1 -0
  539. package/dist/services/definitions/langfuse.d.cts +7 -0
  540. package/dist/services/definitions/langfuse.d.cts.map +1 -0
  541. package/dist/services/definitions/langfuse.d.mts +7 -0
  542. package/dist/services/definitions/langfuse.d.mts.map +1 -0
  543. package/dist/services/definitions/langfuse.mjs +78 -0
  544. package/dist/services/definitions/langfuse.mjs.map +1 -0
  545. package/dist/services/definitions/lasuite-meet-agents.cjs +2 -3
  546. package/dist/services/definitions/lasuite-meet-agents.cjs.map +1 -1
  547. package/dist/services/definitions/lasuite-meet-agents.mjs +1 -1
  548. package/dist/services/definitions/lasuite-meet-backend.cjs +2 -3
  549. package/dist/services/definitions/lasuite-meet-backend.cjs.map +1 -1
  550. package/dist/services/definitions/lasuite-meet-backend.mjs +1 -1
  551. package/dist/services/definitions/lasuite-meet-frontend.cjs +2 -3
  552. package/dist/services/definitions/lasuite-meet-frontend.cjs.map +1 -1
  553. package/dist/services/definitions/lasuite-meet-frontend.mjs +1 -1
  554. package/dist/services/definitions/librechat.cjs +2 -3
  555. package/dist/services/definitions/librechat.cjs.map +1 -1
  556. package/dist/services/definitions/librechat.mjs +1 -1
  557. package/dist/services/definitions/lightpanda.cjs +2 -3
  558. package/dist/services/definitions/lightpanda.cjs.map +1 -1
  559. package/dist/services/definitions/lightpanda.mjs +1 -1
  560. package/dist/services/definitions/listmonk.cjs +118 -0
  561. package/dist/services/definitions/listmonk.cjs.map +1 -0
  562. package/dist/services/definitions/listmonk.d.cts +7 -0
  563. package/dist/services/definitions/listmonk.d.cts.map +1 -0
  564. package/dist/services/definitions/listmonk.d.mts +7 -0
  565. package/dist/services/definitions/listmonk.d.mts.map +1 -0
  566. package/dist/services/definitions/listmonk.mjs +117 -0
  567. package/dist/services/definitions/listmonk.mjs.map +1 -0
  568. package/dist/services/definitions/litellm.cjs +2 -3
  569. package/dist/services/definitions/litellm.cjs.map +1 -1
  570. package/dist/services/definitions/litellm.mjs +1 -1
  571. package/dist/services/definitions/livekit.cjs +2 -3
  572. package/dist/services/definitions/livekit.cjs.map +1 -1
  573. package/dist/services/definitions/livekit.mjs +1 -1
  574. package/dist/services/definitions/loki.cjs +2 -3
  575. package/dist/services/definitions/loki.cjs.map +1 -1
  576. package/dist/services/definitions/loki.mjs +1 -1
  577. package/dist/services/definitions/mariadb.cjs +81 -0
  578. package/dist/services/definitions/mariadb.cjs.map +1 -0
  579. package/dist/services/definitions/mariadb.d.cts +7 -0
  580. package/dist/services/definitions/mariadb.d.cts.map +1 -0
  581. package/dist/services/definitions/mariadb.d.mts +7 -0
  582. package/dist/services/definitions/mariadb.d.mts.map +1 -0
  583. package/dist/services/definitions/mariadb.mjs +80 -0
  584. package/dist/services/definitions/mariadb.mjs.map +1 -0
  585. package/dist/services/definitions/matomo.cjs +2 -3
  586. package/dist/services/definitions/matomo.cjs.map +1 -1
  587. package/dist/services/definitions/matomo.mjs +1 -1
  588. package/dist/services/definitions/matrix-synapse.cjs +2 -3
  589. package/dist/services/definitions/matrix-synapse.cjs.map +1 -1
  590. package/dist/services/definitions/matrix-synapse.mjs +1 -1
  591. package/dist/services/definitions/mattermost.cjs +2 -3
  592. package/dist/services/definitions/mattermost.cjs.map +1 -1
  593. package/dist/services/definitions/mattermost.mjs +1 -1
  594. package/dist/services/definitions/mautic.cjs +83 -0
  595. package/dist/services/definitions/mautic.cjs.map +1 -0
  596. package/dist/services/definitions/mautic.d.cts +7 -0
  597. package/dist/services/definitions/mautic.d.cts.map +1 -0
  598. package/dist/services/definitions/mautic.d.mts +7 -0
  599. package/dist/services/definitions/mautic.d.mts.map +1 -0
  600. package/dist/services/definitions/mautic.mjs +82 -0
  601. package/dist/services/definitions/mautic.mjs.map +1 -0
  602. package/dist/services/definitions/medusa.cjs +83 -0
  603. package/dist/services/definitions/medusa.cjs.map +1 -0
  604. package/dist/services/definitions/medusa.d.cts +7 -0
  605. package/dist/services/definitions/medusa.d.cts.map +1 -0
  606. package/dist/services/definitions/medusa.d.mts +7 -0
  607. package/dist/services/definitions/medusa.d.mts.map +1 -0
  608. package/dist/services/definitions/medusa.mjs +82 -0
  609. package/dist/services/definitions/medusa.mjs.map +1 -0
  610. package/dist/services/definitions/meilisearch.cjs +2 -3
  611. package/dist/services/definitions/meilisearch.cjs.map +1 -1
  612. package/dist/services/definitions/meilisearch.mjs +1 -1
  613. package/dist/services/definitions/milvus.cjs +2 -3
  614. package/dist/services/definitions/milvus.cjs.map +1 -1
  615. package/dist/services/definitions/milvus.mjs +1 -1
  616. package/dist/services/definitions/minio.cjs +2 -3
  617. package/dist/services/definitions/minio.cjs.map +1 -1
  618. package/dist/services/definitions/minio.mjs +1 -1
  619. package/dist/services/definitions/mission-control.cjs +2 -3
  620. package/dist/services/definitions/mission-control.cjs.map +1 -1
  621. package/dist/services/definitions/mission-control.mjs +1 -1
  622. package/dist/services/definitions/mixpost.cjs +2 -3
  623. package/dist/services/definitions/mixpost.cjs.map +1 -1
  624. package/dist/services/definitions/mixpost.mjs +1 -1
  625. package/dist/services/definitions/motion-canvas.cjs +2 -3
  626. package/dist/services/definitions/motion-canvas.cjs.map +1 -1
  627. package/dist/services/definitions/motion-canvas.mjs +1 -1
  628. package/dist/services/definitions/mysql.cjs +81 -0
  629. package/dist/services/definitions/mysql.cjs.map +1 -0
  630. package/dist/services/definitions/mysql.d.cts +7 -0
  631. package/dist/services/definitions/mysql.d.cts.map +1 -0
  632. package/dist/services/definitions/mysql.d.mts +7 -0
  633. package/dist/services/definitions/mysql.d.mts.map +1 -0
  634. package/dist/services/definitions/mysql.mjs +80 -0
  635. package/dist/services/definitions/mysql.mjs.map +1 -0
  636. package/dist/services/definitions/n8n.cjs +2 -3
  637. package/dist/services/definitions/n8n.cjs.map +1 -1
  638. package/dist/services/definitions/n8n.mjs +1 -1
  639. package/dist/services/definitions/neo4j.cjs +2 -3
  640. package/dist/services/definitions/neo4j.cjs.map +1 -1
  641. package/dist/services/definitions/neo4j.mjs +1 -1
  642. package/dist/services/definitions/nextcloud.cjs +2 -3
  643. package/dist/services/definitions/nextcloud.cjs.map +1 -1
  644. package/dist/services/definitions/nextcloud.mjs +1 -1
  645. package/dist/services/definitions/nocodb.cjs +2 -3
  646. package/dist/services/definitions/nocodb.cjs.map +1 -1
  647. package/dist/services/definitions/nocodb.mjs +1 -1
  648. package/dist/services/definitions/ntfy.cjs +2 -3
  649. package/dist/services/definitions/ntfy.cjs.map +1 -1
  650. package/dist/services/definitions/ntfy.mjs +1 -1
  651. package/dist/services/definitions/ollama.cjs +2 -3
  652. package/dist/services/definitions/ollama.cjs.map +1 -1
  653. package/dist/services/definitions/ollama.mjs +1 -1
  654. package/dist/services/definitions/open-webui.cjs +2 -3
  655. package/dist/services/definitions/open-webui.cjs.map +1 -1
  656. package/dist/services/definitions/open-webui.mjs +1 -1
  657. package/dist/services/definitions/opencode.cjs +2 -3
  658. package/dist/services/definitions/opencode.cjs.map +1 -1
  659. package/dist/services/definitions/opencode.mjs +1 -1
  660. package/dist/services/definitions/openhands.cjs +58 -0
  661. package/dist/services/definitions/openhands.cjs.map +1 -0
  662. package/dist/services/definitions/openhands.d.cts +7 -0
  663. package/dist/services/definitions/openhands.d.cts.map +1 -0
  664. package/dist/services/definitions/openhands.d.mts +7 -0
  665. package/dist/services/definitions/openhands.d.mts.map +1 -0
  666. package/dist/services/definitions/openhands.mjs +57 -0
  667. package/dist/services/definitions/openhands.mjs.map +1 -0
  668. package/dist/services/definitions/openpanel.cjs +2 -3
  669. package/dist/services/definitions/openpanel.cjs.map +1 -1
  670. package/dist/services/definitions/openpanel.mjs +1 -1
  671. package/dist/services/definitions/opensearch.cjs +94 -0
  672. package/dist/services/definitions/opensearch.cjs.map +1 -0
  673. package/dist/services/definitions/opensearch.d.cts +7 -0
  674. package/dist/services/definitions/opensearch.d.cts.map +1 -0
  675. package/dist/services/definitions/opensearch.d.mts +7 -0
  676. package/dist/services/definitions/opensearch.d.mts.map +1 -0
  677. package/dist/services/definitions/opensearch.mjs +93 -0
  678. package/dist/services/definitions/opensearch.mjs.map +1 -0
  679. package/dist/services/definitions/outline.cjs +2 -3
  680. package/dist/services/definitions/outline.cjs.map +1 -1
  681. package/dist/services/definitions/outline.mjs +1 -1
  682. package/dist/services/definitions/paperless-ngx.cjs +2 -3
  683. package/dist/services/definitions/paperless-ngx.cjs.map +1 -1
  684. package/dist/services/definitions/paperless-ngx.mjs +1 -1
  685. package/dist/services/definitions/pentagi.cjs +2 -3
  686. package/dist/services/definitions/pentagi.cjs.map +1 -1
  687. package/dist/services/definitions/pentagi.mjs +1 -1
  688. package/dist/services/definitions/pentestagent.cjs +2 -3
  689. package/dist/services/definitions/pentestagent.cjs.map +1 -1
  690. package/dist/services/definitions/pentestagent.mjs +1 -1
  691. package/dist/services/definitions/playwright-server.cjs +2 -3
  692. package/dist/services/definitions/playwright-server.cjs.map +1 -1
  693. package/dist/services/definitions/playwright-server.mjs +1 -1
  694. package/dist/services/definitions/pocketbase.cjs +61 -0
  695. package/dist/services/definitions/pocketbase.cjs.map +1 -0
  696. package/dist/services/definitions/pocketbase.d.cts +7 -0
  697. package/dist/services/definitions/pocketbase.d.cts.map +1 -0
  698. package/dist/services/definitions/pocketbase.d.mts +7 -0
  699. package/dist/services/definitions/pocketbase.d.mts.map +1 -0
  700. package/dist/services/definitions/pocketbase.mjs +60 -0
  701. package/dist/services/definitions/pocketbase.mjs.map +1 -0
  702. package/dist/services/definitions/portainer.cjs +2 -3
  703. package/dist/services/definitions/portainer.cjs.map +1 -1
  704. package/dist/services/definitions/portainer.mjs +1 -1
  705. package/dist/services/definitions/postgresql.cjs +2 -3
  706. package/dist/services/definitions/postgresql.cjs.map +1 -1
  707. package/dist/services/definitions/postgresql.mjs +1 -1
  708. package/dist/services/definitions/postiz.cjs +2 -3
  709. package/dist/services/definitions/postiz.cjs.map +1 -1
  710. package/dist/services/definitions/postiz.mjs +1 -1
  711. package/dist/services/definitions/prometheus.cjs +2 -3
  712. package/dist/services/definitions/prometheus.cjs.map +1 -1
  713. package/dist/services/definitions/prometheus.mjs +1 -1
  714. package/dist/services/definitions/qdrant.cjs +2 -3
  715. package/dist/services/definitions/qdrant.cjs.map +1 -1
  716. package/dist/services/definitions/qdrant.mjs +1 -1
  717. package/dist/services/definitions/rabbitmq.cjs +80 -0
  718. package/dist/services/definitions/rabbitmq.cjs.map +1 -0
  719. package/dist/services/definitions/rabbitmq.d.cts +7 -0
  720. package/dist/services/definitions/rabbitmq.d.cts.map +1 -0
  721. package/dist/services/definitions/rabbitmq.d.mts +7 -0
  722. package/dist/services/definitions/rabbitmq.d.mts.map +1 -0
  723. package/dist/services/definitions/rabbitmq.mjs +79 -0
  724. package/dist/services/definitions/rabbitmq.mjs.map +1 -0
  725. package/dist/services/definitions/ragflow.cjs +192 -0
  726. package/dist/services/definitions/ragflow.cjs.map +1 -0
  727. package/dist/services/definitions/ragflow.d.cts +7 -0
  728. package/dist/services/definitions/ragflow.d.cts.map +1 -0
  729. package/dist/services/definitions/ragflow.d.mts +7 -0
  730. package/dist/services/definitions/ragflow.d.mts.map +1 -0
  731. package/dist/services/definitions/ragflow.mjs +191 -0
  732. package/dist/services/definitions/ragflow.mjs.map +1 -0
  733. package/dist/services/definitions/redis.cjs +2 -3
  734. package/dist/services/definitions/redis.cjs.map +1 -1
  735. package/dist/services/definitions/redis.mjs +1 -1
  736. package/dist/services/definitions/remotion.cjs +2 -3
  737. package/dist/services/definitions/remotion.cjs.map +1 -1
  738. package/dist/services/definitions/remotion.mjs +1 -1
  739. package/dist/services/definitions/restic.cjs +58 -0
  740. package/dist/services/definitions/restic.cjs.map +1 -0
  741. package/dist/services/definitions/restic.d.cts +7 -0
  742. package/dist/services/definitions/restic.d.cts.map +1 -0
  743. package/dist/services/definitions/restic.d.mts +7 -0
  744. package/dist/services/definitions/restic.d.mts.map +1 -0
  745. package/dist/services/definitions/restic.mjs +57 -0
  746. package/dist/services/definitions/restic.mjs.map +1 -0
  747. package/dist/services/definitions/rocketchat.cjs +2 -3
  748. package/dist/services/definitions/rocketchat.cjs.map +1 -1
  749. package/dist/services/definitions/rocketchat.mjs +1 -1
  750. package/dist/services/definitions/saleor.cjs +76 -0
  751. package/dist/services/definitions/saleor.cjs.map +1 -0
  752. package/dist/services/definitions/saleor.d.cts +7 -0
  753. package/dist/services/definitions/saleor.d.cts.map +1 -0
  754. package/dist/services/definitions/saleor.d.mts +7 -0
  755. package/dist/services/definitions/saleor.d.mts.map +1 -0
  756. package/dist/services/definitions/saleor.mjs +75 -0
  757. package/dist/services/definitions/saleor.mjs.map +1 -0
  758. package/dist/services/definitions/scrapling.cjs +2 -3
  759. package/dist/services/definitions/scrapling.cjs.map +1 -1
  760. package/dist/services/definitions/scrapling.mjs +1 -1
  761. package/dist/services/definitions/searxng.cjs +2 -3
  762. package/dist/services/definitions/searxng.cjs.map +1 -1
  763. package/dist/services/definitions/searxng.mjs +1 -1
  764. package/dist/services/definitions/signoz.cjs +2 -3
  765. package/dist/services/definitions/signoz.cjs.map +1 -1
  766. package/dist/services/definitions/signoz.mjs +1 -1
  767. package/dist/services/definitions/solidityguard.cjs +2 -3
  768. package/dist/services/definitions/solidityguard.cjs.map +1 -1
  769. package/dist/services/definitions/solidityguard.mjs +1 -1
  770. package/dist/services/definitions/stable-diffusion.cjs +2 -3
  771. package/dist/services/definitions/stable-diffusion.cjs.map +1 -1
  772. package/dist/services/definitions/stable-diffusion.mjs +1 -1
  773. package/dist/services/definitions/steel-browser.cjs +2 -3
  774. package/dist/services/definitions/steel-browser.cjs.map +1 -1
  775. package/dist/services/definitions/steel-browser.mjs +1 -1
  776. package/dist/services/definitions/stirling-pdf.cjs +74 -0
  777. package/dist/services/definitions/stirling-pdf.cjs.map +1 -0
  778. package/dist/services/definitions/stirling-pdf.d.cts +7 -0
  779. package/dist/services/definitions/stirling-pdf.d.cts.map +1 -0
  780. package/dist/services/definitions/stirling-pdf.d.mts +7 -0
  781. package/dist/services/definitions/stirling-pdf.d.mts.map +1 -0
  782. package/dist/services/definitions/stirling-pdf.mjs +73 -0
  783. package/dist/services/definitions/stirling-pdf.mjs.map +1 -0
  784. package/dist/services/definitions/strapi.cjs +124 -0
  785. package/dist/services/definitions/strapi.cjs.map +1 -0
  786. package/dist/services/definitions/strapi.d.cts +7 -0
  787. package/dist/services/definitions/strapi.d.cts.map +1 -0
  788. package/dist/services/definitions/strapi.d.mts +7 -0
  789. package/dist/services/definitions/strapi.d.mts.map +1 -0
  790. package/dist/services/definitions/strapi.mjs +123 -0
  791. package/dist/services/definitions/strapi.mjs.map +1 -0
  792. package/dist/services/definitions/stream-gateway.cjs +2 -3
  793. package/dist/services/definitions/stream-gateway.cjs.map +1 -1
  794. package/dist/services/definitions/stream-gateway.mjs +1 -1
  795. package/dist/services/definitions/supabase.cjs +2 -3
  796. package/dist/services/definitions/supabase.cjs.map +1 -1
  797. package/dist/services/definitions/supabase.mjs +1 -1
  798. package/dist/services/definitions/tailscale.cjs +2 -3
  799. package/dist/services/definitions/tailscale.cjs.map +1 -1
  800. package/dist/services/definitions/tailscale.mjs +1 -1
  801. package/dist/services/definitions/temporal.cjs +2 -3
  802. package/dist/services/definitions/temporal.cjs.map +1 -1
  803. package/dist/services/definitions/temporal.mjs +1 -1
  804. package/dist/services/definitions/traefik.cjs +2 -3
  805. package/dist/services/definitions/traefik.cjs.map +1 -1
  806. package/dist/services/definitions/traefik.mjs +1 -1
  807. package/dist/services/definitions/twenty.cjs +83 -0
  808. package/dist/services/definitions/twenty.cjs.map +1 -0
  809. package/dist/services/definitions/twenty.d.cts +7 -0
  810. package/dist/services/definitions/twenty.d.cts.map +1 -0
  811. package/dist/services/definitions/twenty.d.mts +7 -0
  812. package/dist/services/definitions/twenty.d.mts.map +1 -0
  813. package/dist/services/definitions/twenty.mjs +82 -0
  814. package/dist/services/definitions/twenty.mjs.map +1 -0
  815. package/dist/services/definitions/umami.cjs +2 -3
  816. package/dist/services/definitions/umami.cjs.map +1 -1
  817. package/dist/services/definitions/umami.mjs +1 -1
  818. package/dist/services/definitions/uptime-kuma.cjs +2 -3
  819. package/dist/services/definitions/uptime-kuma.cjs.map +1 -1
  820. package/dist/services/definitions/uptime-kuma.mjs +1 -1
  821. package/dist/services/definitions/usesend.cjs +2 -3
  822. package/dist/services/definitions/usesend.cjs.map +1 -1
  823. package/dist/services/definitions/usesend.mjs +1 -1
  824. package/dist/services/definitions/valkey.cjs +2 -3
  825. package/dist/services/definitions/valkey.cjs.map +1 -1
  826. package/dist/services/definitions/valkey.mjs +1 -1
  827. package/dist/services/definitions/vault.cjs +71 -0
  828. package/dist/services/definitions/vault.cjs.map +1 -0
  829. package/dist/services/definitions/vault.d.cts +7 -0
  830. package/dist/services/definitions/vault.d.cts.map +1 -0
  831. package/dist/services/definitions/vault.d.mts +7 -0
  832. package/dist/services/definitions/vault.d.mts.map +1 -0
  833. package/dist/services/definitions/vault.mjs +70 -0
  834. package/dist/services/definitions/vault.mjs.map +1 -0
  835. package/dist/services/definitions/vaultwarden.cjs +2 -3
  836. package/dist/services/definitions/vaultwarden.cjs.map +1 -1
  837. package/dist/services/definitions/vaultwarden.mjs +1 -1
  838. package/dist/services/definitions/watchtower.cjs +2 -3
  839. package/dist/services/definitions/watchtower.cjs.map +1 -1
  840. package/dist/services/definitions/watchtower.mjs +1 -1
  841. package/dist/services/definitions/weaviate.cjs +2 -3
  842. package/dist/services/definitions/weaviate.cjs.map +1 -1
  843. package/dist/services/definitions/weaviate.mjs +1 -1
  844. package/dist/services/definitions/whisper.cjs +2 -3
  845. package/dist/services/definitions/whisper.cjs.map +1 -1
  846. package/dist/services/definitions/whisper.mjs +1 -1
  847. package/dist/services/definitions/xyops.cjs +2 -3
  848. package/dist/services/definitions/xyops.cjs.map +1 -1
  849. package/dist/services/definitions/xyops.mjs +1 -1
  850. package/dist/services/registry.cjs +3 -4
  851. package/dist/services/registry.cjs.map +1 -1
  852. package/dist/services/registry.d.mts.map +1 -1
  853. package/dist/services/registry.mjs +1 -2
  854. package/dist/services/registry.mjs.map +1 -1
  855. package/dist/services/registry.test.cjs +3 -4
  856. package/dist/services/registry.test.cjs.map +1 -1
  857. package/dist/services/registry.test.mjs +3 -4
  858. package/dist/services/registry.test.mjs.map +1 -1
  859. package/dist/{manifest-4uLbISXV.cjs → skill-manifest--IgY9REK.cjs} +40 -10
  860. package/dist/skill-manifest--IgY9REK.cjs.map +1 -0
  861. package/dist/{manifest-B8UDsVlR.mjs → skill-manifest-BVUXU0__.mjs} +24 -5
  862. package/dist/skill-manifest-BVUXU0__.mjs.map +1 -0
  863. package/dist/skills/registry.cjs +262 -3
  864. package/dist/skills/registry.cjs.map +1 -1
  865. package/dist/skills/registry.d.cts.map +1 -1
  866. package/dist/skills/registry.d.mts.map +1 -1
  867. package/dist/skills/registry.mjs +261 -1
  868. package/dist/skills/registry.mjs.map +1 -1
  869. package/dist/skills/skill-manifest.cjs +5 -23
  870. package/dist/skills/skill-manifest.mjs +1 -19
  871. package/dist/skills-BlzpHmpH.cjs +620 -0
  872. package/dist/skills-BlzpHmpH.cjs.map +1 -0
  873. package/dist/types-CR83OJiq.d.cts +243 -0
  874. package/dist/types-CR83OJiq.d.cts.map +1 -0
  875. package/dist/types-zYjGTuyn.d.mts +243 -0
  876. package/dist/types-zYjGTuyn.d.mts.map +1 -0
  877. package/dist/types.cjs +79 -3
  878. package/dist/types.cjs.map +1 -1
  879. package/dist/types.d.cts +1 -1
  880. package/dist/types.d.mts +1 -1
  881. package/dist/types.mjs +78 -1
  882. package/dist/types.mjs.map +1 -1
  883. package/dist/validator.cjs +3 -4
  884. package/dist/validator.cjs.map +1 -1
  885. package/dist/validator.mjs +1 -2
  886. package/dist/validator.mjs.map +1 -1
  887. package/dist/validator.test.cjs +5 -6
  888. package/dist/validator.test.cjs.map +1 -1
  889. package/dist/validator.test.mjs +3 -4
  890. package/dist/validator.test.mjs.map +1 -1
  891. package/dist/version-manager.cjs +3 -4
  892. package/dist/version-manager.cjs.map +1 -1
  893. package/dist/version-manager.d.mts.map +1 -1
  894. package/dist/version-manager.mjs +1 -2
  895. package/dist/version-manager.mjs.map +1 -1
  896. package/dist/version-manager.test.cjs +5 -6
  897. package/dist/version-manager.test.cjs.map +1 -1
  898. package/dist/version-manager.test.mjs +3 -4
  899. package/dist/version-manager.test.mjs.map +1 -1
  900. package/dist/{vi.2VT5v0um-BmRMvymT.cjs → vi.2VT5v0um-CRqXre87.cjs} +82 -202
  901. package/dist/{vi.2VT5v0um-CFyDIn0m.mjs.map → vi.2VT5v0um-CRqXre87.cjs.map} +1 -1
  902. package/dist/{vi.2VT5v0um-CFyDIn0m.mjs → vi.2VT5v0um-DvC3SVNc.mjs} +67 -186
  903. package/dist/{vi.2VT5v0um-BmRMvymT.cjs.map → vi.2VT5v0um-DvC3SVNc.mjs.map} +1 -1
  904. package/package.json +4 -3
  905. package/src/deployers/coolify.ts +198 -103
  906. package/src/deployers/dokploy.ts +209 -55
  907. package/src/deployers/index.ts +1 -0
  908. package/src/deployers/strip-host-ports.test.ts +100 -0
  909. package/src/deployers/strip-host-ports.ts +187 -0
  910. package/src/deployers/types.ts +185 -1
  911. package/src/generators/postgres-init.ts +6 -0
  912. package/src/index.ts +19 -4
  913. package/src/presets/presets.test.ts +4 -0
  914. package/src/presets/registry.ts +88 -0
  915. package/src/schema.ts +11 -0
  916. package/src/services/definitions/airbyte.ts +75 -0
  917. package/src/services/definitions/airflow.ts +109 -0
  918. package/src/services/definitions/appwrite.ts +181 -0
  919. package/src/services/definitions/authelia.ts +145 -0
  920. package/src/services/definitions/axolotl.ts +65 -0
  921. package/src/services/definitions/chatwoot-worker.ts +93 -0
  922. package/src/services/definitions/chatwoot.ts +106 -0
  923. package/src/services/definitions/dagster.ts +82 -0
  924. package/src/services/definitions/directus.ts +115 -0
  925. package/src/services/definitions/duplicati.ts +77 -0
  926. package/src/services/definitions/excalidraw.ts +46 -0
  927. package/src/services/definitions/firecrawl-playwright.ts +62 -0
  928. package/src/services/definitions/firecrawl.ts +146 -0
  929. package/src/services/definitions/flagsmith.ts +76 -0
  930. package/src/services/definitions/fonoster.ts +67 -0
  931. package/src/services/definitions/formbricks.ts +75 -0
  932. package/src/services/definitions/hedgedoc.ts +81 -0
  933. package/src/services/definitions/heyform.ts +67 -0
  934. package/src/services/definitions/hoppscotch.ts +74 -0
  935. package/src/services/definitions/index.ts +124 -0
  936. package/src/services/definitions/infisical.ts +97 -0
  937. package/src/services/definitions/keycloak.ts +119 -0
  938. package/src/services/definitions/kong.ts +116 -0
  939. package/src/services/definitions/lago.ts +95 -0
  940. package/src/services/definitions/langflow.ts +82 -0
  941. package/src/services/definitions/langfuse.ts +76 -0
  942. package/src/services/definitions/listmonk.ts +118 -0
  943. package/src/services/definitions/mariadb.ts +82 -0
  944. package/src/services/definitions/mautic.ts +82 -0
  945. package/src/services/definitions/medusa.ts +82 -0
  946. package/src/services/definitions/mysql.ts +82 -0
  947. package/src/services/definitions/openhands.ts +60 -0
  948. package/src/services/definitions/opensearch.ts +95 -0
  949. package/src/services/definitions/pocketbase.ts +62 -0
  950. package/src/services/definitions/rabbitmq.ts +81 -0
  951. package/src/services/definitions/ragflow.ts +175 -0
  952. package/src/services/definitions/restic.ts +60 -0
  953. package/src/services/definitions/saleor.ts +75 -0
  954. package/src/services/definitions/stirling-pdf.ts +73 -0
  955. package/src/services/definitions/strapi.ts +124 -0
  956. package/src/services/definitions/twenty.ts +82 -0
  957. package/src/services/definitions/vault.ts +74 -0
  958. package/src/skills/manifest.json +8 -0
  959. package/src/skills/registry.ts +119 -0
  960. package/src/types.ts +91 -2
  961. package/tsconfig.tsbuildinfo +1 -0
  962. package/dist/chunk-C0xms8kb.cjs +0 -34
  963. package/dist/deployers/coolify.d.cts.map +0 -1
  964. package/dist/deployers/coolify.d.mts.map +0 -1
  965. package/dist/deployers/dokploy.d.cts.map +0 -1
  966. package/dist/deployers/dokploy.d.mts.map +0 -1
  967. package/dist/deployers/types.d.cts.map +0 -1
  968. package/dist/deployers/types.d.mts.map +0 -1
  969. package/dist/generators/skills.cjs.map +0 -1
  970. package/dist/manifest-4uLbISXV.cjs.map +0 -1
  971. package/dist/manifest-B8UDsVlR.mjs.map +0 -1
  972. package/dist/schema.d.cts.map +0 -1
  973. package/dist/schema.d.mts.map +0 -1
  974. package/dist/skills/skill-manifest.cjs.map +0 -1
  975. package/dist/skills/skill-manifest.mjs.map +0 -1
@@ -1,6 +1,6 @@
1
- import { DeployInput, DeployResult, DeployStep, DeployTarget, PaasDeployer } from "./types.mjs";
2
- import { CoolifyDeployer } from "./coolify.mjs";
3
- import { DokployDeployer } from "./dokploy.mjs";
1
+ import { d as PaasDeployer, f as PaasServer, i as DeployTarget, n as DeployResult, r as DeployStep, t as DeployInput } from "../types-zYjGTuyn.mjs";
2
+ import { t as CoolifyDeployer } from "../coolify-BVGGcMrT.mjs";
3
+ import { t as DokployDeployer } from "../dokploy-BTflLhTM.mjs";
4
4
 
5
5
  //#region src/deployers/index.d.ts
6
6
  /** Registry of all available PaaS deployers. */
@@ -10,5 +10,5 @@ declare function getDeployer(id: string): PaasDeployer | undefined;
10
10
  /** List all available deployer IDs. */
11
11
  declare function getAvailableDeployers(): string[];
12
12
  //#endregion
13
- export { CoolifyDeployer, type DeployInput, type DeployResult, type DeployStep, type DeployTarget, DokployDeployer, type PaasDeployer, deployerRegistry, getAvailableDeployers, getDeployer };
13
+ export { CoolifyDeployer, type DeployInput, type DeployResult, type DeployStep, type DeployTarget, DokployDeployer, type PaasDeployer, type PaasServer, deployerRegistry, getAvailableDeployers, getDeployer };
14
14
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/deployers/index.ts"],"mappings":";;;;;AA4BA;AAAA,cANa,gBAAA,EAAkB,MAAA,SAAe,YAAA;;iBAM9B,WAAA,CAAY,EAAA,WAAa,YAAA;;iBAKzB,qBAAA,CAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/deployers/index.ts"],"mappings":";;;;;AA6BA;AAAA,cANa,gBAAA,EAAkB,MAAA,SAAe,YAAA;;iBAM9B,WAAA,CAAY,EAAA,WAAa,YAAA;;iBAKzB,qBAAA,CAAA"}
@@ -1,6 +1,5 @@
1
1
  import { CoolifyDeployer } from "./coolify.mjs";
2
2
  import { DokployDeployer } from "./dokploy.mjs";
3
-
4
3
  //#region src/deployers/index.ts
5
4
  /** Registry of all available PaaS deployers. */
6
5
  const deployerRegistry = {
@@ -15,7 +14,7 @@ function getDeployer(id) {
15
14
  function getAvailableDeployers() {
16
15
  return Object.keys(deployerRegistry);
17
16
  }
18
-
19
17
  //#endregion
20
18
  export { CoolifyDeployer, DokployDeployer, deployerRegistry, getAvailableDeployers, getDeployer };
19
+
21
20
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/deployers/index.ts"],"sourcesContent":["/**\n * PaaS deployer registry — barrel export + lookup helpers.\n *\n * To add a new provider, implement `PaasDeployer` and register it in\n * `deployerRegistry` below.\n */\n\nexport { CoolifyDeployer } from \"./coolify.js\";\nexport { DokployDeployer } from \"./dokploy.js\";\nexport type {\n\tDeployInput,\n\tDeployResult,\n\tDeployStep,\n\tDeployTarget,\n\tPaasDeployer,\n} from \"./types.js\";\n\nimport { CoolifyDeployer } from \"./coolify.js\";\nimport { DokployDeployer } from \"./dokploy.js\";\nimport type { PaasDeployer } from \"./types.js\";\n\n/** Registry of all available PaaS deployers. */\nexport const deployerRegistry: Record<string, PaasDeployer> = {\n\tdokploy: new DokployDeployer(),\n\tcoolify: new CoolifyDeployer(),\n};\n\n/** Get a deployer by ID, or undefined if not found. */\nexport function getDeployer(id: string): PaasDeployer | undefined {\n\treturn deployerRegistry[id];\n}\n\n/** List all available deployer IDs. */\nexport function getAvailableDeployers(): string[] {\n\treturn Object.keys(deployerRegistry);\n}\n"],"mappings":";;;;;AAsBA,MAAa,mBAAiD;CAC7D,SAAS,IAAI,iBAAiB;CAC9B,SAAS,IAAI,iBAAiB;CAC9B;;AAGD,SAAgB,YAAY,IAAsC;AACjE,QAAO,iBAAiB;;;AAIzB,SAAgB,wBAAkC;AACjD,QAAO,OAAO,KAAK,iBAAiB"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/deployers/index.ts"],"sourcesContent":["/**\n * PaaS deployer registry — barrel export + lookup helpers.\n *\n * To add a new provider, implement `PaasDeployer` and register it in\n * `deployerRegistry` below.\n */\n\nexport { CoolifyDeployer } from \"./coolify.js\";\nexport { DokployDeployer } from \"./dokploy.js\";\nexport type {\n\tDeployInput,\n\tDeployResult,\n\tDeployStep,\n\tDeployTarget,\n\tPaasDeployer,\n\tPaasServer,\n} from \"./types.js\";\n\nimport { CoolifyDeployer } from \"./coolify.js\";\nimport { DokployDeployer } from \"./dokploy.js\";\nimport type { PaasDeployer } from \"./types.js\";\n\n/** Registry of all available PaaS deployers. */\nexport const deployerRegistry: Record<string, PaasDeployer> = {\n\tdokploy: new DokployDeployer(),\n\tcoolify: new CoolifyDeployer(),\n};\n\n/** Get a deployer by ID, or undefined if not found. */\nexport function getDeployer(id: string): PaasDeployer | undefined {\n\treturn deployerRegistry[id];\n}\n\n/** List all available deployer IDs. */\nexport function getAvailableDeployers(): string[] {\n\treturn Object.keys(deployerRegistry);\n}\n"],"mappings":";;;;AAuBA,MAAa,mBAAiD;CAC7D,SAAS,IAAI,iBAAiB;CAC9B,SAAS,IAAI,iBAAiB;CAC9B;;AAGD,SAAgB,YAAY,IAAsC;AACjE,QAAO,iBAAiB;;;AAIzB,SAAgB,wBAAkC;AACjD,QAAO,OAAO,KAAK,iBAAiB"}
@@ -0,0 +1,137 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ require("../skills-BlzpHmpH.cjs");
3
+ let yaml = require("yaml");
4
+ //#region src/deployers/strip-host-ports.ts
5
+ /**
6
+ * Strips host port bindings from a Docker Compose YAML string.
7
+ *
8
+ * When deploying to a PaaS like Dokploy or Coolify, services don't need
9
+ * host port mappings because routing is handled by the platform's built-in
10
+ * reverse proxy (Traefik). Binding to host ports causes "port already
11
+ * allocated" errors when ports are in use by other services on the server.
12
+ *
13
+ * Transforms port mappings:
14
+ * "8080:8080" → "8080" (container port only)
15
+ * "0.0.0.0:8080:80" → "80" (container port only)
16
+ * "8080:80/tcp" → "80/tcp" (preserves protocol)
17
+ * { published: 8080, target: 80 } → { target: 80 }
18
+ *
19
+ * The `expose` field is left untouched since it only defines internal ports.
20
+ */
21
+ /**
22
+ * Strips host port bindings from a Docker Compose YAML string,
23
+ * keeping only the container (target) ports.
24
+ *
25
+ * Returns the modified YAML string.
26
+ */
27
+ function stripHostPorts(composeYaml) {
28
+ const doc = (0, yaml.parse)(composeYaml);
29
+ if (!doc?.services) return composeYaml;
30
+ for (const [, service] of Object.entries(doc.services)) {
31
+ if (!service.ports || !Array.isArray(service.ports)) continue;
32
+ service.ports = service.ports.map((port) => {
33
+ if (typeof port === "string") return stripStringPort(port);
34
+ if (typeof port === "object" && port !== null) return stripObjectPort(port);
35
+ return port;
36
+ });
37
+ }
38
+ return (0, yaml.stringify)(doc, { lineWidth: 200 });
39
+ }
40
+ /**
41
+ * Strips host portion from a string port mapping.
42
+ *
43
+ * "8080:80" → "80"
44
+ * "0.0.0.0:8080:80" → "80"
45
+ * "80" → "80" (no change)
46
+ * "80/tcp" → "80/tcp"
47
+ * "8080:80/tcp" → "80/tcp"
48
+ */
49
+ function stripStringPort(port) {
50
+ const protocolIdx = port.lastIndexOf("/");
51
+ let protocol = "";
52
+ let portSpec = port;
53
+ if (protocolIdx > 0) {
54
+ protocol = port.substring(protocolIdx);
55
+ portSpec = port.substring(0, protocolIdx);
56
+ }
57
+ const parts = portSpec.split(":");
58
+ return `${parts[parts.length - 1]}${protocol}`;
59
+ }
60
+ /**
61
+ * Strips host/published from an object port mapping.
62
+ *
63
+ * { target: 80, published: 8080 } → { target: 80 }
64
+ */
65
+ function stripObjectPort(port) {
66
+ const { published: _, host_ip: __, ...rest } = port;
67
+ return rest;
68
+ }
69
+ /**
70
+ * Strips local bind mounts (paths starting with `./`) from a Docker
71
+ * Compose YAML string.
72
+ *
73
+ * When deploying to a PaaS like Dokploy or Coolify as a raw compose
74
+ * stack, there is no cloned repository — so host-relative volume mounts
75
+ * like `./postgres/init-databases.sh:/docker-entrypoint-initdb.d/...`
76
+ * will fail because the file doesn't exist on the remote server.
77
+ *
78
+ * Named volumes (e.g. `redis-data:/data`) and absolute system paths
79
+ * (e.g. `/var/run/docker.sock`) are kept intact.
80
+ */
81
+ function stripLocalBindMounts(composeYaml) {
82
+ const doc = (0, yaml.parse)(composeYaml);
83
+ if (!doc?.services) return composeYaml;
84
+ for (const [, service] of Object.entries(doc.services)) {
85
+ if (!service.volumes || !Array.isArray(service.volumes)) continue;
86
+ service.volumes = service.volumes.filter((vol) => {
87
+ if (typeof vol === "string") return !vol.startsWith("./");
88
+ if (typeof vol === "object" && vol !== null) {
89
+ const src = vol.source;
90
+ return !(typeof src === "string" && src.startsWith("./"));
91
+ }
92
+ return true;
93
+ });
94
+ if (service.volumes.length === 0) delete service.volumes;
95
+ }
96
+ return (0, yaml.stringify)(doc, { lineWidth: 200 });
97
+ }
98
+ /**
99
+ * Strips security hardening options (`cap_drop`, `cap_add`, `security_opt`)
100
+ * from all services in a Docker Compose YAML string.
101
+ *
102
+ * Many Docker images (PostgreSQL, Redis, MinIO, etc.) start as root and
103
+ * use `gosu`/`su-exec` to drop privileges to a non-root user. This
104
+ * requires `SETUID`, `SETGID`, and other capabilities. The hardened
105
+ * compose output adds `cap_drop: ALL` + `no-new-privileges`, which
106
+ * prevents this user switch and causes containers to crash with:
107
+ * "failed switching to 'postgres': operation not permitted"
108
+ *
109
+ * PaaS platforms (Dokploy, Coolify) manage their own container security,
110
+ * so these options are unnecessary and should be removed.
111
+ */
112
+ function stripSecurityHardening(composeYaml) {
113
+ const doc = (0, yaml.parse)(composeYaml);
114
+ if (!doc?.services) return composeYaml;
115
+ for (const [, service] of Object.entries(doc.services)) {
116
+ delete service.cap_drop;
117
+ delete service.cap_add;
118
+ delete service.security_opt;
119
+ }
120
+ return (0, yaml.stringify)(doc, { lineWidth: 200 });
121
+ }
122
+ /**
123
+ * Applies all PaaS-specific sanitisations to a Docker Compose YAML string:
124
+ * 1. Strips host port bindings (avoids "port already allocated" errors)
125
+ * 2. Strips local bind mounts (files don't exist on remote PaaS servers)
126
+ * 3. Strips security hardening (cap_drop/security_opt break user switching)
127
+ */
128
+ function sanitizeComposeForPaas(composeYaml) {
129
+ return stripSecurityHardening(stripLocalBindMounts(stripHostPorts(composeYaml)));
130
+ }
131
+ //#endregion
132
+ exports.sanitizeComposeForPaas = sanitizeComposeForPaas;
133
+ exports.stripHostPorts = stripHostPorts;
134
+ exports.stripLocalBindMounts = stripLocalBindMounts;
135
+ exports.stripSecurityHardening = stripSecurityHardening;
136
+
137
+ //# sourceMappingURL=strip-host-ports.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip-host-ports.cjs","names":[],"sources":["../../src/deployers/strip-host-ports.ts"],"sourcesContent":["/**\n * Strips host port bindings from a Docker Compose YAML string.\n *\n * When deploying to a PaaS like Dokploy or Coolify, services don't need\n * host port mappings because routing is handled by the platform's built-in\n * reverse proxy (Traefik). Binding to host ports causes \"port already\n * allocated\" errors when ports are in use by other services on the server.\n *\n * Transforms port mappings:\n * \"8080:8080\" → \"8080\" (container port only)\n * \"0.0.0.0:8080:80\" → \"80\" (container port only)\n * \"8080:80/tcp\" → \"80/tcp\" (preserves protocol)\n * { published: 8080, target: 80 } → { target: 80 }\n *\n * The `expose` field is left untouched since it only defines internal ports.\n */\n\nimport { parse, stringify } from \"yaml\";\n\ninterface ComposeService {\n\tports?: (string | PortObject)[];\n\tvolumes?: (string | Record<string, unknown>)[];\n\t[key: string]: unknown;\n}\n\ninterface PortObject {\n\ttarget: number;\n\tpublished?: number | string;\n\thost_ip?: string;\n\tprotocol?: string;\n\t[key: string]: unknown;\n}\n\ninterface ComposeFile {\n\tservices?: Record<string, ComposeService>;\n\t[key: string]: unknown;\n}\n\n/**\n * Strips host port bindings from a Docker Compose YAML string,\n * keeping only the container (target) ports.\n *\n * Returns the modified YAML string.\n */\nexport function stripHostPorts(composeYaml: string): string {\n\tconst doc = parse(composeYaml) as ComposeFile;\n\n\tif (!doc?.services) return composeYaml;\n\n\tfor (const [, service] of Object.entries(doc.services)) {\n\t\tif (!service.ports || !Array.isArray(service.ports)) continue;\n\n\t\tservice.ports = service.ports.map((port) => {\n\t\t\tif (typeof port === \"string\") {\n\t\t\t\treturn stripStringPort(port);\n\t\t\t}\n\t\t\tif (typeof port === \"object\" && port !== null) {\n\t\t\t\treturn stripObjectPort(port);\n\t\t\t}\n\t\t\treturn port;\n\t\t});\n\t}\n\n\treturn stringify(doc, { lineWidth: 200 });\n}\n\n/**\n * Strips host portion from a string port mapping.\n *\n * \"8080:80\" → \"80\"\n * \"0.0.0.0:8080:80\" → \"80\"\n * \"80\" → \"80\" (no change)\n * \"80/tcp\" → \"80/tcp\"\n * \"8080:80/tcp\" → \"80/tcp\"\n */\nfunction stripStringPort(port: string): string {\n\t// Split off protocol if present (e.g. \"/tcp\", \"/udp\")\n\tconst protocolIdx = port.lastIndexOf(\"/\");\n\tlet protocol = \"\";\n\tlet portSpec = port;\n\n\tif (protocolIdx > 0) {\n\t\tprotocol = port.substring(protocolIdx); // includes the \"/\"\n\t\tportSpec = port.substring(0, protocolIdx);\n\t}\n\n\t// Split by \":\" — formats are:\n\t// \"80\" → container only\n\t// \"8080:80\" → host:container\n\t// \"0.0.0.0:8080:80\" → ip:host:container\n\tconst parts = portSpec.split(\":\");\n\n\t// Take the last part as the container port\n\tconst containerPort = parts[parts.length - 1];\n\n\treturn `${containerPort}${protocol}`;\n}\n\n/**\n * Strips host/published from an object port mapping.\n *\n * { target: 80, published: 8080 } → { target: 80 }\n */\nfunction stripObjectPort(port: PortObject): PortObject {\n\tconst { published: _, host_ip: __, ...rest } = port;\n\treturn rest;\n}\n\n/**\n * Strips local bind mounts (paths starting with `./`) from a Docker\n * Compose YAML string.\n *\n * When deploying to a PaaS like Dokploy or Coolify as a raw compose\n * stack, there is no cloned repository — so host-relative volume mounts\n * like `./postgres/init-databases.sh:/docker-entrypoint-initdb.d/...`\n * will fail because the file doesn't exist on the remote server.\n *\n * Named volumes (e.g. `redis-data:/data`) and absolute system paths\n * (e.g. `/var/run/docker.sock`) are kept intact.\n */\nexport function stripLocalBindMounts(composeYaml: string): string {\n\tconst doc = parse(composeYaml) as ComposeFile;\n\n\tif (!doc?.services) return composeYaml;\n\n\tfor (const [, service] of Object.entries(doc.services)) {\n\t\tif (!service.volumes || !Array.isArray(service.volumes)) continue;\n\n\t\tservice.volumes = (service.volumes as (string | Record<string, unknown>)[]).filter((vol) => {\n\t\t\tif (typeof vol === \"string\") {\n\t\t\t\t// Bind mounts starting with \"./\" reference local files\n\t\t\t\treturn !vol.startsWith(\"./\");\n\t\t\t}\n\t\t\t// Object-form: { type: \"bind\", source: \"./...\" }\n\t\t\tif (typeof vol === \"object\" && vol !== null) {\n\t\t\t\tconst src = (vol as Record<string, unknown>).source;\n\t\t\t\treturn !(typeof src === \"string\" && src.startsWith(\"./\"));\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\n\t\t// Remove empty volumes array to keep YAML clean\n\t\tif (service.volumes.length === 0) {\n\t\t\tdelete service.volumes;\n\t\t}\n\t}\n\n\treturn stringify(doc, { lineWidth: 200 });\n}\n\n/**\n * Strips security hardening options (`cap_drop`, `cap_add`, `security_opt`)\n * from all services in a Docker Compose YAML string.\n *\n * Many Docker images (PostgreSQL, Redis, MinIO, etc.) start as root and\n * use `gosu`/`su-exec` to drop privileges to a non-root user. This\n * requires `SETUID`, `SETGID`, and other capabilities. The hardened\n * compose output adds `cap_drop: ALL` + `no-new-privileges`, which\n * prevents this user switch and causes containers to crash with:\n * \"failed switching to 'postgres': operation not permitted\"\n *\n * PaaS platforms (Dokploy, Coolify) manage their own container security,\n * so these options are unnecessary and should be removed.\n */\nexport function stripSecurityHardening(composeYaml: string): string {\n\tconst doc = parse(composeYaml) as ComposeFile;\n\n\tif (!doc?.services) return composeYaml;\n\n\tfor (const [, service] of Object.entries(doc.services)) {\n\t\tdelete service.cap_drop;\n\t\tdelete service.cap_add;\n\t\tdelete service.security_opt;\n\t}\n\n\treturn stringify(doc, { lineWidth: 200 });\n}\n\n/**\n * Applies all PaaS-specific sanitisations to a Docker Compose YAML string:\n * 1. Strips host port bindings (avoids \"port already allocated\" errors)\n * 2. Strips local bind mounts (files don't exist on remote PaaS servers)\n * 3. Strips security hardening (cap_drop/security_opt break user switching)\n */\nexport function sanitizeComposeForPaas(composeYaml: string): string {\n\treturn stripSecurityHardening(stripLocalBindMounts(stripHostPorts(composeYaml)));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,SAAgB,eAAe,aAA6B;CAC3D,MAAM,OAAA,GAAA,KAAA,OAAY,YAAY;AAE9B,KAAI,CAAC,KAAK,SAAU,QAAO;AAE3B,MAAK,MAAM,GAAG,YAAY,OAAO,QAAQ,IAAI,SAAS,EAAE;AACvD,MAAI,CAAC,QAAQ,SAAS,CAAC,MAAM,QAAQ,QAAQ,MAAM,CAAE;AAErD,UAAQ,QAAQ,QAAQ,MAAM,KAAK,SAAS;AAC3C,OAAI,OAAO,SAAS,SACnB,QAAO,gBAAgB,KAAK;AAE7B,OAAI,OAAO,SAAS,YAAY,SAAS,KACxC,QAAO,gBAAgB,KAAK;AAE7B,UAAO;IACN;;AAGH,SAAA,GAAA,KAAA,WAAiB,KAAK,EAAE,WAAW,KAAK,CAAC;;;;;;;;;;;AAY1C,SAAS,gBAAgB,MAAsB;CAE9C,MAAM,cAAc,KAAK,YAAY,IAAI;CACzC,IAAI,WAAW;CACf,IAAI,WAAW;AAEf,KAAI,cAAc,GAAG;AACpB,aAAW,KAAK,UAAU,YAAY;AACtC,aAAW,KAAK,UAAU,GAAG,YAAY;;CAO1C,MAAM,QAAQ,SAAS,MAAM,IAAI;AAKjC,QAAO,GAFe,MAAM,MAAM,SAAS,KAEjB;;;;;;;AAQ3B,SAAS,gBAAgB,MAA8B;CACtD,MAAM,EAAE,WAAW,GAAG,SAAS,IAAI,GAAG,SAAS;AAC/C,QAAO;;;;;;;;;;;;;;AAeR,SAAgB,qBAAqB,aAA6B;CACjE,MAAM,OAAA,GAAA,KAAA,OAAY,YAAY;AAE9B,KAAI,CAAC,KAAK,SAAU,QAAO;AAE3B,MAAK,MAAM,GAAG,YAAY,OAAO,QAAQ,IAAI,SAAS,EAAE;AACvD,MAAI,CAAC,QAAQ,WAAW,CAAC,MAAM,QAAQ,QAAQ,QAAQ,CAAE;AAEzD,UAAQ,UAAW,QAAQ,QAAiD,QAAQ,QAAQ;AAC3F,OAAI,OAAO,QAAQ,SAElB,QAAO,CAAC,IAAI,WAAW,KAAK;AAG7B,OAAI,OAAO,QAAQ,YAAY,QAAQ,MAAM;IAC5C,MAAM,MAAO,IAAgC;AAC7C,WAAO,EAAE,OAAO,QAAQ,YAAY,IAAI,WAAW,KAAK;;AAEzD,UAAO;IACN;AAGF,MAAI,QAAQ,QAAQ,WAAW,EAC9B,QAAO,QAAQ;;AAIjB,SAAA,GAAA,KAAA,WAAiB,KAAK,EAAE,WAAW,KAAK,CAAC;;;;;;;;;;;;;;;;AAiB1C,SAAgB,uBAAuB,aAA6B;CACnE,MAAM,OAAA,GAAA,KAAA,OAAY,YAAY;AAE9B,KAAI,CAAC,KAAK,SAAU,QAAO;AAE3B,MAAK,MAAM,GAAG,YAAY,OAAO,QAAQ,IAAI,SAAS,EAAE;AACvD,SAAO,QAAQ;AACf,SAAO,QAAQ;AACf,SAAO,QAAQ;;AAGhB,SAAA,GAAA,KAAA,WAAiB,KAAK,EAAE,WAAW,KAAK,CAAC;;;;;;;;AAS1C,SAAgB,uBAAuB,aAA6B;AACnE,QAAO,uBAAuB,qBAAqB,eAAe,YAAY,CAAC,CAAC"}
@@ -0,0 +1,62 @@
1
+ //#region src/deployers/strip-host-ports.d.ts
2
+ /**
3
+ * Strips host port bindings from a Docker Compose YAML string.
4
+ *
5
+ * When deploying to a PaaS like Dokploy or Coolify, services don't need
6
+ * host port mappings because routing is handled by the platform's built-in
7
+ * reverse proxy (Traefik). Binding to host ports causes "port already
8
+ * allocated" errors when ports are in use by other services on the server.
9
+ *
10
+ * Transforms port mappings:
11
+ * "8080:8080" → "8080" (container port only)
12
+ * "0.0.0.0:8080:80" → "80" (container port only)
13
+ * "8080:80/tcp" → "80/tcp" (preserves protocol)
14
+ * { published: 8080, target: 80 } → { target: 80 }
15
+ *
16
+ * The `expose` field is left untouched since it only defines internal ports.
17
+ */
18
+ /**
19
+ * Strips host port bindings from a Docker Compose YAML string,
20
+ * keeping only the container (target) ports.
21
+ *
22
+ * Returns the modified YAML string.
23
+ */
24
+ declare function stripHostPorts(composeYaml: string): string;
25
+ /**
26
+ * Strips local bind mounts (paths starting with `./`) from a Docker
27
+ * Compose YAML string.
28
+ *
29
+ * When deploying to a PaaS like Dokploy or Coolify as a raw compose
30
+ * stack, there is no cloned repository — so host-relative volume mounts
31
+ * like `./postgres/init-databases.sh:/docker-entrypoint-initdb.d/...`
32
+ * will fail because the file doesn't exist on the remote server.
33
+ *
34
+ * Named volumes (e.g. `redis-data:/data`) and absolute system paths
35
+ * (e.g. `/var/run/docker.sock`) are kept intact.
36
+ */
37
+ declare function stripLocalBindMounts(composeYaml: string): string;
38
+ /**
39
+ * Strips security hardening options (`cap_drop`, `cap_add`, `security_opt`)
40
+ * from all services in a Docker Compose YAML string.
41
+ *
42
+ * Many Docker images (PostgreSQL, Redis, MinIO, etc.) start as root and
43
+ * use `gosu`/`su-exec` to drop privileges to a non-root user. This
44
+ * requires `SETUID`, `SETGID`, and other capabilities. The hardened
45
+ * compose output adds `cap_drop: ALL` + `no-new-privileges`, which
46
+ * prevents this user switch and causes containers to crash with:
47
+ * "failed switching to 'postgres': operation not permitted"
48
+ *
49
+ * PaaS platforms (Dokploy, Coolify) manage their own container security,
50
+ * so these options are unnecessary and should be removed.
51
+ */
52
+ declare function stripSecurityHardening(composeYaml: string): string;
53
+ /**
54
+ * Applies all PaaS-specific sanitisations to a Docker Compose YAML string:
55
+ * 1. Strips host port bindings (avoids "port already allocated" errors)
56
+ * 2. Strips local bind mounts (files don't exist on remote PaaS servers)
57
+ * 3. Strips security hardening (cap_drop/security_opt break user switching)
58
+ */
59
+ declare function sanitizeComposeForPaas(composeYaml: string): string;
60
+ //#endregion
61
+ export { sanitizeComposeForPaas, stripHostPorts, stripLocalBindMounts, stripSecurityHardening };
62
+ //# sourceMappingURL=strip-host-ports.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip-host-ports.d.cts","names":[],"sources":["../../src/deployers/strip-host-ports.ts"],"mappings":";;AA4CA;;;;;AA4EA;;;;;AA4CA;;;;;AAoBA;;;;;;AAAA,iBA5IgB,cAAA,CAAe,WAAA;;;;;;;;;;;;;iBA4Ef,oBAAA,CAAqB,WAAA;;;;;;;;;;;;;;;iBA4CrB,sBAAA,CAAuB,WAAA;;;;;;;iBAoBvB,sBAAA,CAAuB,WAAA"}
@@ -0,0 +1,62 @@
1
+ //#region src/deployers/strip-host-ports.d.ts
2
+ /**
3
+ * Strips host port bindings from a Docker Compose YAML string.
4
+ *
5
+ * When deploying to a PaaS like Dokploy or Coolify, services don't need
6
+ * host port mappings because routing is handled by the platform's built-in
7
+ * reverse proxy (Traefik). Binding to host ports causes "port already
8
+ * allocated" errors when ports are in use by other services on the server.
9
+ *
10
+ * Transforms port mappings:
11
+ * "8080:8080" → "8080" (container port only)
12
+ * "0.0.0.0:8080:80" → "80" (container port only)
13
+ * "8080:80/tcp" → "80/tcp" (preserves protocol)
14
+ * { published: 8080, target: 80 } → { target: 80 }
15
+ *
16
+ * The `expose` field is left untouched since it only defines internal ports.
17
+ */
18
+ /**
19
+ * Strips host port bindings from a Docker Compose YAML string,
20
+ * keeping only the container (target) ports.
21
+ *
22
+ * Returns the modified YAML string.
23
+ */
24
+ declare function stripHostPorts(composeYaml: string): string;
25
+ /**
26
+ * Strips local bind mounts (paths starting with `./`) from a Docker
27
+ * Compose YAML string.
28
+ *
29
+ * When deploying to a PaaS like Dokploy or Coolify as a raw compose
30
+ * stack, there is no cloned repository — so host-relative volume mounts
31
+ * like `./postgres/init-databases.sh:/docker-entrypoint-initdb.d/...`
32
+ * will fail because the file doesn't exist on the remote server.
33
+ *
34
+ * Named volumes (e.g. `redis-data:/data`) and absolute system paths
35
+ * (e.g. `/var/run/docker.sock`) are kept intact.
36
+ */
37
+ declare function stripLocalBindMounts(composeYaml: string): string;
38
+ /**
39
+ * Strips security hardening options (`cap_drop`, `cap_add`, `security_opt`)
40
+ * from all services in a Docker Compose YAML string.
41
+ *
42
+ * Many Docker images (PostgreSQL, Redis, MinIO, etc.) start as root and
43
+ * use `gosu`/`su-exec` to drop privileges to a non-root user. This
44
+ * requires `SETUID`, `SETGID`, and other capabilities. The hardened
45
+ * compose output adds `cap_drop: ALL` + `no-new-privileges`, which
46
+ * prevents this user switch and causes containers to crash with:
47
+ * "failed switching to 'postgres': operation not permitted"
48
+ *
49
+ * PaaS platforms (Dokploy, Coolify) manage their own container security,
50
+ * so these options are unnecessary and should be removed.
51
+ */
52
+ declare function stripSecurityHardening(composeYaml: string): string;
53
+ /**
54
+ * Applies all PaaS-specific sanitisations to a Docker Compose YAML string:
55
+ * 1. Strips host port bindings (avoids "port already allocated" errors)
56
+ * 2. Strips local bind mounts (files don't exist on remote PaaS servers)
57
+ * 3. Strips security hardening (cap_drop/security_opt break user switching)
58
+ */
59
+ declare function sanitizeComposeForPaas(composeYaml: string): string;
60
+ //#endregion
61
+ export { sanitizeComposeForPaas, stripHostPorts, stripLocalBindMounts, stripSecurityHardening };
62
+ //# sourceMappingURL=strip-host-ports.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip-host-ports.d.mts","names":[],"sources":["../../src/deployers/strip-host-ports.ts"],"mappings":";;AA4CA;;;;;AA4EA;;;;;AA4CA;;;;;AAoBA;;;;;;AAAA,iBA5IgB,cAAA,CAAe,WAAA;;;;;;;;;;;;;iBA4Ef,oBAAA,CAAqB,WAAA;;;;;;;;;;;;;;;iBA4CrB,sBAAA,CAAuB,WAAA;;;;;;;iBAoBvB,sBAAA,CAAuB,WAAA"}
@@ -0,0 +1,132 @@
1
+ import { parse, stringify } from "yaml";
2
+ //#region src/deployers/strip-host-ports.ts
3
+ /**
4
+ * Strips host port bindings from a Docker Compose YAML string.
5
+ *
6
+ * When deploying to a PaaS like Dokploy or Coolify, services don't need
7
+ * host port mappings because routing is handled by the platform's built-in
8
+ * reverse proxy (Traefik). Binding to host ports causes "port already
9
+ * allocated" errors when ports are in use by other services on the server.
10
+ *
11
+ * Transforms port mappings:
12
+ * "8080:8080" → "8080" (container port only)
13
+ * "0.0.0.0:8080:80" → "80" (container port only)
14
+ * "8080:80/tcp" → "80/tcp" (preserves protocol)
15
+ * { published: 8080, target: 80 } → { target: 80 }
16
+ *
17
+ * The `expose` field is left untouched since it only defines internal ports.
18
+ */
19
+ /**
20
+ * Strips host port bindings from a Docker Compose YAML string,
21
+ * keeping only the container (target) ports.
22
+ *
23
+ * Returns the modified YAML string.
24
+ */
25
+ function stripHostPorts(composeYaml) {
26
+ const doc = parse(composeYaml);
27
+ if (!doc?.services) return composeYaml;
28
+ for (const [, service] of Object.entries(doc.services)) {
29
+ if (!service.ports || !Array.isArray(service.ports)) continue;
30
+ service.ports = service.ports.map((port) => {
31
+ if (typeof port === "string") return stripStringPort(port);
32
+ if (typeof port === "object" && port !== null) return stripObjectPort(port);
33
+ return port;
34
+ });
35
+ }
36
+ return stringify(doc, { lineWidth: 200 });
37
+ }
38
+ /**
39
+ * Strips host portion from a string port mapping.
40
+ *
41
+ * "8080:80" → "80"
42
+ * "0.0.0.0:8080:80" → "80"
43
+ * "80" → "80" (no change)
44
+ * "80/tcp" → "80/tcp"
45
+ * "8080:80/tcp" → "80/tcp"
46
+ */
47
+ function stripStringPort(port) {
48
+ const protocolIdx = port.lastIndexOf("/");
49
+ let protocol = "";
50
+ let portSpec = port;
51
+ if (protocolIdx > 0) {
52
+ protocol = port.substring(protocolIdx);
53
+ portSpec = port.substring(0, protocolIdx);
54
+ }
55
+ const parts = portSpec.split(":");
56
+ return `${parts[parts.length - 1]}${protocol}`;
57
+ }
58
+ /**
59
+ * Strips host/published from an object port mapping.
60
+ *
61
+ * { target: 80, published: 8080 } → { target: 80 }
62
+ */
63
+ function stripObjectPort(port) {
64
+ const { published: _, host_ip: __, ...rest } = port;
65
+ return rest;
66
+ }
67
+ /**
68
+ * Strips local bind mounts (paths starting with `./`) from a Docker
69
+ * Compose YAML string.
70
+ *
71
+ * When deploying to a PaaS like Dokploy or Coolify as a raw compose
72
+ * stack, there is no cloned repository — so host-relative volume mounts
73
+ * like `./postgres/init-databases.sh:/docker-entrypoint-initdb.d/...`
74
+ * will fail because the file doesn't exist on the remote server.
75
+ *
76
+ * Named volumes (e.g. `redis-data:/data`) and absolute system paths
77
+ * (e.g. `/var/run/docker.sock`) are kept intact.
78
+ */
79
+ function stripLocalBindMounts(composeYaml) {
80
+ const doc = parse(composeYaml);
81
+ if (!doc?.services) return composeYaml;
82
+ for (const [, service] of Object.entries(doc.services)) {
83
+ if (!service.volumes || !Array.isArray(service.volumes)) continue;
84
+ service.volumes = service.volumes.filter((vol) => {
85
+ if (typeof vol === "string") return !vol.startsWith("./");
86
+ if (typeof vol === "object" && vol !== null) {
87
+ const src = vol.source;
88
+ return !(typeof src === "string" && src.startsWith("./"));
89
+ }
90
+ return true;
91
+ });
92
+ if (service.volumes.length === 0) delete service.volumes;
93
+ }
94
+ return stringify(doc, { lineWidth: 200 });
95
+ }
96
+ /**
97
+ * Strips security hardening options (`cap_drop`, `cap_add`, `security_opt`)
98
+ * from all services in a Docker Compose YAML string.
99
+ *
100
+ * Many Docker images (PostgreSQL, Redis, MinIO, etc.) start as root and
101
+ * use `gosu`/`su-exec` to drop privileges to a non-root user. This
102
+ * requires `SETUID`, `SETGID`, and other capabilities. The hardened
103
+ * compose output adds `cap_drop: ALL` + `no-new-privileges`, which
104
+ * prevents this user switch and causes containers to crash with:
105
+ * "failed switching to 'postgres': operation not permitted"
106
+ *
107
+ * PaaS platforms (Dokploy, Coolify) manage their own container security,
108
+ * so these options are unnecessary and should be removed.
109
+ */
110
+ function stripSecurityHardening(composeYaml) {
111
+ const doc = parse(composeYaml);
112
+ if (!doc?.services) return composeYaml;
113
+ for (const [, service] of Object.entries(doc.services)) {
114
+ delete service.cap_drop;
115
+ delete service.cap_add;
116
+ delete service.security_opt;
117
+ }
118
+ return stringify(doc, { lineWidth: 200 });
119
+ }
120
+ /**
121
+ * Applies all PaaS-specific sanitisations to a Docker Compose YAML string:
122
+ * 1. Strips host port bindings (avoids "port already allocated" errors)
123
+ * 2. Strips local bind mounts (files don't exist on remote PaaS servers)
124
+ * 3. Strips security hardening (cap_drop/security_opt break user switching)
125
+ */
126
+ function sanitizeComposeForPaas(composeYaml) {
127
+ return stripSecurityHardening(stripLocalBindMounts(stripHostPorts(composeYaml)));
128
+ }
129
+ //#endregion
130
+ export { sanitizeComposeForPaas, stripHostPorts, stripLocalBindMounts, stripSecurityHardening };
131
+
132
+ //# sourceMappingURL=strip-host-ports.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip-host-ports.mjs","names":[],"sources":["../../src/deployers/strip-host-ports.ts"],"sourcesContent":["/**\n * Strips host port bindings from a Docker Compose YAML string.\n *\n * When deploying to a PaaS like Dokploy or Coolify, services don't need\n * host port mappings because routing is handled by the platform's built-in\n * reverse proxy (Traefik). Binding to host ports causes \"port already\n * allocated\" errors when ports are in use by other services on the server.\n *\n * Transforms port mappings:\n * \"8080:8080\" → \"8080\" (container port only)\n * \"0.0.0.0:8080:80\" → \"80\" (container port only)\n * \"8080:80/tcp\" → \"80/tcp\" (preserves protocol)\n * { published: 8080, target: 80 } → { target: 80 }\n *\n * The `expose` field is left untouched since it only defines internal ports.\n */\n\nimport { parse, stringify } from \"yaml\";\n\ninterface ComposeService {\n\tports?: (string | PortObject)[];\n\tvolumes?: (string | Record<string, unknown>)[];\n\t[key: string]: unknown;\n}\n\ninterface PortObject {\n\ttarget: number;\n\tpublished?: number | string;\n\thost_ip?: string;\n\tprotocol?: string;\n\t[key: string]: unknown;\n}\n\ninterface ComposeFile {\n\tservices?: Record<string, ComposeService>;\n\t[key: string]: unknown;\n}\n\n/**\n * Strips host port bindings from a Docker Compose YAML string,\n * keeping only the container (target) ports.\n *\n * Returns the modified YAML string.\n */\nexport function stripHostPorts(composeYaml: string): string {\n\tconst doc = parse(composeYaml) as ComposeFile;\n\n\tif (!doc?.services) return composeYaml;\n\n\tfor (const [, service] of Object.entries(doc.services)) {\n\t\tif (!service.ports || !Array.isArray(service.ports)) continue;\n\n\t\tservice.ports = service.ports.map((port) => {\n\t\t\tif (typeof port === \"string\") {\n\t\t\t\treturn stripStringPort(port);\n\t\t\t}\n\t\t\tif (typeof port === \"object\" && port !== null) {\n\t\t\t\treturn stripObjectPort(port);\n\t\t\t}\n\t\t\treturn port;\n\t\t});\n\t}\n\n\treturn stringify(doc, { lineWidth: 200 });\n}\n\n/**\n * Strips host portion from a string port mapping.\n *\n * \"8080:80\" → \"80\"\n * \"0.0.0.0:8080:80\" → \"80\"\n * \"80\" → \"80\" (no change)\n * \"80/tcp\" → \"80/tcp\"\n * \"8080:80/tcp\" → \"80/tcp\"\n */\nfunction stripStringPort(port: string): string {\n\t// Split off protocol if present (e.g. \"/tcp\", \"/udp\")\n\tconst protocolIdx = port.lastIndexOf(\"/\");\n\tlet protocol = \"\";\n\tlet portSpec = port;\n\n\tif (protocolIdx > 0) {\n\t\tprotocol = port.substring(protocolIdx); // includes the \"/\"\n\t\tportSpec = port.substring(0, protocolIdx);\n\t}\n\n\t// Split by \":\" — formats are:\n\t// \"80\" → container only\n\t// \"8080:80\" → host:container\n\t// \"0.0.0.0:8080:80\" → ip:host:container\n\tconst parts = portSpec.split(\":\");\n\n\t// Take the last part as the container port\n\tconst containerPort = parts[parts.length - 1];\n\n\treturn `${containerPort}${protocol}`;\n}\n\n/**\n * Strips host/published from an object port mapping.\n *\n * { target: 80, published: 8080 } → { target: 80 }\n */\nfunction stripObjectPort(port: PortObject): PortObject {\n\tconst { published: _, host_ip: __, ...rest } = port;\n\treturn rest;\n}\n\n/**\n * Strips local bind mounts (paths starting with `./`) from a Docker\n * Compose YAML string.\n *\n * When deploying to a PaaS like Dokploy or Coolify as a raw compose\n * stack, there is no cloned repository — so host-relative volume mounts\n * like `./postgres/init-databases.sh:/docker-entrypoint-initdb.d/...`\n * will fail because the file doesn't exist on the remote server.\n *\n * Named volumes (e.g. `redis-data:/data`) and absolute system paths\n * (e.g. `/var/run/docker.sock`) are kept intact.\n */\nexport function stripLocalBindMounts(composeYaml: string): string {\n\tconst doc = parse(composeYaml) as ComposeFile;\n\n\tif (!doc?.services) return composeYaml;\n\n\tfor (const [, service] of Object.entries(doc.services)) {\n\t\tif (!service.volumes || !Array.isArray(service.volumes)) continue;\n\n\t\tservice.volumes = (service.volumes as (string | Record<string, unknown>)[]).filter((vol) => {\n\t\t\tif (typeof vol === \"string\") {\n\t\t\t\t// Bind mounts starting with \"./\" reference local files\n\t\t\t\treturn !vol.startsWith(\"./\");\n\t\t\t}\n\t\t\t// Object-form: { type: \"bind\", source: \"./...\" }\n\t\t\tif (typeof vol === \"object\" && vol !== null) {\n\t\t\t\tconst src = (vol as Record<string, unknown>).source;\n\t\t\t\treturn !(typeof src === \"string\" && src.startsWith(\"./\"));\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\n\t\t// Remove empty volumes array to keep YAML clean\n\t\tif (service.volumes.length === 0) {\n\t\t\tdelete service.volumes;\n\t\t}\n\t}\n\n\treturn stringify(doc, { lineWidth: 200 });\n}\n\n/**\n * Strips security hardening options (`cap_drop`, `cap_add`, `security_opt`)\n * from all services in a Docker Compose YAML string.\n *\n * Many Docker images (PostgreSQL, Redis, MinIO, etc.) start as root and\n * use `gosu`/`su-exec` to drop privileges to a non-root user. This\n * requires `SETUID`, `SETGID`, and other capabilities. The hardened\n * compose output adds `cap_drop: ALL` + `no-new-privileges`, which\n * prevents this user switch and causes containers to crash with:\n * \"failed switching to 'postgres': operation not permitted\"\n *\n * PaaS platforms (Dokploy, Coolify) manage their own container security,\n * so these options are unnecessary and should be removed.\n */\nexport function stripSecurityHardening(composeYaml: string): string {\n\tconst doc = parse(composeYaml) as ComposeFile;\n\n\tif (!doc?.services) return composeYaml;\n\n\tfor (const [, service] of Object.entries(doc.services)) {\n\t\tdelete service.cap_drop;\n\t\tdelete service.cap_add;\n\t\tdelete service.security_opt;\n\t}\n\n\treturn stringify(doc, { lineWidth: 200 });\n}\n\n/**\n * Applies all PaaS-specific sanitisations to a Docker Compose YAML string:\n * 1. Strips host port bindings (avoids \"port already allocated\" errors)\n * 2. Strips local bind mounts (files don't exist on remote PaaS servers)\n * 3. Strips security hardening (cap_drop/security_opt break user switching)\n */\nexport function sanitizeComposeForPaas(composeYaml: string): string {\n\treturn stripSecurityHardening(stripLocalBindMounts(stripHostPorts(composeYaml)));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA4CA,SAAgB,eAAe,aAA6B;CAC3D,MAAM,MAAM,MAAM,YAAY;AAE9B,KAAI,CAAC,KAAK,SAAU,QAAO;AAE3B,MAAK,MAAM,GAAG,YAAY,OAAO,QAAQ,IAAI,SAAS,EAAE;AACvD,MAAI,CAAC,QAAQ,SAAS,CAAC,MAAM,QAAQ,QAAQ,MAAM,CAAE;AAErD,UAAQ,QAAQ,QAAQ,MAAM,KAAK,SAAS;AAC3C,OAAI,OAAO,SAAS,SACnB,QAAO,gBAAgB,KAAK;AAE7B,OAAI,OAAO,SAAS,YAAY,SAAS,KACxC,QAAO,gBAAgB,KAAK;AAE7B,UAAO;IACN;;AAGH,QAAO,UAAU,KAAK,EAAE,WAAW,KAAK,CAAC;;;;;;;;;;;AAY1C,SAAS,gBAAgB,MAAsB;CAE9C,MAAM,cAAc,KAAK,YAAY,IAAI;CACzC,IAAI,WAAW;CACf,IAAI,WAAW;AAEf,KAAI,cAAc,GAAG;AACpB,aAAW,KAAK,UAAU,YAAY;AACtC,aAAW,KAAK,UAAU,GAAG,YAAY;;CAO1C,MAAM,QAAQ,SAAS,MAAM,IAAI;AAKjC,QAAO,GAFe,MAAM,MAAM,SAAS,KAEjB;;;;;;;AAQ3B,SAAS,gBAAgB,MAA8B;CACtD,MAAM,EAAE,WAAW,GAAG,SAAS,IAAI,GAAG,SAAS;AAC/C,QAAO;;;;;;;;;;;;;;AAeR,SAAgB,qBAAqB,aAA6B;CACjE,MAAM,MAAM,MAAM,YAAY;AAE9B,KAAI,CAAC,KAAK,SAAU,QAAO;AAE3B,MAAK,MAAM,GAAG,YAAY,OAAO,QAAQ,IAAI,SAAS,EAAE;AACvD,MAAI,CAAC,QAAQ,WAAW,CAAC,MAAM,QAAQ,QAAQ,QAAQ,CAAE;AAEzD,UAAQ,UAAW,QAAQ,QAAiD,QAAQ,QAAQ;AAC3F,OAAI,OAAO,QAAQ,SAElB,QAAO,CAAC,IAAI,WAAW,KAAK;AAG7B,OAAI,OAAO,QAAQ,YAAY,QAAQ,MAAM;IAC5C,MAAM,MAAO,IAAgC;AAC7C,WAAO,EAAE,OAAO,QAAQ,YAAY,IAAI,WAAW,KAAK;;AAEzD,UAAO;IACN;AAGF,MAAI,QAAQ,QAAQ,WAAW,EAC9B,QAAO,QAAQ;;AAIjB,QAAO,UAAU,KAAK,EAAE,WAAW,KAAK,CAAC;;;;;;;;;;;;;;;;AAiB1C,SAAgB,uBAAuB,aAA6B;CACnE,MAAM,MAAM,MAAM,YAAY;AAE9B,KAAI,CAAC,KAAK,SAAU,QAAO;AAE3B,MAAK,MAAM,GAAG,YAAY,OAAO,QAAQ,IAAI,SAAS,EAAE;AACvD,SAAO,QAAQ;AACf,SAAO,QAAQ;AACf,SAAO,QAAQ;;AAGhB,QAAO,UAAU,KAAK,EAAE,WAAW,KAAK,CAAC;;;;;;;;AAS1C,SAAgB,uBAAuB,aAA6B;AACnE,QAAO,uBAAuB,qBAAqB,eAAe,YAAY,CAAC,CAAC"}
@@ -0,0 +1,88 @@
1
+ const require_vi_2VT5v0um = require("../vi.2VT5v0um-CRqXre87.cjs");
2
+ const require_deployers_strip_host_ports = require("./strip-host-ports.cjs");
3
+ //#region src/deployers/strip-host-ports.test.ts
4
+ require_vi_2VT5v0um.describe("stripHostPorts", () => {
5
+ require_vi_2VT5v0um.it("strips host port from short syntax (host:container)", () => {
6
+ const result = require_deployers_strip_host_ports.stripHostPorts(`
7
+ services:
8
+ web:
9
+ image: nginx
10
+ ports:
11
+ - "8080:80"
12
+ - "443:443"
13
+ `);
14
+ require_vi_2VT5v0um.globalExpect(result).toContain("\"80\"");
15
+ require_vi_2VT5v0um.globalExpect(result).toContain("\"443\"");
16
+ require_vi_2VT5v0um.globalExpect(result).not.toContain("8080");
17
+ });
18
+ require_vi_2VT5v0um.it("strips host IP and port from extended short syntax", () => {
19
+ const result = require_deployers_strip_host_ports.stripHostPorts(`
20
+ services:
21
+ web:
22
+ image: nginx
23
+ ports:
24
+ - "0.0.0.0:8080:80"
25
+ `);
26
+ require_vi_2VT5v0um.globalExpect(result).toContain("\"80\"");
27
+ require_vi_2VT5v0um.globalExpect(result).not.toContain("8080");
28
+ require_vi_2VT5v0um.globalExpect(result).not.toContain("0.0.0.0");
29
+ });
30
+ require_vi_2VT5v0um.it("preserves protocol suffix", () => {
31
+ const result = require_deployers_strip_host_ports.stripHostPorts(`
32
+ services:
33
+ web:
34
+ image: nginx
35
+ ports:
36
+ - "8080:80/tcp"
37
+ - "5353:53/udp"
38
+ `);
39
+ require_vi_2VT5v0um.globalExpect(result).toContain("80/tcp");
40
+ require_vi_2VT5v0um.globalExpect(result).toContain("53/udp");
41
+ require_vi_2VT5v0um.globalExpect(result).not.toContain("8080");
42
+ require_vi_2VT5v0um.globalExpect(result).not.toContain("5353");
43
+ });
44
+ require_vi_2VT5v0um.it("keeps container-only ports unchanged", () => {
45
+ require_vi_2VT5v0um.globalExpect(require_deployers_strip_host_ports.stripHostPorts(`
46
+ services:
47
+ web:
48
+ image: nginx
49
+ ports:
50
+ - "80"
51
+ `)).toContain("\"80\"");
52
+ });
53
+ require_vi_2VT5v0um.it("handles multiple services", () => {
54
+ const result = require_deployers_strip_host_ports.stripHostPorts(`
55
+ services:
56
+ web:
57
+ image: nginx
58
+ ports:
59
+ - "8080:80"
60
+ redis:
61
+ image: redis
62
+ ports:
63
+ - "6379:6379"
64
+ searxng:
65
+ image: searxng/searxng
66
+ ports:
67
+ - "8888:8080"
68
+ `);
69
+ require_vi_2VT5v0um.globalExpect(result).toContain("\"80\"");
70
+ require_vi_2VT5v0um.globalExpect(result).toContain("\"6379\"");
71
+ require_vi_2VT5v0um.globalExpect(result).toContain("\"8080\"");
72
+ require_vi_2VT5v0um.globalExpect(result).not.toContain("8888");
73
+ });
74
+ require_vi_2VT5v0um.it("returns original YAML if no services section", () => {
75
+ const yaml = `version: "3"`;
76
+ require_vi_2VT5v0um.globalExpect(require_deployers_strip_host_ports.stripHostPorts(yaml)).toBe(yaml);
77
+ });
78
+ require_vi_2VT5v0um.it("handles services with no ports", () => {
79
+ require_vi_2VT5v0um.globalExpect(require_deployers_strip_host_ports.stripHostPorts(`
80
+ services:
81
+ web:
82
+ image: nginx
83
+ `)).toContain("nginx");
84
+ });
85
+ });
86
+ //#endregion
87
+
88
+ //# sourceMappingURL=strip-host-ports.test.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip-host-ports.test.cjs","names":["describe","stripHostPorts"],"sources":["../../src/deployers/strip-host-ports.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { stripHostPorts } from \"./strip-host-ports.js\";\n\ndescribe(\"stripHostPorts\", () => {\n\tit(\"strips host port from short syntax (host:container)\", () => {\n\t\tconst yaml = `\nservices:\n web:\n image: nginx\n ports:\n - \"8080:80\"\n - \"443:443\"\n`;\n\t\tconst result = stripHostPorts(yaml);\n\t\texpect(result).toContain('\"80\"');\n\t\texpect(result).toContain('\"443\"');\n\t\texpect(result).not.toContain(\"8080\");\n\t});\n\n\tit(\"strips host IP and port from extended short syntax\", () => {\n\t\tconst yaml = `\nservices:\n web:\n image: nginx\n ports:\n - \"0.0.0.0:8080:80\"\n`;\n\t\tconst result = stripHostPorts(yaml);\n\t\texpect(result).toContain('\"80\"');\n\t\texpect(result).not.toContain(\"8080\");\n\t\texpect(result).not.toContain(\"0.0.0.0\");\n\t});\n\n\tit(\"preserves protocol suffix\", () => {\n\t\tconst yaml = `\nservices:\n web:\n image: nginx\n ports:\n - \"8080:80/tcp\"\n - \"5353:53/udp\"\n`;\n\t\tconst result = stripHostPorts(yaml);\n\t\texpect(result).toContain(\"80/tcp\");\n\t\texpect(result).toContain(\"53/udp\");\n\t\texpect(result).not.toContain(\"8080\");\n\t\texpect(result).not.toContain(\"5353\");\n\t});\n\n\tit(\"keeps container-only ports unchanged\", () => {\n\t\tconst yaml = `\nservices:\n web:\n image: nginx\n ports:\n - \"80\"\n`;\n\t\tconst result = stripHostPorts(yaml);\n\t\texpect(result).toContain('\"80\"');\n\t});\n\n\tit(\"handles multiple services\", () => {\n\t\tconst yaml = `\nservices:\n web:\n image: nginx\n ports:\n - \"8080:80\"\n redis:\n image: redis\n ports:\n - \"6379:6379\"\n searxng:\n image: searxng/searxng\n ports:\n - \"8888:8080\"\n`;\n\t\tconst result = stripHostPorts(yaml);\n\t\texpect(result).toContain('\"80\"');\n\t\texpect(result).toContain('\"6379\"');\n\t\texpect(result).toContain('\"8080\"');\n\t\texpect(result).not.toContain(\"8888\");\n\t});\n\n\tit(\"returns original YAML if no services section\", () => {\n\t\tconst yaml = `version: \"3\"`;\n\t\tconst result = stripHostPorts(yaml);\n\t\texpect(result).toBe(yaml);\n\t});\n\n\tit(\"handles services with no ports\", () => {\n\t\tconst yaml = `\nservices:\n web:\n image: nginx\n`;\n\t\tconst result = stripHostPorts(yaml);\n\t\texpect(result).toContain(\"nginx\");\n\t});\n});\n"],"mappings":";;;AAGAA,oBAAAA,SAAS,wBAAwB;AAChC,qBAAA,GAAG,6DAA6D;EAS/D,MAAM,SAASC,mCAAAA,eARF;;;;;;;EAQsB;AACnC,sBAAA,aAAO,OAAO,CAAC,UAAU,SAAO;AAChC,sBAAA,aAAO,OAAO,CAAC,UAAU,UAAQ;AACjC,sBAAA,aAAO,OAAO,CAAC,IAAI,UAAU,OAAO;GACnC;AAEF,qBAAA,GAAG,4DAA4D;EAQ9D,MAAM,SAASA,mCAAAA,eAPF;;;;;;EAOsB;AACnC,sBAAA,aAAO,OAAO,CAAC,UAAU,SAAO;AAChC,sBAAA,aAAO,OAAO,CAAC,IAAI,UAAU,OAAO;AACpC,sBAAA,aAAO,OAAO,CAAC,IAAI,UAAU,UAAU;GACtC;AAEF,qBAAA,GAAG,mCAAmC;EASrC,MAAM,SAASA,mCAAAA,eARF;;;;;;;EAQsB;AACnC,sBAAA,aAAO,OAAO,CAAC,UAAU,SAAS;AAClC,sBAAA,aAAO,OAAO,CAAC,UAAU,SAAS;AAClC,sBAAA,aAAO,OAAO,CAAC,IAAI,UAAU,OAAO;AACpC,sBAAA,aAAO,OAAO,CAAC,IAAI,UAAU,OAAO;GACnC;AAEF,qBAAA,GAAG,8CAA8C;AAShD,sBAAA,aADeA,mCAAAA,eAPF;;;;;;EAOsB,CACrB,CAAC,UAAU,SAAO;GAC/B;AAEF,qBAAA,GAAG,mCAAmC;EAgBrC,MAAM,SAASA,mCAAAA,eAfF;;;;;;;;;;;;;;EAesB;AACnC,sBAAA,aAAO,OAAO,CAAC,UAAU,SAAO;AAChC,sBAAA,aAAO,OAAO,CAAC,UAAU,WAAS;AAClC,sBAAA,aAAO,OAAO,CAAC,UAAU,WAAS;AAClC,sBAAA,aAAO,OAAO,CAAC,IAAI,UAAU,OAAO;GACnC;AAEF,qBAAA,GAAG,sDAAsD;EACxD,MAAM,OAAO;AAEb,sBAAA,aADeA,mCAAAA,eAAe,KAAK,CACrB,CAAC,KAAK,KAAK;GACxB;AAEF,qBAAA,GAAG,wCAAwC;AAO1C,sBAAA,aADeA,mCAAAA,eALF;;;;EAKsB,CACrB,CAAC,UAAU,QAAQ;GAChC;EACD"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1 @@
1
+ export { };