create-appraisejs 0.3.0-alpha.0 → 0.3.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 (1088) hide show
  1. package/README.md +19 -7
  2. package/dist/cli-args.d.ts +6 -0
  3. package/dist/cli-args.d.ts.map +1 -0
  4. package/dist/cli-args.js +33 -0
  5. package/dist/cli-args.js.map +1 -0
  6. package/dist/cli.d.ts +2 -1
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +16 -8
  9. package/dist/cli.js.map +1 -1
  10. package/dist/config.d.ts +2 -1
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +3 -3
  13. package/dist/config.js.map +1 -1
  14. package/dist/copy-template.d.ts +3 -2
  15. package/dist/copy-template.d.ts.map +1 -1
  16. package/dist/copy-template.js +6 -7
  17. package/dist/copy-template.js.map +1 -1
  18. package/dist/create-project.d.ts.map +1 -1
  19. package/dist/create-project.js +8 -8
  20. package/dist/create-project.js.map +1 -1
  21. package/dist/prepare-template-utils.d.ts +9 -1
  22. package/dist/prepare-template-utils.d.ts.map +1 -1
  23. package/dist/prepare-template-utils.js +49 -1
  24. package/dist/prepare-template-utils.js.map +1 -1
  25. package/dist/prompts.d.ts +6 -1
  26. package/dist/prompts.d.ts.map +1 -1
  27. package/dist/prompts.js +9 -2
  28. package/dist/prompts.js.map +1 -1
  29. package/dist/sync-templates-utils.d.ts.map +1 -1
  30. package/dist/sync-templates-utils.js +4 -1
  31. package/dist/sync-templates-utils.js.map +1 -1
  32. package/dist/template-catalog.d.ts +22 -0
  33. package/dist/template-catalog.d.ts.map +1 -0
  34. package/dist/template-catalog.js +50 -0
  35. package/dist/template-catalog.js.map +1 -0
  36. package/package.json +5 -3
  37. package/templates/blank/package-lock.json +15012 -0
  38. package/templates/blank/package.json +139 -0
  39. package/templates/blank/prisma/dev.db +0 -0
  40. package/templates/blank/public/favicon.svg +8 -0
  41. package/templates/blank/public/logo.svg +13 -0
  42. package/templates/blank/scripts/sync-appraise-base-template.ts +244 -0
  43. package/templates/blank/scripts/sync-template-step-groups.ts +247 -0
  44. package/templates/blank/src/app/globals.css +90 -0
  45. package/templates/blank/src/app/layout.tsx +207 -0
  46. package/templates/blank/src/components/theme/theme-provider.tsx +16 -0
  47. package/templates/blank/src/lib/template-sync-utils.js +50 -0
  48. package/templates/blank/src/lib/template-sync-utils.ts +65 -0
  49. package/templates/blank/tsconfig.json +31 -0
  50. package/templates/starter/.env.example +2 -0
  51. package/templates/starter/.vscode/settings.json +13 -0
  52. package/templates/starter/README.md +57 -0
  53. package/templates/starter/automation/config/environments/environments.json +1 -0
  54. package/templates/starter/automation/mapping/locator-map.json +1 -0
  55. package/templates/starter/components.json +24 -0
  56. package/templates/starter/cucumber.mjs +16 -0
  57. package/templates/starter/eslint.config.mjs +20 -0
  58. package/templates/starter/gitignore +56 -0
  59. package/templates/starter/next-env.d.ts +6 -0
  60. package/templates/starter/next.config.ts +20 -0
  61. package/templates/starter/package-lock.json +15012 -0
  62. package/templates/starter/package.json +139 -0
  63. package/templates/starter/packages/cucumber-runtime/package.json +13 -0
  64. package/templates/starter/packages/cucumber-runtime/src/cache.util.ts +93 -0
  65. package/templates/starter/packages/cucumber-runtime/src/cli.ts +68 -0
  66. package/templates/starter/packages/cucumber-runtime/src/environment.util.ts +21 -0
  67. package/templates/starter/packages/cucumber-runtime/src/executor.ts +32 -0
  68. package/templates/starter/packages/cucumber-runtime/src/hooks.ts +106 -0
  69. package/templates/starter/packages/cucumber-runtime/src/index.ts +17 -0
  70. package/templates/starter/packages/cucumber-runtime/src/locator.util.ts +234 -0
  71. package/templates/starter/packages/cucumber-runtime/src/parameter-types.ts +7 -0
  72. package/templates/starter/packages/cucumber-runtime/src/paths.ts +98 -0
  73. package/templates/starter/packages/cucumber-runtime/src/random-data.util.ts +35 -0
  74. package/templates/starter/packages/cucumber-runtime/src/types.ts +13 -0
  75. package/templates/starter/packages/cucumber-runtime/src/world.ts +44 -0
  76. package/templates/starter/packages/cucumber-runtime/tsconfig.json +11 -0
  77. package/templates/starter/packages/locator-picker-companion/dist/cli.d.ts +1 -0
  78. package/templates/starter/packages/locator-picker-companion/dist/cli.js +302 -0
  79. package/templates/starter/packages/locator-picker-companion/dist/index.d.ts +3 -0
  80. package/templates/starter/packages/locator-picker-companion/dist/index.js +3 -0
  81. package/templates/starter/packages/locator-picker-companion/dist/injected-picker-script.d.ts +1 -0
  82. package/templates/starter/packages/locator-picker-companion/dist/injected-picker-script.js +615 -0
  83. package/templates/starter/packages/locator-picker-companion/dist/launcher.d.ts +11 -0
  84. package/templates/starter/packages/locator-picker-companion/dist/launcher.js +59 -0
  85. package/templates/starter/packages/locator-picker-companion/dist/selector-generator.d.ts +3 -0
  86. package/templates/starter/packages/locator-picker-companion/dist/selector-generator.js +257 -0
  87. package/templates/starter/packages/locator-picker-companion/dist/session-file.d.ts +22 -0
  88. package/templates/starter/packages/locator-picker-companion/dist/session-file.js +150 -0
  89. package/templates/starter/packages/locator-picker-companion/dist/types.d.ts +31 -0
  90. package/templates/starter/packages/locator-picker-companion/dist/types.js +1 -0
  91. package/templates/starter/packages/locator-picker-companion/package.json +17 -0
  92. package/templates/starter/packages/locator-picker-companion/src/cli.ts +428 -0
  93. package/templates/starter/packages/locator-picker-companion/src/index.ts +3 -0
  94. package/templates/starter/packages/locator-picker-companion/src/injected-picker-script.ts +771 -0
  95. package/templates/starter/packages/locator-picker-companion/src/launcher.ts +77 -0
  96. package/templates/starter/packages/locator-picker-companion/src/selector-generator.ts +339 -0
  97. package/templates/starter/packages/locator-picker-companion/src/session-file.ts +226 -0
  98. package/templates/starter/packages/locator-picker-companion/src/types.ts +42 -0
  99. package/templates/starter/packages/locator-picker-companion/tsconfig.json +14 -0
  100. package/templates/starter/postcss.config.mjs +8 -0
  101. package/templates/starter/prisma/dev.db +0 -0
  102. package/templates/starter/prisma/migrations/20251026202316_migrate_back_to_sqlite/migration.sql +257 -0
  103. package/templates/starter/prisma/migrations/20251104113456_add_type_for_template_step_groups/migration.sql +16 -0
  104. package/templates/starter/prisma/migrations/20251104170946_add_tags_to_test_suite_and_test_case/migration.sql +27 -0
  105. package/templates/starter/prisma/migrations/20251112190024_add_cascade_delete_to_test_run_test_case/migration.sql +17 -0
  106. package/templates/starter/prisma/migrations/20251113181100_add_test_run_log/migration.sql +12 -0
  107. package/templates/starter/prisma/migrations/20251119191838_add_tag_type/migration.sql +28 -0
  108. package/templates/starter/prisma/migrations/20251121164059_add_conflict_resolution/migration.sql +12 -0
  109. package/templates/starter/prisma/migrations/20251130190737_add_trace_path_to_test_run_test_case/migration.sql +2 -0
  110. package/templates/starter/prisma/migrations/20251213074835_add_log_path_to_test_run/migration.sql +2 -0
  111. package/templates/starter/prisma/migrations/20251213183952_add_name_property_for_the_test_run_entities/migration.sql +30 -0
  112. package/templates/starter/prisma/migrations/20251223183400_add_report_model_to_db_schema/migration.sql +10 -0
  113. package/templates/starter/prisma/migrations/20251223183637_add_report_test_case_entity_for_storing_test_results_for_individual_test_cases/migration.sql +10 -0
  114. package/templates/starter/prisma/migrations/20251224083549_add_comprehensive_report_storage/migration.sql +108 -0
  115. package/templates/starter/prisma/migrations/20251229194422_migrate_duration_to_string/migration.sql +55 -0
  116. package/templates/starter/prisma/migrations/20251230124637_add_unique_constraint_to_test_run_name/migration.sql +27 -0
  117. package/templates/starter/prisma/migrations/20260115094436_add_dashboard_metrics/migration.sql +59 -0
  118. package/templates/starter/prisma/migrations/20260127172022_add_cascade_delete_to_step_parameters/migration.sql +34 -0
  119. package/templates/starter/prisma/migrations/20260313093000_add_report_step_screenshot_path/migration.sql +1 -0
  120. package/templates/starter/prisma/migrations/20260318120000_add_test_suite_context_to_test_run_test_case/migration.sql +20 -0
  121. package/templates/starter/prisma/migrations/20260318173512_add_support_of_test_suite_level_runs/migration.sql +2 -0
  122. package/templates/starter/prisma/migrations/migration_lock.toml +3 -0
  123. package/templates/starter/prisma/schema.prisma +558 -0
  124. package/templates/starter/public/favicon.svg +8 -0
  125. package/templates/starter/public/file.svg +1 -0
  126. package/templates/starter/public/globe.svg +1 -0
  127. package/templates/starter/public/logo.svg +13 -0
  128. package/templates/starter/public/next.svg +1 -0
  129. package/templates/starter/public/vercel.svg +1 -0
  130. package/templates/starter/public/window.svg +1 -0
  131. package/templates/starter/scripts/build-step-registry.ts +33 -0
  132. package/templates/starter/scripts/install-playwright.ts +29 -0
  133. package/templates/starter/scripts/install-template-step.ts +128 -0
  134. package/templates/starter/scripts/lib/filename-utils.test.ts +24 -0
  135. package/templates/starter/scripts/lib/filename-utils.ts +24 -0
  136. package/templates/starter/scripts/lib/jsdoc-parser.test.ts +63 -0
  137. package/templates/starter/scripts/lib/jsdoc-parser.ts +88 -0
  138. package/templates/starter/scripts/lib/step-file-parser.test.ts +71 -0
  139. package/templates/starter/scripts/lib/step-file-parser.ts +315 -0
  140. package/templates/starter/scripts/lib/step-matcher.test.ts +86 -0
  141. package/templates/starter/scripts/lib/step-matcher.ts +120 -0
  142. package/templates/starter/scripts/lib/sync-script-runner.ts +23 -0
  143. package/templates/starter/scripts/lib/sync-summary.ts +29 -0
  144. package/templates/starter/scripts/lib/tag-parsing.test.ts +20 -0
  145. package/templates/starter/scripts/lib/tag-parsing.ts +10 -0
  146. package/templates/starter/scripts/lib/template-step-installer.test.ts +225 -0
  147. package/templates/starter/scripts/lib/template-step-installer.ts +404 -0
  148. package/templates/starter/scripts/lib/template-step-registry.test.ts +118 -0
  149. package/templates/starter/scripts/lib/template-step-registry.ts +137 -0
  150. package/templates/starter/scripts/protect-seeded-files.ts +51 -0
  151. package/templates/starter/scripts/regenerate-features.ts +98 -0
  152. package/templates/starter/scripts/run-vitest.ts +59 -0
  153. package/templates/starter/scripts/setup-env.ts +26 -0
  154. package/templates/starter/scripts/sync-all.ts +287 -0
  155. package/templates/starter/scripts/sync-appraise-base-template.ts +244 -0
  156. package/templates/starter/scripts/sync-environments.ts +305 -0
  157. package/templates/starter/scripts/sync-locator-groups.ts +358 -0
  158. package/templates/starter/scripts/sync-locators.ts +348 -0
  159. package/templates/starter/scripts/sync-modules.ts +302 -0
  160. package/templates/starter/scripts/sync-tags.ts +255 -0
  161. package/templates/starter/scripts/sync-template-step-groups.ts +247 -0
  162. package/templates/starter/scripts/sync-template-steps.ts +386 -0
  163. package/templates/starter/scripts/sync-test-cases.ts +717 -0
  164. package/templates/starter/scripts/sync-test-suites.ts +369 -0
  165. package/templates/starter/src/actions/dashboard/dashboard-actions.ts +70 -0
  166. package/templates/starter/src/actions/environments/environment-actions.ts +102 -0
  167. package/templates/starter/src/actions/locator/locator-actions.ts +77 -0
  168. package/templates/starter/src/actions/locator-groups/locator-group-actions.ts +115 -0
  169. package/templates/starter/src/actions/locator-picker/locator-picker-actions.test.ts +81 -0
  170. package/templates/starter/src/actions/locator-picker/locator-picker-actions.ts +102 -0
  171. package/templates/starter/src/actions/modules/module-actions.ts +99 -0
  172. package/templates/starter/src/actions/reports/report-actions.ts +79 -0
  173. package/templates/starter/src/actions/settings/sync-actions.test.ts +58 -0
  174. package/templates/starter/src/actions/settings/sync-actions.ts +46 -0
  175. package/templates/starter/src/actions/tags/tag-actions.ts +99 -0
  176. package/templates/starter/src/actions/template-step/template-step-actions.ts +114 -0
  177. package/templates/starter/src/actions/template-step-group/template-step-group-actions.ts +129 -0
  178. package/templates/starter/src/actions/template-test-case/template-test-case-actions.ts +98 -0
  179. package/templates/starter/src/actions/test-case/test-case-actions.ts +108 -0
  180. package/templates/starter/src/actions/test-run/test-run-actions.ts +269 -0
  181. package/templates/starter/src/actions/test-suite/test-suite-actions.ts +111 -0
  182. package/templates/starter/src/app/(base)/environments/create/page.tsx +28 -0
  183. package/templates/starter/src/app/(base)/environments/environment-form.test.tsx +92 -0
  184. package/templates/starter/src/app/(base)/environments/environment-form.tsx +228 -0
  185. package/templates/starter/src/app/(base)/environments/environment-helpers.ts +58 -0
  186. package/templates/starter/src/app/(base)/environments/environment-table-columns.tsx +96 -0
  187. package/templates/starter/src/app/(base)/environments/environment-table.tsx +25 -0
  188. package/templates/starter/src/app/(base)/environments/modify/[id]/page.tsx +49 -0
  189. package/templates/starter/src/app/(base)/environments/page.tsx +59 -0
  190. package/templates/starter/src/app/(base)/layout.tsx +10 -0
  191. package/templates/starter/src/app/(base)/locator-groups/create/page.tsx +44 -0
  192. package/templates/starter/src/app/(base)/locator-groups/locator-group-form.tsx +215 -0
  193. package/templates/starter/src/app/(base)/locator-groups/locator-group-table-columns.tsx +77 -0
  194. package/templates/starter/src/app/(base)/locator-groups/locator-group-table.tsx +28 -0
  195. package/templates/starter/src/app/(base)/locator-groups/modify/[id]/page.tsx +46 -0
  196. package/templates/starter/src/app/(base)/locator-groups/page.tsx +71 -0
  197. package/templates/starter/src/app/(base)/locators/create/create-locator-workspace-helpers.test.ts +71 -0
  198. package/templates/starter/src/app/(base)/locators/create/create-locator-workspace-helpers.ts +333 -0
  199. package/templates/starter/src/app/(base)/locators/create/create-locator-workspace.test.tsx +125 -0
  200. package/templates/starter/src/app/(base)/locators/create/create-locator-workspace.tsx +324 -0
  201. package/templates/starter/src/app/(base)/locators/create/page.tsx +55 -0
  202. package/templates/starter/src/app/(base)/locators/create/use-locator-workspace.ts +183 -0
  203. package/templates/starter/src/app/(base)/locators/locator-helpers.test.ts +28 -0
  204. package/templates/starter/src/app/(base)/locators/locator-helpers.ts +59 -0
  205. package/templates/starter/src/app/(base)/locators/locator-table-columns.tsx +74 -0
  206. package/templates/starter/src/app/(base)/locators/locator-table.tsx +30 -0
  207. package/templates/starter/src/app/(base)/locators/modify/[id]/page.tsx +86 -0
  208. package/templates/starter/src/app/(base)/locators/page.tsx +62 -0
  209. package/templates/starter/src/app/(base)/locators/picker/page.tsx +7 -0
  210. package/templates/starter/src/app/(base)/locators/sync-locators-button.tsx +67 -0
  211. package/templates/starter/src/app/(base)/modules/create/page.tsx +33 -0
  212. package/templates/starter/src/app/(base)/modules/modify/[id]/page.tsx +43 -0
  213. package/templates/starter/src/app/(base)/modules/module-form.test.tsx +84 -0
  214. package/templates/starter/src/app/(base)/modules/module-form.tsx +159 -0
  215. package/templates/starter/src/app/(base)/modules/module-helpers.ts +64 -0
  216. package/templates/starter/src/app/(base)/modules/module-table-columns.tsx +81 -0
  217. package/templates/starter/src/app/(base)/modules/module-table.tsx +25 -0
  218. package/templates/starter/src/app/(base)/modules/page.tsx +59 -0
  219. package/templates/starter/src/app/(base)/reports/[id]/page.tsx +284 -0
  220. package/templates/starter/src/app/(base)/reports/duration-chart.tsx +33 -0
  221. package/templates/starter/src/app/(base)/reports/feature-chart.tsx +79 -0
  222. package/templates/starter/src/app/(base)/reports/overview-chart.tsx +49 -0
  223. package/templates/starter/src/app/(base)/reports/page.tsx +98 -0
  224. package/templates/starter/src/app/(base)/reports/report-detail-helpers.test.ts +109 -0
  225. package/templates/starter/src/app/(base)/reports/report-detail-helpers.ts +247 -0
  226. package/templates/starter/src/app/(base)/reports/report-metric-card.tsx +78 -0
  227. package/templates/starter/src/app/(base)/reports/report-table-columns.tsx +189 -0
  228. package/templates/starter/src/app/(base)/reports/report-table.tsx +72 -0
  229. package/templates/starter/src/app/(base)/reports/report-view-table-columns.tsx +142 -0
  230. package/templates/starter/src/app/(base)/reports/report-view-table.tsx +83 -0
  231. package/templates/starter/src/app/(base)/reports/test-cases/page.tsx +40 -0
  232. package/templates/starter/src/app/(base)/reports/test-cases/test-cases-metric-table-columns.tsx +115 -0
  233. package/templates/starter/src/app/(base)/reports/test-cases/test-cases-metric-table.tsx +27 -0
  234. package/templates/starter/src/app/(base)/reports/test-suites/page.tsx +42 -0
  235. package/templates/starter/src/app/(base)/reports/test-suites/test-suites-metric-table-columns.tsx +79 -0
  236. package/templates/starter/src/app/(base)/reports/test-suites/test-suites-metric-table.tsx +27 -0
  237. package/templates/starter/src/app/(base)/reports/view-logs-button.tsx +58 -0
  238. package/templates/starter/src/app/(base)/settings/page.tsx +30 -0
  239. package/templates/starter/src/app/(base)/settings/settings-sync-panel-helpers.test.tsx +40 -0
  240. package/templates/starter/src/app/(base)/settings/settings-sync-panel-helpers.tsx +110 -0
  241. package/templates/starter/src/app/(base)/settings/settings-sync-panel.test.tsx +127 -0
  242. package/templates/starter/src/app/(base)/settings/settings-sync-panel.tsx +146 -0
  243. package/templates/starter/src/app/(base)/settings/use-settings-sync.ts +66 -0
  244. package/templates/starter/src/app/(base)/tags/create/page.tsx +39 -0
  245. package/templates/starter/src/app/(base)/tags/modify/[id]/page.tsx +50 -0
  246. package/templates/starter/src/app/(base)/tags/page.tsx +58 -0
  247. package/templates/starter/src/app/(base)/tags/tag-form-helpers.ts +13 -0
  248. package/templates/starter/src/app/(base)/tags/tag-form.test.tsx +83 -0
  249. package/templates/starter/src/app/(base)/tags/tag-form.tsx +143 -0
  250. package/templates/starter/src/app/(base)/tags/tag-table-columns.tsx +63 -0
  251. package/templates/starter/src/app/(base)/tags/tag-table.tsx +29 -0
  252. package/templates/starter/src/app/(base)/template-step-groups/create/page.tsx +28 -0
  253. package/templates/starter/src/app/(base)/template-step-groups/modify/[id]/page.tsx +43 -0
  254. package/templates/starter/src/app/(base)/template-step-groups/page.tsx +60 -0
  255. package/templates/starter/src/app/(base)/template-step-groups/template-step-group-form.test.tsx +82 -0
  256. package/templates/starter/src/app/(base)/template-step-groups/template-step-group-form.tsx +181 -0
  257. package/templates/starter/src/app/(base)/template-step-groups/template-step-group-helpers.ts +54 -0
  258. package/templates/starter/src/app/(base)/template-step-groups/template-step-group-table-columns.tsx +89 -0
  259. package/templates/starter/src/app/(base)/template-step-groups/template-step-group-table.tsx +34 -0
  260. package/templates/starter/src/app/(base)/template-steps/create/page.tsx +40 -0
  261. package/templates/starter/src/app/(base)/template-steps/modify/[id]/page.tsx +54 -0
  262. package/templates/starter/src/app/(base)/template-steps/page.tsx +59 -0
  263. package/templates/starter/src/app/(base)/template-steps/paramChip.tsx +233 -0
  264. package/templates/starter/src/app/(base)/template-steps/template-step-form.test.tsx +132 -0
  265. package/templates/starter/src/app/(base)/template-steps/template-step-form.tsx +342 -0
  266. package/templates/starter/src/app/(base)/template-steps/template-step-helpers.test.ts +99 -0
  267. package/templates/starter/src/app/(base)/template-steps/template-step-helpers.ts +176 -0
  268. package/templates/starter/src/app/(base)/template-steps/template-step-table-columns.tsx +153 -0
  269. package/templates/starter/src/app/(base)/template-steps/template-step-table.tsx +26 -0
  270. package/templates/starter/src/app/(base)/template-test-cases/create/page.tsx +56 -0
  271. package/templates/starter/src/app/(base)/template-test-cases/modify/[id]/page.tsx +89 -0
  272. package/templates/starter/src/app/(base)/template-test-cases/page.tsx +58 -0
  273. package/templates/starter/src/app/(base)/template-test-cases/template-test-case-flow.test.tsx +109 -0
  274. package/templates/starter/src/app/(base)/template-test-cases/template-test-case-flow.tsx +45 -0
  275. package/templates/starter/src/app/(base)/template-test-cases/template-test-case-form.test.tsx +140 -0
  276. package/templates/starter/src/app/(base)/template-test-cases/template-test-case-form.tsx +154 -0
  277. package/templates/starter/src/app/(base)/template-test-cases/template-test-case-table-columns.tsx +76 -0
  278. package/templates/starter/src/app/(base)/template-test-cases/template-test-case-table.tsx +32 -0
  279. package/templates/starter/src/app/(base)/test-cases/create/page.tsx +90 -0
  280. package/templates/starter/src/app/(base)/test-cases/create-from-template/create-from-template-helpers.test.ts +94 -0
  281. package/templates/starter/src/app/(base)/test-cases/create-from-template/create-from-template-helpers.ts +171 -0
  282. package/templates/starter/src/app/(base)/test-cases/create-from-template/generate/[id]/page.tsx +105 -0
  283. package/templates/starter/src/app/(base)/test-cases/create-from-template/page.tsx +40 -0
  284. package/templates/starter/src/app/(base)/test-cases/create-from-template/template-selection-form.test.tsx +87 -0
  285. package/templates/starter/src/app/(base)/test-cases/create-from-template/template-selection-form.tsx +83 -0
  286. package/templates/starter/src/app/(base)/test-cases/modify/[id]/page.tsx +106 -0
  287. package/templates/starter/src/app/(base)/test-cases/page.tsx +61 -0
  288. package/templates/starter/src/app/(base)/test-cases/test-case-flow.test.tsx +108 -0
  289. package/templates/starter/src/app/(base)/test-cases/test-case-flow.tsx +43 -0
  290. package/templates/starter/src/app/(base)/test-cases/test-case-form.test.tsx +202 -0
  291. package/templates/starter/src/app/(base)/test-cases/test-case-form.tsx +263 -0
  292. package/templates/starter/src/app/(base)/test-cases/test-case-route-helpers.test.ts +95 -0
  293. package/templates/starter/src/app/(base)/test-cases/test-case-route-helpers.ts +147 -0
  294. package/templates/starter/src/app/(base)/test-cases/test-case-table-columns.tsx +25 -0
  295. package/templates/starter/src/app/(base)/test-cases/test-case-table.tsx +37 -0
  296. package/templates/starter/src/app/(base)/test-runs/[id]/page.tsx +60 -0
  297. package/templates/starter/src/app/(base)/test-runs/create/page.tsx +48 -0
  298. package/templates/starter/src/app/(base)/test-runs/page.tsx +60 -0
  299. package/templates/starter/src/app/(base)/test-runs/test-run-form-helpers.test.ts +50 -0
  300. package/templates/starter/src/app/(base)/test-runs/test-run-form-helpers.ts +168 -0
  301. package/templates/starter/src/app/(base)/test-runs/test-run-form.test.tsx +138 -0
  302. package/templates/starter/src/app/(base)/test-runs/test-run-form.tsx +356 -0
  303. package/templates/starter/src/app/(base)/test-runs/test-run-table-columns.tsx +229 -0
  304. package/templates/starter/src/app/(base)/test-runs/test-run-table.tsx +127 -0
  305. package/templates/starter/src/app/(base)/test-runs/use-test-run-name-validation.ts +74 -0
  306. package/templates/starter/src/app/(base)/test-suites/create/page.tsx +51 -0
  307. package/templates/starter/src/app/(base)/test-suites/modify/[id]/page.tsx +59 -0
  308. package/templates/starter/src/app/(base)/test-suites/page.tsx +76 -0
  309. package/templates/starter/src/app/(base)/test-suites/test-suite-form.test.tsx +127 -0
  310. package/templates/starter/src/app/(base)/test-suites/test-suite-form.tsx +249 -0
  311. package/templates/starter/src/app/(base)/test-suites/test-suite-helpers.test.ts +67 -0
  312. package/templates/starter/src/app/(base)/test-suites/test-suite-helpers.ts +215 -0
  313. package/templates/starter/src/app/(base)/test-suites/test-suite-table-columns.tsx +98 -0
  314. package/templates/starter/src/app/(base)/test-suites/test-suite-table.tsx +32 -0
  315. package/templates/starter/src/app/(dashboard-components)/app-drawer.tsx +187 -0
  316. package/templates/starter/src/app/(dashboard-components)/data-card-grid.tsx +13 -0
  317. package/templates/starter/src/app/(dashboard-components)/data-card.tsx +27 -0
  318. package/templates/starter/src/app/(dashboard-components)/execution-health-panel.tsx +57 -0
  319. package/templates/starter/src/app/(dashboard-components)/ongoing-test-runs-card.tsx +87 -0
  320. package/templates/starter/src/app/(dashboard-components)/quick-actions-drawer.tsx +45 -0
  321. package/templates/starter/src/app/api/reports/steps/[stepId]/screenshot/route.test.ts +83 -0
  322. package/templates/starter/src/app/api/reports/steps/[stepId]/screenshot/route.ts +52 -0
  323. package/templates/starter/src/app/api/test-runs/[runId]/download/route.test.ts +169 -0
  324. package/templates/starter/src/app/api/test-runs/[runId]/download/route.ts +196 -0
  325. package/templates/starter/src/app/api/test-runs/[runId]/logs/route.ts +424 -0
  326. package/templates/starter/src/app/api/test-runs/[runId]/trace/[testCaseId]/route.test.ts +135 -0
  327. package/templates/starter/src/app/api/test-runs/[runId]/trace/[testCaseId]/route.ts +146 -0
  328. package/templates/starter/src/app/favicon.ico +0 -0
  329. package/templates/starter/src/app/globals.css +90 -0
  330. package/templates/starter/src/app/layout.tsx +207 -0
  331. package/templates/starter/src/app/page.tsx +65 -0
  332. package/templates/starter/src/assets/icons/empty-tube.tsx +23 -0
  333. package/templates/starter/src/assets/icons/tube-plus.tsx +29 -0
  334. package/templates/starter/src/components/base-node.tsx +21 -0
  335. package/templates/starter/src/components/chart/pie-chart.tsx +73 -0
  336. package/templates/starter/src/components/data-extraction/locator-inspector-helpers.test.ts +32 -0
  337. package/templates/starter/src/components/data-extraction/locator-inspector-helpers.ts +183 -0
  338. package/templates/starter/src/components/data-extraction/locator-inspector.tsx +349 -0
  339. package/templates/starter/src/components/data-state/empty-state.tsx +40 -0
  340. package/templates/starter/src/components/data-visualization/info-card.tsx +70 -0
  341. package/templates/starter/src/components/data-visualization/info-grid.tsx +22 -0
  342. package/templates/starter/src/components/diagram/button-edge.tsx +54 -0
  343. package/templates/starter/src/components/diagram/dynamic-parameters-helpers.test.ts +83 -0
  344. package/templates/starter/src/components/diagram/dynamic-parameters-helpers.ts +158 -0
  345. package/templates/starter/src/components/diagram/dynamic-parameters.tsx +350 -0
  346. package/templates/starter/src/components/diagram/edit-header-option.tsx +36 -0
  347. package/templates/starter/src/components/diagram/flow-diagram-helpers.test.ts +117 -0
  348. package/templates/starter/src/components/diagram/flow-diagram-helpers.ts +251 -0
  349. package/templates/starter/src/components/diagram/flow-diagram.tsx +247 -0
  350. package/templates/starter/src/components/diagram/flow-host-helpers.test.ts +74 -0
  351. package/templates/starter/src/components/diagram/flow-host-helpers.ts +51 -0
  352. package/templates/starter/src/components/diagram/node-form-helpers.test.ts +92 -0
  353. package/templates/starter/src/components/diagram/node-form-helpers.ts +100 -0
  354. package/templates/starter/src/components/diagram/node-form.test.tsx +168 -0
  355. package/templates/starter/src/components/diagram/node-form.tsx +199 -0
  356. package/templates/starter/src/components/diagram/options-header-node.tsx +57 -0
  357. package/templates/starter/src/components/diagram/template-step-combobox.tsx +155 -0
  358. package/templates/starter/src/components/diagram/use-flow-node-order.ts +49 -0
  359. package/templates/starter/src/components/form/error-message.tsx +7 -0
  360. package/templates/starter/src/components/kokonutui/smooth-tab.tsx +453 -0
  361. package/templates/starter/src/components/loading-skeleton/data-table/data-table-skeleton.tsx +30 -0
  362. package/templates/starter/src/components/loading-skeleton/form/button-skeleton.tsx +8 -0
  363. package/templates/starter/src/components/loading-skeleton/form/icon-button-skeleton.tsx +8 -0
  364. package/templates/starter/src/components/loading-skeleton/form/text-input-skeleton.tsx +8 -0
  365. package/templates/starter/src/components/loading-skeleton/visualization/table-skeleton.tsx +14 -0
  366. package/templates/starter/src/components/logo.tsx +15 -0
  367. package/templates/starter/src/components/navigation/command-badge.tsx +34 -0
  368. package/templates/starter/src/components/navigation/command-chain-input.tsx +51 -0
  369. package/templates/starter/src/components/navigation/entity-search-command.tsx +118 -0
  370. package/templates/starter/src/components/navigation/nav-card.tsx +31 -0
  371. package/templates/starter/src/components/navigation/nav-command-helpers.ts +122 -0
  372. package/templates/starter/src/components/navigation/nav-command-search.tsx +125 -0
  373. package/templates/starter/src/components/navigation/nav-command.test.tsx +106 -0
  374. package/templates/starter/src/components/navigation/nav-command.tsx +98 -0
  375. package/templates/starter/src/components/navigation/nav-link.tsx +60 -0
  376. package/templates/starter/src/components/navigation/nav-menu-card-deck.tsx +112 -0
  377. package/templates/starter/src/components/navigation/use-nav-command.ts +58 -0
  378. package/templates/starter/src/components/node-header.tsx +159 -0
  379. package/templates/starter/src/components/reports/test-case-logs-modal.tsx +310 -0
  380. package/templates/starter/src/components/table/table-actions.tsx +174 -0
  381. package/templates/starter/src/components/test-case/test-case-columns.tsx +76 -0
  382. package/templates/starter/src/components/test-case/test-case-form-helpers.test.ts +100 -0
  383. package/templates/starter/src/components/test-case/test-case-form-helpers.ts +140 -0
  384. package/templates/starter/src/components/test-case/test-case-picker-helpers.test.ts +40 -0
  385. package/templates/starter/src/components/test-case/test-case-picker-helpers.ts +41 -0
  386. package/templates/starter/src/components/test-case/test-case-picker.test.tsx +44 -0
  387. package/templates/starter/src/components/test-case/test-case-picker.tsx +225 -0
  388. package/templates/starter/src/components/test-case/test-scenario-preview.tsx +34 -0
  389. package/templates/starter/src/components/test-run/download-logs-button.tsx +92 -0
  390. package/templates/starter/src/components/test-run/log-viewer-helpers.test.ts +37 -0
  391. package/templates/starter/src/components/test-run/log-viewer-helpers.ts +80 -0
  392. package/templates/starter/src/components/test-run/log-viewer.test.tsx +118 -0
  393. package/templates/starter/src/components/test-run/log-viewer.tsx +133 -0
  394. package/templates/starter/src/components/test-run/test-run-details-helpers.test.ts +31 -0
  395. package/templates/starter/src/components/test-run/test-run-details-helpers.ts +208 -0
  396. package/templates/starter/src/components/test-run/test-run-details.test.tsx +174 -0
  397. package/templates/starter/src/components/test-run/test-run-details.tsx +322 -0
  398. package/templates/starter/src/components/test-run/test-run-header-helpers.test.ts +31 -0
  399. package/templates/starter/src/components/test-run/test-run-header-helpers.ts +23 -0
  400. package/templates/starter/src/components/test-run/test-run-header.test.tsx +103 -0
  401. package/templates/starter/src/components/test-run/test-run-header.tsx +27 -0
  402. package/templates/starter/src/components/test-run/use-log-viewer.ts +213 -0
  403. package/templates/starter/src/components/test-run/use-test-run-details.ts +184 -0
  404. package/templates/starter/src/components/test-run/use-test-run-header.ts +89 -0
  405. package/templates/starter/src/components/test-run/view-report-button.tsx +102 -0
  406. package/templates/starter/src/components/test-suite/test-suite-picker-helpers.test.ts +68 -0
  407. package/templates/starter/src/components/test-suite/test-suite-picker-helpers.ts +76 -0
  408. package/templates/starter/src/components/test-suite/test-suite-picker.test.tsx +65 -0
  409. package/templates/starter/src/components/test-suite/test-suite-picker.tsx +376 -0
  410. package/templates/starter/src/components/theme/theme-provider.tsx +16 -0
  411. package/templates/starter/src/components/typography/page-header-subtitle.tsx +7 -0
  412. package/templates/starter/src/components/typography/page-header.tsx +7 -0
  413. package/templates/starter/src/components/ui/alert-dialog.tsx +106 -0
  414. package/templates/starter/src/components/ui/alert.tsx +43 -0
  415. package/templates/starter/src/components/ui/avatar.tsx +40 -0
  416. package/templates/starter/src/components/ui/badge.tsx +29 -0
  417. package/templates/starter/src/components/ui/button.tsx +47 -0
  418. package/templates/starter/src/components/ui/calendar.tsx +158 -0
  419. package/templates/starter/src/components/ui/card.tsx +43 -0
  420. package/templates/starter/src/components/ui/chart.tsx +369 -0
  421. package/templates/starter/src/components/ui/checkbox.tsx +28 -0
  422. package/templates/starter/src/components/ui/command.tsx +135 -0
  423. package/templates/starter/src/components/ui/data-table-column-header.tsx +61 -0
  424. package/templates/starter/src/components/ui/data-table-pagination.tsx +87 -0
  425. package/templates/starter/src/components/ui/data-table-view-options.tsx +50 -0
  426. package/templates/starter/src/components/ui/data-table.test.tsx +122 -0
  427. package/templates/starter/src/components/ui/data-table.tsx +298 -0
  428. package/templates/starter/src/components/ui/dialog.tsx +97 -0
  429. package/templates/starter/src/components/ui/dropdown-menu.tsx +182 -0
  430. package/templates/starter/src/components/ui/empty.tsx +104 -0
  431. package/templates/starter/src/components/ui/input.tsx +22 -0
  432. package/templates/starter/src/components/ui/kbd.tsx +28 -0
  433. package/templates/starter/src/components/ui/label.tsx +19 -0
  434. package/templates/starter/src/components/ui/loading.tsx +12 -0
  435. package/templates/starter/src/components/ui/multi-select-with-preview.tsx +116 -0
  436. package/templates/starter/src/components/ui/multi-select.test.tsx +45 -0
  437. package/templates/starter/src/components/ui/multi-select.tsx +158 -0
  438. package/templates/starter/src/components/ui/navigation-menu.tsx +120 -0
  439. package/templates/starter/src/components/ui/popover.tsx +33 -0
  440. package/templates/starter/src/components/ui/progress.tsx +25 -0
  441. package/templates/starter/src/components/ui/radio-group.tsx +44 -0
  442. package/templates/starter/src/components/ui/scroll-area.tsx +40 -0
  443. package/templates/starter/src/components/ui/select.tsx +151 -0
  444. package/templates/starter/src/components/ui/separator.tsx +22 -0
  445. package/templates/starter/src/components/ui/skeleton.tsx +7 -0
  446. package/templates/starter/src/components/ui/table.tsx +76 -0
  447. package/templates/starter/src/components/ui/tabs.tsx +55 -0
  448. package/templates/starter/src/components/ui/textarea.tsx +21 -0
  449. package/templates/starter/src/components/ui/toast.tsx +113 -0
  450. package/templates/starter/src/components/ui/toaster.tsx +26 -0
  451. package/templates/starter/src/components/ui/tooltip.tsx +32 -0
  452. package/templates/starter/src/components/user-prompt/delete-prompt.test.tsx +60 -0
  453. package/templates/starter/src/components/user-prompt/delete-prompt.tsx +118 -0
  454. package/templates/starter/src/config/db-config.ts +71 -0
  455. package/templates/starter/src/constants/form-opts/diagram/node-form.ts +30 -0
  456. package/templates/starter/src/constants/form-opts/environment-form-opts.ts +24 -0
  457. package/templates/starter/src/constants/form-opts/locator-group-form-opts.ts +28 -0
  458. package/templates/starter/src/constants/form-opts/module-form-opts.ts +21 -0
  459. package/templates/starter/src/constants/form-opts/tag-form-opts.ts +42 -0
  460. package/templates/starter/src/constants/form-opts/template-selection-form-opts.ts +16 -0
  461. package/templates/starter/src/constants/form-opts/template-step-group-form-opts.ts +24 -0
  462. package/templates/starter/src/constants/form-opts/template-test-case-form-opts.ts +39 -0
  463. package/templates/starter/src/constants/form-opts/template-test-step-form-opts.ts +36 -0
  464. package/templates/starter/src/constants/form-opts/test-case-form-opts.ts +43 -0
  465. package/templates/starter/src/constants/form-opts/test-run-form-opts.ts +33 -0
  466. package/templates/starter/src/constants/form-opts/test-suite-form-opts.ts +24 -0
  467. package/templates/starter/src/hooks/use-toast.ts +187 -0
  468. package/templates/starter/src/lib/automation/automation-path-roots.ts +95 -0
  469. package/templates/starter/src/lib/automation/automation-workspace.ts +147 -0
  470. package/templates/starter/src/lib/automation/paths.ts +6 -0
  471. package/templates/starter/src/lib/automation/projection-service.ts +226 -0
  472. package/templates/starter/src/lib/bidirectional-sync.ts +432 -0
  473. package/templates/starter/src/lib/database-sync.ts +526 -0
  474. package/templates/starter/src/lib/environment-file-utils.ts +181 -0
  475. package/templates/starter/src/lib/executor/local-executor-adapter.ts +97 -0
  476. package/templates/starter/src/lib/executor/types.ts +24 -0
  477. package/templates/starter/src/lib/feature-file-generator.ts +261 -0
  478. package/templates/starter/src/lib/gherkin-parser.test.ts +44 -0
  479. package/templates/starter/src/lib/gherkin-parser.ts +251 -0
  480. package/templates/starter/src/lib/locator-group-file-utils.ts +304 -0
  481. package/templates/starter/src/lib/locator-picker/session-manager.ts +431 -0
  482. package/templates/starter/src/lib/locator-picker/suggestions.ts +126 -0
  483. package/templates/starter/src/lib/metrics/metric-calculator.ts +614 -0
  484. package/templates/starter/src/lib/module-hierarchy-builder.ts +205 -0
  485. package/templates/starter/src/lib/path-helpers/module-path.ts +71 -0
  486. package/templates/starter/src/lib/process/task-spawner.ts +273 -0
  487. package/templates/starter/src/lib/sync/projected-feature-utils.ts +113 -0
  488. package/templates/starter/src/lib/sync/sync-executor.test.ts +76 -0
  489. package/templates/starter/src/lib/sync/sync-executor.ts +130 -0
  490. package/templates/starter/src/lib/sync/sync-pending-counts.test.ts +264 -0
  491. package/templates/starter/src/lib/sync/sync-pending-counts.ts +1356 -0
  492. package/templates/starter/src/lib/sync/sync-registry.ts +149 -0
  493. package/templates/starter/src/lib/tag-utils.ts +28 -0
  494. package/templates/starter/src/lib/template-sync-utils.d.ts +7 -0
  495. package/templates/starter/src/lib/template-sync-utils.d.ts.map +1 -0
  496. package/templates/starter/src/lib/template-sync-utils.js +50 -0
  497. package/templates/starter/src/lib/template-sync-utils.js.map +1 -0
  498. package/templates/starter/src/lib/template-sync-utils.ts +65 -0
  499. package/templates/starter/src/lib/test-case-utils.ts +6 -0
  500. package/templates/starter/src/lib/test-run/log-formatter.ts +83 -0
  501. package/templates/starter/src/lib/test-run/matching.ts +117 -0
  502. package/templates/starter/src/lib/test-run/process-manager.ts +115 -0
  503. package/templates/starter/src/lib/test-run/report-parser.ts +352 -0
  504. package/templates/starter/src/lib/test-run/test-run-executor.ts +13 -0
  505. package/templates/starter/src/lib/test-run/winston-logger.ts +65 -0
  506. package/templates/starter/src/lib/test-suite-identifier-service.ts +76 -0
  507. package/templates/starter/src/lib/test-suite-utils.ts +6 -0
  508. package/templates/starter/src/lib/transformers/gherkin-converter.ts +42 -0
  509. package/templates/starter/src/lib/transformers/key-to-icon-transformer.tsx +95 -0
  510. package/templates/starter/src/lib/transformers/template-test-case-converter.ts +160 -0
  511. package/templates/starter/src/lib/utils/node-param-validation.ts +81 -0
  512. package/templates/starter/src/lib/utils/template-step-file-generator.ts +128 -0
  513. package/templates/starter/src/lib/utils/template-step-file-manager-intelligent.ts +700 -0
  514. package/templates/starter/src/lib/utils/template-step-file-manager.ts +166 -0
  515. package/templates/starter/src/lib/utils.ts +31 -0
  516. package/templates/starter/src/services/dashboard/dashboard-service.test.ts +106 -0
  517. package/templates/starter/src/services/dashboard/dashboard-service.ts +173 -0
  518. package/templates/starter/src/services/environment/environment-service.test.ts +137 -0
  519. package/templates/starter/src/services/environment/environment-service.ts +96 -0
  520. package/templates/starter/src/services/locator/locator-path-utils.test.ts +14 -0
  521. package/templates/starter/src/services/locator/locator-path-utils.ts +14 -0
  522. package/templates/starter/src/services/locator/locator-service.test.ts +63 -0
  523. package/templates/starter/src/services/locator/locator-service.ts +479 -0
  524. package/templates/starter/src/services/locator/locator-sync-utils.test.ts +19 -0
  525. package/templates/starter/src/services/locator/locator-sync-utils.ts +21 -0
  526. package/templates/starter/src/services/locator-group/locator-group-service.test.ts +123 -0
  527. package/templates/starter/src/services/locator-group/locator-group-service.ts +180 -0
  528. package/templates/starter/src/services/module/module-service.test.ts +89 -0
  529. package/templates/starter/src/services/module/module-service.ts +66 -0
  530. package/templates/starter/src/services/report/report-service.test.ts +244 -0
  531. package/templates/starter/src/services/report/report-service.ts +438 -0
  532. package/templates/starter/src/services/shared/constants.ts +2 -0
  533. package/templates/starter/src/services/shared/errors.test.ts +38 -0
  534. package/templates/starter/src/services/shared/errors.ts +44 -0
  535. package/templates/starter/src/services/shared/index.ts +7 -0
  536. package/templates/starter/src/services/tag/tag-service.test.ts +22 -0
  537. package/templates/starter/src/services/tag/tag-service.ts +41 -0
  538. package/templates/starter/src/services/template-step/template-step-service.test.ts +22 -0
  539. package/templates/starter/src/services/template-step/template-step-service.ts +171 -0
  540. package/templates/starter/src/services/template-step-group/template-step-group-service.test.ts +22 -0
  541. package/templates/starter/src/services/template-step-group/template-step-group-service.ts +81 -0
  542. package/templates/starter/src/services/template-test-case/template-test-case-service.test.ts +22 -0
  543. package/templates/starter/src/services/template-test-case/template-test-case-service.ts +128 -0
  544. package/templates/starter/src/services/test-case/test-case-service.test.ts +175 -0
  545. package/templates/starter/src/services/test-case/test-case-service.ts +298 -0
  546. package/templates/starter/src/services/test-run/test-run-helpers.ts +61 -0
  547. package/templates/starter/src/services/test-run/test-run-service.test.ts +647 -0
  548. package/templates/starter/src/services/test-run/test-run-service.ts +917 -0
  549. package/templates/starter/src/services/test-suite/test-suite-service.test.ts +127 -0
  550. package/templates/starter/src/services/test-suite/test-suite-service.ts +197 -0
  551. package/templates/starter/src/types/diagram/diagram.ts +34 -0
  552. package/templates/starter/src/types/diagram/template-step.ts +11 -0
  553. package/templates/starter/src/types/executor/browser.type.ts +1 -0
  554. package/templates/starter/src/types/form/actionHandler.ts +19 -0
  555. package/templates/starter/src/types/locator/locator.type.ts +11 -0
  556. package/templates/starter/src/types/locator-picker.ts +65 -0
  557. package/templates/starter/src/types/step/step.type.ts +1 -0
  558. package/templates/starter/src/types/table/data-table.ts +6 -0
  559. package/templates/starter/src/types/test-case-picker.ts +6 -0
  560. package/templates/starter/src/types/test-suite-picker.ts +18 -0
  561. package/templates/starter/tailwind.config.ts +62 -0
  562. package/templates/starter/tsconfig.json +31 -0
  563. package/templates/default/.appraise-template-meta.json +0 -5
  564. package/templates/default/package-lock.json +0 -14957
  565. package/templates/default/package.json +0 -139
  566. package/templates/default/prisma/dev.db +0 -0
  567. package/templates/default/public/favicon.svg +0 -11
  568. package/templates/default/public/logo.svg +0 -18
  569. package/templates/default/scripts/sync-appraise-base-template.ts +0 -244
  570. package/templates/default/scripts/sync-template-step-groups.ts +0 -248
  571. package/templates/default/src/app/globals.css +0 -147
  572. package/templates/default/src/app/layout.tsx +0 -212
  573. package/templates/default/src/components/theme/mode-toggle.tsx +0 -54
  574. package/templates/default/src/components/theme/theme-provider.tsx +0 -8
  575. package/templates/default/src/lib/template-sync-utils.js +0 -47
  576. package/templates/default/src/lib/template-sync-utils.ts +0 -63
  577. package/templates/default/tsconfig.json +0 -31
  578. /package/templates/{default → blank}/.env.example +0 -0
  579. /package/templates/{default → blank}/.vscode/settings.json +0 -0
  580. /package/templates/{default → blank}/README.md +0 -0
  581. /package/templates/{default → blank}/automation/config/environments/environments.json +0 -0
  582. /package/templates/{default → blank}/automation/mapping/locator-map.json +0 -0
  583. /package/templates/{default → blank}/components.json +0 -0
  584. /package/templates/{default → blank}/cucumber.mjs +0 -0
  585. /package/templates/{default → blank}/eslint.config.mjs +0 -0
  586. /package/templates/{default → blank}/gitignore +0 -0
  587. /package/templates/{default → blank}/next-env.d.ts +0 -0
  588. /package/templates/{default → blank}/next.config.ts +0 -0
  589. /package/templates/{default → blank}/packages/cucumber-runtime/package.json +0 -0
  590. /package/templates/{default → blank}/packages/cucumber-runtime/src/cache.util.ts +0 -0
  591. /package/templates/{default → blank}/packages/cucumber-runtime/src/cli.ts +0 -0
  592. /package/templates/{default → blank}/packages/cucumber-runtime/src/environment.util.ts +0 -0
  593. /package/templates/{default → blank}/packages/cucumber-runtime/src/executor.ts +0 -0
  594. /package/templates/{default → blank}/packages/cucumber-runtime/src/hooks.ts +0 -0
  595. /package/templates/{default → blank}/packages/cucumber-runtime/src/index.ts +0 -0
  596. /package/templates/{default → blank}/packages/cucumber-runtime/src/locator.util.ts +0 -0
  597. /package/templates/{default → blank}/packages/cucumber-runtime/src/parameter-types.ts +0 -0
  598. /package/templates/{default → blank}/packages/cucumber-runtime/src/paths.ts +0 -0
  599. /package/templates/{default → blank}/packages/cucumber-runtime/src/random-data.util.ts +0 -0
  600. /package/templates/{default → blank}/packages/cucumber-runtime/src/types.ts +0 -0
  601. /package/templates/{default → blank}/packages/cucumber-runtime/src/world.ts +0 -0
  602. /package/templates/{default → blank}/packages/cucumber-runtime/tsconfig.json +0 -0
  603. /package/templates/{default → blank}/packages/locator-picker-companion/dist/cli.d.ts +0 -0
  604. /package/templates/{default → blank}/packages/locator-picker-companion/dist/cli.js +0 -0
  605. /package/templates/{default → blank}/packages/locator-picker-companion/dist/index.d.ts +0 -0
  606. /package/templates/{default → blank}/packages/locator-picker-companion/dist/index.js +0 -0
  607. /package/templates/{default → blank}/packages/locator-picker-companion/dist/injected-picker-script.d.ts +0 -0
  608. /package/templates/{default → blank}/packages/locator-picker-companion/dist/injected-picker-script.js +0 -0
  609. /package/templates/{default → blank}/packages/locator-picker-companion/dist/launcher.d.ts +0 -0
  610. /package/templates/{default → blank}/packages/locator-picker-companion/dist/launcher.js +0 -0
  611. /package/templates/{default → blank}/packages/locator-picker-companion/dist/selector-generator.d.ts +0 -0
  612. /package/templates/{default → blank}/packages/locator-picker-companion/dist/selector-generator.js +0 -0
  613. /package/templates/{default → blank}/packages/locator-picker-companion/dist/session-file.d.ts +0 -0
  614. /package/templates/{default → blank}/packages/locator-picker-companion/dist/session-file.js +0 -0
  615. /package/templates/{default → blank}/packages/locator-picker-companion/dist/types.d.ts +0 -0
  616. /package/templates/{default → blank}/packages/locator-picker-companion/dist/types.js +0 -0
  617. /package/templates/{default → blank}/packages/locator-picker-companion/package.json +0 -0
  618. /package/templates/{default → blank}/packages/locator-picker-companion/src/cli.ts +0 -0
  619. /package/templates/{default → blank}/packages/locator-picker-companion/src/index.ts +0 -0
  620. /package/templates/{default → blank}/packages/locator-picker-companion/src/injected-picker-script.ts +0 -0
  621. /package/templates/{default → blank}/packages/locator-picker-companion/src/launcher.ts +0 -0
  622. /package/templates/{default → blank}/packages/locator-picker-companion/src/selector-generator.ts +0 -0
  623. /package/templates/{default → blank}/packages/locator-picker-companion/src/session-file.ts +0 -0
  624. /package/templates/{default → blank}/packages/locator-picker-companion/src/types.ts +0 -0
  625. /package/templates/{default → blank}/packages/locator-picker-companion/tsconfig.json +0 -0
  626. /package/templates/{default → blank}/postcss.config.mjs +0 -0
  627. /package/templates/{default → blank}/prisma/migrations/20251026202316_migrate_back_to_sqlite/migration.sql +0 -0
  628. /package/templates/{default → blank}/prisma/migrations/20251104113456_add_type_for_template_step_groups/migration.sql +0 -0
  629. /package/templates/{default → blank}/prisma/migrations/20251104170946_add_tags_to_test_suite_and_test_case/migration.sql +0 -0
  630. /package/templates/{default → blank}/prisma/migrations/20251112190024_add_cascade_delete_to_test_run_test_case/migration.sql +0 -0
  631. /package/templates/{default → blank}/prisma/migrations/20251113181100_add_test_run_log/migration.sql +0 -0
  632. /package/templates/{default → blank}/prisma/migrations/20251119191838_add_tag_type/migration.sql +0 -0
  633. /package/templates/{default → blank}/prisma/migrations/20251121164059_add_conflict_resolution/migration.sql +0 -0
  634. /package/templates/{default → blank}/prisma/migrations/20251130190737_add_trace_path_to_test_run_test_case/migration.sql +0 -0
  635. /package/templates/{default → blank}/prisma/migrations/20251213074835_add_log_path_to_test_run/migration.sql +0 -0
  636. /package/templates/{default → blank}/prisma/migrations/20251213183952_add_name_property_for_the_test_run_entities/migration.sql +0 -0
  637. /package/templates/{default → blank}/prisma/migrations/20251223183400_add_report_model_to_db_schema/migration.sql +0 -0
  638. /package/templates/{default → blank}/prisma/migrations/20251223183637_add_report_test_case_entity_for_storing_test_results_for_individual_test_cases/migration.sql +0 -0
  639. /package/templates/{default → blank}/prisma/migrations/20251224083549_add_comprehensive_report_storage/migration.sql +0 -0
  640. /package/templates/{default → blank}/prisma/migrations/20251229194422_migrate_duration_to_string/migration.sql +0 -0
  641. /package/templates/{default → blank}/prisma/migrations/20251230124637_add_unique_constraint_to_test_run_name/migration.sql +0 -0
  642. /package/templates/{default → blank}/prisma/migrations/20260115094436_add_dashboard_metrics/migration.sql +0 -0
  643. /package/templates/{default → blank}/prisma/migrations/20260127172022_add_cascade_delete_to_step_parameters/migration.sql +0 -0
  644. /package/templates/{default → blank}/prisma/migrations/20260313093000_add_report_step_screenshot_path/migration.sql +0 -0
  645. /package/templates/{default → blank}/prisma/migrations/20260318120000_add_test_suite_context_to_test_run_test_case/migration.sql +0 -0
  646. /package/templates/{default → blank}/prisma/migrations/20260318173512_add_support_of_test_suite_level_runs/migration.sql +0 -0
  647. /package/templates/{default → blank}/prisma/migrations/migration_lock.toml +0 -0
  648. /package/templates/{default → blank}/prisma/schema.prisma +0 -0
  649. /package/templates/{default → blank}/public/file.svg +0 -0
  650. /package/templates/{default → blank}/public/globe.svg +0 -0
  651. /package/templates/{default → blank}/public/next.svg +0 -0
  652. /package/templates/{default → blank}/public/vercel.svg +0 -0
  653. /package/templates/{default → blank}/public/window.svg +0 -0
  654. /package/templates/{default → blank}/scripts/build-step-registry.ts +0 -0
  655. /package/templates/{default → blank}/scripts/install-playwright.ts +0 -0
  656. /package/templates/{default → blank}/scripts/install-template-step.ts +0 -0
  657. /package/templates/{default → blank}/scripts/lib/filename-utils.test.ts +0 -0
  658. /package/templates/{default → blank}/scripts/lib/filename-utils.ts +0 -0
  659. /package/templates/{default → blank}/scripts/lib/jsdoc-parser.test.ts +0 -0
  660. /package/templates/{default → blank}/scripts/lib/jsdoc-parser.ts +0 -0
  661. /package/templates/{default → blank}/scripts/lib/step-file-parser.test.ts +0 -0
  662. /package/templates/{default → blank}/scripts/lib/step-file-parser.ts +0 -0
  663. /package/templates/{default → blank}/scripts/lib/step-matcher.test.ts +0 -0
  664. /package/templates/{default → blank}/scripts/lib/step-matcher.ts +0 -0
  665. /package/templates/{default → blank}/scripts/lib/sync-script-runner.ts +0 -0
  666. /package/templates/{default → blank}/scripts/lib/sync-summary.ts +0 -0
  667. /package/templates/{default → blank}/scripts/lib/tag-parsing.test.ts +0 -0
  668. /package/templates/{default → blank}/scripts/lib/tag-parsing.ts +0 -0
  669. /package/templates/{default → blank}/scripts/lib/template-step-installer.test.ts +0 -0
  670. /package/templates/{default → blank}/scripts/lib/template-step-installer.ts +0 -0
  671. /package/templates/{default → blank}/scripts/lib/template-step-registry.test.ts +0 -0
  672. /package/templates/{default → blank}/scripts/lib/template-step-registry.ts +0 -0
  673. /package/templates/{default → blank}/scripts/protect-seeded-files.ts +0 -0
  674. /package/templates/{default → blank}/scripts/regenerate-features.ts +0 -0
  675. /package/templates/{default → blank}/scripts/run-vitest.ts +0 -0
  676. /package/templates/{default → blank}/scripts/setup-env.ts +0 -0
  677. /package/templates/{default → blank}/scripts/sync-all.ts +0 -0
  678. /package/templates/{default → blank}/scripts/sync-environments.ts +0 -0
  679. /package/templates/{default → blank}/scripts/sync-locator-groups.ts +0 -0
  680. /package/templates/{default → blank}/scripts/sync-locators.ts +0 -0
  681. /package/templates/{default → blank}/scripts/sync-modules.ts +0 -0
  682. /package/templates/{default → blank}/scripts/sync-tags.ts +0 -0
  683. /package/templates/{default → blank}/scripts/sync-template-steps.ts +0 -0
  684. /package/templates/{default → blank}/scripts/sync-test-cases.ts +0 -0
  685. /package/templates/{default → blank}/scripts/sync-test-suites.ts +0 -0
  686. /package/templates/{default → blank}/src/actions/dashboard/dashboard-actions.ts +0 -0
  687. /package/templates/{default → blank}/src/actions/environments/environment-actions.ts +0 -0
  688. /package/templates/{default → blank}/src/actions/locator/locator-actions.ts +0 -0
  689. /package/templates/{default → blank}/src/actions/locator-groups/locator-group-actions.ts +0 -0
  690. /package/templates/{default → blank}/src/actions/locator-picker/locator-picker-actions.test.ts +0 -0
  691. /package/templates/{default → blank}/src/actions/locator-picker/locator-picker-actions.ts +0 -0
  692. /package/templates/{default → blank}/src/actions/modules/module-actions.ts +0 -0
  693. /package/templates/{default → blank}/src/actions/reports/report-actions.ts +0 -0
  694. /package/templates/{default → blank}/src/actions/settings/sync-actions.test.ts +0 -0
  695. /package/templates/{default → blank}/src/actions/settings/sync-actions.ts +0 -0
  696. /package/templates/{default → blank}/src/actions/tags/tag-actions.ts +0 -0
  697. /package/templates/{default → blank}/src/actions/template-step/template-step-actions.ts +0 -0
  698. /package/templates/{default → blank}/src/actions/template-step-group/template-step-group-actions.ts +0 -0
  699. /package/templates/{default → blank}/src/actions/template-test-case/template-test-case-actions.ts +0 -0
  700. /package/templates/{default → blank}/src/actions/test-case/test-case-actions.ts +0 -0
  701. /package/templates/{default → blank}/src/actions/test-run/test-run-actions.ts +0 -0
  702. /package/templates/{default → blank}/src/actions/test-suite/test-suite-actions.ts +0 -0
  703. /package/templates/{default → blank}/src/app/(base)/environments/create/page.tsx +0 -0
  704. /package/templates/{default → blank}/src/app/(base)/environments/environment-form.test.tsx +0 -0
  705. /package/templates/{default → blank}/src/app/(base)/environments/environment-form.tsx +0 -0
  706. /package/templates/{default → blank}/src/app/(base)/environments/environment-helpers.ts +0 -0
  707. /package/templates/{default → blank}/src/app/(base)/environments/environment-table-columns.tsx +0 -0
  708. /package/templates/{default → blank}/src/app/(base)/environments/environment-table.tsx +0 -0
  709. /package/templates/{default → blank}/src/app/(base)/environments/modify/[id]/page.tsx +0 -0
  710. /package/templates/{default → blank}/src/app/(base)/environments/page.tsx +0 -0
  711. /package/templates/{default → blank}/src/app/(base)/layout.tsx +0 -0
  712. /package/templates/{default → blank}/src/app/(base)/locator-groups/create/page.tsx +0 -0
  713. /package/templates/{default → blank}/src/app/(base)/locator-groups/locator-group-form.tsx +0 -0
  714. /package/templates/{default → blank}/src/app/(base)/locator-groups/locator-group-table-columns.tsx +0 -0
  715. /package/templates/{default → blank}/src/app/(base)/locator-groups/locator-group-table.tsx +0 -0
  716. /package/templates/{default → blank}/src/app/(base)/locator-groups/modify/[id]/page.tsx +0 -0
  717. /package/templates/{default → blank}/src/app/(base)/locator-groups/page.tsx +0 -0
  718. /package/templates/{default → blank}/src/app/(base)/locators/create/create-locator-workspace-helpers.test.ts +0 -0
  719. /package/templates/{default → blank}/src/app/(base)/locators/create/create-locator-workspace-helpers.ts +0 -0
  720. /package/templates/{default → blank}/src/app/(base)/locators/create/create-locator-workspace.test.tsx +0 -0
  721. /package/templates/{default → blank}/src/app/(base)/locators/create/create-locator-workspace.tsx +0 -0
  722. /package/templates/{default → blank}/src/app/(base)/locators/create/page.tsx +0 -0
  723. /package/templates/{default → blank}/src/app/(base)/locators/create/use-locator-workspace.ts +0 -0
  724. /package/templates/{default → blank}/src/app/(base)/locators/locator-helpers.test.ts +0 -0
  725. /package/templates/{default → blank}/src/app/(base)/locators/locator-helpers.ts +0 -0
  726. /package/templates/{default → blank}/src/app/(base)/locators/locator-table-columns.tsx +0 -0
  727. /package/templates/{default → blank}/src/app/(base)/locators/locator-table.tsx +0 -0
  728. /package/templates/{default → blank}/src/app/(base)/locators/modify/[id]/page.tsx +0 -0
  729. /package/templates/{default → blank}/src/app/(base)/locators/page.tsx +0 -0
  730. /package/templates/{default → blank}/src/app/(base)/locators/picker/page.tsx +0 -0
  731. /package/templates/{default → blank}/src/app/(base)/locators/sync-locators-button.tsx +0 -0
  732. /package/templates/{default → blank}/src/app/(base)/modules/create/page.tsx +0 -0
  733. /package/templates/{default → blank}/src/app/(base)/modules/modify/[id]/page.tsx +0 -0
  734. /package/templates/{default → blank}/src/app/(base)/modules/module-form.test.tsx +0 -0
  735. /package/templates/{default → blank}/src/app/(base)/modules/module-form.tsx +0 -0
  736. /package/templates/{default → blank}/src/app/(base)/modules/module-helpers.ts +0 -0
  737. /package/templates/{default → blank}/src/app/(base)/modules/module-table-columns.tsx +0 -0
  738. /package/templates/{default → blank}/src/app/(base)/modules/module-table.tsx +0 -0
  739. /package/templates/{default → blank}/src/app/(base)/modules/page.tsx +0 -0
  740. /package/templates/{default → blank}/src/app/(base)/reports/[id]/page.tsx +0 -0
  741. /package/templates/{default → blank}/src/app/(base)/reports/duration-chart.tsx +0 -0
  742. /package/templates/{default → blank}/src/app/(base)/reports/feature-chart.tsx +0 -0
  743. /package/templates/{default → blank}/src/app/(base)/reports/overview-chart.tsx +0 -0
  744. /package/templates/{default → blank}/src/app/(base)/reports/page.tsx +0 -0
  745. /package/templates/{default → blank}/src/app/(base)/reports/report-detail-helpers.test.ts +0 -0
  746. /package/templates/{default → blank}/src/app/(base)/reports/report-detail-helpers.ts +0 -0
  747. /package/templates/{default → blank}/src/app/(base)/reports/report-metric-card.tsx +0 -0
  748. /package/templates/{default → blank}/src/app/(base)/reports/report-table-columns.tsx +0 -0
  749. /package/templates/{default → blank}/src/app/(base)/reports/report-table.tsx +0 -0
  750. /package/templates/{default → blank}/src/app/(base)/reports/report-view-table-columns.tsx +0 -0
  751. /package/templates/{default → blank}/src/app/(base)/reports/report-view-table.tsx +0 -0
  752. /package/templates/{default → blank}/src/app/(base)/reports/test-cases/page.tsx +0 -0
  753. /package/templates/{default → blank}/src/app/(base)/reports/test-cases/test-cases-metric-table-columns.tsx +0 -0
  754. /package/templates/{default → blank}/src/app/(base)/reports/test-cases/test-cases-metric-table.tsx +0 -0
  755. /package/templates/{default → blank}/src/app/(base)/reports/test-suites/page.tsx +0 -0
  756. /package/templates/{default → blank}/src/app/(base)/reports/test-suites/test-suites-metric-table-columns.tsx +0 -0
  757. /package/templates/{default → blank}/src/app/(base)/reports/test-suites/test-suites-metric-table.tsx +0 -0
  758. /package/templates/{default → blank}/src/app/(base)/reports/view-logs-button.tsx +0 -0
  759. /package/templates/{default → blank}/src/app/(base)/settings/page.tsx +0 -0
  760. /package/templates/{default → blank}/src/app/(base)/settings/settings-sync-panel-helpers.test.tsx +0 -0
  761. /package/templates/{default → blank}/src/app/(base)/settings/settings-sync-panel-helpers.tsx +0 -0
  762. /package/templates/{default → blank}/src/app/(base)/settings/settings-sync-panel.test.tsx +0 -0
  763. /package/templates/{default → blank}/src/app/(base)/settings/settings-sync-panel.tsx +0 -0
  764. /package/templates/{default → blank}/src/app/(base)/settings/use-settings-sync.ts +0 -0
  765. /package/templates/{default → blank}/src/app/(base)/tags/create/page.tsx +0 -0
  766. /package/templates/{default → blank}/src/app/(base)/tags/modify/[id]/page.tsx +0 -0
  767. /package/templates/{default → blank}/src/app/(base)/tags/page.tsx +0 -0
  768. /package/templates/{default → blank}/src/app/(base)/tags/tag-form-helpers.ts +0 -0
  769. /package/templates/{default → blank}/src/app/(base)/tags/tag-form.test.tsx +0 -0
  770. /package/templates/{default → blank}/src/app/(base)/tags/tag-form.tsx +0 -0
  771. /package/templates/{default → blank}/src/app/(base)/tags/tag-table-columns.tsx +0 -0
  772. /package/templates/{default → blank}/src/app/(base)/tags/tag-table.tsx +0 -0
  773. /package/templates/{default → blank}/src/app/(base)/template-step-groups/create/page.tsx +0 -0
  774. /package/templates/{default → blank}/src/app/(base)/template-step-groups/modify/[id]/page.tsx +0 -0
  775. /package/templates/{default → blank}/src/app/(base)/template-step-groups/page.tsx +0 -0
  776. /package/templates/{default → blank}/src/app/(base)/template-step-groups/template-step-group-form.test.tsx +0 -0
  777. /package/templates/{default → blank}/src/app/(base)/template-step-groups/template-step-group-form.tsx +0 -0
  778. /package/templates/{default → blank}/src/app/(base)/template-step-groups/template-step-group-helpers.ts +0 -0
  779. /package/templates/{default → blank}/src/app/(base)/template-step-groups/template-step-group-table-columns.tsx +0 -0
  780. /package/templates/{default → blank}/src/app/(base)/template-step-groups/template-step-group-table.tsx +0 -0
  781. /package/templates/{default → blank}/src/app/(base)/template-steps/create/page.tsx +0 -0
  782. /package/templates/{default → blank}/src/app/(base)/template-steps/modify/[id]/page.tsx +0 -0
  783. /package/templates/{default → blank}/src/app/(base)/template-steps/page.tsx +0 -0
  784. /package/templates/{default → blank}/src/app/(base)/template-steps/paramChip.tsx +0 -0
  785. /package/templates/{default → blank}/src/app/(base)/template-steps/template-step-form.test.tsx +0 -0
  786. /package/templates/{default → blank}/src/app/(base)/template-steps/template-step-form.tsx +0 -0
  787. /package/templates/{default → blank}/src/app/(base)/template-steps/template-step-helpers.test.ts +0 -0
  788. /package/templates/{default → blank}/src/app/(base)/template-steps/template-step-helpers.ts +0 -0
  789. /package/templates/{default → blank}/src/app/(base)/template-steps/template-step-table-columns.tsx +0 -0
  790. /package/templates/{default → blank}/src/app/(base)/template-steps/template-step-table.tsx +0 -0
  791. /package/templates/{default → blank}/src/app/(base)/template-test-cases/create/page.tsx +0 -0
  792. /package/templates/{default → blank}/src/app/(base)/template-test-cases/modify/[id]/page.tsx +0 -0
  793. /package/templates/{default → blank}/src/app/(base)/template-test-cases/page.tsx +0 -0
  794. /package/templates/{default → blank}/src/app/(base)/template-test-cases/template-test-case-flow.test.tsx +0 -0
  795. /package/templates/{default → blank}/src/app/(base)/template-test-cases/template-test-case-flow.tsx +0 -0
  796. /package/templates/{default → blank}/src/app/(base)/template-test-cases/template-test-case-form.test.tsx +0 -0
  797. /package/templates/{default → blank}/src/app/(base)/template-test-cases/template-test-case-form.tsx +0 -0
  798. /package/templates/{default → blank}/src/app/(base)/template-test-cases/template-test-case-table-columns.tsx +0 -0
  799. /package/templates/{default → blank}/src/app/(base)/template-test-cases/template-test-case-table.tsx +0 -0
  800. /package/templates/{default → blank}/src/app/(base)/test-cases/create/page.tsx +0 -0
  801. /package/templates/{default → blank}/src/app/(base)/test-cases/create-from-template/create-from-template-helpers.test.ts +0 -0
  802. /package/templates/{default → blank}/src/app/(base)/test-cases/create-from-template/create-from-template-helpers.ts +0 -0
  803. /package/templates/{default → blank}/src/app/(base)/test-cases/create-from-template/generate/[id]/page.tsx +0 -0
  804. /package/templates/{default → blank}/src/app/(base)/test-cases/create-from-template/page.tsx +0 -0
  805. /package/templates/{default → blank}/src/app/(base)/test-cases/create-from-template/template-selection-form.test.tsx +0 -0
  806. /package/templates/{default → blank}/src/app/(base)/test-cases/create-from-template/template-selection-form.tsx +0 -0
  807. /package/templates/{default → blank}/src/app/(base)/test-cases/modify/[id]/page.tsx +0 -0
  808. /package/templates/{default → blank}/src/app/(base)/test-cases/page.tsx +0 -0
  809. /package/templates/{default → blank}/src/app/(base)/test-cases/test-case-flow.test.tsx +0 -0
  810. /package/templates/{default → blank}/src/app/(base)/test-cases/test-case-flow.tsx +0 -0
  811. /package/templates/{default → blank}/src/app/(base)/test-cases/test-case-form.test.tsx +0 -0
  812. /package/templates/{default → blank}/src/app/(base)/test-cases/test-case-form.tsx +0 -0
  813. /package/templates/{default → blank}/src/app/(base)/test-cases/test-case-route-helpers.test.ts +0 -0
  814. /package/templates/{default → blank}/src/app/(base)/test-cases/test-case-route-helpers.ts +0 -0
  815. /package/templates/{default → blank}/src/app/(base)/test-cases/test-case-table-columns.tsx +0 -0
  816. /package/templates/{default → blank}/src/app/(base)/test-cases/test-case-table.tsx +0 -0
  817. /package/templates/{default → blank}/src/app/(base)/test-runs/[id]/page.tsx +0 -0
  818. /package/templates/{default → blank}/src/app/(base)/test-runs/create/page.tsx +0 -0
  819. /package/templates/{default → blank}/src/app/(base)/test-runs/page.tsx +0 -0
  820. /package/templates/{default → blank}/src/app/(base)/test-runs/test-run-form-helpers.test.ts +0 -0
  821. /package/templates/{default → blank}/src/app/(base)/test-runs/test-run-form-helpers.ts +0 -0
  822. /package/templates/{default → blank}/src/app/(base)/test-runs/test-run-form.test.tsx +0 -0
  823. /package/templates/{default → blank}/src/app/(base)/test-runs/test-run-form.tsx +0 -0
  824. /package/templates/{default → blank}/src/app/(base)/test-runs/test-run-table-columns.tsx +0 -0
  825. /package/templates/{default → blank}/src/app/(base)/test-runs/test-run-table.tsx +0 -0
  826. /package/templates/{default → blank}/src/app/(base)/test-runs/use-test-run-name-validation.ts +0 -0
  827. /package/templates/{default → blank}/src/app/(base)/test-suites/create/page.tsx +0 -0
  828. /package/templates/{default → blank}/src/app/(base)/test-suites/modify/[id]/page.tsx +0 -0
  829. /package/templates/{default → blank}/src/app/(base)/test-suites/page.tsx +0 -0
  830. /package/templates/{default → blank}/src/app/(base)/test-suites/test-suite-form.test.tsx +0 -0
  831. /package/templates/{default → blank}/src/app/(base)/test-suites/test-suite-form.tsx +0 -0
  832. /package/templates/{default → blank}/src/app/(base)/test-suites/test-suite-helpers.test.ts +0 -0
  833. /package/templates/{default → blank}/src/app/(base)/test-suites/test-suite-helpers.ts +0 -0
  834. /package/templates/{default → blank}/src/app/(base)/test-suites/test-suite-table-columns.tsx +0 -0
  835. /package/templates/{default → blank}/src/app/(base)/test-suites/test-suite-table.tsx +0 -0
  836. /package/templates/{default → blank}/src/app/(dashboard-components)/app-drawer.tsx +0 -0
  837. /package/templates/{default → blank}/src/app/(dashboard-components)/data-card-grid.tsx +0 -0
  838. /package/templates/{default → blank}/src/app/(dashboard-components)/data-card.tsx +0 -0
  839. /package/templates/{default → blank}/src/app/(dashboard-components)/execution-health-panel.tsx +0 -0
  840. /package/templates/{default → blank}/src/app/(dashboard-components)/ongoing-test-runs-card.tsx +0 -0
  841. /package/templates/{default → blank}/src/app/(dashboard-components)/quick-actions-drawer.tsx +0 -0
  842. /package/templates/{default → blank}/src/app/api/reports/steps/[stepId]/screenshot/route.test.ts +0 -0
  843. /package/templates/{default → blank}/src/app/api/reports/steps/[stepId]/screenshot/route.ts +0 -0
  844. /package/templates/{default → blank}/src/app/api/test-runs/[runId]/download/route.test.ts +0 -0
  845. /package/templates/{default → blank}/src/app/api/test-runs/[runId]/download/route.ts +0 -0
  846. /package/templates/{default → blank}/src/app/api/test-runs/[runId]/logs/route.ts +0 -0
  847. /package/templates/{default → blank}/src/app/api/test-runs/[runId]/trace/[testCaseId]/route.test.ts +0 -0
  848. /package/templates/{default → blank}/src/app/api/test-runs/[runId]/trace/[testCaseId]/route.ts +0 -0
  849. /package/templates/{default → blank}/src/app/favicon.ico +0 -0
  850. /package/templates/{default → blank}/src/app/page.tsx +0 -0
  851. /package/templates/{default → blank}/src/assets/icons/empty-tube.tsx +0 -0
  852. /package/templates/{default → blank}/src/assets/icons/tube-plus.tsx +0 -0
  853. /package/templates/{default → blank}/src/components/base-node.tsx +0 -0
  854. /package/templates/{default → blank}/src/components/chart/pie-chart.tsx +0 -0
  855. /package/templates/{default → blank}/src/components/data-extraction/locator-inspector-helpers.test.ts +0 -0
  856. /package/templates/{default → blank}/src/components/data-extraction/locator-inspector-helpers.ts +0 -0
  857. /package/templates/{default → blank}/src/components/data-extraction/locator-inspector.tsx +0 -0
  858. /package/templates/{default → blank}/src/components/data-state/empty-state.tsx +0 -0
  859. /package/templates/{default → blank}/src/components/data-visualization/info-card.tsx +0 -0
  860. /package/templates/{default → blank}/src/components/data-visualization/info-grid.tsx +0 -0
  861. /package/templates/{default → blank}/src/components/diagram/button-edge.tsx +0 -0
  862. /package/templates/{default → blank}/src/components/diagram/dynamic-parameters-helpers.test.ts +0 -0
  863. /package/templates/{default → blank}/src/components/diagram/dynamic-parameters-helpers.ts +0 -0
  864. /package/templates/{default → blank}/src/components/diagram/dynamic-parameters.tsx +0 -0
  865. /package/templates/{default → blank}/src/components/diagram/edit-header-option.tsx +0 -0
  866. /package/templates/{default → blank}/src/components/diagram/flow-diagram-helpers.test.ts +0 -0
  867. /package/templates/{default → blank}/src/components/diagram/flow-diagram-helpers.ts +0 -0
  868. /package/templates/{default → blank}/src/components/diagram/flow-diagram.tsx +0 -0
  869. /package/templates/{default → blank}/src/components/diagram/flow-host-helpers.test.ts +0 -0
  870. /package/templates/{default → blank}/src/components/diagram/flow-host-helpers.ts +0 -0
  871. /package/templates/{default → blank}/src/components/diagram/node-form-helpers.test.ts +0 -0
  872. /package/templates/{default → blank}/src/components/diagram/node-form-helpers.ts +0 -0
  873. /package/templates/{default → blank}/src/components/diagram/node-form.test.tsx +0 -0
  874. /package/templates/{default → blank}/src/components/diagram/node-form.tsx +0 -0
  875. /package/templates/{default → blank}/src/components/diagram/options-header-node.tsx +0 -0
  876. /package/templates/{default → blank}/src/components/diagram/template-step-combobox.tsx +0 -0
  877. /package/templates/{default → blank}/src/components/diagram/use-flow-node-order.ts +0 -0
  878. /package/templates/{default → blank}/src/components/form/error-message.tsx +0 -0
  879. /package/templates/{default → blank}/src/components/kokonutui/smooth-tab.tsx +0 -0
  880. /package/templates/{default → blank}/src/components/loading-skeleton/data-table/data-table-skeleton.tsx +0 -0
  881. /package/templates/{default → blank}/src/components/loading-skeleton/form/button-skeleton.tsx +0 -0
  882. /package/templates/{default → blank}/src/components/loading-skeleton/form/icon-button-skeleton.tsx +0 -0
  883. /package/templates/{default → blank}/src/components/loading-skeleton/form/text-input-skeleton.tsx +0 -0
  884. /package/templates/{default → blank}/src/components/loading-skeleton/visualization/table-skeleton.tsx +0 -0
  885. /package/templates/{default → blank}/src/components/logo.tsx +0 -0
  886. /package/templates/{default → blank}/src/components/navigation/command-badge.tsx +0 -0
  887. /package/templates/{default → blank}/src/components/navigation/command-chain-input.tsx +0 -0
  888. /package/templates/{default → blank}/src/components/navigation/entity-search-command.tsx +0 -0
  889. /package/templates/{default → blank}/src/components/navigation/nav-card.tsx +0 -0
  890. /package/templates/{default → blank}/src/components/navigation/nav-command-helpers.ts +0 -0
  891. /package/templates/{default → blank}/src/components/navigation/nav-command-search.tsx +0 -0
  892. /package/templates/{default → blank}/src/components/navigation/nav-command.test.tsx +0 -0
  893. /package/templates/{default → blank}/src/components/navigation/nav-command.tsx +0 -0
  894. /package/templates/{default → blank}/src/components/navigation/nav-link.tsx +0 -0
  895. /package/templates/{default → blank}/src/components/navigation/nav-menu-card-deck.tsx +0 -0
  896. /package/templates/{default → blank}/src/components/navigation/use-nav-command.ts +0 -0
  897. /package/templates/{default → blank}/src/components/node-header.tsx +0 -0
  898. /package/templates/{default → blank}/src/components/reports/test-case-logs-modal.tsx +0 -0
  899. /package/templates/{default → blank}/src/components/table/table-actions.tsx +0 -0
  900. /package/templates/{default → blank}/src/components/test-case/test-case-columns.tsx +0 -0
  901. /package/templates/{default → blank}/src/components/test-case/test-case-form-helpers.test.ts +0 -0
  902. /package/templates/{default → blank}/src/components/test-case/test-case-form-helpers.ts +0 -0
  903. /package/templates/{default → blank}/src/components/test-case/test-case-picker-helpers.test.ts +0 -0
  904. /package/templates/{default → blank}/src/components/test-case/test-case-picker-helpers.ts +0 -0
  905. /package/templates/{default → blank}/src/components/test-case/test-case-picker.test.tsx +0 -0
  906. /package/templates/{default → blank}/src/components/test-case/test-case-picker.tsx +0 -0
  907. /package/templates/{default → blank}/src/components/test-case/test-scenario-preview.tsx +0 -0
  908. /package/templates/{default → blank}/src/components/test-run/download-logs-button.tsx +0 -0
  909. /package/templates/{default → blank}/src/components/test-run/log-viewer-helpers.test.ts +0 -0
  910. /package/templates/{default → blank}/src/components/test-run/log-viewer-helpers.ts +0 -0
  911. /package/templates/{default → blank}/src/components/test-run/log-viewer.test.tsx +0 -0
  912. /package/templates/{default → blank}/src/components/test-run/log-viewer.tsx +0 -0
  913. /package/templates/{default → blank}/src/components/test-run/test-run-details-helpers.test.ts +0 -0
  914. /package/templates/{default → blank}/src/components/test-run/test-run-details-helpers.ts +0 -0
  915. /package/templates/{default → blank}/src/components/test-run/test-run-details.test.tsx +0 -0
  916. /package/templates/{default → blank}/src/components/test-run/test-run-details.tsx +0 -0
  917. /package/templates/{default → blank}/src/components/test-run/test-run-header-helpers.test.ts +0 -0
  918. /package/templates/{default → blank}/src/components/test-run/test-run-header-helpers.ts +0 -0
  919. /package/templates/{default → blank}/src/components/test-run/test-run-header.test.tsx +0 -0
  920. /package/templates/{default → blank}/src/components/test-run/test-run-header.tsx +0 -0
  921. /package/templates/{default → blank}/src/components/test-run/use-log-viewer.ts +0 -0
  922. /package/templates/{default → blank}/src/components/test-run/use-test-run-details.ts +0 -0
  923. /package/templates/{default → blank}/src/components/test-run/use-test-run-header.ts +0 -0
  924. /package/templates/{default → blank}/src/components/test-run/view-report-button.tsx +0 -0
  925. /package/templates/{default → blank}/src/components/test-suite/test-suite-picker-helpers.test.ts +0 -0
  926. /package/templates/{default → blank}/src/components/test-suite/test-suite-picker-helpers.ts +0 -0
  927. /package/templates/{default → blank}/src/components/test-suite/test-suite-picker.test.tsx +0 -0
  928. /package/templates/{default → blank}/src/components/test-suite/test-suite-picker.tsx +0 -0
  929. /package/templates/{default → blank}/src/components/typography/page-header-subtitle.tsx +0 -0
  930. /package/templates/{default → blank}/src/components/typography/page-header.tsx +0 -0
  931. /package/templates/{default → blank}/src/components/ui/alert-dialog.tsx +0 -0
  932. /package/templates/{default → blank}/src/components/ui/alert.tsx +0 -0
  933. /package/templates/{default → blank}/src/components/ui/avatar.tsx +0 -0
  934. /package/templates/{default → blank}/src/components/ui/badge.tsx +0 -0
  935. /package/templates/{default → blank}/src/components/ui/button.tsx +0 -0
  936. /package/templates/{default → blank}/src/components/ui/calendar.tsx +0 -0
  937. /package/templates/{default → blank}/src/components/ui/card.tsx +0 -0
  938. /package/templates/{default → blank}/src/components/ui/chart.tsx +0 -0
  939. /package/templates/{default → blank}/src/components/ui/checkbox.tsx +0 -0
  940. /package/templates/{default → blank}/src/components/ui/command.tsx +0 -0
  941. /package/templates/{default → blank}/src/components/ui/data-table-column-header.tsx +0 -0
  942. /package/templates/{default → blank}/src/components/ui/data-table-pagination.tsx +0 -0
  943. /package/templates/{default → blank}/src/components/ui/data-table-view-options.tsx +0 -0
  944. /package/templates/{default → blank}/src/components/ui/data-table.test.tsx +0 -0
  945. /package/templates/{default → blank}/src/components/ui/data-table.tsx +0 -0
  946. /package/templates/{default → blank}/src/components/ui/dialog.tsx +0 -0
  947. /package/templates/{default → blank}/src/components/ui/dropdown-menu.tsx +0 -0
  948. /package/templates/{default → blank}/src/components/ui/empty.tsx +0 -0
  949. /package/templates/{default → blank}/src/components/ui/input.tsx +0 -0
  950. /package/templates/{default → blank}/src/components/ui/kbd.tsx +0 -0
  951. /package/templates/{default → blank}/src/components/ui/label.tsx +0 -0
  952. /package/templates/{default → blank}/src/components/ui/loading.tsx +0 -0
  953. /package/templates/{default → blank}/src/components/ui/multi-select-with-preview.tsx +0 -0
  954. /package/templates/{default → blank}/src/components/ui/multi-select.test.tsx +0 -0
  955. /package/templates/{default → blank}/src/components/ui/multi-select.tsx +0 -0
  956. /package/templates/{default → blank}/src/components/ui/navigation-menu.tsx +0 -0
  957. /package/templates/{default → blank}/src/components/ui/popover.tsx +0 -0
  958. /package/templates/{default → blank}/src/components/ui/progress.tsx +0 -0
  959. /package/templates/{default → blank}/src/components/ui/radio-group.tsx +0 -0
  960. /package/templates/{default → blank}/src/components/ui/scroll-area.tsx +0 -0
  961. /package/templates/{default → blank}/src/components/ui/select.tsx +0 -0
  962. /package/templates/{default → blank}/src/components/ui/separator.tsx +0 -0
  963. /package/templates/{default → blank}/src/components/ui/skeleton.tsx +0 -0
  964. /package/templates/{default → blank}/src/components/ui/table.tsx +0 -0
  965. /package/templates/{default → blank}/src/components/ui/tabs.tsx +0 -0
  966. /package/templates/{default → blank}/src/components/ui/textarea.tsx +0 -0
  967. /package/templates/{default → blank}/src/components/ui/toast.tsx +0 -0
  968. /package/templates/{default → blank}/src/components/ui/toaster.tsx +0 -0
  969. /package/templates/{default → blank}/src/components/ui/tooltip.tsx +0 -0
  970. /package/templates/{default → blank}/src/components/user-prompt/delete-prompt.test.tsx +0 -0
  971. /package/templates/{default → blank}/src/components/user-prompt/delete-prompt.tsx +0 -0
  972. /package/templates/{default → blank}/src/config/db-config.ts +0 -0
  973. /package/templates/{default → blank}/src/constants/form-opts/diagram/node-form.ts +0 -0
  974. /package/templates/{default → blank}/src/constants/form-opts/environment-form-opts.ts +0 -0
  975. /package/templates/{default → blank}/src/constants/form-opts/locator-group-form-opts.ts +0 -0
  976. /package/templates/{default → blank}/src/constants/form-opts/module-form-opts.ts +0 -0
  977. /package/templates/{default → blank}/src/constants/form-opts/tag-form-opts.ts +0 -0
  978. /package/templates/{default → blank}/src/constants/form-opts/template-selection-form-opts.ts +0 -0
  979. /package/templates/{default → blank}/src/constants/form-opts/template-step-group-form-opts.ts +0 -0
  980. /package/templates/{default → blank}/src/constants/form-opts/template-test-case-form-opts.ts +0 -0
  981. /package/templates/{default → blank}/src/constants/form-opts/template-test-step-form-opts.ts +0 -0
  982. /package/templates/{default → blank}/src/constants/form-opts/test-case-form-opts.ts +0 -0
  983. /package/templates/{default → blank}/src/constants/form-opts/test-run-form-opts.ts +0 -0
  984. /package/templates/{default → blank}/src/constants/form-opts/test-suite-form-opts.ts +0 -0
  985. /package/templates/{default → blank}/src/hooks/use-toast.ts +0 -0
  986. /package/templates/{default → blank}/src/lib/automation/automation-path-roots.ts +0 -0
  987. /package/templates/{default → blank}/src/lib/automation/automation-workspace.ts +0 -0
  988. /package/templates/{default → blank}/src/lib/automation/paths.ts +0 -0
  989. /package/templates/{default → blank}/src/lib/automation/projection-service.ts +0 -0
  990. /package/templates/{default → blank}/src/lib/bidirectional-sync.ts +0 -0
  991. /package/templates/{default → blank}/src/lib/database-sync.ts +0 -0
  992. /package/templates/{default → blank}/src/lib/environment-file-utils.ts +0 -0
  993. /package/templates/{default → blank}/src/lib/executor/local-executor-adapter.ts +0 -0
  994. /package/templates/{default → blank}/src/lib/executor/types.ts +0 -0
  995. /package/templates/{default → blank}/src/lib/feature-file-generator.ts +0 -0
  996. /package/templates/{default → blank}/src/lib/gherkin-parser.test.ts +0 -0
  997. /package/templates/{default → blank}/src/lib/gherkin-parser.ts +0 -0
  998. /package/templates/{default → blank}/src/lib/locator-group-file-utils.ts +0 -0
  999. /package/templates/{default → blank}/src/lib/locator-picker/session-manager.ts +0 -0
  1000. /package/templates/{default → blank}/src/lib/locator-picker/suggestions.ts +0 -0
  1001. /package/templates/{default → blank}/src/lib/metrics/metric-calculator.ts +0 -0
  1002. /package/templates/{default → blank}/src/lib/module-hierarchy-builder.ts +0 -0
  1003. /package/templates/{default → blank}/src/lib/path-helpers/module-path.ts +0 -0
  1004. /package/templates/{default → blank}/src/lib/process/task-spawner.ts +0 -0
  1005. /package/templates/{default → blank}/src/lib/sync/projected-feature-utils.ts +0 -0
  1006. /package/templates/{default → blank}/src/lib/sync/sync-executor.test.ts +0 -0
  1007. /package/templates/{default → blank}/src/lib/sync/sync-executor.ts +0 -0
  1008. /package/templates/{default → blank}/src/lib/sync/sync-pending-counts.test.ts +0 -0
  1009. /package/templates/{default → blank}/src/lib/sync/sync-pending-counts.ts +0 -0
  1010. /package/templates/{default → blank}/src/lib/sync/sync-registry.ts +0 -0
  1011. /package/templates/{default → blank}/src/lib/tag-utils.ts +0 -0
  1012. /package/templates/{default → blank}/src/lib/template-sync-utils.d.ts +0 -0
  1013. /package/templates/{default → blank}/src/lib/template-sync-utils.d.ts.map +0 -0
  1014. /package/templates/{default → blank}/src/lib/template-sync-utils.js.map +0 -0
  1015. /package/templates/{default → blank}/src/lib/test-case-utils.ts +0 -0
  1016. /package/templates/{default → blank}/src/lib/test-run/log-formatter.ts +0 -0
  1017. /package/templates/{default → blank}/src/lib/test-run/matching.ts +0 -0
  1018. /package/templates/{default → blank}/src/lib/test-run/process-manager.ts +0 -0
  1019. /package/templates/{default → blank}/src/lib/test-run/report-parser.ts +0 -0
  1020. /package/templates/{default → blank}/src/lib/test-run/test-run-executor.ts +0 -0
  1021. /package/templates/{default → blank}/src/lib/test-run/winston-logger.ts +0 -0
  1022. /package/templates/{default → blank}/src/lib/test-suite-identifier-service.ts +0 -0
  1023. /package/templates/{default → blank}/src/lib/test-suite-utils.ts +0 -0
  1024. /package/templates/{default → blank}/src/lib/transformers/gherkin-converter.ts +0 -0
  1025. /package/templates/{default → blank}/src/lib/transformers/key-to-icon-transformer.tsx +0 -0
  1026. /package/templates/{default → blank}/src/lib/transformers/template-test-case-converter.ts +0 -0
  1027. /package/templates/{default → blank}/src/lib/utils/node-param-validation.ts +0 -0
  1028. /package/templates/{default → blank}/src/lib/utils/template-step-file-generator.ts +0 -0
  1029. /package/templates/{default → blank}/src/lib/utils/template-step-file-manager-intelligent.ts +0 -0
  1030. /package/templates/{default → blank}/src/lib/utils/template-step-file-manager.ts +0 -0
  1031. /package/templates/{default → blank}/src/lib/utils.ts +0 -0
  1032. /package/templates/{default → blank}/src/services/dashboard/dashboard-service.test.ts +0 -0
  1033. /package/templates/{default → blank}/src/services/dashboard/dashboard-service.ts +0 -0
  1034. /package/templates/{default → blank}/src/services/environment/environment-service.test.ts +0 -0
  1035. /package/templates/{default → blank}/src/services/environment/environment-service.ts +0 -0
  1036. /package/templates/{default → blank}/src/services/locator/locator-path-utils.test.ts +0 -0
  1037. /package/templates/{default → blank}/src/services/locator/locator-path-utils.ts +0 -0
  1038. /package/templates/{default → blank}/src/services/locator/locator-service.test.ts +0 -0
  1039. /package/templates/{default → blank}/src/services/locator/locator-service.ts +0 -0
  1040. /package/templates/{default → blank}/src/services/locator/locator-sync-utils.test.ts +0 -0
  1041. /package/templates/{default → blank}/src/services/locator/locator-sync-utils.ts +0 -0
  1042. /package/templates/{default → blank}/src/services/locator-group/locator-group-service.test.ts +0 -0
  1043. /package/templates/{default → blank}/src/services/locator-group/locator-group-service.ts +0 -0
  1044. /package/templates/{default → blank}/src/services/module/module-service.test.ts +0 -0
  1045. /package/templates/{default → blank}/src/services/module/module-service.ts +0 -0
  1046. /package/templates/{default → blank}/src/services/report/report-service.test.ts +0 -0
  1047. /package/templates/{default → blank}/src/services/report/report-service.ts +0 -0
  1048. /package/templates/{default → blank}/src/services/shared/constants.ts +0 -0
  1049. /package/templates/{default → blank}/src/services/shared/errors.test.ts +0 -0
  1050. /package/templates/{default → blank}/src/services/shared/errors.ts +0 -0
  1051. /package/templates/{default → blank}/src/services/shared/index.ts +0 -0
  1052. /package/templates/{default → blank}/src/services/tag/tag-service.test.ts +0 -0
  1053. /package/templates/{default → blank}/src/services/tag/tag-service.ts +0 -0
  1054. /package/templates/{default → blank}/src/services/template-step/template-step-service.test.ts +0 -0
  1055. /package/templates/{default → blank}/src/services/template-step/template-step-service.ts +0 -0
  1056. /package/templates/{default → blank}/src/services/template-step-group/template-step-group-service.test.ts +0 -0
  1057. /package/templates/{default → blank}/src/services/template-step-group/template-step-group-service.ts +0 -0
  1058. /package/templates/{default → blank}/src/services/template-test-case/template-test-case-service.test.ts +0 -0
  1059. /package/templates/{default → blank}/src/services/template-test-case/template-test-case-service.ts +0 -0
  1060. /package/templates/{default → blank}/src/services/test-case/test-case-service.test.ts +0 -0
  1061. /package/templates/{default → blank}/src/services/test-case/test-case-service.ts +0 -0
  1062. /package/templates/{default → blank}/src/services/test-run/test-run-helpers.ts +0 -0
  1063. /package/templates/{default → blank}/src/services/test-run/test-run-service.test.ts +0 -0
  1064. /package/templates/{default → blank}/src/services/test-run/test-run-service.ts +0 -0
  1065. /package/templates/{default → blank}/src/services/test-suite/test-suite-service.test.ts +0 -0
  1066. /package/templates/{default → blank}/src/services/test-suite/test-suite-service.ts +0 -0
  1067. /package/templates/{default → blank}/src/types/diagram/diagram.ts +0 -0
  1068. /package/templates/{default → blank}/src/types/diagram/template-step.ts +0 -0
  1069. /package/templates/{default → blank}/src/types/executor/browser.type.ts +0 -0
  1070. /package/templates/{default → blank}/src/types/form/actionHandler.ts +0 -0
  1071. /package/templates/{default → blank}/src/types/locator/locator.type.ts +0 -0
  1072. /package/templates/{default → blank}/src/types/locator-picker.ts +0 -0
  1073. /package/templates/{default → blank}/src/types/step/step.type.ts +0 -0
  1074. /package/templates/{default → blank}/src/types/table/data-table.ts +0 -0
  1075. /package/templates/{default → blank}/src/types/test-case-picker.ts +0 -0
  1076. /package/templates/{default → blank}/src/types/test-suite-picker.ts +0 -0
  1077. /package/templates/{default → blank}/tailwind.config.ts +0 -0
  1078. /package/templates/{default → starter}/automation/steps/actions/click.step.ts +0 -0
  1079. /package/templates/{default → starter}/automation/steps/actions/hover.step.ts +0 -0
  1080. /package/templates/{default → starter}/automation/steps/actions/input.step.ts +0 -0
  1081. /package/templates/{default → starter}/automation/steps/actions/navigation.step.ts +0 -0
  1082. /package/templates/{default → starter}/automation/steps/actions/random_data.step.ts +0 -0
  1083. /package/templates/{default → starter}/automation/steps/actions/store.step.ts +0 -0
  1084. /package/templates/{default → starter}/automation/steps/actions/wait.step.ts +0 -0
  1085. /package/templates/{default → starter}/automation/steps/validations/active_state_assertion.step.ts +0 -0
  1086. /package/templates/{default → starter}/automation/steps/validations/navigation_assertion.step.ts +0 -0
  1087. /package/templates/{default → starter}/automation/steps/validations/text_assertion.step.ts +0 -0
  1088. /package/templates/{default → starter}/automation/steps/validations/visibility_assertion.step.ts +0 -0
package/README.md CHANGED
@@ -8,16 +8,28 @@ Scaffold a new [AppraiseJS](https://github.com/jamil2018/appraisejs-core) projec
8
8
  npx create-appraisejs@latest
9
9
  ```
10
10
 
11
+ To scaffold the minimal variant without bundled template steps:
12
+
13
+ ```bash
14
+ npx create-appraisejs@latest --template blank
15
+ ```
16
+
11
17
  The CLI will ask for:
12
18
 
13
19
  1. The target directory. It must not exist yet, or it must be empty.
14
- 2. The package manager: `npm`, `pnpm`, `yarn`, or `bun`.
15
- 3. Whether to run the production setup immediately.
16
- 4. Which Playwright browsers you want available: `chromium`, `firefox`, and/or `webkit`.
20
+ 2. The template: `starter` or `blank`.
21
+ 3. The package manager: `npm`, `pnpm`, `yarn`, or `bun`.
22
+ 4. Whether to run the production setup immediately.
23
+ 5. Which Playwright browsers you want available: `chromium`, `firefox`, and/or `webkit`.
17
24
 
18
25
  ## What The Scaffolder Does
19
26
 
20
- By default, `create-appraisejs` uses the bundled template shipped inside the package.
27
+ By default, `create-appraisejs` uses the bundled `starter` template shipped inside the package.
28
+
29
+ Available templates:
30
+
31
+ - `starter`: opinionated scaffold with bundled core template steps included.
32
+ - `blank`: the same app scaffold without bundled template steps; add steps later with `appraisejs add step`.
21
33
 
22
34
  During scaffolding it:
23
35
 
@@ -25,7 +37,7 @@ During scaffolding it:
25
37
  2. Renames the packaged `gitignore` file back to `.gitignore`.
26
38
  3. Rewrites `package.json` scripts so they use your chosen package manager.
27
39
  4. Preserves the seeded local SQLite database at `prisma/dev.db`.
28
- 5. Starts you with a clean automation workspace: `automation/config/environments/environments.json` is reset to `{}`, `automation/mapping/locator-map.json` is reset to `[]`, reusable step definitions are included, and starter features, locators, and reports are not bundled into the generated app.
40
+ 5. Starts you with a clean automation workspace: `automation/config/environments/environments.json` is reset to `{}`, `automation/mapping/locator-map.json` is reset to `[]`, starter features, locators, and reports are not bundled into the generated app, and reusable step definitions are included only for the `starter` template.
29
41
  6. Optionally runs the project's `setup` script and then installs any Playwright browsers you selected.
30
42
 
31
43
  If you skip setup, the CLI still prints the exact next commands to run.
@@ -71,7 +83,7 @@ The package defaults to the bundled template. Remote fetching is only used when
71
83
  | --- | --- | --- |
72
84
  | `CREATE_APPRAISE_REPO_URL` | Repository URL used for remote template fetching. | `https://github.com/jamil2018/appraisejs-core.git` |
73
85
  | `CREATE_APPRAISE_BRANCH` | Branch or ref to fetch from the remote repository. | `main` |
74
- | `CREATE_APPRAISE_TEMPLATE_SUBPATH` | Path to the template directory inside that repository. | `templates/default` |
86
+ | `CREATE_APPRAISE_TEMPLATE_SUBPATH` | Path to the template directory inside that repository. | selected template subpath (`templates/starter` or `templates/blank`) |
75
87
  | `CREATE_APPRAISE_USE_BUNDLED` | Set to `1`, `true`, or `yes` to force the bundled template even when remote overrides are present. | bundled template |
76
88
 
77
89
  When remote mode is active, the CLI tries the repository tarball first and falls back to `git clone` if needed.
@@ -79,7 +91,7 @@ When remote mode is active, the CLI tries the repository tarball first and falls
79
91
  Example:
80
92
 
81
93
  ```bash
82
- CREATE_APPRAISE_BRANCH=main CREATE_APPRAISE_TEMPLATE_SUBPATH=templates/default npx create-appraisejs@latest
94
+ CREATE_APPRAISE_BRANCH=main npx create-appraisejs@latest --template blank
83
95
  ```
84
96
 
85
97
  ## Common Scripts In The Generated App
@@ -0,0 +1,6 @@
1
+ import { type TemplateId } from './template-catalog.js';
2
+ export interface CliOptions {
3
+ template?: TemplateId;
4
+ }
5
+ export declare function parseCliArgs(argv: string[]): CliOptions;
6
+ //# sourceMappingURL=cli-args.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-args.d.ts","sourceRoot":"","sources":["../src/cli-args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAE5F,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,UAAU,CAAA;CACtB;AAcD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA4BvD"}
@@ -0,0 +1,33 @@
1
+ import { formatTemplateList, parseTemplateId } from './template-catalog.js';
2
+ function getTemplateFlagValue(argument, argv, index) {
3
+ if (argument === '--template') {
4
+ return argv[index + 1] ?? null;
5
+ }
6
+ if (argument.startsWith('--template=')) {
7
+ return argument.slice('--template='.length);
8
+ }
9
+ return null;
10
+ }
11
+ export function parseCliArgs(argv) {
12
+ let template;
13
+ for (let index = 0; index < argv.length; index++) {
14
+ const argument = argv[index];
15
+ const templateValue = getTemplateFlagValue(argument, argv, index);
16
+ if (templateValue === null) {
17
+ continue;
18
+ }
19
+ if (!templateValue.trim()) {
20
+ throw new Error(`Missing value for --template. Expected one of: ${formatTemplateList()}.`);
21
+ }
22
+ const parsedTemplate = parseTemplateId(templateValue);
23
+ if (!parsedTemplate) {
24
+ throw new Error(`Invalid template "${templateValue}". Expected one of: ${formatTemplateList()}.`);
25
+ }
26
+ template = parsedTemplate;
27
+ if (argument === '--template') {
28
+ index++;
29
+ }
30
+ }
31
+ return { template };
32
+ }
33
+ //# sourceMappingURL=cli-args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-args.js","sourceRoot":"","sources":["../src/cli-args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAmB,MAAM,uBAAuB,CAAA;AAM5F,SAAS,oBAAoB,CAAC,QAAgB,EAAE,IAAc,EAAE,KAAa;IAC3E,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAA;IAChC,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAc;IACzC,IAAI,QAAgC,CAAA;IAEpC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,MAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;QAEjE,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3B,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,kDAAkD,kBAAkB,EAAE,GAAG,CAAC,CAAA;QAC5F,CAAC;QAED,MAAM,cAAc,GAAG,eAAe,CAAC,aAAa,CAAC,CAAA;QACrD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,aAAa,uBAAuB,kBAAkB,EAAE,GAAG,CAAC,CAAA;QACnG,CAAC;QAED,QAAQ,GAAG,cAAc,CAAA;QAEzB,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC9B,KAAK,EAAE,CAAA;QACT,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,CAAA;AACrB,CAAC"}
package/dist/cli.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
  import { type PlaywrightBrowser } from './prompts.js';
3
- export declare function getSuccessMessageLines(targetDir: string, packageManager: string, didInstall: boolean, playwrightBrowsers: PlaywrightBrowser[]): string[];
3
+ import type { TemplateId } from './template-catalog.js';
4
+ export declare function getSuccessMessageLines(targetDir: string, template: TemplateId, packageManager: string, didInstall: boolean, playwrightBrowsers: PlaywrightBrowser[]): string[];
4
5
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAYjE,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,OAAO,EACnB,kBAAkB,EAAE,iBAAiB,EAAE,GACtC,MAAM,EAAE,CAuBV"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAIjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAUvD,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,UAAU,EACpB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,OAAO,EACnB,kBAAkB,EAAE,iBAAiB,EAAE,GACtC,MAAM,EAAE,CA4BV"}
package/dist/cli.js CHANGED
@@ -3,17 +3,23 @@ import path from 'path';
3
3
  import { runPrompts } from './prompts.js';
4
4
  import { createProject } from './create-project.js';
5
5
  import { getInstallCommand } from './install.js';
6
+ import { parseCliArgs } from './cli-args.js';
6
7
  function formatBrowserInstallStep(packageManager, browsers) {
7
8
  if (browsers.length === 0) {
8
9
  return null;
9
10
  }
10
11
  return `${packageManager} run install-playwright -- ${browsers.join(' ')}`;
11
12
  }
12
- export function getSuccessMessageLines(targetDir, packageManager, didInstall, playwrightBrowsers) {
13
+ export function getSuccessMessageLines(targetDir, template, packageManager, didInstall, playwrightBrowsers) {
13
14
  const relativePath = path.relative(process.cwd(), targetDir);
14
15
  const cdPath = relativePath.startsWith('..') ? targetDir : `./${relativePath}`;
15
16
  const browserInstallStep = formatBrowserInstallStep(packageManager, playwrightBrowsers);
16
- const lines = ['\n\u2713 Appraise app created successfully!\n', ` Location: ${targetDir}\n`, ' Next steps:\n'];
17
+ const lines = [
18
+ '\n\u2713 Appraise app created successfully!\n',
19
+ ` Location: ${targetDir}\n`,
20
+ ` Template: ${template}\n`,
21
+ ' Next steps:\n',
22
+ ];
17
23
  const pm = packageManager;
18
24
  if (!didInstall) {
19
25
  const { command, args } = getInstallCommand(pm);
@@ -34,27 +40,29 @@ export function getSuccessMessageLines(targetDir, packageManager, didInstall, pl
34
40
  lines.push(' See README.md in the project for more details.\n');
35
41
  return lines;
36
42
  }
37
- function printSuccessMessage(targetDir, packageManager, didInstall, playwrightBrowsers) {
38
- for (const line of getSuccessMessageLines(targetDir, packageManager, didInstall, playwrightBrowsers)) {
43
+ function printSuccessMessage(targetDir, template, packageManager, didInstall, playwrightBrowsers) {
44
+ for (const line of getSuccessMessageLines(targetDir, template, packageManager, didInstall, playwrightBrowsers)) {
39
45
  console.log(line);
40
46
  }
41
47
  }
42
48
  async function main() {
43
49
  console.log('\n Create Appraise\n');
44
50
  const cwd = process.cwd();
51
+ let cliOptions;
45
52
  let answers;
46
53
  try {
47
- answers = await runPrompts(cwd);
54
+ cliOptions = parseCliArgs(process.argv.slice(2));
55
+ answers = await runPrompts(cwd, cliOptions);
48
56
  }
49
57
  catch (err) {
50
58
  const message = err instanceof Error ? err.message : String(err);
51
59
  console.error('\n\u2717', message);
52
60
  process.exit(1);
53
61
  }
54
- const { directory, packageManager, runInstall: shouldRunInstall, playwrightBrowsers } = answers;
62
+ const { directory, template, packageManager, runInstall: shouldRunInstall, playwrightBrowsers } = answers;
55
63
  try {
56
- await createProject({ directory, packageManager, runInstall: shouldRunInstall, playwrightBrowsers });
57
- printSuccessMessage(directory, packageManager, shouldRunInstall, playwrightBrowsers);
64
+ await createProject({ directory, template, packageManager, runInstall: shouldRunInstall, playwrightBrowsers });
65
+ printSuccessMessage(directory, template, packageManager, shouldRunInstall, playwrightBrowsers);
58
66
  }
59
67
  catch (err) {
60
68
  const message = err instanceof Error ? err.message : String(err);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,8 +1,9 @@
1
+ import { type TemplateId } from './template-catalog.js';
1
2
  export interface Config {
2
3
  repoBase: string;
3
4
  branch: string;
4
5
  templateSubpath: string;
5
6
  useBundled: boolean;
6
7
  }
7
- export declare function getConfig(): Config;
8
+ export declare function getConfig(template?: TemplateId): Config;
8
9
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB;AAWD,wBAAgB,SAAS,IAAI,MAAM,CA2BlC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqD,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAK1G,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;CACpB;AAWD,wBAAgB,SAAS,CAAC,QAAQ,GAAE,UAAgC,GAAG,MAAM,CA2B5E"}
package/dist/config.js CHANGED
@@ -1,6 +1,6 @@
1
+ import { DEFAULT_TEMPLATE_ID, resolveRemoteTemplateSubpath } from './template-catalog.js';
1
2
  const DEFAULT_REPO_BASE = 'https://github.com/jamil2018/appraisejs-core.git';
2
3
  const DEFAULT_BRANCH = 'main';
3
- const DEFAULT_TEMPLATE_SUBPATH = 'templates/default';
4
4
  function normalizeRepoBase(value) {
5
5
  let s = value.trim();
6
6
  while (s.endsWith('/') || s.endsWith('.git')) {
@@ -11,14 +11,14 @@ function normalizeRepoBase(value) {
11
11
  }
12
12
  return s;
13
13
  }
14
- export function getConfig() {
14
+ export function getConfig(template = DEFAULT_TEMPLATE_ID) {
15
15
  const hasRemoteOverride = Boolean(process.env.CREATE_APPRAISE_REPO_URL?.trim()) ||
16
16
  Boolean(process.env.CREATE_APPRAISE_BRANCH?.trim()) ||
17
17
  Boolean(process.env.CREATE_APPRAISE_TEMPLATE_SUBPATH?.trim());
18
18
  const repoBaseRaw = process.env.CREATE_APPRAISE_REPO_URL ?? DEFAULT_REPO_BASE;
19
19
  const repoBase = repoBaseRaw ? normalizeRepoBase(repoBaseRaw) : DEFAULT_REPO_BASE;
20
20
  const branch = process.env.CREATE_APPRAISE_BRANCH?.trim() ?? DEFAULT_BRANCH;
21
- const templateSubpath = process.env.CREATE_APPRAISE_TEMPLATE_SUBPATH?.trim() ?? DEFAULT_TEMPLATE_SUBPATH;
21
+ const templateSubpath = process.env.CREATE_APPRAISE_TEMPLATE_SUBPATH?.trim() ?? resolveRemoteTemplateSubpath(template);
22
22
  const useBundledRaw = process.env.CREATE_APPRAISE_USE_BUNDLED;
23
23
  const forceBundled = useBundledRaw !== undefined &&
24
24
  useBundledRaw !== '' &&
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,kDAAkD,CAAC;AAC7E,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9B,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AASrD,SAAS,iBAAiB,CAAC,KAAa;IACtC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aACtC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,MAAM,iBAAiB,GACrB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAC;QACrD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC;QACnD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,iBAAiB,CAAC;IAC9E,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAElF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,IAAI,cAAc,CAAC;IAE5E,MAAM,eAAe,GACnB,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,IAAI,EAAE,IAAI,wBAAwB,CAAC;IAEnF,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAC9D,MAAM,YAAY,GAChB,aAAa,KAAK,SAAS;QAC3B,aAAa,KAAK,EAAE;QACpB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,YAAY,IAAI,CAAC,iBAAiB,CAAC;IAEtD,OAAO;QACL,QAAQ,EAAE,QAAQ,IAAI,iBAAiB;QACvC,MAAM;QACN,eAAe;QACf,UAAU;KACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,4BAA4B,EAAmB,MAAM,uBAAuB,CAAA;AAE1G,MAAM,iBAAiB,GAAG,kDAAkD,CAAA;AAC5E,MAAM,cAAc,GAAG,MAAM,CAAA;AAS7B,SAAS,iBAAiB,CAAC,KAAa;IACtC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IACpB,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aACrC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,WAAuB,mBAAmB;IAClE,MAAM,iBAAiB,GACrB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAC;QACrD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC;QACnD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,IAAI,EAAE,CAAC,CAAA;IAE/D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,iBAAiB,CAAA;IAC7E,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAA;IAEjF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,IAAI,cAAc,CAAA;IAE3E,MAAM,eAAe,GACnB,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,IAAI,EAAE,IAAI,4BAA4B,CAAC,QAAQ,CAAC,CAAA;IAEhG,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAA;IAC7D,MAAM,YAAY,GAChB,aAAa,KAAK,SAAS;QAC3B,aAAa,KAAK,EAAE;QACpB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;IACpE,MAAM,UAAU,GAAG,YAAY,IAAI,CAAC,iBAAiB,CAAA;IAErD,OAAO;QACL,QAAQ,EAAE,QAAQ,IAAI,iBAAiB;QACvC,MAAM;QACN,eAAe;QACf,UAAU;KACX,CAAA;AACH,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { PackageManager } from './prompts.js';
2
+ import { type TemplateId } from './template-catalog.js';
2
3
  export declare function getCollectedFilesForTest(src: string, packageManager?: PackageManager): string[];
3
- export declare function getTemplatePath(): string;
4
- export declare function copyTemplate(destDir: string, onProgress?: (current: number, total: number, filename: string) => void, templatePathOverride?: string, packageManager?: PackageManager): Promise<void>;
4
+ export declare function getTemplatePath(template?: TemplateId): string;
5
+ export declare function copyTemplate(destDir: string, onProgress?: (current: number, total: number, filename: string) => void, templatePathOverride?: string, packageManager?: PackageManager, template?: TemplateId): Promise<void>;
5
6
  //# sourceMappingURL=copy-template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"copy-template.d.ts","sourceRoot":"","sources":["../src/copy-template.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAoElD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,MAAM,EAAE,CAE/F;AAED,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAMD,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvE,oBAAoB,CAAC,EAAE,MAAM,EAC7B,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC,IAAI,CAAC,CAgCf"}
1
+ {"version":3,"file":"copy-template.d.ts","sourceRoot":"","sources":["../src/copy-template.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAmD,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAoExG,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,MAAM,EAAE,CAE/F;AAED,wBAAgB,eAAe,CAAC,QAAQ,GAAE,UAAgC,GAAG,MAAM,CAElF;AAMD,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvE,oBAAoB,CAAC,EAAE,MAAM,EAC7B,cAAc,CAAC,EAAE,cAAc,EAC/B,QAAQ,GAAE,UAAgC,GACzC,OAAO,CAAC,IAAI,CAAC,CAgCf"}
@@ -1,8 +1,7 @@
1
1
  import fs from 'fs-extra';
2
2
  import path from 'path';
3
- import { fileURLToPath } from 'url';
4
3
  import cliProgress from 'cli-progress';
5
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
4
+ import { DEFAULT_TEMPLATE_ID, resolveBundledTemplatePath } from './template-catalog.js';
6
5
  const SEEDED_DB_PATH = path.join('prisma', 'dev.db');
7
6
  const PACKAGED_GITIGNORE_PATH = 'gitignore';
8
7
  const EXCLUDED_DIRS = new Set(['node_modules', '.next', '.git']);
@@ -14,6 +13,7 @@ const EXCLUDED_FILES = new Set([
14
13
  'yarn.lock',
15
14
  'pnpm-lock.yaml',
16
15
  'bun.lockb',
16
+ '.DS_Store',
17
17
  ]);
18
18
  const EXCLUDED_EXTENSIONS = new Set(['.db', '.sqlite', '.sqlite3']);
19
19
  function shouldKeepSeededDatabase(relativePath) {
@@ -74,15 +74,14 @@ function collectFiles(src, base = '', packageManager) {
74
74
  export function getCollectedFilesForTest(src, packageManager) {
75
75
  return collectFiles(src, '', packageManager);
76
76
  }
77
- export function getTemplatePath() {
78
- const packageDir = path.resolve(__dirname, '..');
79
- return path.join(packageDir, 'templates', 'default');
77
+ export function getTemplatePath(template = DEFAULT_TEMPLATE_ID) {
78
+ return resolveBundledTemplatePath(template);
80
79
  }
81
80
  function getDestinationRelativePath(relativePath) {
82
81
  return relativePath === PACKAGED_GITIGNORE_PATH ? '.gitignore' : relativePath;
83
82
  }
84
- export async function copyTemplate(destDir, onProgress, templatePathOverride, packageManager) {
85
- const templatePath = templatePathOverride ?? getTemplatePath();
83
+ export async function copyTemplate(destDir, onProgress, templatePathOverride, packageManager, template = DEFAULT_TEMPLATE_ID) {
84
+ const templatePath = templatePathOverride ?? getTemplatePath(template);
86
85
  if (!(await fs.pathExists(templatePath))) {
87
86
  throw new Error(`Template not found at: ${templatePath}`);
88
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"copy-template.js","sourceRoot":"","sources":["../src/copy-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copy-template.js","sourceRoot":"","sources":["../src/copy-template.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-project.d.ts","sourceRoot":"","sources":["../src/create-project.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAA;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjD,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,OAAO,YAAY,CAAA;IACjC,YAAY,EAAE,OAAO,YAAY,CAAA;IACjC,SAAS,EAAE,OAAO,SAAS,CAAA;IAC3B,uBAAuB,EAAE,OAAO,uBAAuB,CAAA;IACvD,eAAe,EAAE,OAAO,EAAE,CAAC,MAAM,CAAA;IACjC,QAAQ,EAAE,OAAO,QAAQ,CAAA;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;CACxB;AAmDD,wBAAsB,aAAa,CACjC,OAAO,EAAE,aAAa,EACtB,YAAY,GAAE,yBAA+C,EAC7D,MAAM,GAAE,mBAA+D,GACtE,OAAO,CAAC,mBAAmB,CAAC,CAyB9B"}
1
+ {"version":3,"file":"create-project.d.ts","sourceRoot":"","sources":["../src/create-project.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAA;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGjD,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,OAAO,YAAY,CAAA;IACjC,YAAY,EAAE,OAAO,YAAY,CAAA;IACjC,SAAS,EAAE,OAAO,SAAS,CAAA;IAC3B,uBAAuB,EAAE,OAAO,uBAAuB,CAAA;IACvD,eAAe,EAAE,OAAO,EAAE,CAAC,MAAM,CAAA;IACjC,QAAQ,EAAE,OAAO,QAAQ,CAAA;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;CACxB;AAsDD,wBAAsB,aAAa,CACjC,OAAO,EAAE,aAAa,EACtB,YAAY,GAAE,yBAA+C,EAC7D,MAAM,GAAE,mBAA+D,GACtE,OAAO,CAAC,mBAAmB,CAAC,CAyB9B"}
@@ -12,19 +12,19 @@ const defaultDependencies = {
12
12
  removeDirectory: fs.remove,
13
13
  runSetup,
14
14
  };
15
- async function copyBundledTemplate(directory, packageManager, dependencies, logger) {
15
+ async function copyBundledTemplate(directory, template, packageManager, dependencies, logger) {
16
16
  logger.info(' Copying bundled template files...');
17
- await dependencies.copyTemplate(directory, undefined, undefined, packageManager);
17
+ await dependencies.copyTemplate(directory, undefined, undefined, packageManager, template);
18
18
  logger.info(' Template files copied.\n');
19
19
  }
20
- async function copyRemoteTemplate(directory, packageManager, config, dependencies, logger) {
20
+ async function copyRemoteTemplate(directory, template, packageManager, config, dependencies, logger) {
21
21
  let cleanupDir = null;
22
22
  try {
23
23
  logger.info(` Downloading template from ${config.repoBase} ...`);
24
24
  const download = await dependencies.downloadRepo(config.repoBase, config.branch, config.templateSubpath);
25
25
  cleanupDir = download.cleanupDir;
26
26
  logger.info(' Copying template files...');
27
- await dependencies.copyTemplate(directory, undefined, path.join(download.repoRoot, config.templateSubpath), packageManager);
27
+ await dependencies.copyTemplate(directory, undefined, path.join(download.repoRoot, config.templateSubpath), packageManager, template);
28
28
  logger.info(' Template files copied.\n');
29
29
  }
30
30
  finally {
@@ -34,15 +34,15 @@ async function copyRemoteTemplate(directory, packageManager, config, dependencie
34
34
  }
35
35
  }
36
36
  export async function createProject(answers, dependencies = defaultDependencies, logger = { info: message => console.log(message) }) {
37
- const config = dependencies.getConfig();
38
- const { directory, packageManager, runInstall, playwrightBrowsers } = answers;
37
+ const config = dependencies.getConfig(answers.template);
38
+ const { directory, template, packageManager, runInstall, playwrightBrowsers } = answers;
39
39
  logger.info('\n Validating target directory...');
40
40
  logger.info(` Creating project at: ${directory}\n`);
41
41
  if (config.useBundled) {
42
- await copyBundledTemplate(directory, packageManager, dependencies, logger);
42
+ await copyBundledTemplate(directory, template, packageManager, dependencies, logger);
43
43
  }
44
44
  else {
45
- await copyRemoteTemplate(directory, packageManager, config, dependencies, logger);
45
+ await copyRemoteTemplate(directory, template, packageManager, config, dependencies, logger);
46
46
  }
47
47
  await dependencies.patchPackageJsonScripts(directory, packageManager);
48
48
  if (runInstall) {
@@ -1 +1 @@
1
- {"version":3,"file":"create-project.js","sourceRoot":"","sources":["../src/create-project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-project.js","sourceRoot":"","sources":["../src/create-project.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,18 @@
1
+ import type { TemplateId } from './template-catalog.js';
1
2
  export interface TemplateMetadata {
2
3
  preparedAt: string;
3
4
  inputHash: string;
4
5
  databasePath: string;
5
6
  }
7
+ export interface TemplateStepDataCounts {
8
+ stepCount: number;
9
+ stepGroupCount: number;
10
+ }
6
11
  export declare const TEMPLATE_PREP_SYNC_SCRIPTS: readonly ["sync-template-step-groups", "sync-template-steps"];
12
+ export declare const BLANK_TEMPLATE_PREP_SYNC_SCRIPTS: readonly ["sync-template-steps", "sync-template-step-groups"];
7
13
  export declare function collectFiles(dir: string, predicate?: (relativePath: string) => boolean, baseDir?: string): Promise<string[]>;
8
14
  export declare function shouldAbortOnFallbackSeed(usedFallbackSeed: boolean, inputHash: string, previousMetadata: TemplateMetadata | null): boolean;
9
- export declare function verifyPreparedTemplateState(packageTemplateDir: string, collectFilesFn?: typeof collectFiles): Promise<void>;
15
+ export declare function getTemplatePrepSyncScripts(template: TemplateId): readonly string[];
16
+ export declare function readTemplateStepDataCounts(databasePath: string): Promise<TemplateStepDataCounts>;
17
+ export declare function verifyPreparedTemplateState(packageTemplateDir: string, template: TemplateId, collectFilesFn?: typeof collectFiles, readTemplateStepDataCountsFn?: (databasePath: string) => Promise<TemplateStepDataCounts>): Promise<void>;
10
18
  //# sourceMappingURL=prepare-template-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-template-utils.d.ts","sourceRoot":"","sources":["../src/prepare-template-utils.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,0BAA0B,+DAAgE,CAAA;AAEvG,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,EAC7C,OAAO,SAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBnB;AAED,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,OAAO,EACzB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,GACxC,OAAO,CAET;AAED,wBAAsB,2BAA2B,CAC/C,kBAAkB,EAAE,MAAM,EAC1B,cAAc,GAAE,OAAO,YAA2B,GACjD,OAAO,CAAC,IAAI,CAAC,CA0Cf"}
1
+ {"version":3,"file":"prepare-template-utils.d.ts","sourceRoot":"","sources":["../src/prepare-template-utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,eAAO,MAAM,0BAA0B,+DAAgE,CAAA;AACvG,eAAO,MAAM,gCAAgC,+DAAgE,CAAA;AAE7G,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,EAC7C,OAAO,SAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBnB;AAED,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,OAAO,EACzB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,GACxC,OAAO,CAET;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,UAAU,GAAG,SAAS,MAAM,EAAE,CAElF;AAED,wBAAsB,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAmBtG;AAED,wBAAsB,2BAA2B,CAC/C,kBAAkB,EAAE,MAAM,EAC1B,QAAQ,EAAE,UAAU,EACpB,cAAc,GAAE,OAAO,YAA2B,EAClD,4BAA4B,GAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,CAA8B,GACnH,OAAO,CAAC,IAAI,CAAC,CAwEf"}
@@ -1,6 +1,7 @@
1
1
  import path from 'path';
2
2
  import { existsSync, promises as fs } from 'fs';
3
3
  export const TEMPLATE_PREP_SYNC_SCRIPTS = ['sync-template-step-groups', 'sync-template-steps'];
4
+ export const BLANK_TEMPLATE_PREP_SYNC_SCRIPTS = ['sync-template-steps', 'sync-template-step-groups'];
4
5
  export async function collectFiles(dir, predicate, baseDir = dir) {
5
6
  const entries = await fs.readdir(dir, { withFileTypes: true });
6
7
  const files = [];
@@ -20,7 +21,30 @@ export async function collectFiles(dir, predicate, baseDir = dir) {
20
21
  export function shouldAbortOnFallbackSeed(usedFallbackSeed, inputHash, previousMetadata) {
21
22
  return usedFallbackSeed && previousMetadata?.inputHash !== inputHash;
22
23
  }
23
- export async function verifyPreparedTemplateState(packageTemplateDir, collectFilesFn = collectFiles) {
24
+ export function getTemplatePrepSyncScripts(template) {
25
+ return template === 'blank' ? BLANK_TEMPLATE_PREP_SYNC_SCRIPTS : TEMPLATE_PREP_SYNC_SCRIPTS;
26
+ }
27
+ export async function readTemplateStepDataCounts(databasePath) {
28
+ const { PrismaClient } = await import('@prisma/client');
29
+ const prisma = new PrismaClient({
30
+ datasources: {
31
+ db: {
32
+ url: `file:${databasePath}`,
33
+ },
34
+ },
35
+ });
36
+ try {
37
+ const [stepCount, stepGroupCount] = await prisma.$transaction([
38
+ prisma.templateStep.count(),
39
+ prisma.templateStepGroup.count(),
40
+ ]);
41
+ return { stepCount, stepGroupCount };
42
+ }
43
+ finally {
44
+ await prisma.$disconnect();
45
+ }
46
+ }
47
+ export async function verifyPreparedTemplateState(packageTemplateDir, template, collectFilesFn = collectFiles, readTemplateStepDataCountsFn = readTemplateStepDataCounts) {
24
48
  const seededDbPath = path.join(packageTemplateDir, 'prisma', 'dev.db');
25
49
  const staleNestedDbPath = path.join(packageTemplateDir, 'prisma', 'prisma', 'dev.db');
26
50
  const packagedGitignorePath = path.join(packageTemplateDir, 'gitignore');
@@ -29,6 +53,11 @@ export async function verifyPreparedTemplateState(packageTemplateDir, collectFil
29
53
  const starterLocatorMapPath = path.join(packageTemplateDir, 'automation', 'mapping', 'locator-map.json');
30
54
  const reportsDir = path.join(packageTemplateDir, 'automation', 'reports');
31
55
  const reportFiles = existsSync(reportsDir) ? await collectFilesFn(reportsDir) : [];
56
+ const bundledStepsDir = path.join(packageTemplateDir, 'automation', 'steps');
57
+ const bundledStepFiles = existsSync(bundledStepsDir)
58
+ ? await collectFilesFn(bundledStepsDir, relativePath => relativePath.endsWith('.step.ts'))
59
+ : [];
60
+ const strayOsArtifacts = await collectFilesFn(packageTemplateDir, relativePath => path.basename(relativePath) === '.DS_Store');
32
61
  if (!existsSync(seededDbPath)) {
33
62
  throw new Error(`Prepared template is missing ${seededDbPath}`);
34
63
  }
@@ -55,5 +84,24 @@ export async function verifyPreparedTemplateState(packageTemplateDir, collectFil
55
84
  if (reportFiles.length > 0) {
56
85
  throw new Error(`Prepared template should not include report artifacts, found ${reportFiles.join(', ')}`);
57
86
  }
87
+ if (strayOsArtifacts.length > 0) {
88
+ throw new Error(`Prepared template should not include OS artifacts, found ${strayOsArtifacts.join(', ')}`);
89
+ }
90
+ const stepDataCounts = await readTemplateStepDataCountsFn(seededDbPath);
91
+ if (template === 'starter') {
92
+ if (bundledStepFiles.length === 0) {
93
+ throw new Error(`Prepared starter template is missing bundled step files in ${bundledStepsDir}`);
94
+ }
95
+ if (stepDataCounts.stepCount === 0 || stepDataCounts.stepGroupCount === 0) {
96
+ throw new Error(`Prepared starter template database should include bundled step data at ${seededDbPath}`);
97
+ }
98
+ return;
99
+ }
100
+ if (bundledStepFiles.length > 0) {
101
+ throw new Error(`Prepared blank template should not include bundled step files, found ${bundledStepFiles.join(', ')}`);
102
+ }
103
+ if (stepDataCounts.stepCount !== 0 || stepDataCounts.stepGroupCount !== 0) {
104
+ throw new Error(`Prepared blank template database should not include bundled step data at ${seededDbPath}`);
105
+ }
58
106
  }
59
107
  //# sourceMappingURL=prepare-template-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-template-utils.js","sourceRoot":"","sources":["../src/prepare-template-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepare-template-utils.js","sourceRoot":"","sources":["../src/prepare-template-utils.ts"],"names":[],"mappings":"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"}
package/dist/prompts.d.ts CHANGED
@@ -1,10 +1,15 @@
1
+ import { type TemplateId } from './template-catalog.js';
1
2
  export type PackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun';
2
3
  export type PlaywrightBrowser = 'chromium' | 'firefox' | 'webkit';
3
4
  export interface PromptAnswers {
4
5
  directory: string;
6
+ template: TemplateId;
5
7
  packageManager: PackageManager;
6
8
  runInstall: boolean;
7
9
  playwrightBrowsers: PlaywrightBrowser[];
8
10
  }
9
- export declare function runPrompts(cwd: string): Promise<PromptAnswers>;
11
+ export interface PromptOptions {
12
+ template?: TemplateId;
13
+ }
14
+ export declare function runPrompts(cwd: string, options?: PromptOptions): Promise<PromptAnswers>;
10
15
  //# sourceMappingURL=prompts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElE,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;CACzC;AAuBD,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA8CpE"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;AAC5D,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAA;AAEjE,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,UAAU,CAAA;IACpB,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,OAAO,CAAA;IACnB,kBAAkB,EAAE,iBAAiB,EAAE,CAAA;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,UAAU,CAAA;CACtB;AAuBD,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAsDjG"}
package/dist/prompts.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { checkbox, confirm, input, select } from '@inquirer/prompts';
2
2
  import path from 'path';
3
3
  import fs from 'fs';
4
+ import { DEFAULT_TEMPLATE_ID, getTemplateChoices, } from './template-catalog.js';
4
5
  const DEFAULT_DIR = './my-appraisejs-app';
5
6
  function isDirEmpty(dirPath) {
6
7
  if (!fs.existsSync(dirPath))
@@ -19,7 +20,7 @@ function validateTargetDirectory(resolved) {
19
20
  throw new Error(`Directory must be empty: ${resolved}\nPlease choose an empty directory or a new path.`);
20
21
  }
21
22
  }
22
- export async function runPrompts(cwd) {
23
+ export async function runPrompts(cwd, options = {}) {
23
24
  const rawDir = await input({
24
25
  message: 'Where should we create your app?',
25
26
  default: DEFAULT_DIR,
@@ -38,6 +39,12 @@ export async function runPrompts(cwd) {
38
39
  const message = err instanceof Error ? err.message : String(err);
39
40
  throw new Error(message);
40
41
  }
42
+ const template = options.template ??
43
+ (await select({
44
+ message: 'Which template do you want to start with?',
45
+ choices: getTemplateChoices(),
46
+ default: DEFAULT_TEMPLATE_ID,
47
+ }));
41
48
  const packageManager = await select({
42
49
  message: 'Which package manager do you want to use?',
43
50
  choices: [
@@ -60,6 +67,6 @@ export async function runPrompts(cwd) {
60
67
  { name: 'WebKit', value: 'webkit' },
61
68
  ],
62
69
  });
63
- return { directory: resolved, packageManager, runInstall, playwrightBrowsers };
70
+ return { directory: resolved, template, packageManager, runInstall, playwrightBrowsers };
64
71
  }
65
72
  //# sourceMappingURL=prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}