@cicore/cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/bin/ci.js +13 -0
  2. package/dist/commands/addon/api-actions.d.ts +45 -0
  3. package/dist/commands/addon/api-actions.d.ts.map +1 -0
  4. package/dist/commands/addon/api-actions.js +281 -0
  5. package/dist/commands/addon/api-actions.js.map +1 -0
  6. package/dist/commands/addon/build.d.ts +11 -0
  7. package/dist/commands/addon/build.d.ts.map +1 -0
  8. package/dist/commands/addon/build.js +182 -0
  9. package/dist/commands/addon/build.js.map +1 -0
  10. package/dist/commands/addon/create.d.ts +11 -0
  11. package/dist/commands/addon/create.d.ts.map +1 -0
  12. package/dist/commands/addon/create.js +1186 -0
  13. package/dist/commands/addon/create.js.map +1 -0
  14. package/dist/commands/addon/delete.d.ts +13 -0
  15. package/dist/commands/addon/delete.d.ts.map +1 -0
  16. package/dist/commands/addon/delete.js +83 -0
  17. package/dist/commands/addon/delete.js.map +1 -0
  18. package/dist/commands/addon/deploy.d.ts +27 -0
  19. package/dist/commands/addon/deploy.d.ts.map +1 -0
  20. package/dist/commands/addon/deploy.js +459 -0
  21. package/dist/commands/addon/deploy.js.map +1 -0
  22. package/dist/commands/addon/dev-deploy.d.ts +31 -0
  23. package/dist/commands/addon/dev-deploy.d.ts.map +1 -0
  24. package/dist/commands/addon/dev-deploy.js +128 -0
  25. package/dist/commands/addon/dev-deploy.js.map +1 -0
  26. package/dist/commands/addon/dev.d.ts +36 -0
  27. package/dist/commands/addon/dev.d.ts.map +1 -0
  28. package/dist/commands/addon/dev.js +323 -0
  29. package/dist/commands/addon/dev.js.map +1 -0
  30. package/dist/commands/addon/extract-classes.d.ts +23 -0
  31. package/dist/commands/addon/extract-classes.d.ts.map +1 -0
  32. package/dist/commands/addon/extract-classes.js +281 -0
  33. package/dist/commands/addon/extract-classes.js.map +1 -0
  34. package/dist/commands/addon/generate-safelist.d.ts +24 -0
  35. package/dist/commands/addon/generate-safelist.d.ts.map +1 -0
  36. package/dist/commands/addon/generate-safelist.js +276 -0
  37. package/dist/commands/addon/generate-safelist.js.map +1 -0
  38. package/dist/commands/addon/index.d.ts +19 -0
  39. package/dist/commands/addon/index.d.ts.map +1 -0
  40. package/dist/commands/addon/index.js +296 -0
  41. package/dist/commands/addon/index.js.map +1 -0
  42. package/dist/commands/addon/init-repo.d.ts +25 -0
  43. package/dist/commands/addon/init-repo.d.ts.map +1 -0
  44. package/dist/commands/addon/init-repo.js +171 -0
  45. package/dist/commands/addon/init-repo.js.map +1 -0
  46. package/dist/commands/addon/install.d.ts +23 -0
  47. package/dist/commands/addon/install.d.ts.map +1 -0
  48. package/dist/commands/addon/install.js +84 -0
  49. package/dist/commands/addon/install.js.map +1 -0
  50. package/dist/commands/addon/list.d.ts +10 -0
  51. package/dist/commands/addon/list.d.ts.map +1 -0
  52. package/dist/commands/addon/list.js +102 -0
  53. package/dist/commands/addon/list.js.map +1 -0
  54. package/dist/commands/addon/manifest-refresh.d.ts +17 -0
  55. package/dist/commands/addon/manifest-refresh.d.ts.map +1 -0
  56. package/dist/commands/addon/manifest-refresh.js +48 -0
  57. package/dist/commands/addon/manifest-refresh.js.map +1 -0
  58. package/dist/commands/addon/migrate.d.ts +40 -0
  59. package/dist/commands/addon/migrate.d.ts.map +1 -0
  60. package/dist/commands/addon/migrate.js +236 -0
  61. package/dist/commands/addon/migrate.js.map +1 -0
  62. package/dist/commands/addon/publish.d.ts +33 -0
  63. package/dist/commands/addon/publish.d.ts.map +1 -0
  64. package/dist/commands/addon/publish.js +236 -0
  65. package/dist/commands/addon/publish.js.map +1 -0
  66. package/dist/commands/addon/scaffold-quality.d.ts +21 -0
  67. package/dist/commands/addon/scaffold-quality.d.ts.map +1 -0
  68. package/dist/commands/addon/scaffold-quality.js +90 -0
  69. package/dist/commands/addon/scaffold-quality.js.map +1 -0
  70. package/dist/commands/addon/sign.d.ts +9 -0
  71. package/dist/commands/addon/sign.d.ts.map +1 -0
  72. package/dist/commands/addon/sign.js +83 -0
  73. package/dist/commands/addon/sign.js.map +1 -0
  74. package/dist/commands/addon/toggle.d.ts +6 -0
  75. package/dist/commands/addon/toggle.d.ts.map +1 -0
  76. package/dist/commands/addon/toggle.js +46 -0
  77. package/dist/commands/addon/toggle.js.map +1 -0
  78. package/dist/commands/agent/index.d.ts +34 -0
  79. package/dist/commands/agent/index.d.ts.map +1 -0
  80. package/dist/commands/agent/index.js +564 -0
  81. package/dist/commands/agent/index.js.map +1 -0
  82. package/dist/commands/brand/index.d.ts +54 -0
  83. package/dist/commands/brand/index.d.ts.map +1 -0
  84. package/dist/commands/brand/index.js +367 -0
  85. package/dist/commands/brand/index.js.map +1 -0
  86. package/dist/commands/build/index.d.ts +53 -0
  87. package/dist/commands/build/index.d.ts.map +1 -0
  88. package/dist/commands/build/index.js +726 -0
  89. package/dist/commands/build/index.js.map +1 -0
  90. package/dist/commands/cache/flush-local.d.ts +31 -0
  91. package/dist/commands/cache/flush-local.d.ts.map +1 -0
  92. package/dist/commands/cache/flush-local.js +161 -0
  93. package/dist/commands/cache/flush-local.js.map +1 -0
  94. package/dist/commands/cache/index.d.ts +14 -0
  95. package/dist/commands/cache/index.d.ts.map +1 -0
  96. package/dist/commands/cache/index.js +453 -0
  97. package/dist/commands/cache/index.js.map +1 -0
  98. package/dist/commands/check/index.d.ts +8 -0
  99. package/dist/commands/check/index.d.ts.map +1 -0
  100. package/dist/commands/check/index.js +1316 -0
  101. package/dist/commands/check/index.js.map +1 -0
  102. package/dist/commands/cloudflare/index.d.ts +8 -0
  103. package/dist/commands/cloudflare/index.d.ts.map +1 -0
  104. package/dist/commands/cloudflare/index.js +453 -0
  105. package/dist/commands/cloudflare/index.js.map +1 -0
  106. package/dist/commands/core/create.d.ts +12 -0
  107. package/dist/commands/core/create.d.ts.map +1 -0
  108. package/dist/commands/core/create.js +206 -0
  109. package/dist/commands/core/create.js.map +1 -0
  110. package/dist/commands/core/delete.d.ts +11 -0
  111. package/dist/commands/core/delete.d.ts.map +1 -0
  112. package/dist/commands/core/delete.js +64 -0
  113. package/dist/commands/core/delete.js.map +1 -0
  114. package/dist/commands/core/env.d.ts +12 -0
  115. package/dist/commands/core/env.d.ts.map +1 -0
  116. package/dist/commands/core/env.js +95 -0
  117. package/dist/commands/core/env.js.map +1 -0
  118. package/dist/commands/core/health.d.ts +6 -0
  119. package/dist/commands/core/health.d.ts.map +1 -0
  120. package/dist/commands/core/health.js +215 -0
  121. package/dist/commands/core/health.js.map +1 -0
  122. package/dist/commands/core/index.d.ts +15 -0
  123. package/dist/commands/core/index.d.ts.map +1 -0
  124. package/dist/commands/core/index.js +86 -0
  125. package/dist/commands/core/index.js.map +1 -0
  126. package/dist/commands/core/list.d.ts +11 -0
  127. package/dist/commands/core/list.d.ts.map +1 -0
  128. package/dist/commands/core/list.js +58 -0
  129. package/dist/commands/core/list.js.map +1 -0
  130. package/dist/commands/core/rebuild.d.ts +13 -0
  131. package/dist/commands/core/rebuild.d.ts.map +1 -0
  132. package/dist/commands/core/rebuild.js +119 -0
  133. package/dist/commands/core/rebuild.js.map +1 -0
  134. package/dist/commands/db/index.d.ts +23 -0
  135. package/dist/commands/db/index.d.ts.map +1 -0
  136. package/dist/commands/db/index.js +355 -0
  137. package/dist/commands/db/index.js.map +1 -0
  138. package/dist/commands/db/promote-silo.d.ts +320 -0
  139. package/dist/commands/db/promote-silo.d.ts.map +1 -0
  140. package/dist/commands/db/promote-silo.js +930 -0
  141. package/dist/commands/db/promote-silo.js.map +1 -0
  142. package/dist/commands/db/relocate.d.ts +41 -0
  143. package/dist/commands/db/relocate.d.ts.map +1 -0
  144. package/dist/commands/db/relocate.js +482 -0
  145. package/dist/commands/db/relocate.js.map +1 -0
  146. package/dist/commands/db/rollback-silo.d.ts +44 -0
  147. package/dist/commands/db/rollback-silo.d.ts.map +1 -0
  148. package/dist/commands/db/rollback-silo.js +402 -0
  149. package/dist/commands/db/rollback-silo.js.map +1 -0
  150. package/dist/commands/deploy/index.d.ts +26 -0
  151. package/dist/commands/deploy/index.d.ts.map +1 -0
  152. package/dist/commands/deploy/index.js +107 -0
  153. package/dist/commands/deploy/index.js.map +1 -0
  154. package/dist/commands/devops/index.d.ts +6 -0
  155. package/dist/commands/devops/index.d.ts.map +1 -0
  156. package/dist/commands/devops/index.js +220 -0
  157. package/dist/commands/devops/index.js.map +1 -0
  158. package/dist/commands/domain/index.d.ts +8 -0
  159. package/dist/commands/domain/index.d.ts.map +1 -0
  160. package/dist/commands/domain/index.js +386 -0
  161. package/dist/commands/domain/index.js.map +1 -0
  162. package/dist/commands/image/index.d.ts +8 -0
  163. package/dist/commands/image/index.d.ts.map +1 -0
  164. package/dist/commands/image/index.js +308 -0
  165. package/dist/commands/image/index.js.map +1 -0
  166. package/dist/commands/install/factory-reset.d.ts +21 -0
  167. package/dist/commands/install/factory-reset.d.ts.map +1 -0
  168. package/dist/commands/install/factory-reset.js +83 -0
  169. package/dist/commands/install/factory-reset.js.map +1 -0
  170. package/dist/commands/install/index.d.ts +17 -0
  171. package/dist/commands/install/index.d.ts.map +1 -0
  172. package/dist/commands/install/index.js +44 -0
  173. package/dist/commands/install/index.js.map +1 -0
  174. package/dist/commands/install/install.d.ts +35 -0
  175. package/dist/commands/install/install.d.ts.map +1 -0
  176. package/dist/commands/install/install.js +171 -0
  177. package/dist/commands/install/install.js.map +1 -0
  178. package/dist/commands/login/index.d.ts +15 -0
  179. package/dist/commands/login/index.d.ts.map +1 -0
  180. package/dist/commands/login/index.js +58 -0
  181. package/dist/commands/login/index.js.map +1 -0
  182. package/dist/commands/nginx/index.d.ts +11 -0
  183. package/dist/commands/nginx/index.d.ts.map +1 -0
  184. package/dist/commands/nginx/index.js +580 -0
  185. package/dist/commands/nginx/index.js.map +1 -0
  186. package/dist/commands/server/bootstrap.d.ts +25 -0
  187. package/dist/commands/server/bootstrap.d.ts.map +1 -0
  188. package/dist/commands/server/bootstrap.js +260 -0
  189. package/dist/commands/server/bootstrap.js.map +1 -0
  190. package/dist/commands/server/index.d.ts +8 -0
  191. package/dist/commands/server/index.d.ts.map +1 -0
  192. package/dist/commands/server/index.js +2524 -0
  193. package/dist/commands/server/index.js.map +1 -0
  194. package/dist/commands/setup/index.d.ts +34 -0
  195. package/dist/commands/setup/index.d.ts.map +1 -0
  196. package/dist/commands/setup/index.js +423 -0
  197. package/dist/commands/setup/index.js.map +1 -0
  198. package/dist/commands/ssl/index.d.ts +8 -0
  199. package/dist/commands/ssl/index.d.ts.map +1 -0
  200. package/dist/commands/ssl/index.js +275 -0
  201. package/dist/commands/ssl/index.js.map +1 -0
  202. package/dist/commands/superadmin/index.d.ts +16 -0
  203. package/dist/commands/superadmin/index.d.ts.map +1 -0
  204. package/dist/commands/superadmin/index.js +81 -0
  205. package/dist/commands/superadmin/index.js.map +1 -0
  206. package/dist/commands/tenant/index.d.ts +6 -0
  207. package/dist/commands/tenant/index.d.ts.map +1 -0
  208. package/dist/commands/tenant/index.js +192 -0
  209. package/dist/commands/tenant/index.js.map +1 -0
  210. package/dist/index.d.ts +11 -0
  211. package/dist/index.d.ts.map +1 -0
  212. package/dist/index.js +107 -0
  213. package/dist/index.js.map +1 -0
  214. package/dist/lib/addon-sign.d.ts +23 -0
  215. package/dist/lib/addon-sign.d.ts.map +1 -0
  216. package/dist/lib/addon-sign.js +39 -0
  217. package/dist/lib/addon-sign.js.map +1 -0
  218. package/dist/lib/addon-sign.test.d.ts +2 -0
  219. package/dist/lib/addon-sign.test.d.ts.map +1 -0
  220. package/dist/lib/addon-sign.test.js +27 -0
  221. package/dist/lib/addon-sign.test.js.map +1 -0
  222. package/dist/lib/cdn.d.ts +25 -0
  223. package/dist/lib/cdn.d.ts.map +1 -0
  224. package/dist/lib/cdn.js +131 -0
  225. package/dist/lib/cdn.js.map +1 -0
  226. package/dist/lib/cloudflare.d.ts +133 -0
  227. package/dist/lib/cloudflare.d.ts.map +1 -0
  228. package/dist/lib/cloudflare.js +435 -0
  229. package/dist/lib/cloudflare.js.map +1 -0
  230. package/dist/lib/config.d.ts +96 -0
  231. package/dist/lib/config.d.ts.map +1 -0
  232. package/dist/lib/config.js +132 -0
  233. package/dist/lib/config.js.map +1 -0
  234. package/dist/lib/env.d.ts +8 -0
  235. package/dist/lib/env.d.ts.map +1 -0
  236. package/dist/lib/env.js +64 -0
  237. package/dist/lib/env.js.map +1 -0
  238. package/dist/lib/hosts.d.ts +194 -0
  239. package/dist/lib/hosts.d.ts.map +1 -0
  240. package/dist/lib/hosts.js +183 -0
  241. package/dist/lib/hosts.js.map +1 -0
  242. package/dist/lib/logger.d.ts +68 -0
  243. package/dist/lib/logger.d.ts.map +1 -0
  244. package/dist/lib/logger.js +130 -0
  245. package/dist/lib/logger.js.map +1 -0
  246. package/dist/lib/nginx-config.d.ts +78 -0
  247. package/dist/lib/nginx-config.d.ts.map +1 -0
  248. package/dist/lib/nginx-config.js +736 -0
  249. package/dist/lib/nginx-config.js.map +1 -0
  250. package/dist/lib/ops/addon-dev.d.ts +93 -0
  251. package/dist/lib/ops/addon-dev.d.ts.map +1 -0
  252. package/dist/lib/ops/addon-dev.js +237 -0
  253. package/dist/lib/ops/addon-dev.js.map +1 -0
  254. package/dist/lib/ops/addon-quality.d.ts +38 -0
  255. package/dist/lib/ops/addon-quality.d.ts.map +1 -0
  256. package/dist/lib/ops/addon-quality.js +338 -0
  257. package/dist/lib/ops/addon-quality.js.map +1 -0
  258. package/dist/lib/ops/addon-routes.d.ts +49 -0
  259. package/dist/lib/ops/addon-routes.d.ts.map +1 -0
  260. package/dist/lib/ops/addon-routes.js +189 -0
  261. package/dist/lib/ops/addon-routes.js.map +1 -0
  262. package/dist/lib/ops/addon.d.ts +120 -0
  263. package/dist/lib/ops/addon.d.ts.map +1 -0
  264. package/dist/lib/ops/addon.js +260 -0
  265. package/dist/lib/ops/addon.js.map +1 -0
  266. package/dist/lib/ops/cdn.d.ts +87 -0
  267. package/dist/lib/ops/cdn.d.ts.map +1 -0
  268. package/dist/lib/ops/cdn.js +170 -0
  269. package/dist/lib/ops/cdn.js.map +1 -0
  270. package/dist/lib/ops/cf.d.ts +36 -0
  271. package/dist/lib/ops/cf.d.ts.map +1 -0
  272. package/dist/lib/ops/cf.js +114 -0
  273. package/dist/lib/ops/cf.js.map +1 -0
  274. package/dist/lib/ops/compose.d.ts +95 -0
  275. package/dist/lib/ops/compose.d.ts.map +1 -0
  276. package/dist/lib/ops/compose.js +165 -0
  277. package/dist/lib/ops/compose.js.map +1 -0
  278. package/dist/lib/ops/core.d.ts +117 -0
  279. package/dist/lib/ops/core.d.ts.map +1 -0
  280. package/dist/lib/ops/core.js +322 -0
  281. package/dist/lib/ops/core.js.map +1 -0
  282. package/dist/lib/ops/db.d.ts +116 -0
  283. package/dist/lib/ops/db.d.ts.map +1 -0
  284. package/dist/lib/ops/db.js +351 -0
  285. package/dist/lib/ops/db.js.map +1 -0
  286. package/dist/lib/ops/dns.d.ts +111 -0
  287. package/dist/lib/ops/dns.d.ts.map +1 -0
  288. package/dist/lib/ops/dns.js +306 -0
  289. package/dist/lib/ops/dns.js.map +1 -0
  290. package/dist/lib/ops/image.d.ts +94 -0
  291. package/dist/lib/ops/image.d.ts.map +1 -0
  292. package/dist/lib/ops/image.js +159 -0
  293. package/dist/lib/ops/image.js.map +1 -0
  294. package/dist/lib/ops/nginx.d.ts +114 -0
  295. package/dist/lib/ops/nginx.d.ts.map +1 -0
  296. package/dist/lib/ops/nginx.js +388 -0
  297. package/dist/lib/ops/nginx.js.map +1 -0
  298. package/dist/lib/ops/redis.d.ts +7 -0
  299. package/dist/lib/ops/redis.d.ts.map +1 -0
  300. package/dist/lib/ops/redis.js +35 -0
  301. package/dist/lib/ops/redis.js.map +1 -0
  302. package/dist/lib/ops/ssh.d.ts +127 -0
  303. package/dist/lib/ops/ssh.d.ts.map +1 -0
  304. package/dist/lib/ops/ssh.js +269 -0
  305. package/dist/lib/ops/ssh.js.map +1 -0
  306. package/dist/lib/prompts.d.ts +46 -0
  307. package/dist/lib/prompts.d.ts.map +1 -0
  308. package/dist/lib/prompts.js +113 -0
  309. package/dist/lib/prompts.js.map +1 -0
  310. package/dist/lib/sast.d.ts +43 -0
  311. package/dist/lib/sast.d.ts.map +1 -0
  312. package/dist/lib/sast.js +79 -0
  313. package/dist/lib/sast.js.map +1 -0
  314. package/dist/lib/sast.test.d.ts +2 -0
  315. package/dist/lib/sast.test.d.ts.map +1 -0
  316. package/dist/lib/sast.test.js +33 -0
  317. package/dist/lib/sast.test.js.map +1 -0
  318. package/dist/lib/shell.d.ts +61 -0
  319. package/dist/lib/shell.d.ts.map +1 -0
  320. package/dist/lib/shell.js +183 -0
  321. package/dist/lib/shell.js.map +1 -0
  322. package/dist/lib/ssh-config.d.ts +37 -0
  323. package/dist/lib/ssh-config.d.ts.map +1 -0
  324. package/dist/lib/ssh-config.js +122 -0
  325. package/dist/lib/ssh-config.js.map +1 -0
  326. package/dist/lib/tenant-scope.d.ts +38 -0
  327. package/dist/lib/tenant-scope.d.ts.map +1 -0
  328. package/dist/lib/tenant-scope.js +129 -0
  329. package/dist/lib/tenant-scope.js.map +1 -0
  330. package/dist/lib/tenant-scope.test.d.ts +2 -0
  331. package/dist/lib/tenant-scope.test.d.ts.map +1 -0
  332. package/dist/lib/tenant-scope.test.js +223 -0
  333. package/dist/lib/tenant-scope.test.js.map +1 -0
  334. package/package.json +58 -0
  335. package/templates/bootstrap/.env.template +54 -0
  336. package/templates/bootstrap/docker-compose.yml +145 -0
  337. package/templates/vhost.conf.tmpl +446 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/addon/deploy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * ci addon dev-deploy <Name> — local dev-shell quick deploy
3
+ *
4
+ * Ana repo'daki `addons/<Name>` sürümünü dev-shell'in
5
+ * `cores/dev/addons/<Name>`'ine yansıtır. SSH yok, sunucu yok — Mustafa
6
+ * (veya başka biri) ana repo'da addon üzerinde değişiklik yapıp lokal
7
+ * dev tenant'ta hızlıca görmek için kullanır.
8
+ *
9
+ * Beş adım, tek komut:
10
+ * 1. ana repo'da `addons/<Name>` var mı, addon.json okunabilir mi
11
+ * 2. `ci addon build <Name> --core dev` çağır (vite dist/ üret)
12
+ * 3. dev-shell hedef dizinini sil + ana repo addon'unu rsync
13
+ * 4. dist/assets/*.css → dist/style.css symlink (production CDN
14
+ * "latest/style.css" URL pattern'i için)
15
+ * 5. `ci cache flush` ile PHP/Nuxt/Redis cache temizle
16
+ *
17
+ * Komut ana repo root'undan çalıştırılmalı (cwd'de addons/ dizini
18
+ * bulunabilir olmalı). Yoksa --monorepo-path <path> ile override.
19
+ *
20
+ * Bu, `ci addon deploy --core <cicore|vucore>` komutundan farklı:
21
+ * - deploy = SSH ile cicore staging'e tarball gönder (production)
22
+ * - dev-deploy = lokal dosya kopyala + cache flush (development)
23
+ */
24
+ export interface DevDeployOptions {
25
+ readonly monorepoPath?: string;
26
+ readonly shellPath?: string;
27
+ readonly skipBuild?: boolean;
28
+ readonly skipFlush?: boolean;
29
+ }
30
+ export declare function devDeployAddon(name: string, options: DevDeployOptions): Promise<void>;
31
+ //# sourceMappingURL=dev-deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/addon/dev-deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAID,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyG3F"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * ci addon dev-deploy <Name> — local dev-shell quick deploy
3
+ *
4
+ * Ana repo'daki `addons/<Name>` sürümünü dev-shell'in
5
+ * `cores/dev/addons/<Name>`'ine yansıtır. SSH yok, sunucu yok — Mustafa
6
+ * (veya başka biri) ana repo'da addon üzerinde değişiklik yapıp lokal
7
+ * dev tenant'ta hızlıca görmek için kullanır.
8
+ *
9
+ * Beş adım, tek komut:
10
+ * 1. ana repo'da `addons/<Name>` var mı, addon.json okunabilir mi
11
+ * 2. `ci addon build <Name> --core dev` çağır (vite dist/ üret)
12
+ * 3. dev-shell hedef dizinini sil + ana repo addon'unu rsync
13
+ * 4. dist/assets/*.css → dist/style.css symlink (production CDN
14
+ * "latest/style.css" URL pattern'i için)
15
+ * 5. `ci cache flush` ile PHP/Nuxt/Redis cache temizle
16
+ *
17
+ * Komut ana repo root'undan çalıştırılmalı (cwd'de addons/ dizini
18
+ * bulunabilir olmalı). Yoksa --monorepo-path <path> ile override.
19
+ *
20
+ * Bu, `ci addon deploy --core <cicore|vucore>` komutundan farklı:
21
+ * - deploy = SSH ile cicore staging'e tarball gönder (production)
22
+ * - dev-deploy = lokal dosya kopyala + cache flush (development)
23
+ */
24
+ import path from 'node:path';
25
+ import { spawnSync } from 'node:child_process';
26
+ import fs from 'fs-extra';
27
+ import { log, spinner } from '../../lib/logger.js';
28
+ const ADDON_NAME_RE = /^[A-Za-z0-9_-]+$/;
29
+ export async function devDeployAddon(name, options) {
30
+ if (!ADDON_NAME_RE.test(name)) {
31
+ log.error(`Invalid addon name "${name}" — only [A-Za-z0-9_-].`);
32
+ return;
33
+ }
34
+ log.title(`Local dev-deploy: ${name}`);
35
+ // Monorepo: cwd default; resolves the source `addons/<Name>` dir.
36
+ const monorepo = path.resolve(options.monorepoPath ?? process.cwd());
37
+ const sourceAddonDir = path.join(monorepo, 'addons', name);
38
+ if (!(await fs.pathExists(path.join(sourceAddonDir, 'addon.json')))) {
39
+ log.error(`Source addon not found: ${sourceAddonDir}/addon.json`);
40
+ log.info('Komutu monorepo root\'undan çalıştır (addons/ dizini içinde) veya --monorepo-path <path> ver.');
41
+ return;
42
+ }
43
+ log.info(`Source: ${sourceAddonDir}`);
44
+ // Shell path: ana repo'daki dev-shell/ veya --shell-path. Tenant şu an
45
+ // sabit `dev` — multi-tenant dev senaryoları FUTURE.
46
+ const shellRoot = path.resolve(options.shellPath ?? path.join(monorepo, 'dev-shell'));
47
+ const targetAddonDir = path.join(shellRoot, 'cores', 'dev', 'addons', name);
48
+ if (!(await fs.pathExists(shellRoot))) {
49
+ log.error(`dev-shell dizini yok: ${shellRoot}`);
50
+ log.info('Monorepo root\'undan çalıştırılıyorsa dev-shell/ var olmalı. Aksi takdirde --shell-path <path>.');
51
+ return;
52
+ }
53
+ log.info(`Target: ${targetAddonDir}`);
54
+ log.blank();
55
+ // 1. Build (vite dist/ üret) — ana repo addon'unda
56
+ if (options.skipBuild !== true) {
57
+ const s = spinner(`${name} build (ci addon build --core dev) ...`).start();
58
+ const res = spawnSync('ci', ['addon', 'build', name, '--core', 'dev'], {
59
+ cwd: monorepo,
60
+ encoding: 'utf8',
61
+ });
62
+ if (res.status !== 0) {
63
+ s.fail(`Build başarısız (exit ${res.status})`);
64
+ log.error((res.stderr || res.stdout || '').slice(-2000));
65
+ log.info('Addon vite.config.js güncel mi? Modern config örneği: addons/AddonMarket/vite.config.js');
66
+ return;
67
+ }
68
+ s.succeed(`Build complete — ${path.join(sourceAddonDir, 'dist')}`);
69
+ }
70
+ // Build sonrası dist/ olmalı — yoksa exit
71
+ const sourceDist = path.join(sourceAddonDir, 'dist');
72
+ if (!(await fs.pathExists(sourceDist))) {
73
+ log.error(`dist/ üretilmedi: ${sourceDist}`);
74
+ log.info(`Önce manuel: cd ${monorepo} && ci addon build ${name} --core dev`);
75
+ return;
76
+ }
77
+ // 2. Sync — eski hedef sil, source'u kopyala
78
+ const syncSpin = spinner('dev-shell hedef dizine kopyalanıyor ...').start();
79
+ try {
80
+ await fs.remove(targetAddonDir);
81
+ // rsync benzeri kopyala (.git exclude, node_modules exclude). fs-extra
82
+ // copy hepsini kopyalar — node_modules tipik olarak yok zaten ama
83
+ // büyük olmaması için filter ekle.
84
+ await fs.copy(sourceAddonDir, targetAddonDir, {
85
+ filter: (src) => {
86
+ const rel = path.relative(sourceAddonDir, src);
87
+ return !rel.startsWith('.git') && !rel.startsWith('node_modules');
88
+ },
89
+ });
90
+ syncSpin.succeed(`Kopyalandı: ${targetAddonDir}`);
91
+ }
92
+ catch (err) {
93
+ syncSpin.fail('Kopyalama başarısız');
94
+ log.error(err instanceof Error ? err.message : String(err));
95
+ return;
96
+ }
97
+ // 3. style.css symlink — vite genelde `assets/<addon>-<hash>.css` üretir;
98
+ // useAddonLifecycle.ts client `latest/style.css` URL pattern'i bekler.
99
+ // Tek dosyalık symlink production parity sağlar.
100
+ const distInTarget = path.join(targetAddonDir, 'dist');
101
+ const assetsDir = path.join(distInTarget, 'assets');
102
+ if (await fs.pathExists(assetsDir)) {
103
+ const files = await fs.readdir(assetsDir);
104
+ const css = files.find((f) => f.endsWith('.css'));
105
+ if (css !== undefined) {
106
+ const link = path.join(distInTarget, 'style.css');
107
+ await fs.remove(link).catch(() => undefined);
108
+ // Relative symlink — taşınabilir
109
+ await fs.symlink(path.join('assets', css), link);
110
+ log.info(`✓ style.css → assets/${css}`);
111
+ }
112
+ else {
113
+ log.info('ℹ CSS bundle üretilmedi (addon CSS yok, normal)');
114
+ }
115
+ }
116
+ // 4. Cache flush
117
+ if (options.skipFlush !== true) {
118
+ log.blank();
119
+ const res = spawnSync('ci', ['cache', 'flush'], { encoding: 'utf8', stdio: 'inherit' });
120
+ if (res.status !== 0) {
121
+ log.warn(`Cache flush başarısız (exit ${res.status}) — manuel: ci cache flush`);
122
+ }
123
+ }
124
+ log.blank();
125
+ log.success(`"${name}" dev tenant'a deploy edildi.`);
126
+ log.info(`Browser: http://localhost:3080/admin/addons (refresh) veya doğrudan addon route'u.`);
127
+ }
128
+ //# sourceMappingURL=dev-deploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-deploy.js","sourceRoot":"","sources":["../../../src/commands/addon/dev-deploy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * `ci addon dev <Name>`
3
+ * `ci addon stop <Name>`
4
+ * `ci addon dev --list`
5
+ * `ci addon dev --reset`
6
+ *
7
+ * Run from anywhere inside dev-shell (or pass --shell-path). The CLI
8
+ * walks up looking for the dev-shell marker (nginx/snippets/ +
9
+ * cores/dev/addons/ + docker-compose.yml) so personnel don't have to
10
+ * remember a precise cwd.
11
+ *
12
+ * The lifecycle is intentionally foreground: vite logs stream into the
13
+ * terminal the personnel runs the command from, and Ctrl-C is the
14
+ * documented stop path. Each three-piece state mutation (override map,
15
+ * nginx snippet file, nginx reload) is wrapped in a try/finally so a
16
+ * Ctrl-C between writeOverride and writeSnippets doesn't leave behind a
17
+ * partial session.
18
+ */
19
+ interface SharedOptions {
20
+ readonly shellPath?: string;
21
+ }
22
+ interface DevOptions extends SharedOptions {
23
+ readonly port?: string;
24
+ }
25
+ interface StopOptions extends SharedOptions {
26
+ }
27
+ interface ListOptions extends SharedOptions {
28
+ }
29
+ interface ResetOptions extends SharedOptions {
30
+ }
31
+ export declare function devAddon(name: string, opts: DevOptions): Promise<void>;
32
+ export declare function stopAddon(name: string, opts: StopOptions): Promise<void>;
33
+ export declare function listDevSessions(opts: ListOptions): Promise<void>;
34
+ export declare function resetDevSessions(opts: ResetOptions): Promise<void>;
35
+ export {};
36
+ //# sourceMappingURL=dev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/commands/addon/dev.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAsBH,UAAU,aAAa;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,UAAU,UAAW,SAAQ,aAAa;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,UAAU,WAAY,SAAQ,aAAa;CAAG;AAE9C,UAAU,WAAY,SAAQ,aAAa;CAAG;AAE9C,UAAU,YAAa,SAAQ,aAAa;CAAG;AAsB/C,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiK5E;AAMD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B9E;AAMD,wBAAsB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBtE;AAMD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCxE"}
@@ -0,0 +1,323 @@
1
+ /**
2
+ * `ci addon dev <Name>`
3
+ * `ci addon stop <Name>`
4
+ * `ci addon dev --list`
5
+ * `ci addon dev --reset`
6
+ *
7
+ * Run from anywhere inside dev-shell (or pass --shell-path). The CLI
8
+ * walks up looking for the dev-shell marker (nginx/snippets/ +
9
+ * cores/dev/addons/ + docker-compose.yml) so personnel don't have to
10
+ * remember a precise cwd.
11
+ *
12
+ * The lifecycle is intentionally foreground: vite logs stream into the
13
+ * terminal the personnel runs the command from, and Ctrl-C is the
14
+ * documented stop path. Each three-piece state mutation (override map,
15
+ * nginx snippet file, nginx reload) is wrapped in a try/finally so a
16
+ * Ctrl-C between writeOverride and writeSnippets doesn't leave behind a
17
+ * partial session.
18
+ */
19
+ import path from 'node:path';
20
+ import { spawn } from 'node:child_process';
21
+ import fs from 'fs-extra';
22
+ import { log, formatTable } from '../../lib/logger.js';
23
+ import { buildOverrideBase, findFreePort, findShellRoot, hasViteDevConfig, isPidAlive, readOverrideMap, reloadNginx, writeNginxSnippets, writeOverrideMap, } from '../../lib/ops/addon-dev.js';
24
+ import { regeneratePhpRoutes } from '../../lib/ops/addon-routes.js';
25
+ const ADDON_NAME_RE = /^[A-Za-z0-9_-]+$/;
26
+ function resolveShellRoot(opts) {
27
+ if (opts.shellPath) {
28
+ const explicit = path.resolve(opts.shellPath);
29
+ return fs.existsSync(path.join(explicit, 'docker-compose.yml')) ? explicit : null;
30
+ }
31
+ return findShellRoot(process.cwd());
32
+ }
33
+ function dieIfNoShell(shellRoot) {
34
+ if (!shellRoot) {
35
+ log.error('dev-shell directory not found.');
36
+ log.info('Run this command from inside dev-shell, or pass --shell-path <path>.');
37
+ process.exit(1);
38
+ }
39
+ }
40
+ // ────────────────────────────────────────────────────────────────────
41
+ // ci addon dev <Name>
42
+ // ────────────────────────────────────────────────────────────────────
43
+ export async function devAddon(name, opts) {
44
+ if (!ADDON_NAME_RE.test(name)) {
45
+ log.error(`Invalid addon name "${name}" — only [A-Za-z0-9_-].`);
46
+ return;
47
+ }
48
+ const shellRoot = resolveShellRoot(opts);
49
+ dieIfNoShell(shellRoot);
50
+ const addonDir = path.join(shellRoot, 'cores', 'dev', 'addons', name);
51
+ if (!(await fs.pathExists(path.join(addonDir, 'addon.json')))) {
52
+ log.error(`Addon not found: ${addonDir}/addon.json`);
53
+ log.info('Clone the addon into cores/dev/addons/<Name> first.');
54
+ return;
55
+ }
56
+ if (!(await hasViteDevConfig(shellRoot, name))) {
57
+ log.error(`vite.config.dev.js missing in ${addonDir}.`);
58
+ log.info(`Run \`ci addon scaffold-dev ${name}\` first (ships in Faz 5).`);
59
+ return;
60
+ }
61
+ log.title(`Addon dev session: ${name}`);
62
+ log.kv('Shell', shellRoot);
63
+ log.kv('Addon', addonDir);
64
+ // Reserve a port. Explicit --port wins; otherwise pick from the pool
65
+ // avoiding ports already in the override map or held by any TCP
66
+ // listener on the personnel's machine.
67
+ const map = await readOverrideMap(shellRoot);
68
+ if (map[name]) {
69
+ log.warn(`A previous session entry exists for ${name} (port ${map[name].port}, pid ${map[name].pid ?? '?'}).`);
70
+ if (isPidAlive(map[name].pid)) {
71
+ log.error(`Vite for ${name} appears to still be running (pid ${map[name].pid}). Stop it first: \`ci addon stop ${name}\` or use a different terminal.`);
72
+ return;
73
+ }
74
+ log.warn('Previous PID is dead — cleaning up stale entry before starting.');
75
+ delete map[name];
76
+ }
77
+ let port;
78
+ if (opts.port) {
79
+ port = Number(opts.port);
80
+ if (!Number.isInteger(port) || port < 1024 || port > 65535) {
81
+ log.error(`Invalid --port "${opts.port}". Use an integer 1024-65535.`);
82
+ return;
83
+ }
84
+ }
85
+ else {
86
+ try {
87
+ port = await findFreePort(map);
88
+ }
89
+ catch (err) {
90
+ log.error(err.message);
91
+ return;
92
+ }
93
+ }
94
+ log.kv('Port', String(port));
95
+ // The host HTTP port (the one the browser sees) usually matches the
96
+ // dev-shell's HTTP_PORT (.env). Vite reads it to compute the HMR
97
+ // clientPort. Default 3080 lines up with the compose mapping.
98
+ const hostPort = process.env.CICORE_DEV_HOST_PORT || readDevShellHttpPort(shellRoot) || '3080';
99
+ // Wire up state BEFORE spawning vite so the snippet and override are
100
+ // in place by the time browser requests start arriving. If anything
101
+ // throws here, we surface it cleanly without touching nginx.
102
+ const newMap = {
103
+ ...map,
104
+ [name]: { base: buildOverrideBase(name), port, pid: process.pid }, // PID is parent for now; replaced once vite spawns
105
+ };
106
+ try {
107
+ await writeNginxSnippets(shellRoot, newMap);
108
+ await writeOverrideMap(shellRoot, newMap);
109
+ // Faz 4: keep the PHP routes regex in sync with whichever addons
110
+ // are present on disk. A personnel who just cloned a new addon
111
+ // shouldn't have to remember to run `ci cache flush` before their
112
+ // first API request — this regeneration covers that. Best-effort:
113
+ // failures log a warning but don't abort the dev session.
114
+ const routes = await regeneratePhpRoutes(shellRoot);
115
+ if (routes.prefixesAdded.length > 0) {
116
+ log.info(`PHP routes regenerated (${routes.prefixesAdded.length} addon prefix${routes.prefixesAdded.length === 1 ? '' : 'es'}: ${routes.prefixesAdded.join(', ')})`);
117
+ }
118
+ }
119
+ catch (err) {
120
+ log.error(`Failed to write dev session state: ${err.message}`);
121
+ return;
122
+ }
123
+ const reload = await reloadNginx(shellRoot);
124
+ if (!reload.ok) {
125
+ log.error(`nginx reload failed: ${reload.detail}`);
126
+ log.warn('Rolling back override + snippet to keep state consistent.');
127
+ await writeOverrideMap(shellRoot, map);
128
+ await writeNginxSnippets(shellRoot, map);
129
+ return;
130
+ }
131
+ log.success(`nginx ${reload.method}`);
132
+ // Spawn vite in the foreground. stdio: 'inherit' lets personnel see
133
+ // vite's own ready/hmr-update logs in the same terminal where they
134
+ // launched `ci addon dev`. CICORE_DEV_HOST_PORT propagates the public
135
+ // port to vite.config.dev.js (HMR clientPort uses it).
136
+ const viteBin = path.join(shellRoot, 'node_modules', '.bin', 'vite');
137
+ if (!(await fs.pathExists(viteBin))) {
138
+ log.error(`vite not installed at ${viteBin}. Run \`npm install\` from dev-shell root.`);
139
+ await cleanupSession(shellRoot, name);
140
+ return;
141
+ }
142
+ const viteConfig = path.join(addonDir, 'vite.config.dev.js');
143
+ const viteArgs = ['--config', viteConfig, '--port', String(port), '--host', '127.0.0.1', '--strictPort'];
144
+ log.blank();
145
+ log.info(`Browser entry point: http://localhost:${hostPort}/admin/${slugFromAddonName(name)}`);
146
+ log.info(`Edit any file under ${addonDir} and the browser will pick it up — manual refresh (Cmd-R) until route-key soft-remount lands in Faz 2B.`);
147
+ log.info('Press Ctrl-C to stop the session.');
148
+ log.blank();
149
+ const vite = spawn(viteBin, viteArgs, {
150
+ stdio: 'inherit',
151
+ cwd: shellRoot,
152
+ env: { ...process.env, CICORE_DEV_HOST_PORT: hostPort },
153
+ });
154
+ // Update the override with the real vite PID so `--list` reflects reality.
155
+ if (vite.pid !== undefined) {
156
+ const refreshed = await readOverrideMap(shellRoot);
157
+ if (refreshed[name]) {
158
+ refreshed[name].pid = vite.pid;
159
+ await writeOverrideMap(shellRoot, refreshed);
160
+ }
161
+ }
162
+ let shuttingDown = false;
163
+ const shutdown = async (signal) => {
164
+ if (shuttingDown)
165
+ return;
166
+ shuttingDown = true;
167
+ log.blank();
168
+ log.info(`Stopping ${name} (${signal}) — cleaning up state...`);
169
+ try {
170
+ if (vite.pid !== undefined && !vite.killed) {
171
+ vite.kill('SIGTERM');
172
+ }
173
+ }
174
+ catch {
175
+ /* ignore — vite may have already exited */
176
+ }
177
+ await cleanupSession(shellRoot, name);
178
+ log.success(`${name} stopped.`);
179
+ process.exit(0);
180
+ };
181
+ process.on('SIGINT', () => { void shutdown('SIGINT'); });
182
+ process.on('SIGTERM', () => { void shutdown('SIGTERM'); });
183
+ vite.on('exit', (code, signal) => {
184
+ if (shuttingDown)
185
+ return;
186
+ log.blank();
187
+ if (code === 0) {
188
+ log.info(`vite exited cleanly (code 0).`);
189
+ }
190
+ else {
191
+ log.warn(`vite exited unexpectedly (code ${code}, signal ${signal}).`);
192
+ }
193
+ void shutdown('exit');
194
+ });
195
+ }
196
+ // ────────────────────────────────────────────────────────────────────
197
+ // ci addon stop <Name>
198
+ // ────────────────────────────────────────────────────────────────────
199
+ export async function stopAddon(name, opts) {
200
+ if (!ADDON_NAME_RE.test(name)) {
201
+ log.error(`Invalid addon name "${name}" — only [A-Za-z0-9_-].`);
202
+ return;
203
+ }
204
+ const shellRoot = resolveShellRoot(opts);
205
+ dieIfNoShell(shellRoot);
206
+ const map = await readOverrideMap(shellRoot);
207
+ const session = map[name];
208
+ if (!session) {
209
+ log.info(`No active dev session for ${name}.`);
210
+ return;
211
+ }
212
+ // Try to gracefully stop the vite process from this terminal too — the
213
+ // session may have been started from another terminal that's now closed
214
+ // and the personnel just wants to clean up.
215
+ if (session.pid && isPidAlive(session.pid)) {
216
+ try {
217
+ process.kill(session.pid, 'SIGTERM');
218
+ log.info(`Sent SIGTERM to vite pid ${session.pid}.`);
219
+ }
220
+ catch (err) {
221
+ log.warn(`Could not signal vite pid ${session.pid}: ${err.message}`);
222
+ }
223
+ }
224
+ await cleanupSession(shellRoot, name);
225
+ log.success(`${name} stopped.`);
226
+ }
227
+ // ────────────────────────────────────────────────────────────────────
228
+ // ci addon dev --list
229
+ // ────────────────────────────────────────────────────────────────────
230
+ export async function listDevSessions(opts) {
231
+ const shellRoot = resolveShellRoot(opts);
232
+ dieIfNoShell(shellRoot);
233
+ const map = await readOverrideMap(shellRoot);
234
+ const entries = Object.entries(map);
235
+ if (entries.length === 0) {
236
+ log.info('No active dev sessions.');
237
+ return;
238
+ }
239
+ const rows = entries.map(([name, e]) => [
240
+ name,
241
+ String(e.port),
242
+ String(e.pid ?? '?'),
243
+ isPidAlive(e.pid) ? 'alive' : 'DEAD (run --reset)',
244
+ e.base,
245
+ ]);
246
+ formatTable(['Addon', 'Port', 'PID', 'State', 'Base URL'], rows);
247
+ }
248
+ // ────────────────────────────────────────────────────────────────────
249
+ // ci addon dev --reset
250
+ // ────────────────────────────────────────────────────────────────────
251
+ export async function resetDevSessions(opts) {
252
+ const shellRoot = resolveShellRoot(opts);
253
+ dieIfNoShell(shellRoot);
254
+ const map = await readOverrideMap(shellRoot);
255
+ const entries = Object.entries(map);
256
+ if (entries.length === 0) {
257
+ log.info('No sessions to reset.');
258
+ return;
259
+ }
260
+ // Best-effort kill of any still-alive PIDs. We could be conservative
261
+ // and skip live processes, but `--reset` is explicit — personnel
262
+ // wants everything gone.
263
+ for (const [name, e] of entries) {
264
+ if (isPidAlive(e.pid)) {
265
+ try {
266
+ process.kill(e.pid, 'SIGTERM');
267
+ log.info(`Killed vite for ${name} (pid ${e.pid}).`);
268
+ }
269
+ catch {
270
+ /* nothing to do */
271
+ }
272
+ }
273
+ }
274
+ await writeOverrideMap(shellRoot, {});
275
+ await writeNginxSnippets(shellRoot, {});
276
+ const reload = await reloadNginx(shellRoot);
277
+ if (!reload.ok) {
278
+ log.error(`nginx reload failed after reset: ${reload.detail}`);
279
+ return;
280
+ }
281
+ log.success(`Reset complete (${entries.length} session${entries.length === 1 ? '' : 's'} cleared, nginx ${reload.method}).`);
282
+ }
283
+ // ────────────────────────────────────────────────────────────────────
284
+ // internals
285
+ // ────────────────────────────────────────────────────────────────────
286
+ async function cleanupSession(shellRoot, name) {
287
+ const map = await readOverrideMap(shellRoot);
288
+ if (!map[name])
289
+ return;
290
+ delete map[name];
291
+ await writeOverrideMap(shellRoot, map);
292
+ await writeNginxSnippets(shellRoot, map);
293
+ // Regenerate PHP routes too — if the addon was uninstalled (rather
294
+ // than just stopped), its routes will be gone from disk and the
295
+ // regex should shrink. Idempotent for stop-without-uninstall.
296
+ await regeneratePhpRoutes(shellRoot).catch(() => { });
297
+ const reload = await reloadNginx(shellRoot);
298
+ if (!reload.ok) {
299
+ log.warn(`nginx reload failed during cleanup: ${reload.detail}`);
300
+ log.warn('You may need to run `docker compose restart nginx` manually.');
301
+ }
302
+ }
303
+ /** Read HTTP_PORT from dev-shell's .env if present. Empty/missing means
304
+ * fall back to the compose default (3080). */
305
+ function readDevShellHttpPort(shellRoot) {
306
+ try {
307
+ const envPath = path.join(shellRoot, '.env');
308
+ if (!fs.existsSync(envPath))
309
+ return null;
310
+ const m = fs.readFileSync(envPath, 'utf8').match(/^HTTP_PORT=(.*)$/m);
311
+ return m ? m[1].trim() : null;
312
+ }
313
+ catch {
314
+ return null;
315
+ }
316
+ }
317
+ /** Best-guess admin route slug for an addon name. AddonMarket →
318
+ * addon-market. Used only for the friendly "open this URL" hint at
319
+ * startup; the real route comes from the addon's addon.json. */
320
+ function slugFromAddonName(name) {
321
+ return name.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
322
+ }
323
+ //# sourceMappingURL=dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/commands/addon/dev.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * CiCore CLI - Addon CSS Class Extraction
3
+ *
4
+ * Scans addon Vue files to extract all Tailwind CSS classes.
5
+ * Generates a JSON file that will be used for safelist generation.
6
+ *
7
+ * Part of the Automated Safelist Pipeline (TIER 1)
8
+ *
9
+ * @command npx vu addon extract-classes [addonName]
10
+ */
11
+ export interface ExtractClassesOptions {
12
+ output?: string;
13
+ json?: boolean;
14
+ verbose?: boolean;
15
+ }
16
+ export interface ExtractedClassesResult {
17
+ [addonName: string]: string[];
18
+ }
19
+ /**
20
+ * Main extraction function
21
+ */
22
+ export declare function extractClasses(addonName?: string, options?: ExtractClassesOptions): Promise<ExtractedClassesResult>;
23
+ //# sourceMappingURL=extract-classes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-classes.d.ts","sourceRoot":"","sources":["../../../src/commands/addon/extract-classes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAwNH,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,sBAAsB,CAAC,CAuFjC"}