@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":"nginx-config.js","sourceRoot":"","sources":["../../src/lib/nginx-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Helpers for the `ci addon dev` lifecycle.
3
+ *
4
+ * The dev session has three pieces of state that must stay in sync:
5
+ * 1. The vite process serving the addon source
6
+ * 2. `cores/<core>/.dev-addon-overrides.json` — the runtime config map
7
+ * Nuxt reads via core-loader; tells useAddonLifecycle to fetch
8
+ * entry.ts from vite instead of the dist build
9
+ * 3. `nginx/snippets/addon-dev-routes.conf` — the per-addon location
10
+ * blocks (HMR WS + HTTP module proxy) included by `dev.conf`
11
+ *
12
+ * If any one of these drifts (vite crashes, override stays; snippet stays,
13
+ * override removed; …) the addon page either 502s or shows the error
14
+ * overlay. The CLI treats all three as one transaction: start writes all
15
+ * three, stop tears down all three, and `--reset` nukes them when they
16
+ * fall out of sync (e.g. after a laptop sleep / process kill).
17
+ *
18
+ * The override map is the source of truth: nginx snippets are regenerated
19
+ * from it on every start/stop (full rewrite, not surgical edit) so partial
20
+ * writes can't leave the snippets file corrupted.
21
+ */
22
+ export interface DevSessionEntry {
23
+ base: string;
24
+ port: number;
25
+ pid?: number;
26
+ }
27
+ export type DevOverrideMap = Record<string, DevSessionEntry>;
28
+ export declare const OVERRIDE_REL_PATH = "cores/dev/.dev-addon-overrides.json";
29
+ export declare const SNIPPETS_REL_PATH = "nginx/snippets/addon-dev-routes.conf";
30
+ export declare const VITE_PORT_BASE = 5173;
31
+ export declare const VITE_PORT_MAX = 5273;
32
+ /**
33
+ * Walk up from a starting directory looking for the dev-shell root.
34
+ * Markers: nginx/snippets/ + cores/dev/addons/ + docker-compose.yml.
35
+ * Personnel typically run `ci addon dev` from inside an addon dir or from
36
+ * dev-shell itself; we find dev-shell so they don't have to remember.
37
+ */
38
+ export declare function findShellRoot(startDir: string): string | null;
39
+ export declare function overrideMapPath(shellRoot: string): string;
40
+ export declare function snippetsFilePath(shellRoot: string): string;
41
+ /** Returns an empty object when the file is missing or malformed — the
42
+ * alternative (throw) would block the lifecycle CLI from ever recovering
43
+ * a corrupted state. Malformed JSON is surfaced via a warning instead. */
44
+ export declare function readOverrideMap(shellRoot: string): Promise<DevOverrideMap>;
45
+ /** Atomic write via temp file + rename so a kill between writeFile and
46
+ * rename leaves the previous version intact (rather than truncated). */
47
+ export declare function writeOverrideMap(shellRoot: string, map: DevOverrideMap): Promise<void>;
48
+ /** TCP listener probe. Returns true when *anything* is listening on the
49
+ * port — we don't try to distinguish "our vite" from "someone else's
50
+ * service", because either way we shouldn't reuse the port. */
51
+ export declare function isPortInUse(port: number): Promise<boolean>;
52
+ /** Walks the pool and returns the first port not currently in the
53
+ * override map AND not listening on TCP. The map check is cheap and
54
+ * catches our own active sessions; the TCP probe catches anything else
55
+ * on the personnel's machine (another vite, a dev server, etc.). */
56
+ export declare function findFreePort(map: DevOverrideMap): Promise<number>;
57
+ /** Process-alive check. Sending signal 0 doesn't actually deliver a
58
+ * signal; it just probes whether the kernel has a process with that PID
59
+ * the current user can signal. We use this on `--list` to spot dead
60
+ * sessions whose entry still lingers in the override map. */
61
+ export declare function isPidAlive(pid: number | undefined): boolean;
62
+ /** Full rewrite of the snippets file from the override map. Partial
63
+ * writes can't corrupt state because we're not editing in place — the
64
+ * entire file is replaced atomically. Empty map → empty file (one
65
+ * header comment, no location blocks), which nginx treats as a no-op
66
+ * include. */
67
+ export declare function writeNginxSnippets(shellRoot: string, map: DevOverrideMap): Promise<void>;
68
+ /** Try `nginx -s reload` inside the container first (fast, no downtime).
69
+ * Fall back to `docker compose restart nginx` when reload doesn't pick
70
+ * the new file up — macOS Docker Desktop's bind mounts can serve a
71
+ * stale view of the snippets file for a few seconds after a host-side
72
+ * write, and `-s reload` rereads the cached version. The restart forces
73
+ * a fresh mount snapshot. Faz 1 POC surfaced this; documented inline so
74
+ * the workaround doesn't look like cargo-culting in a year.
75
+ *
76
+ * Validation (`nginx -t`) always runs first — a broken config doesn't
77
+ * hit a running nginx. */
78
+ export declare function reloadNginx(shellRoot: string, { allowCompose }?: {
79
+ allowCompose?: boolean;
80
+ }): Promise<{
81
+ ok: boolean;
82
+ method: 'reload' | 'compose-restart' | 'failed';
83
+ detail: string;
84
+ }>;
85
+ /** Build the `base` URL the override map publishes to Nuxt. Lives here
86
+ * so the URL pattern is defined in one place and both `ci addon dev`
87
+ * and any future tooling agree on what useAddonLifecycle expects. */
88
+ export declare function buildOverrideBase(addonName: string): string;
89
+ /** True if the addon dir on disk has the vite dev config personnel needs
90
+ * to start a dev session. When false, the CLI should surface
91
+ * `ci addon scaffold-dev <Name>` as the next step. */
92
+ export declare function hasViteDevConfig(shellRoot: string, addonName: string): Promise<boolean>;
93
+ //# sourceMappingURL=addon-dev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addon-dev.d.ts","sourceRoot":"","sources":["../../../src/lib/ops/addon-dev.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAWH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;AAG5D,eAAO,MAAM,iBAAiB,wCAAwC,CAAA;AACtE,eAAO,MAAM,iBAAiB,yCAAyC,CAAA;AAMvE,eAAO,MAAM,cAAc,OAAO,CAAA;AAClC,eAAO,MAAM,aAAa,OAAO,CAAA;AAQjC;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa7D;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;2EAE2E;AAC3E,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAWhF;AAED;yEACyE;AACzE,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAa5F;AAED;;gEAEgE;AAChE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAY1D;AAED;;;qEAGqE;AACrE,wBAAsB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAQvE;AAED;;;8DAG8D;AAC9D,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAU3D;AA+BD;;;;eAIe;AACf,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAW9F;AAED;;;;;;;;;2BAS2B;AAC3B,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,YAAmB,EAAE,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,QAAQ,GAAG,iBAAiB,GAAG,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAmBxM;AAED;;sEAEsE;AACtE,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;uDAEuD;AACvD,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG7F"}
@@ -0,0 +1,237 @@
1
+ /**
2
+ * Helpers for the `ci addon dev` lifecycle.
3
+ *
4
+ * The dev session has three pieces of state that must stay in sync:
5
+ * 1. The vite process serving the addon source
6
+ * 2. `cores/<core>/.dev-addon-overrides.json` — the runtime config map
7
+ * Nuxt reads via core-loader; tells useAddonLifecycle to fetch
8
+ * entry.ts from vite instead of the dist build
9
+ * 3. `nginx/snippets/addon-dev-routes.conf` — the per-addon location
10
+ * blocks (HMR WS + HTTP module proxy) included by `dev.conf`
11
+ *
12
+ * If any one of these drifts (vite crashes, override stays; snippet stays,
13
+ * override removed; …) the addon page either 502s or shows the error
14
+ * overlay. The CLI treats all three as one transaction: start writes all
15
+ * three, stop tears down all three, and `--reset` nukes them when they
16
+ * fall out of sync (e.g. after a laptop sleep / process kill).
17
+ *
18
+ * The override map is the source of truth: nginx snippets are regenerated
19
+ * from it on every start/stop (full rewrite, not surgical edit) so partial
20
+ * writes can't leave the snippets file corrupted.
21
+ */
22
+ import path from 'node:path';
23
+ import net from 'node:net';
24
+ import { spawnSync } from 'node:child_process';
25
+ import fs from 'fs-extra';
26
+ // Where things live, relative to the dev-shell root.
27
+ export const OVERRIDE_REL_PATH = 'cores/dev/.dev-addon-overrides.json';
28
+ export const SNIPPETS_REL_PATH = 'nginx/snippets/addon-dev-routes.conf';
29
+ // Port pool. 5173 is vite's default; we stay close to it so personnel
30
+ // recognise the port range. 100 slots cover unrealistic team-on-one-box
31
+ // scenarios (each personnel has their own laptop, so most installations
32
+ // will only ever use 1–2 ports).
33
+ export const VITE_PORT_BASE = 5173;
34
+ export const VITE_PORT_MAX = 5273;
35
+ const NGINX_CONTAINER = 'addon_dev_nginx';
36
+ const NGINX_SNIPPET_HEADER = `# AUTO-GENERATED by \`ci addon dev <Name>\` — do not edit by hand.
37
+ # Per-addon HMR proxy snippets. Regenerated from cores/dev/.dev-addon-overrides.json
38
+ # every time \`ci addon dev\` or \`ci addon stop\` runs. Manual edits will be lost.
39
+ `;
40
+ /**
41
+ * Walk up from a starting directory looking for the dev-shell root.
42
+ * Markers: nginx/snippets/ + cores/dev/addons/ + docker-compose.yml.
43
+ * Personnel typically run `ci addon dev` from inside an addon dir or from
44
+ * dev-shell itself; we find dev-shell so they don't have to remember.
45
+ */
46
+ export function findShellRoot(startDir) {
47
+ let current = path.resolve(startDir);
48
+ for (let i = 0; i < 8; i++) {
49
+ const isShell = fs.existsSync(path.join(current, 'nginx', 'snippets')) &&
50
+ fs.existsSync(path.join(current, 'cores', 'dev', 'addons')) &&
51
+ fs.existsSync(path.join(current, 'docker-compose.yml'));
52
+ if (isShell)
53
+ return current;
54
+ const parent = path.dirname(current);
55
+ if (parent === current)
56
+ return null;
57
+ current = parent;
58
+ }
59
+ return null;
60
+ }
61
+ export function overrideMapPath(shellRoot) {
62
+ return path.join(shellRoot, OVERRIDE_REL_PATH);
63
+ }
64
+ export function snippetsFilePath(shellRoot) {
65
+ return path.join(shellRoot, SNIPPETS_REL_PATH);
66
+ }
67
+ /** Returns an empty object when the file is missing or malformed — the
68
+ * alternative (throw) would block the lifecycle CLI from ever recovering
69
+ * a corrupted state. Malformed JSON is surfaced via a warning instead. */
70
+ export async function readOverrideMap(shellRoot) {
71
+ const filePath = overrideMapPath(shellRoot);
72
+ try {
73
+ if (!(await fs.pathExists(filePath)))
74
+ return {};
75
+ const raw = await fs.readFile(filePath, 'utf8');
76
+ if (!raw.trim())
77
+ return {};
78
+ return JSON.parse(raw);
79
+ }
80
+ catch (err) {
81
+ console.warn(`⚠ Corrupt ${OVERRIDE_REL_PATH} — treating as empty (${err.message})`);
82
+ return {};
83
+ }
84
+ }
85
+ /** Atomic write via temp file + rename so a kill between writeFile and
86
+ * rename leaves the previous version intact (rather than truncated). */
87
+ export async function writeOverrideMap(shellRoot, map) {
88
+ const filePath = overrideMapPath(shellRoot);
89
+ await fs.ensureDir(path.dirname(filePath));
90
+ if (Object.keys(map).length === 0) {
91
+ // Empty map → remove the file entirely. core-loader treats missing as
92
+ // empty, so this keeps the dev tenant pristine when no `ci addon dev`
93
+ // sessions are active.
94
+ await fs.remove(filePath);
95
+ return;
96
+ }
97
+ const tmp = `${filePath}.tmp.${process.pid}`;
98
+ await fs.writeFile(tmp, JSON.stringify(map, null, 2) + '\n', 'utf8');
99
+ await fs.move(tmp, filePath, { overwrite: true });
100
+ }
101
+ /** TCP listener probe. Returns true when *anything* is listening on the
102
+ * port — we don't try to distinguish "our vite" from "someone else's
103
+ * service", because either way we shouldn't reuse the port. */
104
+ export function isPortInUse(port) {
105
+ return new Promise((resolve) => {
106
+ const tester = net.createServer();
107
+ tester.once('error', (err) => {
108
+ // EADDRINUSE = in use; anything else = treat as in use (be safe).
109
+ resolve(err.code === 'EADDRINUSE' || true);
110
+ });
111
+ tester.once('listening', () => {
112
+ tester.close(() => resolve(false));
113
+ });
114
+ tester.listen(port, '127.0.0.1');
115
+ });
116
+ }
117
+ /** Walks the pool and returns the first port not currently in the
118
+ * override map AND not listening on TCP. The map check is cheap and
119
+ * catches our own active sessions; the TCP probe catches anything else
120
+ * on the personnel's machine (another vite, a dev server, etc.). */
121
+ export async function findFreePort(map) {
122
+ const reserved = new Set(Object.values(map).map((entry) => entry.port));
123
+ for (let port = VITE_PORT_BASE; port <= VITE_PORT_MAX; port++) {
124
+ if (reserved.has(port))
125
+ continue;
126
+ if (await isPortInUse(port))
127
+ continue;
128
+ return port;
129
+ }
130
+ throw new Error(`No free port in ${VITE_PORT_BASE}-${VITE_PORT_MAX}. Run \`ci addon dev --reset\` to clear stale entries.`);
131
+ }
132
+ /** Process-alive check. Sending signal 0 doesn't actually deliver a
133
+ * signal; it just probes whether the kernel has a process with that PID
134
+ * the current user can signal. We use this on `--list` to spot dead
135
+ * sessions whose entry still lingers in the override map. */
136
+ export function isPidAlive(pid) {
137
+ if (pid === undefined || pid <= 0)
138
+ return false;
139
+ try {
140
+ process.kill(pid, 0);
141
+ return true;
142
+ }
143
+ catch (err) {
144
+ const code = err.code;
145
+ // EPERM means "process exists but you can't signal it" → alive.
146
+ return code === 'EPERM';
147
+ }
148
+ }
149
+ /** Generate one location block for an active session.
150
+ * Layout matches the POC snippet that shipped in Faz 1 — exact-match
151
+ * WebSocket route first (no URI strip; `server.hmr.path: '__hmr'` makes
152
+ * vite join base+path internally), then the prefix HTTP route (NO
153
+ * proxy_pass trailing slash; vite's `base` config expects to see the
154
+ * full prefix and strips it itself). */
155
+ function renderSnippet(addonName, port) {
156
+ return `
157
+ # ── ${addonName} ─────────────────────────────────────────────────
158
+ location = /__addon-dev/${addonName}/__hmr {
159
+ proxy_pass http://host.docker.internal:${port};
160
+ proxy_http_version 1.1;
161
+ proxy_set_header Upgrade $http_upgrade;
162
+ proxy_set_header Connection $connection_upgrade;
163
+ proxy_set_header Host $host;
164
+ proxy_read_timeout 3600s;
165
+ proxy_send_timeout 3600s;
166
+ }
167
+
168
+ location /__addon-dev/${addonName}/ {
169
+ proxy_pass http://host.docker.internal:${port};
170
+ proxy_http_version 1.1;
171
+ proxy_set_header Upgrade $http_upgrade;
172
+ proxy_set_header Connection $connection_upgrade;
173
+ proxy_set_header Host $host;
174
+ }
175
+ `;
176
+ }
177
+ /** Full rewrite of the snippets file from the override map. Partial
178
+ * writes can't corrupt state because we're not editing in place — the
179
+ * entire file is replaced atomically. Empty map → empty file (one
180
+ * header comment, no location blocks), which nginx treats as a no-op
181
+ * include. */
182
+ export async function writeNginxSnippets(shellRoot, map) {
183
+ const filePath = snippetsFilePath(shellRoot);
184
+ await fs.ensureDir(path.dirname(filePath));
185
+ const blocks = Object.entries(map)
186
+ .sort(([a], [b]) => a.localeCompare(b))
187
+ .map(([name, entry]) => renderSnippet(name, entry.port))
188
+ .join('\n');
189
+ const content = NGINX_SNIPPET_HEADER + blocks;
190
+ const tmp = `${filePath}.tmp.${process.pid}`;
191
+ await fs.writeFile(tmp, content, 'utf8');
192
+ await fs.move(tmp, filePath, { overwrite: true });
193
+ }
194
+ /** Try `nginx -s reload` inside the container first (fast, no downtime).
195
+ * Fall back to `docker compose restart nginx` when reload doesn't pick
196
+ * the new file up — macOS Docker Desktop's bind mounts can serve a
197
+ * stale view of the snippets file for a few seconds after a host-side
198
+ * write, and `-s reload` rereads the cached version. The restart forces
199
+ * a fresh mount snapshot. Faz 1 POC surfaced this; documented inline so
200
+ * the workaround doesn't look like cargo-culting in a year.
201
+ *
202
+ * Validation (`nginx -t`) always runs first — a broken config doesn't
203
+ * hit a running nginx. */
204
+ export async function reloadNginx(shellRoot, { allowCompose = true } = {}) {
205
+ const test = spawnSync('docker', ['exec', NGINX_CONTAINER, 'nginx', '-t'], { encoding: 'utf8' });
206
+ if (test.status !== 0) {
207
+ return { ok: false, method: 'failed', detail: (test.stderr || test.stdout || 'nginx -t failed').trim() };
208
+ }
209
+ const reload = spawnSync('docker', ['exec', NGINX_CONTAINER, 'nginx', '-s', 'reload'], { encoding: 'utf8' });
210
+ if (reload.status === 0) {
211
+ return { ok: true, method: 'reload', detail: 'nginx -s reload OK' };
212
+ }
213
+ if (!allowCompose) {
214
+ return { ok: false, method: 'failed', detail: (reload.stderr || reload.stdout || 'reload failed').trim() };
215
+ }
216
+ // Compose restart fallback — requires being run from a dir where compose
217
+ // resolves the dev-shell project (shellRoot has docker-compose.yml).
218
+ const restart = spawnSync('docker', ['compose', 'restart', 'nginx'], { encoding: 'utf8', cwd: shellRoot });
219
+ if (restart.status === 0) {
220
+ return { ok: true, method: 'compose-restart', detail: 'docker compose restart nginx OK (used after reload failed)' };
221
+ }
222
+ return { ok: false, method: 'failed', detail: (restart.stderr || restart.stdout || 'compose restart failed').trim() };
223
+ }
224
+ /** Build the `base` URL the override map publishes to Nuxt. Lives here
225
+ * so the URL pattern is defined in one place and both `ci addon dev`
226
+ * and any future tooling agree on what useAddonLifecycle expects. */
227
+ export function buildOverrideBase(addonName) {
228
+ return `/__addon-dev/${addonName}/ui`;
229
+ }
230
+ /** True if the addon dir on disk has the vite dev config personnel needs
231
+ * to start a dev session. When false, the CLI should surface
232
+ * `ci addon scaffold-dev <Name>` as the next step. */
233
+ export async function hasViteDevConfig(shellRoot, addonName) {
234
+ const cfg = path.join(shellRoot, 'cores', 'dev', 'addons', addonName, 'vite.config.dev.js');
235
+ return fs.pathExists(cfg);
236
+ }
237
+ //# sourceMappingURL=addon-dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addon-dev.js","sourceRoot":"","sources":["../../../src/lib/ops/addon-dev.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Quality stack templates shared by `ci addon create` (new addons) and
3
+ * `ci addon scaffold-quality` (existing addon backport — Faz 5B).
4
+ *
5
+ * Tooling binaries (eslint, vue-tsc, prettier) live in dev-shell's
6
+ * top-level node_modules so a single `npm install` covers every addon
7
+ * on the machine — the configs here just point each addon's source
8
+ * files at the shared toolchain.
9
+ *
10
+ * Legacy .eslintrc.json instead of flat config: ESLint 9's flat config
11
+ * requires a JS module file in every addon (with explicit plugin
12
+ * imports). The legacy JSON form works fine in ESLint 8.x and stays
13
+ * personnel-friendly. We'll switch when the Vue + TypeScript plugin
14
+ * ecosystem catches up to flat config.
15
+ */
16
+ export declare function genEslintConfig(): object;
17
+ export declare function genPrettierConfig(): object;
18
+ export declare function genEditorConfig(): string;
19
+ export declare function genTsConfig(): object;
20
+ /**
21
+ * Ambient type declarations for the addon source. The runtime resolves
22
+ * `@cicore/shared` via the host's import map and `$fetch` is Nuxt's
23
+ * global, but vue-tsc has no way to find either without these shims.
24
+ * Declared as `any` for now — Faz 6 (SDK docs) ships richer type
25
+ * surfaces alongside the API reference and replaces these stubs.
26
+ */
27
+ export declare function genAmbientTypes(): string;
28
+ export declare function genGitlabCi(addonName: string): string;
29
+ /** Apply the full quality template to an existing addon dir. Idempotent:
30
+ * files already present are kept unless `overwrite` is true. */
31
+ export interface ApplyQualityTemplateResult {
32
+ written: string[];
33
+ skipped: string[];
34
+ }
35
+ export declare function applyQualityTemplate(addonDir: string, addonName: string, options?: {
36
+ overwrite?: boolean;
37
+ }): Promise<ApplyQualityTemplateResult>;
38
+ //# sourceMappingURL=addon-quality.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addon-quality.d.ts","sourceRoot":"","sources":["../../../src/lib/ops/addon-quality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,wBAAgB,eAAe,IAAI,MAAM,CAiCxC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAU1C;AAED,wBAAgB,eAAe,IAAI,MAAM,CAcxC;AAED,wBAAgB,WAAW,IAAI,MAAM,CAgCpC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAsFxC;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAwGrD;AAED;iEACiE;AACjE,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACpC,OAAO,CAAC,0BAA0B,CAAC,CAgCrC"}