lucy-cli 2.0.0-alpha.7 → 2.0.0-beta.1

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 (452) hide show
  1. package/.yarnrc.yml +0 -1
  2. package/dist/args.d.ts +1 -6
  3. package/dist/args.js +62 -7
  4. package/dist/args.js.map +1 -0
  5. package/dist/commands/checks.d.ts +7 -0
  6. package/dist/commands/checks.js +47 -0
  7. package/dist/commands/checks.js.map +1 -0
  8. package/dist/commands/cleanup.d.ts +4 -0
  9. package/dist/commands/cleanup.js +10 -0
  10. package/dist/commands/cleanup.js.map +1 -0
  11. package/dist/commands/copy.d.ts +6 -0
  12. package/dist/commands/copy.js +20 -0
  13. package/dist/commands/copy.js.map +1 -0
  14. package/dist/commands/edit.d.ts +10 -0
  15. package/dist/commands/edit.js +67 -0
  16. package/dist/commands/edit.js.map +1 -0
  17. package/dist/commands/exec.d.ts +7 -0
  18. package/dist/commands/exec.js +67 -0
  19. package/dist/commands/exec.js.map +1 -0
  20. package/dist/commands/git.d.ts +8 -0
  21. package/dist/commands/git.js +104 -0
  22. package/dist/commands/git.js.map +1 -0
  23. package/dist/commands/home.d.ts +4 -0
  24. package/dist/commands/home.js +18 -0
  25. package/dist/commands/home.js.map +1 -0
  26. package/dist/commands/install.d.ts +8 -0
  27. package/dist/commands/install.js +165 -0
  28. package/dist/commands/install.js.map +1 -0
  29. package/dist/commands/read.d.ts +6 -0
  30. package/dist/commands/read.js +40 -0
  31. package/dist/commands/read.js.map +1 -0
  32. package/dist/commands/write.d.ts +7 -0
  33. package/dist/commands/write.js +28 -0
  34. package/dist/commands/write.js.map +1 -0
  35. package/dist/commands.js +1 -0
  36. package/dist/commands.js.map +1 -0
  37. package/dist/config.d.ts +29 -7
  38. package/dist/config.js +90 -26
  39. package/dist/config.js.map +1 -0
  40. package/dist/error.d.ts +1 -9
  41. package/dist/error.js +1 -2
  42. package/dist/error.js.map +1 -0
  43. package/dist/helpers.d.ts +9 -0
  44. package/dist/helpers.js +83 -0
  45. package/dist/helpers.js.map +1 -0
  46. package/dist/index.d.ts +1 -0
  47. package/dist/index.js +77 -9
  48. package/dist/index.js.map +1 -0
  49. package/dist/init/blocks.d.ts +5 -0
  50. package/dist/init/blocks.js +62 -0
  51. package/dist/init/blocks.js.map +1 -0
  52. package/dist/init/cargo.d.ts +2 -0
  53. package/dist/init/cargo.js +21 -0
  54. package/dist/init/cargo.js.map +1 -0
  55. package/dist/init/expo.d.ts +5 -0
  56. package/dist/init/expo.js +52 -0
  57. package/dist/init/expo.js.map +1 -0
  58. package/dist/init/gitModules.d.ts +2 -0
  59. package/dist/init/gitModules.js +13 -0
  60. package/dist/init/gitModules.js.map +1 -0
  61. package/dist/init/index.d.ts +4 -0
  62. package/dist/init/index.js +77 -0
  63. package/dist/init/index.js.map +1 -0
  64. package/dist/init/monorepo.d.ts +4 -0
  65. package/dist/init/monorepo.js +48 -0
  66. package/dist/init/monorepo.js.map +1 -0
  67. package/dist/init/prepareVelo.d.ts +2 -0
  68. package/dist/init/prepareVelo.js +16 -0
  69. package/dist/init/prepareVelo.js.map +1 -0
  70. package/dist/init/tauri.d.ts +5 -0
  71. package/dist/init/tauri.js +32 -0
  72. package/dist/init/tauri.js.map +1 -0
  73. package/dist/init/templates.d.ts +5 -0
  74. package/dist/init/templates.js +93 -0
  75. package/dist/init/templates.js.map +1 -0
  76. package/dist/init/velo.d.ts +5 -0
  77. package/dist/init/velo.js +60 -0
  78. package/dist/init/velo.js.map +1 -0
  79. package/dist/policy.js +1 -0
  80. package/dist/policy.js.map +1 -0
  81. package/dist/prepare.js +1 -0
  82. package/dist/prepare.js.map +1 -0
  83. package/dist/runtime.d.ts +1 -1
  84. package/dist/runtime.js +1 -0
  85. package/dist/runtime.js.map +1 -0
  86. package/dist/schemas/gulp.d.ts +25 -0
  87. package/dist/schemas/gulp.js +8 -0
  88. package/dist/schemas/gulp.js.map +1 -0
  89. package/dist/schemas/index.d.ts +10 -0
  90. package/dist/schemas/index.js +9 -0
  91. package/dist/schemas/index.js.map +1 -0
  92. package/dist/schemas/lucy.d.ts +29 -0
  93. package/dist/schemas/lucy.js +42 -0
  94. package/dist/schemas/lucy.js.map +1 -0
  95. package/dist/schemas/tsconfig.js +2 -0
  96. package/dist/schemas/tsconfig.js.map +1 -0
  97. package/dist/schemas/types.d.ts +33 -0
  98. package/dist/schemas/types.js +5 -1
  99. package/dist/schemas/types.js.map +1 -0
  100. package/dist/states.js +1 -0
  101. package/dist/states.js.map +1 -0
  102. package/dist/tasks/Gulpfile.d.ts +4 -0
  103. package/dist/tasks/Gulpfile.js +111 -0
  104. package/dist/tasks/Gulpfile.js.map +1 -0
  105. package/dist/tasks/gulp/backend.d.ts +4 -0
  106. package/dist/tasks/gulp/backend.js +92 -0
  107. package/dist/tasks/gulp/backend.js.map +1 -0
  108. package/dist/tasks/gulp/checks.d.ts +4 -0
  109. package/dist/tasks/gulp/checks.js +202 -0
  110. package/dist/tasks/gulp/checks.js.map +1 -0
  111. package/dist/tasks/gulp/clean.d.ts +3 -0
  112. package/dist/tasks/gulp/clean.js +33 -0
  113. package/dist/tasks/gulp/clean.js.map +1 -0
  114. package/dist/tasks/gulp/copy.d.ts +3 -0
  115. package/dist/tasks/gulp/copy.js +34 -0
  116. package/dist/tasks/gulp/copy.js.map +1 -0
  117. package/dist/tasks/gulp/helpers.d.ts +3 -0
  118. package/dist/tasks/gulp/helpers.js +19 -0
  119. package/dist/tasks/gulp/helpers.js.map +1 -0
  120. package/dist/tasks/gulp/pages.d.ts +2 -0
  121. package/dist/tasks/gulp/pages.js +39 -0
  122. package/dist/tasks/gulp/pages.js.map +1 -0
  123. package/dist/tasks/gulp/pipeline.d.ts +1 -0
  124. package/dist/tasks/gulp/pipeline.js +29 -0
  125. package/dist/tasks/gulp/pipeline.js.map +1 -0
  126. package/dist/tasks/gulp/public.d.ts +3 -0
  127. package/dist/tasks/gulp/public.js +50 -0
  128. package/dist/tasks/gulp/public.js.map +1 -0
  129. package/dist/tasks/gulp/styles.d.ts +3 -0
  130. package/dist/tasks/gulp/styles.js +40 -0
  131. package/dist/tasks/gulp/styles.js.map +1 -0
  132. package/dist/tasks/gulp/templates.d.ts +2 -0
  133. package/dist/tasks/gulp/templates.js +45 -0
  134. package/dist/tasks/gulp/templates.js.map +1 -0
  135. package/dist/tasks/gulp/types.d.ts +4 -0
  136. package/dist/tasks/gulp/types.js +293 -0
  137. package/dist/tasks/gulp/types.js.map +1 -0
  138. package/dist/tasks/gulp/watchers.d.ts +3 -0
  139. package/dist/tasks/gulp/watchers.js +59 -0
  140. package/dist/tasks/gulp/watchers.js.map +1 -0
  141. package/dist/tasks/index.d.ts +4 -0
  142. package/dist/tasks/index.js +23 -0
  143. package/dist/tasks/index.js.map +1 -0
  144. package/dist/tasks/syncSettings.d.ts +3 -0
  145. package/dist/tasks/syncSettings.js +18 -0
  146. package/dist/tasks/syncSettings.js.map +1 -0
  147. package/dist/utils/index.js +2 -0
  148. package/dist/utils/index.js.map +1 -0
  149. package/dist/utils/logger.d.ts +17 -0
  150. package/dist/utils/logger.js +37 -0
  151. package/dist/utils/logger.js.map +1 -0
  152. package/dist/wix-sdk/check.d.ts +4 -0
  153. package/dist/wix-sdk/check.js +23 -0
  154. package/dist/wix-sdk/check.js.map +1 -0
  155. package/dist/wix-sdk/client.d.ts +10 -0
  156. package/dist/wix-sdk/client.js +18 -0
  157. package/dist/wix-sdk/client.js.map +1 -0
  158. package/dist/wix-sdk/index.d.ts +4 -0
  159. package/dist/wix-sdk/index.js +15 -0
  160. package/dist/wix-sdk/index.js.map +1 -0
  161. package/dist/wix-sdk/init.d.ts +4 -0
  162. package/dist/wix-sdk/init.js +51 -0
  163. package/dist/wix-sdk/init.js.map +1 -0
  164. package/dist/wix-sdk/run.d.ts +4 -0
  165. package/dist/wix-sdk/run.js +53 -0
  166. package/dist/wix-sdk/run.js.map +1 -0
  167. package/dist/wix-sync/client.d.ts +3 -0
  168. package/dist/wix-sync/client.js +5 -0
  169. package/dist/wix-sync/client.js.map +1 -0
  170. package/dist/wix-sync/export.d.ts +4 -0
  171. package/dist/wix-sync/export.js +15 -0
  172. package/dist/wix-sync/export.js.map +1 -0
  173. package/dist/wix-sync/import.d.ts +4 -0
  174. package/dist/wix-sync/import.js +26 -0
  175. package/dist/wix-sync/import.js.map +1 -0
  176. package/dist/wix-sync/index.d.ts +4 -0
  177. package/dist/wix-sync/index.js +35 -0
  178. package/dist/wix-sync/index.js.map +1 -0
  179. package/dist/wix-sync/init.d.ts +4 -0
  180. package/dist/wix-sync/init.js +74 -0
  181. package/dist/wix-sync/init.js.map +1 -0
  182. package/dist/wix-sync/is-alive.d.ts +4 -0
  183. package/dist/wix-sync/is-alive.js +23 -0
  184. package/dist/wix-sync/is-alive.js.map +1 -0
  185. package/dist/wix-sync/migrate.d.ts +4 -0
  186. package/dist/wix-sync/migrate.js +21 -0
  187. package/dist/wix-sync/migrate.js.map +1 -0
  188. package/dist/wix-sync/sync.d.ts +4 -0
  189. package/dist/wix-sync/sync.js +26 -0
  190. package/dist/wix-sync/sync.js.map +1 -0
  191. package/files/sync-data/data/test.csv +17 -0
  192. package/files/sync-data/files/lucy.jpg +0 -0
  193. package/files/sync-data/schema/test.json +11 -0
  194. package/files/templates/block[D]/files/.stylelintrc.js +8 -0
  195. package/files/templates/block[D]/lucy.json +9 -0
  196. package/files/templates/cargo[D]/files/.env +1 -0
  197. package/files/templates/cargo[D]/files/Cargo.toml +238 -0
  198. package/files/templates/cargo[D]/files/Makefile.toml +4 -0
  199. package/files/templates/cargo[D]/files/build/main.rs +35 -0
  200. package/files/templates/cargo[D]/files/config/beta.json +19 -0
  201. package/files/templates/cargo[D]/files/config/ci.json +15 -0
  202. package/files/templates/cargo[D]/files/config/default.json +71 -0
  203. package/files/templates/cargo[D]/files/config/development.json +10 -0
  204. package/files/templates/cargo[D]/files/config/produktion.json +5 -0
  205. package/files/templates/cargo[D]/files/config/stage.json +4 -0
  206. package/files/templates/cargo[D]/files/locales/todo.yml +3 -0
  207. package/files/templates/cargo[D]/files/public/index.html +1 -0
  208. package/files/templates/cargo[D]/lucy.json +15 -0
  209. package/files/templates/expo[D]/files/.stylelintrc.js +8 -0
  210. package/files/{expo → templates/expo[D]/files}/eas.json +9 -3
  211. package/files/templates/expo[D]/files/lib/data.ts +197 -0
  212. package/files/{expo → templates/expo[D]/files}/metro.config.js +6 -1
  213. package/files/templates/expo[D]/files/pnpm-workspace.yaml +3 -0
  214. package/files/templates/expo[D]/lucy.json +86 -0
  215. package/files/templates/monorepo[D]/files/.editorconfig +10 -0
  216. package/files/templates/monorepo[D]/files/.nvmrc +1 -0
  217. package/files/templates/monorepo[D]/files/.prettierignore +23 -0
  218. package/files/templates/monorepo[D]/files/.prettierrc.json +15 -0
  219. package/files/templates/monorepo[D]/files/.stylelintrc.js +8 -0
  220. package/files/templates/monorepo[D]/files/.yarnrc +1 -0
  221. package/files/templates/monorepo[D]/files/.yarnrc.yml +3 -0
  222. package/files/templates/monorepo[D]/files/README.md +109 -0
  223. package/files/templates/monorepo[D]/files/currents.config.ts +5 -0
  224. package/files/templates/monorepo[D]/files/nx.json +25 -0
  225. package/files/templates/monorepo[D]/files/pnpm-workspace.yaml +11 -0
  226. package/files/templates/monorepo[D]/files/tsconfig.json +6 -0
  227. package/files/templates/monorepo[D]/files/typedoc.json +25 -0
  228. package/files/templates/monorepo[D]/files/vitest.config.ts +27 -0
  229. package/files/templates/monorepo[D]/lucy.json +69 -0
  230. package/files/templates/tauri[D]/lucy.json +9 -0
  231. package/files/templates/velo[D]/files/.prettierignore +23 -0
  232. package/files/templates/velo[D]/files/.prettierrc.js +16 -0
  233. package/files/templates/velo[D]/lucy.json +137 -0
  234. package/old/Gulpfile.d.ts +34 -0
  235. package/old/Gulpfile.js +116 -0
  236. package/old/Gulpfile.js.map +1 -0
  237. package/old/gulp/backend.d.ts +3 -0
  238. package/old/gulp/backend.js +92 -0
  239. package/old/gulp/backend.js.map +1 -0
  240. package/old/gulp/checks.d.ts +3 -0
  241. package/old/gulp/checks.js +205 -0
  242. package/old/gulp/checks.js.map +1 -0
  243. package/old/gulp/clean.d.ts +3 -0
  244. package/old/gulp/clean.js +29 -0
  245. package/old/gulp/clean.js.map +1 -0
  246. package/old/gulp/copy.d.ts +2 -0
  247. package/old/gulp/copy.js +34 -0
  248. package/old/gulp/copy.js.map +1 -0
  249. package/old/gulp/helpers.d.ts +2 -0
  250. package/old/gulp/helpers.js +25 -0
  251. package/old/gulp/helpers.js.map +1 -0
  252. package/old/gulp/pages.d.ts +2 -0
  253. package/old/gulp/pages.js +37 -0
  254. package/old/gulp/pages.js.map +1 -0
  255. package/old/gulp/pipeline.d.ts +1 -0
  256. package/old/gulp/pipeline.js +29 -0
  257. package/old/gulp/pipeline.js.map +1 -0
  258. package/old/gulp/public.d.ts +2 -0
  259. package/old/gulp/public.js +50 -0
  260. package/old/gulp/public.js.map +1 -0
  261. package/old/gulp/styles.d.ts +2 -0
  262. package/old/gulp/styles.js +40 -0
  263. package/old/gulp/styles.js.map +1 -0
  264. package/old/gulp/templates.d.ts +2 -0
  265. package/old/gulp/templates.js +33 -0
  266. package/old/gulp/templates.js.map +1 -0
  267. package/old/gulp/types.d.ts +4 -0
  268. package/old/gulp/types.js +289 -0
  269. package/old/gulp/types.js.map +1 -0
  270. package/old/gulp/watchers.d.ts +9 -0
  271. package/old/gulp/watchers.js +59 -0
  272. package/old/gulp/watchers.js.map +1 -0
  273. package/old/helpers.d.ts +32 -0
  274. package/old/helpers.js +267 -0
  275. package/old/helpers.js.map +1 -0
  276. package/{src copy/helpers.ts → old/helpers.ts} +1 -1
  277. package/old/index.d.ts +59 -0
  278. package/old/index.js +288 -0
  279. package/old/index.js.map +1 -0
  280. package/old/init.d.ts +8 -0
  281. package/old/init.js +165 -0
  282. package/old/init.js.map +1 -0
  283. package/old/models.d.ts +37 -0
  284. package/old/models.js +2 -0
  285. package/old/models.js.map +1 -0
  286. package/old/prepare.d.ts +8 -0
  287. package/old/prepare.js +20 -0
  288. package/old/prepare.js.map +1 -0
  289. package/old/schemas/index.js +2 -0
  290. package/old/schemas/index.js.map +1 -0
  291. package/old/schemas/index.ts +0 -0
  292. package/old/schemas/types.d.ts +0 -0
  293. package/old/schemas/types.js +2 -0
  294. package/old/schemas/types.js.map +1 -0
  295. package/old/schemas/types.ts +0 -0
  296. package/old/sync.d.ts +2 -0
  297. package/old/sync.js +88 -0
  298. package/old/sync.js.map +1 -0
  299. package/package.json +18 -19
  300. package/patches/velo-sync+0.0.9.patch +13 -0
  301. package/src/args.ts +62 -17
  302. package/src/commands/checks.ts +51 -0
  303. package/src/commands/cleanup.ts +11 -0
  304. package/src/commands/copy.ts +28 -0
  305. package/src/commands/edit.ts +81 -0
  306. package/src/commands/exec.ts +69 -0
  307. package/src/commands/git.ts +113 -0
  308. package/src/commands/home.ts +22 -0
  309. package/src/commands/install.ts +249 -0
  310. package/src/commands/read.ts +45 -0
  311. package/src/commands/write.ts +45 -0
  312. package/src/config.ts +116 -35
  313. package/src/error.ts +1 -2
  314. package/src/helpers.ts +92 -0
  315. package/src/index.ts +88 -13
  316. package/src/init/blocks.ts +85 -0
  317. package/src/init/cargo.ts +25 -0
  318. package/src/init/expo.ts +69 -0
  319. package/src/init/gitModules.ts +15 -0
  320. package/src/init/index.ts +81 -0
  321. package/src/init/monorepo.ts +72 -0
  322. package/src/init/prepareVelo.ts +19 -0
  323. package/src/init/tauri.ts +42 -0
  324. package/src/init/templates.ts +98 -0
  325. package/src/init/velo.ts +65 -0
  326. package/src/runtime.ts +1 -0
  327. package/src/schemas/gulp.ts +31 -0
  328. package/src/schemas/index.ts +13 -1
  329. package/src/schemas/lucy.ts +43 -0
  330. package/src/schemas/types.ts +40 -0
  331. package/src/tasks/Gulpfile.ts +207 -0
  332. package/src/tasks/gulp/backend.ts +113 -0
  333. package/src/tasks/gulp/checks.ts +218 -0
  334. package/src/tasks/gulp/clean.ts +38 -0
  335. package/src/tasks/gulp/copy.ts +38 -0
  336. package/src/tasks/gulp/helpers.ts +18 -0
  337. package/src/tasks/gulp/pages.ts +43 -0
  338. package/src/tasks/gulp/pipeline.ts +31 -0
  339. package/src/tasks/gulp/public.ts +61 -0
  340. package/src/tasks/gulp/styles.ts +47 -0
  341. package/src/tasks/gulp/templates.ts +53 -0
  342. package/src/tasks/gulp/types.ts +310 -0
  343. package/src/tasks/gulp/watchers.ts +97 -0
  344. package/src/tasks/index.ts +24 -0
  345. package/src/tasks/syncSettings.ts +21 -0
  346. package/src/types.d.ts +1 -1
  347. package/src/utils/index.ts +0 -0
  348. package/src/utils/logger.ts +40 -0
  349. package/src/wix-sdk/check.ts +24 -0
  350. package/src/wix-sdk/client.ts +18 -0
  351. package/src/wix-sdk/index.ts +17 -0
  352. package/src/wix-sdk/init.ts +54 -0
  353. package/src/wix-sdk/run.ts +56 -0
  354. package/src/wix-sync/client.ts +6 -0
  355. package/src/wix-sync/export.ts +19 -0
  356. package/src/wix-sync/import.ts +27 -0
  357. package/src/wix-sync/index.ts +36 -0
  358. package/src/wix-sync/init.ts +77 -0
  359. package/src/wix-sync/is-alive.ts +25 -0
  360. package/src/wix-sync/migrate.ts +23 -0
  361. package/src/wix-sync/sync.ts +27 -0
  362. package/tsconfig.json +6 -5
  363. package/dist/init.d.ts +0 -4
  364. package/dist/init.js +0 -275
  365. package/dist/models.js +0 -1
  366. package/dist/params.d.ts +0 -7
  367. package/dist/params.js +0 -23
  368. package/files/expo/.env +0 -1
  369. package/files/expo/lib/data.ts +0 -48
  370. package/files/expo/lucy.json +0 -8
  371. package/src/init.ts +0 -392
  372. /package/dist/{models.d.ts → schemas/tsconfig.d.ts} +0 -0
  373. /package/{files/expo/components/.gitkeep → dist/utils/index.d.ts} +0 -0
  374. /package/files/{expo → templates/expo[D]/files}/.nvmrc +0 -0
  375. /package/files/{expo → templates/expo[D]/files}/.prettierignore +0 -0
  376. /package/files/{expo → templates/expo[D]/files}/.prettierrc.js +0 -0
  377. /package/files/{expo → templates/expo[D]/files}/.yarnrc +0 -0
  378. /package/files/{expo → templates/expo[D]/files}/.yarnrc.yml +0 -0
  379. /package/files/{expo → templates/expo[D]/files}/README.md +0 -0
  380. /package/files/{expo → templates/expo[D]/files}/assets/fonts/SpaceMono-Regular.ttf +0 -0
  381. /package/files/{expo → templates/expo[D]/files}/assets/images/adaptive-icon.png +0 -0
  382. /package/files/{expo → templates/expo[D]/files}/assets/images/favicon.png +0 -0
  383. /package/files/{expo → templates/expo[D]/files}/assets/images/icon.png +0 -0
  384. /package/files/{expo → templates/expo[D]/files}/assets/images/splash-icon.png +0 -0
  385. /package/files/{expo → templates/expo[D]/files}/babel.config.js +0 -0
  386. /package/files/{expo/components/ui → templates/expo[D]/files/components}/.gitkeep +0 -0
  387. /package/files/{velo/typescript/__mocks__ → templates/expo[D]/files/components/ui}/.gitkeep +0 -0
  388. /package/files/{expo → templates/expo[D]/files}/constants/theme.ts +0 -0
  389. /package/files/{expo → templates/expo[D]/files}/eslint.config.mjs +0 -0
  390. /package/files/{expo → templates/expo[D]/files}/global.css +0 -0
  391. /package/files/{expo → templates/expo[D]/files}/hooks/useColorScheme.ts +0 -0
  392. /package/files/{expo → templates/expo[D]/files}/index.ts +0 -0
  393. /package/files/{expo → templates/expo[D]/files}/lib/utils/index.ts +0 -0
  394. /package/files/{expo → templates/expo[D]/files}/lib/utils/polyfills.ts +0 -0
  395. /package/files/{expo → templates/expo[D]/files}/lib/wix/client.ts +0 -0
  396. /package/files/{expo → templates/expo[D]/files}/lib/wix/error.ts +0 -0
  397. /package/files/{expo → templates/expo[D]/files}/lib/wix/index.ts +0 -0
  398. /package/files/{expo → templates/expo[D]/files}/nativewind-env.d.ts +0 -0
  399. /package/files/{expo → templates/expo[D]/files}/scripts/reset-project.ts +0 -0
  400. /package/files/{expo → templates/expo[D]/files}/tailwind.config.js +0 -0
  401. /package/files/{expo → templates/expo[D]/files}/tsconfig.json +0 -0
  402. /package/files/{expo → templates/expo[D]/files}/types/reset.d.ts +0 -0
  403. /package/files/{velo → templates/velo[D]/files}/.gitmodules +0 -0
  404. /package/files/{velo → templates/velo[D]/files}/.madgerc +0 -0
  405. /package/files/{velo → templates/velo[D]/files}/.nvmrc +0 -0
  406. /package/files/{velo → templates/velo[D]/files}/.stylelintrc.js +0 -0
  407. /package/files/{velo → templates/velo[D]/files}/.yarnrc.yml +0 -0
  408. /package/files/{velo → templates/velo[D]/files}/currents.config.js +0 -0
  409. /package/files/{velo → templates/velo[D]/files}/cypress/e2e/base/base.cy.ts +0 -0
  410. /package/files/{velo → templates/velo[D]/files}/cypress/fixtures/example.json +0 -0
  411. /package/files/{velo → templates/velo[D]/files}/cypress/support/commands.ts +0 -0
  412. /package/files/{velo → templates/velo[D]/files}/cypress/support/e2e.ts +0 -0
  413. /package/files/{velo → templates/velo[D]/files}/cypress/tsconfig.json +0 -0
  414. /package/files/{velo → templates/velo[D]/files}/cypress.config.mjs +0 -0
  415. /package/files/{velo → templates/velo[D]/files}/eslint.config.mjs +0 -0
  416. /package/files/{velo → templates/velo[D]/files}/local.tsconfig.json +0 -0
  417. /package/files/{velo → templates/velo[D]/files}/typedoc.json +0 -0
  418. /package/files/{velo/typescript/pages → templates/velo[D]/files/typescript/__mocks__}/.gitkeep +0 -0
  419. /package/files/{velo → templates/velo[D]/files}/typescript/backend/data.ts +0 -0
  420. /package/files/{velo → templates/velo[D]/files}/typescript/backend/events.ts +0 -0
  421. /package/files/{velo → templates/velo[D]/files}/typescript/backend/http-functions.ts +0 -0
  422. /package/files/{velo → templates/velo[D]/files}/typescript/backend/lib/http-functions/sync.ts +0 -0
  423. /package/files/{velo → templates/velo[D]/files}/typescript/backend/permissions.json +0 -0
  424. /package/files/{velo/typescript/public → templates/velo[D]/files/typescript/pages}/.gitkeep +0 -0
  425. /package/files/{velo/typescript/styles → templates/velo[D]/files/typescript/public}/.gitkeep +0 -0
  426. /package/files/{velo → templates/velo[D]/files}/typescript/public/scss/app.scss +0 -0
  427. /package/files/{velo/typescript/styles/global.scss → templates/velo[D]/files/typescript/styles/.gitkeep} +0 -0
  428. /package/{src copy/schemas/index.ts → files/templates/velo[D]/files/typescript/styles/global.scss} +0 -0
  429. /package/files/{velo → templates/velo[D]/files}/typescript/tsconfig.json +0 -0
  430. /package/files/{velo → templates/velo[D]/files}/vitest.config.ts +0 -0
  431. /package/{src copy → old}/Gulpfile.ts +0 -0
  432. /package/{src copy → old}/gulp/backend.ts +0 -0
  433. /package/{src copy → old}/gulp/checks.ts +0 -0
  434. /package/{src copy → old}/gulp/clean.ts +0 -0
  435. /package/{src copy → old}/gulp/copy.ts +0 -0
  436. /package/{src copy → old}/gulp/helpers.ts +0 -0
  437. /package/{src copy → old}/gulp/pages.ts +0 -0
  438. /package/{src copy → old}/gulp/pipeline.ts +0 -0
  439. /package/{src copy → old}/gulp/public.ts +0 -0
  440. /package/{src copy → old}/gulp/styles.ts +0 -0
  441. /package/{src copy → old}/gulp/templates.ts +0 -0
  442. /package/{src copy → old}/gulp/types.ts +0 -0
  443. /package/{src copy → old}/gulp/watchers.ts +0 -0
  444. /package/{src copy → old}/index.ts +0 -0
  445. /package/{src copy → old}/init.ts +0 -0
  446. /package/{src copy → old}/models.ts +0 -0
  447. /package/{src copy → old}/prepare.ts +0 -0
  448. /package/{src copy/schemas/types.ts → old/schemas/index.d.ts} +0 -0
  449. /package/{src copy → old}/settings.json +0 -0
  450. /package/{src copy → old}/sync.ts +0 -0
  451. /package/{src copy → old}/types.d.ts +0 -0
  452. /package/src/{models.ts → schemas/tsconfig.ts} +0 -0
@@ -0,0 +1,218 @@
1
+ import * as fs from 'fs';
2
+ import { glob } from 'glob';
3
+
4
+ import * as path from 'path';
5
+ import gulp, { emit } from 'gulp';
6
+ import ts from 'gulp-typescript';
7
+ import { blue, logger, red, yellow } from '../../utils/logger.js';
8
+ import { TaskOptions } from '../../schemas/gulp.js';
9
+ import { TaskType } from '../../schemas/types.js';
10
+
11
+ // /**
12
+ // * Extracts a match from a file
13
+ // * @param {string} filePath File path
14
+ // * @param {string} pattern Pattern to match
15
+ // */
16
+ // function extractMatchFromFile(filePath: string, pattern: string) {
17
+ // return new Promise((resolve, reject) => {
18
+ // fs.readFile(filePath, 'utf8', (err, data) => {
19
+ // if (err){
20
+ // reject(err);
21
+
22
+ // return;
23
+ // }
24
+ // const regex = new RegExp(pattern);
25
+ // const match = regex.exec(data);
26
+ // const capturedGroup = match ? match.groups?.page : null;
27
+ // resolve(capturedGroup);
28
+ // });
29
+ // });
30
+ // }
31
+
32
+ // async function readFilesInFolder(folderPath: string, pattern: string | null, globPattern: string): Promise<Object[]> {
33
+ // const files = await glob(path.join(folderPath, globPattern));
34
+ // const filenameList: Object[] = [];
35
+
36
+ // for (const file of files) {
37
+ // if (pattern) {
38
+ // const capturedGroup = await extractMatchFromFile(file, pattern);
39
+ // if (capturedGroup) {
40
+ // filenameList.push(capturedGroup);
41
+ // }
42
+ // } else {
43
+ // filenameList.push(path.basename(file));
44
+ // }
45
+ // }
46
+
47
+ // return filenameList;
48
+ // }
49
+
50
+ /**
51
+ * Extracts a match from a file
52
+ * @param {string} filePath File path
53
+ * @param {string} pattern Pattern to match
54
+ */
55
+ function extractMatchFromFile(filePath: string, pattern: string) {
56
+ return new Promise((resolve, reject) => {
57
+ fs.readFile(filePath, 'utf8', (err, data) => {
58
+ if (err){
59
+ reject(err);
60
+
61
+ return;
62
+ }
63
+ const regex = new RegExp(pattern);
64
+ const match = regex.exec(data);
65
+ const capturedGroup = match ? match.groups?.page : null;
66
+ resolve(capturedGroup);
67
+ });
68
+ });
69
+ }
70
+
71
+ /**
72
+ * Reads files in a folder
73
+ * @param {string} folderPath Folder path
74
+ * @param {string} pattern Pattern to match
75
+ * @param {string} globPattern Glob pattern
76
+ */
77
+ async function readFilesInFolder(folderPath: string, pattern: string | null, globPattern: string,) {
78
+ const files = await glob.glob(path.join(folderPath, globPattern));
79
+ const filenameList: Object[] = [];
80
+ function traverseFiles(index: number) {
81
+ if (index === files.length){
82
+ return;
83
+ }
84
+ const file = files[index];
85
+ if(pattern){
86
+ if(!file) return
87
+ extractMatchFromFile(file, pattern)
88
+ .then((capturedGroup) => {
89
+ if (capturedGroup){
90
+ filenameList.push(capturedGroup);
91
+ }
92
+ traverseFiles(index + 1);
93
+ })
94
+ .catch(() => { throw new Error(`Error reading file: ${file}`); });
95
+ }
96
+ if(!pattern){
97
+ if(!file) return
98
+ filenameList.push(path.basename(file));
99
+ traverseFiles(index + 1);
100
+ }
101
+ }
102
+ traverseFiles(0);
103
+
104
+ return filenameList;
105
+ }
106
+ export async function checkPages(fail: boolean, force: boolean) {
107
+ logger.action('Checking pages...');
108
+ return new Promise<void>(async (resolve, reject) => {
109
+ try {
110
+ const sourcePages = await readFilesInFolder('./.wix/types/', '\\/pages\\/(?<page>.*\\.ts)', '**/*.json',) as string[];
111
+ const tsPages = await readFilesInFolder('./typescript/pages', null, '**/*.ts',) as string[];
112
+
113
+ const sourcePagesSet = new Set(sourcePages);
114
+ const tsPagesSet = new Set(tsPages);
115
+ const missingInTs = Array.from(sourcePagesSet).filter((item: string) => !tsPages.includes(item));
116
+ const obsoleteInTs = Array.from(tsPagesSet).filter((item: string) => !sourcePages.includes(item));
117
+ if (missingInTs.length > 0){
118
+ if(!force){
119
+ const formattedList = missingInTs.map(page => ` • ${page}`).join('\n');
120
+ logger.error('Missing pages in ts folder::\n' + yellow(formattedList));
121
+ }
122
+ if(force) {
123
+ for (const page of missingInTs) {
124
+ logger.action('Creating missing page: ', page);
125
+ fs.writeFileSync(`./typescript/pages/${page}`, '');
126
+ }
127
+ }
128
+ }
129
+ if (obsoleteInTs.length > 0){
130
+ if(!force){
131
+ const formattedList = obsoleteInTs.map(page => ` • ${page}`).join('\n');
132
+ logger.error('Obsolete pages in TS folder:\n' + yellow(formattedList));
133
+ }
134
+ if(force) {
135
+ for (const page of obsoleteInTs) {
136
+ logger.action('Deleting obsolete page: ', page);
137
+ fs.rmSync(`./typescript/pages/${page}`);
138
+ }
139
+ }
140
+ }
141
+ if (missingInTs.length === 0 && obsoleteInTs.length === 0) {
142
+ logger.success("All pages are in-sync!");
143
+ } else if(fail){
144
+ process.exit(1);
145
+ };
146
+ } catch (error) {
147
+ reject(error);
148
+ }
149
+ });
150
+ }
151
+
152
+ const customReporter: ts.reporter.Reporter = {
153
+ error: (error, tsInstance) => {
154
+ if (!error.diagnostic) {
155
+ logger.error(error.message);
156
+ return;
157
+ }
158
+ const { fullFilename, startPosition } = error;
159
+ const relativePath = path.relative(process.cwd(), fullFilename ?? '');
160
+ const line = startPosition ? startPosition.line + 1 : 0;
161
+ const col = startPosition ? startPosition.character + 1 : 0;
162
+
163
+ const message = tsInstance.flattenDiagnosticMessageText(error.diagnostic.messageText, '\n');
164
+
165
+ logger.error(`${red.underline(relativePath)}:${yellow(String(line))}:${yellow(String(col))}`);
166
+ logger.error(`${red('error')} ${yellow(`TS${error.diagnostic.code}`)}: ${message}`);
167
+ },
168
+ finish: (results) => {
169
+ const errorCount = results.transpileErrors + results.semanticErrors + results.declarationErrors;
170
+ if (errorCount > 0) {
171
+ logger.error(`${red.bold(`Found ${errorCount} error${errorCount > 1 ? 's' : ''}.`)}`);
172
+ }
173
+ },
174
+ };
175
+
176
+ export function checkTs(options: TaskOptions, watching: boolean = false): TaskType {
177
+ const folders = ["typescript", ...options.modulesSourcePaths];
178
+
179
+ const tasks = folders.map((folder) => {
180
+ const tsProject = ts.createProject(`./local.tsconfig.json`, {
181
+ noEmit: true,
182
+ declaration: false,
183
+ skipDefaultLibCheck: true,
184
+ });
185
+ const taskName = `test-${folder}`;
186
+
187
+ const task = (done: gulp.TaskFunctionCallback) => {
188
+ let hasError = false;
189
+ const stream = gulp
190
+ .src([`${folder}/**/*.ts`, `!${folder}/types/**/*.ts`])
191
+ .pipe(tsProject(customReporter))
192
+ .on("error", (error) => {
193
+ hasError = true;
194
+ logger.error(`Error in ${folder}: ${error.message}`);
195
+ if (watching) {
196
+ stream.emit("end");
197
+ } else {
198
+ logger.error(`TypeScript check failed for ${folder}.`);
199
+ process.exit(1); // Exit with error code
200
+ }
201
+ }
202
+ );
203
+
204
+ stream.on("end", () => {
205
+ if (!hasError) {
206
+ logger.success(`Typescript check for ${folder} succeeded!`);
207
+ }
208
+ stream.emit("finish");
209
+ });
210
+ return stream;
211
+ };
212
+
213
+ Object.defineProperty(task, "name", { value: taskName });
214
+ return task;
215
+ });
216
+
217
+ return gulp.parallel(...tasks);
218
+ }
@@ -0,0 +1,38 @@
1
+ import gulp from 'gulp';
2
+ import clean from 'gulp-clean';
3
+ import { logger } from '../../utils/logger.js';
4
+ import { TaskOptions } from '../../schemas/gulp.js';
5
+
6
+ export function cleanWix() {
7
+ return () => {
8
+ return gulp.src('./.wix', { read: false, allowEmpty: true })
9
+ .pipe(clean({ force: true }))
10
+ .on('error', function (e: Error) {
11
+ logger.error('Cleaning of .wix failed!');
12
+ logger.error(`Error: ${e.message}`);
13
+
14
+
15
+ this.emit('end');
16
+ })
17
+ .on('end', function() {
18
+ logger.success("Cleaning of .wix succeeded!");
19
+ });
20
+ }
21
+ }
22
+
23
+ export function cleanSrc(options: TaskOptions) {
24
+ const { outputDir } = options;
25
+
26
+ return () => {
27
+ return gulp.src([`${outputDir}/pages`, `${outputDir}/public`, `${outputDir}/backend`], { read: false, allowEmpty: true })
28
+ .pipe(clean({ force: true }))
29
+ .on('error', function (e: Error) {
30
+ logger.error('Cleaning of output files failed!');
31
+ logger.error(`Error: ${e.message}`);
32
+ this.emit('end');
33
+ })
34
+ .on('end', function() {
35
+ logger.success('Cleaning of .src succeeded!');
36
+ });
37
+ }
38
+ }
@@ -0,0 +1,38 @@
1
+ import gulp from 'gulp';
2
+ import { logger } from '../../utils/logger.js';
3
+ import { TaskOptions } from '../../schemas/gulp.js';
4
+ import { TaskType } from '../../schemas/types.js';
5
+
6
+ export function copyFiles(options: TaskOptions): TaskType {
7
+ const folders = ['typescript', ...options.modulesSourcePaths];
8
+ const tasks = folders.map((folder) => {
9
+ const { outputDir} = options;
10
+ const taskName = `copy-${folder}`; // Create a unique name for each task
11
+ const task = () =>
12
+ gulp.src([
13
+ `${folder}/**/*`,
14
+ `!${folder}/*tsconfig.json`,
15
+ `!${folder}/**/*.ts`,
16
+ `!${folder}/**/*.tsx`,
17
+ `!${folder}/types/**/**`,
18
+ `!${folder}/__mocks__/**/**`,
19
+ `!${folder}/styles/**`,
20
+ ])
21
+ .pipe(gulp.dest(outputDir))
22
+ .on('error', function (e: Error) {
23
+ logger.error(`Copy of files for ${folder} failed!`);
24
+ logger.error(`Error: ${e.message}`);
25
+ this.emit('end');
26
+ })
27
+ .on('end', function () {
28
+ logger.success(`Copy of files for ${folder} succeeded!`);
29
+ });
30
+
31
+ // Register the task with Gulp
32
+ Object.defineProperty(task, 'name', { value: taskName }); // Set a unique name for debugging
33
+ return task;
34
+ });
35
+ const t = gulp.parallel(...tasks);
36
+ // Run all tasks in parallel
37
+ return gulp.parallel(...tasks);
38
+ }
@@ -0,0 +1,18 @@
1
+ import { Effect } from 'effect/index';
2
+ import { Config } from '../../config.js';
3
+
4
+ export const getModulesSourcePaths = Effect.gen(function* () {
5
+ const config = yield* Config
6
+ const data = config.config.lucySettings.modules;
7
+ const paths: string[] = [];
8
+ for (const module of Object.keys(data)) {
9
+ if (!data[module].noCompile) {
10
+ if (data[module].path) {
11
+ paths.push(data[module].path);
12
+ } else {
13
+ paths.push(module);
14
+ }
15
+ }
16
+ }
17
+ return paths;
18
+ });
@@ -0,0 +1,43 @@
1
+ import gulp from 'gulp';
2
+ import * as path from 'path';
3
+ import swc from 'gulp-swc';
4
+ import { logger } from '../../utils/logger.js';
5
+ import { TaskOptions } from '../../schemas/gulp.js';
6
+
7
+ const swcOptions = {
8
+ jsc: {
9
+ target: 'es2020',
10
+ parser: {
11
+ syntax: "typescript",
12
+ tsx: true,
13
+ },
14
+ preserveAllComments: false,
15
+ minify: {
16
+ compress: true // equivalent to {}
17
+ }
18
+ },
19
+ };
20
+
21
+ export function buildPages(options: TaskOptions) {
22
+ const { outputDir} = options;
23
+
24
+ return () => {
25
+ return gulp.src('typescript/pages/*.ts')
26
+ .pipe(swc(swcOptions))
27
+ .on('error', function (e: Error) {
28
+ logger.error('Build of Pages files failed!');
29
+ logger.error(`Error: ${e.message}`);
30
+
31
+ this.emit('end');
32
+ })
33
+ .pipe(gulp.dest(path.join(outputDir, 'pages')))
34
+ .on('error', function (e: Error) {
35
+ logger.error('Build of Pages TS files failed!');
36
+ logger.error(`Error: ${e.message}`);
37
+ this.emit('end');
38
+ })
39
+ .on('end', function() {
40
+ logger.success('Build of Pages TS files succeeded!');
41
+ });
42
+ };
43
+ }
@@ -0,0 +1,31 @@
1
+ import gulp from 'gulp';
2
+ import * as path from 'path';
3
+ import replace from 'gulp-string-replace';
4
+ import { logger } from '../../utils/logger.js';
5
+ import { File } from "../../schemas/gulp.js";
6
+ export function setProdConfig() {
7
+ const tag = process.env.GIT_TAG || 'development';
8
+ const regexGit = /gitTag:\s*(.*),/g;
9
+ const regexDev = /devMode:\s*(.*),/g;
10
+
11
+ return () => {
12
+ return gulp
13
+ .src(['./typescript/public/constants/env.ts'])
14
+ .pipe(replace(regexGit, `gitTag: '${tag}',`))
15
+ .pipe(replace(regexDev, `devMode: false,`))
16
+ .pipe(gulp.dest((file: File) => {
17
+ const filePath = file.dirname;
18
+ const outputDir = path.dirname(filePath);
19
+
20
+ return path.join(`${outputDir}/constants`);
21
+ }))
22
+ .on('error', function (e: Error) {
23
+ logger.error('Setting the git tag failed!');
24
+ logger.error(`Error: ${e.message}`);
25
+ this.emit('end');
26
+ })
27
+ .on('end', function() {
28
+ logger.success('Setting the git tag succeeded!');
29
+ });
30
+ }
31
+ }
@@ -0,0 +1,61 @@
1
+ import gulp from 'gulp';
2
+ import * as path from 'path';
3
+ import swc from 'gulp-swc';
4
+ import { logger } from '../../utils/logger.js';
5
+ import { TaskOptions } from '../../schemas/gulp.js';
6
+ import { TaskType } from '../../schemas/types.js';
7
+
8
+ const swcOptions = {
9
+ jsc: {
10
+ target: 'es2020',
11
+ parser: {
12
+ syntax: "typescript",
13
+ tsx: true,
14
+ },
15
+ preserveAllComments: false,
16
+ minify: {
17
+ compress: true // equivalent to {}
18
+ }
19
+ },
20
+ };
21
+
22
+ export function buildPublic(options: TaskOptions): TaskType {
23
+ const folders = ['typescript', ...options.modulesSourcePaths];
24
+
25
+ const { outputDir } = options;
26
+
27
+ // Create tasks for each folder
28
+ const tasks = folders.map((folder) => {
29
+ const taskName = `build_Public-${folder}`; // Create a unique name for each task
30
+
31
+ const task = () =>
32
+ gulp.src([
33
+ `${folder}/public/**/*.ts`,
34
+ `${folder}/public/**/*.tsx`,
35
+ ])
36
+ .pipe(swc(swcOptions))
37
+ .on('error', function (e: Error) {
38
+ logger.error(`Build of Public files for ${folder} failed!`);
39
+ logger.error(`Error: ${e.message}`);
40
+
41
+ this.emit('end');
42
+ })
43
+ .pipe(gulp.dest(path.join(outputDir, 'public')))
44
+ .on('error', function (e: Error) {
45
+ logger.error(`Build of Public files for ${folder} failed!`);
46
+ logger.error(`Error: ${e.message}`);
47
+ this.emit('end');
48
+ })
49
+ .on('end', function () {
50
+ logger.success(`Build of Public files for ${folder} succeeded!`);
51
+ });
52
+
53
+ // Register the task with Gulp
54
+ Object.defineProperty(task, 'name', { value: taskName }); // Set a unique name for debugging
55
+ return task;
56
+ });
57
+
58
+ // Run all tasks in parallel
59
+ return gulp.parallel(...tasks);
60
+ }
61
+
@@ -0,0 +1,47 @@
1
+ import gulp from 'gulp';
2
+ import chalk from 'chalk';
3
+ import { logger, orange } from '../../utils/logger.js';
4
+ import { TaskOptions } from '../../schemas/gulp.js';
5
+ import { TaskType } from '../../schemas/types.js';
6
+
7
+ export function compileScss(options: TaskOptions): TaskType {
8
+ const folders = ['typescript'];
9
+
10
+ const { sass, outputDir} = options;
11
+
12
+ const buildWixScss = () => gulp.src(['typescript/styles/global.scss'], { allowEmpty: true })
13
+ .pipe(sass().on('error', sass.logError))
14
+ .on('error', function (e: Error) {
15
+ logger.error(`Build of SCSS files for ${orange('global.scs')} failed!`);
16
+ logger.error(`Error: ${orange(e.message)}`);
17
+ this.emit('end');
18
+ })
19
+ .pipe(gulp.dest(`${outputDir}/styles`))
20
+ .on('error', function (e: Error) {
21
+ logger.error(`Compiling of scss files for ${orange('global.scs')} failed!`);
22
+ logger.error(`Error: ${orange(e.message)}`);
23
+ this.emit('end');
24
+ })
25
+ .on('end', function () {
26
+ logger.success(`Compiling of scss files for ${orange('global.scs')} succeeded!`);
27
+ });
28
+
29
+ const buildScss = () => gulp.src(['typescript/public/scss/app.scss'], { allowEmpty: true })
30
+ .pipe(sass().on('error', sass.logError))
31
+ .on('error', function (e: Error) {
32
+ logger.error(`Build of SCSS files for ${orange('app.scss')} failed!`);
33
+ logger.error(`Error: ${orange(e.message)}`);
34
+ this.emit('end');
35
+ })
36
+ .pipe(gulp.dest(`${outputDir}/public/css`))
37
+ .on('error', function (e: Error) {
38
+ logger.error(`Compiling of scss files for ${orange('app.scss')} failed!`);
39
+ logger.error(`Error: ${orange(e.message)}`);
40
+ this.emit('end');
41
+ })
42
+ .on('end', function () {
43
+ logger.success(`Compiling of scss files for ${orange('app.scss')} succeeded!`);
44
+ });
45
+
46
+ return gulp.parallel(buildWixScss, buildScss);
47
+ }
@@ -0,0 +1,53 @@
1
+ import gulp from 'gulp';
2
+ import { File, TaskOptions } from '../../schemas/gulp.js';
3
+ import exec from 'gulp-exec';
4
+ import { logger, orange } from '../../utils/logger.js';
5
+ import path from 'path';
6
+ import fs from 'fs';
7
+
8
+ export function previewTemplates(options: TaskOptions) {
9
+ const allFolders = ['typescript', ...options.modulesSourcePaths];
10
+
11
+ // Filter folders to only include those that have a 'backend/templates' directory
12
+ const foldersWithTemplates = allFolders.filter(folder => {
13
+ const templateDir = path.join(folder, 'backend', 'templates');
14
+ return fs.existsSync(templateDir);
15
+ });
16
+
17
+ if (foldersWithTemplates.length === 0) {
18
+ logger.info("No template folders found to preview.");
19
+ // Return a Gulp task that does nothing.
20
+ return (done: () => void) => done();
21
+ }
22
+
23
+ const taskOpt = {
24
+ continueOnError: true,
25
+ };
26
+
27
+ // Create tasks for each folder that has a template directory
28
+ const tasks = foldersWithTemplates.map((folder) => {
29
+ const taskName = `render_templates-${folder}`;
30
+ const task = () =>
31
+ gulp.src([
32
+ `${folder}/backend/templates/**/*.tsx`,
33
+ `${folder}/backend/templates/data/*.json`,
34
+ `!${folder}/backend/templates/render.ts`,
35
+ ])
36
+ .pipe(exec((file: File) => `npx tsx --tsconfig ./local.tsconfig.json ${file.path}`, taskOpt))
37
+ .on('error', function (e: Error) {
38
+ logger.error(`Render of Template for ${orange(folder)} failed!`);
39
+ logger.error(`Error: ${orange(e.message)}`);
40
+ this.emit('end');
41
+ })
42
+ .on('end', function () {
43
+ logger.success(`Render of Template for ${orange(folder)} succeeded!`);
44
+ });
45
+
46
+ // Register the task with Gulp
47
+ Object.defineProperty(task, 'name', { value: taskName }); // Set a unique name for debugging
48
+ return task;
49
+ });
50
+
51
+ // Run all tasks in parallel
52
+ return gulp.parallel(...tasks);
53
+ }