@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.
- 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,19 @@
|
|
|
1
|
+
import { config } from '@stacksjs/config'
|
|
2
|
+
import { HttpError } from '@stacksjs/error-handling'
|
|
3
|
+
import { Middleware } from '@stacksjs/router'
|
|
4
|
+
|
|
5
|
+
export default new Middleware({
|
|
6
|
+
name: 'EnvNotProduction',
|
|
7
|
+
priority: 1,
|
|
8
|
+
async handle() {
|
|
9
|
+
const currentEnv = config.app.env || 'local'
|
|
10
|
+
|
|
11
|
+
// Block access in production environment (allow all others)
|
|
12
|
+
if (currentEnv === 'production' || currentEnv === 'prod') {
|
|
13
|
+
throw new HttpError(
|
|
14
|
+
403,
|
|
15
|
+
`Access denied. This route is not available in production environment. Current environment: ${currentEnv}`,
|
|
16
|
+
)
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
})
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { config } from '@stacksjs/config'
|
|
2
|
+
import { HttpError } from '@stacksjs/error-handling'
|
|
3
|
+
import { Middleware } from '@stacksjs/router'
|
|
4
|
+
|
|
5
|
+
export default new Middleware({
|
|
6
|
+
name: 'EnvNotStaging',
|
|
7
|
+
priority: 1,
|
|
8
|
+
async handle() {
|
|
9
|
+
const currentEnv = config.app.env || 'local'
|
|
10
|
+
|
|
11
|
+
// Block access in staging environment (allow all others)
|
|
12
|
+
if (currentEnv === 'staging') {
|
|
13
|
+
throw new HttpError(
|
|
14
|
+
403,
|
|
15
|
+
`Access denied. This route is not available in staging environment. Current environment: ${currentEnv}`,
|
|
16
|
+
)
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
})
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { config } from '@stacksjs/config'
|
|
2
|
+
import { HttpError } from '@stacksjs/error-handling'
|
|
3
|
+
import { Middleware } from '@stacksjs/router'
|
|
4
|
+
|
|
5
|
+
export default new Middleware({
|
|
6
|
+
name: 'EnvProduction',
|
|
7
|
+
priority: 1,
|
|
8
|
+
async handle() {
|
|
9
|
+
const currentEnv = config.app.env || 'local'
|
|
10
|
+
|
|
11
|
+
// Only allow access in production environment
|
|
12
|
+
if (currentEnv !== 'production' && currentEnv !== 'prod') {
|
|
13
|
+
throw new HttpError(
|
|
14
|
+
403,
|
|
15
|
+
`Access denied. This route is only available in production environment. Current environment: ${currentEnv}`,
|
|
16
|
+
)
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
})
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { config } from '@stacksjs/config'
|
|
2
|
+
import { HttpError } from '@stacksjs/error-handling'
|
|
3
|
+
import { Middleware } from '@stacksjs/router'
|
|
4
|
+
|
|
5
|
+
export default new Middleware({
|
|
6
|
+
name: 'EnvStaging',
|
|
7
|
+
priority: 1,
|
|
8
|
+
async handle() {
|
|
9
|
+
const currentEnv = config.app.env || 'local'
|
|
10
|
+
|
|
11
|
+
// Only allow access in staging environment
|
|
12
|
+
if (currentEnv !== 'staging') {
|
|
13
|
+
throw new HttpError(
|
|
14
|
+
403,
|
|
15
|
+
`Access denied. This route is only available in staging environment. Current environment: ${currentEnv}`,
|
|
16
|
+
)
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
})
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { HttpError } from '@stacksjs/error-handling'
|
|
2
|
+
import { Middleware } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Guest Middleware
|
|
6
|
+
*
|
|
7
|
+
* Ensures that the request is NOT authenticated. Useful for routes
|
|
8
|
+
* that should only be accessible to unauthenticated users (e.g., login, register).
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* route.get('/login', 'LoginAction').middleware('guest')
|
|
12
|
+
* route.post('/register', 'RegisterAction').middleware('guest')
|
|
13
|
+
*/
|
|
14
|
+
export default new Middleware({
|
|
15
|
+
name: 'guest',
|
|
16
|
+
priority: 1,
|
|
17
|
+
|
|
18
|
+
async handle(request) {
|
|
19
|
+
const token = request._currentAccessToken || request._authenticatedUser
|
|
20
|
+
|
|
21
|
+
if (token) {
|
|
22
|
+
throw new HttpError(403, 'You are already authenticated.')
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
})
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { log } from '@stacksjs/cli'
|
|
2
|
+
import { Middleware } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
export default new Middleware({
|
|
5
|
+
name: 'Logger',
|
|
6
|
+
priority: 2,
|
|
7
|
+
async handle(request) {
|
|
8
|
+
// eslint-disable-next-line pickier/no-unused-vars
|
|
9
|
+
const start = performance.now()
|
|
10
|
+
const method = request?.method || 'UNKNOWN'
|
|
11
|
+
const url = request?.url || 'unknown'
|
|
12
|
+
const path = url ? new URL(url, 'http://localhost').pathname : 'unknown'
|
|
13
|
+
|
|
14
|
+
log.info(`→ ${method} ${path}`)
|
|
15
|
+
|
|
16
|
+
// Return undefined to continue middleware chain
|
|
17
|
+
// The response timing is logged by the after hook if available
|
|
18
|
+
return undefined
|
|
19
|
+
},
|
|
20
|
+
})
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Middleware } from '@stacksjs/router'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Maintenance / Coming-Soon Middleware
|
|
5
|
+
*
|
|
6
|
+
* Global middleware that gates every request when the application has
|
|
7
|
+
* been flipped into a protected site mode via either:
|
|
8
|
+
*
|
|
9
|
+
* - `buddy down` / `buddy up` (maintenance mode), or
|
|
10
|
+
* - `buddy coming-soon` / `buddy launch` (coming-soon mode), or
|
|
11
|
+
* - the `APP_MAINTENANCE` / `APP_COMING_SOON` env vars in production.
|
|
12
|
+
*
|
|
13
|
+
* All gate logic — mode detection, secret-URL bypass, mode-aware bypass
|
|
14
|
+
* cookies, allowed IPs, always-allowed paths (the holding page itself,
|
|
15
|
+
* email subscribe, static assets) — lives in one place:
|
|
16
|
+
* `maintenanceGate()` in `@stacksjs/server`. The dev server's
|
|
17
|
+
* `onRequest` hook calls the same function, so dev and prod behave
|
|
18
|
+
* identically.
|
|
19
|
+
*
|
|
20
|
+
* Bypass methods:
|
|
21
|
+
* 1. Secret URL — visit `/your-secret` to set a bypass cookie.
|
|
22
|
+
* 2. Allowed IPs — configured with `--allow=IP` on either command.
|
|
23
|
+
* 3. Bypass cookie — automatically set when visiting the secret URL.
|
|
24
|
+
*/
|
|
25
|
+
export default new Middleware({
|
|
26
|
+
name: 'maintenance',
|
|
27
|
+
priority: 0, // Run first, before all other middleware
|
|
28
|
+
|
|
29
|
+
async handle(request) {
|
|
30
|
+
const { maintenanceGate } = await import('@stacksjs/server')
|
|
31
|
+
|
|
32
|
+
const gated = await maintenanceGate(request)
|
|
33
|
+
if (gated)
|
|
34
|
+
throw gated // short-circuit the request
|
|
35
|
+
},
|
|
36
|
+
})
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { HttpError } from '@stacksjs/error-handling'
|
|
2
|
+
import { Middleware } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Permission Middleware
|
|
6
|
+
*
|
|
7
|
+
* Checks if the authenticated user has the required permission(s).
|
|
8
|
+
* Checks both direct permissions and permissions inherited via roles.
|
|
9
|
+
* Must be used after the 'auth' middleware.
|
|
10
|
+
*
|
|
11
|
+
* Usage:
|
|
12
|
+
* - 'permission:edit-posts' — requires the edit-posts permission
|
|
13
|
+
* - 'permission:edit-posts,delete-posts' — requires any of the listed permissions
|
|
14
|
+
*
|
|
15
|
+
* Examples:
|
|
16
|
+
* route.put('/posts/:id', 'UpdatePostAction').middleware('auth').middleware('permission:edit-posts')
|
|
17
|
+
* route.delete('/posts/:id', 'DeletePostAction').middleware('auth').middleware('permission:delete-posts')
|
|
18
|
+
*/
|
|
19
|
+
export default new Middleware({
|
|
20
|
+
name: 'permission',
|
|
21
|
+
priority: 3,
|
|
22
|
+
|
|
23
|
+
async handle(request) {
|
|
24
|
+
const requiredPermissions = request._middlewareParams?.permission?.split(',').map((p: string) => p.trim()) || []
|
|
25
|
+
|
|
26
|
+
if (requiredPermissions.length === 0) return
|
|
27
|
+
|
|
28
|
+
const user = request.user || request._user || null
|
|
29
|
+
|
|
30
|
+
if (!user) {
|
|
31
|
+
throw new HttpError(401, 'Unauthenticated.')
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const { hasAnyPermission } = await import('@stacksjs/auth')
|
|
35
|
+
|
|
36
|
+
const hasRequired = await hasAnyPermission(user, requiredPermissions)
|
|
37
|
+
|
|
38
|
+
if (!hasRequired) {
|
|
39
|
+
throw new HttpError(403, `User does not have any of the required permissions: ${requiredPermissions.join(', ')}`)
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
})
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# What is a Middleware
|
|
2
|
+
|
|
3
|
+
Middleware is a way to define logic that should be executed before or after a specific event inside the request lifecycle.
|
|
4
|
+
|
|
5
|
+
## Get Started
|
|
6
|
+
|
|
7
|
+
The following command will bootstrap a new middleware file in the `app/Middleware` directory.
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
buddy make:middleware Logger
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Example
|
|
14
|
+
|
|
15
|
+
A simple example of a middleware that logs a message. _For a closer look, take a peak at the [Logger.ts](./Logger.ts) file._
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
const options: MiddlewareOtions = {
|
|
19
|
+
name: 'Logger', // optional, defaults to the file name
|
|
20
|
+
description: 'A demo listener that logs a message', // optional, used in the dashboard for context
|
|
21
|
+
priority: 2, // optional, defaults to 0
|
|
22
|
+
handle: () => {
|
|
23
|
+
log.info('Hi, from the Logger middleware 👋')
|
|
24
|
+
},
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export default new Middleware(options)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## 🚜 Contributing
|
|
31
|
+
|
|
32
|
+
Please review the [Contributing Guide](https://github.com/stacksjs/contributing) for details.
|
|
33
|
+
|
|
34
|
+
## 🏝 Community
|
|
35
|
+
|
|
36
|
+
For help, discussion about best practices, or any other conversation that would benefit from being searchable:
|
|
37
|
+
|
|
38
|
+
[Discussions on GitHub](https://github.com/stacksjs/stacks/discussions)
|
|
39
|
+
|
|
40
|
+
For casual chit-chat with others using this package:
|
|
41
|
+
|
|
42
|
+
[Join the Stacks Discord Server](https://discord.gg/stacksjs)
|
|
43
|
+
|
|
44
|
+
## 📄 License
|
|
45
|
+
|
|
46
|
+
The MIT License (MIT). Please see [LICENSE](../../LICENSE.md) for more information.
|
|
47
|
+
|
|
48
|
+
Made with 💙
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { HttpError } from '@stacksjs/error-handling'
|
|
2
|
+
import { Middleware } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Role Middleware
|
|
6
|
+
*
|
|
7
|
+
* Checks if the authenticated user has the required role(s).
|
|
8
|
+
* Must be used after the 'auth' middleware.
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* - 'role:admin' — requires the admin role
|
|
12
|
+
* - 'role:admin,editor' — requires any of the listed roles
|
|
13
|
+
*
|
|
14
|
+
* Examples:
|
|
15
|
+
* route.get('/admin', 'AdminAction').middleware('auth').middleware('role:admin')
|
|
16
|
+
* route.get('/content', 'ContentAction').middleware('auth').middleware('role:admin,editor')
|
|
17
|
+
*/
|
|
18
|
+
export default new Middleware({
|
|
19
|
+
name: 'role',
|
|
20
|
+
priority: 3,
|
|
21
|
+
|
|
22
|
+
async handle(request) {
|
|
23
|
+
const requiredRoles = request._middlewareParams?.role?.split(',').map((r: string) => r.trim()) || []
|
|
24
|
+
|
|
25
|
+
if (requiredRoles.length === 0) return
|
|
26
|
+
|
|
27
|
+
const user = request.user || request._user || null
|
|
28
|
+
|
|
29
|
+
if (!user) {
|
|
30
|
+
throw new HttpError(401, 'Unauthenticated.')
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Dynamically import to avoid circular dependency
|
|
34
|
+
const { hasAnyRole } = await import('@stacksjs/auth')
|
|
35
|
+
|
|
36
|
+
const hasRequired = await hasAnyRole(user, requiredRoles)
|
|
37
|
+
|
|
38
|
+
if (!hasRequired) {
|
|
39
|
+
throw new HttpError(403, `User does not have any of the required roles: ${requiredRoles.join(', ')}`)
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
})
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Middleware, verifySignedUrl } from '@stacksjs/router'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Signed-URL verification middleware (stacksjs/stacks#1870 R-7).
|
|
5
|
+
*
|
|
6
|
+
* Verifies the HMAC `signature` (and optional `expires`) on the request
|
|
7
|
+
* URL using the same `APP_KEY` / `STACKS_SIGNED_URL_SECRET` the
|
|
8
|
+
* `signedUrl(...)` builder signs with. Drop in as `.middleware('signed')`
|
|
9
|
+
* on any route minted by `signedUrl(...)`.
|
|
10
|
+
*
|
|
11
|
+
* Status codes:
|
|
12
|
+
* - `410 Gone` — expired (link existed but is no longer valid)
|
|
13
|
+
* - `401 Unauthorized` — missing signature or tampered URL
|
|
14
|
+
*
|
|
15
|
+
* The two cases are split so callers can distinguish "your link timed
|
|
16
|
+
* out, request a new one" from "this URL didn't come from us" in their
|
|
17
|
+
* frontend UX.
|
|
18
|
+
*
|
|
19
|
+
* Priority `5` so this runs ahead of auth (which defaults to 10) — a
|
|
20
|
+
* URL with a bad signature shouldn't get as far as the auth chain.
|
|
21
|
+
*/
|
|
22
|
+
export default new Middleware({
|
|
23
|
+
name: 'Signed',
|
|
24
|
+
priority: 5,
|
|
25
|
+
async handle(request) {
|
|
26
|
+
const result = verifySignedUrl(request.url)
|
|
27
|
+
if (result.valid) return
|
|
28
|
+
const status = result.reason === 'expired' ? 410 : 401
|
|
29
|
+
throw Response.json({ error: result.reason }, { status })
|
|
30
|
+
},
|
|
31
|
+
})
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { HttpError } from '@stacksjs/error-handling'
|
|
2
|
+
import { Middleware } from '@stacksjs/router'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Team Middleware
|
|
6
|
+
*
|
|
7
|
+
* Ensures the authenticated user belongs to a team. Optionally checks
|
|
8
|
+
* for a specific team role via parameterized middleware.
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* route.get('/team/dashboard', 'TeamDashboardAction').middleware('auth').middleware('team')
|
|
12
|
+
* route.get('/team/settings', 'TeamSettingsAction').middleware('auth').middleware('team:owner')
|
|
13
|
+
*/
|
|
14
|
+
export default new Middleware({
|
|
15
|
+
name: 'team',
|
|
16
|
+
priority: 3,
|
|
17
|
+
|
|
18
|
+
async handle(request) {
|
|
19
|
+
const user = request.user || request._user || request._authenticatedUser
|
|
20
|
+
|
|
21
|
+
if (!user) {
|
|
22
|
+
throw new HttpError(401, 'Unauthenticated.')
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Check if user belongs to any team
|
|
26
|
+
if (!user.current_team_id && !user.team_id) {
|
|
27
|
+
throw new HttpError(403, 'You must belong to a team to access this resource.')
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// If a specific role is required (e.g., 'team:owner')
|
|
31
|
+
const requiredRole = request._middlewareParams?.team
|
|
32
|
+
if (requiredRole && user.team_role !== requiredRole) {
|
|
33
|
+
throw new HttpError(403, `This action requires the '${requiredRole}' team role.`)
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
})
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { createRateLimitMiddleware, Middleware, parseThrottleString } from '@stacksjs/router'
|
|
2
|
+
|
|
3
|
+
// Cache for rate limiters to avoid creating new instances for each request
|
|
4
|
+
const limiterCache = new Map<string, ReturnType<typeof createRateLimitMiddleware>>()
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Throttle Middleware
|
|
8
|
+
*
|
|
9
|
+
* Rate limits requests based on IP address or authenticated user.
|
|
10
|
+
* Uses Laravel-style throttle patterns.
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* .middleware('throttle:60,1') // 60 requests per 1 minute
|
|
14
|
+
* .middleware('throttle:100,5') // 100 requests per 5 minutes
|
|
15
|
+
* .middleware('throttle:1000,1h') // 1000 requests per hour
|
|
16
|
+
* .middleware('throttle:10,30s') // 10 requests per 30 seconds
|
|
17
|
+
*
|
|
18
|
+
* Pattern formats:
|
|
19
|
+
* - 'maxAttempts' - e.g., '60' (60 per minute, default window)
|
|
20
|
+
* - 'maxAttempts,minutes' - e.g., '60,1' (60 per 1 minute)
|
|
21
|
+
* - 'maxAttempts,Ns' - e.g., '10,30s' (10 per 30 seconds)
|
|
22
|
+
* - 'maxAttempts,Nm' - e.g., '100,5m' (100 per 5 minutes)
|
|
23
|
+
* - 'maxAttempts,Nh' - e.g., '1000,1h' (1000 per 1 hour)
|
|
24
|
+
*
|
|
25
|
+
* Response (429 Too Many Requests):
|
|
26
|
+
* {
|
|
27
|
+
* "success": false,
|
|
28
|
+
* "message": "Too many requests. Please try again in X seconds.",
|
|
29
|
+
* "retryAfter": X
|
|
30
|
+
* }
|
|
31
|
+
*
|
|
32
|
+
* Headers added to all responses:
|
|
33
|
+
* - X-RateLimit-Limit: Maximum requests allowed
|
|
34
|
+
* - X-RateLimit-Remaining: Remaining requests in current window
|
|
35
|
+
* - X-RateLimit-Reset: Unix timestamp when the limit resets
|
|
36
|
+
* - Retry-After: Seconds until limit resets (only on 429)
|
|
37
|
+
*/
|
|
38
|
+
export default new Middleware({
|
|
39
|
+
name: 'throttle',
|
|
40
|
+
priority: 1, // Run early, after maintenance but before auth
|
|
41
|
+
|
|
42
|
+
async handle(request) {
|
|
43
|
+
// Get throttle params from middleware params (e.g., '60,1' from 'throttle:60,1')
|
|
44
|
+
const params = request._middlewareParams?.throttle || '60,1'
|
|
45
|
+
|
|
46
|
+
// Get or create rate limiter for this pattern
|
|
47
|
+
let limiter = limiterCache.get(params)
|
|
48
|
+
if (!limiter) {
|
|
49
|
+
try {
|
|
50
|
+
const config = parseThrottleString(params)
|
|
51
|
+
limiter = createRateLimitMiddleware(config, `throttle:${params}`)
|
|
52
|
+
limiterCache.set(params, limiter)
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
console.error(`[Throttle] Invalid throttle pattern: ${params}`, error)
|
|
56
|
+
// Use default if pattern is invalid
|
|
57
|
+
const defaultConfig = parseThrottleString('60,1')
|
|
58
|
+
limiter = createRateLimitMiddleware(defaultConfig, 'throttle:default')
|
|
59
|
+
limiterCache.set(params, limiter)
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Create a next function that continues the request
|
|
64
|
+
// The middleware will handle rate limiting and return 429 if needed
|
|
65
|
+
const result = await limiter(request as any, async () => null)
|
|
66
|
+
|
|
67
|
+
// If result is a Response (429), throw it to short-circuit the request
|
|
68
|
+
if (result instanceof Response) {
|
|
69
|
+
// Transform the response to match stacks format
|
|
70
|
+
const _body = await result.clone().json().catch(() => ({}))
|
|
71
|
+
const retryAfter = result.headers.get('Retry-After') || '60'
|
|
72
|
+
|
|
73
|
+
throw new Response(JSON.stringify({
|
|
74
|
+
success: false,
|
|
75
|
+
message: `Too many requests. Please try again in ${retryAfter} seconds.`,
|
|
76
|
+
retryAfter: Number.parseInt(retryAfter, 10),
|
|
77
|
+
}), {
|
|
78
|
+
status: 429,
|
|
79
|
+
headers: {
|
|
80
|
+
'Content-Type': 'application/json',
|
|
81
|
+
'X-RateLimit-Limit': result.headers.get('X-RateLimit-Limit') || '',
|
|
82
|
+
'X-RateLimit-Remaining': result.headers.get('X-RateLimit-Remaining') || '0',
|
|
83
|
+
'X-RateLimit-Reset': result.headers.get('X-RateLimit-Reset') || '',
|
|
84
|
+
'Retry-After': retryAfter,
|
|
85
|
+
// CORS headers (if any) are applied by the router's post-response
|
|
86
|
+
// CORS wrapper using the configured policy — hardcoding
|
|
87
|
+
// `Access-Control-Allow-Origin: *` here leaked the rate-limit
|
|
88
|
+
// body cross-origin even when the configured policy was
|
|
89
|
+
// restrictive. See stacksjs/stacks#1859 R-3.
|
|
90
|
+
},
|
|
91
|
+
})
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Continue normally - rate limit not exceeded
|
|
95
|
+
},
|
|
96
|
+
})
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface Middleware {
|
|
2
|
+
[key: string]: string
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* The application's middleware aliases.
|
|
7
|
+
*
|
|
8
|
+
* Aliases may be used instead of class names to conveniently assign middleware to routes and groups.
|
|
9
|
+
*/
|
|
10
|
+
export default {
|
|
11
|
+
'maintenance': 'Maintenance',
|
|
12
|
+
'cors': 'Cors',
|
|
13
|
+
'auth': 'Auth',
|
|
14
|
+
'guest': 'Guest',
|
|
15
|
+
'api': 'Api',
|
|
16
|
+
'team': 'Team',
|
|
17
|
+
'logger': 'Logger',
|
|
18
|
+
'abilities': 'Abilities',
|
|
19
|
+
'can': 'Can',
|
|
20
|
+
'throttle': 'Throttle',
|
|
21
|
+
'env': 'Env',
|
|
22
|
+
'env:local': 'EnvLocal',
|
|
23
|
+
'env:development': 'EnvDevelopment',
|
|
24
|
+
'env:dev': 'EnvDevelopment',
|
|
25
|
+
'env:staging': 'EnvStaging',
|
|
26
|
+
'env:production': 'EnvProduction',
|
|
27
|
+
'env:prod': 'EnvProduction',
|
|
28
|
+
'role': 'Role',
|
|
29
|
+
'permission': 'Permission',
|
|
30
|
+
'verified': 'EnsureEmailIsVerified',
|
|
31
|
+
'csrf': 'Csrf',
|
|
32
|
+
'compress': 'Compress',
|
|
33
|
+
// Add more middleware aliases here
|
|
34
|
+
// Note: Use ! prefix for negation (e.g., '!auth', '!env:development')
|
|
35
|
+
} satisfies Middleware
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { defineModel } from '@stacksjs/orm'
|
|
2
|
+
import { schema } from '@stacksjs/validation'
|
|
3
|
+
|
|
4
|
+
export default defineModel({
|
|
5
|
+
name: 'Activity',
|
|
6
|
+
table: 'activities',
|
|
7
|
+
primaryKey: 'id',
|
|
8
|
+
autoIncrement: true,
|
|
9
|
+
|
|
10
|
+
traits: {
|
|
11
|
+
useUuid: true,
|
|
12
|
+
useTimestamps: true,
|
|
13
|
+
useSeeder: {
|
|
14
|
+
count: 50,
|
|
15
|
+
},
|
|
16
|
+
useApi: {
|
|
17
|
+
uri: 'activities',
|
|
18
|
+
routes: ['index', 'show'],
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
belongsTo: ['User'],
|
|
23
|
+
|
|
24
|
+
attributes: {
|
|
25
|
+
type: {
|
|
26
|
+
required: true,
|
|
27
|
+
fillable: true,
|
|
28
|
+
validation: {
|
|
29
|
+
rule: schema.string().max(50),
|
|
30
|
+
},
|
|
31
|
+
factory: faker => faker.helpers.arrayElement([
|
|
32
|
+
'user.created', 'user.updated', 'user.deleted',
|
|
33
|
+
'order.created', 'order.completed', 'order.cancelled',
|
|
34
|
+
'product.created', 'product.updated', 'product.deleted',
|
|
35
|
+
'post.published', 'comment.approved', 'login.success',
|
|
36
|
+
'login.failed', 'subscription.renewed', 'payment.received',
|
|
37
|
+
]),
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
description: {
|
|
41
|
+
required: true,
|
|
42
|
+
fillable: true,
|
|
43
|
+
validation: {
|
|
44
|
+
rule: schema.string().max(500),
|
|
45
|
+
},
|
|
46
|
+
factory: faker => faker.lorem.sentence(),
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
subjectType: {
|
|
50
|
+
required: false,
|
|
51
|
+
fillable: true,
|
|
52
|
+
validation: {
|
|
53
|
+
rule: schema.string().max(100),
|
|
54
|
+
},
|
|
55
|
+
factory: faker => faker.helpers.arrayElement(['User', 'Order', 'Product', 'Post', 'Comment', 'Subscription']),
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
subjectId: {
|
|
59
|
+
required: false,
|
|
60
|
+
fillable: true,
|
|
61
|
+
validation: {
|
|
62
|
+
rule: schema.number(),
|
|
63
|
+
},
|
|
64
|
+
factory: faker => faker.number.int({ min: 1, max: 100 }),
|
|
65
|
+
},
|
|
66
|
+
|
|
67
|
+
causer: {
|
|
68
|
+
required: false,
|
|
69
|
+
fillable: true,
|
|
70
|
+
validation: {
|
|
71
|
+
rule: schema.string().max(100),
|
|
72
|
+
},
|
|
73
|
+
factory: faker => faker.person.fullName(),
|
|
74
|
+
},
|
|
75
|
+
|
|
76
|
+
properties: {
|
|
77
|
+
required: false,
|
|
78
|
+
fillable: true,
|
|
79
|
+
validation: {
|
|
80
|
+
rule: schema.string(),
|
|
81
|
+
},
|
|
82
|
+
factory: () => JSON.stringify({ ip: '192.168.1.1', browser: 'Chrome' }),
|
|
83
|
+
},
|
|
84
|
+
|
|
85
|
+
ipAddress: {
|
|
86
|
+
required: false,
|
|
87
|
+
fillable: true,
|
|
88
|
+
validation: {
|
|
89
|
+
rule: schema.string().max(45),
|
|
90
|
+
},
|
|
91
|
+
factory: faker => faker.internet.ip(),
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
} as const)
|