@stacksjs/defaults 0.70.58 → 0.70.59

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 (575) hide show
  1. package/app/Actions/AI/AskAction.ts +40 -0
  2. package/app/Actions/AI/SummaryAction.ts +40 -0
  3. package/app/Actions/Auth/AuthUserAction.ts +13 -0
  4. package/app/Actions/Auth/CreateTokenAction.ts +64 -0
  5. package/app/Actions/Auth/DisableTwoFactorAction.ts +37 -0
  6. package/app/Actions/Auth/EnableTwoFactorAction.ts +37 -0
  7. package/app/Actions/Auth/GenerateAuthenticationAction.ts +51 -0
  8. package/app/Actions/Auth/GenerateRegistrationAction.ts +53 -0
  9. package/app/Actions/Auth/GenerateTwoFactorSecretAction.ts +26 -0
  10. package/app/Actions/Auth/ListTokensAction.ts +30 -0
  11. package/app/Actions/Auth/LoginAction.ts +73 -0
  12. package/app/Actions/Auth/LogoutAction.ts +16 -0
  13. package/app/Actions/Auth/LogoutAllAction.ts +28 -0
  14. package/app/Actions/Auth/RefreshTokenAction.ts +39 -0
  15. package/app/Actions/Auth/RegisterAction.ts +57 -0
  16. package/app/Actions/Auth/ResendVerificationAction.ts +24 -0
  17. package/app/Actions/Auth/RevokeTokenAction.ts +43 -0
  18. package/app/Actions/Auth/TestAbilitiesAction.ts +61 -0
  19. package/app/Actions/Auth/VerifyAuthenticationAction.ts +94 -0
  20. package/app/Actions/Auth/VerifyEmailAction.ts +25 -0
  21. package/app/Actions/Auth/VerifyRegistrationAction.ts +59 -0
  22. package/app/Actions/Auth/VerifyTwoFactorLoginAction.ts +57 -0
  23. package/app/Actions/Billable/CheckoutAction.ts +25 -0
  24. package/app/Actions/Buddy/BuddyBrowseAction.ts +34 -0
  25. package/app/Actions/Buddy/BuddyCancelAction.ts +32 -0
  26. package/app/Actions/Buddy/BuddyCommitAction.ts +25 -0
  27. package/app/Actions/Buddy/BuddyGitHubConnectAction.ts +40 -0
  28. package/app/Actions/Buddy/BuddyGitHubDisconnectAction.ts +19 -0
  29. package/app/Actions/Buddy/BuddyProcessAction.ts +65 -0
  30. package/app/Actions/Buddy/BuddyProcessStreamAction.ts +128 -0
  31. package/app/Actions/Buddy/BuddyPushAction.ts +21 -0
  32. package/app/Actions/Buddy/BuddyRepoOpenAction.ts +44 -0
  33. package/app/Actions/Buddy/BuddyRepoValidateAction.ts +35 -0
  34. package/app/Actions/Buddy/BuddySettingsAction.ts +21 -0
  35. package/app/Actions/Buddy/BuddySettingsUpdateAction.ts +46 -0
  36. package/app/Actions/Buddy/BuddyStateAction.ts +28 -0
  37. package/app/Actions/Buddy/BuddyTitleAction.ts +49 -0
  38. package/app/Actions/Buddy/CommandsAction.ts +802 -0
  39. package/app/Actions/Buddy/JobCancelAction.ts +32 -0
  40. package/app/Actions/Buddy/JobRetryAction.ts +49 -0
  41. package/app/Actions/Buddy/JobsListAction.ts +141 -0
  42. package/app/Actions/Buddy/ScheduleListAction.ts +52 -0
  43. package/app/Actions/Buddy/VersionsAction.ts +12 -0
  44. package/app/Actions/Cms/AuthorDestroyAction.ts +21 -0
  45. package/app/Actions/Cms/AuthorIndexAction.ts +14 -0
  46. package/app/Actions/Cms/AuthorShowAction.ts +19 -0
  47. package/app/Actions/Cms/AuthorStoreAction.ts +20 -0
  48. package/app/Actions/Cms/AuthorUpdateAction.ts +24 -0
  49. package/app/Actions/Cms/CategorizableDestroyAction.ts +16 -0
  50. package/app/Actions/Cms/CategorizableIndexAction.ts +14 -0
  51. package/app/Actions/Cms/CategorizableShowAction.ts +16 -0
  52. package/app/Actions/Cms/CategorizableStoreAction.ts +42 -0
  53. package/app/Actions/Cms/CategorizableUpdateAction.ts +38 -0
  54. package/app/Actions/Cms/CommentDestroyAction.ts +16 -0
  55. package/app/Actions/Cms/CommentIndexAction.ts +17 -0
  56. package/app/Actions/Cms/CommentShowAction.ts +16 -0
  57. package/app/Actions/Cms/CommentStoreAction.ts +39 -0
  58. package/app/Actions/Cms/CommentUpdateAction.ts +37 -0
  59. package/app/Actions/Cms/PageDestroyAction.ts +16 -0
  60. package/app/Actions/Cms/PageIndexAction.ts +14 -0
  61. package/app/Actions/Cms/PageStoreAction.ts +31 -0
  62. package/app/Actions/Cms/PageUpdateAction.ts +27 -0
  63. package/app/Actions/Cms/PostDestroyAction.ts +17 -0
  64. package/app/Actions/Cms/PostIndexAction.ts +14 -0
  65. package/app/Actions/Cms/PostShowAction.ts +16 -0
  66. package/app/Actions/Cms/PostStoreAction.ts +37 -0
  67. package/app/Actions/Cms/PostUpdateAction.ts +32 -0
  68. package/app/Actions/Cms/PostViewsUpdateAction.ts +34 -0
  69. package/app/Actions/Cms/RssFeedAction.ts +59 -0
  70. package/app/Actions/Cms/SitemapAction.ts +60 -0
  71. package/app/Actions/Cms/TaggableDestroyAction.ts +16 -0
  72. package/app/Actions/Cms/TaggableIndexAction.ts +14 -0
  73. package/app/Actions/Cms/TaggableShowAction.ts +16 -0
  74. package/app/Actions/Cms/TaggableStoreAction.ts +36 -0
  75. package/app/Actions/Cms/TaggableUpdateAction.ts +37 -0
  76. package/app/Actions/Commerce/CouponDestroyAction.ts +18 -0
  77. package/app/Actions/Commerce/CouponIndexAction.ts +16 -0
  78. package/app/Actions/Commerce/CouponShowAction.ts +18 -0
  79. package/app/Actions/Commerce/CouponStoreAction.ts +21 -0
  80. package/app/Actions/Commerce/CouponUpdateAction.ts +31 -0
  81. package/app/Actions/Commerce/CustomerDestroyAction.ts +16 -0
  82. package/app/Actions/Commerce/CustomerIndexAction.ts +15 -0
  83. package/app/Actions/Commerce/CustomerShowAction.ts +18 -0
  84. package/app/Actions/Commerce/CustomerStoreAction.ts +29 -0
  85. package/app/Actions/Commerce/CustomerUpdateAction.ts +27 -0
  86. package/app/Actions/Commerce/DriverDestroyAction.ts +18 -0
  87. package/app/Actions/Commerce/GiftCardDestroyAction.ts +18 -0
  88. package/app/Actions/Commerce/GiftCardIndexAction.ts +16 -0
  89. package/app/Actions/Commerce/GiftCardShowAction.ts +18 -0
  90. package/app/Actions/Commerce/GiftCardStatsAction.ts +30 -0
  91. package/app/Actions/Commerce/GiftCardStoreAction.ts +35 -0
  92. package/app/Actions/Commerce/GiftCardUpdateAction.ts +26 -0
  93. package/app/Actions/Commerce/GiftCardUpdateBalanceAction.ts +36 -0
  94. package/app/Actions/Commerce/OrderDestroyAction.ts +18 -0
  95. package/app/Actions/Commerce/OrderExportAction.ts +15 -0
  96. package/app/Actions/Commerce/OrderIndexAction.ts +15 -0
  97. package/app/Actions/Commerce/OrderShowAction.ts +18 -0
  98. package/app/Actions/Commerce/OrderStoreAction.ts +32 -0
  99. package/app/Actions/Commerce/OrderUpdateAction.ts +34 -0
  100. package/app/Actions/Commerce/PaymentDestroyAction.ts +16 -0
  101. package/app/Actions/Commerce/PaymentFetchStatsAction.ts +31 -0
  102. package/app/Actions/Commerce/PaymentIndexAction.ts +15 -0
  103. package/app/Actions/Commerce/PaymentMonthlyTrendsAction.ts +21 -0
  104. package/app/Actions/Commerce/PaymentShowAction.ts +17 -0
  105. package/app/Actions/Commerce/PaymentStoreAction.ts +24 -0
  106. package/app/Actions/Commerce/PaymentUpdateAction.ts +35 -0
  107. package/app/Actions/Commerce/PrintDeviceDestroyAction.ts +18 -0
  108. package/app/Actions/Commerce/PrintDeviceIndexAction.ts +14 -0
  109. package/app/Actions/Commerce/PrintDeviceShowAction.ts +17 -0
  110. package/app/Actions/Commerce/PrintDeviceStoreAction.ts +27 -0
  111. package/app/Actions/Commerce/PrintDeviceUpdateAction.ts +27 -0
  112. package/app/Actions/Commerce/Product/ManufacturerDestroyAction.ts +20 -0
  113. package/app/Actions/Commerce/Product/ManufacturerIndexAction.ts +16 -0
  114. package/app/Actions/Commerce/Product/ManufacturerShowAction.ts +18 -0
  115. package/app/Actions/Commerce/Product/ManufacturerStoreAction.ts +14 -0
  116. package/app/Actions/Commerce/Product/ProductCategoryIndexAction.ts +16 -0
  117. package/app/Actions/Commerce/Product/ProductCategoryStoreAction.ts +16 -0
  118. package/app/Actions/Commerce/Product/ProductDestroyAction.ts +16 -0
  119. package/app/Actions/Commerce/Product/ProductIndexAction.ts +14 -0
  120. package/app/Actions/Commerce/Product/ProductManufacturerDestroyAction.ts +18 -0
  121. package/app/Actions/Commerce/Product/ProductManufacturerIndexAction.ts +14 -0
  122. package/app/Actions/Commerce/Product/ProductManufacturerShowAction.ts +16 -0
  123. package/app/Actions/Commerce/Product/ProductManufacturerStoreAction.ts +14 -0
  124. package/app/Actions/Commerce/Product/ProductManufacturerUpdateAction.ts +18 -0
  125. package/app/Actions/Commerce/Product/ProductShowAction.ts +18 -0
  126. package/app/Actions/Commerce/Product/ProductStoreAction.ts +17 -0
  127. package/app/Actions/Commerce/Product/ProductUnitDestroyAction.ts +18 -0
  128. package/app/Actions/Commerce/Product/ProductUnitIndexAction.ts +14 -0
  129. package/app/Actions/Commerce/Product/ProductUnitShowAction.ts +18 -0
  130. package/app/Actions/Commerce/Product/ProductUnitStoreAction.ts +15 -0
  131. package/app/Actions/Commerce/Product/ProductUpdateAction.ts +17 -0
  132. package/app/Actions/Commerce/Product/ProductVariantDestroyAction.ts +18 -0
  133. package/app/Actions/Commerce/Product/ProductVariantIndexAction.ts +14 -0
  134. package/app/Actions/Commerce/Product/ProductVariantShowAction.ts +17 -0
  135. package/app/Actions/Commerce/Product/ProductVariantStoreAction.ts +14 -0
  136. package/app/Actions/Commerce/Product/ProductVariantUpdateAction.ts +16 -0
  137. package/app/Actions/Commerce/ReceiptDestroyAction.ts +18 -0
  138. package/app/Actions/Commerce/ReceiptIndexAction.ts +14 -0
  139. package/app/Actions/Commerce/ReceiptShowAction.ts +18 -0
  140. package/app/Actions/Commerce/ReceiptStoreAction.ts +28 -0
  141. package/app/Actions/Commerce/ReceiptUpdateAction.ts +30 -0
  142. package/app/Actions/Commerce/ReviewIndexAction.ts +14 -0
  143. package/app/Actions/Commerce/ReviewShowAction.ts +16 -0
  144. package/app/Actions/Commerce/ReviewStoreAction.ts +26 -0
  145. package/app/Actions/Commerce/ReviewUpdateAction.ts +28 -0
  146. package/app/Actions/Commerce/Shipping/DeliveryRouteDestroyAction.ts +18 -0
  147. package/app/Actions/Commerce/Shipping/DeliveryRouteIndexAction.ts +16 -0
  148. package/app/Actions/Commerce/Shipping/DeliveryRouteShowAction.ts +18 -0
  149. package/app/Actions/Commerce/Shipping/DeliveryRouteStoreAction.ts +16 -0
  150. package/app/Actions/Commerce/Shipping/DeliveryRouteUpdateAction.ts +18 -0
  151. package/app/Actions/Commerce/Shipping/DigitalDeliveryDestroyAction.ts +18 -0
  152. package/app/Actions/Commerce/Shipping/DigitalDeliveryIndexAction.ts +16 -0
  153. package/app/Actions/Commerce/Shipping/DigitalDeliveryShowAction.ts +18 -0
  154. package/app/Actions/Commerce/Shipping/DigitalDeliveryStoreAction.ts +18 -0
  155. package/app/Actions/Commerce/Shipping/DigitalDeliveryUpdateAction.ts +18 -0
  156. package/app/Actions/Commerce/Shipping/DriverIndexAction.ts +16 -0
  157. package/app/Actions/Commerce/Shipping/DriverShowAction.ts +18 -0
  158. package/app/Actions/Commerce/Shipping/DriverStoreAction.ts +16 -0
  159. package/app/Actions/Commerce/Shipping/DriverUpdateAction.ts +18 -0
  160. package/app/Actions/Commerce/Shipping/LicenseKeyDestroyAction.ts +20 -0
  161. package/app/Actions/Commerce/Shipping/LicenseKeyIndexAction.ts +16 -0
  162. package/app/Actions/Commerce/Shipping/LicenseKeyShowAction.ts +18 -0
  163. package/app/Actions/Commerce/Shipping/LicenseKeyStoreAction.ts +18 -0
  164. package/app/Actions/Commerce/Shipping/LicenseKeyUpdateAction.ts +18 -0
  165. package/app/Actions/Commerce/Shipping/ShippingMethodDestroyAction.ts +16 -0
  166. package/app/Actions/Commerce/Shipping/ShippingMethodIndexAction.ts +14 -0
  167. package/app/Actions/Commerce/Shipping/ShippingMethodShowAction.ts +16 -0
  168. package/app/Actions/Commerce/Shipping/ShippingMethodStoreAction.ts +16 -0
  169. package/app/Actions/Commerce/Shipping/ShippingMethodUpdateAction.ts +15 -0
  170. package/app/Actions/Commerce/Shipping/ShippingRateDestroyAction.ts +16 -0
  171. package/app/Actions/Commerce/Shipping/ShippingRateIndexAction.ts +14 -0
  172. package/app/Actions/Commerce/Shipping/ShippingRateShowAction.ts +16 -0
  173. package/app/Actions/Commerce/Shipping/ShippingRateStoreAction.ts +16 -0
  174. package/app/Actions/Commerce/Shipping/ShippingRateUpdateAction.ts +17 -0
  175. package/app/Actions/Commerce/Shipping/ShippingZoneDestroyAction.ts +16 -0
  176. package/app/Actions/Commerce/Shipping/ShippingZoneIndexAction.ts +14 -0
  177. package/app/Actions/Commerce/Shipping/ShippingZoneShowAction.ts +16 -0
  178. package/app/Actions/Commerce/Shipping/ShippingZoneStoreAction.ts +16 -0
  179. package/app/Actions/Commerce/Shipping/ShippingZoneUpdateAction.ts +15 -0
  180. package/app/Actions/Commerce/TaxRateDestroyAction.ts +16 -0
  181. package/app/Actions/Commerce/TaxRateIndexAction.ts +14 -0
  182. package/app/Actions/Commerce/TaxRateShowAction.ts +17 -0
  183. package/app/Actions/Commerce/TaxRateStoreAction.ts +24 -0
  184. package/app/Actions/Commerce/TaxRateUpdateAction.ts +24 -0
  185. package/app/Actions/Commerce/WaitlistProductAnalyticsAction.ts +29 -0
  186. package/app/Actions/Commerce/WaitlistProductDestroyAction.ts +16 -0
  187. package/app/Actions/Commerce/WaitlistProductIndexAction.ts +14 -0
  188. package/app/Actions/Commerce/WaitlistProductQuantityDistributionAction.ts +32 -0
  189. package/app/Actions/Commerce/WaitlistProductShowAction.ts +16 -0
  190. package/app/Actions/Commerce/WaitlistProductStatusAction.ts +37 -0
  191. package/app/Actions/Commerce/WaitlistProductStoreAction.ts +27 -0
  192. package/app/Actions/Commerce/WaitlistProductTimeSeriesAction.ts +25 -0
  193. package/app/Actions/Commerce/WaitlistProductUpdateAction.ts +29 -0
  194. package/app/Actions/Commerce/WaitlistRestaurantDashboardAction.ts +29 -0
  195. package/app/Actions/Commerce/WaitlistRestaurantDestroyAction.ts +16 -0
  196. package/app/Actions/Commerce/WaitlistRestaurantIndexAction.ts +14 -0
  197. package/app/Actions/Commerce/WaitlistRestaurantShowAction.ts +16 -0
  198. package/app/Actions/Commerce/WaitlistRestaurantStoreAction.ts +31 -0
  199. package/app/Actions/Commerce/WaitlistRestaurantUpdateAction.ts +33 -0
  200. package/app/Actions/ContactAction.ts +72 -0
  201. package/app/Actions/Dashboard/Actions/CreateAction.ts +11 -0
  202. package/app/Actions/Dashboard/Actions/GetActionCount.ts +12 -0
  203. package/app/Actions/Dashboard/Actions/GetActions.ts +19 -0
  204. package/app/Actions/Dashboard/Analytics/BlogAnalyticsAction.ts +58 -0
  205. package/app/Actions/Dashboard/Analytics/BrowserAnalyticsAction.ts +42 -0
  206. package/app/Actions/Dashboard/Analytics/CommerceAnalyticsAction.ts +64 -0
  207. package/app/Actions/Dashboard/Analytics/CountryAnalyticsAction.ts +41 -0
  208. package/app/Actions/Dashboard/Analytics/DeviceAnalyticsAction.ts +58 -0
  209. package/app/Actions/Dashboard/Analytics/EventAnalyticsAction.ts +90 -0
  210. package/app/Actions/Dashboard/Analytics/MarketingAnalyticsAction.ts +76 -0
  211. package/app/Actions/Dashboard/Analytics/PageAnalyticsAction.ts +45 -0
  212. package/app/Actions/Dashboard/Analytics/ReferrerAnalyticsAction.ts +72 -0
  213. package/app/Actions/Dashboard/Analytics/SalesAnalyticsAction.ts +73 -0
  214. package/app/Actions/Dashboard/Analytics/WebAnalyticsAction.ts +114 -0
  215. package/app/Actions/Dashboard/Auth/MeAction.ts +84 -0
  216. package/app/Actions/Dashboard/BuddyDashboardAction.ts +34 -0
  217. package/app/Actions/Dashboard/Ci/RepoRunJobsAction.ts +60 -0
  218. package/app/Actions/Dashboard/Ci/RepoRunsAction.ts +67 -0
  219. package/app/Actions/Dashboard/Ci/RunnerHistoryAction.ts +58 -0
  220. package/app/Actions/Dashboard/Ci/StatusAction.ts +73 -0
  221. package/app/Actions/Dashboard/Ci/failure-notifier.ts +214 -0
  222. package/app/Actions/Dashboard/Ci/runner-pressure-monitor.ts +259 -0
  223. package/app/Actions/Dashboard/Cloud/CloudIndexAction.ts +61 -0
  224. package/app/Actions/Dashboard/Commands/CreateCommand.ts +11 -0
  225. package/app/Actions/Dashboard/Commands/GetAverageCommandTime.ts +12 -0
  226. package/app/Actions/Dashboard/Commands/GetCommandCount.ts +12 -0
  227. package/app/Actions/Dashboard/Commands/GetCommandSuccessRate.ts +12 -0
  228. package/app/Actions/Dashboard/Commands/GetCommands.ts +12 -0
  229. package/app/Actions/Dashboard/Commerce/CommerceCouponsAction.ts +48 -0
  230. package/app/Actions/Dashboard/Commerce/CommerceCustomersAction.ts +48 -0
  231. package/app/Actions/Dashboard/Commerce/CommerceDashboardAction.ts +98 -0
  232. package/app/Actions/Dashboard/Commerce/CommerceDeliveryAction.ts +65 -0
  233. package/app/Actions/Dashboard/Commerce/CommerceGiftCardsAction.ts +48 -0
  234. package/app/Actions/Dashboard/Commerce/CommerceOrdersAction.ts +51 -0
  235. package/app/Actions/Dashboard/Commerce/CommercePaymentsAction.ts +59 -0
  236. package/app/Actions/Dashboard/Commerce/CommerceProductsAction.ts +50 -0
  237. package/app/Actions/Dashboard/Commerce/CommerceTaxesAction.ts +46 -0
  238. package/app/Actions/Dashboard/Commerce/PosIndexAction.ts +57 -0
  239. package/app/Actions/Dashboard/Commerce/ReviewIndexAction.ts +51 -0
  240. package/app/Actions/Dashboard/Content/AuthorIndexAction.ts +51 -0
  241. package/app/Actions/Dashboard/Content/CategoryIndexAction.ts +27 -0
  242. package/app/Actions/Dashboard/Content/CommentIndexAction.ts +41 -0
  243. package/app/Actions/Dashboard/Content/ContentDashboardAction.ts +54 -0
  244. package/app/Actions/Dashboard/Content/FileIndexAction.ts +24 -0
  245. package/app/Actions/Dashboard/Content/PageIndexAction.ts +25 -0
  246. package/app/Actions/Dashboard/Content/PostIndexAction.ts +102 -0
  247. package/app/Actions/Dashboard/Content/SeoIndexAction.ts +17 -0
  248. package/app/Actions/Dashboard/Content/TagIndexAction.ts +23 -0
  249. package/app/Actions/Dashboard/CreateDnsRecords.ts +11 -0
  250. package/app/Actions/Dashboard/CreateMailbox.ts +11 -0
  251. package/app/Actions/Dashboard/DashboardActivityAction.ts +58 -0
  252. package/app/Actions/Dashboard/DashboardHealthAction.ts +52 -0
  253. package/app/Actions/Dashboard/DashboardHomeAction.ts +83 -0
  254. package/app/Actions/Dashboard/DashboardStatsAction.ts +48 -0
  255. package/app/Actions/Dashboard/Data/AccessTokenIndexAction.ts +65 -0
  256. package/app/Actions/Dashboard/Data/ActivityIndexAction.ts +28 -0
  257. package/app/Actions/Dashboard/Data/DataDashboardAction.ts +67 -0
  258. package/app/Actions/Dashboard/Data/SubscriberIndexAction.ts +48 -0
  259. package/app/Actions/Dashboard/Data/TeamIndexAction.ts +43 -0
  260. package/app/Actions/Dashboard/Data/UserIndexAction.ts +48 -0
  261. package/app/Actions/Dashboard/Deployments/CreateDeployment.ts +11 -0
  262. package/app/Actions/Dashboard/Deployments/GetAverageDeploymentTime.ts +15 -0
  263. package/app/Actions/Dashboard/Deployments/GetDeployScript.ts +12 -0
  264. package/app/Actions/Dashboard/Deployments/GetDeploymentCount.ts +12 -0
  265. package/app/Actions/Dashboard/Deployments/GetDeploymentLiveTerminalOutput.ts +12 -0
  266. package/app/Actions/Dashboard/Deployments/GetDeployments.ts +20 -0
  267. package/app/Actions/Dashboard/Deployments/GetRecentDeployments.ts +12 -0
  268. package/app/Actions/Dashboard/Deployments/UpdateDeployScript.ts +11 -0
  269. package/app/Actions/Dashboard/GetDnsRecords.ts +12 -0
  270. package/app/Actions/Dashboard/GetEmailInboxes.ts +12 -0
  271. package/app/Actions/Dashboard/GetProjects.ts +13 -0
  272. package/app/Actions/Dashboard/GetRecentCommits.ts +13 -0
  273. package/app/Actions/Dashboard/Inbox/InboxIndexAction.ts +144 -0
  274. package/app/Actions/Dashboard/Inbox/InboxShowAction.ts +89 -0
  275. package/app/Actions/Dashboard/Infrastructure/CommandIndexAction.ts +18 -0
  276. package/app/Actions/Dashboard/Infrastructure/DnsIndexAction.ts +101 -0
  277. package/app/Actions/Dashboard/Infrastructure/EnvironmentIndexAction.ts +67 -0
  278. package/app/Actions/Dashboard/Infrastructure/InsightsAction.ts +29 -0
  279. package/app/Actions/Dashboard/Infrastructure/LogIndexAction.ts +50 -0
  280. package/app/Actions/Dashboard/Infrastructure/MailboxIndexAction.ts +85 -0
  281. package/app/Actions/Dashboard/Infrastructure/PermissionIndexAction.ts +54 -0
  282. package/app/Actions/Dashboard/Infrastructure/RequestIndexAction.ts +44 -0
  283. package/app/Actions/Dashboard/Infrastructure/ServerIndexAction.ts +101 -0
  284. package/app/Actions/Dashboard/Jobs/CreateJob.ts +11 -0
  285. package/app/Actions/Dashboard/Jobs/GetAverageJobTime.ts +12 -0
  286. package/app/Actions/Dashboard/Jobs/GetJobHistory.ts +12 -0
  287. package/app/Actions/Dashboard/Jobs/GetJobs.ts +11 -0
  288. package/app/Actions/Dashboard/Jobs/GetJobsPerMinute.ts +12 -0
  289. package/app/Actions/Dashboard/Jobs/JobIndexAction.ts +136 -0
  290. package/app/Actions/Dashboard/Jobs/JobRetryAction.ts +23 -0
  291. package/app/Actions/Dashboard/Jobs/JobStatsAction.ts +49 -0
  292. package/app/Actions/Dashboard/Kanban/BoardDestroyAction.ts +84 -0
  293. package/app/Actions/Dashboard/Kanban/BoardShowAction.ts +215 -0
  294. package/app/Actions/Dashboard/Kanban/BoardStoreAction.ts +98 -0
  295. package/app/Actions/Dashboard/Kanban/BoardUpdateAction.ts +96 -0
  296. package/app/Actions/Dashboard/Kanban/BoardsIndexAction.ts +81 -0
  297. package/app/Actions/Dashboard/Kanban/BoardsReorderAction.ts +80 -0
  298. package/app/Actions/Dashboard/Kanban/CardAssigneesSyncAction.ts +103 -0
  299. package/app/Actions/Dashboard/Kanban/CardCommentDestroyAction.ts +33 -0
  300. package/app/Actions/Dashboard/Kanban/CardCommentStoreAction.ts +82 -0
  301. package/app/Actions/Dashboard/Kanban/CardDestroyAction.ts +48 -0
  302. package/app/Actions/Dashboard/Kanban/CardLabelsSyncAction.ts +103 -0
  303. package/app/Actions/Dashboard/Kanban/CardShowAction.ts +122 -0
  304. package/app/Actions/Dashboard/Kanban/CardStoreAction.ts +112 -0
  305. package/app/Actions/Dashboard/Kanban/CardUpdateAction.ts +91 -0
  306. package/app/Actions/Dashboard/Kanban/CardsReorderAction.ts +148 -0
  307. package/app/Actions/Dashboard/Kanban/ColumnDestroyAction.ts +59 -0
  308. package/app/Actions/Dashboard/Kanban/ColumnStoreAction.ts +94 -0
  309. package/app/Actions/Dashboard/Kanban/ColumnUpdateAction.ts +89 -0
  310. package/app/Actions/Dashboard/Kanban/ColumnsReorderAction.ts +85 -0
  311. package/app/Actions/Dashboard/Kanban/LabelDestroyAction.ts +41 -0
  312. package/app/Actions/Dashboard/Kanban/LabelStoreAction.ts +70 -0
  313. package/app/Actions/Dashboard/Kanban/LabelUpdateAction.ts +83 -0
  314. package/app/Actions/Dashboard/Kanban/UsersListAction.ts +36 -0
  315. package/app/Actions/Dashboard/Library/CreateComponent.ts +11 -0
  316. package/app/Actions/Dashboard/Library/CreateFunction.ts +11 -0
  317. package/app/Actions/Dashboard/Library/DependencyIndexAction.ts +92 -0
  318. package/app/Actions/Dashboard/Library/GetAverageReleaseTime.ts +12 -0
  319. package/app/Actions/Dashboard/Library/GetComponents.ts +24 -0
  320. package/app/Actions/Dashboard/Library/GetComponentsDownloadCount.ts +12 -0
  321. package/app/Actions/Dashboard/Library/GetDownloadCount.ts +12 -0
  322. package/app/Actions/Dashboard/Library/GetFunctions.ts +22 -0
  323. package/app/Actions/Dashboard/Library/GetFunctionsDownloadCount.ts +12 -0
  324. package/app/Actions/Dashboard/Library/GetReleaseCount.ts +12 -0
  325. package/app/Actions/Dashboard/Library/GetReleases.ts +28 -0
  326. package/app/Actions/Dashboard/Library/PackageIndexAction.ts +26 -0
  327. package/app/Actions/Dashboard/Marketing/CampaignIndexAction.ts +45 -0
  328. package/app/Actions/Dashboard/Marketing/ListIndexAction.ts +43 -0
  329. package/app/Actions/Dashboard/Marketing/SocialPostIndexAction.ts +47 -0
  330. package/app/Actions/Dashboard/Models/GetModels.ts +39 -0
  331. package/app/Actions/Dashboard/Models/GetSubscriberCount.ts +12 -0
  332. package/app/Actions/Dashboard/Models/GetUserCount.ts +12 -0
  333. package/app/Actions/Dashboard/Models/ModelShowAction.ts +131 -0
  334. package/app/Actions/Dashboard/Models/ModelsIndexAction.ts +169 -0
  335. package/app/Actions/Dashboard/Notifications/CreateNotification.ts +11 -0
  336. package/app/Actions/Dashboard/Notifications/GetAverageNotificationTime.ts +12 -0
  337. package/app/Actions/Dashboard/Notifications/GetNotificationCount.ts +12 -0
  338. package/app/Actions/Dashboard/Notifications/GetNotificationDeliveryRate.ts +12 -0
  339. package/app/Actions/Dashboard/Notifications/GetNotificationHistory.ts +12 -0
  340. package/app/Actions/Dashboard/Notifications/GetNotifications.ts +12 -0
  341. package/app/Actions/Dashboard/Notifications/NotificationDashboardAction.ts +43 -0
  342. package/app/Actions/Dashboard/Queries/QueryIndexAction.ts +22 -0
  343. package/app/Actions/Dashboard/Queue/QueueRetryFailedAction.ts +22 -0
  344. package/app/Actions/Dashboard/Queue/QueueStatsAction.ts +98 -0
  345. package/app/Actions/Dashboard/Queue/QueueWorkersAction.ts +46 -0
  346. package/app/Actions/Dashboard/Rbac/PermissionDestroyAction.ts +33 -0
  347. package/app/Actions/Dashboard/Rbac/PermissionStoreAction.ts +53 -0
  348. package/app/Actions/Dashboard/Rbac/PermissionsIndexAction.ts +34 -0
  349. package/app/Actions/Dashboard/Rbac/RoleDestroyAction.ts +35 -0
  350. package/app/Actions/Dashboard/Rbac/RolePermissionsShowAction.ts +45 -0
  351. package/app/Actions/Dashboard/Rbac/RolePermissionsSyncAction.ts +63 -0
  352. package/app/Actions/Dashboard/Rbac/RoleStoreAction.ts +58 -0
  353. package/app/Actions/Dashboard/Rbac/RolesIndexAction.ts +36 -0
  354. package/app/Actions/Dashboard/Rbac/UserRolesShowAction.ts +40 -0
  355. package/app/Actions/Dashboard/Rbac/UserRolesSyncAction.ts +65 -0
  356. package/app/Actions/Dashboard/Rbac/UsersListAction.ts +39 -0
  357. package/app/Actions/Dashboard/Realtime/RealtimeStatsAction.ts +50 -0
  358. package/app/Actions/Dashboard/Releases/ReleaseIndexAction.ts +21 -0
  359. package/app/Actions/Dashboard/Requests/GetAverageRequestTime.ts +12 -0
  360. package/app/Actions/Dashboard/Requests/GetRequestCount.ts +12 -0
  361. package/app/Actions/Dashboard/Requests/GetRequestSuccessRate.ts +12 -0
  362. package/app/Actions/Dashboard/Requests/GetRequests.ts +12 -0
  363. package/app/Actions/Dashboard/Search/GlobalSearchAction.ts +26 -0
  364. package/app/Actions/Dashboard/ServiceHealthAction.ts +243 -0
  365. package/app/Actions/Dashboard/Settings/MailSettingsGetAction.ts +20 -0
  366. package/app/Actions/Dashboard/Settings/MailSettingsUpdateAction.ts +10 -0
  367. package/app/Actions/Dashboard/Settings/SettingsIndexAction.ts +40 -0
  368. package/app/Actions/Dashboard/Settings/UpdateAiConfig.ts +27 -0
  369. package/app/Actions/Dashboard/Settings/UpdateAnalyticsConfig.ts +38 -0
  370. package/app/Actions/Dashboard/Settings/UpdateAppConfig.ts +38 -0
  371. package/app/Actions/Dashboard/Settings/UpdateCacheConfig.ts +11 -0
  372. package/app/Actions/Dashboard/Settings/UpdateCliConfig.ts +11 -0
  373. package/app/Actions/Dashboard/Settings/UpdateCloudConfig.ts +38 -0
  374. package/app/Actions/Dashboard/Settings/UpdateDatabaseConfig.ts +38 -0
  375. package/app/Actions/Dashboard/Settings/UpdateDnsConfig.ts +38 -0
  376. package/app/Actions/Dashboard/Settings/UpdateDocsConfig.ts +11 -0
  377. package/app/Actions/Dashboard/Settings/UpdateEmailConfig.ts +38 -0
  378. package/app/Actions/Dashboard/Settings/UpdateEnvConfig.ts +11 -0
  379. package/app/Actions/Dashboard/Settings/UpdateErrorsConfig.ts +11 -0
  380. package/app/Actions/Dashboard/Settings/UpdateFileSystemsConfig.ts +11 -0
  381. package/app/Actions/Dashboard/Settings/UpdateGitConfig.ts +11 -0
  382. package/app/Actions/Dashboard/Settings/UpdateHashingConfig.ts +11 -0
  383. package/app/Actions/Dashboard/Settings/UpdateLibraryConfig.ts +11 -0
  384. package/app/Actions/Dashboard/Settings/UpdateLoggerConfig.ts +11 -0
  385. package/app/Actions/Dashboard/Settings/UpdateNotificationConfig.ts +11 -0
  386. package/app/Actions/Dashboard/Settings/UpdatePaymentConfig.ts +11 -0
  387. package/app/Actions/Dashboard/Settings/UpdatePortsConfig.ts +38 -0
  388. package/app/Actions/Dashboard/Settings/UpdateQueueConfig.ts +11 -0
  389. package/app/Actions/Dashboard/Settings/UpdateSearchEngineConfig.ts +11 -0
  390. package/app/Actions/Dashboard/Settings/UpdateSecurityConfig.ts +38 -0
  391. package/app/Actions/Dashboard/Settings/UpdateServicesConfig.ts +38 -0
  392. package/app/Actions/Dashboard/Settings/UpdateStorageConfig.ts +11 -0
  393. package/app/Actions/Dashboard/Settings/UpdateTeamConfig.ts +11 -0
  394. package/app/Actions/Dashboard/Settings/UpdateUiConfig.ts +11 -0
  395. package/app/Actions/HealthAction.ts +112 -0
  396. package/app/Actions/InstallAction.ts +83 -0
  397. package/app/Actions/Locale/SetLocaleAction.ts +51 -0
  398. package/app/Actions/LogAction.ts +42 -0
  399. package/app/Actions/Logs/LogFetchStatsAction.ts +50 -0
  400. package/app/Actions/Logs/LogIndexOrmAction.ts +13 -0
  401. package/app/Actions/Logs/LogShowOrmAction.ts +17 -0
  402. package/app/Actions/Logs/LogStoreOrmAction.ts +16 -0
  403. package/app/Actions/Logs/LogUpdateOrmAction.ts +20 -0
  404. package/app/Actions/Monitoring/ErrorDestroyAction.ts +25 -0
  405. package/app/Actions/Monitoring/ErrorGroupAction.ts +21 -0
  406. package/app/Actions/Monitoring/ErrorIgnoreAction.ts +25 -0
  407. package/app/Actions/Monitoring/ErrorIndexAction.ts +14 -0
  408. package/app/Actions/Monitoring/ErrorResolveAction.ts +25 -0
  409. package/app/Actions/Monitoring/ErrorShowAction.ts +19 -0
  410. package/app/Actions/Monitoring/ErrorStatsAction.ts +14 -0
  411. package/app/Actions/Monitoring/ErrorTimelineAction.ts +14 -0
  412. package/app/Actions/Monitoring/ErrorUnresolveAction.ts +25 -0
  413. package/app/Actions/NotifyUser.ts +10 -0
  414. package/app/Actions/Password/PasswordResetAction.ts +54 -0
  415. package/app/Actions/Password/SendPasswordResetEmailAction.ts +66 -0
  416. package/app/Actions/Password/VerifyResetTokenAction.ts +27 -0
  417. package/app/Actions/Payment/CancelSubscriptionAction.ts +20 -0
  418. package/app/Actions/Payment/CreateCheckoutAction.ts +28 -0
  419. package/app/Actions/Payment/CreateInvoiceSubscription.ts +18 -0
  420. package/app/Actions/Payment/CreatePaymentIntentAction.ts +31 -0
  421. package/app/Actions/Payment/CreateSetupIntentAction.ts +20 -0
  422. package/app/Actions/Payment/CreateSubscriptionAction.ts +23 -0
  423. package/app/Actions/Payment/DeleteDefaultPaymentAction.ts +18 -0
  424. package/app/Actions/Payment/FetchActiveSubscriptionAction.ts +18 -0
  425. package/app/Actions/Payment/FetchDefaultPaymentMethodAction.ts +18 -0
  426. package/app/Actions/Payment/FetchPaymentCustomerAction.ts +18 -0
  427. package/app/Actions/Payment/FetchPaymentMethodsAction.ts +18 -0
  428. package/app/Actions/Payment/FetchProductAction.ts +15 -0
  429. package/app/Actions/Payment/FetchTransactionHistoryAction.ts +18 -0
  430. package/app/Actions/Payment/FetchUserSubscriptionsAction.ts +18 -0
  431. package/app/Actions/Payment/SetDefaultPaymentAction.ts +20 -0
  432. package/app/Actions/Payment/SetUserDefaultPaymentAction.ts +20 -0
  433. package/app/Actions/Payment/StorePaymentMethodAction.ts +20 -0
  434. package/app/Actions/Payment/StoreTransactionAction.ts +20 -0
  435. package/app/Actions/Payment/UpdateCustomerAction.ts +24 -0
  436. package/app/Actions/Payment/UpdateDefaultPaymentMethodAction.ts +18 -0
  437. package/app/Actions/Payment/UpdateSubscriptionAction.ts +22 -0
  438. package/app/Actions/Queue/FetchQueuesAction.ts +14 -0
  439. package/app/Actions/README.md +61 -0
  440. package/app/Actions/Realtime/FetchWebsocketsAction.ts +14 -0
  441. package/app/Actions/RobotsAction.ts +61 -0
  442. package/app/Actions/SendWelcomeEmail.ts +40 -0
  443. package/app/Actions/SitemapAction.ts +234 -0
  444. package/app/Actions/Storefront/AddToCartAction.ts +153 -0
  445. package/app/Actions/Storefront/CheckoutContactAction.ts +50 -0
  446. package/app/Actions/Storefront/CheckoutShippingAction.ts +61 -0
  447. package/app/Actions/Storefront/GetCartAction.ts +58 -0
  448. package/app/Actions/Storefront/PlaceOrderAction.ts +195 -0
  449. package/app/Actions/Storefront/SubmitReviewAction.ts +140 -0
  450. package/app/Actions/Storefront/UpdateCartItemAction.ts +83 -0
  451. package/app/Actions/Storefront/_shipping.ts +64 -0
  452. package/app/Actions/SubscriberEmailAction.ts +60 -0
  453. package/app/Actions/TestErrorAction.ts +163 -0
  454. package/app/Actions/UnsubscribeAction.ts +107 -0
  455. package/app/Actions/UploadTestAction.ts +57 -0
  456. package/app/Broadcasts/OrderShipped.ts +57 -0
  457. package/app/Commands/Inspire.ts +57 -0
  458. package/app/Commands/README.md +84 -0
  459. package/app/Commands.ts +38 -0
  460. package/app/Controllers/ComingSoonController.ts +9 -0
  461. package/app/Controllers/QueryController.ts +373 -0
  462. package/app/Events.ts +14 -0
  463. package/app/Gates.ts +107 -0
  464. package/app/Jobs/ExampleJob.ts +20 -0
  465. package/app/Jobs/ExampleTwoJob.ts +12 -0
  466. package/app/Jobs/PruneModelsJob.ts +61 -0
  467. package/app/Jobs/PruneQueryLogsJob.ts +51 -0
  468. package/app/Jobs/README.md +79 -0
  469. package/app/Jobs/SendCampaignJob.ts +201 -0
  470. package/app/Jobs/SendEmailJob.ts +52 -0
  471. package/app/Jobs/SendPasswordResetEmailJob.ts +44 -0
  472. package/app/Jobs/SyncSearchIndexJob.ts +64 -0
  473. package/app/Listener.ts +84 -0
  474. package/app/Listeners/Console.ts +22 -0
  475. package/app/Listeners/README.md +47 -0
  476. package/app/Mail/OrderConfirmation.ts +60 -0
  477. package/app/Mail/SubscriptionConfirmation.ts +41 -0
  478. package/app/Middleware/Abilities.ts +53 -0
  479. package/app/Middleware/Api.ts +26 -0
  480. package/app/Middleware/Auth.ts +59 -0
  481. package/app/Middleware/Can.ts +68 -0
  482. package/app/Middleware/Compress.ts +213 -0
  483. package/app/Middleware/Cors.ts +320 -0
  484. package/app/Middleware/Csrf.ts +224 -0
  485. package/app/Middleware/EnsureEmailIsVerified.ts +28 -0
  486. package/app/Middleware/Env.ts +24 -0
  487. package/app/Middleware/EnvDevelopment.ts +19 -0
  488. package/app/Middleware/EnvLocal.ts +19 -0
  489. package/app/Middleware/EnvNotDevelopment.ts +19 -0
  490. package/app/Middleware/EnvNotLocal.ts +19 -0
  491. package/app/Middleware/EnvNotProduction.ts +19 -0
  492. package/app/Middleware/EnvNotStaging.ts +19 -0
  493. package/app/Middleware/EnvProduction.ts +19 -0
  494. package/app/Middleware/EnvStaging.ts +19 -0
  495. package/app/Middleware/Guest.ts +25 -0
  496. package/app/Middleware/Logger.ts +20 -0
  497. package/app/Middleware/Maintenance.ts +36 -0
  498. package/app/Middleware/Permission.ts +42 -0
  499. package/app/Middleware/README.md +48 -0
  500. package/app/Middleware/Role.ts +42 -0
  501. package/app/Middleware/Signed.ts +31 -0
  502. package/app/Middleware/Team.ts +36 -0
  503. package/app/Middleware/Throttle.ts +96 -0
  504. package/app/Middleware.ts +35 -0
  505. package/app/Models/Activity.ts +94 -0
  506. package/app/Models/Board.ts +103 -0
  507. package/app/Models/BoardColumn.ts +87 -0
  508. package/app/Models/Campaign.ts +239 -0
  509. package/app/Models/CampaignSend.ts +107 -0
  510. package/app/Models/Card.ts +117 -0
  511. package/app/Models/CardComment.ts +68 -0
  512. package/app/Models/Comment.ts +108 -0
  513. package/app/Models/Content/Author.ts +104 -0
  514. package/app/Models/Content/Page.ts +99 -0
  515. package/app/Models/Content/Post.ts +144 -0
  516. package/app/Models/Deployment.ts +116 -0
  517. package/app/Models/EmailList.ts +126 -0
  518. package/app/Models/EmailListSubscriber.ts +91 -0
  519. package/app/Models/Error.ts +70 -0
  520. package/app/Models/FailedJob.ts +62 -0
  521. package/app/Models/Job.ts +63 -0
  522. package/app/Models/Label.ts +66 -0
  523. package/app/Models/Log.ts +110 -0
  524. package/app/Models/Notification.ts +118 -0
  525. package/app/Models/PaymentMethod.ts +98 -0
  526. package/app/Models/PaymentProduct.ts +91 -0
  527. package/app/Models/PaymentTransaction.ts +78 -0
  528. package/app/Models/README.md +31 -0
  529. package/app/Models/Release.ts +89 -0
  530. package/app/Models/Request.ts +114 -0
  531. package/app/Models/SocialPost.ts +136 -0
  532. package/app/Models/Subscriber.ts +89 -0
  533. package/app/Models/SubscriberEmail.ts +55 -0
  534. package/app/Models/Subscription.ts +153 -0
  535. package/app/Models/Tag.ts +82 -0
  536. package/app/Models/Team.ts +72 -0
  537. package/app/Models/User.ts +134 -0
  538. package/app/Models/commerce/Cart.ts +139 -0
  539. package/app/Models/commerce/CartItem.ts +137 -0
  540. package/app/Models/commerce/Category.ts +105 -0
  541. package/app/Models/commerce/Coupon.ts +181 -0
  542. package/app/Models/commerce/Customer.ts +132 -0
  543. package/app/Models/commerce/DeliveryRoute.ts +93 -0
  544. package/app/Models/commerce/DigitalDelivery.ts +105 -0
  545. package/app/Models/commerce/Driver.ts +97 -0
  546. package/app/Models/commerce/GiftCard.ts +191 -0
  547. package/app/Models/commerce/LicenseKey.ts +87 -0
  548. package/app/Models/commerce/LoyaltyPoint.ts +107 -0
  549. package/app/Models/commerce/LoyaltyReward.ts +124 -0
  550. package/app/Models/commerce/Manufacturer.ts +84 -0
  551. package/app/Models/commerce/Order.ts +142 -0
  552. package/app/Models/commerce/OrderItem.ts +51 -0
  553. package/app/Models/commerce/Payment.ts +163 -0
  554. package/app/Models/commerce/PrintDevice.ts +117 -0
  555. package/app/Models/commerce/Product.ts +148 -0
  556. package/app/Models/commerce/ProductUnit.ts +107 -0
  557. package/app/Models/commerce/ProductVariant.ts +106 -0
  558. package/app/Models/commerce/Receipt.ts +128 -0
  559. package/app/Models/commerce/Review.ts +140 -0
  560. package/app/Models/commerce/ShippingMethod.ts +97 -0
  561. package/app/Models/commerce/ShippingRate.ts +74 -0
  562. package/app/Models/commerce/ShippingZone.ts +111 -0
  563. package/app/Models/commerce/TaxRate.ts +114 -0
  564. package/app/Models/commerce/Transaction.ts +126 -0
  565. package/app/Models/commerce/WaitlistProduct.ts +149 -0
  566. package/app/Models/commerce/WaitlistRestaurant.ts +187 -0
  567. package/app/Models/realtime/Websocket.ts +77 -0
  568. package/app/Notifications/README.md +31 -0
  569. package/app/Notifications/Welcome.ts +32 -0
  570. package/app/Policies/PostPolicy.ts +131 -0
  571. package/app/README.md +23 -0
  572. package/app/Routes.ts +47 -0
  573. package/app/Scheduler.ts +28 -0
  574. package/app/Storefront/CartCookie.ts +109 -0
  575. package/package.json +3 -2
@@ -0,0 +1,40 @@
1
+ import { Action } from '@stacksjs/actions'
2
+ import { ask } from '@stacksjs/ai'
3
+ import { schema } from '@stacksjs/validation'
4
+
5
+ // TODO: this should have been auto-generated
6
+ interface Request {
7
+ question: string
8
+ }
9
+
10
+ export default new Action({
11
+ name: 'AiAskAction',
12
+ description: 'Ask AI',
13
+ method: 'POST',
14
+
15
+ validations: {
16
+ question: {
17
+ rule: schema.string().min(3).max(255),
18
+ message: 'The question must be between 3 and 255 characters long.',
19
+ },
20
+ },
21
+
22
+ async handle(request: Request) {
23
+ try {
24
+ const question = request.question
25
+
26
+ console.log(`Question received: ${question}`)
27
+
28
+ return {
29
+ data: await ask(question),
30
+ }
31
+ }
32
+ catch (error) {
33
+ console.error('Error:', error)
34
+
35
+ return {
36
+ error: 'An error occurred while processing your request.',
37
+ }
38
+ }
39
+ },
40
+ })
@@ -0,0 +1,40 @@
1
+ import { Action } from '@stacksjs/actions'
2
+ import { summarize } from '@stacksjs/ai'
3
+ import { schema } from '@stacksjs/validation'
4
+
5
+ // TODO: this should have been auto-generated
6
+ interface Request {
7
+ text: string
8
+ }
9
+
10
+ export default new Action({
11
+ name: 'AiSummaryAction',
12
+ description: 'Summary AI',
13
+ method: 'POST',
14
+
15
+ validations: {
16
+ text: {
17
+ rule: schema.string().min(3),
18
+ message: 'The text must be at least 3 characters long.',
19
+ },
20
+ },
21
+
22
+ async handle(request: Request) {
23
+ try {
24
+ const text = request.text
25
+
26
+ console.log(`Text received: ${text}`)
27
+
28
+ return {
29
+ data: await summarize(text),
30
+ }
31
+ }
32
+ catch (error) {
33
+ console.error('Error:', error)
34
+
35
+ return {
36
+ error: 'An error occurred while processing your request.',
37
+ }
38
+ }
39
+ },
40
+ })
@@ -0,0 +1,13 @@
1
+ import { Action } from '@stacksjs/actions'
2
+ import { response } from '@stacksjs/router'
3
+
4
+ export default new Action({
5
+ name: 'AuthUserAction',
6
+ description: 'Get the authenticated user',
7
+ method: 'GET',
8
+ async handle(request: RequestInstance) {
9
+ const user = await request.user()
10
+
11
+ return response.json(user)
12
+ },
13
+ })
@@ -0,0 +1,64 @@
1
+ import { Action } from '@stacksjs/actions'
2
+ import { createToken } from '@stacksjs/auth'
3
+ import { response } from '@stacksjs/router'
4
+ import { schema } from '@stacksjs/validation'
5
+
6
+ export default new Action({
7
+ name: 'CreateTokenAction',
8
+ description: 'Create a new personal access token with custom scopes',
9
+ method: 'POST',
10
+ async handle(request: RequestInstance) {
11
+ const user = await request.user()
12
+
13
+ if (!user) {
14
+ return response.unauthorized('Authentication required')
15
+ }
16
+
17
+ const name = request.get('name') || 'access-token'
18
+ const scopes = request.get('scopes') || ['*']
19
+ const expiresInMinutes = request.get('expires_in_minutes') || 60
20
+
21
+ await request.validate({
22
+ name: {
23
+ rule: schema.string().min(1).max(255).optional(),
24
+ message: {
25
+ min: 'Token name must be at least 1 character',
26
+ max: 'Token name must be at most 255 characters',
27
+ },
28
+ },
29
+ })
30
+
31
+ // Parse scopes - can be array or comma-separated string
32
+ let scopeArray: string[] = ['*']
33
+ if (Array.isArray(scopes)) {
34
+ scopeArray = scopes
35
+ }
36
+ else if (typeof scopes === 'string') {
37
+ scopeArray = scopes.split(',').map(s => s.trim()).filter(Boolean)
38
+ }
39
+
40
+ try {
41
+ const result = await createToken(user.id, name, scopeArray, {
42
+ expiresInMinutes: Number(expiresInMinutes) || 60,
43
+ withRefreshToken: true,
44
+ refreshExpiresInDays: 30,
45
+ })
46
+
47
+ return response.json({
48
+ access_token: result.plainTextToken,
49
+ refresh_token: result.refreshToken,
50
+ token_type: 'Bearer',
51
+ expires_in: result.expiresIn,
52
+ token: {
53
+ id: result.accessToken.id,
54
+ name: result.accessToken.name,
55
+ scopes: result.accessToken.scopes,
56
+ expires_at: result.accessToken.expiresAt?.toISOString() || null,
57
+ },
58
+ })
59
+ }
60
+ catch (error: any) {
61
+ return response.serverError(error.message || 'Failed to create token')
62
+ }
63
+ },
64
+ })
@@ -0,0 +1,37 @@
1
+ import { Action } from '@stacksjs/actions'
2
+ import { Auth, disableTwoFactor } from '@stacksjs/auth'
3
+ import { response } from '@stacksjs/router'
4
+ import { schema } from '@stacksjs/validation'
5
+
6
+ export default new Action({
7
+ name: 'DisableTwoFactorAction',
8
+ description: 'Disable TOTP 2FA for the authenticated user, after re-confirming their password',
9
+ method: 'POST',
10
+
11
+ validations: {
12
+ password: {
13
+ rule: schema.string().min(1),
14
+ message: 'Password is required to disable two-factor authentication.',
15
+ },
16
+ },
17
+
18
+ async handle(request: RequestInstance) {
19
+ const user = await request.user()
20
+ if (!user)
21
+ return response.unauthorized('Unauthorized')
22
+
23
+ const password = request.get('password')
24
+
25
+ // Disabling 2FA weakens the account — require the password again
26
+ // rather than trusting the bearer token alone (a stolen/leaked
27
+ // token shouldn't be enough to turn off the second factor it's
28
+ // meant to help guard against).
29
+ const confirmed = await Auth.validate({ email: user.email, password })
30
+ if (!confirmed)
31
+ return response.unauthorized('Incorrect password')
32
+
33
+ await disableTwoFactor(user.id as number)
34
+
35
+ return response.json({ enabled: false })
36
+ },
37
+ })
@@ -0,0 +1,37 @@
1
+ import { Action } from '@stacksjs/actions'
2
+ import { consumePendingTwoFactorSecret, enableTwoFactor } from '@stacksjs/auth'
3
+ import { response } from '@stacksjs/router'
4
+ import { schema } from '@stacksjs/validation'
5
+
6
+ export default new Action({
7
+ name: 'EnableTwoFactorAction',
8
+ description: 'Verify a TOTP setup code against the server-stashed pending secret and, if valid, enable 2FA',
9
+ method: 'POST',
10
+
11
+ validations: {
12
+ code: {
13
+ rule: schema.string().min(6).max(6),
14
+ message: 'Code must be a 6-digit TOTP code.',
15
+ },
16
+ },
17
+
18
+ async handle(request: RequestInstance) {
19
+ const user = await request.user()
20
+ if (!user)
21
+ return response.unauthorized('Unauthorized')
22
+
23
+ const code = request.get('code')
24
+
25
+ // The secret is never taken from the client — see
26
+ // GenerateTwoFactorSecretAction / two-factor.ts's doc comment.
27
+ const pendingSecret = await consumePendingTwoFactorSecret(user.id as number)
28
+ if (!pendingSecret)
29
+ return response.unauthorized('No pending setup found — please generate a new QR code and try again.')
30
+
31
+ const enabled = await enableTwoFactor(user.id as number, pendingSecret, code)
32
+ if (!enabled)
33
+ return response.unauthorized('Invalid code — please check your authenticator app and try again.')
34
+
35
+ return response.json({ enabled: true })
36
+ },
37
+ })
@@ -0,0 +1,51 @@
1
+ import type { PublicKeyCredentialRequestOptionsJSON } from '@stacksjs/auth'
2
+ import { Action } from '@stacksjs/actions'
3
+ import {
4
+ generateAuthenticationOptions,
5
+ getUserPasskeys,
6
+ storeWebAuthnChallenge,
7
+ } from '@stacksjs/auth'
8
+ import { config } from '@stacksjs/config'
9
+ import { User } from '@stacksjs/orm'
10
+
11
+ export default new Action({
12
+ name: 'PasskeyAuthenticationAction',
13
+ description: 'Generate Passkey Authentication Options',
14
+ method: 'POST',
15
+ async handle(request: RequestInstance) {
16
+ const email = request.get('email')
17
+
18
+ if (!email) {
19
+ return Response.json({ error: 'Email is required' }, { status: 422 })
20
+ }
21
+
22
+ const user = await User.where('email', email).first()
23
+
24
+ if (!user) {
25
+ return Response.json({ error: 'User not found' }, { status: 404 })
26
+ }
27
+
28
+ const userPasskeys = await getUserPasskeys(user.id as number)
29
+
30
+ // Use configured app URL for rpID instead of hardcoded localhost
31
+ const appUrl = config.app?.url || 'localhost'
32
+ const rpID = new URL(appUrl.startsWith('http') ? appUrl : `https://${appUrl}`).hostname
33
+
34
+ const options: PublicKeyCredentialRequestOptionsJSON = await generateAuthenticationOptions({
35
+ rpID,
36
+ allowCredentials: userPasskeys.map(passkey => ({
37
+ id: passkey.id,
38
+ transports: ['internal'],
39
+ })),
40
+ })
41
+
42
+ // Persist the challenge server-side so `VerifyAuthenticationAction`
43
+ // can consume it from the DB instead of trusting `body.challenge`.
44
+ // The previous round-trip-through-the-client pattern let an
45
+ // attacker who captured an assertion replay it as long as they
46
+ // also captured the challenge. See stacksjs/stacks#1866.
47
+ await storeWebAuthnChallenge(user.id as number, options.challenge, 'authentication')
48
+
49
+ return options
50
+ },
51
+ })
@@ -0,0 +1,53 @@
1
+ import { Action } from '@stacksjs/actions'
2
+ import { generateRegistrationOptions, getUserPasskeys, storeWebAuthnChallenge } from '@stacksjs/auth'
3
+ import { config } from '@stacksjs/config'
4
+
5
+ export default new Action({
6
+ name: 'PasskeyRegistrationAction',
7
+ description: 'Generate Passkey Registration Options',
8
+ method: 'POST',
9
+ async handle(request: RequestInstance) {
10
+ // Enrolling a passkey attaches a new login credential to an
11
+ // account — the identity MUST come from the caller's own
12
+ // authenticated session, never a client-supplied `email` field.
13
+ // Trusting `request.get('email')` here let anyone who knew a
14
+ // victim's email register a passkey against that victim's
15
+ // account and log in as them, no password required. This route
16
+ // must stay behind `middleware('auth')` — see routes/dashboard.ts.
17
+ const user = await request.user()
18
+
19
+ if (!user)
20
+ return Response.json({ error: 'Unauthorized' }, { status: 401 })
21
+
22
+ const userPasskeys = await getUserPasskeys(user.id as number)
23
+ const userEmail = user.email ?? ''
24
+
25
+ // Use configured app URL for rpID instead of hardcoded localhost
26
+ const appUrl = config.app?.url || 'localhost'
27
+ const rpID = new URL(appUrl.startsWith('http') ? appUrl : `https://${appUrl}`).hostname
28
+ const rpName = config.app?.name || 'Stacks'
29
+
30
+ const options = await generateRegistrationOptions({
31
+ rpName,
32
+ rpID,
33
+ userName: userEmail,
34
+ attestationType: 'none',
35
+ excludeCredentials: userPasskeys.map(passkey => ({
36
+ id: passkey.id,
37
+ transports: ['internal'],
38
+ })),
39
+ authenticatorSelection: {
40
+ residentKey: 'preferred',
41
+ userVerification: 'preferred',
42
+ authenticatorAttachment: 'platform',
43
+ },
44
+ })
45
+
46
+ // Persist the challenge server-side so VerifyRegistrationAction
47
+ // can consume it instead of trusting `body.challenge`. See
48
+ // stacksjs/stacks#1866.
49
+ await storeWebAuthnChallenge(user.id as number, options.challenge, 'registration')
50
+
51
+ return options
52
+ },
53
+ })
@@ -0,0 +1,26 @@
1
+ import { Action } from '@stacksjs/actions'
2
+ import { generateTwoFactorSetup, stashPendingTwoFactorSecret } from '@stacksjs/auth'
3
+ import { config } from '@stacksjs/config'
4
+ import { response } from '@stacksjs/router'
5
+
6
+ export default new Action({
7
+ name: 'GenerateTwoFactorSecretAction',
8
+ description: 'Generate a new TOTP secret + otpauth URI for the authenticated user to scan',
9
+ method: 'POST',
10
+ async handle(request: RequestInstance) {
11
+ const user = await request.user()
12
+ if (!user)
13
+ return response.unauthorized('Unauthorized')
14
+
15
+ const appName = config.app?.name || 'Stacks'
16
+ const { secret, uri } = generateTwoFactorSetup(user.email ?? '', appName)
17
+
18
+ // Not persisted to users.two_factor_secret until EnableTwoFactorAction
19
+ // verifies a code produced from it — but stashed server-side now so
20
+ // that step never has to trust a client-supplied secret. See
21
+ // two-factor.ts's doc comment for why.
22
+ await stashPendingTwoFactorSecret(user.id as number, secret)
23
+
24
+ return response.json({ secret, uri })
25
+ },
26
+ })
@@ -0,0 +1,30 @@
1
+ import { Action } from '@stacksjs/actions'
2
+ import { tokens } from '@stacksjs/auth'
3
+ import { response } from '@stacksjs/router'
4
+
5
+ export default new Action({
6
+ name: 'ListTokensAction',
7
+ description: 'List all access tokens for the authenticated user',
8
+ method: 'GET',
9
+ async handle(request: RequestInstance) {
10
+ const user = await request.user()
11
+
12
+ if (!user) {
13
+ return response.unauthorized('Authentication required')
14
+ }
15
+
16
+ const userTokens = await tokens(user.id)
17
+
18
+ return response.json({
19
+ tokens: userTokens.map(token => ({
20
+ id: token.id,
21
+ name: token.name,
22
+ scopes: token.scopes,
23
+ expires_at: token.expiresAt?.toISOString() || null,
24
+ created_at: token.createdAt.toISOString(),
25
+ last_used_at: token.updatedAt.toISOString(),
26
+ })),
27
+ count: userTokens.length,
28
+ })
29
+ },
30
+ })
@@ -0,0 +1,73 @@
1
+ import { createTwoFactorChallenge, getTwoFactorState } from '@stacksjs/auth'
2
+ import { User } from '@stacksjs/orm'
3
+
4
+ export default new Action({
5
+ name: 'LoginAction',
6
+ description: 'Login to the application',
7
+ method: 'POST',
8
+
9
+ validations: {
10
+ email: {
11
+ rule: schema.string().email(),
12
+ message: 'Email must be a valid email address.',
13
+ },
14
+ password: {
15
+ rule: schema.string().min(6).max(255),
16
+ message: 'Password must be between 6 and 255 characters.',
17
+ },
18
+ },
19
+
20
+ async handle(request: RequestInstance) {
21
+ const email = request.get('email')
22
+ const password = request.get('password')
23
+
24
+ // Verify credentials WITHOUT minting tokens yet — if the account
25
+ // has TOTP 2FA enabled, no token pack should exist until the code
26
+ // is also verified (VerifyTwoFactorLoginAction mints the real
27
+ // pack via Auth.loginUsingId, same as the non-2FA path below).
28
+ const isValid = await Auth.attempt({ email, password })
29
+ if (!isValid)
30
+ return response.unauthorized('Incorrect email or password')
31
+
32
+ const authedUser = await User.where('email', '=', email).first()
33
+ if (!authedUser)
34
+ return response.unauthorized('Incorrect email or password')
35
+
36
+ const { enabled: twoFactorEnabled } = await getTwoFactorState(authedUser.id as number)
37
+ if (twoFactorEnabled) {
38
+ const challengeToken = await createTwoFactorChallenge(authedUser.id as number)
39
+ return response.json({
40
+ requires_two_factor: true,
41
+ challenge_token: challengeToken,
42
+ })
43
+ }
44
+
45
+ const result = await Auth.loginUsingId(authedUser.id as number)
46
+ if (!result)
47
+ return response.unauthorized('Incorrect email or password')
48
+
49
+ const user = result.user
50
+
51
+ // OAuth2-compatible payload. Clients should:
52
+ // - Send `Authorization: Bearer <access_token>` for API calls.
53
+ // - Cache the access token for at most `expires_in` seconds.
54
+ // - Exchange `refresh_token` at /auth/refresh when the access
55
+ // token nears expiry. The refresh token is single-use; the
56
+ // refresh response returns a new pair (rotation).
57
+ // The legacy `token` field is kept for backward compatibility
58
+ // with clients that haven't been updated yet — it shadows
59
+ // `access_token` and will be removed in a future major.
60
+ return response.json({
61
+ access_token: result.token,
62
+ refresh_token: result.refreshToken,
63
+ token_type: 'Bearer',
64
+ expires_in: result.expiresIn,
65
+ token: result.token,
66
+ user: {
67
+ id: user?.id,
68
+ email: user?.email,
69
+ name: user?.name,
70
+ },
71
+ })
72
+ },
73
+ })
@@ -0,0 +1,16 @@
1
+ import { Action } from '@stacksjs/actions'
2
+ import { Auth } from '@stacksjs/auth'
3
+ import { response } from '@stacksjs/router'
4
+
5
+ export default new Action({
6
+ name: 'LogoutAction',
7
+ description: 'Logout from the application',
8
+ method: 'POST',
9
+ async handle() {
10
+ await Auth.logout()
11
+
12
+ return response.json({
13
+ message: 'Successfully logged out',
14
+ })
15
+ },
16
+ })
@@ -0,0 +1,28 @@
1
+ import { Action } from '@stacksjs/actions'
2
+ import { revokeAllTokens, sessionDestroyAll } from '@stacksjs/auth'
3
+ import { response } from '@stacksjs/router'
4
+
5
+ export default new Action({
6
+ name: 'LogoutAllAction',
7
+ description: 'Logout from all devices',
8
+ method: 'POST',
9
+ async handle(request: RequestInstance) {
10
+ const user = await request.user()
11
+
12
+ if (!user?.id) {
13
+ return response.unauthorized('Authentication required')
14
+ }
15
+
16
+ // Revoke every access + refresh token, then destroy every session
17
+ // row for the user. Awaited un-caught (fail-loud) so a partial sweep
18
+ // surfaces as a 500 instead of a "logged out everywhere" that left a
19
+ // credential alive — same rationale as the password-reset sweep
20
+ // (stacksjs/stacks#1957, #1947).
21
+ await revokeAllTokens(Number(user.id))
22
+ await sessionDestroyAll(Number(user.id))
23
+
24
+ return response.json({
25
+ message: 'Successfully logged out from all devices',
26
+ })
27
+ },
28
+ })
@@ -0,0 +1,39 @@
1
+ import { Action } from '@stacksjs/actions'
2
+ import { refreshToken } from '@stacksjs/auth'
3
+ import { response } from '@stacksjs/router'
4
+ import { schema } from '@stacksjs/validation'
5
+
6
+ export default new Action({
7
+ name: 'RefreshTokenAction',
8
+ description: 'Exchange a refresh token for a new access token',
9
+ method: 'POST',
10
+ async handle(request: RequestInstance) {
11
+ const refreshTokenValue = request.get('refresh_token')
12
+
13
+ await request.validate({
14
+ refresh_token: {
15
+ rule: schema.string().min(1),
16
+ message: {
17
+ min: 'Refresh token is required',
18
+ },
19
+ },
20
+ })
21
+
22
+ try {
23
+ const result = await refreshToken(refreshTokenValue, {
24
+ expiresInMinutes: 60, // 1 hour access token
25
+ refreshExpiresInDays: 30, // 30 day refresh token
26
+ })
27
+
28
+ return response.json({
29
+ access_token: result.plainTextToken,
30
+ refresh_token: result.refreshToken,
31
+ token_type: 'Bearer',
32
+ expires_in: result.expiresIn,
33
+ })
34
+ }
35
+ catch (error: any) {
36
+ return response.unauthorized(error.message || 'Invalid or expired refresh token')
37
+ }
38
+ },
39
+ })
@@ -0,0 +1,57 @@
1
+ // No imports needed - everything is auto-imported!
2
+
3
+ export default new Action({
4
+ name: 'RegisterAction',
5
+ description: 'Register a new user',
6
+ method: 'POST',
7
+
8
+ validations: {
9
+ email: {
10
+ rule: schema.string().email(),
11
+ message: 'Email must be a valid email address.',
12
+ },
13
+ password: {
14
+ rule: schema.string().min(6).max(255),
15
+ message: 'Password must be between 6 and 255 characters.',
16
+ },
17
+ name: {
18
+ rule: schema.string().min(2).max(255),
19
+ message: 'Name must be between 2 and 255 characters.',
20
+ },
21
+ },
22
+
23
+ async handle(request: RequestInstance) {
24
+ const email = request.get('email')
25
+ const password = request.get('password')
26
+ const name = request.get('name')
27
+
28
+ const result = await register({ email, password, name })
29
+
30
+ if (result) {
31
+ const user = await Auth.getUserFromToken(result.token)
32
+
33
+ // Fire `user:registered` so app/Events.ts listeners (welcome email,
34
+ // CRM sync, internal slack ping, etc.) actually run. Fire-and-forget
35
+ // — listener errors are caught by the wildcard handler so a flaky
36
+ // welcome email doesn't fail registration. The `to` alias matches
37
+ // the contract SendWelcomeEmail expects.
38
+ dispatch('user:registered', {
39
+ id: user?.id,
40
+ email: user?.email,
41
+ name: user?.name,
42
+ to: user?.email,
43
+ })
44
+
45
+ return response.json({
46
+ token: result.token,
47
+ user: {
48
+ id: user?.id,
49
+ email: user?.email,
50
+ name: user?.name,
51
+ },
52
+ })
53
+ }
54
+
55
+ return response.error('Registration failed')
56
+ },
57
+ })
@@ -0,0 +1,24 @@
1
+ // No imports needed - everything is auto-imported!
2
+
3
+ export default new Action({
4
+ name: 'ResendVerificationAction',
5
+ description: 'Resend email verification link',
6
+ method: 'POST',
7
+
8
+ async handle(request: RequestInstance) {
9
+ const user = await request.user()
10
+
11
+ if (!user) {
12
+ return response.unauthorized('Unauthenticated.')
13
+ }
14
+
15
+ const { resendVerificationEmail } = await import('@stacksjs/auth')
16
+ const result = await resendVerificationEmail(user)
17
+
18
+ if (!result.success) {
19
+ return response.json({ success: false, message: result.message }, 422)
20
+ }
21
+
22
+ return response.json({ success: true, message: result.message })
23
+ },
24
+ })