@nextsparkjs/core 0.1.0-beta.190 → 0.1.0-beta.192

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 (2997) hide show
  1. package/README.md +1 -1
  2. package/dist/components/app/layouts/CurrentYear.d.ts +10 -0
  3. package/dist/components/app/layouts/CurrentYear.d.ts.map +1 -0
  4. package/dist/components/app/layouts/CurrentYear.js +8 -0
  5. package/dist/components/app/layouts/PublicFooter.d.ts.map +1 -1
  6. package/dist/components/app/layouts/PublicFooter.js +3 -3
  7. package/dist/components/app/layouts/PublicNavbar.js +1 -1
  8. package/dist/components/auth/DevKeyring.js +1 -1
  9. package/dist/components/auth/forms/LoginForm.d.ts.map +1 -1
  10. package/dist/components/auth/forms/LoginForm.js +47 -12
  11. package/dist/components/auth/forms/SignupForm.d.ts.map +1 -1
  12. package/dist/components/auth/forms/SignupForm.js +57 -5
  13. package/dist/components/dashboard/block-editor/block-picker.d.ts.map +1 -1
  14. package/dist/components/dashboard/block-editor/block-picker.js +2 -1
  15. package/dist/components/dashboard/block-editor/dynamic-form.d.ts.map +1 -1
  16. package/dist/components/dashboard/block-editor/dynamic-form.js +2 -2
  17. package/dist/components/dashboard/block-editor/pattern-card.js +2 -2
  18. package/dist/components/dashboard/block-editor/pattern-reference-preview.js +2 -2
  19. package/dist/components/dashboard/layouts/AuthenticatedDashboardLayout.d.ts +5 -0
  20. package/dist/components/dashboard/layouts/AuthenticatedDashboardLayout.d.ts.map +1 -0
  21. package/dist/components/dashboard/layouts/AuthenticatedDashboardLayout.js +37 -0
  22. package/dist/components/dashboard/layouts/Sidebar.js +1 -1
  23. package/dist/components/dashboard/layouts/TopNavbar.js +2 -2
  24. package/dist/components/dashboard/mobile/MobileBottomNav.js +1 -1
  25. package/dist/components/dashboard/mobile/MobileMoreSheet.js +1 -1
  26. package/dist/components/dashboard/mobile/MobileTopBar.js +8 -7
  27. package/dist/components/dashboard/mobile/QuickCreateSheet.js +5 -5
  28. package/dist/components/dashboard/navigation/DynamicNavigation.d.ts.map +1 -1
  29. package/dist/components/dashboard/navigation/DynamicNavigation.js +6 -9
  30. package/dist/components/devtools/BlockDetailViewer.js +2 -2
  31. package/dist/components/devtools/BlocksViewer.js +1 -1
  32. package/dist/components/docs/docs-sidebar.d.ts.map +1 -1
  33. package/dist/components/docs/docs-sidebar.js +2 -5
  34. package/dist/components/entities/EntityChildManager.js +8 -8
  35. package/dist/components/entities/EntityDetail.js +8 -8
  36. package/dist/components/entities/ErrorBoundary.js +2 -2
  37. package/dist/components/entities/wrappers/EntityDetailWrapper.js +22 -22
  38. package/dist/components/entities/wrappers/EntityFormWrapper.d.ts +1 -1
  39. package/dist/components/entities/wrappers/EntityFormWrapper.js +3 -3
  40. package/dist/components/entities/wrappers/EntityListWrapper.js +2 -2
  41. package/dist/components/settings/layouts/SettingsSidebar.js +2 -2
  42. package/dist/components/teams/InviteMemberDialog.js +1 -1
  43. package/dist/components/teams/TeamMembersList.js +1 -1
  44. package/dist/components/ui/accordion.js +1 -1
  45. package/dist/components/ui/avatar.js +1 -1
  46. package/dist/components/ui/badge.js +1 -1
  47. package/dist/components/ui/button.js +1 -1
  48. package/dist/components/ui/calendar.d.ts.map +1 -1
  49. package/dist/components/ui/calendar.js +22 -30
  50. package/dist/components/ui/card.js +1 -1
  51. package/dist/components/ui/checkbox.js +1 -1
  52. package/dist/components/ui/command.d.ts +7 -7
  53. package/dist/components/ui/input.js +1 -1
  54. package/dist/components/ui/label.js +1 -1
  55. package/dist/components/ui/progress.js +1 -1
  56. package/dist/components/ui/relation-display.js +1 -1
  57. package/dist/components/ui/separator.js +1 -1
  58. package/dist/components/ui/sheet.d.ts +1 -1
  59. package/dist/components/ui/simple-relation-select.js +1 -1
  60. package/dist/components/ui/skeleton.js +1 -1
  61. package/dist/components/ui/slider.js +1 -1
  62. package/dist/components/ui/switch.js +1 -1
  63. package/dist/components/ui/tabs.js +1 -1
  64. package/dist/components/ui/textarea.js +1 -1
  65. package/dist/contexts/TeamContext.js +1 -1
  66. package/dist/emails/otp-verification.d.ts +1 -1
  67. package/dist/emails/otp-verification.d.ts.map +1 -1
  68. package/dist/emails/otp-verification.js +1 -1
  69. package/dist/emails/reset-password.d.ts +1 -1
  70. package/dist/emails/reset-password.d.ts.map +1 -1
  71. package/dist/emails/reset-password.js +1 -1
  72. package/dist/emails/team-invitation.d.ts +1 -1
  73. package/dist/emails/team-invitation.d.ts.map +1 -1
  74. package/dist/emails/team-invitation.js +1 -1
  75. package/dist/emails/verify-email.d.ts +2 -2
  76. package/dist/emails/verify-email.d.ts.map +1 -1
  77. package/dist/emails/verify-email.js +1 -1
  78. package/dist/hooks/index.d.ts +1 -0
  79. package/dist/hooks/index.d.ts.map +1 -1
  80. package/dist/hooks/index.js +1 -0
  81. package/dist/hooks/useAccountPreferencesSync.d.ts.map +1 -1
  82. package/dist/hooks/useAccountPreferencesSync.js +1 -1
  83. package/dist/hooks/useAuth.d.ts.map +1 -1
  84. package/dist/hooks/useAuth.js +1 -1
  85. package/dist/hooks/useAuthReadiness.d.ts +15 -0
  86. package/dist/hooks/useAuthReadiness.d.ts.map +1 -0
  87. package/dist/hooks/useAuthReadiness.js +62 -0
  88. package/dist/hooks/useContentTranslation.d.ts +7 -7
  89. package/dist/hooks/useContextAwareTranslations.js +10 -10
  90. package/dist/hooks/useEnabledEntities.js +2 -2
  91. package/dist/hooks/useEnsureUserMetadata.js +1 -1
  92. package/dist/hooks/useEntityConfig.js +4 -4
  93. package/dist/hooks/useEntityTranslations.d.ts.map +1 -1
  94. package/dist/hooks/useEntityTranslations.js +6 -2
  95. package/dist/hooks/useLocale.d.ts +3 -1
  96. package/dist/hooks/useLocale.d.ts.map +1 -1
  97. package/dist/hooks/useLocale.js +1 -1
  98. package/dist/hooks/useSubscription.d.ts +1 -1
  99. package/dist/hooks/useSubscription.d.ts.map +1 -1
  100. package/dist/hooks/useTeamsConfig.js +1 -1
  101. package/dist/hooks/useTranslationPreload.js +5 -5
  102. package/dist/i18n.d.ts +1 -14
  103. package/dist/i18n.d.ts.map +1 -1
  104. package/dist/i18n.js +13 -54
  105. package/dist/lib/actions/entity.actions.js +8 -8
  106. package/dist/lib/actions/team.actions.js +7 -7
  107. package/dist/lib/api/auth/devtools-auth.d.ts +2 -2
  108. package/dist/lib/api/auth/devtools-auth.d.ts.map +1 -1
  109. package/dist/lib/api/auth/devtools-auth.js +3 -3
  110. package/dist/lib/api/entities.js +5 -5
  111. package/dist/lib/api/entity/audit-log.d.ts.map +1 -1
  112. package/dist/lib/api/entity/audit-log.js +12 -3
  113. package/dist/lib/api/entity/generic-handler.d.ts.map +1 -1
  114. package/dist/lib/api/entity/generic-handler.js +29 -43
  115. package/dist/lib/api/entity/resolver.d.ts +1 -3
  116. package/dist/lib/api/entity/resolver.d.ts.map +1 -1
  117. package/dist/lib/api/entity/resolver.js +0 -25
  118. package/dist/lib/api/helpers.d.ts +2 -2
  119. package/dist/lib/api/helpers.d.ts.map +1 -1
  120. package/dist/lib/api/helpers.js +1 -4
  121. package/dist/lib/api/keys.js +1 -1
  122. package/dist/lib/api/permission-middleware.js +1 -1
  123. package/dist/lib/api/rate-limit.d.ts.map +1 -1
  124. package/dist/lib/api/rate-limit.js +2 -0
  125. package/dist/lib/auth/readiness.d.ts +92 -0
  126. package/dist/lib/auth/readiness.d.ts.map +1 -0
  127. package/dist/lib/auth/readiness.js +192 -0
  128. package/dist/lib/auth/registration-guard-plugin.d.ts.map +1 -1
  129. package/dist/lib/auth/registration-guard-plugin.js +2 -2
  130. package/dist/lib/auth/request-session.d.ts +15 -0
  131. package/dist/lib/auth/request-session.d.ts.map +1 -0
  132. package/dist/lib/auth/request-session.js +22 -0
  133. package/dist/lib/auth/runtime-readiness.d.ts +49 -0
  134. package/dist/lib/auth/runtime-readiness.d.ts.map +1 -0
  135. package/dist/lib/auth/runtime-readiness.js +183 -0
  136. package/dist/lib/auth-client.d.ts +2 -2
  137. package/dist/lib/auth-email-callbacks.d.ts +3 -1
  138. package/dist/lib/auth-email-callbacks.d.ts.map +1 -1
  139. package/dist/lib/auth-email-callbacks.js +8 -2
  140. package/dist/lib/auth.d.ts.map +1 -1
  141. package/dist/lib/auth.js +20 -15
  142. package/dist/lib/billing/gateways/factory.d.ts +1 -1
  143. package/dist/lib/billing/gateways/stripe.js +1 -1
  144. package/dist/lib/billing/schema.d.ts +5 -5
  145. package/dist/lib/config/app.config.d.ts.map +1 -1
  146. package/dist/lib/config/app.config.js +3 -52
  147. package/dist/lib/config/config-client.d.ts +554 -0
  148. package/dist/lib/config/config-client.d.ts.map +1 -0
  149. package/dist/lib/config/config-client.js +68 -0
  150. package/dist/lib/config/config-sync.d.ts.map +1 -1
  151. package/dist/lib/config/config-sync.js +4 -28
  152. package/dist/lib/config/i18n-config-client.d.ts +9 -0
  153. package/dist/lib/config/i18n-config-client.d.ts.map +1 -0
  154. package/dist/lib/config/i18n-config-client.js +7 -0
  155. package/dist/lib/config/i18n.defaults.d.ts +7 -0
  156. package/dist/lib/config/i18n.defaults.d.ts.map +1 -0
  157. package/dist/lib/config/i18n.defaults.js +54 -0
  158. package/dist/lib/config/index.d.ts +2 -2
  159. package/dist/lib/config/index.d.ts.map +1 -1
  160. package/dist/lib/config/index.js +3 -2
  161. package/dist/lib/config/nextspark-types.d.ts +49 -20
  162. package/dist/lib/config/nextspark-types.d.ts.map +1 -1
  163. package/dist/lib/config/nextspark-types.js +174 -1
  164. package/dist/lib/config/public-config-client.d.ts +22 -0
  165. package/dist/lib/config/public-config-client.d.ts.map +1 -0
  166. package/dist/lib/config/public-config-client.js +25 -0
  167. package/dist/lib/config/types.d.ts +1 -1
  168. package/dist/lib/db.d.ts +1 -0
  169. package/dist/lib/db.d.ts.map +1 -1
  170. package/dist/lib/db.js +19 -9
  171. package/dist/lib/email/templates.d.ts +1 -1
  172. package/dist/lib/entities/client-config.d.ts +10 -0
  173. package/dist/lib/entities/client-config.d.ts.map +1 -0
  174. package/dist/lib/entities/client-config.js +44 -0
  175. package/dist/lib/entities/client-entity-meta.d.ts +41 -0
  176. package/dist/lib/entities/client-entity-meta.d.ts.map +1 -0
  177. package/dist/lib/entities/client-entity-meta.js +30 -0
  178. package/dist/lib/entities/hooks.js +1 -1
  179. package/dist/lib/entities/portable/media-ref.d.ts +21 -0
  180. package/dist/lib/entities/portable/media-ref.d.ts.map +1 -0
  181. package/dist/lib/entities/portable/media-ref.js +13 -0
  182. package/dist/lib/entities/portable/response-shape.d.ts +57 -0
  183. package/dist/lib/entities/portable/response-shape.d.ts.map +1 -0
  184. package/dist/lib/entities/portable/response-shape.js +50 -0
  185. package/dist/lib/entities/portable/schema-generator.d.ts +48 -0
  186. package/dist/lib/entities/portable/schema-generator.d.ts.map +1 -0
  187. package/dist/lib/entities/portable/schema-generator.js +758 -0
  188. package/dist/lib/entities/portable/system-fields.d.ts +10 -0
  189. package/dist/lib/entities/portable/system-fields.d.ts.map +1 -0
  190. package/dist/lib/entities/portable/system-fields.js +4 -0
  191. package/dist/lib/entities/portable/types.d.ts +81 -0
  192. package/dist/lib/entities/portable/types.d.ts.map +1 -0
  193. package/dist/lib/entities/queries.d.ts +2 -2
  194. package/dist/lib/entities/queries.d.ts.map +1 -1
  195. package/dist/lib/entities/queries.js +2 -2
  196. package/dist/lib/entities/registry.client.js +2 -2
  197. package/dist/lib/entities/registry.d.ts +1 -1
  198. package/dist/lib/entities/registry.js +2 -2
  199. package/dist/lib/entities/schema-generator.d.ts +6 -19
  200. package/dist/lib/entities/schema-generator.d.ts.map +1 -1
  201. package/dist/lib/entities/schema-generator.js +1 -764
  202. package/dist/lib/entities/system-fields.d.ts +3 -5
  203. package/dist/lib/entities/system-fields.d.ts.map +1 -1
  204. package/dist/lib/entities/system-fields.js +1 -1
  205. package/dist/lib/entities/types.d.ts +1 -1
  206. package/dist/lib/entities/types.d.ts.map +1 -1
  207. package/dist/lib/i18n/client-messages.d.ts +49 -0
  208. package/dist/lib/i18n/client-messages.d.ts.map +1 -0
  209. package/dist/lib/i18n/client-messages.js +80 -0
  210. package/dist/lib/locale-client.d.ts +1 -2
  211. package/dist/lib/locale-client.d.ts.map +1 -1
  212. package/dist/lib/locale-client.js +1 -1
  213. package/dist/lib/media/schemas.d.ts +1 -1
  214. package/dist/lib/middleware/index.d.ts +6 -19
  215. package/dist/lib/middleware/index.d.ts.map +1 -1
  216. package/dist/lib/middleware/index.js +11 -14
  217. package/dist/lib/plugins/env-loader.d.ts +1 -1
  218. package/dist/lib/plugins/env-loader.js +1 -1
  219. package/dist/lib/plugins/nav-items.d.ts +3 -0
  220. package/dist/lib/plugins/nav-items.d.ts.map +1 -0
  221. package/dist/lib/plugins/nav-items.js +16 -0
  222. package/dist/lib/scheduled-actions/initializer.d.ts +7 -7
  223. package/dist/lib/scheduled-actions/initializer.d.ts.map +1 -1
  224. package/dist/lib/scheduled-actions/initializer.js +6 -12
  225. package/dist/lib/selectors/auth-sel.d.ts +8 -0
  226. package/dist/lib/selectors/auth-sel.d.ts.map +1 -0
  227. package/dist/lib/selectors/auth-sel.js +6 -0
  228. package/dist/lib/selectors/core-selectors.d.ts +12 -0
  229. package/dist/lib/selectors/core-selectors.d.ts.map +1 -1
  230. package/dist/lib/selectors/domains/auth.selectors.d.ts +12 -0
  231. package/dist/lib/selectors/domains/auth.selectors.d.ts.map +1 -1
  232. package/dist/lib/selectors/domains/auth.selectors.js +18 -3
  233. package/dist/lib/selectors/selectors.d.ts +24 -0
  234. package/dist/lib/selectors/selectors.d.ts.map +1 -1
  235. package/dist/lib/services/index.d.ts +1 -5
  236. package/dist/lib/services/index.d.ts.map +1 -1
  237. package/dist/lib/services/index.js +1 -14
  238. package/dist/lib/services/plugin.service.d.ts +20 -3
  239. package/dist/lib/services/plugin.service.d.ts.map +1 -1
  240. package/dist/lib/services/plugin.service.js +31 -5
  241. package/dist/lib/services/theme.service.d.ts +8 -87
  242. package/dist/lib/services/theme.service.d.ts.map +1 -1
  243. package/dist/lib/services/theme.service.js +16 -128
  244. package/dist/lib/teams/dashboard-team.d.ts +1 -3
  245. package/dist/lib/teams/dashboard-team.d.ts.map +1 -1
  246. package/dist/lib/teams/dashboard-team.js +2 -4
  247. package/dist/lib/teams/schema.d.ts +1 -1
  248. package/dist/lib/theme/ThemeProvider.d.ts +2 -5
  249. package/dist/lib/theme/ThemeProvider.d.ts.map +1 -1
  250. package/dist/lib/theme/ThemeProvider.js +21 -66
  251. package/dist/lib/theme/forced-theme.d.ts +1 -1
  252. package/dist/lib/theme/get-default-theme-mode.d.ts.map +1 -1
  253. package/dist/lib/theme/get-default-theme-mode.js +2 -3
  254. package/dist/lib/theme/import-resolver.js +2 -2
  255. package/dist/lib/theme/override-resolver.js +9 -9
  256. package/dist/lib/theme/theme-styles.d.ts +12 -0
  257. package/dist/lib/theme/theme-styles.d.ts.map +1 -0
  258. package/dist/lib/theme/theme-styles.js +58 -0
  259. package/dist/lib/theme/types.d.ts +0 -2
  260. package/dist/lib/theme/types.d.ts.map +1 -1
  261. package/dist/lib/translations/i18n-integration.d.ts.map +1 -1
  262. package/dist/lib/translations/i18n-integration.js +11 -11
  263. package/dist/lib/translations/registry.d.ts +1 -1
  264. package/dist/lib/translations/registry.d.ts.map +1 -1
  265. package/dist/lib/translations/registry.js +10 -10
  266. package/dist/lib/utils/environment.server.d.ts +0 -1
  267. package/dist/lib/utils/environment.server.d.ts.map +1 -1
  268. package/dist/lib/utils/environment.server.js +5 -1
  269. package/dist/lib/utils/uuid.d.ts +2 -0
  270. package/dist/lib/utils/uuid.d.ts.map +1 -0
  271. package/dist/lib/utils/uuid.js +7 -0
  272. package/dist/lib/validation/invoices.d.ts +2 -2
  273. package/dist/messages/de/auth.json +11 -1
  274. package/dist/messages/de/index.d.ts +10 -0
  275. package/dist/messages/de/index.d.ts.map +1 -1
  276. package/dist/messages/en/auth.json +11 -1
  277. package/dist/messages/en/devtools.json +1 -1
  278. package/dist/messages/en/index.d.ts +10 -0
  279. package/dist/messages/en/index.d.ts.map +1 -1
  280. package/dist/messages/es/auth.json +11 -1
  281. package/dist/messages/es/index.d.ts +10 -0
  282. package/dist/messages/es/index.d.ts.map +1 -1
  283. package/dist/messages/fr/auth.json +11 -1
  284. package/dist/messages/fr/index.d.ts +10 -0
  285. package/dist/messages/fr/index.d.ts.map +1 -1
  286. package/dist/messages/it/auth.json +11 -1
  287. package/dist/messages/it/index.d.ts +10 -0
  288. package/dist/messages/it/index.d.ts.map +1 -1
  289. package/dist/messages/pt/auth.json +11 -1
  290. package/dist/messages/pt/index.d.ts +10 -0
  291. package/dist/messages/pt/index.d.ts.map +1 -1
  292. package/dist/migrations/028_api_audit_log_insert_policy.sql +18 -0
  293. package/dist/migrations/090_sample_data.sql +2 -2
  294. package/dist/migrations/README.md +7 -7
  295. package/dist/nextspark-registries.d.ts +83 -44
  296. package/dist/providers/PluginProvider.js +2 -2
  297. package/dist/providers/static-intl-provider.d.ts +6 -0
  298. package/dist/providers/static-intl-provider.d.ts.map +1 -1
  299. package/dist/providers/static-intl-provider.js +7 -2
  300. package/dist/providers/theme-provider.d.ts.map +1 -1
  301. package/dist/providers/theme-provider.js +7 -1
  302. package/dist/routes/(auth)/accept-invite/[token]/page.d.ts +3 -0
  303. package/dist/routes/(auth)/accept-invite/[token]/page.d.ts.map +1 -0
  304. package/dist/routes/(auth)/accept-invite/[token]/page.js +240 -0
  305. package/dist/routes/(auth)/auth-error/page.d.ts +5 -0
  306. package/dist/routes/(auth)/auth-error/page.d.ts.map +1 -0
  307. package/dist/routes/(auth)/auth-error/page.js +12 -0
  308. package/dist/routes/(auth)/forgot-password/page.d.ts +3 -0
  309. package/dist/routes/(auth)/forgot-password/page.d.ts.map +1 -0
  310. package/dist/routes/(auth)/forgot-password/page.js +203 -0
  311. package/dist/routes/(auth)/layout.cc.d.ts +7 -0
  312. package/dist/routes/(auth)/layout.cc.d.ts.map +1 -0
  313. package/dist/routes/(auth)/layout.cc.js +5 -0
  314. package/dist/routes/(auth)/layout.d.ts +7 -0
  315. package/dist/routes/(auth)/layout.d.ts.map +1 -0
  316. package/dist/routes/(auth)/layout.js +4 -0
  317. package/dist/routes/(auth)/login/page.cc.d.ts +9 -0
  318. package/dist/routes/(auth)/login/page.cc.d.ts.map +1 -0
  319. package/dist/routes/(auth)/login/page.cc.js +1 -0
  320. package/dist/routes/(auth)/login/page.d.ts +6 -0
  321. package/dist/routes/(auth)/login/page.d.ts.map +1 -0
  322. package/dist/routes/(auth)/login/page.js +12 -0
  323. package/dist/routes/(auth)/reset-password/page.d.ts +3 -0
  324. package/dist/routes/(auth)/reset-password/page.d.ts.map +1 -0
  325. package/dist/routes/(auth)/reset-password/page.js +153 -0
  326. package/dist/routes/(auth)/signup/page.cc.d.ts +9 -0
  327. package/dist/routes/(auth)/signup/page.cc.d.ts.map +1 -0
  328. package/dist/routes/(auth)/signup/page.cc.js +1 -0
  329. package/dist/routes/(auth)/signup/page.d.ts +6 -0
  330. package/dist/routes/(auth)/signup/page.d.ts.map +1 -0
  331. package/dist/routes/(auth)/signup/page.js +34 -0
  332. package/dist/routes/(auth)/verify-email/page.d.ts +3 -0
  333. package/dist/routes/(auth)/verify-email/page.d.ts.map +1 -0
  334. package/dist/routes/(auth)/verify-email/page.js +138 -0
  335. package/dist/routes/(public)/docs/[section]/[page]/page.cc.d.ts +12 -0
  336. package/dist/routes/(public)/docs/[section]/[page]/page.cc.d.ts.map +1 -0
  337. package/dist/routes/(public)/docs/[section]/[page]/page.cc.js +64 -0
  338. package/dist/routes/(public)/docs/[section]/[page]/page.d.ts +13 -0
  339. package/dist/routes/(public)/docs/[section]/[page]/page.d.ts.map +1 -0
  340. package/dist/routes/(public)/docs/[section]/[page]/page.js +64 -0
  341. package/dist/routes/(public)/docs/layout.d.ts +4 -0
  342. package/dist/routes/(public)/docs/layout.d.ts.map +1 -0
  343. package/dist/routes/(public)/docs/layout.js +15 -0
  344. package/dist/routes/(public)/docs/page.d.ts +4 -0
  345. package/dist/routes/(public)/docs/page.d.ts.map +1 -0
  346. package/dist/routes/(public)/docs/page.js +53 -0
  347. package/dist/routes/(public)/layout.cc.d.ts +7 -0
  348. package/dist/routes/(public)/layout.cc.d.ts.map +1 -0
  349. package/dist/routes/(public)/layout.cc.js +5 -0
  350. package/dist/routes/(public)/layout.d.ts +7 -0
  351. package/dist/routes/(public)/layout.d.ts.map +1 -0
  352. package/dist/routes/(public)/layout.js +4 -0
  353. package/dist/routes/(public)/page.d.ts +12 -0
  354. package/dist/routes/(public)/page.d.ts.map +1 -0
  355. package/dist/routes/(public)/page.js +5 -0
  356. package/dist/routes/403/page.d.ts +3 -0
  357. package/dist/routes/403/page.d.ts.map +1 -0
  358. package/dist/routes/403/page.js +51 -0
  359. package/dist/routes/_internal/area-access.d.ts +61 -0
  360. package/dist/routes/_internal/area-access.d.ts.map +1 -0
  361. package/dist/routes/_internal/area-access.js +84 -0
  362. package/dist/routes/_internal/auth-layout.cc.d.ts +8 -0
  363. package/dist/routes/_internal/auth-layout.cc.d.ts.map +1 -0
  364. package/dist/routes/_internal/auth-layout.cc.js +2 -0
  365. package/dist/routes/_internal/auth-layout.d.ts +19 -0
  366. package/dist/routes/_internal/auth-layout.d.ts.map +1 -0
  367. package/dist/routes/_internal/auth-layout.js +22 -0
  368. package/dist/routes/_internal/billing-webhooks.d.ts +19 -0
  369. package/dist/routes/_internal/billing-webhooks.d.ts.map +1 -0
  370. package/dist/routes/_internal/billing-webhooks.js +14 -0
  371. package/dist/routes/_internal/default-auth-layout.d.ts +8 -0
  372. package/dist/routes/_internal/default-auth-layout.d.ts.map +1 -0
  373. package/dist/routes/_internal/default-auth-layout.js +15 -0
  374. package/dist/routes/_internal/default-public-layout.d.ts +8 -0
  375. package/dist/routes/_internal/default-public-layout.d.ts.map +1 -0
  376. package/dist/routes/_internal/default-public-layout.js +13 -0
  377. package/dist/routes/_internal/devtools-layout.cc.d.ts +19 -0
  378. package/dist/routes/_internal/devtools-layout.cc.d.ts.map +1 -0
  379. package/dist/routes/_internal/devtools-layout.cc.js +5 -0
  380. package/dist/routes/_internal/devtools-layout.d.ts +36 -0
  381. package/dist/routes/_internal/devtools-layout.d.ts.map +1 -0
  382. package/dist/routes/_internal/devtools-layout.js +41 -0
  383. package/dist/routes/_internal/entity-create-route.d.ts +18 -0
  384. package/dist/routes/_internal/entity-create-route.d.ts.map +1 -0
  385. package/dist/routes/_internal/entity-create-route.js +11 -0
  386. package/dist/routes/_internal/entity-create-view.d.ts +8 -0
  387. package/dist/routes/_internal/entity-create-view.d.ts.map +1 -0
  388. package/dist/routes/_internal/entity-create-view.js +72 -0
  389. package/dist/routes/_internal/entity-dashboard.d.ts +9 -0
  390. package/dist/routes/_internal/entity-dashboard.d.ts.map +1 -0
  391. package/dist/routes/_internal/entity-dashboard.js +8 -0
  392. package/dist/routes/_internal/entity-detail-metadata.d.ts +7 -0
  393. package/dist/routes/_internal/entity-detail-metadata.d.ts.map +1 -0
  394. package/dist/routes/_internal/entity-detail-metadata.js +4 -0
  395. package/dist/routes/_internal/entity-detail-route.d.ts +24 -0
  396. package/dist/routes/_internal/entity-detail-route.d.ts.map +1 -0
  397. package/dist/routes/_internal/entity-detail-route.js +14 -0
  398. package/dist/routes/_internal/entity-edit-route.d.ts +23 -0
  399. package/dist/routes/_internal/entity-edit-route.d.ts.map +1 -0
  400. package/dist/routes/_internal/entity-edit-route.js +12 -0
  401. package/dist/routes/_internal/entity-edit-view.d.ts +9 -0
  402. package/dist/routes/_internal/entity-edit-view.d.ts.map +1 -0
  403. package/dist/routes/_internal/entity-edit-view.js +88 -0
  404. package/dist/routes/_internal/entity-error.d.ts +7 -0
  405. package/dist/routes/_internal/entity-error.d.ts.map +1 -0
  406. package/dist/routes/_internal/entity-error.js +41 -0
  407. package/dist/routes/_internal/entity-layout-route.d.ts +13 -0
  408. package/dist/routes/_internal/entity-layout-route.d.ts.map +1 -0
  409. package/dist/routes/_internal/entity-layout-route.js +7 -0
  410. package/dist/routes/_internal/entity-list-metadata.d.ts +7 -0
  411. package/dist/routes/_internal/entity-list-metadata.d.ts.map +1 -0
  412. package/dist/routes/_internal/entity-list-metadata.js +4 -0
  413. package/dist/routes/_internal/entity-list-route.d.ts +31 -0
  414. package/dist/routes/_internal/entity-list-route.d.ts.map +1 -0
  415. package/dist/routes/_internal/entity-list-route.js +11 -0
  416. package/dist/routes/_internal/entity-loading.d.ts +3 -0
  417. package/dist/routes/_internal/entity-loading.d.ts.map +1 -0
  418. package/dist/routes/_internal/entity-loading.js +48 -0
  419. package/dist/routes/_internal/entity-permission-layout.d.ts +10 -0
  420. package/dist/routes/_internal/entity-permission-layout.d.ts.map +1 -0
  421. package/dist/routes/_internal/entity-permission-layout.js +50 -0
  422. package/dist/routes/_internal/group-layouts.cc.d.ts +35 -0
  423. package/dist/routes/_internal/group-layouts.cc.d.ts.map +1 -0
  424. package/dist/routes/_internal/group-layouts.cc.js +37 -0
  425. package/dist/routes/_internal/polar-webhook.d.ts +27 -0
  426. package/dist/routes/_internal/polar-webhook.d.ts.map +1 -0
  427. package/dist/routes/_internal/polar-webhook.js +321 -0
  428. package/dist/routes/_internal/public-archive-route.d.ts +20 -0
  429. package/dist/routes/_internal/public-archive-route.d.ts.map +1 -0
  430. package/dist/routes/_internal/public-archive-route.js +29 -0
  431. package/dist/routes/_internal/public-entity-shared.d.ts +61 -0
  432. package/dist/routes/_internal/public-entity-shared.d.ts.map +1 -0
  433. package/dist/routes/_internal/public-entity-shared.js +57 -0
  434. package/dist/routes/_internal/public-item-route.cc.d.ts +5 -0
  435. package/dist/routes/_internal/public-item-route.cc.d.ts.map +1 -0
  436. package/dist/routes/_internal/public-item-route.cc.js +32 -0
  437. package/dist/routes/_internal/public-item-route.d.ts +49 -0
  438. package/dist/routes/_internal/public-item-route.d.ts.map +1 -0
  439. package/dist/routes/_internal/public-item-route.js +60 -0
  440. package/dist/routes/_internal/public-layout.cc.d.ts +8 -0
  441. package/dist/routes/_internal/public-layout.cc.d.ts.map +1 -0
  442. package/dist/routes/_internal/public-layout.cc.js +2 -0
  443. package/dist/routes/_internal/public-layout.d.ts +19 -0
  444. package/dist/routes/_internal/public-layout.d.ts.map +1 -0
  445. package/dist/routes/_internal/public-layout.js +18 -0
  446. package/dist/routes/_internal/root-layout.d.ts +13 -0
  447. package/dist/routes/_internal/root-layout.d.ts.map +1 -0
  448. package/dist/routes/_internal/root-layout.js +7 -0
  449. package/dist/routes/_internal/root-layout.ppr.d.ts +11 -0
  450. package/dist/routes/_internal/root-layout.ppr.d.ts.map +1 -0
  451. package/dist/routes/_internal/root-layout.ppr.js +7 -0
  452. package/dist/routes/_internal/superadmin-layout.cc.d.ts +19 -0
  453. package/dist/routes/_internal/superadmin-layout.cc.d.ts.map +1 -0
  454. package/dist/routes/_internal/superadmin-layout.cc.js +5 -0
  455. package/dist/routes/_internal/superadmin-layout.d.ts +35 -0
  456. package/dist/routes/_internal/superadmin-layout.d.ts.map +1 -0
  457. package/dist/routes/_internal/superadmin-layout.js +53 -0
  458. package/dist/routes/api/auth/[...all]/route.d.ts +9 -0
  459. package/dist/routes/api/auth/[...all]/route.d.ts.map +1 -0
  460. package/dist/routes/api/auth/[...all]/route.js +124 -0
  461. package/dist/routes/api/cron/billing/lifecycle/route.d.ts +22 -0
  462. package/dist/routes/api/cron/billing/lifecycle/route.d.ts.map +1 -0
  463. package/dist/routes/api/cron/billing/lifecycle/route.js +60 -0
  464. package/dist/routes/api/csp-report/route.d.ts +4 -0
  465. package/dist/routes/api/csp-report/route.d.ts.map +1 -0
  466. package/dist/routes/api/csp-report/route.js +111 -0
  467. package/dist/routes/api/devtools/config/entities/route.d.ts +9 -0
  468. package/dist/routes/api/devtools/config/entities/route.d.ts.map +1 -0
  469. package/dist/routes/api/devtools/config/entities/route.js +63 -0
  470. package/dist/routes/api/devtools/config/theme/route.d.ts +9 -0
  471. package/dist/routes/api/devtools/config/theme/route.d.ts.map +1 -0
  472. package/dist/routes/api/devtools/config/theme/route.js +48 -0
  473. package/dist/routes/api/devtools/tests/[...path]/route.d.ts +15 -0
  474. package/dist/routes/api/devtools/tests/[...path]/route.d.ts.map +1 -0
  475. package/dist/routes/api/devtools/tests/[...path]/route.js +93 -0
  476. package/dist/routes/api/devtools/tests/route.d.ts +9 -0
  477. package/dist/routes/api/devtools/tests/route.d.ts.map +1 -0
  478. package/dist/routes/api/devtools/tests/route.js +89 -0
  479. package/dist/routes/api/health/route.d.ts +3 -0
  480. package/dist/routes/api/health/route.d.ts.map +1 -0
  481. package/dist/routes/api/health/route.js +39 -0
  482. package/dist/routes/api/internal/user-metadata/route.d.ts +3 -0
  483. package/dist/routes/api/internal/user-metadata/route.d.ts.map +1 -0
  484. package/dist/routes/api/internal/user-metadata/route.js +33 -0
  485. package/dist/routes/api/mcp/route.d.ts +27 -0
  486. package/dist/routes/api/mcp/route.d.ts.map +1 -0
  487. package/dist/routes/api/mcp/route.js +108 -0
  488. package/dist/routes/api/superadmin/subscriptions/route.d.ts +9 -0
  489. package/dist/routes/api/superadmin/subscriptions/route.d.ts.map +1 -0
  490. package/dist/routes/api/superadmin/subscriptions/route.js +235 -0
  491. package/dist/routes/api/superadmin/teams/[teamId]/route.d.ts +13 -0
  492. package/dist/routes/api/superadmin/teams/[teamId]/route.d.ts.map +1 -0
  493. package/dist/routes/api/superadmin/teams/[teamId]/route.js +204 -0
  494. package/dist/routes/api/superadmin/teams/route.d.ts +20 -0
  495. package/dist/routes/api/superadmin/teams/route.d.ts.map +1 -0
  496. package/dist/routes/api/superadmin/teams/route.js +131 -0
  497. package/dist/routes/api/superadmin/users/[userId]/route.d.ts +45 -0
  498. package/dist/routes/api/superadmin/users/[userId]/route.d.ts.map +1 -0
  499. package/dist/routes/api/superadmin/users/[userId]/route.js +362 -0
  500. package/dist/routes/api/superadmin/users/route.d.ts +37 -0
  501. package/dist/routes/api/superadmin/users/route.d.ts.map +1 -0
  502. package/dist/routes/api/superadmin/users/route.js +239 -0
  503. package/dist/routes/api/user/delete-account/route.d.ts +3 -0
  504. package/dist/routes/api/user/delete-account/route.d.ts.map +1 -0
  505. package/dist/routes/api/user/delete-account/route.js +44 -0
  506. package/dist/routes/api/user/plan-flags/route.d.ts +23 -0
  507. package/dist/routes/api/user/plan-flags/route.d.ts.map +1 -0
  508. package/dist/routes/api/user/plan-flags/route.js +201 -0
  509. package/dist/routes/api/user/profile/route.d.ts +4 -0
  510. package/dist/routes/api/user/profile/route.d.ts.map +1 -0
  511. package/dist/routes/api/user/profile/route.js +96 -0
  512. package/dist/routes/api/v1/[entity]/[id]/child/[childType]/[childId]/route.d.ts +20 -0
  513. package/dist/routes/api/v1/[entity]/[id]/child/[childType]/[childId]/route.d.ts.map +1 -0
  514. package/dist/routes/api/v1/[entity]/[id]/child/[childType]/[childId]/route.js +144 -0
  515. package/dist/routes/api/v1/[entity]/[id]/child/[childType]/route.d.ts +19 -0
  516. package/dist/routes/api/v1/[entity]/[id]/child/[childType]/route.d.ts.map +1 -0
  517. package/dist/routes/api/v1/[entity]/[id]/child/[childType]/route.js +249 -0
  518. package/dist/routes/api/v1/[entity]/[id]/route.d.ts +35 -0
  519. package/dist/routes/api/v1/[entity]/[id]/route.d.ts.map +1 -0
  520. package/dist/routes/api/v1/[entity]/[id]/route.js +14 -0
  521. package/dist/routes/api/v1/[entity]/route.d.ts +17 -0
  522. package/dist/routes/api/v1/[entity]/route.d.ts.map +1 -0
  523. package/dist/routes/api/v1/[entity]/route.js +12 -0
  524. package/dist/routes/api/v1/api-keys/[id]/route.d.ts +30 -0
  525. package/dist/routes/api/v1/api-keys/[id]/route.d.ts.map +1 -0
  526. package/dist/routes/api/v1/api-keys/[id]/route.js +189 -0
  527. package/dist/routes/api/v1/api-keys/route.d.ts +5 -0
  528. package/dist/routes/api/v1/api-keys/route.d.ts.map +1 -0
  529. package/dist/routes/api/v1/api-keys/route.js +177 -0
  530. package/dist/routes/api/v1/auth/signup-with-invite/route.d.ts +4 -0
  531. package/dist/routes/api/v1/auth/signup-with-invite/route.d.ts.map +1 -0
  532. package/dist/routes/api/v1/auth/signup-with-invite/route.js +187 -0
  533. package/dist/routes/api/v1/billing/cancel/route.d.ts +19 -0
  534. package/dist/routes/api/v1/billing/cancel/route.d.ts.map +1 -0
  535. package/dist/routes/api/v1/billing/cancel/route.js +153 -0
  536. package/dist/routes/api/v1/billing/change-plan/route.d.ts +19 -0
  537. package/dist/routes/api/v1/billing/change-plan/route.d.ts.map +1 -0
  538. package/dist/routes/api/v1/billing/change-plan/route.js +63 -0
  539. package/dist/routes/api/v1/billing/check-action/route.d.ts +13 -0
  540. package/dist/routes/api/v1/billing/check-action/route.d.ts.map +1 -0
  541. package/dist/routes/api/v1/billing/check-action/route.js +55 -0
  542. package/dist/routes/api/v1/billing/checkout/route.d.ts +11 -0
  543. package/dist/routes/api/v1/billing/checkout/route.d.ts.map +1 -0
  544. package/dist/routes/api/v1/billing/checkout/route.js +114 -0
  545. package/dist/routes/api/v1/billing/plans/route.d.ts +10 -0
  546. package/dist/routes/api/v1/billing/plans/route.d.ts.map +1 -0
  547. package/dist/routes/api/v1/billing/plans/route.js +61 -0
  548. package/dist/routes/api/v1/billing/portal/route.d.ts +11 -0
  549. package/dist/routes/api/v1/billing/portal/route.d.ts.map +1 -0
  550. package/dist/routes/api/v1/billing/portal/route.js +66 -0
  551. package/dist/routes/api/v1/billing/webhooks/polar/route.d.ts +17 -0
  552. package/dist/routes/api/v1/billing/webhooks/polar/route.d.ts.map +1 -0
  553. package/dist/routes/api/v1/billing/webhooks/polar/route.js +3 -0
  554. package/dist/routes/api/v1/billing/webhooks/stripe/route.d.ts +17 -0
  555. package/dist/routes/api/v1/billing/webhooks/stripe/route.d.ts.map +1 -0
  556. package/dist/routes/api/v1/billing/webhooks/stripe/route.js +8 -0
  557. package/dist/routes/api/v1/blocks/[slug]/route.d.ts +7 -0
  558. package/dist/routes/api/v1/blocks/[slug]/route.d.ts.map +1 -0
  559. package/dist/routes/api/v1/blocks/[slug]/route.js +25 -0
  560. package/dist/routes/api/v1/blocks/docs.md +173 -0
  561. package/dist/routes/api/v1/blocks/route.d.ts +3 -0
  562. package/dist/routes/api/v1/blocks/route.d.ts.map +1 -0
  563. package/dist/routes/api/v1/blocks/route.js +44 -0
  564. package/dist/routes/api/v1/blocks/validate/route.d.ts +3 -0
  565. package/dist/routes/api/v1/blocks/validate/route.d.ts.map +1 -0
  566. package/dist/routes/api/v1/blocks/validate/route.js +38 -0
  567. package/dist/routes/api/v1/cron/process/route.d.ts +20 -0
  568. package/dist/routes/api/v1/cron/process/route.d.ts.map +1 -0
  569. package/dist/routes/api/v1/cron/process/route.js +73 -0
  570. package/dist/routes/api/v1/devtools/blocks/route.d.ts +12 -0
  571. package/dist/routes/api/v1/devtools/blocks/route.d.ts.map +1 -0
  572. package/dist/routes/api/v1/devtools/blocks/route.js +60 -0
  573. package/dist/routes/api/v1/devtools/docs/route.d.ts +14 -0
  574. package/dist/routes/api/v1/devtools/docs/route.d.ts.map +1 -0
  575. package/dist/routes/api/v1/devtools/docs/route.js +108 -0
  576. package/dist/routes/api/v1/devtools/docs.md +204 -0
  577. package/dist/routes/api/v1/devtools/features/route.d.ts +12 -0
  578. package/dist/routes/api/v1/devtools/features/route.d.ts.map +1 -0
  579. package/dist/routes/api/v1/devtools/features/route.js +45 -0
  580. package/dist/routes/api/v1/devtools/flows/route.d.ts +12 -0
  581. package/dist/routes/api/v1/devtools/flows/route.d.ts.map +1 -0
  582. package/dist/routes/api/v1/devtools/flows/route.js +45 -0
  583. package/dist/routes/api/v1/devtools/presets.ts +113 -0
  584. package/dist/routes/api/v1/devtools/scheduled-actions/route.d.ts +24 -0
  585. package/dist/routes/api/v1/devtools/scheduled-actions/route.d.ts.map +1 -0
  586. package/dist/routes/api/v1/devtools/scheduled-actions/route.js +180 -0
  587. package/dist/routes/api/v1/devtools/scheduled-actions/run/route.d.ts +12 -0
  588. package/dist/routes/api/v1/devtools/scheduled-actions/run/route.d.ts.map +1 -0
  589. package/dist/routes/api/v1/devtools/scheduled-actions/run/route.js +82 -0
  590. package/dist/routes/api/v1/devtools/testing/route.d.ts +12 -0
  591. package/dist/routes/api/v1/devtools/testing/route.d.ts.map +1 -0
  592. package/dist/routes/api/v1/devtools/testing/route.js +64 -0
  593. package/dist/routes/api/v1/media/[id]/route.d.ts +47 -0
  594. package/dist/routes/api/v1/media/[id]/route.d.ts.map +1 -0
  595. package/dist/routes/api/v1/media/[id]/route.js +86 -0
  596. package/dist/routes/api/v1/media/[id]/tags/route.d.ts +45 -0
  597. package/dist/routes/api/v1/media/[id]/tags/route.d.ts.map +1 -0
  598. package/dist/routes/api/v1/media/[id]/tags/route.js +126 -0
  599. package/dist/routes/api/v1/media/check-duplicates/route.d.ts +12 -0
  600. package/dist/routes/api/v1/media/check-duplicates/route.d.ts.map +1 -0
  601. package/dist/routes/api/v1/media/check-duplicates/route.js +45 -0
  602. package/dist/routes/api/v1/media/route.d.ts +20 -0
  603. package/dist/routes/api/v1/media/route.d.ts.map +1 -0
  604. package/dist/routes/api/v1/media/route.js +33 -0
  605. package/dist/routes/api/v1/media/upload/route.d.ts +24 -0
  606. package/dist/routes/api/v1/media/upload/route.d.ts.map +1 -0
  607. package/dist/routes/api/v1/media/upload/route.js +196 -0
  608. package/dist/routes/api/v1/media-tags/route.d.ts +19 -0
  609. package/dist/routes/api/v1/media-tags/route.d.ts.map +1 -0
  610. package/dist/routes/api/v1/media-tags/route.js +49 -0
  611. package/dist/routes/api/v1/patterns/[id]/usages/route.d.ts +23 -0
  612. package/dist/routes/api/v1/patterns/[id]/usages/route.d.ts.map +1 -0
  613. package/dist/routes/api/v1/patterns/[id]/usages/route.js +69 -0
  614. package/dist/routes/api/v1/post-categories/[id]/route.d.ts +17 -0
  615. package/dist/routes/api/v1/post-categories/[id]/route.d.ts.map +1 -0
  616. package/dist/routes/api/v1/post-categories/[id]/route.js +203 -0
  617. package/dist/routes/api/v1/post-categories/route.d.ts +4 -0
  618. package/dist/routes/api/v1/post-categories/route.d.ts.map +1 -0
  619. package/dist/routes/api/v1/post-categories/route.js +94 -0
  620. package/dist/routes/api/v1/team-invitations/[token]/accept/route.d.ts +8 -0
  621. package/dist/routes/api/v1/team-invitations/[token]/accept/route.d.ts.map +1 -0
  622. package/dist/routes/api/v1/team-invitations/[token]/accept/route.js +130 -0
  623. package/dist/routes/api/v1/team-invitations/[token]/decline/route.d.ts +8 -0
  624. package/dist/routes/api/v1/team-invitations/[token]/decline/route.d.ts.map +1 -0
  625. package/dist/routes/api/v1/team-invitations/[token]/decline/route.js +90 -0
  626. package/dist/routes/api/v1/team-invitations/[token]/route.d.ts +8 -0
  627. package/dist/routes/api/v1/team-invitations/[token]/route.d.ts.map +1 -0
  628. package/dist/routes/api/v1/team-invitations/[token]/route.js +66 -0
  629. package/dist/routes/api/v1/team-invitations/route.d.ts +4 -0
  630. package/dist/routes/api/v1/team-invitations/route.d.ts.map +1 -0
  631. package/dist/routes/api/v1/team-invitations/route.js +82 -0
  632. package/dist/routes/api/v1/teams/[teamId]/invitations/route.d.ts +13 -0
  633. package/dist/routes/api/v1/teams/[teamId]/invitations/route.d.ts.map +1 -0
  634. package/dist/routes/api/v1/teams/[teamId]/invitations/route.js +126 -0
  635. package/dist/routes/api/v1/teams/[teamId]/invoices/[invoiceNumber]/route.d.ts +9 -0
  636. package/dist/routes/api/v1/teams/[teamId]/invoices/[invoiceNumber]/route.d.ts.map +1 -0
  637. package/dist/routes/api/v1/teams/[teamId]/invoices/[invoiceNumber]/route.js +80 -0
  638. package/dist/routes/api/v1/teams/[teamId]/invoices/route.d.ts +8 -0
  639. package/dist/routes/api/v1/teams/[teamId]/invoices/route.d.ts.map +1 -0
  640. package/dist/routes/api/v1/teams/[teamId]/invoices/route.js +98 -0
  641. package/dist/routes/api/v1/teams/[teamId]/members/[memberId]/route.d.ts +15 -0
  642. package/dist/routes/api/v1/teams/[teamId]/members/[memberId]/route.d.ts.map +1 -0
  643. package/dist/routes/api/v1/teams/[teamId]/members/[memberId]/route.js +188 -0
  644. package/dist/routes/api/v1/teams/[teamId]/members/route.d.ts +13 -0
  645. package/dist/routes/api/v1/teams/[teamId]/members/route.d.ts.map +1 -0
  646. package/dist/routes/api/v1/teams/[teamId]/members/route.js +266 -0
  647. package/dist/routes/api/v1/teams/[teamId]/route.d.ts +18 -0
  648. package/dist/routes/api/v1/teams/[teamId]/route.d.ts.map +1 -0
  649. package/dist/routes/api/v1/teams/[teamId]/route.js +222 -0
  650. package/dist/routes/api/v1/teams/[teamId]/subscription/route.d.ts +14 -0
  651. package/dist/routes/api/v1/teams/[teamId]/subscription/route.d.ts.map +1 -0
  652. package/dist/routes/api/v1/teams/[teamId]/subscription/route.js +30 -0
  653. package/dist/routes/api/v1/teams/[teamId]/usage/[limitSlug]/route.d.ts +17 -0
  654. package/dist/routes/api/v1/teams/[teamId]/usage/[limitSlug]/route.d.ts.map +1 -0
  655. package/dist/routes/api/v1/teams/[teamId]/usage/[limitSlug]/route.js +67 -0
  656. package/dist/routes/api/v1/teams/route.d.ts +5 -0
  657. package/dist/routes/api/v1/teams/route.d.ts.map +1 -0
  658. package/dist/routes/api/v1/teams/route.js +231 -0
  659. package/dist/routes/api/v1/teams/switch/route.d.ts +4 -0
  660. package/dist/routes/api/v1/teams/switch/route.d.ts.map +1 -0
  661. package/dist/routes/api/v1/teams/switch/route.js +80 -0
  662. package/dist/routes/api/v1/users/[id]/meta/[key]/route.d.ts +89 -0
  663. package/dist/routes/api/v1/users/[id]/meta/[key]/route.d.ts.map +1 -0
  664. package/dist/routes/api/v1/users/[id]/meta/[key]/route.js +180 -0
  665. package/dist/routes/api/v1/users/[id]/route.d.ts +18 -0
  666. package/dist/routes/api/v1/users/[id]/route.d.ts.map +1 -0
  667. package/dist/routes/api/v1/users/[id]/route.js +189 -0
  668. package/dist/routes/api/v1/users/route.d.ts +5 -0
  669. package/dist/routes/api/v1/users/route.d.ts.map +1 -0
  670. package/dist/routes/api/v1/users/route.js +145 -0
  671. package/dist/routes/dashboard/(main)/layout.d.ts +5 -0
  672. package/dist/routes/dashboard/(main)/layout.d.ts.map +1 -0
  673. package/dist/routes/dashboard/(main)/layout.js +50 -0
  674. package/dist/routes/dashboard/(main)/loading.d.ts +3 -0
  675. package/dist/routes/dashboard/(main)/loading.d.ts.map +1 -0
  676. package/dist/routes/dashboard/(main)/loading.js +6 -0
  677. package/dist/routes/dashboard/(main)/media/page.d.ts +3 -0
  678. package/dist/routes/dashboard/(main)/media/page.d.ts.map +1 -0
  679. package/dist/routes/dashboard/(main)/media/page.js +548 -0
  680. package/dist/routes/dashboard/(main)/page.d.ts +3 -0
  681. package/dist/routes/dashboard/(main)/page.d.ts.map +1 -0
  682. package/dist/routes/dashboard/(main)/page.js +168 -0
  683. package/dist/routes/dashboard/(main)/patterns/[id]/edit/page.d.ts +8 -0
  684. package/dist/routes/dashboard/(main)/patterns/[id]/edit/page.d.ts.map +1 -0
  685. package/dist/routes/dashboard/(main)/patterns/[id]/edit/page.js +85 -0
  686. package/dist/routes/dashboard/(main)/patterns/[id]/page.d.ts +13 -0
  687. package/dist/routes/dashboard/(main)/patterns/[id]/page.d.ts.map +1 -0
  688. package/dist/routes/dashboard/(main)/patterns/[id]/page.js +6 -0
  689. package/dist/routes/dashboard/(main)/patterns/[id]/reports/page.d.ts +9 -0
  690. package/dist/routes/dashboard/(main)/patterns/[id]/reports/page.d.ts.map +1 -0
  691. package/dist/routes/dashboard/(main)/patterns/[id]/reports/page.js +128 -0
  692. package/dist/routes/dashboard/(main)/patterns/create/page.d.ts +8 -0
  693. package/dist/routes/dashboard/(main)/patterns/create/page.d.ts.map +1 -0
  694. package/dist/routes/dashboard/(main)/patterns/create/page.js +64 -0
  695. package/dist/routes/dashboard/(main)/patterns/page.d.ts +9 -0
  696. package/dist/routes/dashboard/(main)/patterns/page.d.ts.map +1 -0
  697. package/dist/routes/dashboard/(main)/patterns/page.js +334 -0
  698. package/dist/routes/dashboard/features/analytics/page.d.ts +3 -0
  699. package/dist/routes/dashboard/features/analytics/page.d.ts.map +1 -0
  700. package/dist/routes/dashboard/features/analytics/page.js +32 -0
  701. package/dist/routes/dashboard/features/automation/page.d.ts +3 -0
  702. package/dist/routes/dashboard/features/automation/page.d.ts.map +1 -0
  703. package/dist/routes/dashboard/features/automation/page.js +32 -0
  704. package/dist/routes/dashboard/features/layout.d.ts +7 -0
  705. package/dist/routes/dashboard/features/layout.d.ts.map +1 -0
  706. package/dist/routes/dashboard/features/layout.js +5 -0
  707. package/dist/routes/dashboard/features/loading.d.ts +3 -0
  708. package/dist/routes/dashboard/features/loading.d.ts.map +1 -0
  709. package/dist/routes/dashboard/features/loading.js +6 -0
  710. package/dist/routes/dashboard/features/webhooks/page.d.ts +3 -0
  711. package/dist/routes/dashboard/features/webhooks/page.d.ts.map +1 -0
  712. package/dist/routes/dashboard/features/webhooks/page.js +32 -0
  713. package/dist/routes/dashboard/layout.cc.d.ts +6 -0
  714. package/dist/routes/dashboard/layout.cc.d.ts.map +1 -0
  715. package/dist/routes/dashboard/layout.cc.js +3 -0
  716. package/dist/routes/dashboard/layout.d.ts +9 -0
  717. package/dist/routes/dashboard/layout.d.ts.map +1 -0
  718. package/dist/routes/dashboard/layout.js +15 -0
  719. package/dist/routes/dashboard/permission-denied/page.d.ts +9 -0
  720. package/dist/routes/dashboard/permission-denied/page.d.ts.map +1 -0
  721. package/dist/routes/dashboard/permission-denied/page.js +17 -0
  722. package/dist/routes/dashboard/settings/api-keys/loading.d.ts +3 -0
  723. package/dist/routes/dashboard/settings/api-keys/loading.d.ts.map +1 -0
  724. package/dist/routes/dashboard/settings/api-keys/loading.js +6 -0
  725. package/dist/routes/dashboard/settings/api-keys/page.d.ts +3 -0
  726. package/dist/routes/dashboard/settings/api-keys/page.d.ts.map +1 -0
  727. package/dist/routes/dashboard/settings/api-keys/page.js +391 -0
  728. package/dist/routes/dashboard/settings/billing/loading.d.ts +3 -0
  729. package/dist/routes/dashboard/settings/billing/loading.d.ts.map +1 -0
  730. package/dist/routes/dashboard/settings/billing/loading.js +6 -0
  731. package/dist/routes/dashboard/settings/billing/page.d.ts +3 -0
  732. package/dist/routes/dashboard/settings/billing/page.d.ts.map +1 -0
  733. package/dist/routes/dashboard/settings/billing/page.js +240 -0
  734. package/dist/routes/dashboard/settings/invoices/[invoiceNumber]/page.d.ts +8 -0
  735. package/dist/routes/dashboard/settings/invoices/[invoiceNumber]/page.d.ts.map +1 -0
  736. package/dist/routes/dashboard/settings/invoices/[invoiceNumber]/page.js +151 -0
  737. package/dist/routes/dashboard/settings/invoices/loading.d.ts +3 -0
  738. package/dist/routes/dashboard/settings/invoices/loading.d.ts.map +1 -0
  739. package/dist/routes/dashboard/settings/invoices/loading.js +6 -0
  740. package/dist/routes/dashboard/settings/invoices/page.d.ts +3 -0
  741. package/dist/routes/dashboard/settings/invoices/page.d.ts.map +1 -0
  742. package/dist/routes/dashboard/settings/invoices/page.js +65 -0
  743. package/dist/routes/dashboard/settings/layout.d.ts +5 -0
  744. package/dist/routes/dashboard/settings/layout.d.ts.map +1 -0
  745. package/dist/routes/dashboard/settings/layout.js +142 -0
  746. package/dist/routes/dashboard/settings/loading.d.ts +3 -0
  747. package/dist/routes/dashboard/settings/loading.d.ts.map +1 -0
  748. package/dist/routes/dashboard/settings/loading.js +6 -0
  749. package/dist/routes/dashboard/settings/notifications/loading.d.ts +3 -0
  750. package/dist/routes/dashboard/settings/notifications/loading.d.ts.map +1 -0
  751. package/dist/routes/dashboard/settings/notifications/loading.js +6 -0
  752. package/dist/routes/dashboard/settings/notifications/page.d.ts +3 -0
  753. package/dist/routes/dashboard/settings/notifications/page.d.ts.map +1 -0
  754. package/dist/routes/dashboard/settings/notifications/page.js +399 -0
  755. package/dist/routes/dashboard/settings/page.d.ts +3 -0
  756. package/dist/routes/dashboard/settings/page.d.ts.map +1 -0
  757. package/dist/routes/dashboard/settings/page.js +82 -0
  758. package/dist/routes/dashboard/settings/password/loading.d.ts +3 -0
  759. package/dist/routes/dashboard/settings/password/loading.d.ts.map +1 -0
  760. package/dist/routes/dashboard/settings/password/loading.js +6 -0
  761. package/dist/routes/dashboard/settings/password/page.d.ts +3 -0
  762. package/dist/routes/dashboard/settings/password/page.d.ts.map +1 -0
  763. package/dist/routes/dashboard/settings/password/page.js +302 -0
  764. package/dist/routes/dashboard/settings/plans/loading.d.ts +3 -0
  765. package/dist/routes/dashboard/settings/plans/loading.d.ts.map +1 -0
  766. package/dist/routes/dashboard/settings/plans/loading.js +6 -0
  767. package/dist/routes/dashboard/settings/plans/page.d.ts +9 -0
  768. package/dist/routes/dashboard/settings/plans/page.d.ts.map +1 -0
  769. package/dist/routes/dashboard/settings/plans/page.js +43 -0
  770. package/dist/routes/dashboard/settings/profile/loading.d.ts +3 -0
  771. package/dist/routes/dashboard/settings/profile/loading.d.ts.map +1 -0
  772. package/dist/routes/dashboard/settings/profile/loading.js +6 -0
  773. package/dist/routes/dashboard/settings/profile/page.d.ts +3 -0
  774. package/dist/routes/dashboard/settings/profile/page.d.ts.map +1 -0
  775. package/dist/routes/dashboard/settings/profile/page.js +615 -0
  776. package/dist/routes/dashboard/settings/security/loading.d.ts +3 -0
  777. package/dist/routes/dashboard/settings/security/loading.d.ts.map +1 -0
  778. package/dist/routes/dashboard/settings/security/loading.js +6 -0
  779. package/dist/routes/dashboard/settings/security/page.d.ts +3 -0
  780. package/dist/routes/dashboard/settings/security/page.d.ts.map +1 -0
  781. package/dist/routes/dashboard/settings/security/page.js +400 -0
  782. package/dist/routes/dashboard/settings/teams/loading.d.ts +3 -0
  783. package/dist/routes/dashboard/settings/teams/loading.d.ts.map +1 -0
  784. package/dist/routes/dashboard/settings/teams/loading.js +6 -0
  785. package/dist/routes/dashboard/settings/teams/page.d.ts +3 -0
  786. package/dist/routes/dashboard/settings/teams/page.d.ts.map +1 -0
  787. package/dist/routes/dashboard/settings/teams/page.js +205 -0
  788. package/dist/routes/dashboard/settings/teams/permissions/page.d.ts +9 -0
  789. package/dist/routes/dashboard/settings/teams/permissions/page.d.ts.map +1 -0
  790. package/dist/routes/dashboard/settings/teams/permissions/page.js +50 -0
  791. package/dist/routes/devtools/api/[[...endpoint]]/page.d.ts +19 -0
  792. package/dist/routes/devtools/api/[[...endpoint]]/page.d.ts.map +1 -0
  793. package/dist/routes/devtools/api/[[...endpoint]]/page.js +14 -0
  794. package/dist/routes/devtools/api/layout.d.ts +20 -0
  795. package/dist/routes/devtools/api/layout.d.ts.map +1 -0
  796. package/dist/routes/devtools/api/layout.js +6 -0
  797. package/dist/routes/devtools/blocks/[slug]/page.d.ts +20 -0
  798. package/dist/routes/devtools/blocks/[slug]/page.d.ts.map +1 -0
  799. package/dist/routes/devtools/blocks/[slug]/page.js +16 -0
  800. package/dist/routes/devtools/blocks/page.d.ts +2 -0
  801. package/dist/routes/devtools/blocks/page.d.ts.map +1 -0
  802. package/dist/routes/devtools/blocks/page.js +21 -0
  803. package/dist/routes/devtools/config/page.d.ts +2 -0
  804. package/dist/routes/devtools/config/page.d.ts.map +1 -0
  805. package/dist/routes/devtools/config/page.js +21 -0
  806. package/dist/routes/devtools/features/page.d.ts +2 -0
  807. package/dist/routes/devtools/features/page.d.ts.map +1 -0
  808. package/dist/routes/devtools/features/page.js +21 -0
  809. package/dist/routes/devtools/flows/page.d.ts +2 -0
  810. package/dist/routes/devtools/flows/page.d.ts.map +1 -0
  811. package/dist/routes/devtools/flows/page.js +21 -0
  812. package/dist/routes/devtools/layout.cc.d.ts +7 -0
  813. package/dist/routes/devtools/layout.cc.d.ts.map +1 -0
  814. package/dist/routes/devtools/layout.cc.js +4 -0
  815. package/dist/routes/devtools/layout.d.ts +5 -0
  816. package/dist/routes/devtools/layout.d.ts.map +1 -0
  817. package/dist/routes/devtools/layout.js +3 -0
  818. package/dist/routes/devtools/page.d.ts +2 -0
  819. package/dist/routes/devtools/page.d.ts.map +1 -0
  820. package/dist/routes/devtools/page.js +92 -0
  821. package/dist/routes/devtools/plugins/[plugin]/page.d.ts +8 -0
  822. package/dist/routes/devtools/plugins/[plugin]/page.d.ts.map +1 -0
  823. package/dist/routes/devtools/plugins/[plugin]/page.js +11 -0
  824. package/dist/routes/devtools/scheduled-actions/page.d.ts +15 -0
  825. package/dist/routes/devtools/scheduled-actions/page.d.ts.map +1 -0
  826. package/dist/routes/devtools/scheduled-actions/page.js +121 -0
  827. package/dist/routes/devtools/style/page.d.ts +8 -0
  828. package/dist/routes/devtools/style/page.d.ts.map +1 -0
  829. package/dist/routes/devtools/style/page.js +241 -0
  830. package/dist/routes/devtools/tags/page.d.ts +2 -0
  831. package/dist/routes/devtools/tags/page.d.ts.map +1 -0
  832. package/dist/routes/devtools/tags/page.js +21 -0
  833. package/dist/routes/devtools/tests/[[...path]]/page.d.ts +8 -0
  834. package/dist/routes/devtools/tests/[[...path]]/page.d.ts.map +1 -0
  835. package/dist/routes/devtools/tests/[[...path]]/page.js +30 -0
  836. package/dist/routes/layout.d.ts +10 -0
  837. package/dist/routes/layout.d.ts.map +1 -0
  838. package/dist/routes/layout.js +73 -0
  839. package/dist/routes/layout.ppr.d.ts +26 -0
  840. package/dist/routes/layout.ppr.d.ts.map +1 -0
  841. package/dist/routes/layout.ppr.js +58 -0
  842. package/dist/routes/manifest.json +784 -0
  843. package/dist/routes/public/page.d.ts +3 -0
  844. package/dist/routes/public/page.d.ts.map +1 -0
  845. package/dist/routes/public/page.js +12 -0
  846. package/dist/routes/superadmin/docs/[section]/[page]/page.cc.d.ts +15 -0
  847. package/dist/routes/superadmin/docs/[section]/[page]/page.cc.d.ts.map +1 -0
  848. package/dist/routes/superadmin/docs/[section]/[page]/page.cc.js +63 -0
  849. package/dist/routes/superadmin/docs/[section]/[page]/page.d.ts +16 -0
  850. package/dist/routes/superadmin/docs/[section]/[page]/page.d.ts.map +1 -0
  851. package/dist/routes/superadmin/docs/[section]/[page]/page.js +61 -0
  852. package/dist/routes/superadmin/docs/page.d.ts +4 -0
  853. package/dist/routes/superadmin/docs/page.d.ts.map +1 -0
  854. package/dist/routes/superadmin/docs/page.js +50 -0
  855. package/dist/routes/superadmin/layout.cc.d.ts +7 -0
  856. package/dist/routes/superadmin/layout.cc.d.ts.map +1 -0
  857. package/dist/routes/superadmin/layout.cc.js +4 -0
  858. package/dist/routes/superadmin/layout.d.ts +5 -0
  859. package/dist/routes/superadmin/layout.d.ts.map +1 -0
  860. package/dist/routes/superadmin/layout.js +3 -0
  861. package/dist/routes/superadmin/page.d.ts +8 -0
  862. package/dist/routes/superadmin/page.d.ts.map +1 -0
  863. package/dist/routes/superadmin/page.js +91 -0
  864. package/dist/routes/superadmin/plugins/[plugin]/page.d.ts +8 -0
  865. package/dist/routes/superadmin/plugins/[plugin]/page.d.ts.map +1 -0
  866. package/dist/routes/superadmin/plugins/[plugin]/page.js +11 -0
  867. package/dist/routes/superadmin/subscriptions/page.d.ts +9 -0
  868. package/dist/routes/superadmin/subscriptions/page.d.ts.map +1 -0
  869. package/dist/routes/superadmin/subscriptions/page.js +470 -0
  870. package/dist/routes/superadmin/team-roles/page.d.ts +12 -0
  871. package/dist/routes/superadmin/team-roles/page.d.ts.map +1 -0
  872. package/dist/routes/superadmin/team-roles/page.js +385 -0
  873. package/dist/routes/superadmin/teams/[teamId]/page.d.ts +8 -0
  874. package/dist/routes/superadmin/teams/[teamId]/page.d.ts.map +1 -0
  875. package/dist/routes/superadmin/teams/[teamId]/page.js +429 -0
  876. package/dist/routes/superadmin/teams/page.d.ts +9 -0
  877. package/dist/routes/superadmin/teams/page.d.ts.map +1 -0
  878. package/dist/routes/superadmin/teams/page.js +259 -0
  879. package/dist/routes/superadmin/users/[userId]/page.d.ts +8 -0
  880. package/dist/routes/superadmin/users/[userId]/page.d.ts.map +1 -0
  881. package/dist/routes/superadmin/users/[userId]/page.js +342 -0
  882. package/dist/routes/superadmin/users/page.d.ts +9 -0
  883. package/dist/routes/superadmin/users/page.d.ts.map +1 -0
  884. package/dist/routes/superadmin/users/page.js +410 -0
  885. package/dist/routes/variants.json +86 -0
  886. package/dist/templates/blocks/README.md +6 -12
  887. package/dist/templates/blocks/cta-section/config.ts +0 -1
  888. package/dist/templates/blocks/cta-section/thumbnail.png +0 -0
  889. package/dist/templates/blocks/features-grid/config.ts +0 -1
  890. package/dist/templates/blocks/features-grid/thumbnail.png +0 -0
  891. package/dist/templates/blocks/hero/config.ts +0 -1
  892. package/dist/templates/blocks/hero/thumbnail.png +0 -0
  893. package/dist/templates/blocks/testimonials/config.ts +0 -1
  894. package/dist/templates/blocks/testimonials/thumbnail.png +0 -0
  895. package/dist/templates/blocks/text-content/config.ts +0 -1
  896. package/dist/templates/blocks/text-content/thumbnail.png +0 -0
  897. package/dist/templates/ci-workflows/README.md +4 -5
  898. package/dist/templates/ci-workflows/github/cypress-regression.yml +7 -14
  899. package/dist/templates/ci-workflows/github/cypress-smoke.yml +3 -5
  900. package/dist/templates/eslint.config.mjs +3 -3
  901. package/dist/templates/features/blog/blocks/post-content/config.ts +0 -1
  902. package/dist/templates/features/blog/entities/posts/posts.config.ts +1 -1
  903. package/dist/templates/features/pages/blocks/hero/config.ts +0 -1
  904. package/dist/templates/features/pages/entities/pages/pages.config.ts +1 -1
  905. package/dist/templates/instrumentation.ts +9 -0
  906. package/dist/templates/migrations/README.md +2 -2
  907. package/dist/templates/next.config.mjs +34 -8
  908. package/dist/templates/plugins/README.md +42 -0
  909. package/dist/templates/plugins/starter/plugin/README.md.template +97 -0
  910. package/dist/templates/plugins/starter/plugin/api/example/route.ts.template +94 -0
  911. package/dist/templates/plugins/starter/plugin/hooks/usePlugin.ts.template +102 -0
  912. package/dist/templates/pnpm-workspace.yaml +3 -5
  913. package/dist/templates/projects/blog/README.md +62 -0
  914. package/dist/templates/projects/blog/about.md +93 -0
  915. package/dist/templates/projects/blog/api/authors/[username]/route.ts +153 -0
  916. package/dist/templates/projects/blog/api/authors/docs.md +135 -0
  917. package/dist/templates/projects/blog/api/authors/presets.ts +45 -0
  918. package/dist/templates/projects/blog/api/authors/route.ts +66 -0
  919. package/dist/templates/projects/blog/api/posts/public/docs.md +124 -0
  920. package/dist/templates/projects/blog/api/posts/public/presets.ts +65 -0
  921. package/dist/templates/projects/blog/api/posts/public/route.ts +154 -0
  922. package/dist/templates/projects/blog/components/ExportPostsButton.tsx +103 -0
  923. package/dist/templates/projects/blog/components/ImportPostsDialog.tsx +285 -0
  924. package/dist/templates/projects/blog/components/PostsToolbar.tsx +24 -0
  925. package/dist/templates/projects/blog/components/editor/FeaturedImageUpload.tsx +186 -0
  926. package/dist/templates/projects/blog/components/editor/WysiwygEditor.tsx +389 -0
  927. package/dist/templates/projects/blog/components/index.ts +4 -0
  928. package/dist/templates/projects/blog/components/public/AuthorBio.tsx +106 -0
  929. package/dist/templates/projects/blog/components/public/AuthorCard.tsx +131 -0
  930. package/dist/templates/projects/blog/components/public/BlogFooter.tsx +186 -0
  931. package/dist/templates/projects/blog/components/public/BlogNavbar.tsx +201 -0
  932. package/dist/templates/projects/blog/components/public/PostCard.tsx +307 -0
  933. package/dist/templates/projects/blog/components/public/ReadingProgress.tsx +70 -0
  934. package/dist/templates/projects/blog/components/public/RelatedPosts.tsx +79 -0
  935. package/dist/templates/projects/blog/config/app.config.ts +193 -0
  936. package/dist/templates/projects/blog/config/billing.config.ts +143 -0
  937. package/dist/templates/projects/blog/config/dashboard.config.ts +346 -0
  938. package/dist/templates/projects/blog/config/dev.config.ts +48 -0
  939. package/dist/templates/projects/blog/config/features.config.ts +196 -0
  940. package/dist/templates/projects/blog/config/flows.config.ts +333 -0
  941. package/dist/templates/projects/blog/config/permissions.config.ts +112 -0
  942. package/dist/templates/projects/blog/config/theme.config.ts +128 -0
  943. package/dist/templates/projects/blog/entities/categories/api/docs.md +119 -0
  944. package/dist/templates/projects/blog/entities/categories/api/presets.ts +67 -0
  945. package/dist/templates/projects/blog/entities/categories/categories.config.ts +60 -0
  946. package/dist/templates/projects/blog/entities/categories/categories.fields.ts +115 -0
  947. package/dist/templates/projects/blog/entities/categories/categories.service.ts +333 -0
  948. package/dist/templates/projects/blog/entities/categories/categories.types.ts +58 -0
  949. package/dist/templates/projects/blog/entities/categories/messages/en.json +33 -0
  950. package/dist/templates/projects/blog/entities/categories/messages/es.json +33 -0
  951. package/dist/templates/projects/blog/entities/posts/api/docs.md +174 -0
  952. package/dist/templates/projects/blog/entities/posts/api/presets.ts +137 -0
  953. package/dist/templates/projects/blog/entities/posts/messages/en.json +100 -0
  954. package/dist/templates/projects/blog/entities/posts/messages/es.json +100 -0
  955. package/dist/templates/projects/blog/entities/posts/migrations/001_posts_table.sql +110 -0
  956. package/dist/templates/projects/blog/entities/posts/migrations/002_add_featured.sql +19 -0
  957. package/dist/templates/projects/blog/entities/posts/migrations/003_post_categories_pivot.sql +47 -0
  958. package/dist/templates/projects/blog/entities/posts/posts.config.ts +61 -0
  959. package/dist/templates/projects/blog/entities/posts/posts.fields.ts +234 -0
  960. package/dist/templates/projects/blog/entities/posts/posts.service.ts +464 -0
  961. package/dist/templates/projects/blog/entities/posts/posts.types.ts +80 -0
  962. package/dist/templates/projects/blog/lib/sanitize-post-html.ts +52 -0
  963. package/dist/templates/projects/blog/lib/selectors.ts +178 -0
  964. package/dist/templates/projects/blog/messages/en.json +113 -0
  965. package/dist/templates/projects/blog/messages/es.json +113 -0
  966. package/dist/templates/projects/blog/migrations/002_author_profile_fields.sql +37 -0
  967. package/dist/templates/projects/blog/migrations/003_categories_table.sql +90 -0
  968. package/dist/templates/projects/blog/migrations/090_billing_sample_data.sql +99 -0
  969. package/dist/templates/projects/blog/migrations/999_sample_data.sql +412 -0
  970. package/dist/templates/projects/blog/migrations/999_theme_sample_data.sql +1070 -0
  971. package/dist/templates/projects/blog/package.json +30 -0
  972. package/dist/templates/projects/blog/permissions-matrix.md +63 -0
  973. package/dist/templates/projects/blog/styles/article.css +333 -0
  974. package/dist/templates/projects/blog/styles/components.css +204 -0
  975. package/dist/templates/projects/blog/styles/globals.css +384 -0
  976. package/dist/templates/projects/blog/styles/theme.css +167 -0
  977. package/dist/templates/projects/blog/templates/(public)/author/[username]/page.tsx +248 -0
  978. package/dist/templates/projects/blog/templates/(public)/authors/page.tsx +162 -0
  979. package/dist/templates/projects/blog/templates/(public)/layout.tsx +44 -0
  980. package/dist/templates/projects/blog/templates/(public)/page.tsx +277 -0
  981. package/dist/templates/projects/blog/templates/(public)/posts/[slug]/page.tsx +344 -0
  982. package/dist/templates/projects/blog/templates/dashboard/(main)/page.tsx +386 -0
  983. package/dist/templates/projects/blog/templates/dashboard/(main)/posts/[id]/edit/page.tsx +530 -0
  984. package/dist/templates/projects/blog/templates/dashboard/(main)/posts/[id]/page.tsx +33 -0
  985. package/dist/templates/projects/blog/templates/dashboard/(main)/posts/create/page.tsx +354 -0
  986. package/dist/templates/projects/blog/templates/dashboard/(main)/posts/page.tsx +834 -0
  987. package/dist/templates/projects/blog/tests/cypress/e2e/README.md +170 -0
  988. package/dist/templates/projects/blog/tests/cypress/e2e/categories/categories-crud.cy.ts +322 -0
  989. package/dist/templates/projects/blog/tests/cypress/e2e/categories/categories-crud.md +73 -0
  990. package/dist/templates/projects/blog/tests/cypress/e2e/posts/posts-crud.cy.ts +460 -0
  991. package/dist/templates/projects/blog/tests/cypress/e2e/posts/posts-crud.md +115 -0
  992. package/dist/templates/projects/blog/tests/cypress/e2e/posts/posts-editor.cy.ts +290 -0
  993. package/dist/templates/projects/blog/tests/cypress/e2e/posts/posts-editor.md +139 -0
  994. package/dist/templates/projects/blog/tests/cypress/e2e/posts/posts-status-workflow.cy.ts +302 -0
  995. package/dist/templates/projects/blog/tests/cypress/e2e/posts/posts-status-workflow.md +83 -0
  996. package/dist/templates/projects/blog/tests/cypress/fixtures/blocks.json +9 -0
  997. package/dist/templates/projects/blog/tests/cypress/fixtures/entities.json +51 -0
  998. package/dist/templates/projects/blog/tests/cypress/src/FeaturedImageUpload.js +131 -0
  999. package/dist/templates/projects/blog/tests/cypress/src/PostEditor.js +386 -0
  1000. package/dist/templates/projects/blog/tests/cypress/src/PostsList.js +350 -0
  1001. package/dist/templates/projects/blog/tests/cypress/src/WysiwygEditor.js +373 -0
  1002. package/dist/templates/projects/blog/tests/cypress/src/components/EntityForm.ts +378 -0
  1003. package/dist/templates/projects/blog/tests/cypress/src/components/EntityList.ts +378 -0
  1004. package/dist/templates/projects/blog/tests/cypress/src/components/PostEditorPOM.ts +447 -0
  1005. package/dist/templates/projects/blog/tests/cypress/src/components/PostsPOM.ts +362 -0
  1006. package/dist/templates/projects/blog/tests/cypress/src/components/index.ts +18 -0
  1007. package/dist/templates/projects/blog/tests/cypress/src/index.js +33 -0
  1008. package/dist/templates/projects/blog/tests/cypress/src/selectors.ts +49 -0
  1009. package/dist/templates/projects/blog/tests/cypress/src/session-helpers.ts +151 -0
  1010. package/dist/templates/projects/blog/tests/cypress/support/e2e.ts +90 -0
  1011. package/dist/templates/projects/blog/tests/cypress.config.ts +149 -0
  1012. package/dist/templates/projects/blog/tests/jest/components/WysiwygEditor.test.tsx +118 -0
  1013. package/dist/templates/projects/blog/tests/jest/jest.config.cjs +104 -0
  1014. package/dist/templates/projects/blog/tests/jest/lib/sanitize-post-html.test.ts +48 -0
  1015. package/dist/templates/projects/blog/tests/jest/setup.ts +170 -0
  1016. package/dist/templates/projects/blog/tests/jest/tsconfig.jest.json +6 -0
  1017. package/dist/templates/projects/blog/tests/tsconfig.json +7 -0
  1018. package/dist/templates/projects/crm/CRM_PLAN.md +343 -0
  1019. package/dist/templates/projects/crm/about.md +122 -0
  1020. package/dist/templates/projects/crm/config/app.config.ts +178 -0
  1021. package/dist/templates/projects/crm/config/billing.config.ts +184 -0
  1022. package/dist/templates/projects/crm/config/dashboard.config.ts +385 -0
  1023. package/dist/templates/projects/crm/config/dev.config.ts +55 -0
  1024. package/dist/templates/projects/crm/config/features.config.ts +336 -0
  1025. package/dist/templates/projects/crm/config/flows.config.ts +511 -0
  1026. package/dist/templates/projects/crm/config/permissions.config.ts +308 -0
  1027. package/dist/templates/projects/crm/config/theme.config.ts +111 -0
  1028. package/dist/templates/projects/crm/entities/activities/activities.config.ts +61 -0
  1029. package/dist/templates/projects/crm/entities/activities/activities.fields.ts +362 -0
  1030. package/dist/templates/projects/crm/entities/activities/activities.service.ts +503 -0
  1031. package/dist/templates/projects/crm/entities/activities/activities.types.ts +117 -0
  1032. package/dist/templates/projects/crm/entities/activities/api/docs.md +146 -0
  1033. package/dist/templates/projects/crm/entities/activities/api/presets.ts +132 -0
  1034. package/dist/templates/projects/crm/entities/activities/messages/en.json +123 -0
  1035. package/dist/templates/projects/crm/entities/activities/messages/es.json +123 -0
  1036. package/dist/templates/projects/crm/entities/activities/migrations/020_activities_table.sql +123 -0
  1037. package/dist/templates/projects/crm/entities/activities/migrations/021_activities_metas.sql +114 -0
  1038. package/dist/templates/projects/crm/entities/activities/migrations/022_activities_sample_data.sql +420 -0
  1039. package/dist/templates/projects/crm/entities/campaigns/api/docs.md +140 -0
  1040. package/dist/templates/projects/crm/entities/campaigns/api/presets.ts +147 -0
  1041. package/dist/templates/projects/crm/entities/campaigns/campaigns.config.ts +61 -0
  1042. package/dist/templates/projects/crm/entities/campaigns/campaigns.fields.ts +413 -0
  1043. package/dist/templates/projects/crm/entities/campaigns/campaigns.service.ts +426 -0
  1044. package/dist/templates/projects/crm/entities/campaigns/campaigns.types.ts +124 -0
  1045. package/dist/templates/projects/crm/entities/campaigns/messages/en.json +145 -0
  1046. package/dist/templates/projects/crm/entities/campaigns/messages/es.json +145 -0
  1047. package/dist/templates/projects/crm/entities/campaigns/migrations/001_campaigns_table.sql +127 -0
  1048. package/dist/templates/projects/crm/entities/campaigns/migrations/002_campaigns_metas.sql +114 -0
  1049. package/dist/templates/projects/crm/entities/campaigns/migrations/003_campaigns_sample_data.sql +364 -0
  1050. package/dist/templates/projects/crm/entities/companies/api/docs.md +139 -0
  1051. package/dist/templates/projects/crm/entities/companies/api/presets.ts +107 -0
  1052. package/dist/templates/projects/crm/entities/companies/companies.config.ts +61 -0
  1053. package/dist/templates/projects/crm/entities/companies/companies.fields.ts +429 -0
  1054. package/dist/templates/projects/crm/entities/companies/companies.service.ts +566 -0
  1055. package/dist/templates/projects/crm/entities/companies/companies.types.ts +125 -0
  1056. package/dist/templates/projects/crm/entities/companies/messages/en.json +146 -0
  1057. package/dist/templates/projects/crm/entities/companies/messages/es.json +146 -0
  1058. package/dist/templates/projects/crm/entities/companies/migrations/001_companies_table.sql +150 -0
  1059. package/dist/templates/projects/crm/entities/companies/migrations/002_companies_metas.sql +114 -0
  1060. package/dist/templates/projects/crm/entities/companies/migrations/003_companies_sample_data.sql +246 -0
  1061. package/dist/templates/projects/crm/entities/contacts/api/docs.md +139 -0
  1062. package/dist/templates/projects/crm/entities/contacts/api/presets.ts +98 -0
  1063. package/dist/templates/projects/crm/entities/contacts/contacts.config.ts +61 -0
  1064. package/dist/templates/projects/crm/entities/contacts/contacts.fields.ts +359 -0
  1065. package/dist/templates/projects/crm/entities/contacts/contacts.service.ts +509 -0
  1066. package/dist/templates/projects/crm/entities/contacts/contacts.types.ts +108 -0
  1067. package/dist/templates/projects/crm/entities/contacts/messages/en.json +117 -0
  1068. package/dist/templates/projects/crm/entities/contacts/messages/es.json +117 -0
  1069. package/dist/templates/projects/crm/entities/contacts/migrations/001_contacts_table.sql +134 -0
  1070. package/dist/templates/projects/crm/entities/contacts/migrations/002_contacts_metas.sql +114 -0
  1071. package/dist/templates/projects/crm/entities/contacts/migrations/003_contacts_sample_data.sql +421 -0
  1072. package/dist/templates/projects/crm/entities/leads/api/docs.md +132 -0
  1073. package/dist/templates/projects/crm/entities/leads/api/presets.ts +109 -0
  1074. package/dist/templates/projects/crm/entities/leads/leads.config.ts +61 -0
  1075. package/dist/templates/projects/crm/entities/leads/leads.fields.ts +336 -0
  1076. package/dist/templates/projects/crm/entities/leads/leads.service.ts +496 -0
  1077. package/dist/templates/projects/crm/entities/leads/leads.types.ts +114 -0
  1078. package/dist/templates/projects/crm/entities/leads/messages/en.json +132 -0
  1079. package/dist/templates/projects/crm/entities/leads/messages/es.json +132 -0
  1080. package/dist/templates/projects/crm/entities/leads/migrations/001_leads_table.sql +150 -0
  1081. package/dist/templates/projects/crm/entities/leads/migrations/002_leads_metas.sql +120 -0
  1082. package/dist/templates/projects/crm/entities/leads/migrations/003_leads_sample_data.sql +242 -0
  1083. package/dist/templates/projects/crm/entities/notes/api/docs.md +135 -0
  1084. package/dist/templates/projects/crm/entities/notes/api/presets.ts +115 -0
  1085. package/dist/templates/projects/crm/entities/notes/messages/en.json +114 -0
  1086. package/dist/templates/projects/crm/entities/notes/messages/es.json +114 -0
  1087. package/dist/templates/projects/crm/entities/notes/migrations/020_notes_table.sql +118 -0
  1088. package/dist/templates/projects/crm/entities/notes/migrations/021_notes_metas.sql +114 -0
  1089. package/dist/templates/projects/crm/entities/notes/migrations/022_notes_sample_data.sql +275 -0
  1090. package/dist/templates/projects/crm/entities/notes/notes.config.ts +61 -0
  1091. package/dist/templates/projects/crm/entities/notes/notes.fields.ts +283 -0
  1092. package/dist/templates/projects/crm/entities/notes/notes.service.ts +320 -0
  1093. package/dist/templates/projects/crm/entities/notes/notes.types.ts +102 -0
  1094. package/dist/templates/projects/crm/entities/opportunities/api/docs.md +151 -0
  1095. package/dist/templates/projects/crm/entities/opportunities/api/presets.ts +151 -0
  1096. package/dist/templates/projects/crm/entities/opportunities/messages/en.json +107 -0
  1097. package/dist/templates/projects/crm/entities/opportunities/messages/es.json +107 -0
  1098. package/dist/templates/projects/crm/entities/opportunities/migrations/010_opportunities_table.sql +145 -0
  1099. package/dist/templates/projects/crm/entities/opportunities/migrations/011_opportunities_metas.sql +114 -0
  1100. package/dist/templates/projects/crm/entities/opportunities/migrations/012_opportunities_sample_data.sql +438 -0
  1101. package/dist/templates/projects/crm/entities/opportunities/opportunities.config.ts +61 -0
  1102. package/dist/templates/projects/crm/entities/opportunities/opportunities.fields.ts +416 -0
  1103. package/dist/templates/projects/crm/entities/opportunities/opportunities.service.ts +525 -0
  1104. package/dist/templates/projects/crm/entities/opportunities/opportunities.types.ts +135 -0
  1105. package/dist/templates/projects/crm/entities/pipelines/api/docs.md +145 -0
  1106. package/dist/templates/projects/crm/entities/pipelines/api/presets.ts +118 -0
  1107. package/dist/templates/projects/crm/entities/pipelines/messages/en.json +115 -0
  1108. package/dist/templates/projects/crm/entities/pipelines/messages/es.json +115 -0
  1109. package/dist/templates/projects/crm/entities/pipelines/migrations/001_pipelines_table.sql +106 -0
  1110. package/dist/templates/projects/crm/entities/pipelines/migrations/002_pipelines_metas.sql +114 -0
  1111. package/dist/templates/projects/crm/entities/pipelines/migrations/003_pipelines_sample_data.sql +91 -0
  1112. package/dist/templates/projects/crm/entities/pipelines/pipelines.config.ts +62 -0
  1113. package/dist/templates/projects/crm/entities/pipelines/pipelines.fields.ts +193 -0
  1114. package/dist/templates/projects/crm/entities/pipelines/pipelines.service.ts +383 -0
  1115. package/dist/templates/projects/crm/entities/pipelines/pipelines.types.ts +78 -0
  1116. package/dist/templates/projects/crm/entities/products/api/docs.md +137 -0
  1117. package/dist/templates/projects/crm/entities/products/api/presets.ts +132 -0
  1118. package/dist/templates/projects/crm/entities/products/messages/en.json +135 -0
  1119. package/dist/templates/projects/crm/entities/products/messages/es.json +135 -0
  1120. package/dist/templates/projects/crm/entities/products/migrations/001_products_table.sql +117 -0
  1121. package/dist/templates/projects/crm/entities/products/migrations/002_products_metas.sql +114 -0
  1122. package/dist/templates/projects/crm/entities/products/migrations/003_products_sample_data.sql +247 -0
  1123. package/dist/templates/projects/crm/entities/products/products.config.ts +62 -0
  1124. package/dist/templates/projects/crm/entities/products/products.fields.ts +361 -0
  1125. package/dist/templates/projects/crm/entities/products/products.service.ts +437 -0
  1126. package/dist/templates/projects/crm/entities/products/products.types.ts +125 -0
  1127. package/dist/templates/projects/crm/lib/crm-constants.ts +77 -0
  1128. package/dist/templates/projects/crm/lib/crm-utils.ts +185 -0
  1129. package/dist/templates/projects/crm/lib/selectors.ts +332 -0
  1130. package/dist/templates/projects/crm/messages/en.json +131 -0
  1131. package/dist/templates/projects/crm/messages/es.json +131 -0
  1132. package/dist/templates/projects/crm/migrations/090_billing_sample_data.sql +99 -0
  1133. package/dist/templates/projects/crm/migrations/999_theme_sample_data.sql +473 -0
  1134. package/dist/templates/projects/crm/package.json +26 -0
  1135. package/dist/templates/projects/crm/pendings.md +204 -0
  1136. package/dist/templates/projects/crm/permissions-matrix.md +216 -0
  1137. package/dist/templates/projects/crm/styles/components.css +414 -0
  1138. package/dist/templates/projects/crm/styles/crm-theme.css +358 -0
  1139. package/dist/templates/projects/crm/styles/globals.css +624 -0
  1140. package/dist/templates/projects/crm/styles/variables.css +111 -0
  1141. package/dist/templates/projects/crm/templates/dashboard/(main)/activities/components/ActivityCard.tsx +169 -0
  1142. package/dist/templates/projects/crm/templates/dashboard/(main)/activities/components/ActivityTimeline.tsx +165 -0
  1143. package/dist/templates/projects/crm/templates/dashboard/(main)/activities/page.tsx +297 -0
  1144. package/dist/templates/projects/crm/templates/dashboard/(main)/campaigns/page.tsx +373 -0
  1145. package/dist/templates/projects/crm/templates/dashboard/(main)/companies/page.tsx +296 -0
  1146. package/dist/templates/projects/crm/templates/dashboard/(main)/contacts/page.tsx +347 -0
  1147. package/dist/templates/projects/crm/templates/dashboard/(main)/layout.tsx +98 -0
  1148. package/dist/templates/projects/crm/templates/dashboard/(main)/leads/page.tsx +335 -0
  1149. package/dist/templates/projects/crm/templates/dashboard/(main)/opportunities/[id]/edit/page.tsx +95 -0
  1150. package/dist/templates/projects/crm/templates/dashboard/(main)/opportunities/create/page.tsx +94 -0
  1151. package/dist/templates/projects/crm/templates/dashboard/(main)/opportunities/page.tsx +350 -0
  1152. package/dist/templates/projects/crm/templates/dashboard/(main)/pipelines/[id]/edit/page.tsx +95 -0
  1153. package/dist/templates/projects/crm/templates/dashboard/(main)/pipelines/[id]/page.tsx +143 -0
  1154. package/dist/templates/projects/crm/templates/dashboard/(main)/pipelines/create/page.tsx +94 -0
  1155. package/dist/templates/projects/crm/templates/dashboard/(main)/pipelines/page.tsx +235 -0
  1156. package/dist/templates/projects/crm/templates/dashboard/(main)/products/[id]/edit/page.tsx +97 -0
  1157. package/dist/templates/projects/crm/templates/dashboard/(main)/products/[id]/page.tsx +510 -0
  1158. package/dist/templates/projects/crm/templates/dashboard/(main)/products/create/page.tsx +96 -0
  1159. package/dist/templates/projects/crm/templates/dashboard/(main)/products/page.tsx +308 -0
  1160. package/dist/templates/projects/crm/templates/shared/ActionButtons.tsx +41 -0
  1161. package/dist/templates/projects/crm/templates/shared/CRMDashboard.tsx +519 -0
  1162. package/dist/templates/projects/crm/templates/shared/CRMDataTable.tsx +441 -0
  1163. package/dist/templates/projects/crm/templates/shared/CRMMetricCard.tsx +76 -0
  1164. package/dist/templates/projects/crm/templates/shared/CRMMobileNav.tsx +172 -0
  1165. package/dist/templates/projects/crm/templates/shared/CRMSidebar.tsx +347 -0
  1166. package/dist/templates/projects/crm/templates/shared/CRMTopBar.tsx +266 -0
  1167. package/dist/templates/projects/crm/templates/shared/DealCard.tsx +123 -0
  1168. package/dist/templates/projects/crm/templates/shared/EntityCard.tsx +58 -0
  1169. package/dist/templates/projects/crm/templates/shared/OpportunityForm.tsx +649 -0
  1170. package/dist/templates/projects/crm/templates/shared/PipelineForm.tsx +367 -0
  1171. package/dist/templates/projects/crm/templates/shared/PipelineKanban.tsx +194 -0
  1172. package/dist/templates/projects/crm/templates/shared/QuickFilters.tsx +47 -0
  1173. package/dist/templates/projects/crm/templates/shared/StageColumn.tsx +175 -0
  1174. package/dist/templates/projects/crm/templates/shared/StageSelect.tsx +177 -0
  1175. package/dist/templates/projects/crm/templates/shared/StagesRepeater.tsx +317 -0
  1176. package/dist/templates/projects/crm/templates/shared/index.ts +9 -0
  1177. package/dist/templates/projects/crm/tests/cypress/e2e/api/activities/activities-crud.cy.ts +686 -0
  1178. package/dist/templates/projects/crm/tests/cypress/e2e/api/campaigns/campaigns-crud.cy.ts +592 -0
  1179. package/dist/templates/projects/crm/tests/cypress/e2e/api/companies/companies-crud.cy.ts +682 -0
  1180. package/dist/templates/projects/crm/tests/cypress/e2e/api/contacts/contacts-crud.cy.ts +668 -0
  1181. package/dist/templates/projects/crm/tests/cypress/e2e/api/leads/leads-crud.cy.ts +648 -0
  1182. package/dist/templates/projects/crm/tests/cypress/e2e/api/notes/notes-crud.cy.ts +424 -0
  1183. package/dist/templates/projects/crm/tests/cypress/e2e/api/opportunities/opportunities-crud.cy.ts +865 -0
  1184. package/dist/templates/projects/crm/tests/cypress/e2e/api/pipelines/pipelines-crud.cy.ts +545 -0
  1185. package/dist/templates/projects/crm/tests/cypress/e2e/api/products/products-crud.cy.ts +447 -0
  1186. package/dist/templates/projects/crm/tests/cypress/e2e/ui/activities/activities-admin.cy.ts +268 -0
  1187. package/dist/templates/projects/crm/tests/cypress/e2e/ui/activities/activities-member.cy.ts +257 -0
  1188. package/dist/templates/projects/crm/tests/cypress/e2e/ui/activities/activities-owner.cy.ts +268 -0
  1189. package/dist/templates/projects/crm/tests/cypress/e2e/ui/companies/companies-admin.cy.ts +188 -0
  1190. package/dist/templates/projects/crm/tests/cypress/e2e/ui/companies/companies-member.cy.ts +166 -0
  1191. package/dist/templates/projects/crm/tests/cypress/e2e/ui/companies/companies-owner.cy.ts +189 -0
  1192. package/dist/templates/projects/crm/tests/cypress/e2e/ui/contacts/contacts-admin.cy.ts +252 -0
  1193. package/dist/templates/projects/crm/tests/cypress/e2e/ui/contacts/contacts-member.cy.ts +224 -0
  1194. package/dist/templates/projects/crm/tests/cypress/e2e/ui/contacts/contacts-owner.cy.ts +236 -0
  1195. package/dist/templates/projects/crm/tests/cypress/e2e/ui/leads/leads-admin.cy.ts +286 -0
  1196. package/dist/templates/projects/crm/tests/cypress/e2e/ui/leads/leads-member.cy.ts +193 -0
  1197. package/dist/templates/projects/crm/tests/cypress/e2e/ui/leads/leads-owner.cy.ts +210 -0
  1198. package/dist/templates/projects/crm/tests/cypress/e2e/ui/opportunities/opportunities-admin.cy.ts +197 -0
  1199. package/dist/templates/projects/crm/tests/cypress/e2e/ui/opportunities/opportunities-member.cy.ts +229 -0
  1200. package/dist/templates/projects/crm/tests/cypress/e2e/ui/opportunities/opportunities-owner.cy.ts +196 -0
  1201. package/dist/templates/projects/crm/tests/cypress/e2e/ui/pipelines/pipelines-admin.cy.ts +320 -0
  1202. package/dist/templates/projects/crm/tests/cypress/e2e/ui/pipelines/pipelines-member.cy.ts +262 -0
  1203. package/dist/templates/projects/crm/tests/cypress/e2e/ui/pipelines/pipelines-owner.cy.ts +282 -0
  1204. package/dist/templates/projects/crm/tests/cypress/fixtures/blocks.json +9 -0
  1205. package/dist/templates/projects/crm/tests/cypress/fixtures/entities.json +240 -0
  1206. package/dist/templates/projects/crm/tests/cypress/src/components/CRMDataTable.js +223 -0
  1207. package/dist/templates/projects/crm/tests/cypress/src/components/CRMMobileNav.js +138 -0
  1208. package/dist/templates/projects/crm/tests/cypress/src/components/CRMSidebar.js +145 -0
  1209. package/dist/templates/projects/crm/tests/cypress/src/components/CRMTopBar.js +194 -0
  1210. package/dist/templates/projects/crm/tests/cypress/src/components/DealCard.js +197 -0
  1211. package/dist/templates/projects/crm/tests/cypress/src/components/EntityDetail.ts +290 -0
  1212. package/dist/templates/projects/crm/tests/cypress/src/components/EntityForm.ts +357 -0
  1213. package/dist/templates/projects/crm/tests/cypress/src/components/EntityList.ts +360 -0
  1214. package/dist/templates/projects/crm/tests/cypress/src/components/PipelineKanban.js +204 -0
  1215. package/dist/templates/projects/crm/tests/cypress/src/components/StageColumn.js +196 -0
  1216. package/dist/templates/projects/crm/tests/cypress/src/components/index.js +13 -0
  1217. package/dist/templates/projects/crm/tests/cypress/src/components/index.ts +22 -0
  1218. package/dist/templates/projects/crm/tests/cypress/src/controllers/ActivityAPIController.ts +113 -0
  1219. package/dist/templates/projects/crm/tests/cypress/src/controllers/BaseAPIController.ts +307 -0
  1220. package/dist/templates/projects/crm/tests/cypress/src/controllers/CampaignAPIController.ts +114 -0
  1221. package/dist/templates/projects/crm/tests/cypress/src/controllers/CompanyAPIController.ts +112 -0
  1222. package/dist/templates/projects/crm/tests/cypress/src/controllers/ContactAPIController.ts +104 -0
  1223. package/dist/templates/projects/crm/tests/cypress/src/controllers/LeadAPIController.ts +96 -0
  1224. package/dist/templates/projects/crm/tests/cypress/src/controllers/NoteAPIController.ts +130 -0
  1225. package/dist/templates/projects/crm/tests/cypress/src/controllers/OpportunityAPIController.ts +134 -0
  1226. package/dist/templates/projects/crm/tests/cypress/src/controllers/PipelineAPIController.ts +116 -0
  1227. package/dist/templates/projects/crm/tests/cypress/src/controllers/ProductAPIController.ts +113 -0
  1228. package/dist/templates/projects/crm/tests/cypress/src/controllers/index.ts +35 -0
  1229. package/dist/templates/projects/crm/tests/cypress/src/entities/ActivitiesPOM.ts +130 -0
  1230. package/dist/templates/projects/crm/tests/cypress/src/entities/CompaniesPOM.ts +117 -0
  1231. package/dist/templates/projects/crm/tests/cypress/src/entities/ContactsPOM.ts +117 -0
  1232. package/dist/templates/projects/crm/tests/cypress/src/entities/LeadsPOM.ts +129 -0
  1233. package/dist/templates/projects/crm/tests/cypress/src/entities/OpportunitiesPOM.ts +178 -0
  1234. package/dist/templates/projects/crm/tests/cypress/src/entities/PipelinesPOM.ts +341 -0
  1235. package/dist/templates/projects/crm/tests/cypress/src/entities/index.ts +31 -0
  1236. package/dist/templates/projects/crm/tests/cypress/src/forms/OpportunityForm.js +316 -0
  1237. package/dist/templates/projects/crm/tests/cypress/src/forms/PipelineForm.js +243 -0
  1238. package/dist/templates/projects/crm/tests/cypress/src/forms/index.js +8 -0
  1239. package/dist/templates/projects/crm/tests/cypress/src/index.js +22 -0
  1240. package/dist/templates/projects/crm/tests/cypress/src/index.ts +68 -0
  1241. package/dist/templates/projects/crm/tests/cypress/src/selectors.ts +50 -0
  1242. package/dist/templates/projects/crm/tests/cypress/src/session-helpers.ts +176 -0
  1243. package/dist/templates/projects/crm/tests/cypress/support/e2e.ts +90 -0
  1244. package/dist/templates/projects/crm/tests/cypress.config.ts +149 -0
  1245. package/dist/templates/projects/crm/tests/tsconfig.json +7 -0
  1246. package/dist/templates/projects/productivity/README.md +73 -0
  1247. package/dist/templates/projects/productivity/about.md +123 -0
  1248. package/dist/templates/projects/productivity/components/CardDetailModal.tsx +318 -0
  1249. package/dist/templates/projects/productivity/components/KanbanBoard.tsx +613 -0
  1250. package/dist/templates/projects/productivity/components/KanbanCard.tsx +218 -0
  1251. package/dist/templates/projects/productivity/components/KanbanColumn.tsx +264 -0
  1252. package/dist/templates/projects/productivity/components/SortableList.tsx +46 -0
  1253. package/dist/templates/projects/productivity/components/index.ts +4 -0
  1254. package/dist/templates/projects/productivity/config/app.config.ts +165 -0
  1255. package/dist/templates/projects/productivity/config/billing.config.ts +184 -0
  1256. package/dist/templates/projects/productivity/config/dashboard.config.ts +370 -0
  1257. package/dist/templates/projects/productivity/config/dev.config.ts +55 -0
  1258. package/dist/templates/projects/productivity/config/features.config.ts +256 -0
  1259. package/dist/templates/projects/productivity/config/flows.config.ts +484 -0
  1260. package/dist/templates/projects/productivity/config/permissions.config.ts +178 -0
  1261. package/dist/templates/projects/productivity/config/theme.config.ts +106 -0
  1262. package/dist/templates/projects/productivity/entities/boards/api/docs.md +131 -0
  1263. package/dist/templates/projects/productivity/entities/boards/api/presets.ts +113 -0
  1264. package/dist/templates/projects/productivity/entities/boards/boards.config.ts +61 -0
  1265. package/dist/templates/projects/productivity/entities/boards/boards.fields.ts +154 -0
  1266. package/dist/templates/projects/productivity/entities/boards/boards.service.ts +256 -0
  1267. package/dist/templates/projects/productivity/entities/boards/boards.types.ts +57 -0
  1268. package/dist/templates/projects/productivity/entities/boards/messages/en.json +80 -0
  1269. package/dist/templates/projects/productivity/entities/boards/messages/es.json +80 -0
  1270. package/dist/templates/projects/productivity/entities/boards/migrations/001_boards_table.sql +83 -0
  1271. package/dist/templates/projects/productivity/entities/cards/api/docs.md +162 -0
  1272. package/dist/templates/projects/productivity/entities/cards/api/presets.ts +172 -0
  1273. package/dist/templates/projects/productivity/entities/cards/cards.config.ts +61 -0
  1274. package/dist/templates/projects/productivity/entities/cards/cards.fields.ts +242 -0
  1275. package/dist/templates/projects/productivity/entities/cards/cards.service.ts +336 -0
  1276. package/dist/templates/projects/productivity/entities/cards/cards.types.ts +79 -0
  1277. package/dist/templates/projects/productivity/entities/cards/messages/en.json +114 -0
  1278. package/dist/templates/projects/productivity/entities/cards/messages/es.json +114 -0
  1279. package/dist/templates/projects/productivity/entities/cards/migrations/020_cards_table.sql +92 -0
  1280. package/dist/templates/projects/productivity/entities/lists/api/docs.md +143 -0
  1281. package/dist/templates/projects/productivity/entities/lists/api/presets.ts +81 -0
  1282. package/dist/templates/projects/productivity/entities/lists/lists.config.ts +61 -0
  1283. package/dist/templates/projects/productivity/entities/lists/lists.fields.ts +105 -0
  1284. package/dist/templates/projects/productivity/entities/lists/lists.service.ts +252 -0
  1285. package/dist/templates/projects/productivity/entities/lists/lists.types.ts +55 -0
  1286. package/dist/templates/projects/productivity/entities/lists/messages/en.json +60 -0
  1287. package/dist/templates/projects/productivity/entities/lists/messages/es.json +60 -0
  1288. package/dist/templates/projects/productivity/entities/lists/migrations/010_lists_table.sql +79 -0
  1289. package/dist/templates/projects/productivity/lib/selectors.ts +205 -0
  1290. package/dist/templates/projects/productivity/messages/en.json +79 -0
  1291. package/dist/templates/projects/productivity/messages/es.json +79 -0
  1292. package/dist/templates/projects/productivity/migrations/090_billing_sample_data.sql +100 -0
  1293. package/dist/templates/projects/productivity/migrations/999_theme_sample_data.sql +922 -0
  1294. package/dist/templates/projects/productivity/migrations/999a_initial_sample_data.sql +377 -0
  1295. package/dist/templates/projects/productivity/migrations/999b_abundant_sample_data.sql +346 -0
  1296. package/dist/templates/projects/productivity/package.json +29 -0
  1297. package/dist/templates/projects/productivity/permissions-matrix.md +122 -0
  1298. package/dist/templates/projects/productivity/styles/components.css +460 -0
  1299. package/dist/templates/projects/productivity/styles/globals.css +608 -0
  1300. package/dist/templates/projects/productivity/templates/dashboard/(main)/boards/[id]/[cardId]/page.tsx +239 -0
  1301. package/dist/templates/projects/productivity/templates/dashboard/(main)/boards/[id]/edit/page.tsx +391 -0
  1302. package/dist/templates/projects/productivity/templates/dashboard/(main)/boards/[id]/page.tsx +237 -0
  1303. package/dist/templates/projects/productivity/templates/dashboard/(main)/boards/create/page.tsx +237 -0
  1304. package/dist/templates/projects/productivity/templates/dashboard/(main)/boards/page.tsx +336 -0
  1305. package/dist/templates/projects/productivity/templates/dashboard/(main)/layout.tsx +32 -0
  1306. package/dist/templates/projects/productivity/templates/dashboard/(main)/page.tsx +593 -0
  1307. package/dist/templates/projects/productivity/templates/shared/ProductivityMobileNav.tsx +411 -0
  1308. package/dist/templates/projects/productivity/templates/shared/ProductivitySidebar.tsx +539 -0
  1309. package/dist/templates/projects/productivity/templates/shared/ProductivityTopBar.tsx +318 -0
  1310. package/dist/templates/projects/productivity/tests/cypress/e2e/ui/boards/boards-owner.cy.ts +349 -0
  1311. package/dist/templates/projects/productivity/tests/cypress/e2e/ui/cards/cards-modal.cy.ts +369 -0
  1312. package/dist/templates/projects/productivity/tests/cypress/e2e/ui/kanban/kanban-cards.cy.ts +280 -0
  1313. package/dist/templates/projects/productivity/tests/cypress/e2e/ui/kanban/kanban-columns.cy.ts +243 -0
  1314. package/dist/templates/projects/productivity/tests/cypress/fixtures/blocks.json +9 -0
  1315. package/dist/templates/projects/productivity/tests/cypress/fixtures/entities.json +60 -0
  1316. package/dist/templates/projects/productivity/tests/cypress/src/components/BoardsPOM.ts +353 -0
  1317. package/dist/templates/projects/productivity/tests/cypress/src/components/CardsPOM.ts +383 -0
  1318. package/dist/templates/projects/productivity/tests/cypress/src/components/KanbanPOM.ts +399 -0
  1319. package/dist/templates/projects/productivity/tests/cypress/src/components/index.ts +9 -0
  1320. package/dist/templates/projects/productivity/tests/cypress/src/controllers/BoardsAPIController.js +302 -0
  1321. package/dist/templates/projects/productivity/tests/cypress/src/controllers/CardsAPIController.js +406 -0
  1322. package/dist/templates/projects/productivity/tests/cypress/src/controllers/ListsAPIController.js +299 -0
  1323. package/dist/templates/projects/productivity/tests/cypress/src/index.ts +25 -0
  1324. package/dist/templates/projects/productivity/tests/cypress/src/selectors.ts +50 -0
  1325. package/dist/templates/projects/productivity/tests/cypress/src/session-helpers.ts +176 -0
  1326. package/dist/templates/projects/productivity/tests/cypress/support/e2e.ts +90 -0
  1327. package/dist/templates/projects/productivity/tests/cypress.config.ts +149 -0
  1328. package/dist/templates/projects/productivity/tests/tsconfig.json +7 -0
  1329. package/dist/templates/projects/starter/blocks/cta-section/config.ts +10 -0
  1330. package/dist/templates/projects/starter/blocks/features-grid/config.ts +10 -0
  1331. package/dist/templates/projects/starter/blocks/hero/config.ts +10 -0
  1332. package/dist/templates/projects/starter/blocks/testimonials/config.ts +10 -0
  1333. package/dist/templates/projects/starter/blocks/text-content/config.ts +10 -0
  1334. package/dist/templates/projects/starter/emails/_README.md +69 -0
  1335. package/dist/templates/projects/starter/entities/pages/pages.config.ts +95 -0
  1336. package/dist/templates/projects/starter/entities/posts/posts.config.ts +102 -0
  1337. package/dist/templates/projects/starter/entities/tasks/tasks.config.ts +82 -0
  1338. package/dist/templates/projects/starter/styles/globals.css +213 -0
  1339. package/dist/templates/projects/starter/templates/(public)/page.tsx +49 -0
  1340. package/dist/templates/projects/starter/tests/cypress/e2e/_utils/docs/README.md +215 -0
  1341. package/dist/templates/projects/starter/tests/cypress/e2e/_utils/selectors/block-editor.bdd.md +491 -0
  1342. package/dist/templates/projects/starter/tests/cypress/e2e/_utils/selectors/dashboard-navigation.bdd.md +147 -0
  1343. package/dist/templates/projects/starter/tests/cypress/e2e/_utils/selectors/dashboard-sidebar.bdd.md +76 -0
  1344. package/dist/templates/projects/starter/tests/cypress/e2e/_utils/selectors/dashboard-topnav.bdd.md +326 -0
  1345. package/dist/templates/projects/starter/tests/cypress/e2e/_utils/selectors/patterns.bdd.md +388 -0
  1346. package/dist/templates/projects/starter/tests/cypress/e2e/_utils/selectors/settings-api-keys.bdd.md +266 -0
  1347. package/dist/templates/projects/starter/tests/cypress/e2e/_utils/selectors/settings-billing.bdd.md +78 -0
  1348. package/dist/templates/projects/starter/tests/cypress/e2e/_utils/selectors/settings-layout.bdd.md +129 -0
  1349. package/dist/templates/projects/starter/tests/cypress/e2e/_utils/selectors/settings-password.bdd.md +82 -0
  1350. package/dist/templates/projects/starter/tests/cypress/e2e/_utils/selectors/settings-profile.bdd.md +77 -0
  1351. package/dist/templates/projects/starter/tests/cypress/e2e/_utils/selectors/settings-teams.bdd.md +130 -0
  1352. package/dist/templates/projects/starter/tests/cypress/e2e/_utils/selectors/superadmin.bdd.md +261 -0
  1353. package/dist/templates/projects/starter/tests/cypress/e2e/_utils/selectors/tasks.bdd.md +593 -0
  1354. package/dist/templates/projects/starter/tests/cypress/e2e/_utils/selectors/teams.bdd.md +278 -0
  1355. package/dist/templates/projects/starter/tests/cypress/src/session-helpers.ts +548 -0
  1356. package/dist/templates/projects/starter/tests/cypress.config.ts +215 -0
  1357. package/dist/templates/projects/starter/tests/jest/example.test.tsx +87 -0
  1358. package/dist/templates/projects/starter/tests/jest/jest.config.cjs +92 -0
  1359. package/dist/templates/projects/starter/tests/jest/services/tasks.service.test.ts +547 -0
  1360. package/dist/templates/projects/starter/tests/jest/tsconfig.jest.json +8 -0
  1361. package/dist/templates/projects/starter/tests/tsconfig.json +7 -0
  1362. package/dist/templates/proxy.ts +366 -107
  1363. package/dist/templates/public/uploads/README.md +1 -1
  1364. package/dist/templates/scripts/cy-run-prod.cjs +6 -34
  1365. package/dist/templates/tsconfig.cypress.json +4 -5
  1366. package/dist/templates/tsconfig.json +8 -16
  1367. package/dist/types/api-presets.d.ts +2 -2
  1368. package/dist/types/blocks.d.ts +15 -18
  1369. package/dist/types/blocks.d.ts.map +1 -1
  1370. package/dist/types/blocks.js +1 -8
  1371. package/dist/types/index.d.ts +2 -0
  1372. package/dist/types/index.d.ts.map +1 -1
  1373. package/dist/types/index.js +3 -0
  1374. package/dist/types/plugin.d.ts +40 -0
  1375. package/dist/types/plugin.d.ts.map +1 -1
  1376. package/dist/types/plugin.js +23 -0
  1377. package/dist/types/theme.d.ts +0 -25
  1378. package/dist/types/theme.d.ts.map +1 -1
  1379. package/dist/types/user.types.d.ts +3 -3
  1380. package/dist/types/user.types.d.ts.map +1 -1
  1381. package/dist/types/user.types.js +6 -6
  1382. package/globals.css +5 -7
  1383. package/migrations/028_api_audit_log_insert_policy.sql +18 -0
  1384. package/migrations/090_sample_data.sql +2 -2
  1385. package/migrations/README.md +7 -7
  1386. package/package.json +22 -20
  1387. package/scripts/build/auth-readiness-load.mjs +57 -0
  1388. package/scripts/build/auth-readiness.mjs +210 -0
  1389. package/scripts/build/config-loader.mjs +36 -60
  1390. package/scripts/build/docs-registry.mjs +6 -84
  1391. package/scripts/build/mobile-boundary.mjs +525 -0
  1392. package/scripts/build/registry/__tests__/api-docs-colocated.test.mjs +105 -0
  1393. package/scripts/build/registry/__tests__/billing-registry.test.mjs +8 -4
  1394. package/scripts/build/registry/__tests__/block-registry.test.mjs +101 -5
  1395. package/scripts/build/registry/__tests__/build-output.test.mjs +12 -87
  1396. package/scripts/build/registry/__tests__/config-loader-root-first.test.mjs +33 -0
  1397. package/scripts/build/registry/__tests__/icons-discovery.test.mjs +99 -29
  1398. package/scripts/build/registry/__tests__/mcp-registry.test.mjs +6 -6
  1399. package/scripts/build/registry/__tests__/packaged-plugin-discovery.test.mjs +42 -0
  1400. package/scripts/build/registry/__tests__/plugin-capabilities.test.mjs +1030 -0
  1401. package/scripts/build/registry/__tests__/plugin-registry-types.test.mjs +69 -0
  1402. package/scripts/build/registry/__tests__/project-mode-root-first.test.mjs +175 -0
  1403. package/scripts/build/registry/__tests__/safe-fs.test.mjs +5 -29
  1404. package/scripts/build/registry/__tests__/scheduled-actions-registry.test.mjs +2 -2
  1405. package/scripts/build/registry/__tests__/theme-registry.test.mjs +117 -0
  1406. package/scripts/build/registry/__tests__/translation-registry-root-first.test.mjs +38 -0
  1407. package/scripts/build/registry/__tests__/write-places.test.mjs +52 -119
  1408. package/scripts/build/registry/config.mjs +29 -167
  1409. package/scripts/build/registry/contracts/README.md +120 -0
  1410. package/scripts/build/registry/contracts/__tests__/contracts-wire.test.mjs +168 -0
  1411. package/scripts/build/registry/contracts/__tests__/contracts.test.mjs +590 -0
  1412. package/scripts/build/registry/contracts/index.mjs +162 -0
  1413. package/scripts/build/registry/contracts/portable.mjs +58 -0
  1414. package/scripts/build/registry/contracts/publish.mjs +191 -0
  1415. package/scripts/build/registry/contracts/read-columns.mjs +96 -0
  1416. package/scripts/build/registry/contracts/read-entities.mjs +418 -0
  1417. package/scripts/build/registry/contracts/render.mjs +341 -0
  1418. package/scripts/build/registry/discovery/all-entities.mjs +57 -0
  1419. package/scripts/build/registry/discovery/api-presets.mjs +23 -46
  1420. package/scripts/build/registry/discovery/auth.mjs +3 -4
  1421. package/scripts/build/registry/discovery/blocks.mjs +126 -17
  1422. package/scripts/build/registry/discovery/core-routes.mjs +23 -73
  1423. package/scripts/build/registry/discovery/emails.mjs +14 -19
  1424. package/scripts/build/registry/discovery/entities.mjs +14 -18
  1425. package/scripts/build/registry/discovery/icons.mjs +6 -15
  1426. package/scripts/build/registry/discovery/index.mjs +0 -1
  1427. package/scripts/build/registry/discovery/mcp-overrides.mjs +6 -12
  1428. package/scripts/build/registry/discovery/mcp-overrides.test.mjs +24 -63
  1429. package/scripts/build/registry/discovery/middlewares.mjs +21 -82
  1430. package/scripts/build/registry/discovery/parent-child.mjs +2 -6
  1431. package/scripts/build/registry/discovery/permissions.mjs +8 -13
  1432. package/scripts/build/registry/discovery/plugin-capabilities.mjs +912 -0
  1433. package/scripts/build/registry/discovery/plugins.mjs +55 -90
  1434. package/scripts/build/registry/discovery/themes.mjs +79 -385
  1435. package/scripts/build/registry/generators/api-presets-registry.mjs +4 -4
  1436. package/scripts/build/registry/generators/billing-registry.mjs +17 -40
  1437. package/scripts/build/registry/generators/block-registry.mjs +42 -3
  1438. package/scripts/build/registry/generators/docs-registry.mjs +11 -30
  1439. package/scripts/build/registry/generators/email-registry.mjs +4 -4
  1440. package/scripts/build/registry/generators/entity-registry.mjs +3 -3
  1441. package/scripts/build/registry/generators/feature-registry.mjs +5 -7
  1442. package/scripts/build/registry/generators/index.mjs +2 -2
  1443. package/scripts/build/registry/generators/middleware-registry.mjs +2 -2
  1444. package/scripts/build/registry/generators/permissions-registry.mjs +5 -11
  1445. package/scripts/build/registry/generators/plugin-catalog.mjs +73 -0
  1446. package/scripts/build/registry/generators/plugin-registry.mjs +3 -1
  1447. package/scripts/build/registry/generators/route-handlers.mjs +11 -105
  1448. package/scripts/build/registry/generators/theme-registry.mjs +170 -1
  1449. package/scripts/build/registry/generators/translation-registry.mjs +37 -71
  1450. package/scripts/build/registry/generators/unified-registry.mjs +4 -10
  1451. package/scripts/build/registry/host/README.md +296 -0
  1452. package/scripts/build/registry/host/__tests__/diag-write-child.mjs +6 -0
  1453. package/scripts/build/registry/host/__tests__/facade-emitter.test.mjs +659 -0
  1454. package/scripts/build/registry/host/__tests__/host-area-access.test.mjs +278 -0
  1455. package/scripts/build/registry/host/__tests__/host-composition.test.mjs +286 -0
  1456. package/scripts/build/registry/host/__tests__/host-entities.test.mjs +886 -0
  1457. package/scripts/build/registry/host/__tests__/host-generation.test.mjs +382 -0
  1458. package/scripts/build/registry/host/__tests__/host-helpers.mjs +88 -0
  1459. package/scripts/build/registry/host/__tests__/host-mode.test.mjs +153 -0
  1460. package/scripts/build/registry/host/__tests__/host-plan.test.mjs +362 -0
  1461. package/scripts/build/registry/host/__tests__/host-project-composition.test.mjs +269 -0
  1462. package/scripts/build/registry/host/__tests__/host-project.test.mjs +80 -0
  1463. package/scripts/build/registry/host/__tests__/host-proxy-areas.test.mjs +69 -0
  1464. package/scripts/build/registry/host/__tests__/host-robustness.test.mjs +525 -0
  1465. package/scripts/build/registry/host/__tests__/host-watch.test.mjs +162 -0
  1466. package/scripts/build/registry/host/__tests__/lock-race-child.mjs +19 -0
  1467. package/scripts/build/registry/host/__tests__/publish-crash-child.mjs +6 -0
  1468. package/scripts/build/registry/host/__tests__/static-imports.test.mjs +254 -0
  1469. package/scripts/build/registry/host/core-routes.mjs +307 -0
  1470. package/scripts/build/registry/host/entity-routes.mjs +392 -0
  1471. package/scripts/build/registry/host/facade-emitter.mjs +666 -0
  1472. package/scripts/build/registry/host/generation.mjs +723 -0
  1473. package/scripts/build/registry/host/mode.mjs +57 -0
  1474. package/scripts/build/registry/host/next-literal.mjs +87 -0
  1475. package/scripts/build/registry/host/next-route-exports.json +366 -0
  1476. package/scripts/build/registry/host/plan.mjs +668 -0
  1477. package/scripts/build/registry/host/prepare-cli.mjs +191 -0
  1478. package/scripts/build/registry/host/prepare.mjs +722 -0
  1479. package/scripts/build/registry/host/proxy-areas.mjs +56 -0
  1480. package/scripts/build/registry/host/render.mjs +437 -0
  1481. package/scripts/build/registry/host/static-imports.mjs +317 -0
  1482. package/scripts/build/registry/host/webhooks.mjs +93 -0
  1483. package/scripts/build/registry/index.mjs +4 -13
  1484. package/scripts/build/registry/post-build/index.mjs +1 -8
  1485. package/scripts/build/registry/post-build/own-gitignores.mjs +3 -4
  1486. package/scripts/build/registry/post-build/test-fixtures.mjs +20 -30
  1487. package/scripts/build/registry/post-build/tree-display.mjs +6 -6
  1488. package/scripts/build/registry/project-mode.mjs +224 -51
  1489. package/scripts/build/registry/validate-env.test.mjs +4 -89
  1490. package/scripts/build/registry/validation/entity-validator.mjs +5 -6
  1491. package/scripts/build/registry/write-places.mjs +34 -79
  1492. package/scripts/build/registry.mjs +54 -143
  1493. package/scripts/build/routes-manifest.mjs +214 -0
  1494. package/scripts/build/safe-fs.mjs +1 -2
  1495. package/scripts/build/update-tsconfig.mjs +26 -204
  1496. package/scripts/create-plugin.mjs +10 -8
  1497. package/scripts/create-theme.mjs +2 -305
  1498. package/scripts/db/run-migrations.mjs +24 -86
  1499. package/scripts/db/theme-location.mjs +23 -44
  1500. package/scripts/db/verify-theme-migrations.mjs +16 -5
  1501. package/scripts/deploy/vercel-deploy.mjs +8 -10
  1502. package/scripts/dev/watch-plugins.mjs +39 -130
  1503. package/scripts/maintenance/core-updater.mjs +29 -36
  1504. package/scripts/maintenance/step-guard.mjs +1 -1
  1505. package/scripts/postinstall.mjs +25 -43
  1506. package/scripts/setup/setup-ci.mjs +2 -3
  1507. package/scripts/test/build-entities.mjs +27 -107
  1508. package/scripts/test/cy.mjs +29 -125
  1509. package/scripts/test/jest.mjs +22 -50
  1510. package/scripts/update-registry-imports.mjs +0 -1
  1511. package/scripts/validation/check-imports.sh +33 -213
  1512. package/src/lib/entities/portable/media-ref.ts +24 -0
  1513. package/src/lib/entities/portable/response-shape.ts +80 -0
  1514. package/src/lib/entities/portable/schema-generator.ts +965 -0
  1515. package/src/lib/entities/portable/system-fields.ts +11 -0
  1516. package/src/lib/entities/portable/types.ts +71 -0
  1517. package/templates/blocks/README.md +6 -12
  1518. package/templates/blocks/cta-section/config.ts +0 -1
  1519. package/templates/blocks/cta-section/thumbnail.png +0 -0
  1520. package/templates/blocks/features-grid/config.ts +0 -1
  1521. package/templates/blocks/features-grid/thumbnail.png +0 -0
  1522. package/templates/blocks/hero/config.ts +0 -1
  1523. package/templates/blocks/hero/thumbnail.png +0 -0
  1524. package/templates/blocks/testimonials/config.ts +0 -1
  1525. package/templates/blocks/testimonials/thumbnail.png +0 -0
  1526. package/templates/blocks/text-content/config.ts +0 -1
  1527. package/templates/blocks/text-content/thumbnail.png +0 -0
  1528. package/templates/ci-workflows/README.md +4 -5
  1529. package/templates/ci-workflows/github/cypress-regression.yml +7 -14
  1530. package/templates/ci-workflows/github/cypress-smoke.yml +3 -5
  1531. package/templates/eslint.config.mjs +3 -3
  1532. package/templates/features/blog/blocks/post-content/config.ts +0 -1
  1533. package/templates/features/blog/entities/posts/posts.config.ts +1 -1
  1534. package/templates/features/pages/blocks/hero/config.ts +0 -1
  1535. package/templates/features/pages/entities/pages/pages.config.ts +1 -1
  1536. package/templates/instrumentation.ts +9 -0
  1537. package/templates/migrations/README.md +2 -2
  1538. package/templates/next.config.mjs +34 -8
  1539. package/templates/plugins/README.md +42 -0
  1540. package/templates/plugins/starter/plugin/README.md.template +97 -0
  1541. package/templates/plugins/starter/plugin/api/example/route.ts.template +94 -0
  1542. package/templates/plugins/starter/plugin/hooks/usePlugin.ts.template +102 -0
  1543. package/templates/pnpm-workspace.yaml +3 -5
  1544. package/templates/projects/blog/README.md +62 -0
  1545. package/templates/projects/blog/about.md +93 -0
  1546. package/templates/projects/blog/api/authors/[username]/route.ts +153 -0
  1547. package/templates/projects/blog/api/authors/docs.md +135 -0
  1548. package/templates/projects/blog/api/authors/presets.ts +45 -0
  1549. package/templates/projects/blog/api/authors/route.ts +66 -0
  1550. package/templates/projects/blog/api/posts/public/docs.md +124 -0
  1551. package/templates/projects/blog/api/posts/public/presets.ts +65 -0
  1552. package/templates/projects/blog/api/posts/public/route.ts +154 -0
  1553. package/templates/projects/blog/components/ExportPostsButton.tsx +103 -0
  1554. package/templates/projects/blog/components/ImportPostsDialog.tsx +285 -0
  1555. package/templates/projects/blog/components/PostsToolbar.tsx +24 -0
  1556. package/templates/projects/blog/components/editor/FeaturedImageUpload.tsx +186 -0
  1557. package/templates/projects/blog/components/editor/WysiwygEditor.tsx +389 -0
  1558. package/templates/projects/blog/components/index.ts +4 -0
  1559. package/templates/projects/blog/components/public/AuthorBio.tsx +106 -0
  1560. package/templates/projects/blog/components/public/AuthorCard.tsx +131 -0
  1561. package/templates/projects/blog/components/public/BlogFooter.tsx +186 -0
  1562. package/templates/projects/blog/components/public/BlogNavbar.tsx +201 -0
  1563. package/templates/projects/blog/components/public/PostCard.tsx +307 -0
  1564. package/templates/projects/blog/components/public/ReadingProgress.tsx +70 -0
  1565. package/templates/projects/blog/components/public/RelatedPosts.tsx +79 -0
  1566. package/templates/projects/blog/config/app.config.ts +193 -0
  1567. package/templates/projects/blog/config/billing.config.ts +143 -0
  1568. package/templates/projects/blog/config/dashboard.config.ts +346 -0
  1569. package/templates/projects/blog/config/dev.config.ts +48 -0
  1570. package/templates/projects/blog/config/features.config.ts +196 -0
  1571. package/templates/projects/blog/config/flows.config.ts +333 -0
  1572. package/templates/projects/blog/config/permissions.config.ts +112 -0
  1573. package/templates/projects/blog/config/theme.config.ts +128 -0
  1574. package/templates/projects/blog/entities/categories/api/docs.md +119 -0
  1575. package/templates/projects/blog/entities/categories/api/presets.ts +67 -0
  1576. package/templates/projects/blog/entities/categories/categories.config.ts +60 -0
  1577. package/templates/projects/blog/entities/categories/categories.fields.ts +115 -0
  1578. package/templates/projects/blog/entities/categories/categories.service.ts +333 -0
  1579. package/templates/projects/blog/entities/categories/categories.types.ts +58 -0
  1580. package/templates/projects/blog/entities/categories/messages/en.json +33 -0
  1581. package/templates/projects/blog/entities/categories/messages/es.json +33 -0
  1582. package/templates/projects/blog/entities/posts/api/docs.md +174 -0
  1583. package/templates/projects/blog/entities/posts/api/presets.ts +137 -0
  1584. package/templates/projects/blog/entities/posts/messages/en.json +100 -0
  1585. package/templates/projects/blog/entities/posts/messages/es.json +100 -0
  1586. package/templates/projects/blog/entities/posts/migrations/001_posts_table.sql +110 -0
  1587. package/templates/projects/blog/entities/posts/migrations/002_add_featured.sql +19 -0
  1588. package/templates/projects/blog/entities/posts/migrations/003_post_categories_pivot.sql +47 -0
  1589. package/templates/projects/blog/entities/posts/posts.config.ts +61 -0
  1590. package/templates/projects/blog/entities/posts/posts.fields.ts +234 -0
  1591. package/templates/projects/blog/entities/posts/posts.service.ts +464 -0
  1592. package/templates/projects/blog/entities/posts/posts.types.ts +80 -0
  1593. package/templates/projects/blog/lib/sanitize-post-html.ts +52 -0
  1594. package/templates/projects/blog/lib/selectors.ts +178 -0
  1595. package/templates/projects/blog/messages/en.json +113 -0
  1596. package/templates/projects/blog/messages/es.json +113 -0
  1597. package/templates/projects/blog/migrations/002_author_profile_fields.sql +37 -0
  1598. package/templates/projects/blog/migrations/003_categories_table.sql +90 -0
  1599. package/templates/projects/blog/migrations/090_billing_sample_data.sql +99 -0
  1600. package/templates/projects/blog/migrations/999_sample_data.sql +412 -0
  1601. package/templates/projects/blog/migrations/999_theme_sample_data.sql +1070 -0
  1602. package/templates/projects/blog/package.json +30 -0
  1603. package/templates/projects/blog/permissions-matrix.md +63 -0
  1604. package/templates/projects/blog/styles/article.css +333 -0
  1605. package/templates/projects/blog/styles/components.css +204 -0
  1606. package/templates/projects/blog/styles/globals.css +384 -0
  1607. package/templates/projects/blog/styles/theme.css +167 -0
  1608. package/templates/projects/blog/templates/(public)/author/[username]/page.tsx +248 -0
  1609. package/templates/projects/blog/templates/(public)/authors/page.tsx +162 -0
  1610. package/templates/projects/blog/templates/(public)/layout.tsx +44 -0
  1611. package/templates/projects/blog/templates/(public)/page.tsx +277 -0
  1612. package/templates/projects/blog/templates/(public)/posts/[slug]/page.tsx +344 -0
  1613. package/templates/projects/blog/templates/dashboard/(main)/page.tsx +386 -0
  1614. package/templates/projects/blog/templates/dashboard/(main)/posts/[id]/edit/page.tsx +530 -0
  1615. package/templates/projects/blog/templates/dashboard/(main)/posts/[id]/page.tsx +33 -0
  1616. package/templates/projects/blog/templates/dashboard/(main)/posts/create/page.tsx +354 -0
  1617. package/templates/projects/blog/templates/dashboard/(main)/posts/page.tsx +834 -0
  1618. package/templates/projects/blog/tests/cypress/e2e/README.md +170 -0
  1619. package/templates/projects/blog/tests/cypress/e2e/categories/categories-crud.cy.ts +322 -0
  1620. package/templates/projects/blog/tests/cypress/e2e/categories/categories-crud.md +73 -0
  1621. package/templates/projects/blog/tests/cypress/e2e/posts/posts-crud.cy.ts +460 -0
  1622. package/templates/projects/blog/tests/cypress/e2e/posts/posts-crud.md +115 -0
  1623. package/templates/projects/blog/tests/cypress/e2e/posts/posts-editor.cy.ts +290 -0
  1624. package/templates/projects/blog/tests/cypress/e2e/posts/posts-editor.md +139 -0
  1625. package/templates/projects/blog/tests/cypress/e2e/posts/posts-status-workflow.cy.ts +302 -0
  1626. package/templates/projects/blog/tests/cypress/e2e/posts/posts-status-workflow.md +83 -0
  1627. package/templates/projects/blog/tests/cypress/fixtures/blocks.json +9 -0
  1628. package/templates/projects/blog/tests/cypress/fixtures/entities.json +51 -0
  1629. package/templates/projects/blog/tests/cypress/src/FeaturedImageUpload.js +131 -0
  1630. package/templates/projects/blog/tests/cypress/src/PostEditor.js +386 -0
  1631. package/templates/projects/blog/tests/cypress/src/PostsList.js +350 -0
  1632. package/templates/projects/blog/tests/cypress/src/WysiwygEditor.js +373 -0
  1633. package/templates/projects/blog/tests/cypress/src/components/EntityForm.ts +378 -0
  1634. package/templates/projects/blog/tests/cypress/src/components/EntityList.ts +378 -0
  1635. package/templates/projects/blog/tests/cypress/src/components/PostEditorPOM.ts +447 -0
  1636. package/templates/projects/blog/tests/cypress/src/components/PostsPOM.ts +362 -0
  1637. package/templates/projects/blog/tests/cypress/src/components/index.ts +18 -0
  1638. package/templates/projects/blog/tests/cypress/src/index.js +33 -0
  1639. package/templates/projects/blog/tests/cypress/src/selectors.ts +49 -0
  1640. package/templates/projects/blog/tests/cypress/src/session-helpers.ts +151 -0
  1641. package/templates/projects/blog/tests/cypress/support/e2e.ts +90 -0
  1642. package/templates/projects/blog/tests/cypress.config.ts +149 -0
  1643. package/templates/projects/blog/tests/jest/__mocks__/jose.js +22 -0
  1644. package/templates/projects/blog/tests/jest/__mocks__/next-server.js +56 -0
  1645. package/templates/projects/blog/tests/jest/components/WysiwygEditor.test.tsx +118 -0
  1646. package/templates/projects/blog/tests/jest/jest.config.cjs +104 -0
  1647. package/templates/projects/blog/tests/jest/lib/sanitize-post-html.test.ts +48 -0
  1648. package/templates/projects/blog/tests/jest/setup.ts +170 -0
  1649. package/templates/projects/blog/tests/jest/tsconfig.jest.json +6 -0
  1650. package/templates/projects/blog/tests/tsconfig.json +7 -0
  1651. package/templates/projects/crm/CRM_PLAN.md +343 -0
  1652. package/templates/projects/crm/about.md +122 -0
  1653. package/templates/projects/crm/config/app.config.ts +178 -0
  1654. package/templates/projects/crm/config/billing.config.ts +184 -0
  1655. package/templates/projects/crm/config/dashboard.config.ts +385 -0
  1656. package/templates/projects/crm/config/dev.config.ts +55 -0
  1657. package/templates/projects/crm/config/features.config.ts +336 -0
  1658. package/templates/projects/crm/config/flows.config.ts +511 -0
  1659. package/templates/projects/crm/config/permissions.config.ts +308 -0
  1660. package/templates/projects/crm/config/theme.config.ts +111 -0
  1661. package/templates/projects/crm/entities/activities/activities.config.ts +61 -0
  1662. package/templates/projects/crm/entities/activities/activities.fields.ts +362 -0
  1663. package/templates/projects/crm/entities/activities/activities.service.ts +503 -0
  1664. package/templates/projects/crm/entities/activities/activities.types.ts +117 -0
  1665. package/templates/projects/crm/entities/activities/api/docs.md +146 -0
  1666. package/templates/projects/crm/entities/activities/api/presets.ts +132 -0
  1667. package/templates/projects/crm/entities/activities/messages/en.json +123 -0
  1668. package/templates/projects/crm/entities/activities/messages/es.json +123 -0
  1669. package/templates/projects/crm/entities/activities/migrations/020_activities_table.sql +123 -0
  1670. package/templates/projects/crm/entities/activities/migrations/021_activities_metas.sql +114 -0
  1671. package/templates/projects/crm/entities/activities/migrations/022_activities_sample_data.sql +420 -0
  1672. package/templates/projects/crm/entities/campaigns/api/docs.md +140 -0
  1673. package/templates/projects/crm/entities/campaigns/api/presets.ts +147 -0
  1674. package/templates/projects/crm/entities/campaigns/campaigns.config.ts +61 -0
  1675. package/templates/projects/crm/entities/campaigns/campaigns.fields.ts +413 -0
  1676. package/templates/projects/crm/entities/campaigns/campaigns.service.ts +426 -0
  1677. package/templates/projects/crm/entities/campaigns/campaigns.types.ts +124 -0
  1678. package/templates/projects/crm/entities/campaigns/messages/en.json +145 -0
  1679. package/templates/projects/crm/entities/campaigns/messages/es.json +145 -0
  1680. package/templates/projects/crm/entities/campaigns/migrations/001_campaigns_table.sql +127 -0
  1681. package/templates/projects/crm/entities/campaigns/migrations/002_campaigns_metas.sql +114 -0
  1682. package/templates/projects/crm/entities/campaigns/migrations/003_campaigns_sample_data.sql +364 -0
  1683. package/templates/projects/crm/entities/companies/api/docs.md +139 -0
  1684. package/templates/projects/crm/entities/companies/api/presets.ts +107 -0
  1685. package/templates/projects/crm/entities/companies/companies.config.ts +61 -0
  1686. package/templates/projects/crm/entities/companies/companies.fields.ts +429 -0
  1687. package/templates/projects/crm/entities/companies/companies.service.ts +566 -0
  1688. package/templates/projects/crm/entities/companies/companies.types.ts +125 -0
  1689. package/templates/projects/crm/entities/companies/messages/en.json +146 -0
  1690. package/templates/projects/crm/entities/companies/messages/es.json +146 -0
  1691. package/templates/projects/crm/entities/companies/migrations/001_companies_table.sql +150 -0
  1692. package/templates/projects/crm/entities/companies/migrations/002_companies_metas.sql +114 -0
  1693. package/templates/projects/crm/entities/companies/migrations/003_companies_sample_data.sql +246 -0
  1694. package/templates/projects/crm/entities/contacts/api/docs.md +139 -0
  1695. package/templates/projects/crm/entities/contacts/api/presets.ts +98 -0
  1696. package/templates/projects/crm/entities/contacts/contacts.config.ts +61 -0
  1697. package/templates/projects/crm/entities/contacts/contacts.fields.ts +359 -0
  1698. package/templates/projects/crm/entities/contacts/contacts.service.ts +509 -0
  1699. package/templates/projects/crm/entities/contacts/contacts.types.ts +108 -0
  1700. package/templates/projects/crm/entities/contacts/messages/en.json +117 -0
  1701. package/templates/projects/crm/entities/contacts/messages/es.json +117 -0
  1702. package/templates/projects/crm/entities/contacts/migrations/001_contacts_table.sql +134 -0
  1703. package/templates/projects/crm/entities/contacts/migrations/002_contacts_metas.sql +114 -0
  1704. package/templates/projects/crm/entities/contacts/migrations/003_contacts_sample_data.sql +421 -0
  1705. package/templates/projects/crm/entities/leads/api/docs.md +132 -0
  1706. package/templates/projects/crm/entities/leads/api/presets.ts +109 -0
  1707. package/templates/projects/crm/entities/leads/leads.config.ts +61 -0
  1708. package/templates/projects/crm/entities/leads/leads.fields.ts +336 -0
  1709. package/templates/projects/crm/entities/leads/leads.service.ts +496 -0
  1710. package/templates/projects/crm/entities/leads/leads.types.ts +114 -0
  1711. package/templates/projects/crm/entities/leads/messages/en.json +132 -0
  1712. package/templates/projects/crm/entities/leads/messages/es.json +132 -0
  1713. package/templates/projects/crm/entities/leads/migrations/001_leads_table.sql +150 -0
  1714. package/templates/projects/crm/entities/leads/migrations/002_leads_metas.sql +120 -0
  1715. package/templates/projects/crm/entities/leads/migrations/003_leads_sample_data.sql +242 -0
  1716. package/templates/projects/crm/entities/notes/api/docs.md +135 -0
  1717. package/templates/projects/crm/entities/notes/api/presets.ts +115 -0
  1718. package/templates/projects/crm/entities/notes/messages/en.json +114 -0
  1719. package/templates/projects/crm/entities/notes/messages/es.json +114 -0
  1720. package/templates/projects/crm/entities/notes/migrations/020_notes_table.sql +118 -0
  1721. package/templates/projects/crm/entities/notes/migrations/021_notes_metas.sql +114 -0
  1722. package/templates/projects/crm/entities/notes/migrations/022_notes_sample_data.sql +275 -0
  1723. package/templates/projects/crm/entities/notes/notes.config.ts +61 -0
  1724. package/templates/projects/crm/entities/notes/notes.fields.ts +283 -0
  1725. package/templates/projects/crm/entities/notes/notes.service.ts +320 -0
  1726. package/templates/projects/crm/entities/notes/notes.types.ts +102 -0
  1727. package/templates/projects/crm/entities/opportunities/api/docs.md +151 -0
  1728. package/templates/projects/crm/entities/opportunities/api/presets.ts +151 -0
  1729. package/templates/projects/crm/entities/opportunities/messages/en.json +107 -0
  1730. package/templates/projects/crm/entities/opportunities/messages/es.json +107 -0
  1731. package/templates/projects/crm/entities/opportunities/migrations/010_opportunities_table.sql +145 -0
  1732. package/templates/projects/crm/entities/opportunities/migrations/011_opportunities_metas.sql +114 -0
  1733. package/templates/projects/crm/entities/opportunities/migrations/012_opportunities_sample_data.sql +438 -0
  1734. package/templates/projects/crm/entities/opportunities/opportunities.config.ts +61 -0
  1735. package/templates/projects/crm/entities/opportunities/opportunities.fields.ts +416 -0
  1736. package/templates/projects/crm/entities/opportunities/opportunities.service.ts +525 -0
  1737. package/templates/projects/crm/entities/opportunities/opportunities.types.ts +135 -0
  1738. package/templates/projects/crm/entities/pipelines/api/docs.md +145 -0
  1739. package/templates/projects/crm/entities/pipelines/api/presets.ts +118 -0
  1740. package/templates/projects/crm/entities/pipelines/messages/en.json +115 -0
  1741. package/templates/projects/crm/entities/pipelines/messages/es.json +115 -0
  1742. package/templates/projects/crm/entities/pipelines/migrations/001_pipelines_table.sql +106 -0
  1743. package/templates/projects/crm/entities/pipelines/migrations/002_pipelines_metas.sql +114 -0
  1744. package/templates/projects/crm/entities/pipelines/migrations/003_pipelines_sample_data.sql +91 -0
  1745. package/templates/projects/crm/entities/pipelines/pipelines.config.ts +62 -0
  1746. package/templates/projects/crm/entities/pipelines/pipelines.fields.ts +193 -0
  1747. package/templates/projects/crm/entities/pipelines/pipelines.service.ts +383 -0
  1748. package/templates/projects/crm/entities/pipelines/pipelines.types.ts +78 -0
  1749. package/templates/projects/crm/entities/products/api/docs.md +137 -0
  1750. package/templates/projects/crm/entities/products/api/presets.ts +132 -0
  1751. package/templates/projects/crm/entities/products/messages/en.json +135 -0
  1752. package/templates/projects/crm/entities/products/messages/es.json +135 -0
  1753. package/templates/projects/crm/entities/products/migrations/001_products_table.sql +117 -0
  1754. package/templates/projects/crm/entities/products/migrations/002_products_metas.sql +114 -0
  1755. package/templates/projects/crm/entities/products/migrations/003_products_sample_data.sql +247 -0
  1756. package/templates/projects/crm/entities/products/products.config.ts +62 -0
  1757. package/templates/projects/crm/entities/products/products.fields.ts +361 -0
  1758. package/templates/projects/crm/entities/products/products.service.ts +437 -0
  1759. package/templates/projects/crm/entities/products/products.types.ts +125 -0
  1760. package/templates/projects/crm/lib/crm-constants.ts +77 -0
  1761. package/templates/projects/crm/lib/crm-utils.ts +185 -0
  1762. package/templates/projects/crm/lib/selectors.ts +332 -0
  1763. package/templates/projects/crm/messages/en.json +131 -0
  1764. package/templates/projects/crm/messages/es.json +131 -0
  1765. package/templates/projects/crm/migrations/090_billing_sample_data.sql +99 -0
  1766. package/templates/projects/crm/migrations/999_theme_sample_data.sql +473 -0
  1767. package/templates/projects/crm/package.json +26 -0
  1768. package/templates/projects/crm/pendings.md +204 -0
  1769. package/templates/projects/crm/permissions-matrix.md +216 -0
  1770. package/templates/projects/crm/styles/components.css +414 -0
  1771. package/templates/projects/crm/styles/crm-theme.css +358 -0
  1772. package/templates/projects/crm/styles/globals.css +624 -0
  1773. package/templates/projects/crm/styles/variables.css +111 -0
  1774. package/templates/projects/crm/templates/dashboard/(main)/activities/components/ActivityCard.tsx +169 -0
  1775. package/templates/projects/crm/templates/dashboard/(main)/activities/components/ActivityTimeline.tsx +165 -0
  1776. package/templates/projects/crm/templates/dashboard/(main)/activities/page.tsx +297 -0
  1777. package/templates/projects/crm/templates/dashboard/(main)/campaigns/page.tsx +373 -0
  1778. package/templates/projects/crm/templates/dashboard/(main)/companies/page.tsx +296 -0
  1779. package/templates/projects/crm/templates/dashboard/(main)/contacts/page.tsx +347 -0
  1780. package/templates/projects/crm/templates/dashboard/(main)/layout.tsx +98 -0
  1781. package/templates/projects/crm/templates/dashboard/(main)/leads/page.tsx +335 -0
  1782. package/templates/projects/crm/templates/dashboard/(main)/opportunities/[id]/edit/page.tsx +95 -0
  1783. package/templates/projects/crm/templates/dashboard/(main)/opportunities/create/page.tsx +94 -0
  1784. package/templates/projects/crm/templates/dashboard/(main)/opportunities/page.tsx +350 -0
  1785. package/templates/projects/crm/templates/dashboard/(main)/pipelines/[id]/edit/page.tsx +95 -0
  1786. package/templates/projects/crm/templates/dashboard/(main)/pipelines/[id]/page.tsx +143 -0
  1787. package/templates/projects/crm/templates/dashboard/(main)/pipelines/create/page.tsx +94 -0
  1788. package/templates/projects/crm/templates/dashboard/(main)/pipelines/page.tsx +235 -0
  1789. package/templates/projects/crm/templates/dashboard/(main)/products/[id]/edit/page.tsx +97 -0
  1790. package/templates/projects/crm/templates/dashboard/(main)/products/[id]/page.tsx +510 -0
  1791. package/templates/projects/crm/templates/dashboard/(main)/products/create/page.tsx +96 -0
  1792. package/templates/projects/crm/templates/dashboard/(main)/products/page.tsx +308 -0
  1793. package/templates/projects/crm/templates/shared/ActionButtons.tsx +41 -0
  1794. package/templates/projects/crm/templates/shared/CRMDashboard.tsx +519 -0
  1795. package/templates/projects/crm/templates/shared/CRMDataTable.tsx +441 -0
  1796. package/templates/projects/crm/templates/shared/CRMMetricCard.tsx +76 -0
  1797. package/templates/projects/crm/templates/shared/CRMMobileNav.tsx +172 -0
  1798. package/templates/projects/crm/templates/shared/CRMSidebar.tsx +347 -0
  1799. package/templates/projects/crm/templates/shared/CRMTopBar.tsx +266 -0
  1800. package/templates/projects/crm/templates/shared/DealCard.tsx +123 -0
  1801. package/templates/projects/crm/templates/shared/EntityCard.tsx +58 -0
  1802. package/templates/projects/crm/templates/shared/OpportunityForm.tsx +649 -0
  1803. package/templates/projects/crm/templates/shared/PipelineForm.tsx +367 -0
  1804. package/templates/projects/crm/templates/shared/PipelineKanban.tsx +194 -0
  1805. package/templates/projects/crm/templates/shared/QuickFilters.tsx +47 -0
  1806. package/templates/projects/crm/templates/shared/StageColumn.tsx +175 -0
  1807. package/templates/projects/crm/templates/shared/StageSelect.tsx +177 -0
  1808. package/templates/projects/crm/templates/shared/StagesRepeater.tsx +317 -0
  1809. package/templates/projects/crm/templates/shared/index.ts +9 -0
  1810. package/templates/projects/crm/tests/cypress/e2e/api/activities/activities-crud.cy.ts +686 -0
  1811. package/templates/projects/crm/tests/cypress/e2e/api/campaigns/campaigns-crud.cy.ts +592 -0
  1812. package/templates/projects/crm/tests/cypress/e2e/api/companies/companies-crud.cy.ts +682 -0
  1813. package/templates/projects/crm/tests/cypress/e2e/api/contacts/contacts-crud.cy.ts +668 -0
  1814. package/templates/projects/crm/tests/cypress/e2e/api/leads/leads-crud.cy.ts +648 -0
  1815. package/templates/projects/crm/tests/cypress/e2e/api/notes/notes-crud.cy.ts +424 -0
  1816. package/templates/projects/crm/tests/cypress/e2e/api/opportunities/opportunities-crud.cy.ts +865 -0
  1817. package/templates/projects/crm/tests/cypress/e2e/api/pipelines/pipelines-crud.cy.ts +545 -0
  1818. package/templates/projects/crm/tests/cypress/e2e/api/products/products-crud.cy.ts +447 -0
  1819. package/templates/projects/crm/tests/cypress/e2e/ui/activities/activities-admin.cy.ts +268 -0
  1820. package/templates/projects/crm/tests/cypress/e2e/ui/activities/activities-member.cy.ts +257 -0
  1821. package/templates/projects/crm/tests/cypress/e2e/ui/activities/activities-owner.cy.ts +268 -0
  1822. package/templates/projects/crm/tests/cypress/e2e/ui/companies/companies-admin.cy.ts +188 -0
  1823. package/templates/projects/crm/tests/cypress/e2e/ui/companies/companies-member.cy.ts +166 -0
  1824. package/templates/projects/crm/tests/cypress/e2e/ui/companies/companies-owner.cy.ts +189 -0
  1825. package/templates/projects/crm/tests/cypress/e2e/ui/contacts/contacts-admin.cy.ts +252 -0
  1826. package/templates/projects/crm/tests/cypress/e2e/ui/contacts/contacts-member.cy.ts +224 -0
  1827. package/templates/projects/crm/tests/cypress/e2e/ui/contacts/contacts-owner.cy.ts +236 -0
  1828. package/templates/projects/crm/tests/cypress/e2e/ui/leads/leads-admin.cy.ts +286 -0
  1829. package/templates/projects/crm/tests/cypress/e2e/ui/leads/leads-member.cy.ts +193 -0
  1830. package/templates/projects/crm/tests/cypress/e2e/ui/leads/leads-owner.cy.ts +210 -0
  1831. package/templates/projects/crm/tests/cypress/e2e/ui/opportunities/opportunities-admin.cy.ts +197 -0
  1832. package/templates/projects/crm/tests/cypress/e2e/ui/opportunities/opportunities-member.cy.ts +229 -0
  1833. package/templates/projects/crm/tests/cypress/e2e/ui/opportunities/opportunities-owner.cy.ts +196 -0
  1834. package/templates/projects/crm/tests/cypress/e2e/ui/pipelines/pipelines-admin.cy.ts +320 -0
  1835. package/templates/projects/crm/tests/cypress/e2e/ui/pipelines/pipelines-member.cy.ts +262 -0
  1836. package/templates/projects/crm/tests/cypress/e2e/ui/pipelines/pipelines-owner.cy.ts +282 -0
  1837. package/templates/projects/crm/tests/cypress/fixtures/blocks.json +9 -0
  1838. package/templates/projects/crm/tests/cypress/fixtures/entities.json +240 -0
  1839. package/templates/projects/crm/tests/cypress/src/components/CRMDataTable.js +223 -0
  1840. package/templates/projects/crm/tests/cypress/src/components/CRMMobileNav.js +138 -0
  1841. package/templates/projects/crm/tests/cypress/src/components/CRMSidebar.js +145 -0
  1842. package/templates/projects/crm/tests/cypress/src/components/CRMTopBar.js +194 -0
  1843. package/templates/projects/crm/tests/cypress/src/components/DealCard.js +197 -0
  1844. package/templates/projects/crm/tests/cypress/src/components/EntityDetail.ts +290 -0
  1845. package/templates/projects/crm/tests/cypress/src/components/EntityForm.ts +357 -0
  1846. package/templates/projects/crm/tests/cypress/src/components/EntityList.ts +360 -0
  1847. package/templates/projects/crm/tests/cypress/src/components/PipelineKanban.js +204 -0
  1848. package/templates/projects/crm/tests/cypress/src/components/StageColumn.js +196 -0
  1849. package/templates/projects/crm/tests/cypress/src/components/index.js +13 -0
  1850. package/templates/projects/crm/tests/cypress/src/components/index.ts +22 -0
  1851. package/templates/projects/crm/tests/cypress/src/controllers/ActivityAPIController.ts +113 -0
  1852. package/templates/projects/crm/tests/cypress/src/controllers/BaseAPIController.ts +307 -0
  1853. package/templates/projects/crm/tests/cypress/src/controllers/CampaignAPIController.ts +114 -0
  1854. package/templates/projects/crm/tests/cypress/src/controllers/CompanyAPIController.ts +112 -0
  1855. package/templates/projects/crm/tests/cypress/src/controllers/ContactAPIController.ts +104 -0
  1856. package/templates/projects/crm/tests/cypress/src/controllers/LeadAPIController.ts +96 -0
  1857. package/templates/projects/crm/tests/cypress/src/controllers/NoteAPIController.ts +130 -0
  1858. package/templates/projects/crm/tests/cypress/src/controllers/OpportunityAPIController.ts +134 -0
  1859. package/templates/projects/crm/tests/cypress/src/controllers/PipelineAPIController.ts +116 -0
  1860. package/templates/projects/crm/tests/cypress/src/controllers/ProductAPIController.ts +113 -0
  1861. package/templates/projects/crm/tests/cypress/src/controllers/index.ts +35 -0
  1862. package/templates/projects/crm/tests/cypress/src/entities/ActivitiesPOM.ts +130 -0
  1863. package/templates/projects/crm/tests/cypress/src/entities/CompaniesPOM.ts +117 -0
  1864. package/templates/projects/crm/tests/cypress/src/entities/ContactsPOM.ts +117 -0
  1865. package/templates/projects/crm/tests/cypress/src/entities/LeadsPOM.ts +129 -0
  1866. package/templates/projects/crm/tests/cypress/src/entities/OpportunitiesPOM.ts +178 -0
  1867. package/templates/projects/crm/tests/cypress/src/entities/PipelinesPOM.ts +341 -0
  1868. package/templates/projects/crm/tests/cypress/src/entities/index.ts +31 -0
  1869. package/templates/projects/crm/tests/cypress/src/forms/OpportunityForm.js +316 -0
  1870. package/templates/projects/crm/tests/cypress/src/forms/PipelineForm.js +243 -0
  1871. package/templates/projects/crm/tests/cypress/src/forms/index.js +8 -0
  1872. package/templates/projects/crm/tests/cypress/src/index.js +22 -0
  1873. package/templates/projects/crm/tests/cypress/src/index.ts +68 -0
  1874. package/templates/projects/crm/tests/cypress/src/selectors.ts +50 -0
  1875. package/templates/projects/crm/tests/cypress/src/session-helpers.ts +176 -0
  1876. package/templates/projects/crm/tests/cypress/support/e2e.ts +90 -0
  1877. package/templates/projects/crm/tests/cypress.config.ts +149 -0
  1878. package/templates/projects/crm/tests/tsconfig.json +7 -0
  1879. package/templates/projects/productivity/README.md +73 -0
  1880. package/templates/projects/productivity/about.md +123 -0
  1881. package/templates/projects/productivity/components/CardDetailModal.tsx +318 -0
  1882. package/templates/projects/productivity/components/KanbanBoard.tsx +613 -0
  1883. package/templates/projects/productivity/components/KanbanCard.tsx +218 -0
  1884. package/templates/projects/productivity/components/KanbanColumn.tsx +264 -0
  1885. package/templates/projects/productivity/components/SortableList.tsx +46 -0
  1886. package/templates/projects/productivity/components/index.ts +4 -0
  1887. package/templates/projects/productivity/config/app.config.ts +165 -0
  1888. package/templates/projects/productivity/config/billing.config.ts +184 -0
  1889. package/templates/projects/productivity/config/dashboard.config.ts +370 -0
  1890. package/templates/projects/productivity/config/dev.config.ts +55 -0
  1891. package/templates/projects/productivity/config/features.config.ts +256 -0
  1892. package/templates/projects/productivity/config/flows.config.ts +484 -0
  1893. package/templates/projects/productivity/config/permissions.config.ts +178 -0
  1894. package/templates/projects/productivity/config/theme.config.ts +106 -0
  1895. package/templates/projects/productivity/entities/boards/api/docs.md +131 -0
  1896. package/templates/projects/productivity/entities/boards/api/presets.ts +113 -0
  1897. package/templates/projects/productivity/entities/boards/boards.config.ts +61 -0
  1898. package/templates/projects/productivity/entities/boards/boards.fields.ts +154 -0
  1899. package/templates/projects/productivity/entities/boards/boards.service.ts +256 -0
  1900. package/templates/projects/productivity/entities/boards/boards.types.ts +57 -0
  1901. package/templates/projects/productivity/entities/boards/messages/en.json +80 -0
  1902. package/templates/projects/productivity/entities/boards/messages/es.json +80 -0
  1903. package/templates/projects/productivity/entities/boards/migrations/001_boards_table.sql +83 -0
  1904. package/templates/projects/productivity/entities/cards/api/docs.md +162 -0
  1905. package/templates/projects/productivity/entities/cards/api/presets.ts +172 -0
  1906. package/templates/projects/productivity/entities/cards/cards.config.ts +61 -0
  1907. package/templates/projects/productivity/entities/cards/cards.fields.ts +242 -0
  1908. package/templates/projects/productivity/entities/cards/cards.service.ts +336 -0
  1909. package/templates/projects/productivity/entities/cards/cards.types.ts +79 -0
  1910. package/templates/projects/productivity/entities/cards/messages/en.json +114 -0
  1911. package/templates/projects/productivity/entities/cards/messages/es.json +114 -0
  1912. package/templates/projects/productivity/entities/cards/migrations/020_cards_table.sql +92 -0
  1913. package/templates/projects/productivity/entities/lists/api/docs.md +143 -0
  1914. package/templates/projects/productivity/entities/lists/api/presets.ts +81 -0
  1915. package/templates/projects/productivity/entities/lists/lists.config.ts +61 -0
  1916. package/templates/projects/productivity/entities/lists/lists.fields.ts +105 -0
  1917. package/templates/projects/productivity/entities/lists/lists.service.ts +252 -0
  1918. package/templates/projects/productivity/entities/lists/lists.types.ts +55 -0
  1919. package/templates/projects/productivity/entities/lists/messages/en.json +60 -0
  1920. package/templates/projects/productivity/entities/lists/messages/es.json +60 -0
  1921. package/templates/projects/productivity/entities/lists/migrations/010_lists_table.sql +79 -0
  1922. package/templates/projects/productivity/lib/selectors.ts +205 -0
  1923. package/templates/projects/productivity/messages/en.json +79 -0
  1924. package/templates/projects/productivity/messages/es.json +79 -0
  1925. package/templates/projects/productivity/migrations/090_billing_sample_data.sql +100 -0
  1926. package/templates/projects/productivity/migrations/999_theme_sample_data.sql +922 -0
  1927. package/templates/projects/productivity/migrations/999a_initial_sample_data.sql +377 -0
  1928. package/templates/projects/productivity/migrations/999b_abundant_sample_data.sql +346 -0
  1929. package/templates/projects/productivity/package.json +29 -0
  1930. package/templates/projects/productivity/permissions-matrix.md +122 -0
  1931. package/templates/projects/productivity/styles/components.css +460 -0
  1932. package/templates/projects/productivity/styles/globals.css +608 -0
  1933. package/templates/projects/productivity/templates/dashboard/(main)/boards/[id]/[cardId]/page.tsx +239 -0
  1934. package/templates/projects/productivity/templates/dashboard/(main)/boards/[id]/edit/page.tsx +391 -0
  1935. package/templates/projects/productivity/templates/dashboard/(main)/boards/[id]/page.tsx +237 -0
  1936. package/templates/projects/productivity/templates/dashboard/(main)/boards/create/page.tsx +237 -0
  1937. package/templates/projects/productivity/templates/dashboard/(main)/boards/page.tsx +336 -0
  1938. package/templates/projects/productivity/templates/dashboard/(main)/layout.tsx +32 -0
  1939. package/templates/projects/productivity/templates/dashboard/(main)/page.tsx +593 -0
  1940. package/templates/projects/productivity/templates/shared/ProductivityMobileNav.tsx +411 -0
  1941. package/templates/projects/productivity/templates/shared/ProductivitySidebar.tsx +539 -0
  1942. package/templates/projects/productivity/templates/shared/ProductivityTopBar.tsx +318 -0
  1943. package/templates/projects/productivity/tests/cypress/e2e/ui/boards/boards-owner.cy.ts +349 -0
  1944. package/templates/projects/productivity/tests/cypress/e2e/ui/cards/cards-modal.cy.ts +369 -0
  1945. package/templates/projects/productivity/tests/cypress/e2e/ui/kanban/kanban-cards.cy.ts +280 -0
  1946. package/templates/projects/productivity/tests/cypress/e2e/ui/kanban/kanban-columns.cy.ts +243 -0
  1947. package/templates/projects/productivity/tests/cypress/fixtures/blocks.json +9 -0
  1948. package/templates/projects/productivity/tests/cypress/fixtures/entities.json +60 -0
  1949. package/templates/projects/productivity/tests/cypress/src/components/BoardsPOM.ts +353 -0
  1950. package/templates/projects/productivity/tests/cypress/src/components/CardsPOM.ts +383 -0
  1951. package/templates/projects/productivity/tests/cypress/src/components/KanbanPOM.ts +399 -0
  1952. package/templates/projects/productivity/tests/cypress/src/components/index.ts +9 -0
  1953. package/templates/projects/productivity/tests/cypress/src/controllers/BoardsAPIController.js +302 -0
  1954. package/templates/projects/productivity/tests/cypress/src/controllers/CardsAPIController.js +406 -0
  1955. package/templates/projects/productivity/tests/cypress/src/controllers/ListsAPIController.js +299 -0
  1956. package/templates/projects/productivity/tests/cypress/src/index.ts +25 -0
  1957. package/templates/projects/productivity/tests/cypress/src/selectors.ts +50 -0
  1958. package/templates/projects/productivity/tests/cypress/src/session-helpers.ts +176 -0
  1959. package/templates/projects/productivity/tests/cypress/support/e2e.ts +90 -0
  1960. package/templates/projects/productivity/tests/cypress.config.ts +149 -0
  1961. package/templates/projects/productivity/tests/tsconfig.json +7 -0
  1962. package/templates/projects/starter/blocks/cta-section/config.ts +10 -0
  1963. package/templates/projects/starter/blocks/features-grid/config.ts +10 -0
  1964. package/templates/projects/starter/blocks/hero/config.ts +10 -0
  1965. package/templates/projects/starter/blocks/testimonials/config.ts +10 -0
  1966. package/templates/projects/starter/blocks/text-content/config.ts +10 -0
  1967. package/templates/projects/starter/emails/_README.md +69 -0
  1968. package/templates/projects/starter/entities/pages/pages.config.ts +95 -0
  1969. package/templates/projects/starter/entities/posts/posts.config.ts +102 -0
  1970. package/templates/projects/starter/entities/tasks/tasks.config.ts +82 -0
  1971. package/templates/projects/starter/styles/globals.css +213 -0
  1972. package/templates/projects/starter/templates/(public)/page.tsx +49 -0
  1973. package/templates/projects/starter/tests/cypress/e2e/_utils/docs/README.md +215 -0
  1974. package/templates/projects/starter/tests/cypress/e2e/_utils/selectors/block-editor.bdd.md +491 -0
  1975. package/templates/projects/starter/tests/cypress/e2e/_utils/selectors/dashboard-navigation.bdd.md +147 -0
  1976. package/templates/projects/starter/tests/cypress/e2e/_utils/selectors/dashboard-sidebar.bdd.md +76 -0
  1977. package/templates/projects/starter/tests/cypress/e2e/_utils/selectors/dashboard-topnav.bdd.md +326 -0
  1978. package/templates/projects/starter/tests/cypress/e2e/_utils/selectors/patterns.bdd.md +388 -0
  1979. package/templates/projects/starter/tests/cypress/e2e/_utils/selectors/settings-api-keys.bdd.md +266 -0
  1980. package/templates/projects/starter/tests/cypress/e2e/_utils/selectors/settings-billing.bdd.md +78 -0
  1981. package/templates/projects/starter/tests/cypress/e2e/_utils/selectors/settings-layout.bdd.md +129 -0
  1982. package/templates/projects/starter/tests/cypress/e2e/_utils/selectors/settings-password.bdd.md +82 -0
  1983. package/templates/projects/starter/tests/cypress/e2e/_utils/selectors/settings-profile.bdd.md +77 -0
  1984. package/templates/projects/starter/tests/cypress/e2e/_utils/selectors/settings-teams.bdd.md +130 -0
  1985. package/templates/projects/starter/tests/cypress/e2e/_utils/selectors/superadmin.bdd.md +261 -0
  1986. package/templates/projects/starter/tests/cypress/e2e/_utils/selectors/tasks.bdd.md +593 -0
  1987. package/templates/projects/starter/tests/cypress/e2e/_utils/selectors/teams.bdd.md +278 -0
  1988. package/templates/projects/starter/tests/cypress/src/session-helpers.ts +548 -0
  1989. package/templates/projects/starter/tests/cypress.config.ts +215 -0
  1990. package/templates/projects/starter/tests/jest/__mocks__/jose.js +22 -0
  1991. package/templates/projects/starter/tests/jest/__mocks__/next-server.js +56 -0
  1992. package/templates/projects/starter/tests/jest/example.test.tsx +87 -0
  1993. package/templates/projects/starter/tests/jest/jest.config.cjs +92 -0
  1994. package/templates/projects/starter/tests/jest/services/tasks.service.test.ts +547 -0
  1995. package/templates/projects/starter/tests/jest/tsconfig.jest.json +8 -0
  1996. package/templates/projects/starter/tests/tsconfig.json +7 -0
  1997. package/templates/proxy.ts +366 -107
  1998. package/templates/public/uploads/README.md +1 -1
  1999. package/templates/scripts/cy-run-prod.cjs +6 -34
  2000. package/templates/tsconfig.cypress.json +4 -5
  2001. package/templates/tsconfig.json +8 -16
  2002. package/tests/jest/__mocks__/@nextsparkjs/registries/app-config.client.ts +3 -0
  2003. package/tests/jest/__mocks__/@nextsparkjs/registries/block-schemas.ts +5 -0
  2004. package/tests/jest/__mocks__/@nextsparkjs/registries/dashboard-config.client.ts +2 -0
  2005. package/tests/jest/__mocks__/@nextsparkjs/registries/dev-keyring.client.ts +2 -0
  2006. package/tests/jest/__mocks__/@nextsparkjs/registries/docs-registry.ts +7 -7
  2007. package/tests/jest/__mocks__/@nextsparkjs/registries/plugin-catalog.ts +21 -0
  2008. package/tests/jest/__mocks__/@nextsparkjs/registries/plugin-registry.client.ts +9 -0
  2009. package/tests/jest/__mocks__/@nextsparkjs/registries/route-handlers.ts +1 -11
  2010. package/tests/jest/__mocks__/@nextsparkjs/registries/theme-registry.client.ts +41 -0
  2011. package/tests/jest/__mocks__/@nextsparkjs/registries/theme-registry.ts +2 -3
  2012. package/tests/jest/__mocks__/@nextsparkjs/registries/translation-registry.ts +6 -0
  2013. package/tests/jest/__mocks__/next-intl-server.js +3 -3
  2014. package/dist/lib/api/entity/public-resolver.d.ts +0 -28
  2015. package/dist/lib/api/entity/public-resolver.d.ts.map +0 -1
  2016. package/dist/lib/api/entity/public-resolver.js +0 -95
  2017. package/dist/lib/services/middleware.service.d.ts +0 -66
  2018. package/dist/lib/services/middleware.service.d.ts.map +0 -1
  2019. package/dist/lib/services/middleware.service.js +0 -111
  2020. package/dist/lib/services/route-handler.service.d.ts +0 -155
  2021. package/dist/lib/services/route-handler.service.d.ts.map +0 -1
  2022. package/dist/lib/services/route-handler.service.js +0 -160
  2023. package/dist/lib/services/template.service.d.ts +0 -148
  2024. package/dist/lib/services/template.service.d.ts.map +0 -1
  2025. package/dist/lib/services/template.service.js +0 -184
  2026. package/dist/lib/template-resolver.d.ts +0 -103
  2027. package/dist/lib/template-resolver.d.ts.map +0 -1
  2028. package/dist/lib/template-resolver.js +0 -120
  2029. package/dist/lib/theme/theme-loader.d.ts +0 -59
  2030. package/dist/lib/theme/theme-loader.d.ts.map +0 -1
  2031. package/dist/lib/theme/theme-loader.js +0 -191
  2032. package/dist/templates/app/(auth)/accept-invite/[token]/page.tsx +0 -339
  2033. package/dist/templates/app/(auth)/auth-error/page.tsx +0 -25
  2034. package/dist/templates/app/(auth)/forgot-password/page.tsx +0 -215
  2035. package/dist/templates/app/(auth)/layout.tsx +0 -54
  2036. package/dist/templates/app/(auth)/login/page.tsx +0 -22
  2037. package/dist/templates/app/(auth)/reset-password/page.tsx +0 -211
  2038. package/dist/templates/app/(auth)/signup/page.tsx +0 -63
  2039. package/dist/templates/app/(auth)/verify-email/page.tsx +0 -190
  2040. package/dist/templates/app/(public)/[...slug]/page.tsx +0 -386
  2041. package/dist/templates/app/(public)/docs/[section]/[page]/page.tsx +0 -101
  2042. package/dist/templates/app/(public)/docs/layout.tsx +0 -25
  2043. package/dist/templates/app/(public)/docs/page.tsx +0 -81
  2044. package/dist/templates/app/(public)/layout.tsx +0 -44
  2045. package/dist/templates/app/(public)/page.tsx +0 -19
  2046. package/dist/templates/app/403/page.tsx +0 -89
  2047. package/dist/templates/app/api/auth/[...all]/route.ts +0 -214
  2048. package/dist/templates/app/api/cron/billing/lifecycle/route.ts +0 -98
  2049. package/dist/templates/app/api/csp-report/route.ts +0 -181
  2050. package/dist/templates/app/api/devtools/config/entities/route.ts +0 -115
  2051. package/dist/templates/app/api/devtools/config/theme/route.ts +0 -67
  2052. package/dist/templates/app/api/devtools/tests/[...path]/route.ts +0 -131
  2053. package/dist/templates/app/api/devtools/tests/route.ts +0 -135
  2054. package/dist/templates/app/api/health/route.ts +0 -53
  2055. package/dist/templates/app/api/internal/user-metadata/route.ts +0 -47
  2056. package/dist/templates/app/api/mcp/route.ts +0 -176
  2057. package/dist/templates/app/api/superadmin/subscriptions/route.ts +0 -315
  2058. package/dist/templates/app/api/superadmin/teams/[teamId]/route.ts +0 -292
  2059. package/dist/templates/app/api/superadmin/teams/route.ts +0 -187
  2060. package/dist/templates/app/api/superadmin/users/[userId]/route.ts +0 -542
  2061. package/dist/templates/app/api/superadmin/users/route.ts +0 -322
  2062. package/dist/templates/app/api/user/delete-account/route.ts +0 -58
  2063. package/dist/templates/app/api/user/plan-flags/route.ts +0 -270
  2064. package/dist/templates/app/api/user/profile/route.ts +0 -129
  2065. package/dist/templates/app/api/v1/[entity]/[id]/child/[childType]/[childId]/route.ts +0 -208
  2066. package/dist/templates/app/api/v1/[entity]/[id]/child/[childType]/route.ts +0 -329
  2067. package/dist/templates/app/api/v1/[entity]/[id]/route.ts +0 -33
  2068. package/dist/templates/app/api/v1/[entity]/route.ts +0 -29
  2069. package/dist/templates/app/api/v1/api-keys/[id]/route.ts +0 -283
  2070. package/dist/templates/app/api/v1/api-keys/route.ts +0 -241
  2071. package/dist/templates/app/api/v1/auth/signup-with-invite/route.ts +0 -243
  2072. package/dist/templates/app/api/v1/billing/cancel/route.ts +0 -206
  2073. package/dist/templates/app/api/v1/billing/change-plan/route.ts +0 -99
  2074. package/dist/templates/app/api/v1/billing/check-action/route.ts +0 -85
  2075. package/dist/templates/app/api/v1/billing/checkout/route.ts +0 -153
  2076. package/dist/templates/app/api/v1/billing/plans/route.ts +0 -82
  2077. package/dist/templates/app/api/v1/billing/portal/route.ts +0 -93
  2078. package/dist/templates/app/api/v1/billing/webhooks/polar/route.ts +0 -495
  2079. package/dist/templates/app/api/v1/billing/webhooks/stripe/route.ts +0 -34
  2080. package/dist/templates/app/api/v1/blocks/[slug]/route.ts +0 -30
  2081. package/dist/templates/app/api/v1/blocks/docs.md +0 -173
  2082. package/dist/templates/app/api/v1/blocks/route.ts +0 -46
  2083. package/dist/templates/app/api/v1/blocks/validate/route.ts +0 -47
  2084. package/dist/templates/app/api/v1/cron/process/route.ts +0 -106
  2085. package/dist/templates/app/api/v1/devtools/blocks/route.ts +0 -84
  2086. package/dist/templates/app/api/v1/devtools/docs/route.ts +0 -153
  2087. package/dist/templates/app/api/v1/devtools/docs.md +0 -204
  2088. package/dist/templates/app/api/v1/devtools/features/route.ts +0 -63
  2089. package/dist/templates/app/api/v1/devtools/flows/route.ts +0 -63
  2090. package/dist/templates/app/api/v1/devtools/presets.ts +0 -113
  2091. package/dist/templates/app/api/v1/devtools/scheduled-actions/route.ts +0 -244
  2092. package/dist/templates/app/api/v1/devtools/scheduled-actions/run/route.ts +0 -111
  2093. package/dist/templates/app/api/v1/devtools/testing/route.ts +0 -84
  2094. package/dist/templates/app/api/v1/media/[id]/route.ts +0 -168
  2095. package/dist/templates/app/api/v1/media/[id]/tags/route.ts +0 -212
  2096. package/dist/templates/app/api/v1/media/check-duplicates/route.ts +0 -66
  2097. package/dist/templates/app/api/v1/media/route.ts +0 -64
  2098. package/dist/templates/app/api/v1/media/upload/route.ts +0 -274
  2099. package/dist/templates/app/api/v1/media-tags/route.ts +0 -81
  2100. package/dist/templates/app/api/v1/patterns/[id]/usages/route.ts +0 -108
  2101. package/dist/templates/app/api/v1/plugin/[...path]/route.ts +0 -374
  2102. package/dist/templates/app/api/v1/plugin/docs.md +0 -79
  2103. package/dist/templates/app/api/v1/plugin/presets.ts +0 -21
  2104. package/dist/templates/app/api/v1/plugin/route.ts +0 -97
  2105. package/dist/templates/app/api/v1/post-categories/[id]/route.ts +0 -258
  2106. package/dist/templates/app/api/v1/post-categories/route.ts +0 -121
  2107. package/dist/templates/app/api/v1/team-invitations/[token]/accept/route.ts +0 -177
  2108. package/dist/templates/app/api/v1/team-invitations/[token]/decline/route.ts +0 -118
  2109. package/dist/templates/app/api/v1/team-invitations/[token]/route.ts +0 -90
  2110. package/dist/templates/app/api/v1/team-invitations/route.ts +0 -113
  2111. package/dist/templates/app/api/v1/teams/[teamId]/invitations/route.ts +0 -181
  2112. package/dist/templates/app/api/v1/teams/[teamId]/invoices/[invoiceNumber]/route.ts +0 -105
  2113. package/dist/templates/app/api/v1/teams/[teamId]/invoices/route.ts +0 -125
  2114. package/dist/templates/app/api/v1/teams/[teamId]/members/[memberId]/route.ts +0 -260
  2115. package/dist/templates/app/api/v1/teams/[teamId]/members/route.ts +0 -350
  2116. package/dist/templates/app/api/v1/teams/[teamId]/route.ts +0 -289
  2117. package/dist/templates/app/api/v1/teams/[teamId]/subscription/route.ts +0 -51
  2118. package/dist/templates/app/api/v1/teams/[teamId]/usage/[limitSlug]/route.ts +0 -96
  2119. package/dist/templates/app/api/v1/teams/route.ts +0 -305
  2120. package/dist/templates/app/api/v1/teams/switch/route.ts +0 -106
  2121. package/dist/templates/app/api/v1/theme/[...path]/route.ts +0 -383
  2122. package/dist/templates/app/api/v1/theme/docs.md +0 -74
  2123. package/dist/templates/app/api/v1/theme/presets.ts +0 -21
  2124. package/dist/templates/app/api/v1/theme/route.ts +0 -97
  2125. package/dist/templates/app/api/v1/users/[id]/meta/[key]/route.ts +0 -313
  2126. package/dist/templates/app/api/v1/users/[id]/route.ts +0 -270
  2127. package/dist/templates/app/api/v1/users/route.ts +0 -194
  2128. package/dist/templates/app/dashboard/(main)/[entity]/[id]/edit/page.tsx +0 -117
  2129. package/dist/templates/app/dashboard/(main)/[entity]/[id]/page.tsx +0 -85
  2130. package/dist/templates/app/dashboard/(main)/[entity]/create/page.tsx +0 -95
  2131. package/dist/templates/app/dashboard/(main)/[entity]/error.tsx +0 -51
  2132. package/dist/templates/app/dashboard/(main)/[entity]/layout.tsx +0 -115
  2133. package/dist/templates/app/dashboard/(main)/[entity]/loading.tsx +0 -64
  2134. package/dist/templates/app/dashboard/(main)/[entity]/page.tsx +0 -71
  2135. package/dist/templates/app/dashboard/(main)/layout.tsx +0 -99
  2136. package/dist/templates/app/dashboard/(main)/loading.tsx +0 -8
  2137. package/dist/templates/app/dashboard/(main)/media/page.tsx +0 -621
  2138. package/dist/templates/app/dashboard/(main)/page.tsx +0 -201
  2139. package/dist/templates/app/dashboard/(main)/patterns/[id]/edit/page.tsx +0 -117
  2140. package/dist/templates/app/dashboard/(main)/patterns/[id]/page.tsx +0 -23
  2141. package/dist/templates/app/dashboard/(main)/patterns/[id]/reports/page.tsx +0 -174
  2142. package/dist/templates/app/dashboard/(main)/patterns/create/page.tsx +0 -89
  2143. package/dist/templates/app/dashboard/(main)/patterns/page.tsx +0 -447
  2144. package/dist/templates/app/dashboard/features/analytics/page.tsx +0 -38
  2145. package/dist/templates/app/dashboard/features/automation/page.tsx +0 -38
  2146. package/dist/templates/app/dashboard/features/layout.tsx +0 -16
  2147. package/dist/templates/app/dashboard/features/loading.tsx +0 -8
  2148. package/dist/templates/app/dashboard/features/webhooks/page.tsx +0 -38
  2149. package/dist/templates/app/dashboard/layout.tsx +0 -87
  2150. package/dist/templates/app/dashboard/permission-denied/page.tsx +0 -32
  2151. package/dist/templates/app/dashboard/settings/api-keys/loading.tsx +0 -8
  2152. package/dist/templates/app/dashboard/settings/api-keys/page.tsx +0 -516
  2153. package/dist/templates/app/dashboard/settings/billing/loading.tsx +0 -8
  2154. package/dist/templates/app/dashboard/settings/billing/page.tsx +0 -289
  2155. package/dist/templates/app/dashboard/settings/invoices/[invoiceNumber]/page.tsx +0 -222
  2156. package/dist/templates/app/dashboard/settings/invoices/loading.tsx +0 -8
  2157. package/dist/templates/app/dashboard/settings/invoices/page.tsx +0 -82
  2158. package/dist/templates/app/dashboard/settings/layout.tsx +0 -151
  2159. package/dist/templates/app/dashboard/settings/loading.tsx +0 -8
  2160. package/dist/templates/app/dashboard/settings/notifications/loading.tsx +0 -8
  2161. package/dist/templates/app/dashboard/settings/notifications/page.tsx +0 -462
  2162. package/dist/templates/app/dashboard/settings/page.tsx +0 -93
  2163. package/dist/templates/app/dashboard/settings/password/loading.tsx +0 -8
  2164. package/dist/templates/app/dashboard/settings/password/page.tsx +0 -305
  2165. package/dist/templates/app/dashboard/settings/plans/loading.tsx +0 -8
  2166. package/dist/templates/app/dashboard/settings/plans/page.tsx +0 -62
  2167. package/dist/templates/app/dashboard/settings/profile/loading.tsx +0 -8
  2168. package/dist/templates/app/dashboard/settings/profile/page.tsx +0 -688
  2169. package/dist/templates/app/dashboard/settings/security/loading.tsx +0 -8
  2170. package/dist/templates/app/dashboard/settings/security/page.tsx +0 -506
  2171. package/dist/templates/app/dashboard/settings/teams/loading.tsx +0 -8
  2172. package/dist/templates/app/dashboard/settings/teams/page.tsx +0 -272
  2173. package/dist/templates/app/dashboard/settings/teams/permissions/page.tsx +0 -95
  2174. package/dist/templates/app/devtools/api/[[...endpoint]]/page.tsx +0 -33
  2175. package/dist/templates/app/devtools/api/layout.tsx +0 -23
  2176. package/dist/templates/app/devtools/blocks/[slug]/page.tsx +0 -39
  2177. package/dist/templates/app/devtools/blocks/page.tsx +0 -40
  2178. package/dist/templates/app/devtools/config/page.tsx +0 -40
  2179. package/dist/templates/app/devtools/features/page.tsx +0 -40
  2180. package/dist/templates/app/devtools/flows/page.tsx +0 -40
  2181. package/dist/templates/app/devtools/layout.tsx +0 -65
  2182. package/dist/templates/app/devtools/page.tsx +0 -130
  2183. package/dist/templates/app/devtools/plugins/[plugin]/page.tsx +0 -17
  2184. package/dist/templates/app/devtools/scheduled-actions/page.tsx +0 -158
  2185. package/dist/templates/app/devtools/style/page.tsx +0 -330
  2186. package/dist/templates/app/devtools/tags/page.tsx +0 -40
  2187. package/dist/templates/app/devtools/tests/[[...path]]/page.tsx +0 -56
  2188. package/dist/templates/app/favicon.ico +0 -0
  2189. package/dist/templates/app/globals.css +0 -12
  2190. package/dist/templates/app/layout.ppr.tsx +0 -105
  2191. package/dist/templates/app/layout.tsx +0 -118
  2192. package/dist/templates/app/public/page.tsx +0 -30
  2193. package/dist/templates/app/superadmin/docs/[section]/[page]/page.tsx +0 -93
  2194. package/dist/templates/app/superadmin/docs/page.tsx +0 -75
  2195. package/dist/templates/app/superadmin/layout.tsx +0 -96
  2196. package/dist/templates/app/superadmin/page.tsx +0 -149
  2197. package/dist/templates/app/superadmin/plugins/[plugin]/page.tsx +0 -17
  2198. package/dist/templates/app/superadmin/subscriptions/page.tsx +0 -658
  2199. package/dist/templates/app/superadmin/team-roles/page.tsx +0 -493
  2200. package/dist/templates/app/superadmin/teams/[teamId]/page.tsx +0 -691
  2201. package/dist/templates/app/superadmin/teams/page.tsx +0 -302
  2202. package/dist/templates/app/superadmin/users/[userId]/page.tsx +0 -549
  2203. package/dist/templates/app/superadmin/users/page.tsx +0 -529
  2204. package/dist/templates/contents/plugins/README.md +0 -42
  2205. package/dist/templates/contents/plugins/starter/plugin/README.md.template +0 -97
  2206. package/dist/templates/contents/plugins/starter/plugin/api/example/route.ts.template +0 -94
  2207. package/dist/templates/contents/plugins/starter/plugin/hooks/usePlugin.ts.template +0 -102
  2208. package/dist/templates/contents/themes/starter/blocks/cta-section/config.ts +0 -11
  2209. package/dist/templates/contents/themes/starter/blocks/features-grid/config.ts +0 -11
  2210. package/dist/templates/contents/themes/starter/blocks/hero/config.ts +0 -11
  2211. package/dist/templates/contents/themes/starter/blocks/testimonials/config.ts +0 -11
  2212. package/dist/templates/contents/themes/starter/blocks/text-content/config.ts +0 -11
  2213. package/dist/templates/contents/themes/starter/emails/_README.md +0 -69
  2214. package/dist/templates/contents/themes/starter/entities/pages/pages.config.ts +0 -95
  2215. package/dist/templates/contents/themes/starter/entities/posts/posts.config.ts +0 -102
  2216. package/dist/templates/contents/themes/starter/entities/tasks/tasks.config.ts +0 -82
  2217. package/dist/templates/contents/themes/starter/public/theme/blocks/hero/thumbnail.png +0 -1
  2218. package/dist/templates/contents/themes/starter/styles/globals.css +0 -214
  2219. package/dist/templates/contents/themes/starter/templates/(public)/loading.tsx +0 -5
  2220. package/dist/templates/contents/themes/starter/templates/(public)/page.tsx +0 -37
  2221. package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/docs/README.md +0 -215
  2222. package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/block-editor.bdd.md +0 -491
  2223. package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/dashboard-navigation.bdd.md +0 -147
  2224. package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/dashboard-sidebar.bdd.md +0 -76
  2225. package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/dashboard-topnav.bdd.md +0 -326
  2226. package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/patterns.bdd.md +0 -388
  2227. package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/settings-api-keys.bdd.md +0 -266
  2228. package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/settings-billing.bdd.md +0 -78
  2229. package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/settings-layout.bdd.md +0 -129
  2230. package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/settings-password.bdd.md +0 -82
  2231. package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/settings-profile.bdd.md +0 -77
  2232. package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/settings-teams.bdd.md +0 -130
  2233. package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/superadmin.bdd.md +0 -261
  2234. package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/tasks.bdd.md +0 -593
  2235. package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/teams.bdd.md +0 -278
  2236. package/dist/templates/contents/themes/starter/tests/cypress/src/session-helpers.ts +0 -549
  2237. package/dist/templates/contents/themes/starter/tests/cypress.config.ts +0 -220
  2238. package/dist/templates/contents/themes/starter/tests/jest/example.test.tsx +0 -87
  2239. package/dist/templates/contents/themes/starter/tests/jest/jest.config.cjs +0 -95
  2240. package/dist/templates/contents/themes/starter/tests/jest/services/tasks.service.test.ts +0 -547
  2241. package/dist/templates/contents/themes/starter/tests/jest/tsconfig.jest.json +0 -8
  2242. package/dist/templates/contents/themes/starter/tests/tsconfig.json +0 -15
  2243. package/dist/templates/public/theme/blocks/cta-section/thumbnail.png +0 -1
  2244. package/dist/templates/public/theme/blocks/features-grid/thumbnail.png +0 -1
  2245. package/dist/templates/public/theme/blocks/hero/thumbnail.png +0 -1
  2246. package/dist/templates/public/theme/blocks/testimonials/thumbnail.png +0 -1
  2247. package/dist/templates/public/theme/blocks/text-content/thumbnail.png +0 -1
  2248. package/scripts/build/registry/__tests__/globals-css-tag.test.mjs +0 -66
  2249. package/scripts/build/registry/__tests__/page-generator.test.mjs +0 -604
  2250. package/scripts/build/registry/__tests__/published-signatures.test.mjs +0 -239
  2251. package/scripts/build/registry/__tests__/route-file-rule.test.mjs +0 -170
  2252. package/scripts/build/registry/__tests__/template-analysis.test.mjs +0 -142
  2253. package/scripts/build/registry/__tests__/template-registry.test.mjs +0 -359
  2254. package/scripts/build/registry/__tests__/templates-plan.test.mjs +0 -128
  2255. package/scripts/build/registry/__tests__/templates-tree.test.mjs +0 -367
  2256. package/scripts/build/registry/discovery/templates.mjs +0 -250
  2257. package/scripts/build/registry/generators/template-registry.mjs +0 -367
  2258. package/scripts/build/registry/post-build/page-generator.mjs +0 -1066
  2259. package/scripts/build/registry/post-build/route-cleanup.mjs +0 -199
  2260. package/scripts/build/registry/watch.mjs +0 -80
  2261. package/scripts/build/templates-plan.mjs +0 -44
  2262. package/scripts/build/theme.mjs +0 -452
  2263. package/scripts/generate-app.mjs +0 -190
  2264. package/scripts/setup/npm-postinstall.mjs +0 -193
  2265. package/scripts/setup/postinstall.mjs +0 -155
  2266. package/scripts/test/jest-theme.mjs +0 -65
  2267. package/scripts/utils/generated-tag.mjs +0 -66
  2268. package/templates/app/(auth)/accept-invite/[token]/page.tsx +0 -339
  2269. package/templates/app/(auth)/auth-error/page.tsx +0 -25
  2270. package/templates/app/(auth)/forgot-password/page.tsx +0 -215
  2271. package/templates/app/(auth)/layout.tsx +0 -54
  2272. package/templates/app/(auth)/login/page.tsx +0 -22
  2273. package/templates/app/(auth)/reset-password/page.tsx +0 -211
  2274. package/templates/app/(auth)/signup/page.tsx +0 -63
  2275. package/templates/app/(auth)/verify-email/page.tsx +0 -190
  2276. package/templates/app/(public)/[...slug]/page.tsx +0 -386
  2277. package/templates/app/(public)/docs/[section]/[page]/page.tsx +0 -101
  2278. package/templates/app/(public)/docs/layout.tsx +0 -25
  2279. package/templates/app/(public)/docs/page.tsx +0 -81
  2280. package/templates/app/(public)/layout.tsx +0 -44
  2281. package/templates/app/(public)/page.tsx +0 -19
  2282. package/templates/app/403/page.tsx +0 -89
  2283. package/templates/app/api/auth/[...all]/route.ts +0 -214
  2284. package/templates/app/api/cron/billing/lifecycle/route.ts +0 -98
  2285. package/templates/app/api/csp-report/route.ts +0 -181
  2286. package/templates/app/api/devtools/config/entities/route.ts +0 -115
  2287. package/templates/app/api/devtools/config/theme/route.ts +0 -67
  2288. package/templates/app/api/devtools/tests/[...path]/route.ts +0 -131
  2289. package/templates/app/api/devtools/tests/route.ts +0 -135
  2290. package/templates/app/api/health/route.ts +0 -53
  2291. package/templates/app/api/internal/user-metadata/route.ts +0 -47
  2292. package/templates/app/api/mcp/route.ts +0 -176
  2293. package/templates/app/api/superadmin/subscriptions/route.ts +0 -315
  2294. package/templates/app/api/superadmin/teams/[teamId]/route.ts +0 -292
  2295. package/templates/app/api/superadmin/teams/route.ts +0 -187
  2296. package/templates/app/api/superadmin/users/[userId]/route.ts +0 -542
  2297. package/templates/app/api/superadmin/users/route.ts +0 -322
  2298. package/templates/app/api/user/delete-account/route.ts +0 -58
  2299. package/templates/app/api/user/plan-flags/route.ts +0 -270
  2300. package/templates/app/api/user/profile/route.ts +0 -129
  2301. package/templates/app/api/v1/[entity]/[id]/child/[childType]/[childId]/route.ts +0 -208
  2302. package/templates/app/api/v1/[entity]/[id]/child/[childType]/route.ts +0 -329
  2303. package/templates/app/api/v1/[entity]/[id]/route.ts +0 -33
  2304. package/templates/app/api/v1/[entity]/docs.md +0 -369
  2305. package/templates/app/api/v1/[entity]/presets.ts +0 -194
  2306. package/templates/app/api/v1/[entity]/route.ts +0 -29
  2307. package/templates/app/api/v1/api-keys/[id]/route.ts +0 -283
  2308. package/templates/app/api/v1/api-keys/docs.md +0 -101
  2309. package/templates/app/api/v1/api-keys/presets.ts +0 -31
  2310. package/templates/app/api/v1/api-keys/route.ts +0 -241
  2311. package/templates/app/api/v1/auth/docs.md +0 -184
  2312. package/templates/app/api/v1/auth/presets.ts +0 -44
  2313. package/templates/app/api/v1/auth/signup-with-invite/route.ts +0 -243
  2314. package/templates/app/api/v1/billing/cancel/route.ts +0 -206
  2315. package/templates/app/api/v1/billing/change-plan/route.ts +0 -99
  2316. package/templates/app/api/v1/billing/check-action/route.ts +0 -85
  2317. package/templates/app/api/v1/billing/checkout/route.ts +0 -153
  2318. package/templates/app/api/v1/billing/docs.md +0 -209
  2319. package/templates/app/api/v1/billing/plans/route.ts +0 -82
  2320. package/templates/app/api/v1/billing/portal/route.ts +0 -93
  2321. package/templates/app/api/v1/billing/presets.ts +0 -121
  2322. package/templates/app/api/v1/billing/webhooks/polar/route.ts +0 -495
  2323. package/templates/app/api/v1/billing/webhooks/stripe/route.ts +0 -34
  2324. package/templates/app/api/v1/blocks/[slug]/route.ts +0 -30
  2325. package/templates/app/api/v1/blocks/docs.md +0 -173
  2326. package/templates/app/api/v1/blocks/presets.ts +0 -121
  2327. package/templates/app/api/v1/blocks/route.ts +0 -46
  2328. package/templates/app/api/v1/blocks/validate/route.ts +0 -47
  2329. package/templates/app/api/v1/cron/docs.md +0 -116
  2330. package/templates/app/api/v1/cron/presets.ts +0 -26
  2331. package/templates/app/api/v1/cron/process/route.ts +0 -106
  2332. package/templates/app/api/v1/devtools/blocks/route.ts +0 -84
  2333. package/templates/app/api/v1/devtools/docs/route.ts +0 -153
  2334. package/templates/app/api/v1/devtools/docs.md +0 -204
  2335. package/templates/app/api/v1/devtools/features/route.ts +0 -63
  2336. package/templates/app/api/v1/devtools/flows/route.ts +0 -63
  2337. package/templates/app/api/v1/devtools/presets.ts +0 -113
  2338. package/templates/app/api/v1/devtools/scheduled-actions/route.ts +0 -244
  2339. package/templates/app/api/v1/devtools/scheduled-actions/run/route.ts +0 -111
  2340. package/templates/app/api/v1/devtools/testing/route.ts +0 -84
  2341. package/templates/app/api/v1/media/[id]/route.ts +0 -168
  2342. package/templates/app/api/v1/media/[id]/tags/route.ts +0 -212
  2343. package/templates/app/api/v1/media/check-duplicates/route.ts +0 -66
  2344. package/templates/app/api/v1/media/docs.md +0 -117
  2345. package/templates/app/api/v1/media/presets.ts +0 -24
  2346. package/templates/app/api/v1/media/route.ts +0 -64
  2347. package/templates/app/api/v1/media/upload/route.ts +0 -274
  2348. package/templates/app/api/v1/media-tags/route.ts +0 -81
  2349. package/templates/app/api/v1/patterns/[id]/usages/route.ts +0 -108
  2350. package/templates/app/api/v1/plugin/[...path]/route.ts +0 -374
  2351. package/templates/app/api/v1/plugin/docs.md +0 -79
  2352. package/templates/app/api/v1/plugin/presets.ts +0 -21
  2353. package/templates/app/api/v1/plugin/route.ts +0 -97
  2354. package/templates/app/api/v1/post-categories/[id]/route.ts +0 -258
  2355. package/templates/app/api/v1/post-categories/docs.md +0 -134
  2356. package/templates/app/api/v1/post-categories/presets.ts +0 -78
  2357. package/templates/app/api/v1/post-categories/route.ts +0 -121
  2358. package/templates/app/api/v1/team-invitations/[token]/accept/route.ts +0 -177
  2359. package/templates/app/api/v1/team-invitations/[token]/decline/route.ts +0 -118
  2360. package/templates/app/api/v1/team-invitations/[token]/route.ts +0 -90
  2361. package/templates/app/api/v1/team-invitations/docs.md +0 -88
  2362. package/templates/app/api/v1/team-invitations/presets.ts +0 -43
  2363. package/templates/app/api/v1/team-invitations/route.ts +0 -113
  2364. package/templates/app/api/v1/teams/[teamId]/invitations/route.ts +0 -181
  2365. package/templates/app/api/v1/teams/[teamId]/invoices/[invoiceNumber]/route.ts +0 -105
  2366. package/templates/app/api/v1/teams/[teamId]/invoices/route.ts +0 -125
  2367. package/templates/app/api/v1/teams/[teamId]/members/[memberId]/route.ts +0 -260
  2368. package/templates/app/api/v1/teams/[teamId]/members/route.ts +0 -350
  2369. package/templates/app/api/v1/teams/[teamId]/route.ts +0 -289
  2370. package/templates/app/api/v1/teams/[teamId]/subscription/route.ts +0 -51
  2371. package/templates/app/api/v1/teams/[teamId]/usage/[limitSlug]/route.ts +0 -96
  2372. package/templates/app/api/v1/teams/docs.md +0 -315
  2373. package/templates/app/api/v1/teams/presets.ts +0 -178
  2374. package/templates/app/api/v1/teams/route.ts +0 -305
  2375. package/templates/app/api/v1/teams/switch/route.ts +0 -106
  2376. package/templates/app/api/v1/theme/[...path]/route.ts +0 -383
  2377. package/templates/app/api/v1/theme/docs.md +0 -74
  2378. package/templates/app/api/v1/theme/presets.ts +0 -21
  2379. package/templates/app/api/v1/theme/route.ts +0 -97
  2380. package/templates/app/api/v1/users/[id]/meta/[key]/route.ts +0 -313
  2381. package/templates/app/api/v1/users/[id]/route.ts +0 -270
  2382. package/templates/app/api/v1/users/docs.md +0 -93
  2383. package/templates/app/api/v1/users/presets.ts +0 -59
  2384. package/templates/app/api/v1/users/route.ts +0 -194
  2385. package/templates/app/dashboard/(main)/[entity]/[id]/edit/page.tsx +0 -117
  2386. package/templates/app/dashboard/(main)/[entity]/[id]/page.tsx +0 -85
  2387. package/templates/app/dashboard/(main)/[entity]/create/page.tsx +0 -95
  2388. package/templates/app/dashboard/(main)/[entity]/error.tsx +0 -51
  2389. package/templates/app/dashboard/(main)/[entity]/layout.tsx +0 -115
  2390. package/templates/app/dashboard/(main)/[entity]/loading.tsx +0 -64
  2391. package/templates/app/dashboard/(main)/[entity]/page.tsx +0 -71
  2392. package/templates/app/dashboard/(main)/layout.tsx +0 -99
  2393. package/templates/app/dashboard/(main)/loading.tsx +0 -8
  2394. package/templates/app/dashboard/(main)/media/page.tsx +0 -621
  2395. package/templates/app/dashboard/(main)/page.tsx +0 -201
  2396. package/templates/app/dashboard/(main)/patterns/[id]/edit/page.tsx +0 -117
  2397. package/templates/app/dashboard/(main)/patterns/[id]/page.tsx +0 -23
  2398. package/templates/app/dashboard/(main)/patterns/[id]/reports/page.tsx +0 -174
  2399. package/templates/app/dashboard/(main)/patterns/create/page.tsx +0 -89
  2400. package/templates/app/dashboard/(main)/patterns/page.tsx +0 -447
  2401. package/templates/app/dashboard/features/analytics/page.tsx +0 -38
  2402. package/templates/app/dashboard/features/automation/page.tsx +0 -38
  2403. package/templates/app/dashboard/features/layout.tsx +0 -16
  2404. package/templates/app/dashboard/features/loading.tsx +0 -8
  2405. package/templates/app/dashboard/features/webhooks/page.tsx +0 -38
  2406. package/templates/app/dashboard/layout.tsx +0 -87
  2407. package/templates/app/dashboard/permission-denied/page.tsx +0 -32
  2408. package/templates/app/dashboard/settings/api-keys/loading.tsx +0 -8
  2409. package/templates/app/dashboard/settings/api-keys/page.tsx +0 -516
  2410. package/templates/app/dashboard/settings/billing/loading.tsx +0 -8
  2411. package/templates/app/dashboard/settings/billing/page.tsx +0 -289
  2412. package/templates/app/dashboard/settings/invoices/[invoiceNumber]/page.tsx +0 -222
  2413. package/templates/app/dashboard/settings/invoices/loading.tsx +0 -8
  2414. package/templates/app/dashboard/settings/invoices/page.tsx +0 -82
  2415. package/templates/app/dashboard/settings/layout.tsx +0 -151
  2416. package/templates/app/dashboard/settings/loading.tsx +0 -8
  2417. package/templates/app/dashboard/settings/notifications/loading.tsx +0 -8
  2418. package/templates/app/dashboard/settings/notifications/page.tsx +0 -462
  2419. package/templates/app/dashboard/settings/page.tsx +0 -93
  2420. package/templates/app/dashboard/settings/password/loading.tsx +0 -8
  2421. package/templates/app/dashboard/settings/password/page.tsx +0 -305
  2422. package/templates/app/dashboard/settings/plans/loading.tsx +0 -8
  2423. package/templates/app/dashboard/settings/plans/page.tsx +0 -62
  2424. package/templates/app/dashboard/settings/profile/loading.tsx +0 -8
  2425. package/templates/app/dashboard/settings/profile/page.tsx +0 -688
  2426. package/templates/app/dashboard/settings/security/loading.tsx +0 -8
  2427. package/templates/app/dashboard/settings/security/page.tsx +0 -506
  2428. package/templates/app/dashboard/settings/teams/loading.tsx +0 -8
  2429. package/templates/app/dashboard/settings/teams/page.tsx +0 -272
  2430. package/templates/app/dashboard/settings/teams/permissions/page.tsx +0 -95
  2431. package/templates/app/devtools/api/[[...endpoint]]/page.tsx +0 -33
  2432. package/templates/app/devtools/api/layout.tsx +0 -23
  2433. package/templates/app/devtools/blocks/[slug]/page.tsx +0 -39
  2434. package/templates/app/devtools/blocks/page.tsx +0 -40
  2435. package/templates/app/devtools/config/page.tsx +0 -40
  2436. package/templates/app/devtools/features/page.tsx +0 -40
  2437. package/templates/app/devtools/flows/page.tsx +0 -40
  2438. package/templates/app/devtools/layout.tsx +0 -65
  2439. package/templates/app/devtools/page.tsx +0 -130
  2440. package/templates/app/devtools/plugins/[plugin]/page.tsx +0 -17
  2441. package/templates/app/devtools/scheduled-actions/page.tsx +0 -158
  2442. package/templates/app/devtools/style/page.tsx +0 -330
  2443. package/templates/app/devtools/tags/page.tsx +0 -40
  2444. package/templates/app/devtools/tests/[[...path]]/page.tsx +0 -56
  2445. package/templates/app/favicon.ico +0 -0
  2446. package/templates/app/globals.css +0 -12
  2447. package/templates/app/layout.ppr.tsx +0 -105
  2448. package/templates/app/layout.tsx +0 -118
  2449. package/templates/app/public/page.tsx +0 -30
  2450. package/templates/app/superadmin/docs/[section]/[page]/page.tsx +0 -93
  2451. package/templates/app/superadmin/docs/page.tsx +0 -75
  2452. package/templates/app/superadmin/layout.tsx +0 -96
  2453. package/templates/app/superadmin/page.tsx +0 -149
  2454. package/templates/app/superadmin/plugins/[plugin]/page.tsx +0 -17
  2455. package/templates/app/superadmin/subscriptions/page.tsx +0 -658
  2456. package/templates/app/superadmin/team-roles/page.tsx +0 -493
  2457. package/templates/app/superadmin/teams/[teamId]/page.tsx +0 -691
  2458. package/templates/app/superadmin/teams/page.tsx +0 -302
  2459. package/templates/app/superadmin/users/[userId]/page.tsx +0 -549
  2460. package/templates/app/superadmin/users/page.tsx +0 -529
  2461. package/templates/contents/plugins/README.md +0 -42
  2462. package/templates/contents/plugins/starter/plugin/README.md.template +0 -97
  2463. package/templates/contents/plugins/starter/plugin/api/example/route.ts.template +0 -94
  2464. package/templates/contents/plugins/starter/plugin/hooks/usePlugin.ts.template +0 -102
  2465. package/templates/contents/themes/.gitkeep +0 -0
  2466. package/templates/contents/themes/starter/blocks/.gitkeep +0 -0
  2467. package/templates/contents/themes/starter/blocks/cta-section/config.ts +0 -11
  2468. package/templates/contents/themes/starter/blocks/features-grid/config.ts +0 -11
  2469. package/templates/contents/themes/starter/blocks/hero/config.ts +0 -11
  2470. package/templates/contents/themes/starter/blocks/testimonials/config.ts +0 -11
  2471. package/templates/contents/themes/starter/blocks/text-content/config.ts +0 -11
  2472. package/templates/contents/themes/starter/emails/_README.md +0 -69
  2473. package/templates/contents/themes/starter/entities/pages/pages.config.ts +0 -95
  2474. package/templates/contents/themes/starter/entities/posts/posts.config.ts +0 -102
  2475. package/templates/contents/themes/starter/entities/tasks/tasks.config.ts +0 -82
  2476. package/templates/contents/themes/starter/public/brand/.gitkeep +0 -0
  2477. package/templates/contents/themes/starter/public/theme/blocks/hero/thumbnail.png +0 -1
  2478. package/templates/contents/themes/starter/styles/globals.css +0 -214
  2479. package/templates/contents/themes/starter/templates/(public)/loading.tsx +0 -5
  2480. package/templates/contents/themes/starter/templates/(public)/page.tsx +0 -37
  2481. package/templates/contents/themes/starter/tests/cypress/e2e/_utils/docs/README.md +0 -215
  2482. package/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/block-editor.bdd.md +0 -491
  2483. package/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/dashboard-navigation.bdd.md +0 -147
  2484. package/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/dashboard-sidebar.bdd.md +0 -76
  2485. package/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/dashboard-topnav.bdd.md +0 -326
  2486. package/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/patterns.bdd.md +0 -388
  2487. package/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/settings-api-keys.bdd.md +0 -266
  2488. package/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/settings-billing.bdd.md +0 -78
  2489. package/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/settings-layout.bdd.md +0 -129
  2490. package/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/settings-password.bdd.md +0 -82
  2491. package/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/settings-profile.bdd.md +0 -77
  2492. package/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/settings-teams.bdd.md +0 -130
  2493. package/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/superadmin.bdd.md +0 -261
  2494. package/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/tasks.bdd.md +0 -593
  2495. package/templates/contents/themes/starter/tests/cypress/e2e/_utils/selectors/teams.bdd.md +0 -278
  2496. package/templates/contents/themes/starter/tests/cypress/src/session-helpers.ts +0 -549
  2497. package/templates/contents/themes/starter/tests/cypress.config.ts +0 -220
  2498. package/templates/contents/themes/starter/tests/jest/example.test.tsx +0 -87
  2499. package/templates/contents/themes/starter/tests/jest/jest.config.cjs +0 -95
  2500. package/templates/contents/themes/starter/tests/jest/services/tasks.service.test.ts +0 -547
  2501. package/templates/contents/themes/starter/tests/jest/tsconfig.jest.json +0 -8
  2502. package/templates/contents/themes/starter/tests/tsconfig.json +0 -15
  2503. package/templates/public/theme/blocks/cta-section/thumbnail.png +0 -1
  2504. package/templates/public/theme/blocks/features-grid/thumbnail.png +0 -1
  2505. package/templates/public/theme/blocks/hero/thumbnail.png +0 -1
  2506. package/templates/public/theme/blocks/testimonials/thumbnail.png +0 -1
  2507. package/templates/public/theme/blocks/text-content/thumbnail.png +0 -1
  2508. package/tests/jest/__mocks__/@nextsparkjs/registries/template-registry.client.ts +0 -11
  2509. package/tests/jest/__mocks__/@nextsparkjs/registries/template-registry.ts +0 -11
  2510. /package/dist/{templates/contents/plugins/.gitkeep → lib/entities/portable/types.js} +0 -0
  2511. /package/dist/{templates/app → routes}/api/v1/[entity]/docs.md +0 -0
  2512. /package/dist/{templates/app → routes}/api/v1/[entity]/presets.ts +0 -0
  2513. /package/dist/{templates/app → routes}/api/v1/api-keys/docs.md +0 -0
  2514. /package/dist/{templates/app → routes}/api/v1/api-keys/presets.ts +0 -0
  2515. /package/dist/{templates/app → routes}/api/v1/auth/docs.md +0 -0
  2516. /package/dist/{templates/app → routes}/api/v1/auth/presets.ts +0 -0
  2517. /package/dist/{templates/app → routes}/api/v1/billing/docs.md +0 -0
  2518. /package/dist/{templates/app → routes}/api/v1/billing/presets.ts +0 -0
  2519. /package/dist/{templates/app → routes}/api/v1/blocks/presets.ts +0 -0
  2520. /package/dist/{templates/app → routes}/api/v1/cron/docs.md +0 -0
  2521. /package/dist/{templates/app → routes}/api/v1/cron/presets.ts +0 -0
  2522. /package/dist/{templates/app → routes}/api/v1/media/docs.md +0 -0
  2523. /package/dist/{templates/app → routes}/api/v1/media/presets.ts +0 -0
  2524. /package/dist/{templates/app → routes}/api/v1/post-categories/docs.md +0 -0
  2525. /package/dist/{templates/app → routes}/api/v1/post-categories/presets.ts +0 -0
  2526. /package/dist/{templates/app → routes}/api/v1/team-invitations/docs.md +0 -0
  2527. /package/dist/{templates/app → routes}/api/v1/team-invitations/presets.ts +0 -0
  2528. /package/dist/{templates/app → routes}/api/v1/teams/docs.md +0 -0
  2529. /package/dist/{templates/app → routes}/api/v1/teams/presets.ts +0 -0
  2530. /package/dist/{templates/app → routes}/api/v1/users/docs.md +0 -0
  2531. /package/dist/{templates/app → routes}/api/v1/users/presets.ts +0 -0
  2532. /package/dist/templates/{contents/plugins → plugins}/starter/plugin/components/ExampleWidget.tsx.template +0 -0
  2533. /package/dist/templates/{contents/plugins → plugins}/starter/plugin/entities/.gitkeep +0 -0
  2534. /package/dist/templates/{contents/plugins → plugins}/starter/plugin/lib/core.ts.template +0 -0
  2535. /package/dist/templates/{contents/plugins → plugins}/starter/plugin/lib/types.ts.template +0 -0
  2536. /package/dist/templates/{contents/plugins → plugins}/starter/plugin/messages/de.json +0 -0
  2537. /package/dist/templates/{contents/plugins → plugins}/starter/plugin/messages/en.json +0 -0
  2538. /package/dist/templates/{contents/plugins → plugins}/starter/plugin/messages/es.json +0 -0
  2539. /package/dist/templates/{contents/plugins → plugins}/starter/plugin/messages/fr.json +0 -0
  2540. /package/dist/templates/{contents/plugins → plugins}/starter/plugin/messages/it.json +0 -0
  2541. /package/dist/templates/{contents/plugins → plugins}/starter/plugin/messages/pt.json +0 -0
  2542. /package/dist/templates/{contents/plugins → plugins}/starter/plugin/migrations/README.md +0 -0
  2543. /package/dist/templates/{contents/plugins → plugins}/starter/plugin/plugin.config.ts.template +0 -0
  2544. /package/dist/templates/{contents/plugins → plugins}/starter/plugin/tests/plugin.test.ts.template +0 -0
  2545. /package/dist/templates/{contents/themes/starter → projects/blog}/tests/jest/__mocks__/jose.js +0 -0
  2546. /package/dist/templates/{contents/themes/starter → projects/blog}/tests/jest/__mocks__/next-server.js +0 -0
  2547. /package/dist/templates/{contents/themes → projects}/starter/README.md +0 -0
  2548. /package/dist/templates/{contents/themes → projects}/starter/about/business.md +0 -0
  2549. /package/dist/templates/{contents/themes → projects}/starter/about/features.json +0 -0
  2550. /package/dist/templates/{contents/themes → projects/starter/blocks}/.gitkeep +0 -0
  2551. /package/dist/templates/{contents/themes → projects}/starter/blocks/cta-section/component.tsx +0 -0
  2552. /package/dist/templates/{contents/themes → projects}/starter/blocks/cta-section/fields.ts +0 -0
  2553. /package/dist/templates/{contents/themes → projects}/starter/blocks/cta-section/index.ts +0 -0
  2554. /package/dist/templates/{contents/themes → projects}/starter/blocks/cta-section/schema.ts +0 -0
  2555. /package/dist/templates/{contents/themes → projects}/starter/blocks/cta-section/thumbnail.png +0 -0
  2556. /package/dist/templates/{contents/themes → projects}/starter/blocks/features-grid/component.tsx +0 -0
  2557. /package/dist/templates/{contents/themes → projects}/starter/blocks/features-grid/fields.ts +0 -0
  2558. /package/dist/templates/{contents/themes → projects}/starter/blocks/features-grid/index.ts +0 -0
  2559. /package/dist/templates/{contents/themes → projects}/starter/blocks/features-grid/schema.ts +0 -0
  2560. /package/dist/templates/{contents/themes → projects}/starter/blocks/features-grid/thumbnail.png +0 -0
  2561. /package/dist/templates/{contents/themes → projects}/starter/blocks/hero/component.tsx +0 -0
  2562. /package/dist/templates/{contents/themes → projects}/starter/blocks/hero/fields.ts +0 -0
  2563. /package/dist/templates/{contents/themes → projects}/starter/blocks/hero/index.ts +0 -0
  2564. /package/dist/templates/{contents/themes → projects}/starter/blocks/hero/schema.ts +0 -0
  2565. /package/dist/templates/{contents/themes → projects}/starter/blocks/hero/thumbnail.png +0 -0
  2566. /package/dist/templates/{contents/themes → projects}/starter/blocks/testimonials/component.tsx +0 -0
  2567. /package/dist/templates/{contents/themes → projects}/starter/blocks/testimonials/fields.ts +0 -0
  2568. /package/dist/templates/{contents/themes → projects}/starter/blocks/testimonials/index.ts +0 -0
  2569. /package/dist/templates/{contents/themes → projects}/starter/blocks/testimonials/schema.ts +0 -0
  2570. /package/dist/templates/{contents/themes → projects}/starter/blocks/testimonials/thumbnail.png +0 -0
  2571. /package/dist/templates/{contents/themes → projects}/starter/blocks/text-content/component.tsx +0 -0
  2572. /package/dist/templates/{contents/themes → projects}/starter/blocks/text-content/fields.ts +0 -0
  2573. /package/dist/templates/{contents/themes → projects}/starter/blocks/text-content/index.ts +0 -0
  2574. /package/dist/templates/{contents/themes → projects}/starter/blocks/text-content/schema.ts +0 -0
  2575. /package/dist/templates/{contents/themes → projects}/starter/blocks/text-content/thumbnail.png +0 -0
  2576. /package/dist/templates/{contents/themes → projects}/starter/components/.gitkeep +0 -0
  2577. /package/dist/templates/{contents/themes → projects}/starter/components/analytics/RecentActivity.tsx +0 -0
  2578. /package/dist/templates/{contents/themes → projects}/starter/components/analytics/StatsCard.tsx +0 -0
  2579. /package/dist/templates/{contents/themes → projects}/starter/components/analytics/TasksChart.tsx +0 -0
  2580. /package/dist/templates/{contents/themes → projects}/starter/components/analytics/index.ts +0 -0
  2581. /package/dist/templates/{contents/themes → projects}/starter/config/app.config.ts +0 -0
  2582. /package/dist/templates/{contents/themes → projects}/starter/config/billing.config.ts +0 -0
  2583. /package/dist/templates/{contents/themes → projects}/starter/config/dashboard.config.ts +0 -0
  2584. /package/dist/templates/{contents/themes → projects}/starter/config/dev.config.ts +0 -0
  2585. /package/dist/templates/{contents/themes → projects}/starter/config/features.config.ts +0 -0
  2586. /package/dist/templates/{contents/themes → projects}/starter/config/permissions.config.ts +0 -0
  2587. /package/dist/templates/{contents/themes → projects}/starter/config/theme.config.ts +0 -0
  2588. /package/dist/templates/{contents/themes → projects}/starter/docs/public/01-overview/01-introduction.md +0 -0
  2589. /package/dist/templates/{contents/themes → projects}/starter/docs/public/01-overview/02-customization.md +0 -0
  2590. /package/dist/templates/{contents/themes → projects}/starter/docs/superadmin/01-setup/01-configuration.md +0 -0
  2591. /package/dist/templates/{contents/themes → projects}/starter/docs/superadmin/02-entities/01-tasks.md +0 -0
  2592. /package/dist/templates/{contents/themes → projects}/starter/emails/verify-email.ts +0 -0
  2593. /package/dist/templates/{contents/themes → projects}/starter/entities/pages/api/docs.md +0 -0
  2594. /package/dist/templates/{contents/themes → projects}/starter/entities/pages/api/presets.ts +0 -0
  2595. /package/dist/templates/{contents/themes → projects}/starter/entities/pages/messages/en.json +0 -0
  2596. /package/dist/templates/{contents/themes → projects}/starter/entities/pages/messages/es.json +0 -0
  2597. /package/dist/templates/{contents/themes → projects}/starter/entities/pages/migrations/001_pages_table.sql +0 -0
  2598. /package/dist/templates/{contents/themes → projects}/starter/entities/pages/migrations/002_pages_metas.sql +0 -0
  2599. /package/dist/templates/{contents/themes → projects}/starter/entities/pages/migrations/003_add_status.sql +0 -0
  2600. /package/dist/templates/{contents/themes → projects}/starter/entities/pages/pages-management.service.ts +0 -0
  2601. /package/dist/templates/{contents/themes → projects}/starter/entities/pages/pages.fields.ts +0 -0
  2602. /package/dist/templates/{contents/themes → projects}/starter/entities/pages/pages.service.ts +0 -0
  2603. /package/dist/templates/{contents/themes → projects}/starter/entities/pages/pages.types.ts +0 -0
  2604. /package/dist/templates/{contents/themes → projects}/starter/entities/posts/api/docs.md +0 -0
  2605. /package/dist/templates/{contents/themes → projects}/starter/entities/posts/api/presets.ts +0 -0
  2606. /package/dist/templates/{contents/themes → projects}/starter/entities/posts/components/post-header.tsx +0 -0
  2607. /package/dist/templates/{contents/themes → projects}/starter/entities/posts/messages/en.json +0 -0
  2608. /package/dist/templates/{contents/themes → projects}/starter/entities/posts/messages/es.json +0 -0
  2609. /package/dist/templates/{contents/themes → projects}/starter/entities/posts/migrations/001_posts_table.sql +0 -0
  2610. /package/dist/templates/{contents/themes → projects}/starter/entities/posts/migrations/003_add_status.sql +0 -0
  2611. /package/dist/templates/{contents/themes → projects}/starter/entities/posts/migrations/004_entity_taxonomy_relations.sql +0 -0
  2612. /package/dist/templates/{contents/themes → projects}/starter/entities/posts/migrations/006_posts_metas.sql +0 -0
  2613. /package/dist/templates/{contents/themes → projects}/starter/entities/posts/posts.fields.ts +0 -0
  2614. /package/dist/templates/{contents/themes → projects}/starter/entities/posts/posts.service.ts +0 -0
  2615. /package/dist/templates/{contents/themes → projects}/starter/entities/posts/posts.types.ts +0 -0
  2616. /package/dist/templates/{contents/themes → projects}/starter/entities/tasks/api/docs.md +0 -0
  2617. /package/dist/templates/{contents/themes → projects}/starter/entities/tasks/api/presets.ts +0 -0
  2618. /package/dist/templates/{contents/themes → projects}/starter/entities/tasks/messages/de.json +0 -0
  2619. /package/dist/templates/{contents/themes → projects}/starter/entities/tasks/messages/en.json +0 -0
  2620. /package/dist/templates/{contents/themes → projects}/starter/entities/tasks/messages/es.json +0 -0
  2621. /package/dist/templates/{contents/themes → projects}/starter/entities/tasks/messages/fr.json +0 -0
  2622. /package/dist/templates/{contents/themes → projects}/starter/entities/tasks/messages/it.json +0 -0
  2623. /package/dist/templates/{contents/themes → projects}/starter/entities/tasks/messages/pt.json +0 -0
  2624. /package/dist/templates/{contents/themes → projects}/starter/entities/tasks/migrations/001_tasks_table.sql +0 -0
  2625. /package/dist/templates/{contents/themes → projects}/starter/entities/tasks/migrations/002_task_metas.sql +0 -0
  2626. /package/dist/templates/{contents/themes → projects}/starter/entities/tasks/tasks.fields.ts +0 -0
  2627. /package/dist/templates/{contents/themes → projects}/starter/entities/tasks/tasks.service.ts +0 -0
  2628. /package/dist/templates/{contents/themes → projects}/starter/entities/tasks/tasks.types.ts +0 -0
  2629. /package/dist/templates/{contents/themes → projects}/starter/lib/.gitkeep +0 -0
  2630. /package/dist/templates/{contents/themes → projects}/starter/lib/hooks/index.ts +0 -0
  2631. /package/dist/templates/{contents/themes → projects}/starter/lib/hooks/useAnalyticsData.ts +0 -0
  2632. /package/dist/templates/{contents/themes → projects}/starter/lib/hooks/useTaskStats.ts +0 -0
  2633. /package/dist/templates/{contents/themes → projects}/starter/lib/index.ts +0 -0
  2634. /package/dist/templates/{contents/themes → projects}/starter/lib/selectors.ts +0 -0
  2635. /package/dist/templates/{contents/themes → projects}/starter/lib/utils.ts +0 -0
  2636. /package/dist/templates/{contents/themes → projects}/starter/messages/de/analytics.json +0 -0
  2637. /package/dist/templates/{contents/themes → projects}/starter/messages/de/common.json +0 -0
  2638. /package/dist/templates/{contents/themes → projects}/starter/messages/de/dev.json +0 -0
  2639. /package/dist/templates/{contents/themes → projects}/starter/messages/de/features.json +0 -0
  2640. /package/dist/templates/{contents/themes → projects}/starter/messages/de/home.json +0 -0
  2641. /package/dist/templates/{contents/themes → projects}/starter/messages/de/index.ts +0 -0
  2642. /package/dist/templates/{contents/themes → projects}/starter/messages/de/navigation.json +0 -0
  2643. /package/dist/templates/{contents/themes → projects}/starter/messages/de/public.json +0 -0
  2644. /package/dist/templates/{contents/themes → projects}/starter/messages/en/analytics.json +0 -0
  2645. /package/dist/templates/{contents/themes → projects}/starter/messages/en/common.json +0 -0
  2646. /package/dist/templates/{contents/themes → projects}/starter/messages/en/dev.json +0 -0
  2647. /package/dist/templates/{contents/themes → projects}/starter/messages/en/features.json +0 -0
  2648. /package/dist/templates/{contents/themes → projects}/starter/messages/en/home.json +0 -0
  2649. /package/dist/templates/{contents/themes → projects}/starter/messages/en/index.ts +0 -0
  2650. /package/dist/templates/{contents/themes → projects}/starter/messages/en/navigation.json +0 -0
  2651. /package/dist/templates/{contents/themes → projects}/starter/messages/en/public.json +0 -0
  2652. /package/dist/templates/{contents/themes → projects}/starter/messages/es/analytics.json +0 -0
  2653. /package/dist/templates/{contents/themes → projects}/starter/messages/es/common.json +0 -0
  2654. /package/dist/templates/{contents/themes → projects}/starter/messages/es/dev.json +0 -0
  2655. /package/dist/templates/{contents/themes → projects}/starter/messages/es/features.json +0 -0
  2656. /package/dist/templates/{contents/themes → projects}/starter/messages/es/home.json +0 -0
  2657. /package/dist/templates/{contents/themes → projects}/starter/messages/es/index.ts +0 -0
  2658. /package/dist/templates/{contents/themes → projects}/starter/messages/es/navigation.json +0 -0
  2659. /package/dist/templates/{contents/themes → projects}/starter/messages/es/public.json +0 -0
  2660. /package/dist/templates/{contents/themes → projects}/starter/messages/fr/analytics.json +0 -0
  2661. /package/dist/templates/{contents/themes → projects}/starter/messages/fr/common.json +0 -0
  2662. /package/dist/templates/{contents/themes → projects}/starter/messages/fr/dev.json +0 -0
  2663. /package/dist/templates/{contents/themes → projects}/starter/messages/fr/features.json +0 -0
  2664. /package/dist/templates/{contents/themes → projects}/starter/messages/fr/home.json +0 -0
  2665. /package/dist/templates/{contents/themes → projects}/starter/messages/fr/index.ts +0 -0
  2666. /package/dist/templates/{contents/themes → projects}/starter/messages/fr/navigation.json +0 -0
  2667. /package/dist/templates/{contents/themes → projects}/starter/messages/fr/public.json +0 -0
  2668. /package/dist/templates/{contents/themes → projects}/starter/messages/it/analytics.json +0 -0
  2669. /package/dist/templates/{contents/themes → projects}/starter/messages/it/common.json +0 -0
  2670. /package/dist/templates/{contents/themes → projects}/starter/messages/it/dev.json +0 -0
  2671. /package/dist/templates/{contents/themes → projects}/starter/messages/it/features.json +0 -0
  2672. /package/dist/templates/{contents/themes → projects}/starter/messages/it/home.json +0 -0
  2673. /package/dist/templates/{contents/themes → projects}/starter/messages/it/index.ts +0 -0
  2674. /package/dist/templates/{contents/themes → projects}/starter/messages/it/navigation.json +0 -0
  2675. /package/dist/templates/{contents/themes → projects}/starter/messages/pt/analytics.json +0 -0
  2676. /package/dist/templates/{contents/themes → projects}/starter/messages/pt/common.json +0 -0
  2677. /package/dist/templates/{contents/themes → projects}/starter/messages/pt/dev.json +0 -0
  2678. /package/dist/templates/{contents/themes → projects}/starter/messages/pt/features.json +0 -0
  2679. /package/dist/templates/{contents/themes → projects}/starter/messages/pt/home.json +0 -0
  2680. /package/dist/templates/{contents/themes → projects}/starter/messages/pt/index.ts +0 -0
  2681. /package/dist/templates/{contents/themes → projects}/starter/messages/pt/navigation.json +0 -0
  2682. /package/dist/templates/{contents/themes → projects}/starter/migrations/README.md +0 -0
  2683. /package/dist/templates/{contents/themes/starter/blocks → projects/starter/public/brand}/.gitkeep +0 -0
  2684. /package/dist/templates/{contents/themes → projects}/starter/styles/components.css +0 -0
  2685. /package/dist/templates/{contents/themes → projects}/starter/templates/(public)/layout.tsx +0 -0
  2686. /package/dist/templates/{contents/themes → projects}/starter/templates/(public)/support/page.tsx +0 -0
  2687. /package/dist/templates/{contents/themes → projects}/starter/templates/dashboard/analytics/loading.tsx +0 -0
  2688. /package/dist/templates/{contents/themes → projects}/starter/templates/dashboard/analytics/page.tsx +0 -0
  2689. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/devtools/access.bdd.md +0 -0
  2690. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/devtools/access.cy.ts +0 -0
  2691. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/devtools/navigation.bdd.md +0 -0
  2692. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/devtools/navigation.cy.ts +0 -0
  2693. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/devtools/pages.bdd.md +0 -0
  2694. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/devtools/pages.cy.ts +0 -0
  2695. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/auth.bdd.md +0 -0
  2696. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/auth.cy.ts +0 -0
  2697. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/billing.bdd.md +0 -0
  2698. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/billing.cy.ts +0 -0
  2699. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/block-editor.cy.ts +0 -0
  2700. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/dashboard-container.cy.ts +0 -0
  2701. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/dashboard-mobile.bdd.md +0 -0
  2702. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/dashboard-mobile.cy.ts +0 -0
  2703. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/dashboard-navigation.cy.ts +0 -0
  2704. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/dashboard-sidebar.cy.ts +0 -0
  2705. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/dashboard-topnav.cy.ts +0 -0
  2706. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/devtools.bdd.md +0 -0
  2707. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/devtools.cy.ts +0 -0
  2708. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/global-search.bdd.md +0 -0
  2709. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/global-search.cy.ts +0 -0
  2710. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/patterns.cy.ts +0 -0
  2711. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/settings-api-keys.cy.ts +0 -0
  2712. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/settings-billing.cy.ts +0 -0
  2713. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/settings-layout.cy.ts +0 -0
  2714. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/settings-password.cy.ts +0 -0
  2715. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/settings-profile.cy.ts +0 -0
  2716. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/settings-teams.cy.ts +0 -0
  2717. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/superadmin.cy.ts +0 -0
  2718. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/tasks.cy.ts +0 -0
  2719. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/teams.cy.ts +0 -0
  2720. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/superadmin/all-teams.bdd.md +0 -0
  2721. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/superadmin/all-teams.cy.ts +0 -0
  2722. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/superadmin/all-users.bdd.md +0 -0
  2723. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/superadmin/all-users.cy.ts +0 -0
  2724. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/superadmin/dashboard.bdd.md +0 -0
  2725. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/superadmin/dashboard.cy.ts +0 -0
  2726. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/superadmin/subscriptions-overview.bdd.md +0 -0
  2727. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/superadmin/subscriptions-overview.cy.ts +0 -0
  2728. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/api/entities/tasks/TaskAPIController.js +0 -0
  2729. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/uat/entities/tasks/tasks-crud.bdd.md +0 -0
  2730. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/e2e/uat/entities/tasks/tasks-crud.cy.ts +0 -0
  2731. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/fixtures/entities.json +0 -0
  2732. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/components/DevKeyringPOM.ts +0 -0
  2733. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/components/EntityForm.ts +0 -0
  2734. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/components/EntityList.ts +0 -0
  2735. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/components/TeamSwitcherPOM.ts +0 -0
  2736. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/components/index.ts +0 -0
  2737. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/controllers/BaseAPIController.js +0 -0
  2738. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/controllers/index.js +0 -0
  2739. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/core/AuthPOM.ts +0 -0
  2740. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/core/BasePOM.ts +0 -0
  2741. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/core/BlockEditorBasePOM.ts +0 -0
  2742. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/core/DashboardEntityPOM.ts +0 -0
  2743. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/core/index.ts +0 -0
  2744. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/entities/PagesPOM.ts +0 -0
  2745. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/entities/PatternsPOM.ts +0 -0
  2746. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/entities/TasksPOM.ts +0 -0
  2747. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/entities/index.ts +0 -0
  2748. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/features/BillingPOM.ts +0 -0
  2749. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/features/DashboardPOM.ts +0 -0
  2750. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/features/DevtoolsPOM.ts +0 -0
  2751. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/features/PageBuilderPOM.ts +0 -0
  2752. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/features/PostEditorPOM.ts +0 -0
  2753. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/features/ScheduledActionsPOM.ts +0 -0
  2754. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/features/SettingsPOM.ts +0 -0
  2755. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/features/SuperadminPOM.ts +0 -0
  2756. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/features/SuperadminTeamRolesPOM.ts +0 -0
  2757. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/features/index.ts +0 -0
  2758. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/helpers/ApiInterceptor.ts +0 -0
  2759. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/index.ts +0 -0
  2760. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/src/selectors.ts +0 -0
  2761. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/support/commands.ts +0 -0
  2762. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/support/doc-commands.ts +0 -0
  2763. /package/dist/templates/{contents/themes → projects}/starter/tests/cypress/support/e2e.ts +0 -0
  2764. /package/{templates/contents/themes → dist/templates/projects}/starter/tests/jest/__mocks__/jose.js +0 -0
  2765. /package/{templates/contents/themes → dist/templates/projects}/starter/tests/jest/__mocks__/next-server.js +0 -0
  2766. /package/dist/templates/{contents/themes → projects}/starter/tests/jest/setup.ts +0 -0
  2767. /package/templates/{contents/plugins → plugins}/starter/plugin/components/ExampleWidget.tsx.template +0 -0
  2768. /package/templates/{contents/plugins → plugins}/starter/plugin/entities/.gitkeep +0 -0
  2769. /package/templates/{contents/plugins → plugins}/starter/plugin/lib/core.ts.template +0 -0
  2770. /package/templates/{contents/plugins → plugins}/starter/plugin/lib/types.ts.template +0 -0
  2771. /package/templates/{contents/plugins → plugins}/starter/plugin/messages/de.json +0 -0
  2772. /package/templates/{contents/plugins → plugins}/starter/plugin/messages/en.json +0 -0
  2773. /package/templates/{contents/plugins → plugins}/starter/plugin/messages/es.json +0 -0
  2774. /package/templates/{contents/plugins → plugins}/starter/plugin/messages/fr.json +0 -0
  2775. /package/templates/{contents/plugins → plugins}/starter/plugin/messages/it.json +0 -0
  2776. /package/templates/{contents/plugins → plugins}/starter/plugin/messages/pt.json +0 -0
  2777. /package/templates/{contents/plugins → plugins}/starter/plugin/migrations/README.md +0 -0
  2778. /package/templates/{contents/plugins → plugins}/starter/plugin/plugin.config.ts.template +0 -0
  2779. /package/templates/{contents/plugins → plugins}/starter/plugin/tests/plugin.test.ts.template +0 -0
  2780. /package/templates/{contents/themes → projects}/starter/README.md +0 -0
  2781. /package/templates/{contents/themes → projects}/starter/about/business.md +0 -0
  2782. /package/templates/{contents/themes → projects}/starter/about/features.json +0 -0
  2783. /package/{dist/templates/contents/themes/starter/public/brand → templates/projects/starter/blocks}/.gitkeep +0 -0
  2784. /package/templates/{contents/themes → projects}/starter/blocks/cta-section/component.tsx +0 -0
  2785. /package/templates/{contents/themes → projects}/starter/blocks/cta-section/fields.ts +0 -0
  2786. /package/templates/{contents/themes → projects}/starter/blocks/cta-section/index.ts +0 -0
  2787. /package/templates/{contents/themes → projects}/starter/blocks/cta-section/schema.ts +0 -0
  2788. /package/templates/{contents/themes → projects}/starter/blocks/cta-section/thumbnail.png +0 -0
  2789. /package/templates/{contents/themes → projects}/starter/blocks/features-grid/component.tsx +0 -0
  2790. /package/templates/{contents/themes → projects}/starter/blocks/features-grid/fields.ts +0 -0
  2791. /package/templates/{contents/themes → projects}/starter/blocks/features-grid/index.ts +0 -0
  2792. /package/templates/{contents/themes → projects}/starter/blocks/features-grid/schema.ts +0 -0
  2793. /package/templates/{contents/themes → projects}/starter/blocks/features-grid/thumbnail.png +0 -0
  2794. /package/templates/{contents/themes → projects}/starter/blocks/hero/component.tsx +0 -0
  2795. /package/templates/{contents/themes → projects}/starter/blocks/hero/fields.ts +0 -0
  2796. /package/templates/{contents/themes → projects}/starter/blocks/hero/index.ts +0 -0
  2797. /package/templates/{contents/themes → projects}/starter/blocks/hero/schema.ts +0 -0
  2798. /package/templates/{contents/themes → projects}/starter/blocks/hero/thumbnail.png +0 -0
  2799. /package/templates/{contents/themes → projects}/starter/blocks/testimonials/component.tsx +0 -0
  2800. /package/templates/{contents/themes → projects}/starter/blocks/testimonials/fields.ts +0 -0
  2801. /package/templates/{contents/themes → projects}/starter/blocks/testimonials/index.ts +0 -0
  2802. /package/templates/{contents/themes → projects}/starter/blocks/testimonials/schema.ts +0 -0
  2803. /package/templates/{contents/themes → projects}/starter/blocks/testimonials/thumbnail.png +0 -0
  2804. /package/templates/{contents/themes → projects}/starter/blocks/text-content/component.tsx +0 -0
  2805. /package/templates/{contents/themes → projects}/starter/blocks/text-content/fields.ts +0 -0
  2806. /package/templates/{contents/themes → projects}/starter/blocks/text-content/index.ts +0 -0
  2807. /package/templates/{contents/themes → projects}/starter/blocks/text-content/schema.ts +0 -0
  2808. /package/templates/{contents/themes → projects}/starter/blocks/text-content/thumbnail.png +0 -0
  2809. /package/templates/{contents/themes → projects}/starter/components/.gitkeep +0 -0
  2810. /package/templates/{contents/themes → projects}/starter/components/analytics/RecentActivity.tsx +0 -0
  2811. /package/templates/{contents/themes → projects}/starter/components/analytics/StatsCard.tsx +0 -0
  2812. /package/templates/{contents/themes → projects}/starter/components/analytics/TasksChart.tsx +0 -0
  2813. /package/templates/{contents/themes → projects}/starter/components/analytics/index.ts +0 -0
  2814. /package/templates/{contents/themes → projects}/starter/config/app.config.ts +0 -0
  2815. /package/templates/{contents/themes → projects}/starter/config/billing.config.ts +0 -0
  2816. /package/templates/{contents/themes → projects}/starter/config/dashboard.config.ts +0 -0
  2817. /package/templates/{contents/themes → projects}/starter/config/dev.config.ts +0 -0
  2818. /package/templates/{contents/themes → projects}/starter/config/features.config.ts +0 -0
  2819. /package/templates/{contents/themes → projects}/starter/config/permissions.config.ts +0 -0
  2820. /package/templates/{contents/themes → projects}/starter/config/theme.config.ts +0 -0
  2821. /package/templates/{contents/themes → projects}/starter/docs/public/01-overview/01-introduction.md +0 -0
  2822. /package/templates/{contents/themes → projects}/starter/docs/public/01-overview/02-customization.md +0 -0
  2823. /package/templates/{contents/themes → projects}/starter/docs/superadmin/01-setup/01-configuration.md +0 -0
  2824. /package/templates/{contents/themes → projects}/starter/docs/superadmin/02-entities/01-tasks.md +0 -0
  2825. /package/templates/{contents/themes → projects}/starter/emails/verify-email.ts +0 -0
  2826. /package/templates/{contents/themes → projects}/starter/entities/pages/api/docs.md +0 -0
  2827. /package/templates/{contents/themes → projects}/starter/entities/pages/api/presets.ts +0 -0
  2828. /package/templates/{contents/themes → projects}/starter/entities/pages/messages/en.json +0 -0
  2829. /package/templates/{contents/themes → projects}/starter/entities/pages/messages/es.json +0 -0
  2830. /package/templates/{contents/themes → projects}/starter/entities/pages/migrations/001_pages_table.sql +0 -0
  2831. /package/templates/{contents/themes → projects}/starter/entities/pages/migrations/002_pages_metas.sql +0 -0
  2832. /package/templates/{contents/themes → projects}/starter/entities/pages/migrations/003_add_status.sql +0 -0
  2833. /package/templates/{contents/themes → projects}/starter/entities/pages/pages-management.service.ts +0 -0
  2834. /package/templates/{contents/themes → projects}/starter/entities/pages/pages.fields.ts +0 -0
  2835. /package/templates/{contents/themes → projects}/starter/entities/pages/pages.service.ts +0 -0
  2836. /package/templates/{contents/themes → projects}/starter/entities/pages/pages.types.ts +0 -0
  2837. /package/templates/{contents/themes → projects}/starter/entities/posts/api/docs.md +0 -0
  2838. /package/templates/{contents/themes → projects}/starter/entities/posts/api/presets.ts +0 -0
  2839. /package/templates/{contents/themes → projects}/starter/entities/posts/components/post-header.tsx +0 -0
  2840. /package/templates/{contents/themes → projects}/starter/entities/posts/messages/en.json +0 -0
  2841. /package/templates/{contents/themes → projects}/starter/entities/posts/messages/es.json +0 -0
  2842. /package/templates/{contents/themes → projects}/starter/entities/posts/migrations/001_posts_table.sql +0 -0
  2843. /package/templates/{contents/themes → projects}/starter/entities/posts/migrations/003_add_status.sql +0 -0
  2844. /package/templates/{contents/themes → projects}/starter/entities/posts/migrations/004_entity_taxonomy_relations.sql +0 -0
  2845. /package/templates/{contents/themes → projects}/starter/entities/posts/migrations/006_posts_metas.sql +0 -0
  2846. /package/templates/{contents/themes → projects}/starter/entities/posts/posts.fields.ts +0 -0
  2847. /package/templates/{contents/themes → projects}/starter/entities/posts/posts.service.ts +0 -0
  2848. /package/templates/{contents/themes → projects}/starter/entities/posts/posts.types.ts +0 -0
  2849. /package/templates/{contents/themes → projects}/starter/entities/tasks/api/docs.md +0 -0
  2850. /package/templates/{contents/themes → projects}/starter/entities/tasks/api/presets.ts +0 -0
  2851. /package/templates/{contents/themes → projects}/starter/entities/tasks/messages/de.json +0 -0
  2852. /package/templates/{contents/themes → projects}/starter/entities/tasks/messages/en.json +0 -0
  2853. /package/templates/{contents/themes → projects}/starter/entities/tasks/messages/es.json +0 -0
  2854. /package/templates/{contents/themes → projects}/starter/entities/tasks/messages/fr.json +0 -0
  2855. /package/templates/{contents/themes → projects}/starter/entities/tasks/messages/it.json +0 -0
  2856. /package/templates/{contents/themes → projects}/starter/entities/tasks/messages/pt.json +0 -0
  2857. /package/templates/{contents/themes → projects}/starter/entities/tasks/migrations/001_tasks_table.sql +0 -0
  2858. /package/templates/{contents/themes → projects}/starter/entities/tasks/migrations/002_task_metas.sql +0 -0
  2859. /package/templates/{contents/themes → projects}/starter/entities/tasks/tasks.fields.ts +0 -0
  2860. /package/templates/{contents/themes → projects}/starter/entities/tasks/tasks.service.ts +0 -0
  2861. /package/templates/{contents/themes → projects}/starter/entities/tasks/tasks.types.ts +0 -0
  2862. /package/templates/{contents/themes → projects}/starter/lib/.gitkeep +0 -0
  2863. /package/templates/{contents/themes → projects}/starter/lib/hooks/index.ts +0 -0
  2864. /package/templates/{contents/themes → projects}/starter/lib/hooks/useAnalyticsData.ts +0 -0
  2865. /package/templates/{contents/themes → projects}/starter/lib/hooks/useTaskStats.ts +0 -0
  2866. /package/templates/{contents/themes → projects}/starter/lib/index.ts +0 -0
  2867. /package/templates/{contents/themes → projects}/starter/lib/selectors.ts +0 -0
  2868. /package/templates/{contents/themes → projects}/starter/lib/utils.ts +0 -0
  2869. /package/templates/{contents/themes → projects}/starter/messages/de/analytics.json +0 -0
  2870. /package/templates/{contents/themes → projects}/starter/messages/de/common.json +0 -0
  2871. /package/templates/{contents/themes → projects}/starter/messages/de/dev.json +0 -0
  2872. /package/templates/{contents/themes → projects}/starter/messages/de/features.json +0 -0
  2873. /package/templates/{contents/themes → projects}/starter/messages/de/home.json +0 -0
  2874. /package/templates/{contents/themes → projects}/starter/messages/de/index.ts +0 -0
  2875. /package/templates/{contents/themes → projects}/starter/messages/de/navigation.json +0 -0
  2876. /package/templates/{contents/themes → projects}/starter/messages/de/public.json +0 -0
  2877. /package/templates/{contents/themes → projects}/starter/messages/en/analytics.json +0 -0
  2878. /package/templates/{contents/themes → projects}/starter/messages/en/common.json +0 -0
  2879. /package/templates/{contents/themes → projects}/starter/messages/en/dev.json +0 -0
  2880. /package/templates/{contents/themes → projects}/starter/messages/en/features.json +0 -0
  2881. /package/templates/{contents/themes → projects}/starter/messages/en/home.json +0 -0
  2882. /package/templates/{contents/themes → projects}/starter/messages/en/index.ts +0 -0
  2883. /package/templates/{contents/themes → projects}/starter/messages/en/navigation.json +0 -0
  2884. /package/templates/{contents/themes → projects}/starter/messages/en/public.json +0 -0
  2885. /package/templates/{contents/themes → projects}/starter/messages/es/analytics.json +0 -0
  2886. /package/templates/{contents/themes → projects}/starter/messages/es/common.json +0 -0
  2887. /package/templates/{contents/themes → projects}/starter/messages/es/dev.json +0 -0
  2888. /package/templates/{contents/themes → projects}/starter/messages/es/features.json +0 -0
  2889. /package/templates/{contents/themes → projects}/starter/messages/es/home.json +0 -0
  2890. /package/templates/{contents/themes → projects}/starter/messages/es/index.ts +0 -0
  2891. /package/templates/{contents/themes → projects}/starter/messages/es/navigation.json +0 -0
  2892. /package/templates/{contents/themes → projects}/starter/messages/es/public.json +0 -0
  2893. /package/templates/{contents/themes → projects}/starter/messages/fr/analytics.json +0 -0
  2894. /package/templates/{contents/themes → projects}/starter/messages/fr/common.json +0 -0
  2895. /package/templates/{contents/themes → projects}/starter/messages/fr/dev.json +0 -0
  2896. /package/templates/{contents/themes → projects}/starter/messages/fr/features.json +0 -0
  2897. /package/templates/{contents/themes → projects}/starter/messages/fr/home.json +0 -0
  2898. /package/templates/{contents/themes → projects}/starter/messages/fr/index.ts +0 -0
  2899. /package/templates/{contents/themes → projects}/starter/messages/fr/navigation.json +0 -0
  2900. /package/templates/{contents/themes → projects}/starter/messages/fr/public.json +0 -0
  2901. /package/templates/{contents/themes → projects}/starter/messages/it/analytics.json +0 -0
  2902. /package/templates/{contents/themes → projects}/starter/messages/it/common.json +0 -0
  2903. /package/templates/{contents/themes → projects}/starter/messages/it/dev.json +0 -0
  2904. /package/templates/{contents/themes → projects}/starter/messages/it/features.json +0 -0
  2905. /package/templates/{contents/themes → projects}/starter/messages/it/home.json +0 -0
  2906. /package/templates/{contents/themes → projects}/starter/messages/it/index.ts +0 -0
  2907. /package/templates/{contents/themes → projects}/starter/messages/it/navigation.json +0 -0
  2908. /package/templates/{contents/themes → projects}/starter/messages/pt/analytics.json +0 -0
  2909. /package/templates/{contents/themes → projects}/starter/messages/pt/common.json +0 -0
  2910. /package/templates/{contents/themes → projects}/starter/messages/pt/dev.json +0 -0
  2911. /package/templates/{contents/themes → projects}/starter/messages/pt/features.json +0 -0
  2912. /package/templates/{contents/themes → projects}/starter/messages/pt/home.json +0 -0
  2913. /package/templates/{contents/themes → projects}/starter/messages/pt/index.ts +0 -0
  2914. /package/templates/{contents/themes → projects}/starter/messages/pt/navigation.json +0 -0
  2915. /package/templates/{contents/themes → projects}/starter/migrations/README.md +0 -0
  2916. /package/templates/{contents/plugins → projects/starter/public/brand}/.gitkeep +0 -0
  2917. /package/templates/{contents/themes → projects}/starter/styles/components.css +0 -0
  2918. /package/templates/{contents/themes → projects}/starter/templates/(public)/layout.tsx +0 -0
  2919. /package/templates/{contents/themes → projects}/starter/templates/(public)/support/page.tsx +0 -0
  2920. /package/templates/{contents/themes → projects}/starter/templates/dashboard/analytics/loading.tsx +0 -0
  2921. /package/templates/{contents/themes → projects}/starter/templates/dashboard/analytics/page.tsx +0 -0
  2922. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/devtools/access.bdd.md +0 -0
  2923. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/devtools/access.cy.ts +0 -0
  2924. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/devtools/navigation.bdd.md +0 -0
  2925. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/devtools/navigation.cy.ts +0 -0
  2926. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/devtools/pages.bdd.md +0 -0
  2927. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/devtools/pages.cy.ts +0 -0
  2928. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/auth.bdd.md +0 -0
  2929. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/auth.cy.ts +0 -0
  2930. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/billing.bdd.md +0 -0
  2931. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/billing.cy.ts +0 -0
  2932. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/block-editor.cy.ts +0 -0
  2933. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/dashboard-container.cy.ts +0 -0
  2934. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/dashboard-mobile.bdd.md +0 -0
  2935. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/dashboard-mobile.cy.ts +0 -0
  2936. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/dashboard-navigation.cy.ts +0 -0
  2937. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/dashboard-sidebar.cy.ts +0 -0
  2938. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/dashboard-topnav.cy.ts +0 -0
  2939. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/devtools.bdd.md +0 -0
  2940. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/devtools.cy.ts +0 -0
  2941. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/global-search.bdd.md +0 -0
  2942. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/global-search.cy.ts +0 -0
  2943. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/patterns.cy.ts +0 -0
  2944. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/settings-api-keys.cy.ts +0 -0
  2945. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/settings-billing.cy.ts +0 -0
  2946. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/settings-layout.cy.ts +0 -0
  2947. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/settings-password.cy.ts +0 -0
  2948. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/settings-profile.cy.ts +0 -0
  2949. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/settings-teams.cy.ts +0 -0
  2950. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/superadmin.cy.ts +0 -0
  2951. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/tasks.cy.ts +0 -0
  2952. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/selectors/teams.cy.ts +0 -0
  2953. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/superadmin/all-teams.bdd.md +0 -0
  2954. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/superadmin/all-teams.cy.ts +0 -0
  2955. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/superadmin/all-users.bdd.md +0 -0
  2956. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/superadmin/all-users.cy.ts +0 -0
  2957. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/superadmin/dashboard.bdd.md +0 -0
  2958. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/superadmin/dashboard.cy.ts +0 -0
  2959. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/superadmin/subscriptions-overview.bdd.md +0 -0
  2960. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/_utils/superadmin/subscriptions-overview.cy.ts +0 -0
  2961. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/api/entities/tasks/TaskAPIController.js +0 -0
  2962. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/uat/entities/tasks/tasks-crud.bdd.md +0 -0
  2963. /package/templates/{contents/themes → projects}/starter/tests/cypress/e2e/uat/entities/tasks/tasks-crud.cy.ts +0 -0
  2964. /package/templates/{contents/themes → projects}/starter/tests/cypress/fixtures/entities.json +0 -0
  2965. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/components/DevKeyringPOM.ts +0 -0
  2966. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/components/EntityForm.ts +0 -0
  2967. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/components/EntityList.ts +0 -0
  2968. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/components/TeamSwitcherPOM.ts +0 -0
  2969. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/components/index.ts +0 -0
  2970. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/controllers/BaseAPIController.js +0 -0
  2971. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/controllers/index.js +0 -0
  2972. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/core/AuthPOM.ts +0 -0
  2973. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/core/BasePOM.ts +0 -0
  2974. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/core/BlockEditorBasePOM.ts +0 -0
  2975. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/core/DashboardEntityPOM.ts +0 -0
  2976. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/core/index.ts +0 -0
  2977. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/entities/PagesPOM.ts +0 -0
  2978. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/entities/PatternsPOM.ts +0 -0
  2979. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/entities/TasksPOM.ts +0 -0
  2980. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/entities/index.ts +0 -0
  2981. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/features/BillingPOM.ts +0 -0
  2982. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/features/DashboardPOM.ts +0 -0
  2983. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/features/DevtoolsPOM.ts +0 -0
  2984. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/features/PageBuilderPOM.ts +0 -0
  2985. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/features/PostEditorPOM.ts +0 -0
  2986. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/features/ScheduledActionsPOM.ts +0 -0
  2987. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/features/SettingsPOM.ts +0 -0
  2988. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/features/SuperadminPOM.ts +0 -0
  2989. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/features/SuperadminTeamRolesPOM.ts +0 -0
  2990. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/features/index.ts +0 -0
  2991. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/helpers/ApiInterceptor.ts +0 -0
  2992. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/index.ts +0 -0
  2993. /package/templates/{contents/themes → projects}/starter/tests/cypress/src/selectors.ts +0 -0
  2994. /package/templates/{contents/themes → projects}/starter/tests/cypress/support/commands.ts +0 -0
  2995. /package/templates/{contents/themes → projects}/starter/tests/cypress/support/doc-commands.ts +0 -0
  2996. /package/templates/{contents/themes → projects}/starter/tests/cypress/support/e2e.ts +0 -0
  2997. /package/templates/{contents/themes → projects}/starter/tests/jest/setup.ts +0 -0
@@ -0,0 +1,912 @@
1
+ /**
2
+ * Plugin capabilities (#203, "Plugin model")
3
+ *
4
+ * A runtime plugin declares the surfaces it contributes to:
5
+ *
6
+ * export const examplePluginConfig = definePlugin({ name: 'example', capabilities: ['server', 'web'] })
7
+ *
8
+ * The compiler reads the declaration from the source (it never runs the config) and takes only what
9
+ * is declared:
10
+ *
11
+ * server api/, entities/, settings/, plugin.pages.server.ts -> API routes, entity registry, server registries
12
+ * web templates/, components/, hooks/, providers/, -> web host routes, client registry
13
+ * messages/, assets/, styles/, any 'use client' file
14
+ * mobile mobile/ -> the mobile entry (no host yet)
15
+ * build build/ -> build-time code
16
+ *
17
+ * A file in a surface the plugin did not declare fails generation (NS_PLUGIN_CAPABILITY_UNDECLARED),
18
+ * and two transitive rules are checked on the import graph:
19
+ * - a web or mobile entry must not reach server-only code (NS_PLUGIN_SERVER_IN_CLIENT);
20
+ * - no runtime entry may reach build-only code (NS_PLUGIN_BUILD_IN_RUNTIME).
21
+ *
22
+ * A plugin whose config declares no `capabilities` is legacy and is treated as server + web + build
23
+ * (everything but mobile), so plugins not migrated to `definePlugin` keep working.
24
+ *
25
+ * Collisions between plugins (same plugin name, same entity) are diagnostics naming both plugins;
26
+ * every diagnostic list is sorted, so it does not depend on the order the plugins were found in.
27
+ *
28
+ * @module core/scripts/build/registry/discovery/plugin-capabilities
29
+ */
30
+
31
+ import { readFileSync, readdirSync, realpathSync, statSync } from 'node:fs'
32
+ import { builtinModules } from 'node:module'
33
+ import { dirname, extname, join, relative, resolve, sep } from 'node:path'
34
+
35
+ import { loadTypeScriptFor } from '../shared/typescript-compiler.mjs'
36
+
37
+ export const PLUGIN_CAPABILITIES = Object.freeze(['server', 'web', 'build', 'mobile'])
38
+ /** What a plugin that declares nothing is taken to contribute. */
39
+ export const LEGACY_CAPABILITIES = Object.freeze(['server', 'web', 'build'])
40
+
41
+ export const PLUGIN_DIAGNOSTICS = Object.freeze({
42
+ INVALID: 'NS_PLUGIN_CAPABILITY_INVALID',
43
+ UNDECLARED: 'NS_PLUGIN_CAPABILITY_UNDECLARED',
44
+ SERVER_IN_CLIENT: 'NS_PLUGIN_SERVER_IN_CLIENT',
45
+ BUILD_IN_RUNTIME: 'NS_PLUGIN_BUILD_IN_RUNTIME',
46
+ UNRESOLVED_REPLACEMENT: 'NS_PLUGIN_BROWSER_MAP_UNRESOLVED',
47
+ NAME_COLLISION: 'NS_PLUGIN_NAME_COLLISION',
48
+ ENTITY_COLLISION: 'NS_PLUGIN_ENTITY_COLLISION',
49
+ })
50
+
51
+ /** Thrown with every diagnostic found; generation cannot continue. */
52
+ export class PluginCapabilityError extends Error {
53
+ constructor(diagnostics) {
54
+ super(`Plugin capability check failed:\n${diagnostics.map(d => ` - [${d.code}] ${d.message}`).join('\n')}`)
55
+ this.name = 'PluginCapabilityError'
56
+ this.diagnostics = diagnostics
57
+ }
58
+ }
59
+
60
+ const compare = (a, b) => (a < b ? -1 : a > b ? 1 : 0)
61
+ const sortDiagnostics = diagnostics =>
62
+ [...diagnostics].sort((a, b) => compare(a.code, b.code) || compare(a.plugin ?? '', b.plugin ?? '') || compare(a.file ?? '', b.file ?? '') || compare(a.message, b.message))
63
+
64
+ // ---------------------------------------------------------------------------
65
+ // Declaration
66
+ // ---------------------------------------------------------------------------
67
+
68
+ /** The capabilities of a discovered plugin (`plugin.capabilities`, or the legacy default). */
69
+ export function capabilitiesOf(plugin) {
70
+ return plugin?.capabilities ?? LEGACY_CAPABILITIES
71
+ }
72
+
73
+ export function hasCapability(plugin, capability) {
74
+ return capabilitiesOf(plugin).includes(capability)
75
+ }
76
+
77
+ function unwrap(ts, node) {
78
+ let current = node
79
+ while (current && (ts.isParenthesizedExpression(current) || ts.isAsExpression(current) || ts.isSatisfiesExpression?.(current) || ts.isTypeAssertionExpression?.(current))) current = current.expression
80
+ return current
81
+ }
82
+
83
+ function findExportedInitializer(ts, sourceFile, exportName) {
84
+ for (const statement of sourceFile.statements) {
85
+ if (ts.isVariableStatement(statement)) {
86
+ for (const declaration of statement.declarationList.declarations) {
87
+ if (ts.isIdentifier(declaration.name) && declaration.name.text === exportName) return declaration.initializer
88
+ }
89
+ }
90
+ if (ts.isExportAssignment(statement) && !exportName) return statement.expression
91
+ }
92
+ return null
93
+ }
94
+
95
+ /**
96
+ * Read the `capabilities` a plugin config declares, statically.
97
+ *
98
+ * @returns {{ declared: boolean, capabilities: string[]|null, diagnostics: object[] }}
99
+ * `declared: false` is a legacy plugin (no `capabilities` property at all).
100
+ */
101
+ export function readPluginDeclaration(ts, { plugin, configFile, exportName }) {
102
+ const diagnostics = []
103
+ const invalid = message => {
104
+ diagnostics.push({ code: PLUGIN_DIAGNOSTICS.INVALID, plugin, file: 'plugin.config.ts', message: `plugins/${plugin}/plugin.config.ts: ${message}` })
105
+ return { declared: true, capabilities: null, diagnostics }
106
+ }
107
+ let text
108
+ try {
109
+ text = readFileSync(configFile, 'utf8')
110
+ } catch {
111
+ return { declared: false, capabilities: null, diagnostics }
112
+ }
113
+ const sourceFile = ts.createSourceFile(configFile, text, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS)
114
+ let initializer = unwrap(ts, findExportedInitializer(ts, sourceFile, exportName))
115
+ if (!initializer) return { declared: false, capabilities: null, diagnostics }
116
+ if (ts.isCallExpression(initializer) && ts.isIdentifier(initializer.expression) && initializer.expression.text === 'definePlugin') {
117
+ initializer = unwrap(ts, initializer.arguments[0])
118
+ if (!initializer || !ts.isObjectLiteralExpression(initializer)) return invalid('definePlugin() must be called with an object literal')
119
+ const property = initializer.properties.find(p => ts.isPropertyAssignment(p) && (ts.isIdentifier(p.name) || ts.isStringLiteral(p.name)) && p.name.text === 'capabilities')
120
+ if (!property) return invalid('definePlugin() requires a literal `capabilities` array')
121
+ return readList(ts, property.initializer, invalid, diagnostics)
122
+ }
123
+ if (!ts.isObjectLiteralExpression(initializer)) return { declared: false, capabilities: null, diagnostics }
124
+ const property = initializer.properties.find(p => ts.isPropertyAssignment(p) && (ts.isIdentifier(p.name) || ts.isStringLiteral(p.name)) && p.name.text === 'capabilities')
125
+ if (!property) return { declared: false, capabilities: null, diagnostics }
126
+ return readList(ts, property.initializer, invalid, diagnostics)
127
+ }
128
+
129
+ /**
130
+ * The descriptive fields of a plugin config that are literals (`displayName`, `version`, `description`, and
131
+ * `enabled`: true, false, or null when computed), read statically, for the capability-neutral catalog. A string
132
+ * field computed at run time is simply absent.
133
+ */
134
+ export function readPluginMetadata(ts, { configFile, exportName }) {
135
+ let text
136
+ try {
137
+ text = readFileSync(configFile, 'utf8')
138
+ } catch {
139
+ return {}
140
+ }
141
+ const sourceFile = ts.createSourceFile(configFile, text, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS)
142
+ let node = unwrap(ts, findExportedInitializer(ts, sourceFile, exportName))
143
+ const viaDefinePlugin = Boolean(node && ts.isCallExpression(node) && ts.isIdentifier(node.expression) && node.expression.text === 'definePlugin')
144
+ if (viaDefinePlugin) node = unwrap(ts, node.arguments[0])
145
+ if (!node || !ts.isObjectLiteralExpression(node)) return {}
146
+ const metadata = {}
147
+ let enabledSeen = false
148
+ for (const property of node.properties) {
149
+ if (!ts.isPropertyAssignment(property) || !(ts.isIdentifier(property.name) || ts.isStringLiteral(property.name))) continue
150
+ const value = unwrap(ts, property.initializer)
151
+ if (['displayName', 'version', 'description'].includes(property.name.text) && value && ts.isStringLiteralLike(value)) metadata[property.name.text] = value.text
152
+ if (property.name.text === 'enabled') {
153
+ enabledSeen = true
154
+ // A literal boolean is known; anything computed (an env flag) is unknown (null), never assumed true.
155
+ metadata.enabled = value?.kind === ts.SyntaxKind.TrueKeyword ? true : value?.kind === ts.SyntaxKind.FalseKeyword ? false : null
156
+ }
157
+ }
158
+ // definePlugin defaults `enabled` to true.
159
+ if (!enabledSeen && viaDefinePlugin) metadata.enabled = true
160
+ return metadata
161
+ }
162
+
163
+ /** How a plugin config exports its config object (`export const fooPlugin = ...`, `export default fooPluginConfig`). */
164
+ export const PLUGIN_EXPORT_PATTERNS = [
165
+ /export\s+const\s+([a-zA-Z]+(?:PluginConfig|Plugin))\s*[:=]/,
166
+ /export\s+default\s+([a-zA-Z]+(?:PluginConfig|Plugin))/,
167
+ ]
168
+
169
+ /**
170
+ * Give every plugin (`{ name, root }`) its declared `capabilities`, reading `plugin.config.ts`.
171
+ * A plugin that already has `capabilities` keeps them (the caller resolved them); one that declares none
172
+ * gets none (legacy: `capabilitiesOf` supplies the default). Invalid declarations come back as diagnostics.
173
+ */
174
+ export async function withDeclaredCapabilities(plugins, { projectRoot }) {
175
+ const pending = plugins.filter(plugin => !('capabilities' in plugin))
176
+ if (pending.length === 0) return { plugins, diagnostics: [] }
177
+ const ts = await loadTypeScriptFor(projectRoot)
178
+ const diagnostics = []
179
+ const resolved = plugins.map(plugin => {
180
+ if ('capabilities' in plugin) return plugin
181
+ const configFile = join(plugin.root ?? plugin.sourceDir, 'plugin.config.ts')
182
+ let exportName = null
183
+ try {
184
+ const text = readFileSync(configFile, 'utf8')
185
+ exportName = PLUGIN_EXPORT_PATTERNS.map(pattern => text.match(pattern)?.[1]).find(Boolean) ?? null
186
+ } catch {
187
+ // no config: not a declared plugin
188
+ }
189
+ if (!exportName) return plugin
190
+ const declaration = readPluginDeclaration(ts, { plugin: plugin.name, configFile, exportName })
191
+ diagnostics.push(...declaration.diagnostics)
192
+ return declaration.capabilities ? { ...plugin, capabilities: declaration.capabilities } : plugin
193
+ })
194
+ return { plugins: resolved, diagnostics }
195
+ }
196
+
197
+ function readList(ts, node, invalid, diagnostics) {
198
+ const list = unwrap(ts, node)
199
+ if (!list || !ts.isArrayLiteralExpression(list)) return invalid('`capabilities` must be a literal array of strings (the compiler reads it without running the config)')
200
+ const capabilities = []
201
+ for (const element of list.elements) {
202
+ if (!ts.isStringLiteralLike(element)) return invalid('`capabilities` must contain only string literals')
203
+ if (!PLUGIN_CAPABILITIES.includes(element.text)) return invalid(`unknown capability "${element.text}"; expected ${PLUGIN_CAPABILITIES.join(', ')}`)
204
+ if (!capabilities.includes(element.text)) capabilities.push(element.text)
205
+ }
206
+ if (capabilities.length === 0) return invalid('`capabilities` must list at least one capability')
207
+ return { declared: true, capabilities, diagnostics }
208
+ }
209
+
210
+ // ---------------------------------------------------------------------------
211
+ // Surfaces
212
+ // ---------------------------------------------------------------------------
213
+
214
+ const CODE_EXTENSIONS = new Set(['.ts', '.tsx', '.mts', '.cts', '.js', '.jsx', '.mjs', '.cjs'])
215
+ const IGNORED_DIRS = new Set(['node_modules', '__tests__', '__mocks__', 'tests', 'test', 'docs', 'examples', 'migrations', 'public', '.git', 'dist'])
216
+ const TEST_FILE = /\.(test|spec|d)\.[cm]?[jt]sx?$|^jest\.(setup|config)\./
217
+
218
+ /** A Route Handler under templates/ (the host planner serves it as a route: it runs on the server). */
219
+ export function isTemplateRoute(path) {
220
+ const parts = path.split('/')
221
+ return parts[0] === 'templates' && parts.length > 1 && /^route(\.[^.]+)?\.[cm]?[jt]sx?$/.test(parts.at(-1))
222
+ }
223
+
224
+ /** Which capability a path inside a plugin needs, or null when it is not a contribution surface. */
225
+ export function surfaceOf(path) {
226
+ const parts = path.split('/')
227
+ const [first] = parts
228
+ if (isTemplateRoute(path)) return 'server'
229
+ if (path === 'plugin.pages.server.ts' || path === 'plugin.pages.server.tsx') return 'server'
230
+ if (['api', 'entities', 'settings'].includes(first) && parts.length > 1) return 'server'
231
+ if (['templates', 'components', 'hooks', 'providers', 'messages', 'assets', 'styles'].includes(first) && parts.length > 1) return 'web'
232
+ if (first === 'mobile' && parts.length > 1) return 'mobile'
233
+ if (first === 'build' && parts.length > 1) return 'build'
234
+ return null
235
+ }
236
+
237
+ function walk(root) {
238
+ const files = []
239
+ const visit = (dir, prefix) => {
240
+ let entries
241
+ try {
242
+ entries = readdirSync(dir, { withFileTypes: true })
243
+ } catch {
244
+ return
245
+ }
246
+ for (const entry of entries.sort((a, b) => compare(a.name, b.name))) {
247
+ const rel = prefix ? `${prefix}/${entry.name}` : entry.name
248
+ if (entry.isDirectory()) {
249
+ if (!prefix && IGNORED_DIRS.has(entry.name) && !['assets', 'public'].includes(entry.name)) continue
250
+ if (prefix && (entry.name === 'node_modules' || entry.name === '__tests__')) continue
251
+ visit(join(dir, entry.name), rel)
252
+ } else if (entry.isFile() || entry.isSymbolicLink()) {
253
+ files.push(rel)
254
+ }
255
+ }
256
+ }
257
+ visit(root, '')
258
+ return files
259
+ }
260
+
261
+ const isCode = path => CODE_EXTENSIONS.has(extname(path)) && !TEST_FILE.test(path.split('/').at(-1))
262
+
263
+ // ---------------------------------------------------------------------------
264
+ // Import graph
265
+ // ---------------------------------------------------------------------------
266
+
267
+ const parseCache = new Map()
268
+
269
+ /** True when every specifier of a named import/export clause is `type X` (the statement is erased). */
270
+ function allTypeSpecifiers(clause) {
271
+ return clause.elements.length > 0 && clause.elements.every(element => element.isTypeOnly)
272
+ }
273
+
274
+ /**
275
+ * `{ imports: string[], edges: { specifier, kind }[], useClient: boolean }` of a source file; type-only imports and
276
+ * re-exports are dropped. An edge is an ESM import / export-from / import() ('import') or a CommonJS require() /
277
+ * TypeScript `import x = require()` ('require'): package `exports` select a different branch for each.
278
+ */
279
+ function analyzeFile(ts, file) {
280
+ let stats
281
+ try {
282
+ stats = statSync(file)
283
+ } catch {
284
+ return null
285
+ }
286
+ const key = `${file}|${stats.mtimeMs}|${stats.size}`
287
+ const cached = parseCache.get(key)
288
+ if (cached) return cached
289
+ const text = readFileSync(file, 'utf8')
290
+ const sourceFile = ts.createSourceFile(file, text, ts.ScriptTarget.Latest, true, extname(file) === '.tsx' || extname(file) === '.jsx' ? ts.ScriptKind.TSX : ts.ScriptKind.TS)
291
+ const edges = []
292
+ const add = (specifier, kind) => edges.push({ specifier, kind })
293
+ let useClient = false
294
+ for (const statement of sourceFile.statements) {
295
+ if (ts.isExpressionStatement(statement) && ts.isStringLiteral(statement.expression)) {
296
+ if (statement.expression.text === 'use client') useClient = true
297
+ continue
298
+ }
299
+ if (ts.isImportDeclaration(statement) && ts.isStringLiteral(statement.moduleSpecifier)) {
300
+ const clause = statement.importClause
301
+ if (clause?.isTypeOnly) continue
302
+ const named = clause?.namedBindings
303
+ if (clause && !clause.name && named && ts.isNamedImports(named) && allTypeSpecifiers(named)) continue
304
+ add(statement.moduleSpecifier.text, 'import')
305
+ } else if (ts.isImportEqualsDeclaration(statement) && !statement.isTypeOnly && ts.isExternalModuleReference(statement.moduleReference) && ts.isStringLiteralLike(statement.moduleReference.expression)) {
306
+ add(statement.moduleReference.expression.text, 'require')
307
+ } else if (ts.isExportDeclaration(statement) && statement.moduleSpecifier && ts.isStringLiteral(statement.moduleSpecifier)) {
308
+ if (statement.isTypeOnly) continue
309
+ if (statement.exportClause && ts.isNamedExports(statement.exportClause) && allTypeSpecifiers(statement.exportClause)) continue
310
+ add(statement.moduleSpecifier.text, 'import')
311
+ }
312
+ }
313
+ const visit = node => {
314
+ if (ts.isCallExpression(node) && node.arguments.length > 0 && ts.isStringLiteralLike(node.arguments[0])) {
315
+ const callee = node.expression
316
+ if (callee.kind === ts.SyntaxKind.ImportKeyword) add(node.arguments[0].text, 'import')
317
+ else if (ts.isIdentifier(callee) && callee.text === 'require') add(node.arguments[0].text, 'require')
318
+ }
319
+ ts.forEachChild(node, visit)
320
+ }
321
+ visit(sourceFile)
322
+ const result = { imports: [...new Set(edges.map(edge => edge.specifier))], edges, useClient }
323
+ parseCache.set(key, result)
324
+ return result
325
+ }
326
+
327
+ const BUILTINS = new Set(builtinModules.filter(name => !name.startsWith('_')))
328
+
329
+ /** Bare specifiers that only run on a server (`next/server` is Next's request/response and `after`/`connection` APIs). */
330
+ const SERVER_ONLY_PACKAGES = new Set(['server-only', 'next/headers', 'next/server', 'pg', 'postgres', 'ioredis', 'nodemailer'])
331
+ /**
332
+ * The `lib/api` modules core's own 'use client' files import (the entity fetch helpers, `ApiError`, the scope catalog):
333
+ * they import no server module, so they are client-safe. Everything else under `lib/api` is server-only. A guard test
334
+ * checks that every `lib/api` module a core 'use client' file imports is in this list.
335
+ */
336
+ export const CLIENT_SAFE_CORE_API = ['entities', 'api-error', 'keys']
337
+ /** Core modules known to be server-only; the ones that import a marker above are also found by following the import. */
338
+ const SERVER_ONLY_CORE = [
339
+ /^@nextsparkjs\/core\/lib\/db(\/|$)/,
340
+ new RegExp(`^@nextsparkjs\\/core\\/lib\\/api(?!\\/(?:${CLIENT_SAFE_CORE_API.join('|')})$)(\\/|$)`),
341
+ /^@nextsparkjs\/core\/lib\/rate-limit/,
342
+ /^@nextsparkjs\/core\/lib\/entities\/registry$/,
343
+ /^@nextsparkjs\/core\/lib\/auth\/runtime-readiness$/,
344
+ /^@nextsparkjs\/core\/lib\/scheduled-actions\/initializer$/,
345
+ ]
346
+
347
+ /** Why a specifier is server-only by its name, or null. */
348
+ export function serverOnlySpecifier(specifier) {
349
+ if (specifier.startsWith('node:')) return `Node built-in "${specifier}"`
350
+ if (BUILTINS.has(specifier)) return `Node built-in "${specifier}"`
351
+ if (SERVER_ONLY_PACKAGES.has(specifier)) return `server-only module "${specifier}"`
352
+ if (SERVER_ONLY_CORE.some(pattern => pattern.test(specifier))) return `server-only core module "${specifier}"`
353
+ return null
354
+ }
355
+
356
+ const RESOLVE_EXTENSIONS = ['.ts', '.tsx', '.mts', '.cts', '.js', '.jsx', '.mjs', '.cjs']
357
+
358
+ function resolveFile(base) {
359
+ const candidates = [base, ...RESOLVE_EXTENSIONS.map(ext => base + ext), ...RESOLVE_EXTENSIONS.map(ext => join(base, `index${ext}`))]
360
+ // `./x.js` written for a `.ts` source
361
+ if (/\.[cm]?js$/.test(base)) candidates.push(base.replace(/\.([cm]?)js$/, '.$1ts'), base.replace(/\.js$/, '.tsx'))
362
+ for (const candidate of candidates) {
363
+ try {
364
+ if (statSync(candidate).isFile()) return candidate
365
+ } catch {
366
+ // next candidate
367
+ }
368
+ }
369
+ return null
370
+ }
371
+
372
+ const compilerOptionsCache = new Map()
373
+
374
+ /**
375
+ * The compiler options the plugin's imports resolve with: the plugin's own tsconfig, else the project's
376
+ * (paths, baseUrl, extends), on top of bundler resolution (package `exports` conditions).
377
+ */
378
+ function compilerOptionsFor(ts, { projectRoot, pluginDir }) {
379
+ const key = `${projectRoot}|${pluginDir}`
380
+ if (compilerOptionsCache.has(key)) return compilerOptionsCache.get(key)
381
+ const options = {}
382
+ for (const dir of [pluginDir, projectRoot]) {
383
+ const file = dir && join(dir, 'tsconfig.json')
384
+ if (!file || !ts.sys.fileExists(file)) continue
385
+ const read = ts.readConfigFile(file, ts.sys.readFile)
386
+ if (read.error) continue
387
+ Object.assign(options, ts.parseJsonConfigFileContent(read.config, ts.sys, dir, undefined, file).options)
388
+ break
389
+ }
390
+ Object.assign(options, { allowJs: true, resolveJsonModule: true, noEmit: true })
391
+ options.module = ts.ModuleKind.ESNext
392
+ options.moduleResolution = ts.ModuleResolutionKind.Bundler ?? ts.ModuleResolutionKind.Node10
393
+ delete options.customConditions
394
+ compilerOptionsCache.set(key, options)
395
+ return options
396
+ }
397
+
398
+ // The runtime target of a package: its `exports` (import / node / default conditions, never `types`), else its
399
+ // main. Read for the workspace's packages and every @nextsparkjs/* package; third-party packages are not opened
400
+ // (the bundlers already fail a web or mobile build that imports a Node built-in or `server-only`).
401
+ // Which package `exports` conditions (and legacy fields) a bundler selects depends on the target the import is
402
+ // bundled for: Next's client build (browser, never node), Metro (react-native first), Node for the server.
403
+ export const CONDITION_SETS = {
404
+ // Next: webpack and Turbopack differ on `require`, so a web require is checked against both branches.
405
+ web: { import: [new Set(['browser', 'import', 'module', 'default'])], require: [new Set(['browser', 'require', 'default']), new Set(['browser', 'import', 'module', 'default'])] },
406
+ // Metro: react-native + import for ESM, react-native + require for CommonJS, then default.
407
+ mobile: { import: [new Set(['react-native', 'import', 'default'])], require: [new Set(['react-native', 'require', 'default'])] },
408
+ server: { import: [new Set(['node', 'import', 'default'])], require: [new Set(['node', 'require', 'default'])] },
409
+ }
410
+ const TARGET_FIELDS = {
411
+ web: ['browser', 'module', 'main'],
412
+ mobile: ['react-native', 'browser', 'module', 'main'],
413
+ server: ['module', 'main'],
414
+ }
415
+ const packageDirCache = new Map()
416
+ const manifestCache = new Map()
417
+
418
+ export function packageSpecifier(specifier) {
419
+ const parts = specifier.split('/')
420
+ const length = specifier.startsWith('@') ? 2 : 1
421
+ if (parts.length < length) return null
422
+ return { name: parts.slice(0, length).join('/'), subpath: parts.length > length ? `./${parts.slice(length).join('/')}` : '.' }
423
+ }
424
+
425
+ /** The real directory of package `name` as seen from `fromDir`, or null. */
426
+ function findPackageDir(name, fromDir) {
427
+ const key = `${fromDir}|${name}`
428
+ if (packageDirCache.has(key)) return packageDirCache.get(key)
429
+ let found = null
430
+ for (let dir = fromDir; ; dir = dirname(dir)) {
431
+ const candidate = join(dir, 'node_modules', name)
432
+ if (statExists(join(candidate, 'package.json'))) {
433
+ found = realpathSync(candidate)
434
+ break
435
+ }
436
+ if (dirname(dir) === dir) break
437
+ }
438
+ packageDirCache.set(key, found)
439
+ return found
440
+ }
441
+
442
+ function statExists(path) {
443
+ try {
444
+ return statSync(path).isFile()
445
+ } catch {
446
+ return false
447
+ }
448
+ }
449
+
450
+ function readManifest(dir) {
451
+ if (!manifestCache.has(dir)) {
452
+ try {
453
+ manifestCache.set(dir, JSON.parse(readFileSync(join(dir, 'package.json'), 'utf8')))
454
+ } catch {
455
+ manifestCache.set(dir, {})
456
+ }
457
+ }
458
+ return manifestCache.get(dir)
459
+ }
460
+
461
+ /** Node's exports resolution for a runtime import: the target path (relative to the package) or null. */
462
+ export function exportsTarget(exportsField, subpath, conditions) {
463
+ const target = (value, star) => {
464
+ if (typeof value === 'string') return star === undefined ? value : value.split('*').join(star)
465
+ if (Array.isArray(value)) {
466
+ for (const item of value) {
467
+ const hit = target(item, star)
468
+ if (hit) return hit
469
+ }
470
+ return null
471
+ }
472
+ if (value && typeof value === 'object') {
473
+ for (const [condition, inner] of Object.entries(value)) {
474
+ if (!conditions.has(condition)) continue
475
+ const hit = target(inner, star)
476
+ if (hit) return hit
477
+ }
478
+ }
479
+ return null
480
+ }
481
+ const isSubpaths = value => value && typeof value === 'object' && !Array.isArray(value) && Object.keys(value).some(key => key.startsWith('.'))
482
+ if (!isSubpaths(exportsField)) return subpath === '.' ? target(exportsField) : null
483
+ // Node's PACKAGE_IMPORTS_EXPORTS_RESOLVE: an exact key (no `*`) first, then the patterns with exactly one `*` in the order of
484
+ // PATTERN_KEY_COMPARE (a longer base before the `*`, then a longer key), never declaration order. The first pattern in that
485
+ // order that matches decides, even if its conditions select nothing: Node does not go on to a less specific one.
486
+ // A trailing-slash key (`"./lib/"`, the folder mapping) is not a mapping in Node 17 and later, so it never matches.
487
+ if (subpath in exportsField && !subpath.includes('*')) return target(exportsField[subpath])
488
+ const patternKeyCompare = (a, b) => {
489
+ const baseA = a.indexOf('*') + 1
490
+ const baseB = b.indexOf('*') + 1
491
+ if (baseA !== baseB) return baseB - baseA
492
+ return b.length - a.length
493
+ }
494
+ const patterns = Object.keys(exportsField).filter(key => key.indexOf('*') !== -1 && key.indexOf('*') === key.lastIndexOf('*')).sort(patternKeyCompare)
495
+ for (const key of patterns) {
496
+ const star = key.indexOf('*')
497
+ const base = key.slice(0, star)
498
+ const trailer = key.slice(star + 1)
499
+ if (subpath !== base && subpath.startsWith(base) && (trailer.length === 0 || (subpath.endsWith(trailer) && subpath.length >= key.length))) {
500
+ return target(exportsField[key], subpath.slice(base.length, subpath.length - trailer.length))
501
+ }
502
+ }
503
+ return null
504
+ }
505
+
506
+ /** A package file that may be built output: `dist/x.js` falls back to the source `src/x.ts` when it was not built. */
507
+ export function resolveBuilt(path) {
508
+ const direct = resolveFile(path)
509
+ if (direct && !/\.d\.[cm]?ts$/.test(direct)) return direct
510
+ const marker = `${sep}dist${sep}`
511
+ const at = path.lastIndexOf(marker)
512
+ if (at === -1) return null
513
+ const source = `${path.slice(0, at)}${sep}src${sep}${path.slice(at + marker.length)}`.replace(/\.d\.([cm]?)ts$/, '.$1js')
514
+ const fromSource = resolveFile(source)
515
+ return fromSource && !/\.d\.[cm]?ts$/.test(fromSource) ? fromSource : null
516
+ }
517
+
518
+ /**
519
+ * The runtime files of a package import for `specifier` as bundled for `target` ('web' | 'mobile' | 'server') by an
520
+ * edge of `kind` ('import' | 'require'): one per condition set that kind can select (a web `require` has two).
521
+ * `thirdParty` also reads packages installed in node_modules (only the mobile check does, see below).
522
+ */
523
+ export function resolvePackageRuntimes(specifier, from, target, kind, thirdParty = false, packageDir = null) {
524
+ const parsed = packageSpecifier(specifier)
525
+ if (!parsed) return []
526
+ // `packageDir`: a package the caller already located (a workspace package that is not linked into node_modules)
527
+ const dir = packageDir ?? findPackageDir(parsed.name, dirname(from))
528
+ if (!dir) return []
529
+ // A package outside node_modules is a workspace package; inside, only @nextsparkjs/* are read.
530
+ if (!thirdParty && dir.includes(`${sep}node_modules${sep}`) && !parsed.name.startsWith('@nextsparkjs/')) return []
531
+ const manifest = readManifest(dir)
532
+ const files = []
533
+ if (manifest.exports !== undefined) {
534
+ for (const conditions of CONDITION_SETS[target][kind]) {
535
+ const entry = exportsTarget(manifest.exports, parsed.subpath, conditions)
536
+ const file = entry ? resolveBuilt(resolve(dir, entry)) : null
537
+ if (file) files.push(file)
538
+ }
539
+ } else if (parsed.subpath !== '.') {
540
+ const file = resolveBuilt(join(dir, parsed.subpath))
541
+ if (file) files.push(file)
542
+ } else {
543
+ const field = TARGET_FIELDS[target].map(name => manifest[name]).find(value => typeof value === 'string')
544
+ const file = resolveBuilt(join(dir, field ?? 'index'))
545
+ if (file) files.push(file)
546
+ }
547
+ return [...new Set(files)]
548
+ }
549
+
550
+ // The object form of the legacy `browser` field (`{ "./server.js": "./browser.js", "fs": false }`): a client bundler
551
+ // replaces those modules inside the package, and `false` is an empty module. Next (webpack, Turbopack) and Metro apply it.
552
+ const packageOfCache = new Map()
553
+
554
+ function packageOf(file) {
555
+ for (let dir = dirname(file); ; dir = dirname(dir)) {
556
+ if (packageOfCache.has(dir)) return packageOfCache.get(dir)
557
+ if (statExists(join(dir, 'package.json'))) {
558
+ const manifest = readManifest(dir)
559
+ const entry = manifest.browser && typeof manifest.browser === 'object' ? { dir, map: manifest.browser } : null
560
+ packageOfCache.set(dir, entry)
561
+ return entry
562
+ }
563
+ if (dirname(dir) === dir) return null
564
+ }
565
+ }
566
+
567
+ /** The replacement a browser map gives for `key`: undefined (none), false (empty module) or a string. */
568
+ function browserMapping(map, key) {
569
+ const bare = key.replace(/^\.\//, '')
570
+ const candidates = new Set([key, `./${bare}`, bare, `./${bare}`.replace(/\.[cm]?[jt]sx?$/, ''), bare.replace(/\.[cm]?[jt]sx?$/, '')])
571
+ for (const [from, to] of Object.entries(map)) {
572
+ if (candidates.has(from) || candidates.has(from.replace(/^\.\//, ''))) return to
573
+ }
574
+ return undefined
575
+ }
576
+
577
+ /** True when the package of `file` replaces (or empties) the bare `specifier` in its `browser` map. */
578
+ function browserMapReplaces(file, specifier) {
579
+ const own = packageOf(file)
580
+ return Boolean(own) && !specifier.startsWith('.') && browserMapping(own.map, specifier) !== undefined
581
+ }
582
+
583
+ /**
584
+ * Apply a client target's browser maps to a resolved edge (the specifier from the importer's own package, then each
585
+ * resolved file from its own package). An edge is dropped only for an explicit `false`, or because a replacement took
586
+ * its place: a relative replacement is a file inside the package (`files`), a bare one is a package import that the
587
+ * caller resolves like any other edge (`redirects`, from the file that owns the map). A replacement that names no file
588
+ * is a `problem`, never a silent drop.
589
+ */
590
+ function applyBrowserMaps(files, { specifier, from }) {
591
+ const out = { files: [], redirects: [], problems: [] }
592
+ const replace = (pkg, value, owner, original) => {
593
+ if (value.startsWith('.') || value.startsWith('/')) {
594
+ const file = resolveFile(join(pkg.dir, value))
595
+ if (file) out.files.push(file)
596
+ else out.problems.push({ file: owner, message: `the browser map of ${relative(dirname(pkg.dir), pkg.dir).split(sep).join('/') || pkg.dir} replaces "${original}" with "${value}", which names no file in the package` })
597
+ } else {
598
+ out.redirects.push({ specifier: value, from: owner, original })
599
+ }
600
+ }
601
+ const own = packageOf(from)
602
+ const bySpecifier = own && !specifier.startsWith('.') ? browserMapping(own.map, specifier) : undefined
603
+ if (bySpecifier === false) return out
604
+ if (typeof bySpecifier === 'string') {
605
+ replace(own, bySpecifier, from, specifier)
606
+ return out
607
+ }
608
+ for (const file of files) {
609
+ const pkg = packageOf(file)
610
+ const key = pkg ? `./${relative(pkg.dir, file).split(sep).join('/')}` : null
611
+ const mapped = pkg ? browserMapping(pkg.map, key) : undefined
612
+ if (mapped === false) continue
613
+ if (typeof mapped === 'string') replace(pkg, mapped, file, key)
614
+ else out.files.push(file)
615
+ }
616
+ return out
617
+ }
618
+
619
+ /**
620
+ * `resolve(specifier, from, target, kind) -> { files }`: the modules to follow (none for a third-party package
621
+ * unless `thirdParty`, a type file, an asset). Workspace files resolve with TypeScript and the project's compiler
622
+ * options (paths, baseUrl); workspace and @nextsparkjs/* packages resolve to the runtime `exports` target that the
623
+ * bundler of `target` selects for an edge of `kind` (never `types`), then the client `browser` maps are applied.
624
+ */
625
+ function createResolver(ts, { projectRoot, plugin, plugins }) {
626
+ const options = compilerOptionsFor(ts, { projectRoot, pluginDir: plugin.sourceDir })
627
+ const cache = ts.createModuleResolutionCache(projectRoot ?? plugin.sourceDir, name => name, options)
628
+ const roots = new Map(plugins.map(other => [other.importBase, other]))
629
+ const one = file => ({ files: file && isCode(file) ? [file] : [] })
630
+ const resolveOnce = (specifier, from, target, kind, thirdParty) => {
631
+ const resolved = ts.resolveModuleName(specifier, from, options, ts.sys, cache).resolvedModule
632
+ if (resolved && !resolved.isExternalLibraryImport) {
633
+ return one(/\.d\.[cm]?ts$/.test(resolved.resolvedFileName) ? resolveBuilt(resolved.resolvedFileName.replace(/\.d\.([cm]?)ts$/, '.$1js')) : resolved.resolvedFileName)
634
+ }
635
+ if (!specifier.startsWith('.')) {
636
+ const files = resolvePackageRuntimes(specifier, from, target, kind, thirdParty).filter(isCode)
637
+ if (files.length > 0) return { files }
638
+ if (resolved) return { files: [] }
639
+ }
640
+ // Where no tsconfig maps a plugin's own alias, its importBase still reaches the plugin.
641
+ if (specifier.startsWith('.')) return one(resolveFile(resolve(dirname(from), specifier)))
642
+ for (const [base, owner] of roots) {
643
+ if (specifier === base) return one(resolveFile(join(owner.sourceDir, 'plugin.config')) ?? resolveFile(join(owner.sourceDir, 'index')))
644
+ if (specifier.startsWith(`${base}/`)) return one(resolveFile(join(owner.sourceDir, specifier.slice(base.length + 1))))
645
+ }
646
+ return { files: [] }
647
+ }
648
+ return (specifier, from, target = 'server', kind = 'import', thirdParty = false) => {
649
+ const { files } = resolveOnce(specifier, from, target, kind, thirdParty)
650
+ return target === 'server' ? { files, redirects: [], problems: [] } : applyBrowserMaps(files, { specifier, from })
651
+ }
652
+ }
653
+
654
+ // ---------------------------------------------------------------------------
655
+ // Contribution check
656
+ // ---------------------------------------------------------------------------
657
+
658
+ /**
659
+ * Check what a plugin contributes against what it declares.
660
+ *
661
+ * @param {object} ts - the TypeScript compiler API
662
+ * @param {object} input
663
+ * @param {{ name: string, sourceDir: string, importBase: string, capabilities?: string[] }} input.plugin
664
+ * @param {{ name: string, sourceDir: string, importBase: string }[]} [input.plugins] - every enabled plugin (imports of another plugin resolve into it)
665
+ * @param {string} [input.projectRoot] - the project whose tsconfig resolves imports (paths, baseUrl); defaults to the plugin's directory
666
+ * @returns {object[]} diagnostics, sorted
667
+ */
668
+ export function checkPluginContributions(ts, { plugin, plugins = [plugin], projectRoot }) {
669
+ const diagnostics = []
670
+ const capabilities = capabilitiesOf(plugin)
671
+ const root = plugin.sourceDir
672
+ const files = walk(root)
673
+ const codeFiles = files.filter(isCode)
674
+ const label = `plugins/${plugin.name}`
675
+
676
+ // 1. Declaration: every file in a surface belongs to a declared capability.
677
+ const undeclared = new Map()
678
+ const flag = (capability, file, why) => {
679
+ if (!undeclared.has(capability)) undeclared.set(capability, [])
680
+ undeclared.get(capability).push({ file, why })
681
+ }
682
+ const analysis = new Map()
683
+ for (const file of codeFiles) analysis.set(file, analyzeFile(ts, join(root, file)))
684
+ for (const file of files) {
685
+ const surface = surfaceOf(file)
686
+ if (surface && !capabilities.includes(surface)) flag(surface, file, `is in ${file.split('/')[0]}/`)
687
+ }
688
+ for (const file of codeFiles) {
689
+ if (analysis.get(file)?.useClient && !capabilities.includes('web') && !undeclared.get('web')?.some(entry => entry.file === file)) flag('web', file, "has a 'use client' directive")
690
+ }
691
+ for (const [capability, entries] of undeclared) {
692
+ const shown = entries.slice(0, 5).map(entry => entry.file)
693
+ const more = entries.length > shown.length ? ` (+${entries.length - shown.length} more)` : ''
694
+ diagnostics.push({
695
+ code: PLUGIN_DIAGNOSTICS.UNDECLARED,
696
+ plugin: plugin.name,
697
+ capability,
698
+ file: entries[0].file,
699
+ files: entries.map(entry => entry.file),
700
+ message: `${label}/${entries[0].file}: ${entries[0].why}, so the plugin needs the "${capability}" capability, but it declares [${capabilities.join(', ')}]. Add "${capability}" to definePlugin({ capabilities }) or remove the files${more ? `; also ${shown.slice(1).join(', ')}${more}` : shown.length > 1 ? `; also ${shown.slice(1).join(', ')}` : ''}`,
701
+ })
702
+ }
703
+
704
+ // 2. Transitive rules on the import graph, for the surfaces the plugin declares.
705
+ const resolveImport = createResolver(ts, { projectRoot, plugin, plugins })
706
+ const ownerOf = file => plugins.find(other => file === other.sourceDir || file.startsWith(other.sourceDir + sep))
707
+ const displayOf = file => {
708
+ const owner = ownerOf(file)
709
+ if (owner) return `plugins/${owner.name}/${relative(owner.sourceDir, file).split(sep).join('/')}`
710
+ const modules = file.lastIndexOf(`${sep}node_modules${sep}`)
711
+ if (modules !== -1) return file.slice(modules + '/node_modules/'.length).split(sep).join('/')
712
+ const workspacePackage = file.split(sep).join('/').match(/\/packages\/([^/]+)\/(.*)$/)
713
+ if (workspacePackage) return `@nextsparkjs/${workspacePackage[1]}/${workspacePackage[2]}`
714
+ return projectRoot && file.startsWith(projectRoot + sep) ? relative(projectRoot, file).split(sep).join('/') : file
715
+ }
716
+ const isServerFile = file => {
717
+ const owner = ownerOf(file)
718
+ const base = file.split(sep).at(-1)
719
+ if (/\.server\.[cm]?[jt]sx?$/.test(base)) return 'a *.server module'
720
+ if (/^route\.([^.]+\.)?[cm]?[jt]sx?$/.test(base)) return 'a Route Handler (route file)'
721
+ if (!owner && projectRoot && file.startsWith(projectRoot + sep) && !file.includes(`${sep}node_modules${sep}`) && relative(projectRoot, file).split(sep)[0] === 'api') return 'server code (the project api/)'
722
+ if (owner) {
723
+ const rel = relative(owner.sourceDir, file).split(sep).join('/')
724
+ if (rel.startsWith('api/') || rel.startsWith('plugin.pages.server') || isTemplateRoute(rel)) return `server code (${rel.split('/')[0]}/)`
725
+ }
726
+ return null
727
+ }
728
+ const isBuildFile = file => {
729
+ const owner = ownerOf(file)
730
+ return Boolean(owner) && surfaceOf(relative(owner.sourceDir, file).split(sep).join('/')) === 'build'
731
+ }
732
+
733
+ const entriesFor = capability => {
734
+ const entries = []
735
+ for (const file of codeFiles) {
736
+ const surface = surfaceOf(file)
737
+ if (capability === 'web' && (surface === 'web' || analysis.get(file)?.useClient)) entries.push(join(root, file))
738
+ if (capability === 'mobile' && surface === 'mobile') entries.push(join(root, file))
739
+ if (capability === 'server' && surface === 'server') entries.push(join(root, file))
740
+ }
741
+ const config = resolveFile(join(root, 'plugin.config'))
742
+ if (config && (capability === 'web' || capability === 'mobile' ? capabilities.includes(capability) : capabilities.includes('server'))) entries.push(config)
743
+ return [...new Set(entries)].sort()
744
+ }
745
+
746
+ const reported = new Set()
747
+ const isThirdParty = file => file.includes(`${sep}node_modules${sep}`) && !/[\\/]@nextsparkjs[\\/]/.test(file)
748
+ const traverse = (capability, entries, offending, target = 'server') => {
749
+ const seen = new Map()
750
+ const queue = []
751
+ for (const entry of entries) {
752
+ seen.set(entry, [entry])
753
+ queue.push(entry)
754
+ }
755
+ while (queue.length > 0) {
756
+ const file = queue.shift()
757
+ const info = analyzeFile(ts, file)
758
+ if (!info) continue
759
+ const chain = seen.get(file)
760
+ const hit = offending(file, info)
761
+ if (hit) {
762
+ // One diagnostic per offending file; what it imports is its own business.
763
+ if (!reported.has(`${capability}|${file}`)) {
764
+ reported.add(`${capability}|${file}`)
765
+ const via = chain.length > 1 ? ` via ${chain.map(displayOf).join(' -> ')}` : ''
766
+ diagnostics.push(hit(chain, via))
767
+ }
768
+ continue
769
+ }
770
+ const redirectsSeen = new Set()
771
+ const visitEdge = (from, specifier, kind, depth, redirected) => {
772
+ let reason = capability === 'build' ? null : serverOnlySpecifier(specifier)
773
+ // Third-party code (traversed for mobile only): Metro already fails a Node built-in, but not `server-only`.
774
+ if (reason && isThirdParty(from) && specifier !== 'server-only') reason = null
775
+ // A client bundler replaces (or empties) a module the package's own `browser` map names, e.g. { "fs": false }.
776
+ if (reason && !redirected && target !== 'server' && browserMapReplaces(from, specifier)) reason = null
777
+ if (reason) {
778
+ const key = `${capability}|${from}|${specifier}`
779
+ if (!reported.has(key)) {
780
+ reported.add(key)
781
+ const via = chain.length > 1 ? ` (entry ${chain.map(displayOf).join(' -> ')})` : ''
782
+ diagnostics.push({
783
+ code: PLUGIN_DIAGNOSTICS.SERVER_IN_CLIENT,
784
+ plugin: plugin.name,
785
+ capability,
786
+ file: displayOf(from),
787
+ message: `${displayOf(from)}: ${capability === 'mobile' ? 'mobile' : 'web'} code reaches ${reason}${redirected ? ' (through a browser map replacement)' : ''}${via}; a "${capability}" entry cannot reach server code. Move the server part behind an API route or drop the "${capability}" capability`,
788
+ })
789
+ }
790
+ return
791
+ }
792
+ const resolved = resolveImport(specifier, from, target, kind, target === 'mobile' && capability === 'mobile')
793
+ for (const next of resolved.files) {
794
+ if (seen.has(next)) continue
795
+ seen.set(next, [...chain, next])
796
+ queue.push(next)
797
+ }
798
+ const problem = (owner, message) => {
799
+ const key = `${capability}|unresolved|${owner}|${message}`
800
+ // the build-only traversal walks the same graph again: the web/mobile one has already said it
801
+ if (capability === 'build' || reported.has(key)) return
802
+ reported.add(key)
803
+ diagnostics.push({ code: PLUGIN_DIAGNOSTICS.UNRESOLVED_REPLACEMENT, plugin: plugin.name, capability, file: displayOf(owner), message: `${displayOf(owner)}: ${message}; the replacement cannot be followed, so what a ${capability} entry reaches through it is unknown. Point the map at an existing file or package` })
804
+ }
805
+ for (const issue of resolved.problems) problem(issue.file, issue.message)
806
+ // A bare replacement in a browser map is a package import like any other: same target, same edge kind.
807
+ for (const redirect of resolved.redirects) {
808
+ const key = `${redirect.from}|${redirect.specifier}|${kind}`
809
+ if (redirectsSeen.has(key) || depth >= 8) continue // a cycle in the map, or a chain too long to be real
810
+ redirectsSeen.add(key)
811
+ const replaced = resolveImport(redirect.specifier, redirect.from, target, kind, target === 'mobile' && capability === 'mobile')
812
+ const named = packageSpecifier(redirect.specifier)
813
+ const exists = named && findPackageDir(named.name, dirname(redirect.from))
814
+ if (replaced.files.length === 0 && replaced.redirects.length === 0 && !serverOnlySpecifier(redirect.specifier) && !exists && !browserMapReplaces(redirect.from, redirect.specifier)) {
815
+ problem(redirect.from, `the browser map replaces "${redirect.original}" with "${redirect.specifier}", which resolves to no file or package`)
816
+ continue
817
+ }
818
+ visitEdge(redirect.from, redirect.specifier, kind, depth + 1, true)
819
+ }
820
+ }
821
+ for (const { specifier, kind } of [...info.edges].sort((a, b) => (a.specifier < b.specifier ? -1 : a.specifier > b.specifier ? 1 : a.kind < b.kind ? -1 : 1))) visitEdge(file, specifier, kind, 0, false)
822
+ }
823
+ }
824
+
825
+ for (const capability of ['web', 'mobile']) {
826
+ if (!capabilities.includes(capability)) continue
827
+ traverse(capability, entriesFor(capability), file => {
828
+ const why = isServerFile(file)
829
+ if (!why) return null
830
+ return (chain, via) => ({
831
+ code: PLUGIN_DIAGNOSTICS.SERVER_IN_CLIENT,
832
+ plugin: plugin.name,
833
+ capability,
834
+ file: displayOf(file),
835
+ message: `${displayOf(file)}: ${capability} code imports ${why}${via}; a "${capability}" entry cannot reach server code. Move the server part behind an API route or drop the "${capability}" capability`,
836
+ })
837
+ }, capability)
838
+ }
839
+ // Build-only code is checked per runtime target, with the export conditions that target selects.
840
+ for (const target of ['server', 'web', 'mobile']) {
841
+ if (!capabilities.includes(target)) continue
842
+ traverse('build', entriesFor(target), file => {
843
+ if (!isBuildFile(file)) return null
844
+ return (chain, via) => ({
845
+ code: PLUGIN_DIAGNOSTICS.BUILD_IN_RUNTIME,
846
+ plugin: plugin.name,
847
+ capability: 'build',
848
+ file: displayOf(file),
849
+ message: `${displayOf(file)}: build-only code is reachable from runtime code${via}; the "build" capability never enters a runtime bundle. Keep the runtime side out of build/ or import it only from build scripts`,
850
+ })
851
+ }, target)
852
+ }
853
+
854
+ return sortDiagnostics(diagnostics)
855
+ }
856
+
857
+ // ---------------------------------------------------------------------------
858
+ // Collisions
859
+ // ---------------------------------------------------------------------------
860
+
861
+ /**
862
+ * Collisions between plugins that no priority rule resolves: the same plugin name, the same entity.
863
+ * Both plugins are named; the result is sorted, so it does not depend on the order of `plugins`.
864
+ * (Two plugins serving the same web-host route are reported by `planHost`, with the same properties.)
865
+ */
866
+ export function pluginCollisions(plugins) {
867
+ const diagnostics = []
868
+ const byName = new Map()
869
+ for (const plugin of plugins) {
870
+ if (!byName.has(plugin.name)) byName.set(plugin.name, [])
871
+ byName.get(plugin.name).push(plugin)
872
+ }
873
+ for (const [name, same] of byName) {
874
+ if (same.length < 2) continue
875
+ const where = same.map(plugin => plugin.sourceDir ?? plugin.importBase).sort()
876
+ diagnostics.push({
877
+ code: PLUGIN_DIAGNOSTICS.NAME_COLLISION,
878
+ plugin: name,
879
+ sources: where,
880
+ message: `plugin "${name}" is provided twice: ${where.join(' and ')}; plugin names are registry keys and must be unique`,
881
+ })
882
+ }
883
+ const byEntity = new Map()
884
+ for (const plugin of plugins) {
885
+ for (const entity of plugin.entities ?? []) {
886
+ if (!byEntity.has(entity.name)) byEntity.set(entity.name, [])
887
+ byEntity.get(entity.name).push({ plugin: plugin.name, entity })
888
+ }
889
+ }
890
+ for (const [entity, owners] of byEntity) {
891
+ const distinct = [...new Map(owners.map(owner => [owner.plugin, owner])).values()].sort((a, b) => compare(a.plugin, b.plugin))
892
+ if (distinct.length < 2) continue
893
+ diagnostics.push({
894
+ code: PLUGIN_DIAGNOSTICS.ENTITY_COLLISION,
895
+ plugin: distinct[0].plugin,
896
+ entity,
897
+ sources: distinct.map(owner => owner.entity.configPath),
898
+ message: `entity "${entity}" is provided by plugins ${distinct.map(owner => `"${owner.plugin}" (${owner.entity.configPath})`).join(' and ')}; entity names are registry keys, so only the project or core may replace a plugin's entity`,
899
+ })
900
+ }
901
+ return sortDiagnostics(diagnostics)
902
+ }
903
+
904
+ export function assertNoPluginCollisions(plugins) {
905
+ const diagnostics = pluginCollisions(plugins)
906
+ if (diagnostics.length > 0) throw new PluginCapabilityError(diagnostics)
907
+ }
908
+
909
+ /** Plugins that contribute to `capability` (the compiler takes only these for that surface). */
910
+ export function pluginsFor(plugins, capability) {
911
+ return plugins.filter(plugin => hasCapability(plugin, capability))
912
+ }