@stacksjs/defaults 0.70.58 → 0.70.60
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.
- package/app/Actions/AI/AskAction.ts +40 -0
- package/app/Actions/AI/SummaryAction.ts +40 -0
- package/app/Actions/Auth/AuthUserAction.ts +13 -0
- package/app/Actions/Auth/CreateTokenAction.ts +64 -0
- package/app/Actions/Auth/DisableTwoFactorAction.ts +37 -0
- package/app/Actions/Auth/EnableTwoFactorAction.ts +37 -0
- package/app/Actions/Auth/GenerateAuthenticationAction.ts +51 -0
- package/app/Actions/Auth/GenerateRegistrationAction.ts +53 -0
- package/app/Actions/Auth/GenerateTwoFactorSecretAction.ts +26 -0
- package/app/Actions/Auth/ListTokensAction.ts +30 -0
- package/app/Actions/Auth/LoginAction.ts +73 -0
- package/app/Actions/Auth/LogoutAction.ts +16 -0
- package/app/Actions/Auth/LogoutAllAction.ts +28 -0
- package/app/Actions/Auth/RefreshTokenAction.ts +39 -0
- package/app/Actions/Auth/RegisterAction.ts +57 -0
- package/app/Actions/Auth/ResendVerificationAction.ts +24 -0
- package/app/Actions/Auth/RevokeTokenAction.ts +43 -0
- package/app/Actions/Auth/TestAbilitiesAction.ts +61 -0
- package/app/Actions/Auth/VerifyAuthenticationAction.ts +94 -0
- package/app/Actions/Auth/VerifyEmailAction.ts +25 -0
- package/app/Actions/Auth/VerifyRegistrationAction.ts +59 -0
- package/app/Actions/Auth/VerifyTwoFactorLoginAction.ts +57 -0
- package/app/Actions/Billable/CheckoutAction.ts +25 -0
- package/app/Actions/Buddy/BuddyBrowseAction.ts +34 -0
- package/app/Actions/Buddy/BuddyCancelAction.ts +32 -0
- package/app/Actions/Buddy/BuddyCommitAction.ts +25 -0
- package/app/Actions/Buddy/BuddyGitHubConnectAction.ts +40 -0
- package/app/Actions/Buddy/BuddyGitHubDisconnectAction.ts +19 -0
- package/app/Actions/Buddy/BuddyProcessAction.ts +65 -0
- package/app/Actions/Buddy/BuddyProcessStreamAction.ts +128 -0
- package/app/Actions/Buddy/BuddyPushAction.ts +21 -0
- package/app/Actions/Buddy/BuddyRepoOpenAction.ts +44 -0
- package/app/Actions/Buddy/BuddyRepoValidateAction.ts +35 -0
- package/app/Actions/Buddy/BuddySettingsAction.ts +21 -0
- package/app/Actions/Buddy/BuddySettingsUpdateAction.ts +46 -0
- package/app/Actions/Buddy/BuddyStateAction.ts +28 -0
- package/app/Actions/Buddy/BuddyTitleAction.ts +49 -0
- package/app/Actions/Buddy/CommandsAction.ts +802 -0
- package/app/Actions/Buddy/JobCancelAction.ts +32 -0
- package/app/Actions/Buddy/JobRetryAction.ts +49 -0
- package/app/Actions/Buddy/JobsListAction.ts +141 -0
- package/app/Actions/Buddy/ScheduleListAction.ts +52 -0
- package/app/Actions/Buddy/VersionsAction.ts +12 -0
- package/app/Actions/Cms/AuthorDestroyAction.ts +21 -0
- package/app/Actions/Cms/AuthorIndexAction.ts +14 -0
- package/app/Actions/Cms/AuthorShowAction.ts +19 -0
- package/app/Actions/Cms/AuthorStoreAction.ts +20 -0
- package/app/Actions/Cms/AuthorUpdateAction.ts +24 -0
- package/app/Actions/Cms/CategorizableDestroyAction.ts +16 -0
- package/app/Actions/Cms/CategorizableIndexAction.ts +14 -0
- package/app/Actions/Cms/CategorizableShowAction.ts +16 -0
- package/app/Actions/Cms/CategorizableStoreAction.ts +42 -0
- package/app/Actions/Cms/CategorizableUpdateAction.ts +38 -0
- package/app/Actions/Cms/CommentDestroyAction.ts +16 -0
- package/app/Actions/Cms/CommentIndexAction.ts +17 -0
- package/app/Actions/Cms/CommentShowAction.ts +16 -0
- package/app/Actions/Cms/CommentStoreAction.ts +39 -0
- package/app/Actions/Cms/CommentUpdateAction.ts +37 -0
- package/app/Actions/Cms/PageDestroyAction.ts +16 -0
- package/app/Actions/Cms/PageIndexAction.ts +14 -0
- package/app/Actions/Cms/PageStoreAction.ts +31 -0
- package/app/Actions/Cms/PageUpdateAction.ts +27 -0
- package/app/Actions/Cms/PostDestroyAction.ts +17 -0
- package/app/Actions/Cms/PostIndexAction.ts +14 -0
- package/app/Actions/Cms/PostShowAction.ts +16 -0
- package/app/Actions/Cms/PostStoreAction.ts +37 -0
- package/app/Actions/Cms/PostUpdateAction.ts +32 -0
- package/app/Actions/Cms/PostViewsUpdateAction.ts +34 -0
- package/app/Actions/Cms/RssFeedAction.ts +59 -0
- package/app/Actions/Cms/SitemapAction.ts +60 -0
- package/app/Actions/Cms/TaggableDestroyAction.ts +16 -0
- package/app/Actions/Cms/TaggableIndexAction.ts +14 -0
- package/app/Actions/Cms/TaggableShowAction.ts +16 -0
- package/app/Actions/Cms/TaggableStoreAction.ts +36 -0
- package/app/Actions/Cms/TaggableUpdateAction.ts +37 -0
- package/app/Actions/Commerce/CouponDestroyAction.ts +18 -0
- package/app/Actions/Commerce/CouponIndexAction.ts +16 -0
- package/app/Actions/Commerce/CouponShowAction.ts +18 -0
- package/app/Actions/Commerce/CouponStoreAction.ts +21 -0
- package/app/Actions/Commerce/CouponUpdateAction.ts +31 -0
- package/app/Actions/Commerce/CustomerDestroyAction.ts +16 -0
- package/app/Actions/Commerce/CustomerIndexAction.ts +15 -0
- package/app/Actions/Commerce/CustomerShowAction.ts +18 -0
- package/app/Actions/Commerce/CustomerStoreAction.ts +29 -0
- package/app/Actions/Commerce/CustomerUpdateAction.ts +27 -0
- package/app/Actions/Commerce/DriverDestroyAction.ts +18 -0
- package/app/Actions/Commerce/GiftCardDestroyAction.ts +18 -0
- package/app/Actions/Commerce/GiftCardIndexAction.ts +16 -0
- package/app/Actions/Commerce/GiftCardShowAction.ts +18 -0
- package/app/Actions/Commerce/GiftCardStatsAction.ts +30 -0
- package/app/Actions/Commerce/GiftCardStoreAction.ts +35 -0
- package/app/Actions/Commerce/GiftCardUpdateAction.ts +26 -0
- package/app/Actions/Commerce/GiftCardUpdateBalanceAction.ts +36 -0
- package/app/Actions/Commerce/OrderDestroyAction.ts +18 -0
- package/app/Actions/Commerce/OrderExportAction.ts +15 -0
- package/app/Actions/Commerce/OrderIndexAction.ts +15 -0
- package/app/Actions/Commerce/OrderShowAction.ts +18 -0
- package/app/Actions/Commerce/OrderStoreAction.ts +32 -0
- package/app/Actions/Commerce/OrderUpdateAction.ts +34 -0
- package/app/Actions/Commerce/PaymentDestroyAction.ts +16 -0
- package/app/Actions/Commerce/PaymentFetchStatsAction.ts +31 -0
- package/app/Actions/Commerce/PaymentIndexAction.ts +15 -0
- package/app/Actions/Commerce/PaymentMonthlyTrendsAction.ts +21 -0
- package/app/Actions/Commerce/PaymentShowAction.ts +17 -0
- package/app/Actions/Commerce/PaymentStoreAction.ts +24 -0
- package/app/Actions/Commerce/PaymentUpdateAction.ts +35 -0
- package/app/Actions/Commerce/PrintDeviceDestroyAction.ts +18 -0
- package/app/Actions/Commerce/PrintDeviceIndexAction.ts +14 -0
- package/app/Actions/Commerce/PrintDeviceShowAction.ts +17 -0
- package/app/Actions/Commerce/PrintDeviceStoreAction.ts +27 -0
- package/app/Actions/Commerce/PrintDeviceUpdateAction.ts +27 -0
- package/app/Actions/Commerce/Product/ManufacturerDestroyAction.ts +20 -0
- package/app/Actions/Commerce/Product/ManufacturerIndexAction.ts +16 -0
- package/app/Actions/Commerce/Product/ManufacturerShowAction.ts +18 -0
- package/app/Actions/Commerce/Product/ManufacturerStoreAction.ts +14 -0
- package/app/Actions/Commerce/Product/ProductCategoryIndexAction.ts +16 -0
- package/app/Actions/Commerce/Product/ProductCategoryStoreAction.ts +16 -0
- package/app/Actions/Commerce/Product/ProductDestroyAction.ts +16 -0
- package/app/Actions/Commerce/Product/ProductIndexAction.ts +14 -0
- package/app/Actions/Commerce/Product/ProductManufacturerDestroyAction.ts +18 -0
- package/app/Actions/Commerce/Product/ProductManufacturerIndexAction.ts +14 -0
- package/app/Actions/Commerce/Product/ProductManufacturerShowAction.ts +16 -0
- package/app/Actions/Commerce/Product/ProductManufacturerStoreAction.ts +14 -0
- package/app/Actions/Commerce/Product/ProductManufacturerUpdateAction.ts +18 -0
- package/app/Actions/Commerce/Product/ProductShowAction.ts +18 -0
- package/app/Actions/Commerce/Product/ProductStoreAction.ts +17 -0
- package/app/Actions/Commerce/Product/ProductUnitDestroyAction.ts +18 -0
- package/app/Actions/Commerce/Product/ProductUnitIndexAction.ts +14 -0
- package/app/Actions/Commerce/Product/ProductUnitShowAction.ts +18 -0
- package/app/Actions/Commerce/Product/ProductUnitStoreAction.ts +15 -0
- package/app/Actions/Commerce/Product/ProductUpdateAction.ts +17 -0
- package/app/Actions/Commerce/Product/ProductVariantDestroyAction.ts +18 -0
- package/app/Actions/Commerce/Product/ProductVariantIndexAction.ts +14 -0
- package/app/Actions/Commerce/Product/ProductVariantShowAction.ts +17 -0
- package/app/Actions/Commerce/Product/ProductVariantStoreAction.ts +14 -0
- package/app/Actions/Commerce/Product/ProductVariantUpdateAction.ts +16 -0
- package/app/Actions/Commerce/ReceiptDestroyAction.ts +18 -0
- package/app/Actions/Commerce/ReceiptIndexAction.ts +14 -0
- package/app/Actions/Commerce/ReceiptShowAction.ts +18 -0
- package/app/Actions/Commerce/ReceiptStoreAction.ts +28 -0
- package/app/Actions/Commerce/ReceiptUpdateAction.ts +30 -0
- package/app/Actions/Commerce/ReviewIndexAction.ts +14 -0
- package/app/Actions/Commerce/ReviewShowAction.ts +16 -0
- package/app/Actions/Commerce/ReviewStoreAction.ts +26 -0
- package/app/Actions/Commerce/ReviewUpdateAction.ts +28 -0
- package/app/Actions/Commerce/Shipping/DeliveryRouteDestroyAction.ts +18 -0
- package/app/Actions/Commerce/Shipping/DeliveryRouteIndexAction.ts +16 -0
- package/app/Actions/Commerce/Shipping/DeliveryRouteShowAction.ts +18 -0
- package/app/Actions/Commerce/Shipping/DeliveryRouteStoreAction.ts +16 -0
- package/app/Actions/Commerce/Shipping/DeliveryRouteUpdateAction.ts +18 -0
- package/app/Actions/Commerce/Shipping/DigitalDeliveryDestroyAction.ts +18 -0
- package/app/Actions/Commerce/Shipping/DigitalDeliveryIndexAction.ts +16 -0
- package/app/Actions/Commerce/Shipping/DigitalDeliveryShowAction.ts +18 -0
- package/app/Actions/Commerce/Shipping/DigitalDeliveryStoreAction.ts +18 -0
- package/app/Actions/Commerce/Shipping/DigitalDeliveryUpdateAction.ts +18 -0
- package/app/Actions/Commerce/Shipping/DriverIndexAction.ts +16 -0
- package/app/Actions/Commerce/Shipping/DriverShowAction.ts +18 -0
- package/app/Actions/Commerce/Shipping/DriverStoreAction.ts +16 -0
- package/app/Actions/Commerce/Shipping/DriverUpdateAction.ts +18 -0
- package/app/Actions/Commerce/Shipping/LicenseKeyDestroyAction.ts +20 -0
- package/app/Actions/Commerce/Shipping/LicenseKeyIndexAction.ts +16 -0
- package/app/Actions/Commerce/Shipping/LicenseKeyShowAction.ts +18 -0
- package/app/Actions/Commerce/Shipping/LicenseKeyStoreAction.ts +18 -0
- package/app/Actions/Commerce/Shipping/LicenseKeyUpdateAction.ts +18 -0
- package/app/Actions/Commerce/Shipping/ShippingMethodDestroyAction.ts +16 -0
- package/app/Actions/Commerce/Shipping/ShippingMethodIndexAction.ts +14 -0
- package/app/Actions/Commerce/Shipping/ShippingMethodShowAction.ts +16 -0
- package/app/Actions/Commerce/Shipping/ShippingMethodStoreAction.ts +16 -0
- package/app/Actions/Commerce/Shipping/ShippingMethodUpdateAction.ts +15 -0
- package/app/Actions/Commerce/Shipping/ShippingRateDestroyAction.ts +16 -0
- package/app/Actions/Commerce/Shipping/ShippingRateIndexAction.ts +14 -0
- package/app/Actions/Commerce/Shipping/ShippingRateShowAction.ts +16 -0
- package/app/Actions/Commerce/Shipping/ShippingRateStoreAction.ts +16 -0
- package/app/Actions/Commerce/Shipping/ShippingRateUpdateAction.ts +17 -0
- package/app/Actions/Commerce/Shipping/ShippingZoneDestroyAction.ts +16 -0
- package/app/Actions/Commerce/Shipping/ShippingZoneIndexAction.ts +14 -0
- package/app/Actions/Commerce/Shipping/ShippingZoneShowAction.ts +16 -0
- package/app/Actions/Commerce/Shipping/ShippingZoneStoreAction.ts +16 -0
- package/app/Actions/Commerce/Shipping/ShippingZoneUpdateAction.ts +15 -0
- package/app/Actions/Commerce/TaxRateDestroyAction.ts +16 -0
- package/app/Actions/Commerce/TaxRateIndexAction.ts +14 -0
- package/app/Actions/Commerce/TaxRateShowAction.ts +17 -0
- package/app/Actions/Commerce/TaxRateStoreAction.ts +24 -0
- package/app/Actions/Commerce/TaxRateUpdateAction.ts +24 -0
- package/app/Actions/Commerce/WaitlistProductAnalyticsAction.ts +29 -0
- package/app/Actions/Commerce/WaitlistProductDestroyAction.ts +16 -0
- package/app/Actions/Commerce/WaitlistProductIndexAction.ts +14 -0
- package/app/Actions/Commerce/WaitlistProductQuantityDistributionAction.ts +32 -0
- package/app/Actions/Commerce/WaitlistProductShowAction.ts +16 -0
- package/app/Actions/Commerce/WaitlistProductStatusAction.ts +37 -0
- package/app/Actions/Commerce/WaitlistProductStoreAction.ts +27 -0
- package/app/Actions/Commerce/WaitlistProductTimeSeriesAction.ts +25 -0
- package/app/Actions/Commerce/WaitlistProductUpdateAction.ts +29 -0
- package/app/Actions/Commerce/WaitlistRestaurantDashboardAction.ts +29 -0
- package/app/Actions/Commerce/WaitlistRestaurantDestroyAction.ts +16 -0
- package/app/Actions/Commerce/WaitlistRestaurantIndexAction.ts +14 -0
- package/app/Actions/Commerce/WaitlistRestaurantShowAction.ts +16 -0
- package/app/Actions/Commerce/WaitlistRestaurantStoreAction.ts +31 -0
- package/app/Actions/Commerce/WaitlistRestaurantUpdateAction.ts +33 -0
- package/app/Actions/ContactAction.ts +72 -0
- package/app/Actions/Dashboard/Actions/CreateAction.ts +11 -0
- package/app/Actions/Dashboard/Actions/GetActionCount.ts +12 -0
- package/app/Actions/Dashboard/Actions/GetActions.ts +19 -0
- package/app/Actions/Dashboard/Analytics/BlogAnalyticsAction.ts +58 -0
- package/app/Actions/Dashboard/Analytics/BrowserAnalyticsAction.ts +42 -0
- package/app/Actions/Dashboard/Analytics/CommerceAnalyticsAction.ts +64 -0
- package/app/Actions/Dashboard/Analytics/CountryAnalyticsAction.ts +41 -0
- package/app/Actions/Dashboard/Analytics/DeviceAnalyticsAction.ts +58 -0
- package/app/Actions/Dashboard/Analytics/EventAnalyticsAction.ts +90 -0
- package/app/Actions/Dashboard/Analytics/MarketingAnalyticsAction.ts +76 -0
- package/app/Actions/Dashboard/Analytics/PageAnalyticsAction.ts +45 -0
- package/app/Actions/Dashboard/Analytics/ReferrerAnalyticsAction.ts +72 -0
- package/app/Actions/Dashboard/Analytics/SalesAnalyticsAction.ts +73 -0
- package/app/Actions/Dashboard/Analytics/WebAnalyticsAction.ts +114 -0
- package/app/Actions/Dashboard/Auth/MeAction.ts +84 -0
- package/app/Actions/Dashboard/BuddyDashboardAction.ts +34 -0
- package/app/Actions/Dashboard/Ci/RepoRunJobsAction.ts +60 -0
- package/app/Actions/Dashboard/Ci/RepoRunsAction.ts +67 -0
- package/app/Actions/Dashboard/Ci/RunnerHistoryAction.ts +58 -0
- package/app/Actions/Dashboard/Ci/StatusAction.ts +73 -0
- package/app/Actions/Dashboard/Ci/failure-notifier.ts +214 -0
- package/app/Actions/Dashboard/Ci/runner-pressure-monitor.ts +259 -0
- package/app/Actions/Dashboard/Cloud/CloudIndexAction.ts +61 -0
- package/app/Actions/Dashboard/Commands/CreateCommand.ts +11 -0
- package/app/Actions/Dashboard/Commands/GetAverageCommandTime.ts +12 -0
- package/app/Actions/Dashboard/Commands/GetCommandCount.ts +12 -0
- package/app/Actions/Dashboard/Commands/GetCommandSuccessRate.ts +12 -0
- package/app/Actions/Dashboard/Commands/GetCommands.ts +12 -0
- package/app/Actions/Dashboard/Commerce/CommerceCouponsAction.ts +48 -0
- package/app/Actions/Dashboard/Commerce/CommerceCustomersAction.ts +48 -0
- package/app/Actions/Dashboard/Commerce/CommerceDashboardAction.ts +98 -0
- package/app/Actions/Dashboard/Commerce/CommerceDeliveryAction.ts +65 -0
- package/app/Actions/Dashboard/Commerce/CommerceGiftCardsAction.ts +48 -0
- package/app/Actions/Dashboard/Commerce/CommerceOrdersAction.ts +51 -0
- package/app/Actions/Dashboard/Commerce/CommercePaymentsAction.ts +59 -0
- package/app/Actions/Dashboard/Commerce/CommerceProductsAction.ts +50 -0
- package/app/Actions/Dashboard/Commerce/CommerceTaxesAction.ts +46 -0
- package/app/Actions/Dashboard/Commerce/PosIndexAction.ts +57 -0
- package/app/Actions/Dashboard/Commerce/ReviewIndexAction.ts +51 -0
- package/app/Actions/Dashboard/Content/AuthorIndexAction.ts +51 -0
- package/app/Actions/Dashboard/Content/CategoryIndexAction.ts +27 -0
- package/app/Actions/Dashboard/Content/CommentIndexAction.ts +41 -0
- package/app/Actions/Dashboard/Content/ContentDashboardAction.ts +54 -0
- package/app/Actions/Dashboard/Content/FileIndexAction.ts +24 -0
- package/app/Actions/Dashboard/Content/PageIndexAction.ts +25 -0
- package/app/Actions/Dashboard/Content/PostIndexAction.ts +102 -0
- package/app/Actions/Dashboard/Content/SeoIndexAction.ts +17 -0
- package/app/Actions/Dashboard/Content/TagIndexAction.ts +23 -0
- package/app/Actions/Dashboard/CreateDnsRecords.ts +11 -0
- package/app/Actions/Dashboard/CreateMailbox.ts +11 -0
- package/app/Actions/Dashboard/DashboardActivityAction.ts +58 -0
- package/app/Actions/Dashboard/DashboardHealthAction.ts +52 -0
- package/app/Actions/Dashboard/DashboardHomeAction.ts +83 -0
- package/app/Actions/Dashboard/DashboardStatsAction.ts +48 -0
- package/app/Actions/Dashboard/Data/AccessTokenIndexAction.ts +65 -0
- package/app/Actions/Dashboard/Data/ActivityIndexAction.ts +28 -0
- package/app/Actions/Dashboard/Data/DataDashboardAction.ts +67 -0
- package/app/Actions/Dashboard/Data/SubscriberIndexAction.ts +48 -0
- package/app/Actions/Dashboard/Data/TeamIndexAction.ts +43 -0
- package/app/Actions/Dashboard/Data/UserIndexAction.ts +48 -0
- package/app/Actions/Dashboard/Deployments/CreateDeployment.ts +11 -0
- package/app/Actions/Dashboard/Deployments/GetAverageDeploymentTime.ts +15 -0
- package/app/Actions/Dashboard/Deployments/GetDeployScript.ts +12 -0
- package/app/Actions/Dashboard/Deployments/GetDeploymentCount.ts +12 -0
- package/app/Actions/Dashboard/Deployments/GetDeploymentLiveTerminalOutput.ts +12 -0
- package/app/Actions/Dashboard/Deployments/GetDeployments.ts +20 -0
- package/app/Actions/Dashboard/Deployments/GetRecentDeployments.ts +12 -0
- package/app/Actions/Dashboard/Deployments/UpdateDeployScript.ts +11 -0
- package/app/Actions/Dashboard/GetDnsRecords.ts +12 -0
- package/app/Actions/Dashboard/GetEmailInboxes.ts +12 -0
- package/app/Actions/Dashboard/GetProjects.ts +13 -0
- package/app/Actions/Dashboard/GetRecentCommits.ts +13 -0
- package/app/Actions/Dashboard/Inbox/InboxIndexAction.ts +144 -0
- package/app/Actions/Dashboard/Inbox/InboxShowAction.ts +89 -0
- package/app/Actions/Dashboard/Infrastructure/CommandIndexAction.ts +18 -0
- package/app/Actions/Dashboard/Infrastructure/DnsIndexAction.ts +101 -0
- package/app/Actions/Dashboard/Infrastructure/EnvironmentIndexAction.ts +67 -0
- package/app/Actions/Dashboard/Infrastructure/InsightsAction.ts +29 -0
- package/app/Actions/Dashboard/Infrastructure/LogIndexAction.ts +50 -0
- package/app/Actions/Dashboard/Infrastructure/MailboxIndexAction.ts +85 -0
- package/app/Actions/Dashboard/Infrastructure/PermissionIndexAction.ts +54 -0
- package/app/Actions/Dashboard/Infrastructure/RequestIndexAction.ts +44 -0
- package/app/Actions/Dashboard/Infrastructure/ServerIndexAction.ts +101 -0
- package/app/Actions/Dashboard/Jobs/CreateJob.ts +11 -0
- package/app/Actions/Dashboard/Jobs/GetAverageJobTime.ts +12 -0
- package/app/Actions/Dashboard/Jobs/GetJobHistory.ts +12 -0
- package/app/Actions/Dashboard/Jobs/GetJobs.ts +11 -0
- package/app/Actions/Dashboard/Jobs/GetJobsPerMinute.ts +12 -0
- package/app/Actions/Dashboard/Jobs/JobIndexAction.ts +136 -0
- package/app/Actions/Dashboard/Jobs/JobRetryAction.ts +23 -0
- package/app/Actions/Dashboard/Jobs/JobStatsAction.ts +49 -0
- package/app/Actions/Dashboard/Kanban/BoardDestroyAction.ts +84 -0
- package/app/Actions/Dashboard/Kanban/BoardShowAction.ts +215 -0
- package/app/Actions/Dashboard/Kanban/BoardStoreAction.ts +98 -0
- package/app/Actions/Dashboard/Kanban/BoardUpdateAction.ts +96 -0
- package/app/Actions/Dashboard/Kanban/BoardsIndexAction.ts +81 -0
- package/app/Actions/Dashboard/Kanban/BoardsReorderAction.ts +80 -0
- package/app/Actions/Dashboard/Kanban/CardAssigneesSyncAction.ts +103 -0
- package/app/Actions/Dashboard/Kanban/CardCommentDestroyAction.ts +33 -0
- package/app/Actions/Dashboard/Kanban/CardCommentStoreAction.ts +82 -0
- package/app/Actions/Dashboard/Kanban/CardDestroyAction.ts +48 -0
- package/app/Actions/Dashboard/Kanban/CardLabelsSyncAction.ts +103 -0
- package/app/Actions/Dashboard/Kanban/CardShowAction.ts +122 -0
- package/app/Actions/Dashboard/Kanban/CardStoreAction.ts +112 -0
- package/app/Actions/Dashboard/Kanban/CardUpdateAction.ts +91 -0
- package/app/Actions/Dashboard/Kanban/CardsReorderAction.ts +148 -0
- package/app/Actions/Dashboard/Kanban/ColumnDestroyAction.ts +59 -0
- package/app/Actions/Dashboard/Kanban/ColumnStoreAction.ts +94 -0
- package/app/Actions/Dashboard/Kanban/ColumnUpdateAction.ts +89 -0
- package/app/Actions/Dashboard/Kanban/ColumnsReorderAction.ts +85 -0
- package/app/Actions/Dashboard/Kanban/LabelDestroyAction.ts +41 -0
- package/app/Actions/Dashboard/Kanban/LabelStoreAction.ts +70 -0
- package/app/Actions/Dashboard/Kanban/LabelUpdateAction.ts +83 -0
- package/app/Actions/Dashboard/Kanban/UsersListAction.ts +36 -0
- package/app/Actions/Dashboard/Library/CreateComponent.ts +11 -0
- package/app/Actions/Dashboard/Library/CreateFunction.ts +11 -0
- package/app/Actions/Dashboard/Library/DependencyIndexAction.ts +92 -0
- package/app/Actions/Dashboard/Library/GetAverageReleaseTime.ts +12 -0
- package/app/Actions/Dashboard/Library/GetComponents.ts +24 -0
- package/app/Actions/Dashboard/Library/GetComponentsDownloadCount.ts +12 -0
- package/app/Actions/Dashboard/Library/GetDownloadCount.ts +12 -0
- package/app/Actions/Dashboard/Library/GetFunctions.ts +22 -0
- package/app/Actions/Dashboard/Library/GetFunctionsDownloadCount.ts +12 -0
- package/app/Actions/Dashboard/Library/GetReleaseCount.ts +12 -0
- package/app/Actions/Dashboard/Library/GetReleases.ts +28 -0
- package/app/Actions/Dashboard/Library/PackageIndexAction.ts +26 -0
- package/app/Actions/Dashboard/Marketing/CampaignIndexAction.ts +45 -0
- package/app/Actions/Dashboard/Marketing/ListIndexAction.ts +43 -0
- package/app/Actions/Dashboard/Marketing/SocialPostIndexAction.ts +47 -0
- package/app/Actions/Dashboard/Models/GetModels.ts +39 -0
- package/app/Actions/Dashboard/Models/GetSubscriberCount.ts +12 -0
- package/app/Actions/Dashboard/Models/GetUserCount.ts +12 -0
- package/app/Actions/Dashboard/Models/ModelShowAction.ts +131 -0
- package/app/Actions/Dashboard/Models/ModelsIndexAction.ts +169 -0
- package/app/Actions/Dashboard/Notifications/CreateNotification.ts +11 -0
- package/app/Actions/Dashboard/Notifications/GetAverageNotificationTime.ts +12 -0
- package/app/Actions/Dashboard/Notifications/GetNotificationCount.ts +12 -0
- package/app/Actions/Dashboard/Notifications/GetNotificationDeliveryRate.ts +12 -0
- package/app/Actions/Dashboard/Notifications/GetNotificationHistory.ts +12 -0
- package/app/Actions/Dashboard/Notifications/GetNotifications.ts +12 -0
- package/app/Actions/Dashboard/Notifications/NotificationDashboardAction.ts +43 -0
- package/app/Actions/Dashboard/Queries/QueryIndexAction.ts +22 -0
- package/app/Actions/Dashboard/Queue/QueueRetryFailedAction.ts +22 -0
- package/app/Actions/Dashboard/Queue/QueueStatsAction.ts +98 -0
- package/app/Actions/Dashboard/Queue/QueueWorkersAction.ts +46 -0
- package/app/Actions/Dashboard/Rbac/PermissionDestroyAction.ts +33 -0
- package/app/Actions/Dashboard/Rbac/PermissionStoreAction.ts +53 -0
- package/app/Actions/Dashboard/Rbac/PermissionsIndexAction.ts +34 -0
- package/app/Actions/Dashboard/Rbac/RoleDestroyAction.ts +35 -0
- package/app/Actions/Dashboard/Rbac/RolePermissionsShowAction.ts +45 -0
- package/app/Actions/Dashboard/Rbac/RolePermissionsSyncAction.ts +63 -0
- package/app/Actions/Dashboard/Rbac/RoleStoreAction.ts +58 -0
- package/app/Actions/Dashboard/Rbac/RolesIndexAction.ts +36 -0
- package/app/Actions/Dashboard/Rbac/UserRolesShowAction.ts +40 -0
- package/app/Actions/Dashboard/Rbac/UserRolesSyncAction.ts +65 -0
- package/app/Actions/Dashboard/Rbac/UsersListAction.ts +39 -0
- package/app/Actions/Dashboard/Realtime/RealtimeStatsAction.ts +50 -0
- package/app/Actions/Dashboard/Releases/ReleaseIndexAction.ts +21 -0
- package/app/Actions/Dashboard/Requests/GetAverageRequestTime.ts +12 -0
- package/app/Actions/Dashboard/Requests/GetRequestCount.ts +12 -0
- package/app/Actions/Dashboard/Requests/GetRequestSuccessRate.ts +12 -0
- package/app/Actions/Dashboard/Requests/GetRequests.ts +12 -0
- package/app/Actions/Dashboard/Search/GlobalSearchAction.ts +26 -0
- package/app/Actions/Dashboard/ServiceHealthAction.ts +243 -0
- package/app/Actions/Dashboard/Settings/MailSettingsGetAction.ts +20 -0
- package/app/Actions/Dashboard/Settings/MailSettingsUpdateAction.ts +10 -0
- package/app/Actions/Dashboard/Settings/SettingsIndexAction.ts +40 -0
- package/app/Actions/Dashboard/Settings/UpdateAiConfig.ts +27 -0
- package/app/Actions/Dashboard/Settings/UpdateAnalyticsConfig.ts +38 -0
- package/app/Actions/Dashboard/Settings/UpdateAppConfig.ts +38 -0
- package/app/Actions/Dashboard/Settings/UpdateCacheConfig.ts +11 -0
- package/app/Actions/Dashboard/Settings/UpdateCliConfig.ts +11 -0
- package/app/Actions/Dashboard/Settings/UpdateCloudConfig.ts +38 -0
- package/app/Actions/Dashboard/Settings/UpdateDatabaseConfig.ts +38 -0
- package/app/Actions/Dashboard/Settings/UpdateDnsConfig.ts +38 -0
- package/app/Actions/Dashboard/Settings/UpdateDocsConfig.ts +11 -0
- package/app/Actions/Dashboard/Settings/UpdateEmailConfig.ts +38 -0
- package/app/Actions/Dashboard/Settings/UpdateEnvConfig.ts +11 -0
- package/app/Actions/Dashboard/Settings/UpdateErrorsConfig.ts +11 -0
- package/app/Actions/Dashboard/Settings/UpdateFileSystemsConfig.ts +11 -0
- package/app/Actions/Dashboard/Settings/UpdateGitConfig.ts +11 -0
- package/app/Actions/Dashboard/Settings/UpdateHashingConfig.ts +11 -0
- package/app/Actions/Dashboard/Settings/UpdateLibraryConfig.ts +11 -0
- package/app/Actions/Dashboard/Settings/UpdateLoggerConfig.ts +11 -0
- package/app/Actions/Dashboard/Settings/UpdateNotificationConfig.ts +11 -0
- package/app/Actions/Dashboard/Settings/UpdatePaymentConfig.ts +11 -0
- package/app/Actions/Dashboard/Settings/UpdatePortsConfig.ts +38 -0
- package/app/Actions/Dashboard/Settings/UpdateQueueConfig.ts +11 -0
- package/app/Actions/Dashboard/Settings/UpdateSearchEngineConfig.ts +11 -0
- package/app/Actions/Dashboard/Settings/UpdateSecurityConfig.ts +38 -0
- package/app/Actions/Dashboard/Settings/UpdateServicesConfig.ts +38 -0
- package/app/Actions/Dashboard/Settings/UpdateStorageConfig.ts +11 -0
- package/app/Actions/Dashboard/Settings/UpdateTeamConfig.ts +11 -0
- package/app/Actions/Dashboard/Settings/UpdateUiConfig.ts +11 -0
- package/app/Actions/HealthAction.ts +112 -0
- package/app/Actions/InstallAction.ts +83 -0
- package/app/Actions/Locale/SetLocaleAction.ts +51 -0
- package/app/Actions/LogAction.ts +42 -0
- package/app/Actions/Logs/LogFetchStatsAction.ts +50 -0
- package/app/Actions/Logs/LogIndexOrmAction.ts +13 -0
- package/app/Actions/Logs/LogShowOrmAction.ts +17 -0
- package/app/Actions/Logs/LogStoreOrmAction.ts +16 -0
- package/app/Actions/Logs/LogUpdateOrmAction.ts +20 -0
- package/app/Actions/Monitoring/ErrorDestroyAction.ts +25 -0
- package/app/Actions/Monitoring/ErrorGroupAction.ts +21 -0
- package/app/Actions/Monitoring/ErrorIgnoreAction.ts +25 -0
- package/app/Actions/Monitoring/ErrorIndexAction.ts +14 -0
- package/app/Actions/Monitoring/ErrorResolveAction.ts +25 -0
- package/app/Actions/Monitoring/ErrorShowAction.ts +19 -0
- package/app/Actions/Monitoring/ErrorStatsAction.ts +14 -0
- package/app/Actions/Monitoring/ErrorTimelineAction.ts +14 -0
- package/app/Actions/Monitoring/ErrorUnresolveAction.ts +25 -0
- package/app/Actions/NotifyUser.ts +10 -0
- package/app/Actions/Password/PasswordResetAction.ts +54 -0
- package/app/Actions/Password/SendPasswordResetEmailAction.ts +66 -0
- package/app/Actions/Password/VerifyResetTokenAction.ts +27 -0
- package/app/Actions/Payment/CancelSubscriptionAction.ts +20 -0
- package/app/Actions/Payment/CreateCheckoutAction.ts +28 -0
- package/app/Actions/Payment/CreateInvoiceSubscription.ts +18 -0
- package/app/Actions/Payment/CreatePaymentIntentAction.ts +31 -0
- package/app/Actions/Payment/CreateSetupIntentAction.ts +20 -0
- package/app/Actions/Payment/CreateSubscriptionAction.ts +23 -0
- package/app/Actions/Payment/DeleteDefaultPaymentAction.ts +18 -0
- package/app/Actions/Payment/FetchActiveSubscriptionAction.ts +18 -0
- package/app/Actions/Payment/FetchDefaultPaymentMethodAction.ts +18 -0
- package/app/Actions/Payment/FetchPaymentCustomerAction.ts +18 -0
- package/app/Actions/Payment/FetchPaymentMethodsAction.ts +18 -0
- package/app/Actions/Payment/FetchProductAction.ts +15 -0
- package/app/Actions/Payment/FetchTransactionHistoryAction.ts +18 -0
- package/app/Actions/Payment/FetchUserSubscriptionsAction.ts +18 -0
- package/app/Actions/Payment/SetDefaultPaymentAction.ts +20 -0
- package/app/Actions/Payment/SetUserDefaultPaymentAction.ts +20 -0
- package/app/Actions/Payment/StorePaymentMethodAction.ts +20 -0
- package/app/Actions/Payment/StoreTransactionAction.ts +20 -0
- package/app/Actions/Payment/UpdateCustomerAction.ts +24 -0
- package/app/Actions/Payment/UpdateDefaultPaymentMethodAction.ts +18 -0
- package/app/Actions/Payment/UpdateSubscriptionAction.ts +22 -0
- package/app/Actions/Queue/FetchQueuesAction.ts +14 -0
- package/app/Actions/README.md +61 -0
- package/app/Actions/Realtime/FetchWebsocketsAction.ts +14 -0
- package/app/Actions/RobotsAction.ts +61 -0
- package/app/Actions/SendWelcomeEmail.ts +40 -0
- package/app/Actions/SitemapAction.ts +234 -0
- package/app/Actions/Storefront/AddToCartAction.ts +153 -0
- package/app/Actions/Storefront/CheckoutContactAction.ts +50 -0
- package/app/Actions/Storefront/CheckoutShippingAction.ts +61 -0
- package/app/Actions/Storefront/GetCartAction.ts +58 -0
- package/app/Actions/Storefront/PlaceOrderAction.ts +195 -0
- package/app/Actions/Storefront/SubmitReviewAction.ts +140 -0
- package/app/Actions/Storefront/UpdateCartItemAction.ts +83 -0
- package/app/Actions/Storefront/_shipping.ts +64 -0
- package/app/Actions/SubscriberEmailAction.ts +60 -0
- package/app/Actions/TestErrorAction.ts +163 -0
- package/app/Actions/UnsubscribeAction.ts +107 -0
- package/app/Actions/UploadTestAction.ts +57 -0
- package/app/Broadcasts/OrderShipped.ts +57 -0
- package/app/Commands/Inspire.ts +57 -0
- package/app/Commands/README.md +84 -0
- package/app/Commands.ts +38 -0
- package/app/Controllers/ComingSoonController.ts +9 -0
- package/app/Controllers/QueryController.ts +373 -0
- package/app/Events.ts +14 -0
- package/app/Gates.ts +107 -0
- package/app/Jobs/ExampleJob.ts +20 -0
- package/app/Jobs/ExampleTwoJob.ts +12 -0
- package/app/Jobs/PruneModelsJob.ts +61 -0
- package/app/Jobs/PruneQueryLogsJob.ts +51 -0
- package/app/Jobs/README.md +79 -0
- package/app/Jobs/SendCampaignJob.ts +201 -0
- package/app/Jobs/SendEmailJob.ts +52 -0
- package/app/Jobs/SendPasswordResetEmailJob.ts +44 -0
- package/app/Jobs/SyncSearchIndexJob.ts +64 -0
- package/app/Listener.ts +84 -0
- package/app/Listeners/Console.ts +22 -0
- package/app/Listeners/README.md +47 -0
- package/app/Mail/OrderConfirmation.ts +60 -0
- package/app/Mail/SubscriptionConfirmation.ts +41 -0
- package/app/Middleware/Abilities.ts +53 -0
- package/app/Middleware/Api.ts +26 -0
- package/app/Middleware/Auth.ts +59 -0
- package/app/Middleware/Can.ts +68 -0
- package/app/Middleware/Compress.ts +213 -0
- package/app/Middleware/Cors.ts +320 -0
- package/app/Middleware/Csrf.ts +224 -0
- package/app/Middleware/EnsureEmailIsVerified.ts +28 -0
- package/app/Middleware/Env.ts +24 -0
- package/app/Middleware/EnvDevelopment.ts +19 -0
- package/app/Middleware/EnvLocal.ts +19 -0
- package/app/Middleware/EnvNotDevelopment.ts +19 -0
- package/app/Middleware/EnvNotLocal.ts +19 -0
- package/app/Middleware/EnvNotProduction.ts +19 -0
- package/app/Middleware/EnvNotStaging.ts +19 -0
- package/app/Middleware/EnvProduction.ts +19 -0
- package/app/Middleware/EnvStaging.ts +19 -0
- package/app/Middleware/Guest.ts +25 -0
- package/app/Middleware/Logger.ts +20 -0
- package/app/Middleware/Maintenance.ts +36 -0
- package/app/Middleware/Permission.ts +42 -0
- package/app/Middleware/README.md +48 -0
- package/app/Middleware/Role.ts +42 -0
- package/app/Middleware/Signed.ts +31 -0
- package/app/Middleware/Team.ts +36 -0
- package/app/Middleware/Throttle.ts +96 -0
- package/app/Middleware.ts +35 -0
- package/app/Models/Activity.ts +94 -0
- package/app/Models/Board.ts +103 -0
- package/app/Models/BoardColumn.ts +87 -0
- package/app/Models/Campaign.ts +239 -0
- package/app/Models/CampaignSend.ts +107 -0
- package/app/Models/Card.ts +117 -0
- package/app/Models/CardComment.ts +68 -0
- package/app/Models/Comment.ts +108 -0
- package/app/Models/Content/Author.ts +104 -0
- package/app/Models/Content/Page.ts +99 -0
- package/app/Models/Content/Post.ts +144 -0
- package/app/Models/Deployment.ts +116 -0
- package/app/Models/EmailList.ts +126 -0
- package/app/Models/EmailListSubscriber.ts +91 -0
- package/app/Models/Error.ts +70 -0
- package/app/Models/FailedJob.ts +62 -0
- package/app/Models/Job.ts +63 -0
- package/app/Models/Label.ts +66 -0
- package/app/Models/Log.ts +110 -0
- package/app/Models/Notification.ts +118 -0
- package/app/Models/PaymentMethod.ts +98 -0
- package/app/Models/PaymentProduct.ts +91 -0
- package/app/Models/PaymentTransaction.ts +78 -0
- package/app/Models/README.md +31 -0
- package/app/Models/Release.ts +89 -0
- package/app/Models/Request.ts +114 -0
- package/app/Models/SocialPost.ts +136 -0
- package/app/Models/Subscriber.ts +89 -0
- package/app/Models/SubscriberEmail.ts +55 -0
- package/app/Models/Subscription.ts +153 -0
- package/app/Models/Tag.ts +82 -0
- package/app/Models/Team.ts +72 -0
- package/app/Models/User.ts +134 -0
- package/app/Models/commerce/Cart.ts +139 -0
- package/app/Models/commerce/CartItem.ts +137 -0
- package/app/Models/commerce/Category.ts +105 -0
- package/app/Models/commerce/Coupon.ts +181 -0
- package/app/Models/commerce/Customer.ts +132 -0
- package/app/Models/commerce/DeliveryRoute.ts +93 -0
- package/app/Models/commerce/DigitalDelivery.ts +105 -0
- package/app/Models/commerce/Driver.ts +97 -0
- package/app/Models/commerce/GiftCard.ts +191 -0
- package/app/Models/commerce/LicenseKey.ts +87 -0
- package/app/Models/commerce/LoyaltyPoint.ts +107 -0
- package/app/Models/commerce/LoyaltyReward.ts +124 -0
- package/app/Models/commerce/Manufacturer.ts +84 -0
- package/app/Models/commerce/Order.ts +142 -0
- package/app/Models/commerce/OrderItem.ts +51 -0
- package/app/Models/commerce/Payment.ts +163 -0
- package/app/Models/commerce/PrintDevice.ts +117 -0
- package/app/Models/commerce/Product.ts +148 -0
- package/app/Models/commerce/ProductUnit.ts +107 -0
- package/app/Models/commerce/ProductVariant.ts +106 -0
- package/app/Models/commerce/Receipt.ts +128 -0
- package/app/Models/commerce/Review.ts +140 -0
- package/app/Models/commerce/ShippingMethod.ts +97 -0
- package/app/Models/commerce/ShippingRate.ts +74 -0
- package/app/Models/commerce/ShippingZone.ts +111 -0
- package/app/Models/commerce/TaxRate.ts +114 -0
- package/app/Models/commerce/Transaction.ts +126 -0
- package/app/Models/commerce/WaitlistProduct.ts +149 -0
- package/app/Models/commerce/WaitlistRestaurant.ts +187 -0
- package/app/Models/realtime/Websocket.ts +77 -0
- package/app/Notifications/README.md +31 -0
- package/app/Notifications/Welcome.ts +32 -0
- package/app/Policies/PostPolicy.ts +131 -0
- package/app/README.md +23 -0
- package/app/Routes.ts +47 -0
- package/app/Scheduler.ts +28 -0
- package/app/Storefront/CartCookie.ts +109 -0
- package/package.json +3 -2
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { errors } from '@stacksjs/commerce'
|
|
3
|
+
import { response } from '@stacksjs/router'
|
|
4
|
+
|
|
5
|
+
export default new Action({
|
|
6
|
+
name: 'Error Group',
|
|
7
|
+
description: 'Fetch all errors in a specific group (by type and message)',
|
|
8
|
+
method: 'GET',
|
|
9
|
+
async handle(request: RequestInstance) {
|
|
10
|
+
const type = decodeURIComponent(request.string('type'))
|
|
11
|
+
const message = decodeURIComponent(request.string('message'))
|
|
12
|
+
|
|
13
|
+
if (!type || !message) {
|
|
14
|
+
return response.json({ error: 'Both type and message are required' }, 400)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const results = await errors.fetchByGroup(type, message)
|
|
18
|
+
|
|
19
|
+
return response.json({ data: results })
|
|
20
|
+
},
|
|
21
|
+
})
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { errors } from '@stacksjs/commerce'
|
|
3
|
+
import { response } from '@stacksjs/router'
|
|
4
|
+
|
|
5
|
+
export default new Action({
|
|
6
|
+
name: 'Error Ignore',
|
|
7
|
+
description: 'Ignore all errors in a group',
|
|
8
|
+
method: 'PATCH',
|
|
9
|
+
async handle(request: RequestInstance) {
|
|
10
|
+
const type = request.string('type')
|
|
11
|
+
const message = request.string('message')
|
|
12
|
+
|
|
13
|
+
if (!type || !message) {
|
|
14
|
+
return response.json({ error: 'Both type and message are required' }, 400)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const success = await errors.ignoreGroup(type, message)
|
|
18
|
+
|
|
19
|
+
if (!success) {
|
|
20
|
+
return response.json({ error: 'Failed to ignore errors' }, 500)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return response.json({ data: { success: true, message: 'Errors ignored successfully' } })
|
|
24
|
+
},
|
|
25
|
+
})
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { errors } from '@stacksjs/commerce'
|
|
3
|
+
import { response } from '@stacksjs/router'
|
|
4
|
+
|
|
5
|
+
export default new Action({
|
|
6
|
+
name: 'Error Index',
|
|
7
|
+
description: 'Fetch all grouped errors (Sentry-like aggregation)',
|
|
8
|
+
method: 'GET',
|
|
9
|
+
async handle() {
|
|
10
|
+
const results = await errors.fetchGrouped()
|
|
11
|
+
|
|
12
|
+
return response.json({ data: results })
|
|
13
|
+
},
|
|
14
|
+
})
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { errors } from '@stacksjs/commerce'
|
|
3
|
+
import { response } from '@stacksjs/router'
|
|
4
|
+
|
|
5
|
+
export default new Action({
|
|
6
|
+
name: 'Error Resolve',
|
|
7
|
+
description: 'Resolve all errors in a group',
|
|
8
|
+
method: 'PATCH',
|
|
9
|
+
async handle(request: RequestInstance) {
|
|
10
|
+
const type = request.string('type')
|
|
11
|
+
const message = request.string('message')
|
|
12
|
+
|
|
13
|
+
if (!type || !message) {
|
|
14
|
+
return response.json({ error: 'Both type and message are required' }, 400)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const success = await errors.resolveGroup(type, message)
|
|
18
|
+
|
|
19
|
+
if (!success) {
|
|
20
|
+
return response.json({ error: 'Failed to resolve errors' }, 500)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return response.json({ data: { success: true, message: 'Errors resolved successfully' } })
|
|
24
|
+
},
|
|
25
|
+
})
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { errors } from '@stacksjs/commerce'
|
|
3
|
+
import { response } from '@stacksjs/router'
|
|
4
|
+
|
|
5
|
+
export default new Action({
|
|
6
|
+
name: 'Error Show',
|
|
7
|
+
description: 'Fetch a single error by ID',
|
|
8
|
+
method: 'GET',
|
|
9
|
+
async handle(request: RequestInstance) {
|
|
10
|
+
const id = request.getParamAsInt('id')
|
|
11
|
+
const result = await errors.fetchById(id)
|
|
12
|
+
|
|
13
|
+
if (!result) {
|
|
14
|
+
return response.json({ error: 'Error not found' }, 404)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return response.json({ data: result })
|
|
18
|
+
},
|
|
19
|
+
})
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { errors } from '@stacksjs/commerce'
|
|
3
|
+
import { response } from '@stacksjs/router'
|
|
4
|
+
|
|
5
|
+
export default new Action({
|
|
6
|
+
name: 'Error Stats',
|
|
7
|
+
description: 'Fetch error statistics',
|
|
8
|
+
method: 'GET',
|
|
9
|
+
async handle() {
|
|
10
|
+
const stats = await errors.fetchStats()
|
|
11
|
+
|
|
12
|
+
return response.json({ data: stats })
|
|
13
|
+
},
|
|
14
|
+
})
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { errors } from '@stacksjs/commerce'
|
|
3
|
+
import { response } from '@stacksjs/router'
|
|
4
|
+
|
|
5
|
+
export default new Action({
|
|
6
|
+
name: 'Error Timeline',
|
|
7
|
+
description: 'Fetch error timeline (hourly counts for last 24 hours)',
|
|
8
|
+
method: 'GET',
|
|
9
|
+
async handle() {
|
|
10
|
+
const timeline = await errors.fetchTimeline()
|
|
11
|
+
|
|
12
|
+
return response.json({ data: timeline })
|
|
13
|
+
},
|
|
14
|
+
})
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { errors } from '@stacksjs/commerce'
|
|
3
|
+
import { response } from '@stacksjs/router'
|
|
4
|
+
|
|
5
|
+
export default new Action({
|
|
6
|
+
name: 'Error Unresolve',
|
|
7
|
+
description: 'Unresolve (reopen) all errors in a group',
|
|
8
|
+
method: 'PATCH',
|
|
9
|
+
async handle(request: RequestInstance) {
|
|
10
|
+
const type = request.string('type')
|
|
11
|
+
const message = request.string('message')
|
|
12
|
+
|
|
13
|
+
if (!type || !message) {
|
|
14
|
+
return response.json({ error: 'Both type and message are required' }, 400)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const success = await errors.unresolveGroup(type, message)
|
|
18
|
+
|
|
19
|
+
if (!success) {
|
|
20
|
+
return response.json({ error: 'Failed to unresolve errors' }, 500)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return response.json({ data: { success: true, message: 'Errors unresolved successfully' } })
|
|
24
|
+
},
|
|
25
|
+
})
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { passwordResets, RateLimiter } from '@stacksjs/auth'
|
|
3
|
+
import { response } from '@stacksjs/router'
|
|
4
|
+
|
|
5
|
+
export default new Action({
|
|
6
|
+
name: 'PasswordResetAction',
|
|
7
|
+
description: 'Password Reset',
|
|
8
|
+
method: 'POST',
|
|
9
|
+
async handle(request) {
|
|
10
|
+
const token = request.get('token')
|
|
11
|
+
const password = request.get('password')
|
|
12
|
+
const passwordConfirmation = request.get('password_confirmation')
|
|
13
|
+
const email = request.get('email')
|
|
14
|
+
|
|
15
|
+
// Validate required fields
|
|
16
|
+
if (!token || !password || !email) {
|
|
17
|
+
return response.error('Missing required fields', 422)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Validate password confirmation
|
|
21
|
+
if (password !== passwordConfirmation) {
|
|
22
|
+
return response.error('Password confirmation does not match', 422)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Validate password strength (minimum 8 characters)
|
|
26
|
+
if (password.length < 8) {
|
|
27
|
+
return response.error('Password must be at least 8 characters', 422)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Rate limit password reset attempts by email
|
|
31
|
+
const rateLimitKey = `password_reset_attempt:${email.toLowerCase()}`
|
|
32
|
+
if (await RateLimiter.isRateLimited(rateLimitKey)) {
|
|
33
|
+
return response.error('Too many password reset attempts. Please try again later.', 429)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Attempt to reset the password
|
|
37
|
+
// This handles user existence check internally and returns a detailed result
|
|
38
|
+
const result = await passwordResets(email).resetPassword(token, password)
|
|
39
|
+
|
|
40
|
+
if (!result.success) {
|
|
41
|
+
// Record failed attempt for rate limiting
|
|
42
|
+
await RateLimiter.recordFailedAttempt(rateLimitKey)
|
|
43
|
+
|
|
44
|
+
// Return appropriate error message without leaking user existence
|
|
45
|
+
// Both "user not found" and "invalid token" return the same generic message
|
|
46
|
+
return response.error(result.message || 'Invalid or expired reset token', 400)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Clear rate limit on successful reset
|
|
50
|
+
await RateLimiter.resetAttempts(rateLimitKey)
|
|
51
|
+
|
|
52
|
+
return response.success('Password has been reset successfully')
|
|
53
|
+
},
|
|
54
|
+
})
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { RateLimiter } from '@stacksjs/auth'
|
|
3
|
+
import { User } from '@stacksjs/orm'
|
|
4
|
+
import { job } from '@stacksjs/queue'
|
|
5
|
+
import { response } from '@stacksjs/router'
|
|
6
|
+
import { schema } from '@stacksjs/validation'
|
|
7
|
+
|
|
8
|
+
export default new Action({
|
|
9
|
+
name: 'SendPasswordResetEmailAction',
|
|
10
|
+
description: 'Send Password Reset Email',
|
|
11
|
+
method: 'POST',
|
|
12
|
+
validations: {
|
|
13
|
+
email: {
|
|
14
|
+
rule: schema.string().email().required(),
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
async handle(request) {
|
|
18
|
+
console.log('[Action] SendPasswordResetEmailAction.handle() called')
|
|
19
|
+
|
|
20
|
+
const email = request.get('email')
|
|
21
|
+
console.log('[Action] Email from request:', email)
|
|
22
|
+
|
|
23
|
+
if (!email) {
|
|
24
|
+
console.log('[Action] No email provided, returning 422')
|
|
25
|
+
return response.error('Email is required', 422)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// Rate limit password reset requests by email
|
|
29
|
+
const rateLimitKey = `password_reset:${email.toLowerCase()}`
|
|
30
|
+
if (await RateLimiter.isRateLimited(rateLimitKey)) {
|
|
31
|
+
console.log('[Action] Rate limited for:', rateLimitKey)
|
|
32
|
+
return response.error('Too many password reset attempts. Please try again later.', 429)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Record the attempt
|
|
36
|
+
await RateLimiter.recordFailedAttempt(rateLimitKey)
|
|
37
|
+
console.log('[Action] Recorded rate limit attempt')
|
|
38
|
+
|
|
39
|
+
// Check if user exists
|
|
40
|
+
console.log('[Action] Looking up user by email...')
|
|
41
|
+
const user = await User.where('email', email).first()
|
|
42
|
+
|
|
43
|
+
if (!user) {
|
|
44
|
+
console.log('[Action] User not found for email:', email)
|
|
45
|
+
return response.error('No account found with this email address.', 404)
|
|
46
|
+
}
|
|
47
|
+
console.log('[Action] User found:', user.id)
|
|
48
|
+
|
|
49
|
+
// Dispatch password reset email job to queue (with 10 second delay)
|
|
50
|
+
console.log('[Action] About to dispatch SendPasswordResetEmailJob with 10s delay...')
|
|
51
|
+
try {
|
|
52
|
+
await job('SendPasswordResetEmailJob', { email })
|
|
53
|
+
.onQueue('emails')
|
|
54
|
+
.dispatch()
|
|
55
|
+
console.log('[Action] Job dispatched successfully with 10s delay!')
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
console.error('[Action] Failed to dispatch email job for', email)
|
|
59
|
+
console.error('[Action] Error:', error)
|
|
60
|
+
return response.error('Failed to send password reset email. Please try again later.', 500)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
console.log('[Action] Returning success response')
|
|
64
|
+
return response.success('Password reset link has been sent to your email.')
|
|
65
|
+
},
|
|
66
|
+
})
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { passwordResets } from '@stacksjs/auth'
|
|
3
|
+
import { response } from '@stacksjs/router'
|
|
4
|
+
|
|
5
|
+
export default new Action({
|
|
6
|
+
name: 'VerifyResetTokenAction',
|
|
7
|
+
description: 'Verify Password Reset Token',
|
|
8
|
+
method: 'POST',
|
|
9
|
+
async handle(request) {
|
|
10
|
+
const token = request.get('token')
|
|
11
|
+
const email = request.get('email')
|
|
12
|
+
|
|
13
|
+
// Validate required fields
|
|
14
|
+
if (!token || !email) {
|
|
15
|
+
return response.error('Token and email are required', 422)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// Verify the token
|
|
19
|
+
const isValid = await passwordResets(email).verifyToken(token)
|
|
20
|
+
|
|
21
|
+
if (!isValid) {
|
|
22
|
+
return response.error('Invalid or expired reset token', 400)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return response.success('Token is valid')
|
|
26
|
+
},
|
|
27
|
+
})
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { response } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
export default new Action({
|
|
5
|
+
name: 'CancelSubscriptionAction',
|
|
6
|
+
description: 'Cancel Subscription for stripe',
|
|
7
|
+
method: 'POST',
|
|
8
|
+
async handle(request: RequestInstance) {
|
|
9
|
+
const providerId = request.get('providerId') as string
|
|
10
|
+
|
|
11
|
+
const user = await request.user()
|
|
12
|
+
|
|
13
|
+
if (!user)
|
|
14
|
+
return response.unauthorized('Authentication required')
|
|
15
|
+
|
|
16
|
+
const subscription = await user?.cancelSubscription(providerId)
|
|
17
|
+
|
|
18
|
+
return response.json(subscription?.paymentIntent)
|
|
19
|
+
},
|
|
20
|
+
})
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { response } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
export default new Action({
|
|
5
|
+
name: 'CreateCheckoutAction',
|
|
6
|
+
description: 'Create Checkout link for stripe',
|
|
7
|
+
method: 'POST',
|
|
8
|
+
async handle(request: RequestInstance) {
|
|
9
|
+
const user = await request.user()
|
|
10
|
+
|
|
11
|
+
if (!user)
|
|
12
|
+
return response.unauthorized('Authentication required')
|
|
13
|
+
|
|
14
|
+
const checkout = await user?.checkout([
|
|
15
|
+
{
|
|
16
|
+
priceId: 'price_1QBEfsBv6MhUdo23avVV0kqx',
|
|
17
|
+
quantity: 1,
|
|
18
|
+
},
|
|
19
|
+
], {
|
|
20
|
+
enableTax: true,
|
|
21
|
+
allowPromotions: true,
|
|
22
|
+
cancel_url: 'https://google.com',
|
|
23
|
+
success_url: 'https://google.com',
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
return response.json(checkout)
|
|
27
|
+
},
|
|
28
|
+
})
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { response } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
export default new Action({
|
|
5
|
+
name: 'CreateInvoiceSubscription',
|
|
6
|
+
description: 'Create Invoice Subscription for Stripe',
|
|
7
|
+
method: 'POST',
|
|
8
|
+
async handle(request: RequestInstance) {
|
|
9
|
+
const user = await request.user()
|
|
10
|
+
|
|
11
|
+
if (!user)
|
|
12
|
+
return response.unauthorized('Authentication required')
|
|
13
|
+
|
|
14
|
+
const subscription = await user?.newSubscriptionInvoice('pro', 'stacks_pro_monthly')
|
|
15
|
+
|
|
16
|
+
return response.json(subscription)
|
|
17
|
+
},
|
|
18
|
+
})
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { HttpError } from '@stacksjs/error-handling'
|
|
3
|
+
import { response } from '@stacksjs/router'
|
|
4
|
+
|
|
5
|
+
export default new Action({
|
|
6
|
+
name: 'CreatePaymentIntentAction',
|
|
7
|
+
description: 'Create Payment Intent for stripe',
|
|
8
|
+
method: 'POST',
|
|
9
|
+
async handle(request: RequestInstance) {
|
|
10
|
+
const productId = Number(request.get('productId'))
|
|
11
|
+
|
|
12
|
+
const product = await Product.find(productId)
|
|
13
|
+
|
|
14
|
+
const user = await request.user()
|
|
15
|
+
|
|
16
|
+
if (!user)
|
|
17
|
+
return response.unauthorized('Authentication required')
|
|
18
|
+
|
|
19
|
+
if (!product) {
|
|
20
|
+
throw new HttpError(422, 'Product not found!')
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const paymentIntent = await user?.paymentIntent({
|
|
24
|
+
amount: Number(product.unit_price),
|
|
25
|
+
currency: 'usd',
|
|
26
|
+
payment_method_types: ['card'],
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
return response.json(paymentIntent)
|
|
30
|
+
},
|
|
31
|
+
})
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { response } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
export default new Action({
|
|
5
|
+
name: 'CreateSetupIntentAction',
|
|
6
|
+
description: 'Create Setup Intent for stripe',
|
|
7
|
+
method: 'POST',
|
|
8
|
+
async handle(request: RequestInstance) {
|
|
9
|
+
const user = await request.user()
|
|
10
|
+
|
|
11
|
+
if (!user)
|
|
12
|
+
return response.unauthorized('Authentication required')
|
|
13
|
+
|
|
14
|
+
const setupIntent = await user?.createSetupIntent({
|
|
15
|
+
payment_method_types: ['card', 'link', 'us_bank_account'],
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
return response.json(setupIntent)
|
|
19
|
+
},
|
|
20
|
+
})
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { response } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
export default new Action({
|
|
5
|
+
name: 'CreateSubscriptionAction',
|
|
6
|
+
description: 'Create Subscription for stripe',
|
|
7
|
+
method: 'POST',
|
|
8
|
+
async handle(request: RequestInstance) {
|
|
9
|
+
const type = request.get('type') as string
|
|
10
|
+
const plan = request.get('plan') as string
|
|
11
|
+
const period = request.get('period') as string
|
|
12
|
+
const description = request.get('description') as string
|
|
13
|
+
|
|
14
|
+
const user = await request.user()
|
|
15
|
+
|
|
16
|
+
if (!user)
|
|
17
|
+
return response.unauthorized('Authentication required')
|
|
18
|
+
|
|
19
|
+
const subscription = await user?.newSubscription(plan, type, { description, metadata: { period } })
|
|
20
|
+
|
|
21
|
+
return response.json(subscription?.paymentIntent)
|
|
22
|
+
},
|
|
23
|
+
})
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { response } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
export default new Action({
|
|
5
|
+
name: 'DeleteDefaultPaymentAction',
|
|
6
|
+
description: 'Delete the customers default payment method',
|
|
7
|
+
method: 'POST',
|
|
8
|
+
async handle(request: RequestInstance) {
|
|
9
|
+
const user = await request.user()
|
|
10
|
+
|
|
11
|
+
if (!user)
|
|
12
|
+
return response.unauthorized('Authentication required')
|
|
13
|
+
|
|
14
|
+
const paymentMethod = Number(request.get('paymentMethod'))
|
|
15
|
+
|
|
16
|
+
await user?.deletePaymentMethod(paymentMethod)
|
|
17
|
+
},
|
|
18
|
+
})
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { response } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
export default new Action({
|
|
5
|
+
name: 'FetchActiveSubscriptionAction',
|
|
6
|
+
description: 'Fetch the current active subscription',
|
|
7
|
+
method: 'GET',
|
|
8
|
+
async handle(request: RequestInstance) {
|
|
9
|
+
const user = await request.user()
|
|
10
|
+
|
|
11
|
+
if (!user)
|
|
12
|
+
return response.unauthorized('Authentication required')
|
|
13
|
+
|
|
14
|
+
const subscription = await user?.activeSubscription()
|
|
15
|
+
|
|
16
|
+
return response.json(subscription)
|
|
17
|
+
},
|
|
18
|
+
})
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { response } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
export default new Action({
|
|
5
|
+
name: 'FetchDefaultPaymentMethodAction',
|
|
6
|
+
description: 'Fetch the users default payment method',
|
|
7
|
+
method: 'GET',
|
|
8
|
+
async handle(request: RequestInstance) {
|
|
9
|
+
const user = await request.user()
|
|
10
|
+
|
|
11
|
+
if (!user)
|
|
12
|
+
return response.unauthorized('Authentication required')
|
|
13
|
+
|
|
14
|
+
const paymentMethod = await user?.defaultPaymentMethod()
|
|
15
|
+
|
|
16
|
+
return response.json(paymentMethod)
|
|
17
|
+
},
|
|
18
|
+
})
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { response } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
export default new Action({
|
|
5
|
+
name: 'FetchPaymentCustomerAction',
|
|
6
|
+
description: 'Fetch the payment customer',
|
|
7
|
+
method: 'GET',
|
|
8
|
+
async handle(request: RequestInstance) {
|
|
9
|
+
const user = await request.user()
|
|
10
|
+
|
|
11
|
+
if (!user)
|
|
12
|
+
return response.unauthorized('Authentication required')
|
|
13
|
+
|
|
14
|
+
const customer = await user?.asStripeUser()
|
|
15
|
+
|
|
16
|
+
return response.json(customer)
|
|
17
|
+
},
|
|
18
|
+
})
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { response } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
export default new Action({
|
|
5
|
+
name: 'FetchPaymentMethodsAction',
|
|
6
|
+
description: 'Fetch the user payment methods',
|
|
7
|
+
method: 'GET',
|
|
8
|
+
async handle(request: RequestInstance) {
|
|
9
|
+
const user = await request.user()
|
|
10
|
+
|
|
11
|
+
if (!user)
|
|
12
|
+
return response.unauthorized('Authentication required')
|
|
13
|
+
|
|
14
|
+
const paymentMethods = await user?.paymentMethods()
|
|
15
|
+
|
|
16
|
+
return response.json(paymentMethods)
|
|
17
|
+
},
|
|
18
|
+
})
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { response } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
export default new Action({
|
|
5
|
+
name: 'FetchProductAction',
|
|
6
|
+
description: 'Fetch the product id',
|
|
7
|
+
method: 'GET',
|
|
8
|
+
async handle(request: RequestInstance) {
|
|
9
|
+
const productId = Number(request.getParam('id'))
|
|
10
|
+
|
|
11
|
+
const product = await Product.find(productId)
|
|
12
|
+
|
|
13
|
+
return response.json(product)
|
|
14
|
+
},
|
|
15
|
+
})
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { response } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
export default new Action({
|
|
5
|
+
name: 'FetchTransactionHistoryAction',
|
|
6
|
+
description: 'Fetch the users transaction history',
|
|
7
|
+
method: 'GET',
|
|
8
|
+
async handle(request: RequestInstance) {
|
|
9
|
+
const user = await request.user()
|
|
10
|
+
|
|
11
|
+
if (!user)
|
|
12
|
+
return response.unauthorized('Authentication required')
|
|
13
|
+
|
|
14
|
+
const transactions = await PaymentTransaction.where('user_id', user?.id).get()
|
|
15
|
+
|
|
16
|
+
return response.json(transactions)
|
|
17
|
+
},
|
|
18
|
+
})
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { response } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
export default new Action({
|
|
5
|
+
name: 'FetchUserSubscriptionsAction',
|
|
6
|
+
description: 'Fetch the users subscriptions',
|
|
7
|
+
method: 'GET',
|
|
8
|
+
async handle(request: RequestInstance) {
|
|
9
|
+
const user = await request.user()
|
|
10
|
+
|
|
11
|
+
if (!user)
|
|
12
|
+
return response.unauthorized('Authentication required')
|
|
13
|
+
|
|
14
|
+
const subscriptions = await user?.subscriptions
|
|
15
|
+
|
|
16
|
+
return response.json(subscriptions)
|
|
17
|
+
},
|
|
18
|
+
})
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { response } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
export default new Action({
|
|
5
|
+
name: 'SetDefaultPaymentAction',
|
|
6
|
+
description: 'Set the customers default payment method',
|
|
7
|
+
method: 'POST',
|
|
8
|
+
async handle(request: RequestInstance) {
|
|
9
|
+
const user = await request.user()
|
|
10
|
+
|
|
11
|
+
if (!user)
|
|
12
|
+
return response.unauthorized('Authentication required')
|
|
13
|
+
|
|
14
|
+
const paymentId = Number(request.get('setupIntent'))
|
|
15
|
+
|
|
16
|
+
const paymentMethod = await user?.setDefaultPaymentMethod(paymentId)
|
|
17
|
+
|
|
18
|
+
return response.json(paymentMethod)
|
|
19
|
+
},
|
|
20
|
+
})
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Action } from '@stacksjs/actions'
|
|
2
|
+
import { response } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
export default new Action({
|
|
5
|
+
name: 'SetUserDefaultPaymentAction',
|
|
6
|
+
description: 'Set the customers default payment method from provider callback',
|
|
7
|
+
method: 'POST',
|
|
8
|
+
async handle(request: RequestInstance) {
|
|
9
|
+
const user = await request.user()
|
|
10
|
+
|
|
11
|
+
if (!user)
|
|
12
|
+
return response.unauthorized('Authentication required')
|
|
13
|
+
|
|
14
|
+
const paymentId = String(request.get('setupIntent'))
|
|
15
|
+
|
|
16
|
+
const paymentMethod = await user?.setUserDefaultPaymentMethod(paymentId)
|
|
17
|
+
|
|
18
|
+
return response.json(paymentMethod)
|
|
19
|
+
},
|
|
20
|
+
})
|