lucy-cli 2.0.0-alpha.11 → 2.0.0-alpha.13

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 (587) hide show
  1. package/dist/Gulpfile.d.ts +35 -0
  2. package/dist/Gulpfile.js +132 -0
  3. package/dist/Gulpfile.js.map +1 -0
  4. package/dist/args.d.ts +1 -6
  5. package/dist/args.js +57 -7
  6. package/dist/args.js.map +1 -0
  7. package/dist/commands/checks.d.ts +7 -0
  8. package/dist/commands/checks.js +47 -0
  9. package/dist/commands/checks.js.map +1 -0
  10. package/dist/commands/cleanup copy.d.ts +4 -0
  11. package/dist/commands/cleanup copy.js +10 -0
  12. package/dist/commands/cleanup copy.js.map +1 -0
  13. package/dist/commands/cleanup.d.ts +4 -0
  14. package/dist/commands/cleanup.js +10 -0
  15. package/dist/commands/cleanup.js.map +1 -0
  16. package/dist/commands/copy.d.ts +6 -0
  17. package/dist/commands/copy.js +20 -0
  18. package/dist/commands/copy.js.map +1 -0
  19. package/dist/commands/edit.d.ts +10 -0
  20. package/dist/commands/edit.js +69 -0
  21. package/dist/commands/edit.js.map +1 -0
  22. package/dist/commands/exec copy.d.ts +3 -0
  23. package/dist/commands/exec copy.js +20 -0
  24. package/dist/commands/exec copy.js.map +1 -0
  25. package/dist/commands/exec.d.ts +5 -0
  26. package/dist/commands/exec.js +40 -0
  27. package/dist/commands/exec.js.map +1 -0
  28. package/dist/commands/files.d.ts +7 -0
  29. package/dist/commands/files.js +28 -0
  30. package/dist/commands/files.js.map +1 -0
  31. package/dist/commands/git.d.ts +8 -0
  32. package/dist/commands/git.js +104 -0
  33. package/dist/commands/git.js.map +1 -0
  34. package/dist/commands/home.d.ts +4 -0
  35. package/dist/commands/home.js +18 -0
  36. package/dist/commands/home.js.map +1 -0
  37. package/dist/commands/install.d.ts +8 -0
  38. package/dist/commands/install.js +110 -0
  39. package/dist/commands/install.js.map +1 -0
  40. package/dist/commands/read.d.ts +6 -0
  41. package/dist/commands/read.js +41 -0
  42. package/dist/commands/read.js.map +1 -0
  43. package/dist/commands/write.d.ts +7 -0
  44. package/dist/commands/write.js +28 -0
  45. package/dist/commands/write.js.map +1 -0
  46. package/dist/commands.js +1 -0
  47. package/dist/commands.js.map +1 -0
  48. package/dist/config.d.ts +30 -7
  49. package/dist/config.js +89 -26
  50. package/dist/config.js.map +1 -0
  51. package/dist/error.d.ts +1 -9
  52. package/dist/error.js +1 -2
  53. package/dist/error.js.map +1 -0
  54. package/dist/gulp/backend.d.ts +3 -0
  55. package/dist/gulp/backend.js +92 -0
  56. package/dist/gulp/backend.js.map +1 -0
  57. package/dist/gulp/checks.d.ts +3 -0
  58. package/dist/gulp/checks.js +194 -0
  59. package/dist/gulp/checks.js.map +1 -0
  60. package/dist/gulp/clean.d.ts +3 -0
  61. package/dist/gulp/clean.js +33 -0
  62. package/dist/gulp/clean.js.map +1 -0
  63. package/dist/gulp/copy.d.ts +2 -0
  64. package/dist/gulp/copy.js +34 -0
  65. package/dist/gulp/copy.js.map +1 -0
  66. package/dist/gulp/helpers.d.ts +2 -0
  67. package/dist/gulp/helpers.js +21 -0
  68. package/dist/gulp/helpers.js.map +1 -0
  69. package/dist/gulp/pages.d.ts +2 -0
  70. package/dist/gulp/pages.js +39 -0
  71. package/dist/gulp/pages.js.map +1 -0
  72. package/dist/gulp/pipeline.d.ts +1 -0
  73. package/dist/gulp/pipeline.js +29 -0
  74. package/dist/gulp/pipeline.js.map +1 -0
  75. package/dist/gulp/public.d.ts +2 -0
  76. package/dist/gulp/public.js +50 -0
  77. package/dist/gulp/public.js.map +1 -0
  78. package/dist/gulp/styles.d.ts +2 -0
  79. package/dist/gulp/styles.js +40 -0
  80. package/dist/gulp/styles.js.map +1 -0
  81. package/dist/gulp/templates.d.ts +2 -0
  82. package/dist/gulp/templates.js +33 -0
  83. package/dist/gulp/templates.js.map +1 -0
  84. package/dist/gulp/types.d.ts +4 -0
  85. package/dist/gulp/types.js +289 -0
  86. package/dist/gulp/types.js.map +1 -0
  87. package/dist/gulp/watchers.d.ts +9 -0
  88. package/dist/gulp/watchers.js +57 -0
  89. package/dist/gulp/watchers.js.map +1 -0
  90. package/dist/helpers.d.ts +9 -0
  91. package/dist/helpers.js +87 -0
  92. package/dist/helpers.js.map +1 -0
  93. package/dist/index.d.ts +1 -0
  94. package/dist/index.js +78 -9
  95. package/dist/index.js.map +1 -0
  96. package/dist/init/blocks.d.ts +5 -0
  97. package/dist/init/blocks.js +60 -0
  98. package/dist/init/blocks.js.map +1 -0
  99. package/dist/init/cargo copy.d.ts +2 -0
  100. package/dist/init/cargo copy.js +16 -0
  101. package/dist/init/cargo copy.js.map +1 -0
  102. package/dist/init/cargo.d.ts +2 -0
  103. package/dist/init/cargo.js +19 -0
  104. package/dist/init/cargo.js.map +1 -0
  105. package/dist/init/expo copy.d.ts +5 -0
  106. package/dist/init/expo copy.js +48 -0
  107. package/dist/init/expo copy.js.map +1 -0
  108. package/dist/init/expo.d.ts +5 -0
  109. package/dist/init/expo.js +50 -0
  110. package/dist/init/expo.js.map +1 -0
  111. package/dist/init/gitModules.d.ts +2 -0
  112. package/dist/init/gitModules.js +13 -0
  113. package/dist/init/gitModules.js.map +1 -0
  114. package/dist/init/index.d.ts +4 -0
  115. package/dist/init/index.js +62 -0
  116. package/dist/init/index.js.map +1 -0
  117. package/dist/init/lucy.d.ts +1 -0
  118. package/dist/init/lucy.js +2 -0
  119. package/dist/init/monorepo copy.d.ts +4 -0
  120. package/dist/init/monorepo copy.js +28 -0
  121. package/dist/init/monorepo copy.js.map +1 -0
  122. package/dist/init/monorepo.d.ts +4 -0
  123. package/dist/init/monorepo.js +35 -0
  124. package/dist/init/monorepo.js.map +1 -0
  125. package/dist/init/prepare.d.ts +8 -0
  126. package/dist/init/prepare.js +20 -0
  127. package/dist/init/prepare.js.map +1 -0
  128. package/dist/init/prepareVelo.d.ts +2 -0
  129. package/dist/init/prepareVelo.js +16 -0
  130. package/dist/init/prepareVelo.js.map +1 -0
  131. package/dist/init/sync.d.ts +2 -0
  132. package/dist/init/sync.js +88 -0
  133. package/dist/init/sync.js.map +1 -0
  134. package/dist/init/tauri.d.ts +5 -0
  135. package/dist/init/tauri.js +29 -0
  136. package/dist/init/tauri.js.map +1 -0
  137. package/dist/init/templates.d.ts +5 -0
  138. package/dist/init/templates.js +93 -0
  139. package/dist/init/templates.js.map +1 -0
  140. package/dist/init/velo.d.ts +5 -0
  141. package/dist/init/velo.js +58 -0
  142. package/dist/init/velo.js.map +1 -0
  143. package/dist/init/write.d.ts +5 -0
  144. package/dist/init/write.js +15 -0
  145. package/dist/models.js +1 -0
  146. package/dist/models.js.map +1 -0
  147. package/dist/policy.js +1 -0
  148. package/dist/policy.js.map +1 -0
  149. package/dist/prepare.js +1 -0
  150. package/dist/prepare.js.map +1 -0
  151. package/dist/runtime.d.ts +1 -1
  152. package/dist/runtime.js +1 -0
  153. package/dist/runtime.js.map +1 -0
  154. package/dist/schemas/gulp.d.ts +26 -0
  155. package/dist/schemas/gulp.js +8 -0
  156. package/dist/schemas/gulp.js.map +1 -0
  157. package/dist/schemas/index.d.ts +10 -0
  158. package/dist/schemas/index.js +9 -0
  159. package/dist/schemas/index.js.map +1 -0
  160. package/dist/schemas/lucy.d.ts +26 -0
  161. package/dist/schemas/lucy.js +39 -0
  162. package/dist/schemas/lucy.js.map +1 -0
  163. package/dist/schemas/models.d.ts +37 -0
  164. package/dist/schemas/models.js +2 -0
  165. package/dist/schemas/models.js.map +1 -0
  166. package/dist/schemas/tsconfig.d.ts +37 -0
  167. package/dist/schemas/tsconfig.js +2 -0
  168. package/dist/schemas/tsconfig.js.map +1 -0
  169. package/dist/schemas/types.d.ts +31 -0
  170. package/dist/schemas/types.js +5 -1
  171. package/dist/schemas/types.js.map +1 -0
  172. package/dist/states.js +1 -0
  173. package/dist/states.js.map +1 -0
  174. package/dist/sync/index.js +2 -0
  175. package/dist/sync/index.js.map +1 -0
  176. package/dist/sync/sync.d.ts +3 -0
  177. package/dist/sync/sync.js +92 -0
  178. package/dist/sync/sync.js.map +1 -0
  179. package/dist/tasks/Gulpfile.d.ts +4 -0
  180. package/dist/tasks/Gulpfile.js +112 -0
  181. package/dist/tasks/Gulpfile.js.map +1 -0
  182. package/dist/tasks/gitModules.d.ts +2 -0
  183. package/dist/tasks/gitModules.js +13 -0
  184. package/dist/tasks/gitModules.js.map +1 -0
  185. package/dist/tasks/gulp/backend.d.ts +3 -0
  186. package/dist/tasks/gulp/backend.js +92 -0
  187. package/dist/tasks/gulp/backend.js.map +1 -0
  188. package/dist/tasks/gulp/checks.d.ts +3 -0
  189. package/dist/tasks/gulp/checks.js +196 -0
  190. package/dist/tasks/gulp/checks.js.map +1 -0
  191. package/dist/tasks/gulp/clean.d.ts +3 -0
  192. package/dist/tasks/gulp/clean.js +33 -0
  193. package/dist/tasks/gulp/clean.js.map +1 -0
  194. package/dist/tasks/gulp/copy.d.ts +2 -0
  195. package/dist/tasks/gulp/copy.js +33 -0
  196. package/dist/tasks/gulp/copy.js.map +1 -0
  197. package/dist/tasks/gulp/helpers.d.ts +3 -0
  198. package/dist/tasks/gulp/helpers.js +19 -0
  199. package/dist/tasks/gulp/helpers.js.map +1 -0
  200. package/dist/tasks/gulp/pages.d.ts +2 -0
  201. package/dist/tasks/gulp/pages.js +39 -0
  202. package/dist/tasks/gulp/pages.js.map +1 -0
  203. package/dist/tasks/gulp/pipeline.d.ts +1 -0
  204. package/dist/tasks/gulp/pipeline.js +29 -0
  205. package/dist/tasks/gulp/pipeline.js.map +1 -0
  206. package/dist/tasks/gulp/public.d.ts +2 -0
  207. package/dist/tasks/gulp/public.js +50 -0
  208. package/dist/tasks/gulp/public.js.map +1 -0
  209. package/dist/tasks/gulp/styles.d.ts +2 -0
  210. package/dist/tasks/gulp/styles.js +40 -0
  211. package/dist/tasks/gulp/styles.js.map +1 -0
  212. package/dist/tasks/gulp/templates.d.ts +2 -0
  213. package/dist/tasks/gulp/templates.js +45 -0
  214. package/dist/tasks/gulp/templates.js.map +1 -0
  215. package/dist/tasks/gulp/types.d.ts +4 -0
  216. package/dist/tasks/gulp/types.js +293 -0
  217. package/dist/tasks/gulp/types.js.map +1 -0
  218. package/dist/tasks/gulp/watchers.d.ts +2 -0
  219. package/dist/tasks/gulp/watchers.js +59 -0
  220. package/dist/tasks/gulp/watchers.js.map +1 -0
  221. package/dist/tasks/index.d.ts +4 -0
  222. package/dist/tasks/index.js +23 -0
  223. package/dist/tasks/index.js.map +1 -0
  224. package/dist/tasks/sync.d.ts +2 -0
  225. package/dist/tasks/sync.js +88 -0
  226. package/dist/tasks/sync.js.map +1 -0
  227. package/dist/tasks/syncPkg.d.ts +3 -0
  228. package/dist/tasks/syncPkg.js +13 -0
  229. package/dist/tasks/syncPkg.js.map +1 -0
  230. package/dist/tasks/syncSettings.d.ts +3 -0
  231. package/dist/tasks/syncSettings.js +18 -0
  232. package/dist/tasks/syncSettings.js.map +1 -0
  233. package/dist/utils/index.js +2 -0
  234. package/dist/utils/index.js.map +1 -0
  235. package/dist/utils/install.js +1 -0
  236. package/dist/utils/logger.d.ts +17 -0
  237. package/dist/utils/logger.js +37 -0
  238. package/dist/utils/logger.js.map +1 -0
  239. package/dist/wix-sdk/check.d.ts +4 -0
  240. package/dist/wix-sdk/check.js +23 -0
  241. package/dist/wix-sdk/check.js.map +1 -0
  242. package/dist/wix-sdk/client.d.ts +10 -0
  243. package/dist/wix-sdk/client.js +18 -0
  244. package/dist/wix-sdk/client.js.map +1 -0
  245. package/dist/wix-sdk/import.d.ts +1 -0
  246. package/dist/wix-sdk/import.js +88 -0
  247. package/dist/wix-sdk/import.js.map +1 -0
  248. package/dist/wix-sdk/index.d.ts +4 -0
  249. package/dist/wix-sdk/index.js +15 -0
  250. package/dist/wix-sdk/index.js.map +1 -0
  251. package/dist/wix-sdk/init copy.d.ts +4 -0
  252. package/dist/wix-sdk/init copy.js +51 -0
  253. package/dist/wix-sdk/init copy.js.map +1 -0
  254. package/dist/wix-sdk/init.d.ts +4 -0
  255. package/dist/wix-sdk/init.js +51 -0
  256. package/dist/wix-sdk/init.js.map +1 -0
  257. package/dist/wix-sdk/is-allive.d.ts +4 -0
  258. package/dist/wix-sdk/is-allive.js +37 -0
  259. package/dist/wix-sdk/is-allive.js.map +1 -0
  260. package/dist/wix-sdk/run.d.ts +4 -0
  261. package/dist/wix-sdk/run.js +53 -0
  262. package/dist/wix-sdk/run.js.map +1 -0
  263. package/dist/wix-sdk/sync copy.d.ts +1 -0
  264. package/dist/wix-sdk/sync copy.js +88 -0
  265. package/dist/wix-sdk/sync copy.js.map +1 -0
  266. package/dist/wix-sdk/sync.d.ts +1 -0
  267. package/dist/wix-sdk/sync.js +88 -0
  268. package/dist/wix-sdk/sync.js.map +1 -0
  269. package/dist/wix-sdk/wix_sdk_check.d.ts +4 -0
  270. package/dist/wix-sdk/wix_sdk_check.js +37 -0
  271. package/dist/wix-sdk/wix_sdk_check.js.map +1 -0
  272. package/dist/wix-sync/client.d.ts +3 -0
  273. package/dist/wix-sync/client.js +5 -0
  274. package/dist/wix-sync/client.js.map +1 -0
  275. package/dist/wix-sync/export copy.d.ts +4 -0
  276. package/dist/wix-sync/export copy.js +21 -0
  277. package/dist/wix-sync/export copy.js.map +1 -0
  278. package/dist/wix-sync/export.d.ts +4 -0
  279. package/dist/wix-sync/export.js +15 -0
  280. package/dist/wix-sync/export.js.map +1 -0
  281. package/dist/wix-sync/import copy.d.ts +4 -0
  282. package/dist/wix-sync/import copy.js +21 -0
  283. package/dist/wix-sync/import copy.js.map +1 -0
  284. package/dist/wix-sync/import.d.ts +4 -0
  285. package/dist/wix-sync/import.js +26 -0
  286. package/dist/wix-sync/import.js.map +1 -0
  287. package/dist/wix-sync/index.d.ts +4 -0
  288. package/dist/wix-sync/index.js +35 -0
  289. package/dist/wix-sync/index.js.map +1 -0
  290. package/dist/wix-sync/init copy.d.ts +4 -0
  291. package/dist/wix-sync/init copy.js +54 -0
  292. package/dist/wix-sync/init copy.js.map +1 -0
  293. package/dist/wix-sync/init.d.ts +4 -0
  294. package/dist/wix-sync/init.js +74 -0
  295. package/dist/wix-sync/init.js.map +1 -0
  296. package/dist/wix-sync/is-alive.d.ts +4 -0
  297. package/dist/wix-sync/is-alive.js +23 -0
  298. package/dist/wix-sync/is-alive.js.map +1 -0
  299. package/dist/wix-sync/is-allive copy.d.ts +4 -0
  300. package/dist/wix-sync/is-allive copy.js +23 -0
  301. package/dist/wix-sync/is-allive copy.js.map +1 -0
  302. package/dist/wix-sync/is-allive.d.ts +4 -0
  303. package/dist/wix-sync/is-allive.js +23 -0
  304. package/dist/wix-sync/is-allive.js.map +1 -0
  305. package/dist/wix-sync/migrate.d.ts +4 -0
  306. package/dist/wix-sync/migrate.js +21 -0
  307. package/dist/wix-sync/migrate.js.map +1 -0
  308. package/dist/wix-sync/sync-od.js +100 -0
  309. package/dist/wix-sync/sync-od.js.map +1 -0
  310. package/dist/wix-sync/sync.d.ts +4 -0
  311. package/dist/wix-sync/sync.js +26 -0
  312. package/dist/wix-sync/sync.js.map +1 -0
  313. package/dist/wix-sync/sync2.d.ts +4 -0
  314. package/dist/wix-sync/sync2.js +25 -0
  315. package/dist/wix-sync/sync2.js.map +1 -0
  316. package/dist/wix-sync copy/index.d.ts +4 -0
  317. package/dist/wix-sync copy/index.js +17 -0
  318. package/dist/wix-sync copy/index.js.map +1 -0
  319. package/dist/wix-sync copy/init.d.ts +4 -0
  320. package/dist/wix-sync copy/init.js +58 -0
  321. package/dist/wix-sync copy/init.js.map +1 -0
  322. package/dist/wix-sync copy/is-allive.d.ts +4 -0
  323. package/dist/wix-sync copy/is-allive.js +36 -0
  324. package/dist/wix-sync copy/is-allive.js.map +1 -0
  325. package/dist/wix-sync copy/sync.d.ts +1 -0
  326. package/dist/wix-sync copy/sync.js +88 -0
  327. package/dist/wix-sync copy/sync.js.map +1 -0
  328. package/files/sync-data/data/test.csv +17 -0
  329. package/files/sync-data/schema/test.json +11 -0
  330. package/files/templates/block[D]/files/.stylelintrc.js +8 -0
  331. package/files/templates/block[D]/lucy.json +8 -0
  332. package/files/templates/cargo[D]/files/.env +1 -0
  333. package/files/templates/cargo[D]/files/Cargo.toml +238 -0
  334. package/files/templates/cargo[D]/files/Makefile.toml +4 -0
  335. package/files/templates/cargo[D]/files/build/main.rs +35 -0
  336. package/files/templates/cargo[D]/files/config/beta.json +19 -0
  337. package/files/templates/cargo[D]/files/config/ci.json +15 -0
  338. package/files/templates/cargo[D]/files/config/default.json +71 -0
  339. package/files/templates/cargo[D]/files/config/development.json +10 -0
  340. package/files/templates/cargo[D]/files/config/produktion.json +5 -0
  341. package/files/templates/cargo[D]/files/config/stage.json +4 -0
  342. package/files/templates/cargo[D]/files/locales/todo.yml +3 -0
  343. package/files/templates/cargo[D]/files/public/index.html +1 -0
  344. package/files/templates/cargo[D]/lucy.json +14 -0
  345. package/files/templates/expo[D]/files/.stylelintrc.js +8 -0
  346. package/files/templates/expo[D]/files/components/ui/.gitkeep +0 -0
  347. package/files/templates/expo[D]/lucy.json +81 -0
  348. package/files/templates/monorepo[D]/files/.nvmrc +1 -0
  349. package/files/templates/monorepo[D]/files/.prettierignore +23 -0
  350. package/files/templates/monorepo[D]/files/.prettierrc.json +15 -0
  351. package/files/templates/monorepo[D]/files/.stylelintrc.js +8 -0
  352. package/files/templates/monorepo[D]/files/.yarnrc +1 -0
  353. package/files/templates/monorepo[D]/files/.yarnrc.yml +3 -0
  354. package/files/templates/monorepo[D]/files/README.md +137 -0
  355. package/files/templates/monorepo[D]/files/currents.config.ts +5 -0
  356. package/files/templates/monorepo[D]/files/package.json +39 -0
  357. package/files/templates/monorepo[D]/files/turbo.json +34 -0
  358. package/files/templates/monorepo[D]/files/typedoc.json +25 -0
  359. package/files/templates/monorepo[D]/files/vitest.config.ts +27 -0
  360. package/files/templates/monorepo[D]/lucy.json +45 -0
  361. package/files/templates/tauri[D]/lucy.json +8 -0
  362. package/files/templates/velo[D]/files/.gitmodules +0 -0
  363. package/files/templates/velo[D]/files/.prettierignore +23 -0
  364. package/files/templates/velo[D]/files/.prettierrc.js +16 -0
  365. package/files/templates/velo[D]/files/typescript/__mocks__/.gitkeep +0 -0
  366. package/files/templates/velo[D]/files/typescript/backend/data.ts +0 -0
  367. package/files/templates/velo[D]/files/typescript/backend/events.ts +0 -0
  368. package/files/templates/velo[D]/files/typescript/pages/.gitkeep +0 -0
  369. package/files/templates/velo[D]/files/typescript/public/.gitkeep +0 -0
  370. package/files/templates/velo[D]/files/typescript/public/scss/app.scss +0 -0
  371. package/files/templates/velo[D]/files/typescript/styles/.gitkeep +0 -0
  372. package/files/templates/velo[D]/files/typescript/styles/global.scss +0 -0
  373. package/files/templates/velo[D]/lucy.json +136 -0
  374. package/old/Gulpfile.d.ts +34 -0
  375. package/old/Gulpfile.js +116 -0
  376. package/old/Gulpfile.js.map +1 -0
  377. package/old/gulp/backend.d.ts +3 -0
  378. package/old/gulp/backend.js +92 -0
  379. package/old/gulp/backend.js.map +1 -0
  380. package/old/gulp/checks.d.ts +3 -0
  381. package/old/gulp/checks.js +205 -0
  382. package/old/gulp/checks.js.map +1 -0
  383. package/old/gulp/clean.d.ts +3 -0
  384. package/old/gulp/clean.js +29 -0
  385. package/old/gulp/clean.js.map +1 -0
  386. package/old/gulp/copy.d.ts +2 -0
  387. package/old/gulp/copy.js +34 -0
  388. package/old/gulp/copy.js.map +1 -0
  389. package/old/gulp/helpers.d.ts +2 -0
  390. package/old/gulp/helpers.js +25 -0
  391. package/old/gulp/helpers.js.map +1 -0
  392. package/old/gulp/pages.d.ts +2 -0
  393. package/old/gulp/pages.js +37 -0
  394. package/old/gulp/pages.js.map +1 -0
  395. package/old/gulp/pipeline.d.ts +1 -0
  396. package/old/gulp/pipeline.js +29 -0
  397. package/old/gulp/pipeline.js.map +1 -0
  398. package/old/gulp/public.d.ts +2 -0
  399. package/old/gulp/public.js +50 -0
  400. package/old/gulp/public.js.map +1 -0
  401. package/old/gulp/styles.d.ts +2 -0
  402. package/old/gulp/styles.js +40 -0
  403. package/old/gulp/styles.js.map +1 -0
  404. package/old/gulp/templates.d.ts +2 -0
  405. package/old/gulp/templates.js +33 -0
  406. package/old/gulp/templates.js.map +1 -0
  407. package/old/gulp/types.d.ts +4 -0
  408. package/old/gulp/types.js +289 -0
  409. package/old/gulp/types.js.map +1 -0
  410. package/old/gulp/watchers.d.ts +9 -0
  411. package/old/gulp/watchers.js +59 -0
  412. package/old/gulp/watchers.js.map +1 -0
  413. package/old/helpers.d.ts +32 -0
  414. package/old/helpers.js +267 -0
  415. package/old/helpers.js.map +1 -0
  416. package/{src copy/helpers.ts → old/helpers.ts} +1 -1
  417. package/old/index.d.ts +59 -0
  418. package/old/index.js +288 -0
  419. package/old/index.js.map +1 -0
  420. package/old/init.d.ts +8 -0
  421. package/old/init.js +165 -0
  422. package/old/init.js.map +1 -0
  423. package/old/models.d.ts +37 -0
  424. package/old/models.js +2 -0
  425. package/old/models.js.map +1 -0
  426. package/old/prepare.d.ts +8 -0
  427. package/old/prepare.js +20 -0
  428. package/old/prepare.js.map +1 -0
  429. package/old/schemas/index.d.ts +0 -0
  430. package/old/schemas/index.js +2 -0
  431. package/old/schemas/index.js.map +1 -0
  432. package/old/schemas/index.ts +0 -0
  433. package/old/schemas/types.d.ts +0 -0
  434. package/old/schemas/types.js +2 -0
  435. package/old/schemas/types.js.map +1 -0
  436. package/old/schemas/types.ts +0 -0
  437. package/old/sync.d.ts +2 -0
  438. package/old/sync.js +88 -0
  439. package/old/sync.js.map +1 -0
  440. package/package.json +7 -7
  441. package/src/args.ts +56 -18
  442. package/src/commands/checks.ts +51 -0
  443. package/src/commands/cleanup.ts +11 -0
  444. package/src/commands/copy.ts +28 -0
  445. package/src/commands/edit.ts +83 -0
  446. package/src/commands/exec.ts +37 -0
  447. package/src/commands/git.ts +113 -0
  448. package/src/commands/home.ts +22 -0
  449. package/src/commands/install.ts +186 -0
  450. package/src/commands/read.ts +46 -0
  451. package/src/commands/write.ts +45 -0
  452. package/src/config.ts +116 -35
  453. package/src/error.ts +1 -2
  454. package/src/helpers.ts +90 -0
  455. package/src/index.ts +89 -13
  456. package/src/init/blocks.ts +82 -0
  457. package/src/init/cargo.ts +22 -0
  458. package/src/init/expo.ts +66 -0
  459. package/src/init/gitModules.ts +15 -0
  460. package/src/init/index.ts +63 -0
  461. package/src/init/monorepo.ts +39 -0
  462. package/src/init/prepareVelo.ts +19 -0
  463. package/src/init/tauri.ts +40 -0
  464. package/src/init/templates.ts +98 -0
  465. package/src/init/velo.ts +62 -0
  466. package/src/runtime.ts +1 -0
  467. package/src/schemas/gulp.ts +32 -0
  468. package/src/schemas/index.ts +12 -1
  469. package/src/schemas/lucy.ts +40 -0
  470. package/src/schemas/types.ts +38 -0
  471. package/src/tasks/Gulpfile.ts +208 -0
  472. package/src/tasks/gulp/backend.ts +112 -0
  473. package/src/tasks/gulp/checks.ts +215 -0
  474. package/src/tasks/gulp/clean.ts +38 -0
  475. package/src/tasks/gulp/copy.ts +37 -0
  476. package/src/tasks/gulp/helpers.ts +18 -0
  477. package/src/tasks/gulp/pages.ts +43 -0
  478. package/src/tasks/gulp/pipeline.ts +31 -0
  479. package/src/tasks/gulp/public.ts +60 -0
  480. package/src/tasks/gulp/styles.ts +46 -0
  481. package/src/tasks/gulp/templates.ts +53 -0
  482. package/src/tasks/gulp/types.ts +310 -0
  483. package/src/tasks/gulp/watchers.ts +96 -0
  484. package/src/tasks/index.ts +26 -0
  485. package/src/tasks/syncSettings.ts +21 -0
  486. package/src/types.d.ts +1 -1
  487. package/src/utils/index.ts +0 -0
  488. package/src/utils/logger.ts +40 -0
  489. package/src/wix-sdk/check.ts +24 -0
  490. package/src/wix-sdk/client.ts +18 -0
  491. package/src/wix-sdk/index.ts +17 -0
  492. package/src/wix-sdk/init.ts +54 -0
  493. package/src/wix-sdk/run.ts +56 -0
  494. package/src/wix-sync/client.ts +6 -0
  495. package/src/wix-sync/export.ts +19 -0
  496. package/src/wix-sync/import.ts +27 -0
  497. package/src/wix-sync/index.ts +36 -0
  498. package/src/wix-sync/init.ts +77 -0
  499. package/src/wix-sync/is-alive.ts +25 -0
  500. package/src/wix-sync/migrate.ts +23 -0
  501. package/src/wix-sync/sync.ts +27 -0
  502. package/tsconfig.json +6 -5
  503. package/files/expo/lucy.json +0 -8
  504. package/src/init.ts +0 -392
  505. /package/{files/expo/components/.gitkeep → .turbo/cookies/1.cookie} +0 -0
  506. /package/{files/expo/components/ui/.gitkeep → .turbo/cookies/2.cookie} +0 -0
  507. /package/{files/velo/.gitmodules → .turbo/cookies/3.cookie} +0 -0
  508. /package/{files/velo/typescript/__mocks__/.gitkeep → .turbo/cookies/4.cookie} +0 -0
  509. /package/{files/velo/typescript/backend/data.ts → .turbo/cookies/5.cookie} +0 -0
  510. /package/{files/velo/typescript/backend/events.ts → .turbo/daemon/ee24a4f4ab6aa3c0-turbo.log.2025-07-31} +0 -0
  511. /package/{files/velo/typescript/pages/.gitkeep → .turbo/daemon/ee24a4f4ab6aa3c0-turbo.log.2025-08-01} +0 -0
  512. /package/{files/velo/typescript/public/.gitkeep → .turbo/daemon/ee24a4f4ab6aa3c0-turbo.log.2025-08-02} +0 -0
  513. /package/{files/velo/typescript/public/scss/app.scss → dist/sync/index.d.ts} +0 -0
  514. /package/{files/velo/typescript/styles/.gitkeep → dist/utils/index.d.ts} +0 -0
  515. /package/{files/velo/typescript/styles/global.scss → dist/utils/install.d.ts} +0 -0
  516. /package/{src copy/schemas/index.ts → dist/wix-sync/sync-od.d.ts} +0 -0
  517. /package/files/{expo → templates/expo[D]/files}/.nvmrc +0 -0
  518. /package/files/{expo → templates/expo[D]/files}/.prettierignore +0 -0
  519. /package/files/{expo → templates/expo[D]/files}/.prettierrc.js +0 -0
  520. /package/files/{expo → templates/expo[D]/files}/.yarnrc +0 -0
  521. /package/files/{expo → templates/expo[D]/files}/.yarnrc.yml +0 -0
  522. /package/files/{expo → templates/expo[D]/files}/README.md +0 -0
  523. /package/files/{expo → templates/expo[D]/files}/assets/fonts/SpaceMono-Regular.ttf +0 -0
  524. /package/files/{expo → templates/expo[D]/files}/assets/images/adaptive-icon.png +0 -0
  525. /package/files/{expo → templates/expo[D]/files}/assets/images/favicon.png +0 -0
  526. /package/files/{expo → templates/expo[D]/files}/assets/images/icon.png +0 -0
  527. /package/files/{expo → templates/expo[D]/files}/assets/images/splash-icon.png +0 -0
  528. /package/files/{expo → templates/expo[D]/files}/babel.config.js +0 -0
  529. /package/{src copy/schemas/types.ts → files/templates/expo[D]/files/components/.gitkeep} +0 -0
  530. /package/files/{expo → templates/expo[D]/files}/constants/theme.ts +0 -0
  531. /package/files/{expo → templates/expo[D]/files}/eas.json +0 -0
  532. /package/files/{expo → templates/expo[D]/files}/eslint.config.mjs +0 -0
  533. /package/files/{expo → templates/expo[D]/files}/global.css +0 -0
  534. /package/files/{expo → templates/expo[D]/files}/hooks/useColorScheme.ts +0 -0
  535. /package/files/{expo → templates/expo[D]/files}/index.ts +0 -0
  536. /package/files/{expo → templates/expo[D]/files}/lib/data.ts +0 -0
  537. /package/files/{expo → templates/expo[D]/files}/lib/utils/index.ts +0 -0
  538. /package/files/{expo → templates/expo[D]/files}/lib/utils/polyfills.ts +0 -0
  539. /package/files/{expo → templates/expo[D]/files}/lib/wix/client.ts +0 -0
  540. /package/files/{expo → templates/expo[D]/files}/lib/wix/error.ts +0 -0
  541. /package/files/{expo → templates/expo[D]/files}/lib/wix/index.ts +0 -0
  542. /package/files/{expo → templates/expo[D]/files}/metro.config.js +0 -0
  543. /package/files/{expo → templates/expo[D]/files}/nativewind-env.d.ts +0 -0
  544. /package/files/{expo → templates/expo[D]/files}/scripts/reset-project.ts +0 -0
  545. /package/files/{expo → templates/expo[D]/files}/tailwind.config.js +0 -0
  546. /package/files/{expo → templates/expo[D]/files}/tsconfig.json +0 -0
  547. /package/files/{expo → templates/expo[D]/files}/types/reset.d.ts +0 -0
  548. /package/files/{velo → templates/velo[D]/files}/.madgerc +0 -0
  549. /package/files/{velo → templates/velo[D]/files}/.nvmrc +0 -0
  550. /package/files/{velo → templates/velo[D]/files}/.stylelintrc.js +0 -0
  551. /package/files/{velo → templates/velo[D]/files}/.yarnrc.yml +0 -0
  552. /package/files/{velo → templates/velo[D]/files}/currents.config.js +0 -0
  553. /package/files/{velo → templates/velo[D]/files}/cypress/e2e/base/base.cy.ts +0 -0
  554. /package/files/{velo → templates/velo[D]/files}/cypress/fixtures/example.json +0 -0
  555. /package/files/{velo → templates/velo[D]/files}/cypress/support/commands.ts +0 -0
  556. /package/files/{velo → templates/velo[D]/files}/cypress/support/e2e.ts +0 -0
  557. /package/files/{velo → templates/velo[D]/files}/cypress/tsconfig.json +0 -0
  558. /package/files/{velo → templates/velo[D]/files}/cypress.config.mjs +0 -0
  559. /package/files/{velo → templates/velo[D]/files}/eslint.config.mjs +0 -0
  560. /package/files/{velo → templates/velo[D]/files}/local.tsconfig.json +0 -0
  561. /package/files/{velo → templates/velo[D]/files}/typedoc.json +0 -0
  562. /package/files/{velo → templates/velo[D]/files}/typescript/backend/http-functions.ts +0 -0
  563. /package/files/{velo → templates/velo[D]/files}/typescript/backend/lib/http-functions/sync.ts +0 -0
  564. /package/files/{velo → templates/velo[D]/files}/typescript/backend/permissions.json +0 -0
  565. /package/files/{velo → templates/velo[D]/files}/typescript/tsconfig.json +0 -0
  566. /package/files/{velo → templates/velo[D]/files}/vitest.config.ts +0 -0
  567. /package/{src copy → old}/Gulpfile.ts +0 -0
  568. /package/{src copy → old}/gulp/backend.ts +0 -0
  569. /package/{src copy → old}/gulp/checks.ts +0 -0
  570. /package/{src copy → old}/gulp/clean.ts +0 -0
  571. /package/{src copy → old}/gulp/copy.ts +0 -0
  572. /package/{src copy → old}/gulp/helpers.ts +0 -0
  573. /package/{src copy → old}/gulp/pages.ts +0 -0
  574. /package/{src copy → old}/gulp/pipeline.ts +0 -0
  575. /package/{src copy → old}/gulp/public.ts +0 -0
  576. /package/{src copy → old}/gulp/styles.ts +0 -0
  577. /package/{src copy → old}/gulp/templates.ts +0 -0
  578. /package/{src copy → old}/gulp/types.ts +0 -0
  579. /package/{src copy → old}/gulp/watchers.ts +0 -0
  580. /package/{src copy → old}/index.ts +0 -0
  581. /package/{src copy → old}/init.ts +0 -0
  582. /package/{src copy → old}/models.ts +0 -0
  583. /package/{src copy → old}/prepare.ts +0 -0
  584. /package/{src copy → old}/settings.json +0 -0
  585. /package/{src copy → old}/sync.ts +0 -0
  586. /package/{src copy → old}/types.d.ts +0 -0
  587. /package/src/{models.ts → schemas/tsconfig.ts} +0 -0
@@ -0,0 +1,28 @@
1
+ import { Effect } from "effect/index";
2
+ import { Path } from "@effect/platform"
3
+ import { FileSystem } from "@effect/platform"
4
+ import { Config, syncDataName, syncFilesSource } from "../config.js";
5
+
6
+ export const copyTemplateFiles = Effect.gen(function*() {
7
+ const fs = yield* FileSystem.FileSystem;
8
+ const config = yield* Config;
9
+ const path = yield * Path.Path;
10
+
11
+ const templateFiles = yield* fs.readDirectory(config.config.templateFiles)
12
+ yield* Effect.forEach(
13
+ templateFiles,
14
+ (file) => fs.copy(path.join(config.config.templateFiles, file), path.join(config.config.cwd, file), { overwrite: true })
15
+ )
16
+ })
17
+ export const copySyncFiles = Effect.gen(function*() {
18
+ const fs = yield* FileSystem.FileSystem;
19
+ const config = yield* Config;
20
+ const path = yield * Path.Path;
21
+
22
+ const synDataFiles = yield* fs.readDirectory(syncFilesSource)
23
+ yield* fs.makeDirectory(path.join(config.config.cwd, syncDataName));
24
+ yield* Effect.forEach(
25
+ synDataFiles,
26
+ (file) => fs.copy(path.join(syncFilesSource, file), path.join(config.config.cwd, syncDataName, file), { overwrite: true })
27
+ )
28
+ })
@@ -0,0 +1,83 @@
1
+ import { Effect, Schema } from "effect/index";
2
+ import { Config, lucyJsonPath } from "../config.js";
3
+ import { FileSystem, Path } from "@effect/platform"
4
+ import { logger } from "../utils/logger.js";
5
+ import { JsonSchema } from "../schemas/index.js";
6
+ import { LucySettings } from "../schemas/lucy.js";
7
+
8
+ export const editJson = (json: any, keys: string[], values: string[] | Object[]) => {
9
+ return Effect.gen(function*() {
10
+ const config = yield* Config;
11
+
12
+ for (const key of keys){
13
+ const index = keys.indexOf(key);
14
+ const value = values[index];
15
+ json[key] = value;
16
+ }
17
+ })
18
+ }
19
+
20
+ export const mergeLucySettings2PackageJson = Effect.gen(function*() {
21
+ const config = yield* Config;
22
+ const lucySettings = config.config.lucySettings;
23
+ const packageJson = config.config.packageJson;
24
+
25
+ if (Object.keys(lucySettings.scripts).length > 0) {
26
+ yield* editJson(packageJson, ['scripts'], [{...packageJson.scripts, ...lucySettings.scripts}]);
27
+ }
28
+ })
29
+
30
+ export const setModule = Effect.gen(function*() {
31
+ const config = yield* Config;
32
+ const lucySettings = config.config.lucySettings;
33
+ const packageJson = config.config.packageJson;
34
+
35
+ yield* editJson(packageJson, ['type'], ['module']);
36
+ })
37
+
38
+ export const mergeAdditions = Effect.gen(function*() {
39
+ const config = yield* Config;
40
+ const lucySettings = config.config.lucySettings;
41
+ const packageJson = config.config.packageJson;
42
+
43
+ config.config.packageJson = {
44
+ ...packageJson,
45
+ ...lucySettings.additionalPkgProps,
46
+ }
47
+ })
48
+
49
+ export const setProjectName = Effect.gen(function*() {
50
+ const config = yield* Config;
51
+ const packageJson = config.config.packageJson;
52
+
53
+ yield * editJson(packageJson, ["name"], [config.config.projectName]);
54
+ })
55
+
56
+ export const setInitialized = Effect.gen(function*() {
57
+ const config = yield* Config;
58
+ const fs = yield* FileSystem.FileSystem;
59
+ const path = yield* Path.Path;
60
+ const lucyRaw = yield* fs.readFileString(lucyJsonPath);
61
+ const lucyJSON = (yield* Schema.decodeUnknown(JsonSchema)(lucyRaw)) as any;
62
+ lucyJSON.initialized = true;
63
+
64
+ yield* fs.writeFileString(lucyJsonPath, JSON.stringify(lucyJSON, null, 2));
65
+ })
66
+
67
+ export const stringReplace = (filePath: string, keys: string[], values: string[]) => {
68
+ return Effect.gen(function*() {
69
+ const fs = yield* FileSystem.FileSystem;
70
+ let modifiedContent: string = '';
71
+
72
+ logger.action(`Replacing ${keys} with ${values} in ${filePath}`);
73
+ const data = yield* fs.readFileString(filePath, 'utf8');
74
+ for (const key of keys){
75
+ const index = keys.indexOf(key);
76
+ const value = values[index];
77
+ const regex = new RegExp(`${key}`, 'g');
78
+ modifiedContent = data.replace(regex, `${value}`);
79
+ }
80
+ yield* fs.writeFileString(filePath, modifiedContent);
81
+ logger.info(`Updated file ${filePath}`);
82
+ })
83
+ }
@@ -0,0 +1,37 @@
1
+ import { Effect } from "effect/index";
2
+ import { Config } from "../config.js";
3
+ import { Command } from "@effect/platform/index";
4
+ import { logger } from "../utils/logger.js";
5
+ import { FileSystem } from "@effect/platform"
6
+
7
+ export const execCommand = Effect.gen(function*() {
8
+ const config = yield* Config;
9
+ const cmds = config.config.lucySettings.additionalCommands ?? [];
10
+ logger.info("Executing additional commands...", cmds);
11
+ if (cmds.length > 0) {
12
+ logger.info("Executing additional commands");
13
+ yield *
14
+ Effect.all([
15
+ ...cmds.map((cmd) => {
16
+ return Command.make(cmd[0], ...cmd.slice(1))
17
+ .pipe()
18
+ .pipe(Command.stdout("inherit"), Command.exitCode);
19
+ }),
20
+ ]);
21
+ }
22
+ })
23
+
24
+ export const open = Effect.scoped(Effect.gen(function*() {
25
+ const config = yield* Config;
26
+ const fs = yield* FileSystem.FileSystem
27
+ console.log("Opening Lucy home directory:", config.config.lucyHome);
28
+ let command: ReturnType<typeof Command.make>;
29
+ switch (process.platform) {
30
+ case 'darwin': command = Command.make('open', config.config.lucyHome); break;
31
+ case 'win32': command = Command.make('start', config.config.lucyHome); break;
32
+ default: command = Command.make('xdg-open', config.config.lucyHome); break;
33
+ }
34
+
35
+ command.pipe().pipe(Command.stdout("inherit"), Command.exitCode);
36
+ yield* command.pipe().pipe(Command.stdout("inherit"), Command.exitCode);
37
+ }))
@@ -0,0 +1,113 @@
1
+ import { Effect } from 'effect/index';
2
+ import { simpleGit, SimpleGit } from 'simple-git';
3
+ import { Config } from '../config.js';
4
+ import { AppError } from '../error.js';
5
+ import { logger } from '../utils/logger.js';
6
+ import { FileSystem, Path } from "@effect/platform"
7
+
8
+ export const isSubmoduleRegistered = (git: SimpleGit, submoduleName: string) => Effect.gen(function* () {
9
+ const value = yield* Effect.tryPromise({
10
+ try: () => git.getConfig(`submodule.${submoduleName}.url`),
11
+ catch: (error) => {
12
+ return new AppError({
13
+ cause: error,
14
+ message: "Failed to get submodule url",
15
+ });
16
+ }
17
+ })
18
+ return !!value.value;
19
+ })
20
+
21
+ export const gitInit = (update: boolean = false) => Effect.gen(function* () {
22
+ const config = yield* Config;
23
+ const git = simpleGit({ baseDir: config.config.cwd });
24
+ const path = yield * Path.Path;
25
+
26
+ const isGit = yield* Effect.tryPromise({
27
+ try: () => git.checkIsRepo(),
28
+ catch: (error) => {
29
+ return new AppError({
30
+ cause: error,
31
+ message: "Failed to check if the directory is a git repository",
32
+ });
33
+ }
34
+ })
35
+
36
+ if(!isGit) {
37
+ yield* Effect.tryPromise({
38
+ try: () => git.init(),
39
+ catch: (error) => {
40
+ return new AppError({
41
+ cause: error,
42
+ message: "Failed to initialize git repository",
43
+ });
44
+ }
45
+ })
46
+ }
47
+
48
+ if (!config.config.lucySettings.modules) {
49
+ logger.alert('No submodules defined in settings, skipping.');
50
+ return;
51
+ }
52
+ yield* initSubmodules(update);
53
+ })
54
+
55
+ export const initSubmodules = (update: boolean = false) => Effect.gen(function* () {
56
+ const config = yield* Config;
57
+ const git = simpleGit({ baseDir: config.config.cwd });
58
+ const path = yield* Path.Path;
59
+ const fs = yield* FileSystem.FileSystem;
60
+ const gitmodulesPath = path.join(config.config.cwd, ".gitmodules");
61
+
62
+ for (const [name, repo] of Object.entries(config.config.lucySettings.modules)) {
63
+ logger.action(`Processing submodule ${name}`);
64
+ const clonePath = repo.path || path.join(config.config.defaultModuleBasePath, name);
65
+
66
+ const isRegistered = yield* isSubmoduleRegistered(git, clonePath);
67
+ const isConfiguredInFile = (yield* fs.exists(gitmodulesPath)) && (yield* fs.readFileString(gitmodulesPath, 'utf-8')).includes(`[submodule "${clonePath}"]`);
68
+
69
+ if (!isConfiguredInFile || config.config.force) {
70
+ logger.action(`Adding/updating submodule ${name} at ${clonePath}...`);
71
+ // If git already has a config entry, we must use --force to repair it.
72
+ const submoduleArgs = () => {
73
+ if (update) {
74
+ return ['add', '--force', repo.source, clonePath];
75
+ }
76
+ return ['add', ...(config.config.force || isRegistered ? ['--force'] : []), repo.source, clonePath];
77
+ }
78
+ // await git.subModule(submoduleArgs);
79
+ yield* Effect.tryPromise({
80
+ try: () => git.subModule(submoduleArgs()),
81
+ catch: (error) => {
82
+ return new AppError({
83
+ cause: error,
84
+ message: "Failed to add submodule",
85
+ });
86
+ }
87
+ })
88
+ } else {
89
+ logger.alert(`Submodule ${name} at ${clonePath} already registered. Skipping add.`);
90
+ }
91
+
92
+ yield* Effect.tryPromise({
93
+ try: () => git.submoduleUpdate(['--init', '--recursive', clonePath]),
94
+ catch: (error) => {
95
+ return new AppError({
96
+ cause: error,
97
+ message: "Failed to update submodule",
98
+ });
99
+ }
100
+ })
101
+ yield* Effect.tryPromise({
102
+ try: () => simpleGit({ baseDir: path.join(config.config.cwd, clonePath) }).checkout(repo.branch),
103
+ catch: (error) => {
104
+ return new AppError({
105
+ cause: error,
106
+ message: `Failed to checkout submodule ${repo} branch ${repo.branch}`,
107
+ });
108
+ }
109
+ })
110
+ }
111
+ logger.success("All modules processed!");
112
+
113
+ })
@@ -0,0 +1,22 @@
1
+ import { Effect } from "effect/index";
2
+ import { Config } from "../config.js";
3
+ import { FileSystem } from "@effect/platform"
4
+ import { logger, orange } from "../utils/logger.js";
5
+ import path, { join } from 'path';
6
+
7
+ export const createLucyHome = () => {
8
+ return Effect.gen(function*() {
9
+ const config = yield* Config
10
+ const fs = yield* FileSystem.FileSystem
11
+
12
+ if(!(yield* fs.exists(config.config.lucyHome))) {
13
+ logger.action(`Creating Lucy home directory at ${orange(config.config.lucyHome)}`);
14
+ yield* fs.makeDirectory(config.config.lucyHome, { recursive: true });
15
+ }
16
+ const templateFiles = yield* fs.readDirectory(config.config.filesFolder)
17
+ yield* Effect.forEach(
18
+ templateFiles,
19
+ (file) => fs.copy(path.join(config.config.filesFolder, file), path.join(config.config.lucyHome, file), { overwrite: true })
20
+ )
21
+ });
22
+ }
@@ -0,0 +1,186 @@
1
+ import { Command } from "@effect/platform/index";
2
+ import { Effect, Schedule } from "effect/index";
3
+ import { Config } from "../config.js";
4
+ import { logger } from "../utils/logger.js";
5
+ import { CommandExecutor, ExitCode } from "@effect/platform/CommandExecutor";
6
+ import { PlatformError } from "@effect/platform/Error";
7
+
8
+ export const installPackages = Effect.gen(function*() {
9
+ const config = yield* Config;
10
+
11
+ const pkgs: string[] = []
12
+ for (const [key, value] of Object.entries(config.config.lucySettings.dependencies)) {
13
+ if (value.length > 0) {
14
+ pkgs.push(`${key}@${value}`);
15
+ continue
16
+ }
17
+ pkgs.push(key);
18
+ }
19
+ const devPkgs: string[] = []
20
+ for (const [key, value] of Object.entries(config.config.lucySettings.devDependencies)) {
21
+ if (value.length > 0) {
22
+ devPkgs.push(`${key}@${value}`);
23
+ continue
24
+ }
25
+ devPkgs.push(key);
26
+ }
27
+
28
+
29
+ logger.info("Installing dependencies");
30
+ const yarn = Command.make(
31
+ "yarn",
32
+ "add",
33
+ ...pkgs,
34
+ ).pipe(
35
+ Command.stdout("inherit"), // Stream stdout to process.stdout
36
+ Command.exitCode // Get the exit code
37
+ )
38
+ logger.info("Installing dev dependencies");
39
+ const yarnDev = Command.make(
40
+ "yarn",
41
+ "add",
42
+ "-D",
43
+ ...devPkgs,
44
+ ).pipe(
45
+ Command.stdout("inherit"), // Stream stdout to process.stdout
46
+ Command.exitCode // Get the exit code
47
+ )
48
+
49
+ if ((yield* yarn) !== 0) {
50
+ return logger.error("Failed to install dependencies. Please check the error message above.");
51
+ }
52
+ if ((yield* yarnDev) !== 0) {
53
+ return logger.error("Failed to install dev dependencies. Please check the error message above.");
54
+ }
55
+ })
56
+
57
+ export const runYarn = Effect.gen(function*() {
58
+ const yarnDev = Command.make(
59
+ "yarn",
60
+ ).pipe(
61
+ Command.stdout("inherit"), // Stream stdout to process.stdout
62
+ Command.exitCode // Get the exit code
63
+ )
64
+ yield* yarnDev;
65
+ })
66
+
67
+ export const yarnSetVersion = Effect.gen(function*() {
68
+ const yarnDev = Command.make(
69
+ "yarn",
70
+ "set",
71
+ "version",
72
+ "berry",
73
+ ).pipe(
74
+ Command.stdout("inherit"), // Stream stdout to process.stdout
75
+ Command.exitCode // Get the exit code
76
+ )
77
+ yield* yarnDev;
78
+ })
79
+ export const installVeloPackages = Effect.gen(function*() {
80
+ const config = yield* Config;
81
+ const simpleSchedule = Schedule.tapOutput(
82
+ Schedule.fromDelays(50, 100, 200, 400, 800, 1600, 3200),
83
+ (n, ) => Effect.succeed(logger.warning(`Failed to install WIX package. Retrying...`))
84
+ );
85
+
86
+ const pkgs: string[] = []
87
+ for (const [key, value] of Object.entries(config.config.lucySettings.dependencies)) {
88
+ if (value.length > 0) {
89
+ pkgs.push(`${key}@${value}`);
90
+ continue
91
+ }
92
+ pkgs.push(key);
93
+ }
94
+
95
+ const wixPkgs: Effect.Effect<ExitCode, PlatformError, CommandExecutor>[] = []
96
+ const wixInstall = (cmd: Effect.Effect<ExitCode, PlatformError, CommandExecutor>) => Effect.gen(function*() {
97
+ const code = yield* Effect.retryOrElse(
98
+ Effect.gen(function*() {
99
+ const code = yield* cmd;
100
+ if (code !== 0) {
101
+ return yield* Effect.fail(code);
102
+ }
103
+ return yield* Effect.succeed(code);
104
+ }),
105
+ simpleSchedule,
106
+ () => Effect.succeed(0 as ExitCode)
107
+ )
108
+ if (code !== 0) {
109
+ logger.error("Failed to install WIX package.");
110
+ }
111
+ return code;
112
+ })
113
+
114
+ for (const [key, value] of Object.entries(config.config.lucySettings.dependencies)) {
115
+ if (value.length > 0) {
116
+ wixPkgs.push(
117
+ wixInstall(
118
+ Command.make(
119
+ "wix",
120
+ "install",
121
+ `${key}@${value}`
122
+ ).pipe(
123
+ Command.stdout("inherit"),
124
+ Command.exitCode
125
+ )
126
+ )
127
+ )
128
+ continue
129
+ }
130
+ wixPkgs.push(
131
+ wixInstall(
132
+ Command.make(
133
+ "wix",
134
+ "install",
135
+ `${key}`
136
+ ).pipe(
137
+ Command.stdout("inherit"),
138
+ Command.exitCode
139
+ ),
140
+ ))
141
+ }
142
+
143
+ const devPkgs: string[] = []
144
+ for (const [key, value] of Object.entries(config.config.lucySettings.devDependencies)) {
145
+ if (value.length > 0) {
146
+ devPkgs.push(`${key}@${value}`);
147
+ continue
148
+ }
149
+ devPkgs.push(key);
150
+ }
151
+
152
+ const yarn = Command.make(
153
+ "yarn",
154
+ "add",
155
+ ...pkgs,
156
+ ).pipe(
157
+ Command.stdout("inherit"), // Stream stdout to process.stdout
158
+ Command.exitCode // Get the exit code
159
+ )
160
+ const yarnDev = Command.make(
161
+ "yarn",
162
+ "add",
163
+ "-D",
164
+ ...devPkgs,
165
+ ).pipe(
166
+ Command.stdout("inherit"), // Stream stdout to process.stdout
167
+ Command.exitCode // Get the exit code
168
+ )
169
+
170
+ logger.info("Installing dependencies with wix...");
171
+ const status = yield* Effect.all([...wixPkgs], { concurrency: 15});
172
+ if(status.every((s) => s !== 0)) {
173
+ return logger.error("Failed to install WIX dependencies. Please check the error message above.");
174
+ }
175
+
176
+ logger.info("Installing dependencies");
177
+ if ((yield* yarn) !== 0) {
178
+ return logger.error("Failed to install dependencies. Please check the error message above.");
179
+ }
180
+
181
+ logger.info("Installing dev dependencies");
182
+ if ((yield* yarnDev) !== 0) {
183
+ return logger.error("Failed to install dev dependencies. Please check the error message above.");
184
+ }
185
+
186
+ })
@@ -0,0 +1,46 @@
1
+ import { Effect, Schema } from "effect/index";
2
+ import { FileSystem, Path } from "@effect/platform"
3
+ import { Config, lucyJsonName, lucyJsonPath, packageJsonPath, veloSyncJsonPath } from "../config.js";
4
+ import { JsonSchema, veloSyncSettings } from "../schemas/index.js";
5
+ import { lucySettings } from "../schemas/lucy.js";
6
+ import { logger } from "../utils/logger.js";
7
+
8
+ export const readPackageJson = Effect.gen(function* () {
9
+ const config = yield* Config;
10
+ const fs = yield* FileSystem.FileSystem;
11
+ const path = yield* Path.Path;
12
+
13
+ const packageJsonRaw = yield* fs.readFile(packageJsonPath)
14
+ config.config.packageJson = yield* Schema.decodeUnknown(JsonSchema)(packageJsonRaw.toString());
15
+ })
16
+
17
+ export const readLucyJsonFromTemplate = Effect.gen(function* () {
18
+ const config = yield* Config;
19
+ const fs = yield* FileSystem.FileSystem;
20
+ const path = yield* Path.Path;
21
+
22
+ const lucyRaw = yield* fs.readFileString(lucyJsonPath);
23
+ const lucySettingsJSON = yield* Schema.decodeUnknown(JsonSchema)(lucyRaw);
24
+ const lucySetting = yield* Schema.decodeUnknown(lucySettings)(lucySettingsJSON)
25
+
26
+ if(config.config.lucySettings.initialized) {
27
+ if(config.config.force) {
28
+ logger.warning(`${lucyJsonName} already exists in the template directory, but 'force' is set. Overwriting...`);
29
+ config.config.lucySettings = lucySetting;
30
+ return;
31
+ }
32
+ logger.warning(`${lucyJsonName} already exists in the template directory. Skipping reading ${lucyJsonName} from template.`);
33
+ return;
34
+ }
35
+ config.config.lucySettings = lucySetting;
36
+ })
37
+
38
+ export const readVeloSyncSettings = Effect.gen(function* () {
39
+ const config = yield* Config;
40
+ const fs = yield* FileSystem.FileSystem;
41
+ const path = yield* Path.Path;
42
+ if (yield* fs.exists(veloSyncJsonPath)) {
43
+ const snyConfigRaw = yield* fs.readFileString(veloSyncJsonPath)
44
+ config.config.veloSyncSettings = yield* Schema.decodeUnknown(veloSyncSettings)(snyConfigRaw);
45
+ }
46
+ });
@@ -0,0 +1,45 @@
1
+ import { Effect } from "effect/index";
2
+ import { Command, FileSystem, Path } from "@effect/platform"
3
+ import { Config, lucyJsonPath, packageJsonPath, veloSyncJsonPath, wixSDKSettingsJsonPath } from "../config.js";
4
+
5
+ export const writeLucySettings = Effect.gen(function* (_) {
6
+ const fs = yield* FileSystem.FileSystem;
7
+ const path = yield* Path.Path;
8
+ const config = yield* Config;
9
+
10
+ yield* fs.writeFileString(
11
+ lucyJsonPath,
12
+ JSON.stringify(config.config.lucySettings, null, 2)
13
+ );
14
+ })
15
+
16
+ export const writePackageJson = Effect.gen(function* (_) {
17
+ const fs = yield* FileSystem.FileSystem;
18
+ const path = yield* Path.Path;
19
+ const config = yield* Config;
20
+ yield* fs.writeFileString(
21
+ packageJsonPath,
22
+ JSON.stringify(config.config.packageJson, null, 2)
23
+ );
24
+ })
25
+
26
+ export const writeVeloSyncSettings = Effect.gen(function* () {
27
+ const config = yield* Config;
28
+ const fs = yield* FileSystem.FileSystem;
29
+ const path = yield* Path.Path;
30
+ yield* fs.writeFileString(
31
+ veloSyncJsonPath,
32
+ JSON.stringify(config.config.veloSyncSettings, null, 2)
33
+ );
34
+ });
35
+
36
+ export const writeWixSDKSettings = Effect.gen(function* () {
37
+ const config = yield* Config;
38
+ const fs = yield* FileSystem.FileSystem;
39
+ const path = yield* Path.Path;
40
+ yield* fs.writeFileString(
41
+ wixSDKSettingsJsonPath,
42
+ JSON.stringify(config.config.wixSDKSettings, null, 2)
43
+ );
44
+ });
45
+