@nextsparkjs/core 0.1.0-beta.193 → 0.1.0-beta.195

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 (374) hide show
  1. package/README.md +2 -2
  2. package/dist/components/app/guards/DeveloperGuard.d.ts +8 -1
  3. package/dist/components/app/guards/DeveloperGuard.d.ts.map +1 -1
  4. package/dist/components/app/guards/DeveloperGuard.js +2 -1
  5. package/dist/components/app/guards/SuperAdminGuard.d.ts +8 -1
  6. package/dist/components/app/guards/SuperAdminGuard.d.ts.map +1 -1
  7. package/dist/components/app/guards/SuperAdminGuard.js +2 -1
  8. package/dist/components/dashboard/block-editor/block-picker.d.ts.map +1 -1
  9. package/dist/components/dashboard/block-editor/block-picker.js +2 -1
  10. package/dist/components/dashboard/block-editor/builder-editor-view.d.ts.map +1 -1
  11. package/dist/components/dashboard/block-editor/builder-editor-view.js +39 -23
  12. package/dist/components/dashboard/block-editor/pattern-reference-preview.d.ts.map +1 -1
  13. package/dist/components/dashboard/block-editor/pattern-reference-preview.js +2 -1
  14. package/dist/components/dashboard/layouts/AuthGuard.d.ts.map +1 -1
  15. package/dist/components/dashboard/layouts/AuthGuard.js +3 -4
  16. package/dist/components/dashboard/layouts/AuthenticatedDashboardLayout.d.ts.map +1 -1
  17. package/dist/components/dashboard/layouts/AuthenticatedDashboardLayout.js +9 -10
  18. package/dist/components/dashboard/layouts/DashboardAuthLayout.d.ts.map +1 -1
  19. package/dist/components/dashboard/layouts/DashboardAuthLayout.js +3 -4
  20. package/dist/components/dashboard/layouts/DashboardAuthSkeleton.d.ts +2 -2
  21. package/dist/components/entities/wrappers/EntityDetailWrapper.d.ts.map +1 -1
  22. package/dist/components/entities/wrappers/EntityDetailWrapper.js +5 -2
  23. package/dist/components/entities/wrappers/EntityFormWrapper.d.ts.map +1 -1
  24. package/dist/components/entities/wrappers/EntityFormWrapper.js +5 -2
  25. package/dist/components/entities/wrappers/EntityListWrapper.d.ts.map +1 -1
  26. package/dist/components/entities/wrappers/EntityListWrapper.js +5 -2
  27. package/dist/components/ui/relation-display.d.ts.map +1 -1
  28. package/dist/components/ui/relation-display.js +2 -1
  29. package/dist/components/ui/user-display.d.ts.map +1 -1
  30. package/dist/components/ui/user-display.js +2 -1
  31. package/dist/emails/otp-verification.d.ts.map +1 -1
  32. package/dist/emails/otp-verification.js +5 -3
  33. package/dist/emails/reset-password.d.ts.map +1 -1
  34. package/dist/emails/reset-password.js +5 -3
  35. package/dist/emails/team-invitation.d.ts.map +1 -1
  36. package/dist/emails/team-invitation.js +3 -2
  37. package/dist/emails/verify-email.d.ts.map +1 -1
  38. package/dist/emails/verify-email.js +5 -3
  39. package/dist/hooks/useAuth.d.ts.map +1 -1
  40. package/dist/hooks/useAuth.js +21 -4
  41. package/dist/hooks/usePatternUsages.d.ts.map +1 -1
  42. package/dist/hooks/usePatternUsages.js +3 -2
  43. package/dist/lib/api/auth/permissions.d.ts +10 -0
  44. package/dist/lib/api/auth/permissions.d.ts.map +1 -1
  45. package/dist/lib/api/auth/permissions.js +7 -0
  46. package/dist/lib/api/auth.d.ts +2 -0
  47. package/dist/lib/api/auth.d.ts.map +1 -1
  48. package/dist/lib/api/auth.js +10 -10
  49. package/dist/lib/api/client-headers.d.ts +11 -0
  50. package/dist/lib/api/client-headers.d.ts.map +1 -0
  51. package/dist/lib/api/client-headers.js +12 -0
  52. package/dist/lib/api/client-ip.d.ts +59 -0
  53. package/dist/lib/api/client-ip.d.ts.map +1 -0
  54. package/dist/lib/api/client-ip.js +91 -0
  55. package/dist/lib/api/cors-response.d.ts +54 -0
  56. package/dist/lib/api/cors-response.d.ts.map +1 -0
  57. package/dist/lib/api/cors-response.js +88 -0
  58. package/dist/lib/api/entities.d.ts.map +1 -1
  59. package/dist/lib/api/entities.js +4 -3
  60. package/dist/lib/api/entity/audit-log.d.ts.map +1 -1
  61. package/dist/lib/api/entity/audit-log.js +2 -1
  62. package/dist/lib/api/entity/generic-handler.d.ts.map +1 -1
  63. package/dist/lib/api/entity/generic-handler.js +23 -5
  64. package/dist/lib/api/helpers.d.ts +8 -2
  65. package/dist/lib/api/helpers.d.ts.map +1 -1
  66. package/dist/lib/api/helpers.js +27 -81
  67. package/dist/lib/api/keys.d.ts +6 -0
  68. package/dist/lib/api/keys.d.ts.map +1 -1
  69. package/dist/lib/api/keys.js +7 -1
  70. package/dist/lib/api/rate-limit.d.ts +4 -0
  71. package/dist/lib/api/rate-limit.d.ts.map +1 -1
  72. package/dist/lib/api/rate-limit.js +17 -38
  73. package/dist/lib/api/request-origin.d.ts +35 -0
  74. package/dist/lib/api/request-origin.d.ts.map +1 -0
  75. package/dist/lib/api/request-origin.js +69 -0
  76. package/dist/lib/auth/load-login-page.d.ts +10 -0
  77. package/dist/lib/auth/load-login-page.d.ts.map +1 -0
  78. package/dist/lib/auth/load-login-page.js +7 -0
  79. package/dist/lib/auth/runtime-readiness.d.ts.map +1 -1
  80. package/dist/lib/auth/runtime-readiness.js +2 -0
  81. package/dist/lib/auth/security-notifications/device-fingerprint.d.ts +1 -8
  82. package/dist/lib/auth/security-notifications/device-fingerprint.d.ts.map +1 -1
  83. package/dist/lib/auth/security-notifications/device-fingerprint.js +2 -12
  84. package/dist/lib/auth-email-callbacks.js +3 -3
  85. package/dist/lib/auth.d.ts.map +1 -1
  86. package/dist/lib/auth.js +15 -14
  87. package/dist/lib/config/config-client.d.ts.map +1 -1
  88. package/dist/lib/config/config-client.js +1 -1
  89. package/dist/lib/config/config-sync.d.ts.map +1 -1
  90. package/dist/lib/config/config-sync.js +1 -1
  91. package/dist/lib/config/public-config-client.d.ts +1 -0
  92. package/dist/lib/config/public-config-client.d.ts.map +1 -1
  93. package/dist/lib/config/public-config-client.js +3 -1
  94. package/dist/lib/config/types.d.ts +2 -0
  95. package/dist/lib/config/types.d.ts.map +1 -1
  96. package/dist/lib/constants/reserved-slugs.d.ts +17 -8
  97. package/dist/lib/constants/reserved-slugs.d.ts.map +1 -1
  98. package/dist/lib/constants/reserved-slugs.js +16 -52
  99. package/dist/lib/db.d.ts.map +1 -1
  100. package/dist/lib/db.js +9 -3
  101. package/dist/lib/entities/external-api-generator.d.ts.map +1 -1
  102. package/dist/lib/entities/external-api-generator.js +5 -5
  103. package/dist/lib/entities/public-slug.d.ts +46 -0
  104. package/dist/lib/entities/public-slug.d.ts.map +1 -0
  105. package/dist/lib/entities/public-slug.js +39 -0
  106. package/dist/lib/services/subscription.service.d.ts.map +1 -1
  107. package/dist/lib/services/subscription.service.js +3 -0
  108. package/dist/lib/utils/cors.d.ts +7 -0
  109. package/dist/lib/utils/cors.d.ts.map +1 -1
  110. package/dist/lib/utils/cors.js +8 -0
  111. package/dist/routes/(auth)/signup/page.cc.d.ts +3 -8
  112. package/dist/routes/(auth)/signup/page.cc.d.ts.map +1 -1
  113. package/dist/routes/(auth)/signup/page.cc.js +7 -1
  114. package/dist/routes/(auth)/verify-email/page.d.ts.map +1 -1
  115. package/dist/routes/(auth)/verify-email/page.js +2 -1
  116. package/dist/routes/(public)/page.cc.d.ts +3 -0
  117. package/dist/routes/(public)/page.cc.d.ts.map +1 -0
  118. package/dist/routes/(public)/page.cc.js +3 -0
  119. package/dist/routes/_internal/area-access.cc.d.ts +21 -0
  120. package/dist/routes/_internal/area-access.cc.d.ts.map +1 -0
  121. package/dist/routes/_internal/area-access.cc.js +19 -0
  122. package/dist/routes/_internal/auth-layout.d.ts.map +1 -1
  123. package/dist/routes/_internal/auth-layout.js +3 -2
  124. package/dist/routes/_internal/dashboard-main-shared.d.ts +7 -0
  125. package/dist/routes/_internal/dashboard-main-shared.d.ts.map +1 -0
  126. package/dist/routes/_internal/dashboard-main-shared.js +49 -0
  127. package/dist/routes/_internal/default-auth-layout.d.ts.map +1 -1
  128. package/dist/routes/_internal/default-auth-layout.js +3 -2
  129. package/dist/routes/_internal/devtools-layout.cc.d.ts +3 -2
  130. package/dist/routes/_internal/devtools-layout.cc.d.ts.map +1 -1
  131. package/dist/routes/_internal/devtools-layout.cc.js +1 -1
  132. package/dist/routes/_internal/devtools-layout.d.ts +7 -2
  133. package/dist/routes/_internal/devtools-layout.d.ts.map +1 -1
  134. package/dist/routes/_internal/devtools-layout.js +4 -4
  135. package/dist/routes/_internal/entity-detail-route.cc.d.ts +8 -0
  136. package/dist/routes/_internal/entity-detail-route.cc.d.ts.map +1 -0
  137. package/dist/routes/_internal/entity-detail-route.cc.js +5 -0
  138. package/dist/routes/_internal/entity-edit-route.cc.d.ts +8 -0
  139. package/dist/routes/_internal/entity-edit-route.cc.d.ts.map +1 -0
  140. package/dist/routes/_internal/entity-edit-route.cc.js +5 -0
  141. package/dist/routes/_internal/public-archive-route.d.ts +1 -1
  142. package/dist/routes/_internal/public-archive-route.d.ts.map +1 -1
  143. package/dist/routes/_internal/public-archive-route.js +8 -3
  144. package/dist/routes/_internal/public-item-route.cc.d.ts +5 -1
  145. package/dist/routes/_internal/public-item-route.cc.d.ts.map +1 -1
  146. package/dist/routes/_internal/public-item-route.cc.js +2 -1
  147. package/dist/routes/_internal/public-item-route.d.ts +7 -0
  148. package/dist/routes/_internal/public-item-route.d.ts.map +1 -1
  149. package/dist/routes/_internal/public-item-route.js +6 -1
  150. package/dist/routes/_internal/superadmin-layout.cc.d.ts +2 -1
  151. package/dist/routes/_internal/superadmin-layout.cc.d.ts.map +1 -1
  152. package/dist/routes/_internal/superadmin-layout.cc.js +1 -1
  153. package/dist/routes/_internal/superadmin-layout.d.ts +7 -2
  154. package/dist/routes/_internal/superadmin-layout.d.ts.map +1 -1
  155. package/dist/routes/_internal/superadmin-layout.js +6 -6
  156. package/dist/routes/_internal/suspended-route.d.ts +16 -0
  157. package/dist/routes/_internal/suspended-route.d.ts.map +1 -0
  158. package/dist/routes/_internal/suspended-route.js +7 -0
  159. package/dist/routes/api/auth/[...all]/route.d.ts.map +1 -1
  160. package/dist/routes/api/auth/[...all]/route.js +4 -12
  161. package/dist/routes/api/csp-report/route.d.ts.map +1 -1
  162. package/dist/routes/api/csp-report/route.js +2 -13
  163. package/dist/routes/api/devtools/config/entities/route.d.ts +2 -0
  164. package/dist/routes/api/devtools/config/entities/route.d.ts.map +1 -1
  165. package/dist/routes/api/devtools/config/entities/route.js +2 -0
  166. package/dist/routes/api/devtools/config/theme/route.d.ts +2 -0
  167. package/dist/routes/api/devtools/config/theme/route.d.ts.map +1 -1
  168. package/dist/routes/api/devtools/config/theme/route.js +2 -0
  169. package/dist/routes/api/devtools/tests/[...path]/route.d.ts +2 -0
  170. package/dist/routes/api/devtools/tests/[...path]/route.d.ts.map +1 -1
  171. package/dist/routes/api/devtools/tests/[...path]/route.js +2 -0
  172. package/dist/routes/api/devtools/tests/route.d.ts +2 -0
  173. package/dist/routes/api/devtools/tests/route.d.ts.map +1 -1
  174. package/dist/routes/api/devtools/tests/route.js +2 -0
  175. package/dist/routes/api/health/route.d.ts +2 -0
  176. package/dist/routes/api/health/route.d.ts.map +1 -1
  177. package/dist/routes/api/health/route.js +2 -0
  178. package/dist/routes/api/internal/user-metadata/route.d.ts +2 -0
  179. package/dist/routes/api/internal/user-metadata/route.d.ts.map +1 -1
  180. package/dist/routes/api/internal/user-metadata/route.js +2 -0
  181. package/dist/routes/api/mcp/route.d.ts +2 -0
  182. package/dist/routes/api/mcp/route.d.ts.map +1 -1
  183. package/dist/routes/api/mcp/route.js +2 -0
  184. package/dist/routes/api/superadmin/subscriptions/route.d.ts +2 -0
  185. package/dist/routes/api/superadmin/subscriptions/route.d.ts.map +1 -1
  186. package/dist/routes/api/superadmin/subscriptions/route.js +2 -0
  187. package/dist/routes/api/superadmin/teams/[teamId]/route.d.ts +2 -0
  188. package/dist/routes/api/superadmin/teams/[teamId]/route.d.ts.map +1 -1
  189. package/dist/routes/api/superadmin/teams/[teamId]/route.js +2 -0
  190. package/dist/routes/api/superadmin/teams/route.d.ts +2 -0
  191. package/dist/routes/api/superadmin/teams/route.d.ts.map +1 -1
  192. package/dist/routes/api/superadmin/teams/route.js +2 -0
  193. package/dist/routes/api/superadmin/users/[userId]/route.d.ts +2 -0
  194. package/dist/routes/api/superadmin/users/[userId]/route.d.ts.map +1 -1
  195. package/dist/routes/api/superadmin/users/[userId]/route.js +2 -0
  196. package/dist/routes/api/superadmin/users/route.d.ts +2 -0
  197. package/dist/routes/api/superadmin/users/route.d.ts.map +1 -1
  198. package/dist/routes/api/superadmin/users/route.js +2 -0
  199. package/dist/routes/api/user/delete-account/route.d.ts +2 -0
  200. package/dist/routes/api/user/delete-account/route.d.ts.map +1 -1
  201. package/dist/routes/api/user/delete-account/route.js +2 -0
  202. package/dist/routes/api/user/plan-flags/route.d.ts +2 -0
  203. package/dist/routes/api/user/plan-flags/route.d.ts.map +1 -1
  204. package/dist/routes/api/user/plan-flags/route.js +2 -0
  205. package/dist/routes/api/user/profile/route.d.ts +2 -0
  206. package/dist/routes/api/user/profile/route.d.ts.map +1 -1
  207. package/dist/routes/api/user/profile/route.js +4 -3
  208. package/dist/routes/api/v1/[entity]/[id]/child/[childType]/[childId]/route.d.ts +2 -0
  209. package/dist/routes/api/v1/[entity]/[id]/child/[childType]/[childId]/route.d.ts.map +1 -1
  210. package/dist/routes/api/v1/[entity]/[id]/child/[childType]/[childId]/route.js +2 -0
  211. package/dist/routes/api/v1/[entity]/[id]/child/[childType]/route.d.ts +2 -0
  212. package/dist/routes/api/v1/[entity]/[id]/child/[childType]/route.d.ts.map +1 -1
  213. package/dist/routes/api/v1/[entity]/[id]/child/[childType]/route.js +2 -0
  214. package/dist/routes/api/v1/billing/cancel/route.d.ts +2 -0
  215. package/dist/routes/api/v1/billing/cancel/route.d.ts.map +1 -1
  216. package/dist/routes/api/v1/billing/cancel/route.js +2 -0
  217. package/dist/routes/api/v1/billing/change-plan/route.d.ts +2 -0
  218. package/dist/routes/api/v1/billing/change-plan/route.d.ts.map +1 -1
  219. package/dist/routes/api/v1/billing/change-plan/route.js +2 -0
  220. package/dist/routes/api/v1/billing/check-action/route.d.ts +2 -0
  221. package/dist/routes/api/v1/billing/check-action/route.d.ts.map +1 -1
  222. package/dist/routes/api/v1/billing/check-action/route.js +2 -0
  223. package/dist/routes/api/v1/billing/checkout/route.d.ts +2 -0
  224. package/dist/routes/api/v1/billing/checkout/route.d.ts.map +1 -1
  225. package/dist/routes/api/v1/billing/checkout/route.js +2 -0
  226. package/dist/routes/api/v1/billing/plans/route.d.ts +2 -0
  227. package/dist/routes/api/v1/billing/plans/route.d.ts.map +1 -1
  228. package/dist/routes/api/v1/billing/plans/route.js +2 -0
  229. package/dist/routes/api/v1/billing/portal/route.d.ts +2 -0
  230. package/dist/routes/api/v1/billing/portal/route.d.ts.map +1 -1
  231. package/dist/routes/api/v1/billing/portal/route.js +2 -0
  232. package/dist/routes/api/v1/blocks/[slug]/route.d.ts +2 -0
  233. package/dist/routes/api/v1/blocks/[slug]/route.d.ts.map +1 -1
  234. package/dist/routes/api/v1/blocks/[slug]/route.js +2 -0
  235. package/dist/routes/api/v1/blocks/route.d.ts +2 -0
  236. package/dist/routes/api/v1/blocks/route.d.ts.map +1 -1
  237. package/dist/routes/api/v1/blocks/route.js +2 -0
  238. package/dist/routes/api/v1/blocks/validate/route.d.ts +2 -0
  239. package/dist/routes/api/v1/blocks/validate/route.d.ts.map +1 -1
  240. package/dist/routes/api/v1/blocks/validate/route.js +2 -0
  241. package/dist/routes/api/v1/devtools/blocks/route.d.ts +2 -1
  242. package/dist/routes/api/v1/devtools/blocks/route.d.ts.map +1 -1
  243. package/dist/routes/api/v1/devtools/blocks/route.js +2 -9
  244. package/dist/routes/api/v1/devtools/docs/route.d.ts +2 -0
  245. package/dist/routes/api/v1/devtools/docs/route.d.ts.map +1 -1
  246. package/dist/routes/api/v1/devtools/docs/route.js +2 -0
  247. package/dist/routes/api/v1/devtools/features/route.d.ts +2 -1
  248. package/dist/routes/api/v1/devtools/features/route.d.ts.map +1 -1
  249. package/dist/routes/api/v1/devtools/features/route.js +2 -9
  250. package/dist/routes/api/v1/devtools/flows/route.d.ts +2 -1
  251. package/dist/routes/api/v1/devtools/flows/route.d.ts.map +1 -1
  252. package/dist/routes/api/v1/devtools/flows/route.js +2 -9
  253. package/dist/routes/api/v1/devtools/scheduled-actions/route.d.ts +2 -1
  254. package/dist/routes/api/v1/devtools/scheduled-actions/route.d.ts.map +1 -1
  255. package/dist/routes/api/v1/devtools/scheduled-actions/route.js +2 -9
  256. package/dist/routes/api/v1/devtools/scheduled-actions/run/route.d.ts +2 -1
  257. package/dist/routes/api/v1/devtools/scheduled-actions/run/route.d.ts.map +1 -1
  258. package/dist/routes/api/v1/devtools/scheduled-actions/run/route.js +2 -9
  259. package/dist/routes/api/v1/devtools/testing/route.d.ts +2 -1
  260. package/dist/routes/api/v1/devtools/testing/route.d.ts.map +1 -1
  261. package/dist/routes/api/v1/devtools/testing/route.js +2 -9
  262. package/dist/routes/api/v1/media/[id]/route.d.ts +2 -0
  263. package/dist/routes/api/v1/media/[id]/route.d.ts.map +1 -1
  264. package/dist/routes/api/v1/media/[id]/route.js +2 -0
  265. package/dist/routes/api/v1/media/[id]/tags/route.d.ts +2 -0
  266. package/dist/routes/api/v1/media/[id]/tags/route.d.ts.map +1 -1
  267. package/dist/routes/api/v1/media/[id]/tags/route.js +2 -0
  268. package/dist/routes/api/v1/media/check-duplicates/route.d.ts +2 -0
  269. package/dist/routes/api/v1/media/check-duplicates/route.d.ts.map +1 -1
  270. package/dist/routes/api/v1/media/check-duplicates/route.js +2 -0
  271. package/dist/routes/api/v1/media/route.d.ts +2 -0
  272. package/dist/routes/api/v1/media/route.d.ts.map +1 -1
  273. package/dist/routes/api/v1/media/route.js +2 -0
  274. package/dist/routes/api/v1/media/upload/route.d.ts +2 -0
  275. package/dist/routes/api/v1/media/upload/route.d.ts.map +1 -1
  276. package/dist/routes/api/v1/media/upload/route.js +2 -0
  277. package/dist/routes/api/v1/media-tags/route.d.ts +2 -0
  278. package/dist/routes/api/v1/media-tags/route.d.ts.map +1 -1
  279. package/dist/routes/api/v1/media-tags/route.js +2 -0
  280. package/dist/routes/api/v1/post-categories/[id]/route.d.ts +2 -0
  281. package/dist/routes/api/v1/post-categories/[id]/route.d.ts.map +1 -1
  282. package/dist/routes/api/v1/post-categories/[id]/route.js +2 -0
  283. package/dist/routes/api/v1/post-categories/route.d.ts +2 -0
  284. package/dist/routes/api/v1/post-categories/route.d.ts.map +1 -1
  285. package/dist/routes/api/v1/post-categories/route.js +2 -0
  286. package/dist/routes/api/v1/teams/[teamId]/members/route.js +2 -2
  287. package/dist/routes/api/v1/teams/[teamId]/subscription/route.d.ts +2 -0
  288. package/dist/routes/api/v1/teams/[teamId]/subscription/route.d.ts.map +1 -1
  289. package/dist/routes/api/v1/teams/[teamId]/subscription/route.js +2 -0
  290. package/dist/routes/api/v1/teams/[teamId]/usage/[limitSlug]/route.d.ts +2 -0
  291. package/dist/routes/api/v1/teams/[teamId]/usage/[limitSlug]/route.d.ts.map +1 -1
  292. package/dist/routes/api/v1/teams/[teamId]/usage/[limitSlug]/route.js +2 -0
  293. package/dist/routes/api/v1/users/[id]/meta/[key]/route.d.ts.map +1 -1
  294. package/dist/routes/api/v1/users/[id]/meta/[key]/route.js +13 -0
  295. package/dist/routes/api/v1/users/[id]/route.d.ts.map +1 -1
  296. package/dist/routes/api/v1/users/[id]/route.js +20 -2
  297. package/dist/routes/api/v1/users/docs.md +34 -19
  298. package/dist/routes/api/v1/users/me/route.d.ts +6 -0
  299. package/dist/routes/api/v1/users/me/route.d.ts.map +1 -0
  300. package/dist/routes/api/v1/users/me/route.js +5 -0
  301. package/dist/routes/api/v1/users/presets.ts +2 -2
  302. package/dist/routes/dashboard/(main)/layout.cc.d.ts +4 -0
  303. package/dist/routes/dashboard/(main)/layout.cc.d.ts.map +1 -0
  304. package/dist/routes/dashboard/(main)/layout.cc.js +10 -0
  305. package/dist/routes/dashboard/(main)/layout.d.ts.map +1 -1
  306. package/dist/routes/dashboard/(main)/layout.js +3 -44
  307. package/dist/routes/dashboard/permission-denied/page.d.ts +1 -1
  308. package/dist/routes/dashboard/permission-denied/page.d.ts.map +1 -1
  309. package/dist/routes/dashboard/permission-denied/page.js +5 -1
  310. package/dist/routes/devtools/layout.cc.d.ts.map +1 -1
  311. package/dist/routes/devtools/layout.cc.js +5 -1
  312. package/dist/routes/manifest.json +10 -0
  313. package/dist/routes/robots.d.ts +10 -0
  314. package/dist/routes/robots.d.ts.map +1 -0
  315. package/dist/routes/robots.js +10 -0
  316. package/dist/routes/superadmin/layout.cc.d.ts.map +1 -1
  317. package/dist/routes/superadmin/layout.cc.js +5 -1
  318. package/dist/routes/variants.json +12 -2
  319. package/dist/templates/next.config.mjs +2 -29
  320. package/dist/templates/projects/blog/api/authors/[username]/route.ts +3 -0
  321. package/dist/templates/projects/blog/api/authors/route.ts +3 -0
  322. package/dist/templates/projects/blog/api/posts/public/route.ts +3 -0
  323. package/dist/templates/projects/blog/package.json +3 -3
  324. package/dist/templates/projects/crm/package.json +3 -3
  325. package/dist/templates/projects/productivity/package.json +3 -3
  326. package/dist/templates/proxy.ts +12 -1
  327. package/dist/templates/public/favicon.ico +0 -0
  328. package/package.json +8 -5
  329. package/scripts/build/auth-readiness.mjs +4 -0
  330. package/scripts/build/registry/__tests__/api-docs-colocated.test.mjs +3 -0
  331. package/scripts/build/registry/__tests__/billing-registry.test.mjs +50 -1
  332. package/scripts/build/registry/__tests__/block-registry.test.mjs +3 -0
  333. package/scripts/build/registry/__tests__/build-output.test.mjs +1 -1
  334. package/scripts/build/registry/__tests__/icons-discovery.test.mjs +3 -0
  335. package/scripts/build/registry/__tests__/project-mode-root-first.test.mjs +6 -6
  336. package/scripts/build/registry/__tests__/quiet-console.mjs +17 -0
  337. package/scripts/build/registry/__tests__/safe-fs.test.mjs +3 -0
  338. package/scripts/build/registry/__tests__/team-roles.test.mjs +3 -0
  339. package/scripts/build/registry/__tests__/write-places.test.mjs +1 -1
  340. package/scripts/build/registry/contracts/__tests__/contracts-wire.test.mjs +1 -1
  341. package/scripts/build/registry/contracts/__tests__/contracts.test.mjs +1 -1
  342. package/scripts/build/registry/contracts/render.mjs +3 -3
  343. package/scripts/build/registry/discovery/permissions.test.mjs +3 -0
  344. package/scripts/build/registry/discovery/plugin-capabilities.mjs +2 -2
  345. package/scripts/build/registry/generators/billing-registry.mjs +7 -3
  346. package/scripts/build/registry/host/README.md +27 -3
  347. package/scripts/build/registry/host/__tests__/facade-emitter.test.mjs +9 -9
  348. package/scripts/build/registry/host/__tests__/host-area-access.test.mjs +32 -0
  349. package/scripts/build/registry/host/__tests__/host-entities.test.mjs +32 -1
  350. package/scripts/build/registry/host/__tests__/host-mode.test.mjs +1 -1
  351. package/scripts/build/registry/host/__tests__/host-plan.test.mjs +12 -2
  352. package/scripts/build/registry/host/__tests__/host-project-composition.test.mjs +1 -1
  353. package/scripts/build/registry/host/__tests__/host-project.test.mjs +2 -2
  354. package/scripts/build/registry/host/__tests__/host-robustness.test.mjs +65 -2
  355. package/scripts/build/registry/host/entity-routes.mjs +9 -3
  356. package/scripts/build/registry/host/facade-emitter.mjs +2 -2
  357. package/scripts/build/registry/host/generation.mjs +54 -0
  358. package/scripts/build/registry/host/next-route-exports.json +2 -2
  359. package/scripts/build/registry/host/prepare.mjs +3 -0
  360. package/scripts/build/registry/host/static-imports.mjs +4 -0
  361. package/scripts/build/routes-manifest.mjs +13 -1
  362. package/scripts/db/migration-time-limit.mjs +216 -34
  363. package/scripts/db/run-migrations.mjs +11 -179
  364. package/scripts/db/ssl-config.mjs +12 -1
  365. package/scripts/db/verify-theme-migrations.mjs +1 -1
  366. package/templates/next.config.mjs +2 -29
  367. package/templates/projects/blog/api/authors/[username]/route.ts +3 -0
  368. package/templates/projects/blog/api/authors/route.ts +3 -0
  369. package/templates/projects/blog/api/posts/public/route.ts +3 -0
  370. package/templates/projects/blog/package.json +3 -3
  371. package/templates/projects/crm/package.json +3 -3
  372. package/templates/projects/productivity/package.json +3 -3
  373. package/templates/proxy.ts +12 -1
  374. package/templates/public/favicon.ico +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../src/routes/api/v1/blocks/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAIvD,eAAO,MAAM,GAAG,iDAyCN,CAAC"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../src/routes/api/v1/blocks/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAGvD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAEvE,eAAO,MAAM,GAAG,iDAyCN,CAAC;AAEX,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { NextResponse } from "next/server";
2
2
  import { BLOCK_REGISTRY, BLOCK_CATEGORIES } from "@nextsparkjs/registries/block-registry";
3
3
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
4
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
4
5
  export const GET = withRateLimitTier(async (request) => {
5
6
  try {
6
7
  const { searchParams } = new URL(request.url);
@@ -42,3 +43,4 @@ export const GET = withRateLimitTier(async (request) => {
42
43
  return NextResponse.json({ success: false, error: "Internal server error" }, { status: 500 });
43
44
  }
44
45
  }, "read");
46
+ export const OPTIONS = corsPreflight;
@@ -1,3 +1,5 @@
1
1
  import { NextRequest, NextResponse } from 'next/server';
2
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
2
3
  export declare const POST: (request: NextRequest) => Promise<NextResponse>;
4
+ export declare const OPTIONS: typeof corsPreflight;
3
5
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/blocks/validate/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAWvD,eAAO,MAAM,IAAI,iDAiCN,CAAC"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/blocks/validate/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKvD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAOvE,eAAO,MAAM,IAAI,iDAiCN,CAAC;AAEZ,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -3,6 +3,7 @@ import { BLOCK_REGISTRY } from "@nextsparkjs/registries/block-registry";
3
3
  import { BLOCK_SCHEMAS } from "@nextsparkjs/registries/block-schemas";
4
4
  import * as z from "zod";
5
5
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
6
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
6
7
  const requestSchema = z.object({
7
8
  blockSlug: z.string(),
8
9
  props: z.record(z.string(), z.unknown())
@@ -36,3 +37,4 @@ export const POST = withRateLimitTier(async (request) => {
36
37
  return NextResponse.json({ error: "Internal server error" }, { status: 500 });
37
38
  }
38
39
  }, "write");
40
+ export const OPTIONS = corsPreflight;
@@ -7,6 +7,7 @@
7
7
  * Requires the developer role.
8
8
  */
9
9
  import { NextRequest, NextResponse } from 'next/server';
10
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
10
11
  export declare const GET: (request: NextRequest) => Promise<NextResponse>;
11
- export declare function OPTIONS(): Promise<NextResponse<unknown>>;
12
+ export declare const OPTIONS: typeof corsPreflight;
12
13
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/devtools/blocks/route.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAWvD,eAAO,MAAM,GAAG,iDAqDN,CAAC;AAEX,wBAAsB,OAAO,mCAQ5B"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/devtools/blocks/route.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAUvD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAEvE,eAAO,MAAM,GAAG,iDAqDN,CAAC;AAEX,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -8,6 +8,7 @@ import {
8
8
  import { BLOCK_REGISTRY } from "@nextsparkjs/registries/block-registry";
9
9
  import { TAGS_REGISTRY, COVERAGE_SUMMARY } from "@nextsparkjs/registries/testing-registry";
10
10
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
11
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
11
12
  export const GET = withRateLimitTier(async (request) => {
12
13
  const authResult = await authenticateRequest(request, { requiredScope: "admin:devtools" });
13
14
  if (!authResult.success) {
@@ -49,12 +50,4 @@ export const GET = withRateLimitTier(async (request) => {
49
50
  }
50
51
  });
51
52
  }, "read");
52
- export async function OPTIONS() {
53
- return new NextResponse(null, {
54
- status: 204,
55
- headers: {
56
- "Access-Control-Allow-Methods": "GET, OPTIONS",
57
- "Access-Control-Allow-Headers": "Content-Type, Authorization, x-api-key"
58
- }
59
- });
60
- }
53
+ export const OPTIONS = corsPreflight;
@@ -10,5 +10,7 @@
10
10
  * Requires the developer role, like the other devtools APIs.
11
11
  */
12
12
  import { NextRequest, NextResponse } from 'next/server';
13
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
13
14
  export declare const GET: (request: NextRequest) => Promise<NextResponse>;
15
+ export declare const OPTIONS: typeof corsPreflight;
14
16
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/devtools/docs/route.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AA2EvD,eAAO,MAAM,GAAG,iDA6EN,CAAC"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/devtools/docs/route.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKvD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAuEvE,eAAO,MAAM,GAAG,iDA6EN,CAAC;AAEX,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -3,6 +3,7 @@ import { readFile } from "fs/promises";
3
3
  import { join, dirname } from "path";
4
4
  import { existsSync } from "fs";
5
5
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
6
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
6
7
  import { authenticateRequest, createAuthFailureResponse } from "@nextsparkjs/core/lib/api/auth/dual-auth";
7
8
  import {
8
9
  canAccessDevtoolsApi,
@@ -106,3 +107,4 @@ export const GET = withRateLimitTier(async (request) => {
106
107
  );
107
108
  }
108
109
  }, "read");
110
+ export const OPTIONS = corsPreflight;
@@ -7,6 +7,7 @@
7
7
  * Requires the developer role.
8
8
  */
9
9
  import { NextRequest, NextResponse } from 'next/server';
10
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
10
11
  export declare const GET: (request: NextRequest) => Promise<NextResponse>;
11
- export declare function OPTIONS(): Promise<NextResponse<unknown>>;
12
+ export declare const OPTIONS: typeof corsPreflight;
12
13
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/devtools/features/route.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAavD,eAAO,MAAM,GAAG,iDA8BN,CAAC;AAEX,wBAAsB,OAAO,mCAQ5B"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/devtools/features/route.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAYvD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAEvE,eAAO,MAAM,GAAG,iDA8BN,CAAC;AAEX,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -10,6 +10,7 @@ import {
10
10
  COVERAGE_SUMMARY
11
11
  } from "@nextsparkjs/registries/testing-registry";
12
12
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
13
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
13
14
  export const GET = withRateLimitTier(async (request) => {
14
15
  const authResult = await authenticateRequest(request, { requiredScope: "admin:devtools" });
15
16
  if (!authResult.success) {
@@ -34,12 +35,4 @@ export const GET = withRateLimitTier(async (request) => {
34
35
  }
35
36
  });
36
37
  }, "read");
37
- export async function OPTIONS() {
38
- return new NextResponse(null, {
39
- status: 204,
40
- headers: {
41
- "Access-Control-Allow-Methods": "GET, OPTIONS",
42
- "Access-Control-Allow-Headers": "Content-Type, Authorization, x-api-key"
43
- }
44
- });
45
- }
38
+ export const OPTIONS = corsPreflight;
@@ -7,6 +7,7 @@
7
7
  * Requires the developer role.
8
8
  */
9
9
  import { NextRequest, NextResponse } from 'next/server';
10
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
10
11
  export declare const GET: (request: NextRequest) => Promise<NextResponse>;
11
- export declare function OPTIONS(): Promise<NextResponse<unknown>>;
12
+ export declare const OPTIONS: typeof corsPreflight;
12
13
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/devtools/flows/route.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAavD,eAAO,MAAM,GAAG,iDA8BN,CAAC;AAEX,wBAAsB,OAAO,mCAQ5B"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/devtools/flows/route.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAYvD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAEvE,eAAO,MAAM,GAAG,iDA8BN,CAAC;AAEX,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -10,6 +10,7 @@ import {
10
10
  COVERAGE_SUMMARY
11
11
  } from "@nextsparkjs/registries/testing-registry";
12
12
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
13
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
13
14
  export const GET = withRateLimitTier(async (request) => {
14
15
  const authResult = await authenticateRequest(request, { requiredScope: "admin:devtools" });
15
16
  if (!authResult.success) {
@@ -34,12 +35,4 @@ export const GET = withRateLimitTier(async (request) => {
34
35
  }
35
36
  });
36
37
  }, "read");
37
- export async function OPTIONS() {
38
- return new NextResponse(null, {
39
- status: 204,
40
- headers: {
41
- "Access-Control-Allow-Methods": "GET, OPTIONS",
42
- "Access-Control-Allow-Headers": "Content-Type, Authorization, x-api-key"
43
- }
44
- });
45
- }
38
+ export const OPTIONS = corsPreflight;
@@ -7,6 +7,7 @@
7
7
  * Requires the developer role.
8
8
  */
9
9
  import { NextRequest, NextResponse } from 'next/server';
10
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
10
11
  export declare const GET: (request: NextRequest) => Promise<NextResponse>;
11
12
  /**
12
13
  * POST /api/v1/devtools/scheduled-actions
@@ -20,5 +21,5 @@ export declare const GET: (request: NextRequest) => Promise<NextResponse>;
20
21
  * }
21
22
  */
22
23
  export declare const POST: (request: NextRequest) => Promise<NextResponse>;
23
- export declare function OPTIONS(): Promise<NextResponse<unknown>>;
24
+ export declare const OPTIONS: typeof corsPreflight;
24
25
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/devtools/scheduled-actions/route.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAavD,eAAO,MAAM,GAAG,iDAsGN,CAAC;AAEX;;;;;;;;;;GAUG;AACH,eAAO,MAAM,IAAI,iDAgGN,CAAC;AAEZ,wBAAsB,OAAO,mCAQ5B"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/devtools/scheduled-actions/route.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAWvD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAGvE,eAAO,MAAM,GAAG,iDAsGN,CAAC;AAEX;;;;;;;;;;GAUG;AACH,eAAO,MAAM,IAAI,iDAgGN,CAAC;AAEZ,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -8,6 +8,7 @@ import {
8
8
  import { queryWithRLS } from "@nextsparkjs/core/lib/db";
9
9
  import { getAllRegisteredActions } from "@nextsparkjs/core/lib/scheduled-actions/registry";
10
10
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
11
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
11
12
  import { scheduleAction } from "@nextsparkjs/core/lib/scheduled-actions/scheduler";
12
13
  export const GET = withRateLimitTier(async (request) => {
13
14
  var _a, _b;
@@ -169,12 +170,4 @@ export const POST = withRateLimitTier(async (request) => {
169
170
  }
170
171
  });
171
172
  }, "write");
172
- export async function OPTIONS() {
173
- return new NextResponse(null, {
174
- status: 204,
175
- headers: {
176
- "Access-Control-Allow-Methods": "GET, POST, OPTIONS",
177
- "Access-Control-Allow-Headers": "Content-Type, Authorization, x-api-key"
178
- }
179
- });
180
- }
173
+ export const OPTIONS = corsPreflight;
@@ -7,6 +7,7 @@
7
7
  * Requires the developer role.
8
8
  */
9
9
  import { NextRequest, NextResponse } from 'next/server';
10
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
10
11
  export declare const POST: (request: NextRequest) => Promise<NextResponse>;
11
- export declare function OPTIONS(): Promise<NextResponse<unknown>>;
12
+ export declare const OPTIONS: typeof corsPreflight;
12
13
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/routes/api/v1/devtools/scheduled-actions/run/route.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAYvD,eAAO,MAAM,IAAI,iDA+EN,CAAC;AAEZ,wBAAsB,OAAO,mCAQ5B"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/routes/api/v1/devtools/scheduled-actions/run/route.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAUvD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAGvE,eAAO,MAAM,IAAI,iDA+EN,CAAC;AAEZ,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -7,6 +7,7 @@ import {
7
7
  } from "@nextsparkjs/core/lib/api/auth/devtools-auth";
8
8
  import { queryWithRLS } from "@nextsparkjs/core/lib/db";
9
9
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
10
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
10
11
  import { executeAction } from "@nextsparkjs/core/lib/scheduled-actions/processor";
11
12
  export const POST = withRateLimitTier(async (request) => {
12
13
  const authResult = await authenticateRequest(request, { requiredScope: "admin:devtools" });
@@ -71,12 +72,4 @@ export const POST = withRateLimitTier(async (request) => {
71
72
  }, { status: 500 });
72
73
  }
73
74
  }, "write");
74
- export async function OPTIONS() {
75
- return new NextResponse(null, {
76
- status: 204,
77
- headers: {
78
- "Access-Control-Allow-Methods": "POST, OPTIONS",
79
- "Access-Control-Allow-Headers": "Content-Type, Authorization, x-api-key"
80
- }
81
- });
82
- }
75
+ export const OPTIONS = corsPreflight;
@@ -7,6 +7,7 @@
7
7
  * Requires the developer role.
8
8
  */
9
9
  import { NextRequest, NextResponse } from 'next/server';
10
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
10
11
  export declare const GET: (request: NextRequest) => Promise<NextResponse>;
11
- export declare function OPTIONS(): Promise<NextResponse<unknown>>;
12
+ export declare const OPTIONS: typeof corsPreflight;
12
13
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/devtools/testing/route.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAevD,eAAO,MAAM,GAAG,iDAiDN,CAAC;AAEX,wBAAsB,OAAO,mCAQ5B"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/devtools/testing/route.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAcvD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAEvE,eAAO,MAAM,GAAG,iDAiDN,CAAC;AAEX,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -12,6 +12,7 @@ import {
12
12
  FLOW_REGISTRY
13
13
  } from "@nextsparkjs/registries/testing-registry";
14
14
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
15
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
15
16
  export const GET = withRateLimitTier(async (request) => {
16
17
  const authResult = await authenticateRequest(request, { requiredScope: "admin:devtools" });
17
18
  if (!authResult.success) {
@@ -53,12 +54,4 @@ export const GET = withRateLimitTier(async (request) => {
53
54
  }
54
55
  });
55
56
  }, "read");
56
- export async function OPTIONS() {
57
- return new NextResponse(null, {
58
- status: 204,
59
- headers: {
60
- "Access-Control-Allow-Methods": "GET, OPTIONS",
61
- "Access-Control-Allow-Headers": "Content-Type, Authorization, x-api-key"
62
- }
63
- });
64
- }
57
+ export const OPTIONS = corsPreflight;
@@ -1,4 +1,5 @@
1
1
  import { NextRequest } from 'next/server';
2
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
2
3
  /**
3
4
  * GET /api/v1/media/:id
4
5
  *
@@ -44,4 +45,5 @@ export declare const DELETE: (request: NextRequest, args_0: {
44
45
  id: string;
45
46
  }>;
46
47
  }) => Promise<import("next/server").NextResponse>;
48
+ export declare const OPTIONS: typeof corsPreflight;
47
49
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/media/[id]/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AASzC;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG;YAEQ,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;iDAmCrC,CAAA;AAEV;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,KAAK;YAEM,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;iDAgDpC,CAAA;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM;YAEK,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;iDAmCpC,CAAA"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/media/[id]/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAMzC,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAIvE;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG;YAEQ,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;iDAmCrC,CAAA;AAEV;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,KAAK;YAEM,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;iDAgDpC,CAAA;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM;YAEK,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;iDAmCpC,CAAA;AAEX,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -3,6 +3,7 @@ import { createApiResponse, createApiError } from "@nextsparkjs/core/lib/api/hel
3
3
  import { API_ERROR_CODES } from "@nextsparkjs/core/lib/api/api-error";
4
4
  import { checkPermission } from "@nextsparkjs/core/lib/permissions/check";
5
5
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
6
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
6
7
  import { MediaService } from "@nextsparkjs/core/lib/services/media.service";
7
8
  import { updateMediaSchema } from "@nextsparkjs/core/lib/media/schemas";
8
9
  export const GET = withRateLimitTier(async (request, { params }) => {
@@ -84,3 +85,4 @@ export const DELETE = withRateLimitTier(async (request, { params }) => {
84
85
  return createApiError("Failed to delete media", 500);
85
86
  }
86
87
  }, "write");
88
+ export const OPTIONS = corsPreflight;
@@ -1,4 +1,5 @@
1
1
  import { NextRequest } from 'next/server';
2
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
2
3
  /**
3
4
  * GET /api/v1/media/{id}/tags
4
5
  *
@@ -42,4 +43,5 @@ export declare const DELETE: (request: NextRequest, args_0: {
42
43
  id: string;
43
44
  }>;
44
45
  }) => Promise<import("next/server").NextResponse>;
46
+ export declare const OPTIONS: typeof corsPreflight;
45
47
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/routes/api/v1/media/[id]/tags/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAiBzC;;;;GAIG;AACH,eAAO,MAAM,GAAG;YAEQ,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;iDAiCrC,CAAA;AAEV;;;;;GAKG;AACH,eAAO,MAAM,IAAI;YAEO,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;iDA0CpC,CAAA;AAEX;;;;;GAKG;AACH,eAAO,MAAM,GAAG;YAEQ,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;iDA0CpC,CAAA;AAEX;;;;;GAKG;AACH,eAAO,MAAM,MAAM;YAEK,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;iDAwCpC,CAAA"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/routes/api/v1/media/[id]/tags/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAMzC,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAYvE;;;;GAIG;AACH,eAAO,MAAM,GAAG;YAEQ,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;iDAiCrC,CAAA;AAEV;;;;;GAKG;AACH,eAAO,MAAM,IAAI;YAEO,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;iDA0CpC,CAAA;AAEX;;;;;GAKG;AACH,eAAO,MAAM,GAAG;YAEQ,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;iDA0CpC,CAAA;AAEX;;;;;GAKG;AACH,eAAO,MAAM,MAAM;YAEK,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;iDAwCpC,CAAA;AAEX,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -3,6 +3,7 @@ import { createApiResponse, createApiError } from "@nextsparkjs/core/lib/api/hel
3
3
  import { API_ERROR_CODES } from "@nextsparkjs/core/lib/api/api-error";
4
4
  import { checkPermission } from "@nextsparkjs/core/lib/permissions/check";
5
5
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
6
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
6
7
  import { MediaService } from "@nextsparkjs/core/lib/services/media.service";
7
8
  import * as z from "zod";
8
9
  const addTagSchema = z.object({
@@ -124,3 +125,4 @@ export const DELETE = withRateLimitTier(async (request, { params }) => {
124
125
  return createApiError("Failed to remove tag", 500);
125
126
  }
126
127
  }, "write");
128
+ export const OPTIONS = corsPreflight;
@@ -1,4 +1,5 @@
1
1
  import { NextRequest } from 'next/server';
2
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
2
3
  /**
3
4
  * POST /api/v1/media/check-duplicates
4
5
  *
@@ -9,4 +10,5 @@ import { NextRequest } from 'next/server';
9
10
  * Returns: { duplicates: [{ filename, fileSize, existing: Media[] }] }
10
11
  */
11
12
  export declare const POST: (request: NextRequest) => Promise<import("next/server").NextResponse>;
13
+ export declare const OPTIONS: typeof corsPreflight;
12
14
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/media/check-duplicates/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAQzC;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,uEAgDP,CAAA"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/media/check-duplicates/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAMzC,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAGvE;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,uEAgDP,CAAA;AAEV,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -3,6 +3,7 @@ import { createApiResponse, createApiError } from "@nextsparkjs/core/lib/api/hel
3
3
  import { API_ERROR_CODES } from "@nextsparkjs/core/lib/api/api-error";
4
4
  import { checkPermission } from "@nextsparkjs/core/lib/permissions/check";
5
5
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
6
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
6
7
  import { MediaService } from "@nextsparkjs/core/lib/services/media.service";
7
8
  export const POST = withRateLimitTier(async (request) => {
8
9
  try {
@@ -43,3 +44,4 @@ export const POST = withRateLimitTier(async (request) => {
43
44
  return createApiError("Failed to check duplicates", 500);
44
45
  }
45
46
  }, "read");
47
+ export const OPTIONS = corsPreflight;
@@ -1,4 +1,5 @@
1
1
  import { NextRequest } from 'next/server';
2
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
2
3
  /**
3
4
  * GET /api/v1/media
4
5
  *
@@ -17,4 +18,5 @@ import { NextRequest } from 'next/server';
17
18
  * RLS: Returns only media from teams the user is a member of
18
19
  */
19
20
  export declare const GET: (request: NextRequest) => Promise<import("next/server").NextResponse>;
21
+ export declare const OPTIONS: typeof corsPreflight;
20
22
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../src/routes/api/v1/media/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AASzC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,GAAG,uEAqCN,CAAA"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../src/routes/api/v1/media/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAMzC,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAIvE;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,GAAG,uEAqCN,CAAA;AAEV,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -3,6 +3,7 @@ import { createApiResponse, createApiError } from "@nextsparkjs/core/lib/api/hel
3
3
  import { API_ERROR_CODES } from "@nextsparkjs/core/lib/api/api-error";
4
4
  import { checkPermission } from "@nextsparkjs/core/lib/permissions/check";
5
5
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
6
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
6
7
  import { MediaService } from "@nextsparkjs/core/lib/services/media.service";
7
8
  import { mediaListQuerySchema } from "@nextsparkjs/core/lib/media/schemas";
8
9
  export const GET = withRateLimitTier(async (request) => {
@@ -31,3 +32,4 @@ export const GET = withRateLimitTier(async (request) => {
31
32
  return createApiError("Failed to list media", 500);
32
33
  }
33
34
  }, "read");
35
+ export const OPTIONS = corsPreflight;
@@ -1,4 +1,5 @@
1
1
  import { NextRequest } from 'next/server';
2
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
2
3
  /**
3
4
  * POST /api/v1/media/upload
4
5
  *
@@ -21,4 +22,5 @@ export declare const POST: (request: NextRequest) => Promise<import("next/server
21
22
  * Get upload endpoint information.
22
23
  */
23
24
  export declare const GET: (request: NextRequest) => Promise<import("next/server").NextResponse>;
25
+ export declare const OPTIONS: typeof corsPreflight;
24
26
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/media/upload/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAwCzC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,IAAI,uEA0KN,CAAC;AAEZ;;;;GAIG;AACH,eAAO,MAAM,GAAG,uEA0CN,CAAC"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/media/upload/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAOzC,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAkCvE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,IAAI,uEA0KN,CAAC;AAEZ;;;;GAIG;AACH,eAAO,MAAM,GAAG,uEA0CN,CAAC;AAEX,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -4,6 +4,7 @@ import { createApiResponse, createApiError } from "@nextsparkjs/core/lib/api/hel
4
4
  import { API_ERROR_CODES } from "@nextsparkjs/core/lib/api/api-error";
5
5
  import { checkPermission } from "@nextsparkjs/core/lib/permissions/check";
6
6
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
7
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
7
8
  import { MEDIA_CONFIG } from "@nextsparkjs/core/lib/config/config-sync";
8
9
  import { MediaService } from "@nextsparkjs/core/lib/services/media.service";
9
10
  import { extractImageDimensions } from "@nextsparkjs/core/lib/media/utils";
@@ -194,3 +195,4 @@ export const GET = withRateLimitTier(async (request) => {
194
195
  );
195
196
  }
196
197
  }, "read");
198
+ export const OPTIONS = corsPreflight;
@@ -1,4 +1,5 @@
1
1
  import { NextRequest } from 'next/server';
2
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
2
3
  /**
3
4
  * GET /api/v1/media-tags
4
5
  *
@@ -16,4 +17,5 @@ export declare const GET: (request: NextRequest) => Promise<import("next/server"
16
17
  * Authentication: Requires valid session or API key with media:write scope
17
18
  */
18
19
  export declare const POST: (request: NextRequest) => Promise<import("next/server").NextResponse>;
20
+ export declare const OPTIONS: typeof corsPreflight;
19
21
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../src/routes/api/v1/media-tags/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAQzC;;;;;;GAMG;AACH,eAAO,MAAM,GAAG,uEAwBN,CAAA;AAEV;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,uEA+BN,CAAA"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../src/routes/api/v1/media-tags/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAMzC,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAGvE;;;;;;GAMG;AACH,eAAO,MAAM,GAAG,uEAwBN,CAAA;AAEV;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,uEA+BN,CAAA;AAEX,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -3,6 +3,7 @@ import { createApiResponse, createApiError } from "@nextsparkjs/core/lib/api/hel
3
3
  import { API_ERROR_CODES } from "@nextsparkjs/core/lib/api/api-error";
4
4
  import { checkPermission } from "@nextsparkjs/core/lib/permissions/check";
5
5
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
6
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
6
7
  import { MediaService } from "@nextsparkjs/core/lib/services/media.service";
7
8
  export const GET = withRateLimitTier(async (request) => {
8
9
  try {
@@ -47,3 +48,4 @@ export const POST = withRateLimitTier(async (request) => {
47
48
  return createApiError("Failed to create media tag", 500);
48
49
  }
49
50
  }, "write");
51
+ export const OPTIONS = corsPreflight;
@@ -1,4 +1,5 @@
1
1
  import { NextRequest, NextResponse } from 'next/server';
2
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
2
3
  export declare const GET: (request: NextRequest, args_0: {
3
4
  params: Promise<{
4
5
  id: string;
@@ -14,4 +15,5 @@ export declare const DELETE: (request: NextRequest, args_0: {
14
15
  id: string;
15
16
  }>;
16
17
  }) => Promise<NextResponse>;
18
+ export declare const OPTIONS: typeof corsPreflight;
17
19
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/post-categories/[id]/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAmBvD,eAAO,MAAM,GAAG;YAEQ,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;2BAyBrC,CAAC;AAGX,eAAO,MAAM,GAAG;YAEQ,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;2BAwIpC,CAAC;AAGZ,eAAO,MAAM,MAAM;YAEK,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;2BAiEpC,CAAC"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/api/v1/post-categories/[id]/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKvD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAevE,eAAO,MAAM,GAAG;YAEQ,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;2BAyBrC,CAAC;AAGX,eAAO,MAAM,GAAG;YAEQ,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;2BAwIpC,CAAC;AAGZ,eAAO,MAAM,MAAM;YAEK,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;2BAiEpC,CAAC;AAEZ,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -3,6 +3,7 @@ import { authenticateRequest, createAuthFailureResponse } from "@nextsparkjs/cor
3
3
  import { query as dbQuery } from "@nextsparkjs/core/lib/db";
4
4
  import * as z from "zod";
5
5
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
6
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
6
7
  const updateCategorySchema = z.object({
7
8
  name: z.string().min(1).max(255).optional(),
8
9
  slug: z.string().min(2).max(100).regex(/^[a-z0-9-]+$/, "Slug must be lowercase alphanumeric with dashes").optional(),
@@ -201,3 +202,4 @@ export const DELETE = withRateLimitTier(async (request, { params }) => {
201
202
  return NextResponse.json({ success: false, error: "Internal server error" }, { status: 500 });
202
203
  }
203
204
  }, "write");
205
+ export const OPTIONS = corsPreflight;
@@ -1,4 +1,6 @@
1
1
  import { NextRequest, NextResponse } from 'next/server';
2
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
2
3
  export declare const GET: (request: NextRequest) => Promise<NextResponse>;
3
4
  export declare const POST: (request: NextRequest) => Promise<NextResponse>;
5
+ export declare const OPTIONS: typeof corsPreflight;
4
6
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../src/routes/api/v1/post-categories/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AA6BvD,eAAO,MAAM,GAAG,iDAkBN,CAAC;AAGX,eAAO,MAAM,IAAI,iDAsEN,CAAC"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../src/routes/api/v1/post-categories/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKvD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAyBvE,eAAO,MAAM,GAAG,iDAkBN,CAAC;AAGX,eAAO,MAAM,IAAI,iDAsEN,CAAC;AAEZ,eAAO,MAAM,OAAO,sBAAgB,CAAA"}
@@ -3,6 +3,7 @@ import { authenticateRequest, createAuthFailureResponse } from "@nextsparkjs/cor
3
3
  import { query as dbQuery } from "@nextsparkjs/core/lib/db";
4
4
  import * as z from "zod";
5
5
  import { withRateLimitTier } from "@nextsparkjs/core/lib/api/rate-limit";
6
+ import { corsPreflight } from "@nextsparkjs/core/lib/api/cors-response";
6
7
  const createCategorySchema = z.object({
7
8
  name: z.string().min(1).max(255),
8
9
  slug: z.string().min(2).max(100).regex(/^[a-z0-9-]+$/, "Slug must be lowercase alphanumeric with dashes").optional(),
@@ -92,3 +93,4 @@ export const POST = withRateLimitTier(async (request) => {
92
93
  return NextResponse.json({ success: false, error: "Internal server error" }, { status: 500 });
93
94
  }
94
95
  }, "write");
96
+ export const OPTIONS = corsPreflight;
@@ -17,7 +17,7 @@ import { MembershipService } from "@nextsparkjs/core/lib/services";
17
17
  import { canInviteToRole } from "@nextsparkjs/core/lib/teams/permissions";
18
18
  import { EmailFactory } from "@nextsparkjs/core/lib/email/factory";
19
19
  import { sendTeamInvitationEmail } from "@nextsparkjs/core/lib/email/send";
20
- import { I18N_CONFIG } from "@nextsparkjs/core/lib/config";
20
+ import { I18N_CONFIG, APP_NAME } from "@nextsparkjs/core/lib/config";
21
21
  import { withBasePath } from "@nextsparkjs/core/lib/base-path";
22
22
  export async function OPTIONS(request) {
23
23
  return handleCorsPreflightRequest(request);
@@ -230,7 +230,7 @@ export const POST = withRateLimitTier(withApiLogging(
230
230
  role: validatedData.role,
231
231
  acceptUrl,
232
232
  expiresIn: "7 days",
233
- appName: process.env.NEXT_PUBLIC_APP_NAME || "Your App"
233
+ appName: process.env.NEXT_PUBLIC_APP_NAME || APP_NAME
234
234
  }, I18N_CONFIG.defaultLocale);
235
235
  await emailProvider.send({
236
236
  to: validatedData.email,
@@ -4,11 +4,13 @@
4
4
  * GET /api/v1/teams/[teamId]/subscription - Get team's active subscription
5
5
  */
6
6
  import { NextRequest, NextResponse } from 'next/server';
7
+ import { corsPreflight } from '@nextsparkjs/core/lib/api/cors-response';
7
8
  interface RouteParams {
8
9
  params: Promise<{
9
10
  teamId: string;
10
11
  }>;
11
12
  }
12
13
  export declare const GET: (request: NextRequest, props: RouteParams) => Promise<NextResponse>;
14
+ export declare const OPTIONS: typeof corsPreflight;
13
15
  export {};
14
16
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/routes/api/v1/teams/[teamId]/subscription/route.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKvD,UAAU,WAAW;IACnB,MAAM,EAAE,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpC;AAED,eAAO,MAAM,GAAG,qEAmCN,CAAA"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/routes/api/v1/teams/[teamId]/subscription/route.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAGvD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAGvE,UAAU,WAAW;IACnB,MAAM,EAAE,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpC;AAED,eAAO,MAAM,GAAG,qEAmCN,CAAA;AAEV,eAAO,MAAM,OAAO,sBAAgB,CAAA"}