@stacksjs/defaults 0.70.207 → 0.70.208
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/TODO.md +21 -0
- package/ai/AGENTS.md +79 -0
- package/ai/README.md +45 -0
- package/ai/claude/launch.json +12 -0
- package/ai/skills/stacks-actions/SKILL.md +128 -0
- package/ai/skills/stacks-ai/SKILL.md +276 -0
- package/ai/skills/stacks-alias/SKILL.md +94 -0
- package/ai/skills/stacks-analytics/SKILL.md +91 -0
- package/ai/skills/stacks-api/SKILL.md +738 -0
- package/ai/skills/stacks-arrays/SKILL.md +277 -0
- package/ai/skills/stacks-auth/SKILL.md +422 -0
- package/ai/skills/stacks-auto-imports/SKILL.md +138 -0
- package/ai/skills/stacks-brandkit/SKILL.md +811 -0
- package/ai/skills/stacks-browse/SKILL.md +127 -0
- package/ai/skills/stacks-browse/scripts/browse.ts +492 -0
- package/ai/skills/stacks-browser/SKILL.md +145 -0
- package/ai/skills/stacks-buddy/SKILL.md +676 -0
- package/ai/skills/stacks-build/SKILL.md +163 -0
- package/ai/skills/stacks-cache/SKILL.md +125 -0
- package/ai/skills/stacks-calendar/SKILL.md +113 -0
- package/ai/skills/stacks-chat/SKILL.md +371 -0
- package/ai/skills/stacks-cli/SKILL.md +112 -0
- package/ai/skills/stacks-cloud/SKILL.md +192 -0
- package/ai/skills/stacks-cms/SKILL.md +217 -0
- package/ai/skills/stacks-collections/SKILL.md +82 -0
- package/ai/skills/stacks-commerce/SKILL.md +114 -0
- package/ai/skills/stacks-composables/SKILL.md +161 -0
- package/ai/skills/stacks-config/SKILL.md +144 -0
- package/ai/skills/stacks-configuration/SKILL.md +154 -0
- package/ai/skills/stacks-cron/SKILL.md +123 -0
- package/ai/skills/stacks-crosswind/SKILL.md +190 -0
- package/ai/skills/stacks-dashboard/SKILL.md +173 -0
- package/ai/skills/stacks-database/SKILL.md +286 -0
- package/ai/skills/stacks-datetime/SKILL.md +269 -0
- package/ai/skills/stacks-dependencies/SKILL.md +111 -0
- package/ai/skills/stacks-deploy/SKILL.md +102 -0
- package/ai/skills/stacks-design-brutalist/SKILL.md +110 -0
- package/ai/skills/stacks-design-minimalist/SKILL.md +115 -0
- package/ai/skills/stacks-design-output/SKILL.md +55 -0
- package/ai/skills/stacks-design-soft/SKILL.md +156 -0
- package/ai/skills/stacks-design-taste/SKILL.md +1012 -0
- package/ai/skills/stacks-design-taste-codex/SKILL.md +294 -0
- package/ai/skills/stacks-desktop/SKILL.md +78 -0
- package/ai/skills/stacks-development/SKILL.md +298 -0
- package/ai/skills/stacks-dns/SKILL.md +149 -0
- package/ai/skills/stacks-docs/SKILL.md +109 -0
- package/ai/skills/stacks-email/SKILL.md +236 -0
- package/ai/skills/stacks-enums/SKILL.md +100 -0
- package/ai/skills/stacks-env/SKILL.md +181 -0
- package/ai/skills/stacks-error-handling/SKILL.md +137 -0
- package/ai/skills/stacks-events/SKILL.md +228 -0
- package/ai/skills/stacks-faker/SKILL.md +158 -0
- package/ai/skills/stacks-git/SKILL.md +158 -0
- package/ai/skills/stacks-guard/SKILL.md +98 -0
- package/ai/skills/stacks-health/SKILL.md +75 -0
- package/ai/skills/stacks-http/SKILL.md +316 -0
- package/ai/skills/stacks-i18n/SKILL.md +198 -0
- package/ai/skills/stacks-image-to-code/SKILL.md +629 -0
- package/ai/skills/stacks-imagegen-mobile/SKILL.md +1474 -0
- package/ai/skills/stacks-imagegen-web/SKILL.md +998 -0
- package/ai/skills/stacks-investigate/SKILL.md +119 -0
- package/ai/skills/stacks-jobs/SKILL.md +136 -0
- package/ai/skills/stacks-lint/SKILL.md +184 -0
- package/ai/skills/stacks-listeners/SKILL.md +99 -0
- package/ai/skills/stacks-logging/SKILL.md +78 -0
- package/ai/skills/stacks-mail/SKILL.md +120 -0
- package/ai/skills/stacks-middleware/SKILL.md +249 -0
- package/ai/skills/stacks-migrations/SKILL.md +105 -0
- package/ai/skills/stacks-models/SKILL.md +267 -0
- package/ai/skills/stacks-new-feature/SKILL.md +206 -0
- package/ai/skills/stacks-notifications/SKILL.md +210 -0
- package/ai/skills/stacks-objects/SKILL.md +205 -0
- package/ai/skills/stacks-office-hours/SKILL.md +134 -0
- package/ai/skills/stacks-orm/SKILL.md +342 -0
- package/ai/skills/stacks-path/SKILL.md +118 -0
- package/ai/skills/stacks-payments/SKILL.md +373 -0
- package/ai/skills/stacks-plan-review/SKILL.md +152 -0
- package/ai/skills/stacks-plugins/SKILL.md +149 -0
- package/ai/skills/stacks-push/SKILL.md +376 -0
- package/ai/skills/stacks-query-builder/SKILL.md +128 -0
- package/ai/skills/stacks-queue/SKILL.md +559 -0
- package/ai/skills/stacks-realtime/SKILL.md +442 -0
- package/ai/skills/stacks-redesign/SKILL.md +182 -0
- package/ai/skills/stacks-registry/SKILL.md +58 -0
- package/ai/skills/stacks-repl/SKILL.md +80 -0
- package/ai/skills/stacks-retro/SKILL.md +122 -0
- package/ai/skills/stacks-review/SKILL.md +135 -0
- package/ai/skills/stacks-router/SKILL.md +231 -0
- package/ai/skills/stacks-routes/SKILL.md +105 -0
- package/ai/skills/stacks-scaffolding/SKILL.md +162 -0
- package/ai/skills/stacks-scheduler/SKILL.md +363 -0
- package/ai/skills/stacks-search-engine/SKILL.md +112 -0
- package/ai/skills/stacks-security/SKILL.md +129 -0
- package/ai/skills/stacks-security-audit/SKILL.md +128 -0
- package/ai/skills/stacks-server/SKILL.md +458 -0
- package/ai/skills/stacks-shell/SKILL.md +62 -0
- package/ai/skills/stacks-slug/SKILL.md +87 -0
- package/ai/skills/stacks-sms/SKILL.md +385 -0
- package/ai/skills/stacks-socials/SKILL.md +303 -0
- package/ai/skills/stacks-storage/SKILL.md +576 -0
- package/ai/skills/stacks-strings/SKILL.md +416 -0
- package/ai/skills/stacks-stx/SKILL.md +176 -0
- package/ai/skills/stacks-technical-diagrams/LICENSE +22 -0
- package/ai/skills/stacks-technical-diagrams/SKILL.md +290 -0
- package/ai/skills/stacks-technical-diagrams/agents/openai.yaml +4 -0
- package/ai/skills/stacks-technical-diagrams/assets/template.html +1252 -0
- package/ai/skills/stacks-technical-diagrams/bin/technical-diagrams.mjs +289 -0
- package/ai/skills/stacks-technical-diagrams/bunfig.toml +1 -0
- package/ai/skills/stacks-technical-diagrams/examples/agent-run.lifecycle.json +64 -0
- package/ai/skills/stacks-technical-diagrams/examples/agent-tool-call.workflow.json +88 -0
- package/ai/skills/stacks-technical-diagrams/examples/cache-miss-request.sequence.json +75 -0
- package/ai/skills/stacks-technical-diagrams/examples/product-analytics.dataflow.json +70 -0
- package/ai/skills/stacks-technical-diagrams/examples/web-app.architecture.json +41 -0
- package/ai/skills/stacks-technical-diagrams/renderers/architecture/grid.mjs +62 -0
- package/ai/skills/stacks-technical-diagrams/renderers/architecture/render-architecture.mjs +371 -0
- package/ai/skills/stacks-technical-diagrams/renderers/dataflow/README.md +82 -0
- package/ai/skills/stacks-technical-diagrams/renderers/dataflow/render-dataflow.mjs +295 -0
- package/ai/skills/stacks-technical-diagrams/renderers/lifecycle/README.md +91 -0
- package/ai/skills/stacks-technical-diagrams/renderers/lifecycle/render-lifecycle.mjs +384 -0
- package/ai/skills/stacks-technical-diagrams/renderers/sequence/README.md +84 -0
- package/ai/skills/stacks-technical-diagrams/renderers/sequence/render-sequence.mjs +257 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/cli.mjs +42 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/generated-validators.mjs +13 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/geometry.mjs +230 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/layout-report.mjs +40 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/utils.mjs +88 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/validator.mjs +40 -0
- package/ai/skills/stacks-technical-diagrams/renderers/workflow/README.md +103 -0
- package/ai/skills/stacks-technical-diagrams/renderers/workflow/render-workflow.mjs +481 -0
- package/ai/skills/stacks-technical-diagrams/schemas/README.md +68 -0
- package/ai/skills/stacks-technical-diagrams/schemas/architecture.schema.json +121 -0
- package/ai/skills/stacks-technical-diagrams/schemas/common.schema.json +43 -0
- package/ai/skills/stacks-technical-diagrams/schemas/dataflow.schema.json +221 -0
- package/ai/skills/stacks-technical-diagrams/schemas/lifecycle.schema.json +241 -0
- package/ai/skills/stacks-technical-diagrams/schemas/sequence.schema.json +186 -0
- package/ai/skills/stacks-technical-diagrams/schemas/workflow.schema.json +332 -0
- package/ai/skills/stacks-technical-diagrams/scripts/check-render-output.mjs +297 -0
- package/ai/skills/stacks-technical-diagrams/scripts/render-examples.mjs +28 -0
- package/ai/skills/stacks-testing/SKILL.md +129 -0
- package/ai/skills/stacks-tunnel/SKILL.md +125 -0
- package/ai/skills/stacks-types/SKILL.md +178 -0
- package/ai/skills/stacks-ui/SKILL.md +246 -0
- package/ai/skills/stacks-utils/SKILL.md +444 -0
- package/ai/skills/stacks-validation/SKILL.md +371 -0
- package/ai/skills/stacks-whois/SKILL.md +315 -0
- package/assets/world-map-data.ts +121 -0
- package/bootstrap.ts +114 -0
- package/docs/api-examples.md +46 -0
- package/docs/index.md +24 -0
- package/docs/markdown-examples.md +87 -0
- package/functions/analytics.ts +97 -0
- package/functions/api.ts +143 -0
- package/functions/auth.ts +208 -0
- package/functions/billing/payments.ts +149 -0
- package/functions/blog.ts +120 -0
- package/functions/cms/categorizables.ts +107 -0
- package/functions/cms/pages.ts +108 -0
- package/functions/cms/posts.ts +100 -0
- package/functions/cms/taggables.ts +102 -0
- package/functions/commerce/coupons.ts +128 -0
- package/functions/commerce/customers.ts +128 -0
- package/functions/commerce/gift-cards.ts +119 -0
- package/functions/commerce/orders.ts +112 -0
- package/functions/commerce/payments.ts +119 -0
- package/functions/commerce/products/categories.ts +123 -0
- package/functions/commerce/products/manufacturers.ts +123 -0
- package/functions/commerce/products/products.ts +123 -0
- package/functions/commerce/products/reviews.ts +123 -0
- package/functions/commerce/products/units.ts +123 -0
- package/functions/commerce/products/variants.ts +123 -0
- package/functions/commerce/shippings/delivery-routes.ts +123 -0
- package/functions/commerce/shippings/digital-deliveries.ts +119 -0
- package/functions/commerce/shippings/drivers.ts +123 -0
- package/functions/commerce/shippings/license-keys.ts +123 -0
- package/functions/commerce/shippings/shipping-methods.ts +123 -0
- package/functions/commerce/shippings/shipping-rates.ts +119 -0
- package/functions/commerce/shippings/shipping-zones.ts +119 -0
- package/functions/commerce/taxes.ts +119 -0
- package/functions/commerce/waitlist/products.ts +123 -0
- package/functions/commerce/waitlist/restaurants.ts +123 -0
- package/functions/craft.ts +107 -0
- package/functions/dashboard.ts +153 -0
- package/functions/inbox.ts +95 -0
- package/functions/jobs.ts +86 -0
- package/functions/monitoring/errors.ts +295 -0
- package/functions/queue.ts +111 -0
- package/functions/realtime/websockets.ts +96 -0
- package/functions/realtime.ts +52 -0
- package/functions/releases.ts +49 -0
- package/functions/search.ts +126 -0
- package/functions/toasts.ts +95 -0
- package/functions/uploads.ts +216 -0
- package/ide/.gitignore +4 -0
- package/ide/cursor/rules/auto-imports.mdc +574 -0
- package/ide/cursor/rules/code-style.mdc +12 -0
- package/ide/cursor/rules/documentation.mdc +9 -0
- package/ide/cursor/rules/error-handling-validation.mdc +11 -0
- package/ide/cursor/rules/key-conventions.mdc +11 -0
- package/ide/cursor/rules/project-structure.mdc +169 -0
- package/ide/cursor/rules/readme.mdc +318 -0
- package/ide/cursor/rules/syntax-formatting.mdc +9 -0
- package/ide/cursor/rules/testing.mdc +10 -0
- package/ide/cursor/rules/typescript.mdc +9 -0
- package/ide/cursor/rules/ui-styling.mdc +0 -0
- package/ide/dictionary.txt +397 -0
- package/ide/jetbrains/.fleet/settings.json +4 -0
- package/ide/jetbrains/.idea/.gitignore +5 -0
- package/ide/jetbrains/.idea/.name +1 -0
- package/ide/jetbrains/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/ide/jetbrains/.idea/jsLinters/eslint.xml +7 -0
- package/ide/jetbrains/.idea/modules.xml +8 -0
- package/ide/jetbrains/.idea/stacks.iml +22 -0
- package/ide/jetbrains/.idea/vcs.xml +6 -0
- package/ide/jetbrains/.idea/webResources.xml +14 -0
- package/ide/jetbrains/IntelliJ IDEA Global Settings +0 -0
- package/ide/jetbrains/installed.txt +4 -0
- package/ide/jetbrains/options/github-copilot.xml +5 -0
- package/ide/jetbrains/options/nodejs.xml +7 -0
- package/ide/jetbrains/options/templates.xml +124 -0
- package/ide/jetbrains/templates/JavaScript.xml +6 -0
- package/ide/jetbrains/templates/Stacks.xml +8 -0
- package/ide/vscode/.vscode/README.md +23 -0
- package/ide/vscode/.vscode/extensions.json +5 -0
- package/ide/vscode/.vscode/settings.json +176 -0
- package/ide/vscode/.vscode/stacks.code-snippets +181 -0
- package/ide/vscode/LICENSE.md +21 -0
- package/ide/vscode/README.md +36 -0
- package/ide/vscode/logo.png +0 -0
- package/ide/vscode/package.json +79 -0
- package/ide/zed/.zed/settings.json +139 -0
- package/lang/README.md +28 -0
- package/lang/de.yml +14 -0
- package/lang/en.yml +15 -0
- package/package.json +19 -3
- package/project/bootstrap +161 -0
- package/project/buddy +175 -0
- package/project/storage/framework/tsconfig.app.json +50 -0
- package/project/storage/framework/tsconfig.base.json +58 -0
- package/routes/core.ts +78 -0
- package/routes/dashboard-api.ts +233 -0
- package/routes/dashboard.ts +739 -0
- package/routes/email.ts +129 -0
- package/stores/[name].stx +16 -0
- package/stores/git.ts +71 -0
- package/stores/payment.ts +474 -0
- package/stores/queue.ts +43 -0
- package/stores/user.ts +29 -0
- package/stx-components-plugin.ts +25 -0
- package/styles/design-tokens.css +597 -0
- package/types/dashboard.ts +70 -0
- package/types/defaults.ts +438 -0
- package/vcs/github/CODE_OF_CONDUCT.md +83 -0
- package/vcs/github/CONTRIBUTING.md +187 -0
- package/vcs/github/EXPLANATIONS.md +41 -0
- package/vcs/github/FUNDING.yml +1 -0
- package/vcs/github/ISSUE_TEMPLATE/bug_report.yml +49 -0
- package/vcs/github/ISSUE_TEMPLATE/config.yml +10 -0
- package/vcs/github/ISSUE_TEMPLATE/feature_request.yml +44 -0
- package/vcs/github/SECURITY.md +70 -0
- package/vcs/github/renovate.json +5 -0
- package/vcs/github/stale.yml +14 -0
- package/vcs/github/workflows/README.md +16 -0
- package/vcs/github/workflows/ci.yml +114 -0
- package/vcs/github/workflows/export-size.yml +25 -0
- package/vcs/github/workflows/labeler.yml +13 -0
- package/vcs/github/workflows/release.yml +219 -0
- package/views/[...all].stx +8 -0
- package/views/about.md +3 -0
- package/views/auth/login.stx +1 -0
- package/views/auth/signup.stx +85 -0
- package/views/dashboard/.discovered-models.json +542 -0
- package/views/dashboard/AUDIT.md +904 -0
- package/views/dashboard/[...all].stx +89 -0
- package/views/dashboard/access-tokens/index.stx +177 -0
- package/views/dashboard/actions/index.stx +129 -0
- package/views/dashboard/analytics/blog/index.stx +356 -0
- package/views/dashboard/analytics/browsers/index.stx +263 -0
- package/views/dashboard/analytics/commerce/sales/index.stx +329 -0
- package/views/dashboard/analytics/commerce/web/index.stx +379 -0
- package/views/dashboard/analytics/countries/index.stx +289 -0
- package/views/dashboard/analytics/devices/index.stx +305 -0
- package/views/dashboard/analytics/events/index.stx +536 -0
- package/views/dashboard/analytics/index.stx +88 -0
- package/views/dashboard/analytics/marketing/index.stx +315 -0
- package/views/dashboard/analytics/pages/index.stx +271 -0
- package/views/dashboard/analytics/referrers/index.stx +319 -0
- package/views/dashboard/analytics/web/index.stx +356 -0
- package/views/dashboard/buddy/index.stx +198 -0
- package/views/dashboard/ci/index.stx +462 -0
- package/views/dashboard/cloud/index.stx +452 -0
- package/views/dashboard/commands/index.stx +295 -0
- package/views/dashboard/commerce/categories/index.stx +406 -0
- package/views/dashboard/commerce/coupons/index.stx +485 -0
- package/views/dashboard/commerce/customers/index.stx +410 -0
- package/views/dashboard/commerce/dashboard/index.stx +287 -0
- package/views/dashboard/commerce/delivery/delivery-routes.stx +305 -0
- package/views/dashboard/commerce/delivery/digital-delivery.stx +332 -0
- package/views/dashboard/commerce/delivery/drivers.stx +397 -0
- package/views/dashboard/commerce/delivery/index.stx +18 -0
- package/views/dashboard/commerce/delivery/license-keys.stx +380 -0
- package/views/dashboard/commerce/delivery/shipping-methods.stx +346 -0
- package/views/dashboard/commerce/delivery/shipping-rates.stx +338 -0
- package/views/dashboard/commerce/delivery/shipping-zones.stx +302 -0
- package/views/dashboard/commerce/delivery/tabs.ts +25 -0
- package/views/dashboard/commerce/gift-cards/index.stx +561 -0
- package/views/dashboard/commerce/manufacturers/index.stx +308 -0
- package/views/dashboard/commerce/orders/index.stx +247 -0
- package/views/dashboard/commerce/payments/index.stx +535 -0
- package/views/dashboard/commerce/pos/index.stx +653 -0
- package/views/dashboard/commerce/printers/devices/index.stx +273 -0
- package/views/dashboard/commerce/printers/receipts/index.stx +308 -0
- package/views/dashboard/commerce/products/detail.stx +563 -0
- package/views/dashboard/commerce/products/index.stx +370 -0
- package/views/dashboard/commerce/reviews/index.stx +656 -0
- package/views/dashboard/commerce/reviews/index.ts +0 -0
- package/views/dashboard/commerce/taxes/index.stx +377 -0
- package/views/dashboard/commerce/units/index.stx +317 -0
- package/views/dashboard/commerce/variants/index.stx +319 -0
- package/views/dashboard/commerce/waitlist/products.stx +942 -0
- package/views/dashboard/commerce/waitlist/restaurant.stx +1024 -0
- package/views/dashboard/components/index.stx +330 -0
- package/views/dashboard/composables/index.ts +19 -0
- package/views/dashboard/composables/useChart.ts +77 -0
- package/views/dashboard/composables/useNavigation.ts +99 -0
- package/views/dashboard/composables/useRole.ts +58 -0
- package/views/dashboard/composables/useTheme.ts +74 -0
- package/views/dashboard/content/authors/index.stx +171 -0
- package/views/dashboard/content/blog/index.stx +493 -0
- package/views/dashboard/content/categories/index.stx +169 -0
- package/views/dashboard/content/comments/index.stx +189 -0
- package/views/dashboard/content/dashboard.stx +383 -0
- package/views/dashboard/content/files/index.stx +706 -0
- package/views/dashboard/content/pages/index.stx +174 -0
- package/views/dashboard/content/posts/index.stx +269 -0
- package/views/dashboard/content/seo/index.stx +240 -0
- package/views/dashboard/content/tags/index.stx +167 -0
- package/views/dashboard/data/activity/index.stx +261 -0
- package/views/dashboard/data/dashboard/index.stx +116 -0
- package/views/dashboard/data/subscribers.stx +270 -0
- package/views/dashboard/data/teams.stx +275 -0
- package/views/dashboard/data/users.stx +279 -0
- package/views/dashboard/dependencies/index.stx +178 -0
- package/views/dashboard/deployments/[id].stx +234 -0
- package/views/dashboard/deployments/index.stx +9 -0
- package/views/dashboard/dns/index.stx +163 -0
- package/views/dashboard/environment/index.stx +283 -0
- package/views/dashboard/errors/index.stx +274 -0
- package/views/dashboard/forgot-password.stx +57 -0
- package/views/dashboard/functions/index.stx +159 -0
- package/views/dashboard/health/index.stx +248 -0
- package/views/dashboard/inbox/activity.stx +350 -0
- package/views/dashboard/inbox/index.stx +452 -0
- package/views/dashboard/inbox/settings.stx +290 -0
- package/views/dashboard/index.stx +252 -0
- package/views/dashboard/insights/index.stx +529 -0
- package/views/dashboard/jobs/[id].stx +430 -0
- package/views/dashboard/jobs/history.stx +222 -0
- package/views/dashboard/jobs/index.stx +214 -0
- package/views/dashboard/kanban/[id].stx +899 -0
- package/views/dashboard/kanban/index.stx +260 -0
- package/views/dashboard/layouts/default.stx +565 -0
- package/views/dashboard/layouts/guest.stx +10 -0
- package/views/dashboard/login.stx +48 -0
- package/views/dashboard/logs/index.stx +540 -0
- package/views/dashboard/mailboxes/index.stx +149 -0
- package/views/dashboard/management/permissions/index.stx +490 -0
- package/views/dashboard/marketing/campaigns/index.stx +604 -0
- package/views/dashboard/marketing/lists/index.stx +514 -0
- package/views/dashboard/marketing/reviews/index.stx +475 -0
- package/views/dashboard/marketing/social-posts/index.stx +560 -0
- package/views/dashboard/models/[model].stx +195 -0
- package/views/dashboard/models/index.stx +159 -0
- package/views/dashboard/monitoring/errors/index.stx +415 -0
- package/views/dashboard/notifications/dashboard.stx +383 -0
- package/views/dashboard/notifications/email.stx +336 -0
- package/views/dashboard/notifications/history.stx +373 -0
- package/views/dashboard/notifications/sms.stx +332 -0
- package/views/dashboard/packages/index.stx +195 -0
- package/views/dashboard/queries/[id].stx +381 -0
- package/views/dashboard/queries/history.stx +227 -0
- package/views/dashboard/queries/index.stx +335 -0
- package/views/dashboard/queries/slow.stx +318 -0
- package/views/dashboard/queue/index.stx +427 -0
- package/views/dashboard/realtime/index.stx +429 -0
- package/views/dashboard/register.stx +46 -0
- package/views/dashboard/releases/index.stx +389 -0
- package/views/dashboard/requests/index.stx +462 -0
- package/views/dashboard/serverless/index.stx +475 -0
- package/views/dashboard/servers/[id].stx +299 -0
- package/views/dashboard/servers/index.stx +483 -0
- package/views/dashboard/settings/billing.stx +50 -0
- package/views/dashboard/settings/index.stx +256 -0
- package/views/dashboard/settings/mail.stx +252 -0
- package/views/dashboard/stores/auth.ts +123 -0
- package/views/dashboard/stores/ci.ts +342 -0
- package/views/dashboard/stores/index.ts +129 -0
- package/views/dashboard/stores/kanban.ts +723 -0
- package/views/dashboard/stores/rbac.ts +350 -0
- package/views/dashboard/stx.config.ts +34 -0
- package/views/dashboard/teams/[id].stx +170 -0
- package/views/forum/category.stx +92 -0
- package/views/forum/index.stx +209 -0
- package/views/forum/new-topic.stx +113 -0
- package/views/forum/profile.stx +1 -0
- package/views/forum/topic.stx +143 -0
- package/views/hello-world/[name].stx +47 -0
- package/views/index.stx +21 -0
- package/views/system-tray/index.stx +147 -0
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
@extends('layouts/default')
|
|
2
|
+
|
|
3
|
+
@section('content')
|
|
4
|
+
@title('Dashboard - Requests')
|
|
5
|
+
<div class="py-4 lg:py-8 min-h-screen dark:bg-neutral-800">
|
|
6
|
+
<div class="mb-8 px-4 sm:px-6 lg:px-8">
|
|
7
|
+
<div>
|
|
8
|
+
<h3 class="font-semibold leading-6 text-base text-gray-900 dark:text-neutral-100">
|
|
9
|
+
Last 30 days
|
|
10
|
+
</h3>
|
|
11
|
+
|
|
12
|
+
<dl class="grid gap-5 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 mt-5">
|
|
13
|
+
<div class="overflow-hidden relative pt-5 px-4 sm:pt-6 sm:px-6 bg-white dark:bg-neutral-700 rounded-lg shadow">
|
|
14
|
+
<dt>
|
|
15
|
+
<div class="absolute p-3 bg-blue-500 rounded-md">
|
|
16
|
+
<div class="h-6 w-6 text-white i-hugeicons-global" />
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
<p class="ml-16 font-medium text-gray-500 text-sm truncate dark:text-neutral-400">
|
|
20
|
+
Total Requests
|
|
21
|
+
</p>
|
|
22
|
+
</dt>
|
|
23
|
+
|
|
24
|
+
<dd class="flex items-baseline ml-16 pb-6 sm:pb-7">
|
|
25
|
+
<p class="font-semibold text-2xl text-gray-900 dark:text-neutral-100">
|
|
26
|
+
71,897
|
|
27
|
+
</p>
|
|
28
|
+
|
|
29
|
+
<p class="flex items-baseline ml-2 font-semibold text-green-600 text-sm dark:text-green-400">
|
|
30
|
+
<svg class="flex-shrink-0 self-center h-5 w-5 text-green-500 dark:text-green-400" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
|
31
|
+
<path fill-rule="evenodd" d="M10 17a.75.75 0 01-.75-.75V5.612L5.29 9.77a.75.75 0 01-1.08-1.04l5.25-5.5a.75.75 0 011.08 0l5.25 5.5a.75.75 0 11-1.08 1.04l-3.96-4.158V16.25A.75.75 0 0110 17z" clip-rule="evenodd" />
|
|
32
|
+
</svg>
|
|
33
|
+
<span class="sr-only"> Increased by </span>
|
|
34
|
+
122
|
|
35
|
+
</p>
|
|
36
|
+
</dd>
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
<div class="overflow-hidden relative pt-5 px-4 sm:pt-6 sm:px-6 bg-white dark:bg-neutral-700 rounded-lg shadow">
|
|
40
|
+
<dt>
|
|
41
|
+
<div class="absolute p-3 bg-blue-500 rounded-md">
|
|
42
|
+
<div class="h-6 w-6 text-white i-hugeicons-clock-01" />
|
|
43
|
+
</div>
|
|
44
|
+
<p class="ml-16 font-medium text-gray-500 text-sm truncate dark:text-neutral-400">
|
|
45
|
+
Avg. Request Time
|
|
46
|
+
</p>
|
|
47
|
+
</dt>
|
|
48
|
+
|
|
49
|
+
<dd class="flex items-baseline ml-16 pb-6 sm:pb-7">
|
|
50
|
+
<p class="font-semibold text-2xl text-gray-900 dark:text-neutral-100">
|
|
51
|
+
365 ms
|
|
52
|
+
</p>
|
|
53
|
+
|
|
54
|
+
<p class="flex items-baseline ml-2 font-semibold text-green-600 text-sm dark:text-green-400">
|
|
55
|
+
<svg class="flex-shrink-0 self-center h-5 w-5 text-green-500 dark:text-green-400" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
|
56
|
+
<path fill-rule="evenodd" d="M10 17a.75.75 0 01-.75-.75V5.612L5.29 9.77a.75.75 0 01-1.08-1.04l5.25-5.5a.75.75 0 011.08 0l5.25 5.5a.75.75 0 11-1.08 1.04l-3.96-4.158V16.25A.75.75 0 0110 17z" clip-rule="evenodd" />
|
|
57
|
+
</svg>
|
|
58
|
+
<span class="sr-only"> Increased by </span>
|
|
59
|
+
12 s
|
|
60
|
+
</p>
|
|
61
|
+
</dd>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
<div class="overflow-hidden relative pt-5 px-4 sm:pt-6 sm:px-6 bg-white dark:bg-neutral-700 rounded-lg shadow">
|
|
65
|
+
<dt>
|
|
66
|
+
<div class="absolute p-3 bg-blue-500 rounded-md">
|
|
67
|
+
<div class="h-6 w-6 text-white i-hugeicons-checkmark-circle-02" />
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
<p class="ml-16 font-medium text-gray-500 text-sm truncate dark:text-neutral-400">
|
|
71
|
+
Success Rate
|
|
72
|
+
</p>
|
|
73
|
+
</dt>
|
|
74
|
+
|
|
75
|
+
<dd class="flex items-baseline ml-16 pb-6 sm:pb-7">
|
|
76
|
+
<p class="font-semibold text-2xl text-gray-900 dark:text-neutral-100">
|
|
77
|
+
94.57%
|
|
78
|
+
</p>
|
|
79
|
+
|
|
80
|
+
<p class="flex items-baseline ml-2 font-semibold text-red-600 text-sm dark:text-red-400">
|
|
81
|
+
<svg class="flex-shrink-0 self-center h-5 w-5 text-red-500 dark:text-red-400" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
|
82
|
+
<path fill-rule="evenodd" d="M10 3a.75.75 0 01.75.75v10.638l3.96-4.158a.75.75 0 111.08 1.04l-5.25 5.5a.75.75 0 01-1.08 0l-5.25-5.5a.75.75 0 111.08-1.04l3.96 4.158V3.75A.75.75 0 0110 3z" clip-rule="evenodd" />
|
|
83
|
+
</svg>
|
|
84
|
+
<span class="sr-only"> Decreased by </span>
|
|
85
|
+
3.2%
|
|
86
|
+
</p>
|
|
87
|
+
|
|
88
|
+
<!-- <div class="absolute bottom-0 inset-x-0 px-4 py-4 sm:px-6 bg-gray-50">
|
|
89
|
+
<div class="text-sm">
|
|
90
|
+
<a href="#" class="font-medium text-blue-600 hover:text-blue-500">View all<span class="sr-only"> Success Rate</span></a>
|
|
91
|
+
</div>
|
|
92
|
+
</div> -->
|
|
93
|
+
</dd>
|
|
94
|
+
</div>
|
|
95
|
+
</dl>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
|
|
99
|
+
<!-- Graphs Section -->
|
|
100
|
+
<div class="px-4 sm:px-6 lg:px-8">
|
|
101
|
+
<div class="grid gap-6 grid-cols-1 lg:grid-cols-2">
|
|
102
|
+
<!-- Request Volume Graph -->
|
|
103
|
+
<div class="p-6 bg-white dark:bg-neutral-700 rounded-lg shadow">
|
|
104
|
+
<div class="flex items-center justify-between mb-4">
|
|
105
|
+
<h3 class="font-medium text-base text-gray-900 dark:text-neutral-100">Request Volume</h3>
|
|
106
|
+
<div class="flex items-center space-x-4">
|
|
107
|
+
<select class="pl-3 pr-8 py-1.5 text-gray-900 text-sm dark:text-neutral-100 bg-gray-50 dark:bg-neutral-600 border-0 ring-1 ring-gray-300 ring-inset rounded-md dark:ring-neutral-600 focus:ring-2 focus:ring-blue-600">
|
|
108
|
+
<option>Last 24 hours</option>
|
|
109
|
+
<option>Last 7 days</option>
|
|
110
|
+
<option>Last 30 days</option>
|
|
111
|
+
</select>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
<div class="relative h-[300px]">
|
|
115
|
+
<canvas id="chart_1"></canvas>
|
|
116
|
+
</div>
|
|
117
|
+
</div>
|
|
118
|
+
|
|
119
|
+
<!-- Response Time Graph -->
|
|
120
|
+
<div class="p-6 bg-white dark:bg-neutral-700 rounded-lg shadow">
|
|
121
|
+
<div class="flex items-center justify-between mb-4">
|
|
122
|
+
<h3 class="font-medium text-base text-gray-900 dark:text-neutral-100">Response Time</h3>
|
|
123
|
+
</div>
|
|
124
|
+
<div class="relative h-[300px]">
|
|
125
|
+
<canvas id="chart_2"></canvas>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
|
|
129
|
+
<!-- Success Rate Graph -->
|
|
130
|
+
<div class="p-6 bg-white dark:bg-neutral-700 rounded-lg shadow">
|
|
131
|
+
<div class="flex items-center justify-between mb-4">
|
|
132
|
+
<h3 class="font-medium text-base text-gray-900 dark:text-neutral-100">Success Rate</h3>
|
|
133
|
+
</div>
|
|
134
|
+
<div class="relative h-[300px]">
|
|
135
|
+
<canvas id="chart_3"></canvas>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
<!-- Status Code Distribution -->
|
|
140
|
+
<div class="p-6 bg-white dark:bg-neutral-700 rounded-lg shadow">
|
|
141
|
+
<div class="flex items-center justify-between mb-4">
|
|
142
|
+
<h3 class="font-medium text-base text-gray-900 dark:text-neutral-100">Status Codes</h3>
|
|
143
|
+
</div>
|
|
144
|
+
<div class="relative h-[300px]">
|
|
145
|
+
<canvas id="chart_4"></canvas>
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
|
|
151
|
+
<div class="pt-12 px-4 sm:px-6 lg:px-8">
|
|
152
|
+
<div class="sm:flex sm:items-center">
|
|
153
|
+
<div class="sm:flex-auto">
|
|
154
|
+
<h1 class="font-semibold leading-6 text-base text-gray-900 dark:text-neutral-100">
|
|
155
|
+
Request History
|
|
156
|
+
</h1>
|
|
157
|
+
<p class="mt-2 text-gray-700 text-sm dark:text-neutral-300">
|
|
158
|
+
A list of all the requests that came in.
|
|
159
|
+
</p>
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
<!-- <div class="sm:flex-none mt-4 sm:ml-16 sm:mt-0">
|
|
163
|
+
<button type="button" class="block px-3 py-2 font-semibold text-center text-sm text-white bg-blue-600 hover:bg-blue-500 rounded-md focus-visible:outline focus-visible:outline-2 focus-visible:outline-blue-600 focus-visible:outline-offset-2 shadow-sm">
|
|
164
|
+
Deploy
|
|
165
|
+
</button>
|
|
166
|
+
</div> -->
|
|
167
|
+
</div>
|
|
168
|
+
|
|
169
|
+
<div class="flow-root mt-8">
|
|
170
|
+
<div class="overflow-x-auto -mx-4 -my-2 sm:-mx-6 lg:-mx-8">
|
|
171
|
+
<div class="inline-block py-2 sm:px-6 lg:px-8 min-w-full align-middle">
|
|
172
|
+
<div class="overflow-hidden ring-1 ring-black ring-opacity-5 sm:rounded-lg dark:ring-neutral-600 shadow">
|
|
173
|
+
<table class="min-w-full divide-gray-300 divide-y dark:divide-neutral-600">
|
|
174
|
+
<thead class="bg-gray-50 dark:bg-neutral-700">
|
|
175
|
+
<tr>
|
|
176
|
+
<th scope="col" class="pl-4 pr-3 py-3.5 sm:pl-6 font-semibold text-gray-900 text-left text-sm dark:text-neutral-100">
|
|
177
|
+
When
|
|
178
|
+
</th>
|
|
179
|
+
|
|
180
|
+
<th scope="col" class="px-3 py-3.5 font-semibold text-gray-900 text-left text-sm dark:text-neutral-100">
|
|
181
|
+
Method
|
|
182
|
+
</th>
|
|
183
|
+
|
|
184
|
+
<th scope="col" class="px-3 py-3.5 font-semibold text-gray-900 text-left text-sm dark:text-neutral-100">
|
|
185
|
+
Status
|
|
186
|
+
</th>
|
|
187
|
+
|
|
188
|
+
<th scope="col" class="px-3 py-3.5 font-semibold text-gray-900 text-left text-sm dark:text-neutral-100">
|
|
189
|
+
Duration
|
|
190
|
+
</th>
|
|
191
|
+
|
|
192
|
+
<th scope="col" class="px-3 py-3.5 font-semibold text-gray-900 text-left text-sm dark:text-neutral-100">
|
|
193
|
+
IP Address
|
|
194
|
+
</th>
|
|
195
|
+
|
|
196
|
+
<th scope="col" class="px-3 py-3.5 font-semibold text-gray-900 text-left text-right text-sm dark:text-neutral-100">
|
|
197
|
+
Memory Usage
|
|
198
|
+
</th>
|
|
199
|
+
|
|
200
|
+
<th scope="col" class="relative pl-3 pr-4 py-3.5 sm:pr-6">
|
|
201
|
+
<span class="sr-only">Edit</span>
|
|
202
|
+
</th>
|
|
203
|
+
</tr>
|
|
204
|
+
</thead>
|
|
205
|
+
|
|
206
|
+
<tbody class="bg-white dark:bg-neutral-700 divide-gray-200 divide-y dark:divide-neutral-600">
|
|
207
|
+
<tr>
|
|
208
|
+
<td class="pl-4 pr-3 py-4 sm:pl-6 font-medium text-gray-900 text-sm whitespace-nowrap dark:text-neutral-100">
|
|
209
|
+
05/04/2024 11:02:34<span class="text-gray-400 dark:text-neutral-500">:123</span> AM UTC <em class="text-gray-400 dark:text-neutral-500">(2 mins ago)</em>
|
|
210
|
+
</td>
|
|
211
|
+
|
|
212
|
+
<td class="px-3 py-4 font-mono text-gray-500 text-sm whitespace-nowrap dark:text-neutral-300">
|
|
213
|
+
<span class="inline-flex items-center px-2 py-1 font-medium text-slate-700 text-xs dark:text-slate-300 bg-slate-50 dark:bg-slate-700 ring-1 ring-inset ring-slate-600/20 rounded-md dark:ring-slate-500/20">
|
|
214
|
+
GET
|
|
215
|
+
</span>
|
|
216
|
+
</td>
|
|
217
|
+
|
|
218
|
+
<td class="px-3 py-4 text-gray-500 text-sm whitespace-nowrap dark:text-neutral-300">
|
|
219
|
+
<span class="inline-flex items-center px-2 py-1 font-medium text-green-700 text-xs dark:text-green-400 bg-green-50 dark:bg-green-900/20 ring-1 ring-green-600/20 ring-inset rounded-md dark:ring-green-500/20">
|
|
220
|
+
Success
|
|
221
|
+
</span>
|
|
222
|
+
</td>
|
|
223
|
+
|
|
224
|
+
<td class="px-3 py-4 font-mono text-gray-500 text-sm whitespace-nowrap dark:text-neutral-300">
|
|
225
|
+
16ms
|
|
226
|
+
</td>
|
|
227
|
+
|
|
228
|
+
<td class="px-3 py-4 font-mono text-gray-500 text-sm whitespace-nowrap dark:text-neutral-300">
|
|
229
|
+
127.0.0.1
|
|
230
|
+
</td>
|
|
231
|
+
|
|
232
|
+
<td class="px-3 py-4 text-gray-500 text-right text-sm whitespace-nowrap dark:text-neutral-300">
|
|
233
|
+
128MB
|
|
234
|
+
</td>
|
|
235
|
+
|
|
236
|
+
<td class="relative pl-3 pr-4 py-4 sm:pr-6 font-medium text-right text-sm whitespace-nowrap">
|
|
237
|
+
<a href="#" class="text-blue-600 dark:text-blue-400 hover:text-blue-900 dark:hover:text-blue-300">View<span class="sr-only">, Request</span></a>
|
|
238
|
+
</td>
|
|
239
|
+
</tr>
|
|
240
|
+
|
|
241
|
+
<tr>
|
|
242
|
+
<td class="pl-4 pr-3 py-4 sm:pl-6 font-medium text-gray-900 text-sm whitespace-nowrap dark:text-neutral-100">
|
|
243
|
+
05/04/2024 11:01:34<span class="text-gray-400 dark:text-neutral-500">:123</span> AM UTC <em class="text-gray-400 dark:text-neutral-500">(3 mins ago)</em>
|
|
244
|
+
</td>
|
|
245
|
+
|
|
246
|
+
<td class="px-3 py-4 font-mono text-gray-500 text-sm whitespace-nowrap dark:text-neutral-300">
|
|
247
|
+
<span class="inline-flex items-center px-2 py-1 font-medium text-slate-700 text-xs dark:text-slate-300 bg-slate-50 dark:bg-slate-700 ring-1 ring-inset ring-slate-600/20 rounded-md dark:ring-slate-500/20">
|
|
248
|
+
POST
|
|
249
|
+
</span>
|
|
250
|
+
</td>
|
|
251
|
+
|
|
252
|
+
<td class="px-3 py-4 text-gray-500 text-sm whitespace-nowrap dark:text-neutral-300">
|
|
253
|
+
<span class="inline-flex items-center px-2 py-1 font-medium text-red-700 text-xs dark:text-red-400 bg-red-50 dark:bg-red-900/20 ring-1 ring-inset ring-red-600/20 rounded-md dark:ring-red-500/20">
|
|
254
|
+
Error
|
|
255
|
+
</span>
|
|
256
|
+
</td>
|
|
257
|
+
|
|
258
|
+
<td class="px-3 py-4 font-mono text-gray-500 text-sm whitespace-nowrap dark:text-neutral-300">
|
|
259
|
+
42ms
|
|
260
|
+
</td>
|
|
261
|
+
|
|
262
|
+
<td class="px-3 py-4 font-mono text-gray-500 text-sm whitespace-nowrap dark:text-neutral-300">
|
|
263
|
+
127.0.0.1
|
|
264
|
+
</td>
|
|
265
|
+
|
|
266
|
+
<td class="px-3 py-4 text-gray-500 text-right text-sm whitespace-nowrap dark:text-neutral-300">
|
|
267
|
+
98MB
|
|
268
|
+
</td>
|
|
269
|
+
|
|
270
|
+
<td class="relative pl-3 pr-4 py-4 sm:pr-6 font-medium text-right text-sm whitespace-nowrap">
|
|
271
|
+
<a href="#" class="text-blue-600 dark:text-blue-400 hover:text-blue-900 dark:hover:text-blue-300">View<span class="sr-only">, Request</span></a>
|
|
272
|
+
</td>
|
|
273
|
+
</tr>
|
|
274
|
+
</tbody>
|
|
275
|
+
</table>
|
|
276
|
+
</div>
|
|
277
|
+
</div>
|
|
278
|
+
</div>
|
|
279
|
+
</div>
|
|
280
|
+
</div>
|
|
281
|
+
</div>
|
|
282
|
+
|
|
283
|
+
<script client>
|
|
284
|
+
// Static chart data + options — moved out of the former `<script server>`
|
|
285
|
+
// block (stacksjs/stacks#1838).
|
|
286
|
+
const chartOptions = {
|
|
287
|
+
responsive: true,
|
|
288
|
+
maintainAspectRatio: false,
|
|
289
|
+
scales: {
|
|
290
|
+
y: {
|
|
291
|
+
beginAtZero: true,
|
|
292
|
+
grid: {
|
|
293
|
+
color: 'rgba(200, 200, 200, 0.1)',
|
|
294
|
+
},
|
|
295
|
+
ticks: {
|
|
296
|
+
color: 'rgb(156, 163, 175)',
|
|
297
|
+
font: {
|
|
298
|
+
family: "'JetBrains Mono', monospace",
|
|
299
|
+
},
|
|
300
|
+
},
|
|
301
|
+
},
|
|
302
|
+
x: {
|
|
303
|
+
grid: {
|
|
304
|
+
display: false,
|
|
305
|
+
},
|
|
306
|
+
ticks: {
|
|
307
|
+
color: 'rgb(156, 163, 175)',
|
|
308
|
+
font: {
|
|
309
|
+
family: "'JetBrains Mono', monospace",
|
|
310
|
+
},
|
|
311
|
+
},
|
|
312
|
+
},
|
|
313
|
+
},
|
|
314
|
+
plugins: {
|
|
315
|
+
legend: {
|
|
316
|
+
display: true,
|
|
317
|
+
labels: {
|
|
318
|
+
color: 'rgb(156, 163, 175)',
|
|
319
|
+
font: {
|
|
320
|
+
family: "'JetBrains Mono', monospace",
|
|
321
|
+
},
|
|
322
|
+
},
|
|
323
|
+
},
|
|
324
|
+
},
|
|
325
|
+
elements: {
|
|
326
|
+
line: {
|
|
327
|
+
tension: 0.4,
|
|
328
|
+
},
|
|
329
|
+
},
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
const requestVolumeData = {
|
|
333
|
+
labels: ['12am', '3am', '6am', '9am', '12pm', '3pm', '6pm', '9pm'],
|
|
334
|
+
datasets: [
|
|
335
|
+
{
|
|
336
|
+
label: 'Requests',
|
|
337
|
+
data: [1200, 1900, 800, 1600, 2400, 2100, 1800, 2200],
|
|
338
|
+
backgroundColor: 'rgba(59, 130, 246, 0.1)',
|
|
339
|
+
borderColor: 'rgb(59, 130, 246)',
|
|
340
|
+
fill: true,
|
|
341
|
+
},
|
|
342
|
+
],
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
const responseTimeData = {
|
|
346
|
+
labels: ['12am', '3am', '6am', '9am', '12pm', '3pm', '6pm', '9pm'],
|
|
347
|
+
datasets: [
|
|
348
|
+
{
|
|
349
|
+
label: 'Average',
|
|
350
|
+
data: [320, 280, 300, 390, 420, 350, 360, 380],
|
|
351
|
+
borderColor: 'rgb(59, 130, 246)',
|
|
352
|
+
backgroundColor: 'rgba(59, 130, 246, 0.1)',
|
|
353
|
+
fill: false,
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
label: 'p95',
|
|
357
|
+
data: [480, 420, 450, 580, 630, 525, 540, 570],
|
|
358
|
+
borderColor: 'rgb(147, 197, 253)',
|
|
359
|
+
backgroundColor: 'rgba(147, 197, 253, 0.1)',
|
|
360
|
+
fill: false,
|
|
361
|
+
},
|
|
362
|
+
],
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
const successRateData = {
|
|
366
|
+
labels: ['12am', '3am', '6am', '9am', '12pm', '3pm', '6pm', '9pm'],
|
|
367
|
+
datasets: [
|
|
368
|
+
{
|
|
369
|
+
label: 'Success Rate',
|
|
370
|
+
data: [98, 97, 99, 96, 95, 97, 98, 96],
|
|
371
|
+
borderColor: 'rgb(34, 197, 94)',
|
|
372
|
+
backgroundColor: 'rgba(34, 197, 94, 0.1)',
|
|
373
|
+
fill: true,
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
label: 'Error Rate',
|
|
377
|
+
data: [2, 3, 1, 4, 5, 3, 2, 4],
|
|
378
|
+
borderColor: 'rgb(239, 68, 68)',
|
|
379
|
+
backgroundColor: 'rgba(239, 68, 68, 0.1)',
|
|
380
|
+
fill: true,
|
|
381
|
+
},
|
|
382
|
+
],
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
const statusCodesData = {
|
|
386
|
+
labels: ['12am', '3am', '6am', '9am', '12pm', '3pm', '6pm', '9pm'],
|
|
387
|
+
datasets: [
|
|
388
|
+
{
|
|
389
|
+
label: '2xx',
|
|
390
|
+
data: [980, 970, 990, 960, 950, 970, 980, 960],
|
|
391
|
+
backgroundColor: 'rgba(34, 197, 94, 0.7)',
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
label: '3xx',
|
|
395
|
+
data: [15, 20, 8, 25, 30, 20, 15, 25],
|
|
396
|
+
backgroundColor: 'rgba(234, 179, 8, 0.7)',
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
label: '4xx/5xx',
|
|
400
|
+
data: [5, 10, 2, 15, 20, 10, 5, 15],
|
|
401
|
+
backgroundColor: 'rgba(239, 68, 68, 0.7)',
|
|
402
|
+
},
|
|
403
|
+
],
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
const barChartOptions = {
|
|
407
|
+
...chartOptions,
|
|
408
|
+
scales: {
|
|
409
|
+
...chartOptions.scales,
|
|
410
|
+
x: {
|
|
411
|
+
...chartOptions.scales.x,
|
|
412
|
+
stacked: true,
|
|
413
|
+
},
|
|
414
|
+
y: {
|
|
415
|
+
...chartOptions.scales.y,
|
|
416
|
+
stacked: true,
|
|
417
|
+
},
|
|
418
|
+
},
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
const { Chart, registerables } = await import('@stacksjs/charts')
|
|
422
|
+
Chart.register(...registerables)
|
|
423
|
+
|
|
424
|
+
const chart_1_ctx = document.getElementById('chart_1')
|
|
425
|
+
if (chart_1_ctx) {
|
|
426
|
+
new Chart(chart_1_ctx, {
|
|
427
|
+
type: 'line',
|
|
428
|
+
data: requestVolumeData,
|
|
429
|
+
options: chartOptions,
|
|
430
|
+
})
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
const chart_2_ctx = document.getElementById('chart_2')
|
|
434
|
+
if (chart_2_ctx) {
|
|
435
|
+
new Chart(chart_2_ctx, {
|
|
436
|
+
type: 'line',
|
|
437
|
+
data: responseTimeData,
|
|
438
|
+
options: chartOptions,
|
|
439
|
+
})
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
const chart_3_ctx = document.getElementById('chart_3')
|
|
443
|
+
if (chart_3_ctx) {
|
|
444
|
+
new Chart(chart_3_ctx, {
|
|
445
|
+
type: 'line',
|
|
446
|
+
data: successRateData,
|
|
447
|
+
options: chartOptions,
|
|
448
|
+
})
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
const chart_4_ctx = document.getElementById('chart_4')
|
|
452
|
+
if (chart_4_ctx) {
|
|
453
|
+
new Chart(chart_4_ctx, {
|
|
454
|
+
type: 'bar',
|
|
455
|
+
data: statusCodesData,
|
|
456
|
+
options: barChartOptions,
|
|
457
|
+
})
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
</script>
|
|
461
|
+
|
|
462
|
+
@endsection
|