@cogito.ai/cli 0.4.2 → 0.4.4
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/README.md +29 -22
- package/dist/index.js +9 -15
- package/dist/templates/web-nextjs/.github/copilot-instructions.md +5 -6
- package/dist/templates/web-nextjs/README.md +25 -24
- package/dist/templates/web-nextjs/apps/docs/.source/browser.ts +1 -1
- package/dist/templates/web-nextjs/apps/docs/.source/server.ts +6 -6
- package/dist/templates/web-nextjs/apps/docs/app/docs/[[...slug]]/page.tsx +1 -6
- package/dist/templates/web-nextjs/apps/docs/app/docs/layout.tsx +1 -4
- package/dist/templates/web-nextjs/apps/docs/app/llms-full.txt/route.ts +3 -1
- package/dist/templates/web-nextjs/apps/docs/next-env.d.ts +1 -1
- package/dist/templates/web-nextjs/apps/web/.env.example +35 -0
- package/dist/templates/web-nextjs/apps/web/.github/copilot-instructions.md +53 -6
- package/dist/templates/web-nextjs/apps/web/.github/skills/impeccable/SKILL.md +55 -0
- package/dist/templates/web-nextjs/apps/web/DESIGN.md +65 -0
- package/dist/templates/web-nextjs/apps/web/messages/en.json +151 -5
- package/dist/templates/web-nextjs/apps/web/messages/zh.json +151 -5
- package/dist/templates/web-nextjs/apps/web/next-env.d.ts +1 -1
- package/dist/templates/web-nextjs/apps/web/next.config.ts +3 -3
- package/dist/templates/web-nextjs/apps/web/package.json +4 -0
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/(auth)/forgot-password/page.tsx +167 -38
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/(auth)/login/page.tsx +13 -3
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/(auth)/reset-password/page.tsx +4 -1
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/(auth)/signup/page.tsx +18 -17
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/(protected)/dashboard/page.tsx +1 -5
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/(protected)/payment/[paymentId]/page.tsx +88 -0
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/(protected)/payment/checkout/page.tsx +170 -0
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/(protected)/pricing/page.tsx +120 -0
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/(protected)/settings/layout.tsx +45 -2
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/(protected)/settings/profile/page.tsx +2 -8
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/(protected)/settings/subscription/page.tsx +128 -0
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/about/page.tsx +3 -6
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/globals.css +17 -5
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/help/page.tsx +1 -5
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/layout.tsx +10 -8
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/page.tsx +22 -6
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/privacy/page.tsx +3 -6
- package/dist/templates/web-nextjs/apps/web/src/app/[locale]/terms/page.tsx +1 -5
- package/dist/templates/web-nextjs/apps/web/src/app/api/payments/alipay/create/route.ts +43 -0
- package/dist/templates/web-nextjs/apps/web/src/app/api/payments/alipay/notify/route.ts +105 -0
- package/dist/templates/web-nextjs/apps/web/src/app/api/payments/alipay/query/route.ts +54 -0
- package/dist/templates/web-nextjs/apps/web/src/app/api/payments/alipay/return/route.ts +20 -0
- package/dist/templates/web-nextjs/apps/web/src/app/api/payments/create/route.ts +52 -0
- package/dist/templates/web-nextjs/apps/web/src/app/api/payments/wechat/create/route.ts +58 -0
- package/dist/templates/web-nextjs/apps/web/src/app/api/payments/wechat/notify/route.ts +92 -0
- package/dist/templates/web-nextjs/apps/web/src/app/api/payments/wechat/query/route.ts +54 -0
- package/dist/templates/web-nextjs/apps/web/src/app/auth/callback/route.ts +2 -3
- package/dist/templates/web-nextjs/apps/web/src/components/dashboard/app-sidebar.tsx +13 -16
- package/dist/templates/web-nextjs/apps/web/src/components/dashboard/chart-area-interactive.tsx +122 -146
- package/dist/templates/web-nextjs/apps/web/src/components/dashboard/data-table.tsx +84 -149
- package/dist/templates/web-nextjs/apps/web/src/components/dashboard/nav-documents.tsx +7 -16
- package/dist/templates/web-nextjs/apps/web/src/components/dashboard/nav-main.tsx +4 -4
- package/dist/templates/web-nextjs/apps/web/src/components/dashboard/nav-secondary.tsx +4 -4
- package/dist/templates/web-nextjs/apps/web/src/components/dashboard/nav-user.tsx +12 -21
- package/dist/templates/web-nextjs/apps/web/src/components/dashboard/page.tsx +10 -13
- package/dist/templates/web-nextjs/apps/web/src/components/dashboard/section-cards.tsx +5 -9
- package/dist/templates/web-nextjs/apps/web/src/components/dashboard/site-header.tsx +6 -7
- package/dist/templates/web-nextjs/apps/web/src/components/landing/features.tsx +63 -0
- package/dist/templates/web-nextjs/apps/web/src/components/landing/footer.tsx +48 -0
- package/dist/templates/web-nextjs/apps/web/src/components/landing/header.tsx +97 -0
- package/dist/templates/web-nextjs/apps/web/src/components/landing/hero.tsx +45 -0
- package/dist/templates/web-nextjs/apps/web/src/components/landing/how-it-works.tsx +35 -0
- package/dist/templates/web-nextjs/apps/web/src/components/landing/pricing-teaser.tsx +23 -0
- package/dist/templates/web-nextjs/apps/web/src/components/profile/profile-form.tsx +6 -4
- package/dist/templates/web-nextjs/apps/web/src/components/providers/theme-provider.tsx +16 -0
- package/dist/templates/web-nextjs/apps/web/src/components/ui/alert-dialog.tsx +32 -49
- package/dist/templates/web-nextjs/apps/web/src/components/ui/alert.tsx +16 -23
- package/dist/templates/web-nextjs/apps/web/src/components/ui/avatar.tsx +25 -38
- package/dist/templates/web-nextjs/apps/web/src/components/ui/badge.tsx +16 -18
- package/dist/templates/web-nextjs/apps/web/src/components/ui/breadcrumb.tsx +19 -26
- package/dist/templates/web-nextjs/apps/web/src/components/ui/button.tsx +23 -24
- package/dist/templates/web-nextjs/apps/web/src/components/ui/card.tsx +19 -36
- package/dist/templates/web-nextjs/apps/web/src/components/ui/chart.tsx +60 -94
- package/dist/templates/web-nextjs/apps/web/src/components/ui/checkbox.tsx +8 -11
- package/dist/templates/web-nextjs/apps/web/src/components/ui/collapsible.tsx +5 -17
- package/dist/templates/web-nextjs/apps/web/src/components/ui/command.tsx +25 -48
- package/dist/templates/web-nextjs/apps/web/src/components/ui/dialog.tsx +21 -35
- package/dist/templates/web-nextjs/apps/web/src/components/ui/drawer.tsx +24 -35
- package/dist/templates/web-nextjs/apps/web/src/components/ui/dropdown-menu.tsx +26 -55
- package/dist/templates/web-nextjs/apps/web/src/components/ui/field.tsx +62 -76
- package/dist/templates/web-nextjs/apps/web/src/components/ui/form.tsx +19 -34
- package/dist/templates/web-nextjs/apps/web/src/components/ui/input-otp.tsx +13 -20
- package/dist/templates/web-nextjs/apps/web/src/components/ui/input.tsx +6 -6
- package/dist/templates/web-nextjs/apps/web/src/components/ui/label.tsx +6 -6
- package/dist/templates/web-nextjs/apps/web/src/components/ui/pagination.tsx +21 -42
- package/dist/templates/web-nextjs/apps/web/src/components/ui/popover.tsx +16 -31
- package/dist/templates/web-nextjs/apps/web/src/components/ui/progress.tsx +5 -8
- package/dist/templates/web-nextjs/apps/web/src/components/ui/radio-group.tsx +8 -8
- package/dist/templates/web-nextjs/apps/web/src/components/ui/scroll-area.tsx +10 -12
- package/dist/templates/web-nextjs/apps/web/src/components/ui/select.tsx +26 -41
- package/dist/templates/web-nextjs/apps/web/src/components/ui/separator.tsx +7 -7
- package/dist/templates/web-nextjs/apps/web/src/components/ui/sheet.tsx +29 -38
- package/dist/templates/web-nextjs/apps/web/src/components/ui/sidebar.tsx +157 -189
- package/dist/templates/web-nextjs/apps/web/src/components/ui/skeleton.tsx +3 -3
- package/dist/templates/web-nextjs/apps/web/src/components/ui/slider.tsx +10 -15
- package/dist/templates/web-nextjs/apps/web/src/components/ui/sonner.tsx +13 -7
- package/dist/templates/web-nextjs/apps/web/src/components/ui/switch.tsx +9 -9
- package/dist/templates/web-nextjs/apps/web/src/components/ui/table.tsx +24 -48
- package/dist/templates/web-nextjs/apps/web/src/components/ui/tabs.tsx +21 -31
- package/dist/templates/web-nextjs/apps/web/src/components/ui/textarea.tsx +5 -5
- package/dist/templates/web-nextjs/apps/web/src/components/ui/theme-toggle.tsx +23 -0
- package/dist/templates/web-nextjs/apps/web/src/components/ui/toggle-group.tsx +15 -16
- package/dist/templates/web-nextjs/apps/web/src/components/ui/toggle.tsx +14 -15
- package/dist/templates/web-nextjs/apps/web/src/components/ui/tooltip.tsx +8 -12
- package/dist/templates/web-nextjs/apps/web/src/core/repositories/IAuthRepository.ts +2 -0
- package/dist/templates/web-nextjs/apps/web/src/core/types/auth.ts +1 -3
- package/dist/templates/web-nextjs/apps/web/src/features/auth/actions.ts +57 -1
- package/dist/templates/web-nextjs/apps/web/src/features/auth/index.ts +2 -0
- package/dist/templates/web-nextjs/apps/web/src/features/subscription/alipay/client.ts +36 -0
- package/dist/templates/web-nextjs/apps/web/src/features/subscription/alipay/server.ts +83 -0
- package/dist/templates/web-nextjs/apps/web/src/features/subscription/components/index.ts +4 -0
- package/dist/templates/web-nextjs/apps/web/src/features/subscription/components/pro-badge.tsx +9 -0
- package/dist/templates/web-nextjs/apps/web/src/features/subscription/components/pro-feature-comparison.tsx +70 -0
- package/dist/templates/web-nextjs/apps/web/src/features/subscription/components/quota-warning-banner.tsx +37 -0
- package/dist/templates/web-nextjs/apps/web/src/features/subscription/components/upgrade-button.tsx +42 -0
- package/dist/templates/web-nextjs/apps/web/src/features/subscription/hooks.ts +141 -0
- package/dist/templates/web-nextjs/apps/web/src/features/subscription/payment-helpers.ts +27 -0
- package/dist/templates/web-nextjs/apps/web/src/features/subscription/payment-service.ts +56 -0
- package/dist/templates/web-nextjs/apps/web/src/features/subscription/service.ts +55 -0
- package/dist/templates/web-nextjs/apps/web/src/features/subscription/types.ts +73 -0
- package/dist/templates/web-nextjs/apps/web/src/features/subscription/wechat/client.ts +33 -0
- package/dist/templates/web-nextjs/apps/web/src/features/subscription/wechat/server.ts +147 -0
- package/dist/templates/web-nextjs/apps/web/src/hooks/use-mobile.ts +4 -4
- package/dist/templates/web-nextjs/apps/web/src/i18n/config.ts +1 -1
- package/dist/templates/web-nextjs/apps/web/src/infra/db/SupabaseAuthRepository.ts +48 -4
- package/dist/templates/web-nextjs/apps/web/src/infra/db/client.ts +1 -4
- package/dist/templates/web-nextjs/apps/web/src/lib/supabase/admin.ts +23 -0
- package/dist/templates/web-nextjs/apps/web/src/lib/utils.ts +2 -2
- package/dist/templates/web-nextjs/apps/web/src/lib/validations/auth.ts +13 -0
- package/dist/templates/web-nextjs/apps/web/src/lib/wechat-pay/client.ts +66 -0
- package/dist/templates/web-nextjs/apps/web/src/lib/wechat-pay/crypto.ts +99 -0
- package/dist/templates/web-nextjs/apps/web/src/lib/wechat-pay/types.ts +10 -0
- package/dist/templates/web-nextjs/apps/web/src/styles/tokens.css +58 -0
- package/dist/templates/web-nextjs/pnpm-lock.yaml +319 -0
- package/dist/templates/web-nextjs/supabase/migrations/20250608_add_subscription_tables.sql +125 -0
- package/package.json +1 -1
|
@@ -3,6 +3,73 @@
|
|
|
3
3
|
"title": "Welcome to AgentDock Web Template",
|
|
4
4
|
"description": "A Next.js scaffold with four-layer architecture."
|
|
5
5
|
},
|
|
6
|
+
"landing": {
|
|
7
|
+
"nav": {
|
|
8
|
+
"features": "Features",
|
|
9
|
+
"pricing": "Pricing",
|
|
10
|
+
"docs": "Docs",
|
|
11
|
+
"login": "Log in",
|
|
12
|
+
"getStarted": "Get Started"
|
|
13
|
+
},
|
|
14
|
+
"hero": {
|
|
15
|
+
"badge": "Open Source",
|
|
16
|
+
"title": "Build SaaS Faster with AgentDock",
|
|
17
|
+
"subtitle": "A production-ready Next.js scaffold with four-layer architecture, Supabase auth, i18n, and AI coding agent integration. Ship your next product in days, not months.",
|
|
18
|
+
"ctaPrimary": "Get Started Free",
|
|
19
|
+
"ctaSecondary": "View Docs"
|
|
20
|
+
},
|
|
21
|
+
"features": {
|
|
22
|
+
"title": "Everything you need to ship",
|
|
23
|
+
"subtitle": "Built-in features that let you focus on your product, not the boilerplate.",
|
|
24
|
+
"items": {
|
|
25
|
+
"auth": {
|
|
26
|
+
"title": "Authentication",
|
|
27
|
+
"description": "Complete auth flow with email/password, OAuth, and password reset. Secured by Supabase."
|
|
28
|
+
},
|
|
29
|
+
"monorepo": {
|
|
30
|
+
"title": "Monorepo Ready",
|
|
31
|
+
"description": "Turborepo + pnpm workspace with shared packages for types, ESLint, and tooling."
|
|
32
|
+
},
|
|
33
|
+
"aiCoding": {
|
|
34
|
+
"title": "AI Coding Ready",
|
|
35
|
+
"description": "Structured for AI agents with clear contracts, design system, and copilot instructions."
|
|
36
|
+
},
|
|
37
|
+
"docs": {
|
|
38
|
+
"title": "Docs Co-evolution",
|
|
39
|
+
"description": "Fumadocs-powered documentation that grows alongside your application."
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"howItWorks": {
|
|
44
|
+
"title": "How it works",
|
|
45
|
+
"subtitle": "Get up and running in three simple steps.",
|
|
46
|
+
"steps": {
|
|
47
|
+
"step1": {
|
|
48
|
+
"title": "Scaffold",
|
|
49
|
+
"description": "Run the CLI to generate your project with all batteries included."
|
|
50
|
+
},
|
|
51
|
+
"step2": {
|
|
52
|
+
"title": "Customize",
|
|
53
|
+
"description": "Adjust tokens, colors, and content to match your brand."
|
|
54
|
+
},
|
|
55
|
+
"step3": {
|
|
56
|
+
"title": "Ship",
|
|
57
|
+
"description": "Deploy to Vercel with one command and start building."
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"pricing": {
|
|
62
|
+
"title": "Pricing",
|
|
63
|
+
"description": "Pricing plans coming soon. Contact us for early access.",
|
|
64
|
+
"cta": "Contact Us"
|
|
65
|
+
},
|
|
66
|
+
"footer": {
|
|
67
|
+
"help": "Help",
|
|
68
|
+
"privacy": "Privacy",
|
|
69
|
+
"about": "About",
|
|
70
|
+
"copyright": "© {year} AgentDock. All rights reserved."
|
|
71
|
+
}
|
|
72
|
+
},
|
|
6
73
|
"auth": {
|
|
7
74
|
"loginTitle": "Welcome back",
|
|
8
75
|
"loginSubtitle": "Sign in to your account",
|
|
@@ -36,18 +103,29 @@
|
|
|
36
103
|
"privacyLink": "Privacy Policy",
|
|
37
104
|
"forgotPasswordLink": "Forgot password?",
|
|
38
105
|
"forgotPasswordTitle": "Reset your password",
|
|
39
|
-
"forgotPasswordSubtitle": "Enter your email and we'll send you a
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
106
|
+
"forgotPasswordSubtitle": "Enter your email and we'll send you a verification code.",
|
|
107
|
+
"sendVerificationCode": "Send verification code",
|
|
108
|
+
"verificationCodeLabel": "Email verification code",
|
|
109
|
+
"verificationCodePlaceholder": "Enter 6-digit code",
|
|
110
|
+
"resendIn": "Resend in {seconds}s",
|
|
111
|
+
"resendCode": "Resend code",
|
|
43
112
|
"resetPasswordTitle": "Set new password",
|
|
44
113
|
"resetPasswordSubtitle": "Enter your new password below.",
|
|
45
114
|
"newPasswordLabel": "New password",
|
|
46
|
-
"
|
|
115
|
+
"newPasswordPlaceholder": "••••••••",
|
|
116
|
+
"confirmPasswordLabel": "Confirm new password",
|
|
117
|
+
"confirmPasswordPlaceholder": "••••••••",
|
|
118
|
+
"resetPassword": "Reset password",
|
|
119
|
+
"changeEmail": "Change email",
|
|
120
|
+
"forgotPasswordSent": "A reset link has been sent to {email}. Please check your inbox.",
|
|
121
|
+
"sendResetLink": "Send reset link",
|
|
122
|
+
"backToLogin": "Back to login",
|
|
47
123
|
"resetLinkExpired": "The reset link has expired. Please request a new one.",
|
|
48
124
|
"resetPasswordSuccess": "Password updated. Please log in."
|
|
49
125
|
},
|
|
50
126
|
"settings": {
|
|
127
|
+
"profileTitle": "Profile",
|
|
128
|
+
"subscriptionTitle": "Subscription & Billing",
|
|
51
129
|
"profile": {
|
|
52
130
|
"title": "Profile Settings",
|
|
53
131
|
"subtitle": "Manage your account settings and preferences.",
|
|
@@ -84,5 +162,73 @@
|
|
|
84
162
|
"description": "Learn more about AgentDock.",
|
|
85
163
|
"placeholder": "This page is a placeholder. Replace it with your actual about information before shipping."
|
|
86
164
|
}
|
|
165
|
+
},
|
|
166
|
+
"pricing": {
|
|
167
|
+
"title": "Pricing",
|
|
168
|
+
"description": "Choose the plan that fits your needs",
|
|
169
|
+
"monthly": "Monthly",
|
|
170
|
+
"yearly": "Yearly",
|
|
171
|
+
"free": "Free",
|
|
172
|
+
"perMonth": "mo",
|
|
173
|
+
"perYear": "yr",
|
|
174
|
+
"currentPlan": "Current Plan",
|
|
175
|
+
"popular": "Popular",
|
|
176
|
+
"upgrade": "Upgrade",
|
|
177
|
+
"getStarted": "Get Started"
|
|
178
|
+
},
|
|
179
|
+
"payment": {
|
|
180
|
+
"checkoutTitle": "Checkout",
|
|
181
|
+
"orderSummary": "Order Summary",
|
|
182
|
+
"plan": "Plan",
|
|
183
|
+
"billingCycle": "Billing Cycle",
|
|
184
|
+
"total": "Total",
|
|
185
|
+
"paymentMethod": "Payment Method",
|
|
186
|
+
"alipay": "Alipay",
|
|
187
|
+
"wechatPay": "WeChat Pay",
|
|
188
|
+
"coupon": "Coupon",
|
|
189
|
+
"couponPlaceholder": "Enter coupon code",
|
|
190
|
+
"invalidCoupon": "Invalid coupon",
|
|
191
|
+
"paymentError": "Payment failed. Please try again.",
|
|
192
|
+
"confirmPayment": "Confirm Payment",
|
|
193
|
+
"processing": "Processing...",
|
|
194
|
+
"statusTitle": "Payment Status",
|
|
195
|
+
"paymentStatus": "Payment Status",
|
|
196
|
+
"paid": "Paid",
|
|
197
|
+
"pending": "Pending",
|
|
198
|
+
"failed": "Failed",
|
|
199
|
+
"paymentSuccess": "Payment successful!",
|
|
200
|
+
"paymentFailed": "Payment failed",
|
|
201
|
+
"paymentPending": "Waiting for payment...",
|
|
202
|
+
"paymentPendingDescription": "Please complete the payment. This page will update automatically.",
|
|
203
|
+
"goToDashboard": "Go to Dashboard",
|
|
204
|
+
"tryAgain": "Try Again"
|
|
205
|
+
},
|
|
206
|
+
"subscription": {
|
|
207
|
+
"title": "Subscription & Billing",
|
|
208
|
+
"description": "Manage your subscription and payment history",
|
|
209
|
+
"currentPlan": "Current Plan",
|
|
210
|
+
"status": "Status",
|
|
211
|
+
"active": "Active",
|
|
212
|
+
"trial": "Trial",
|
|
213
|
+
"expired": "Expired",
|
|
214
|
+
"cancelled": "Cancelled",
|
|
215
|
+
"pending": "Pending",
|
|
216
|
+
"billingCycle": "Billing Cycle",
|
|
217
|
+
"monthly": "Monthly",
|
|
218
|
+
"yearly": "Yearly",
|
|
219
|
+
"expiresOn": "Expires on",
|
|
220
|
+
"cancelRenewal": "Cancel Auto-Renewal",
|
|
221
|
+
"cancelledAtPeriodEnd": "Set to cancel at end of period",
|
|
222
|
+
"noActiveSubscription": "No active subscription",
|
|
223
|
+
"upgradeNow": "Upgrade Now",
|
|
224
|
+
"paymentHistory": "Payment History",
|
|
225
|
+
"noPayments": "No payment history",
|
|
226
|
+
"feature": "Feature",
|
|
227
|
+
"free": "Free",
|
|
228
|
+
"pro": "Pro",
|
|
229
|
+
"featureProjects": "Projects",
|
|
230
|
+
"featureApiCalls": "API Calls",
|
|
231
|
+
"featureSupport": "Priority Support",
|
|
232
|
+
"featureAnalytics": "Advanced Analytics"
|
|
87
233
|
}
|
|
88
234
|
}
|
|
@@ -3,6 +3,73 @@
|
|
|
3
3
|
"title": "欢迎使用 AgentDock Web 模板",
|
|
4
4
|
"description": "基于四层架构的 Next.js 脚手架。"
|
|
5
5
|
},
|
|
6
|
+
"landing": {
|
|
7
|
+
"nav": {
|
|
8
|
+
"features": "功能",
|
|
9
|
+
"pricing": "定价",
|
|
10
|
+
"docs": "文档",
|
|
11
|
+
"login": "登录",
|
|
12
|
+
"getStarted": "开始使用"
|
|
13
|
+
},
|
|
14
|
+
"hero": {
|
|
15
|
+
"badge": "开源",
|
|
16
|
+
"title": "用 AgentDock 更快地构建 SaaS",
|
|
17
|
+
"subtitle": "一个生产就绪的 Next.js 脚手架,包含四层架构、Supabase 认证、国际化和 AI 编码代理集成。",
|
|
18
|
+
"ctaPrimary": "免费开始",
|
|
19
|
+
"ctaSecondary": "查看文档"
|
|
20
|
+
},
|
|
21
|
+
"features": {
|
|
22
|
+
"title": "开箱即用的功能",
|
|
23
|
+
"subtitle": "内置功能让你专注于产品,而非样板代码。",
|
|
24
|
+
"items": {
|
|
25
|
+
"auth": {
|
|
26
|
+
"title": "认证系统",
|
|
27
|
+
"description": "完整的认证流程,支持邮箱/密码、OAuth 和密码重置。由 Supabase 保障安全。"
|
|
28
|
+
},
|
|
29
|
+
"monorepo": {
|
|
30
|
+
"title": "Monorepo 就绪",
|
|
31
|
+
"description": "Turborepo + pnpm 工作区,包含共享的类型、ESLint 和工具包。"
|
|
32
|
+
},
|
|
33
|
+
"aiCoding": {
|
|
34
|
+
"title": "AI 编码就绪",
|
|
35
|
+
"description": "为 AI 代理优化的结构,包含清晰的契约、设计系统和 Copilot 指令。"
|
|
36
|
+
},
|
|
37
|
+
"docs": {
|
|
38
|
+
"title": "文档协同进化",
|
|
39
|
+
"description": "基于 Fumadocs 的文档系统,与应用共同成长。"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"howItWorks": {
|
|
44
|
+
"title": "工作原理",
|
|
45
|
+
"subtitle": "三个简单步骤即可启动运行。",
|
|
46
|
+
"steps": {
|
|
47
|
+
"step1": {
|
|
48
|
+
"title": "脚手架",
|
|
49
|
+
"description": "运行 CLI 生成包含所有功能的初始项目。"
|
|
50
|
+
},
|
|
51
|
+
"step2": {
|
|
52
|
+
"title": "自定义",
|
|
53
|
+
"description": "调整 token、颜色和内容以匹配你的品牌。"
|
|
54
|
+
},
|
|
55
|
+
"step3": {
|
|
56
|
+
"title": "发布",
|
|
57
|
+
"description": "一条命令部署到 Vercel,开始构建。"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"pricing": {
|
|
62
|
+
"title": "定价",
|
|
63
|
+
"description": "定价方案即将推出,欢迎联系我们获取早期访问。",
|
|
64
|
+
"cta": "联系我们"
|
|
65
|
+
},
|
|
66
|
+
"footer": {
|
|
67
|
+
"help": "帮助",
|
|
68
|
+
"privacy": "隐私",
|
|
69
|
+
"about": "关于",
|
|
70
|
+
"copyright": "© {year} AgentDock。保留所有权利。"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
6
73
|
"auth": {
|
|
7
74
|
"loginTitle": "欢迎回来",
|
|
8
75
|
"loginSubtitle": "登录您的账号",
|
|
@@ -36,18 +103,29 @@
|
|
|
36
103
|
"privacyLink": "隐私政策",
|
|
37
104
|
"forgotPasswordLink": "忘记密码?",
|
|
38
105
|
"forgotPasswordTitle": "重置密码",
|
|
39
|
-
"forgotPasswordSubtitle": "
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
106
|
+
"forgotPasswordSubtitle": "输入您的邮箱,我们将发送验证码。",
|
|
107
|
+
"sendVerificationCode": "发送验证码",
|
|
108
|
+
"verificationCodeLabel": "邮箱验证码",
|
|
109
|
+
"verificationCodePlaceholder": "输入 6 位验证码",
|
|
110
|
+
"resendIn": "{seconds} 秒后重新发送",
|
|
111
|
+
"resendCode": "重新发送",
|
|
43
112
|
"resetPasswordTitle": "设置新密码",
|
|
44
113
|
"resetPasswordSubtitle": "在下方输入您的新密码。",
|
|
45
114
|
"newPasswordLabel": "新密码",
|
|
46
|
-
"
|
|
115
|
+
"newPasswordPlaceholder": "••••••••",
|
|
116
|
+
"confirmPasswordLabel": "确认新密码",
|
|
117
|
+
"confirmPasswordPlaceholder": "••••••••",
|
|
118
|
+
"resetPassword": "立即重置",
|
|
119
|
+
"changeEmail": "更换邮箱",
|
|
120
|
+
"forgotPasswordSent": "重置链接已发送至 {email},请查收邮件。",
|
|
121
|
+
"sendResetLink": "发送重置链接",
|
|
122
|
+
"backToLogin": "返回登录",
|
|
47
123
|
"resetLinkExpired": "重置链接已过期,请重新申请。",
|
|
48
124
|
"resetPasswordSuccess": "密码已更新,请登录。"
|
|
49
125
|
},
|
|
50
126
|
"settings": {
|
|
127
|
+
"profileTitle": "个人资料",
|
|
128
|
+
"subscriptionTitle": "订阅与账单",
|
|
51
129
|
"profile": {
|
|
52
130
|
"title": "个人资料设置",
|
|
53
131
|
"subtitle": "管理您的账号设置和偏好。",
|
|
@@ -84,5 +162,73 @@
|
|
|
84
162
|
"description": "了解更多关于 AgentDock 的信息。",
|
|
85
163
|
"placeholder": "此页面为占位符。在发布前请替换为实际的关于我们信息。"
|
|
86
164
|
}
|
|
165
|
+
},
|
|
166
|
+
"pricing": {
|
|
167
|
+
"title": "定价",
|
|
168
|
+
"description": "选择适合您的方案",
|
|
169
|
+
"monthly": "月付",
|
|
170
|
+
"yearly": "年付",
|
|
171
|
+
"free": "免费",
|
|
172
|
+
"perMonth": "月",
|
|
173
|
+
"perYear": "年",
|
|
174
|
+
"currentPlan": "当前方案",
|
|
175
|
+
"popular": "热门",
|
|
176
|
+
"upgrade": "升级",
|
|
177
|
+
"getStarted": "开始使用"
|
|
178
|
+
},
|
|
179
|
+
"payment": {
|
|
180
|
+
"checkoutTitle": "结算",
|
|
181
|
+
"orderSummary": "订单摘要",
|
|
182
|
+
"plan": "方案",
|
|
183
|
+
"billingCycle": "计费周期",
|
|
184
|
+
"total": "总计",
|
|
185
|
+
"paymentMethod": "支付方式",
|
|
186
|
+
"alipay": "支付宝",
|
|
187
|
+
"wechatPay": "微信支付",
|
|
188
|
+
"coupon": "优惠码",
|
|
189
|
+
"couponPlaceholder": "输入优惠码",
|
|
190
|
+
"invalidCoupon": "无效优惠码",
|
|
191
|
+
"paymentError": "支付失败,请重试",
|
|
192
|
+
"confirmPayment": "确认支付",
|
|
193
|
+
"processing": "处理中...",
|
|
194
|
+
"statusTitle": "支付状态",
|
|
195
|
+
"paymentStatus": "支付状态",
|
|
196
|
+
"paid": "已支付",
|
|
197
|
+
"pending": "待支付",
|
|
198
|
+
"failed": "失败",
|
|
199
|
+
"paymentSuccess": "支付成功!",
|
|
200
|
+
"paymentFailed": "支付失败",
|
|
201
|
+
"paymentPending": "等待支付...",
|
|
202
|
+
"paymentPendingDescription": "请完成支付,页面将自动更新",
|
|
203
|
+
"goToDashboard": "进入控制台",
|
|
204
|
+
"tryAgain": "重试"
|
|
205
|
+
},
|
|
206
|
+
"subscription": {
|
|
207
|
+
"title": "订阅与账单",
|
|
208
|
+
"description": "管理您的订阅和支付历史",
|
|
209
|
+
"currentPlan": "当前方案",
|
|
210
|
+
"status": "状态",
|
|
211
|
+
"active": "活跃",
|
|
212
|
+
"trial": "试用",
|
|
213
|
+
"expired": "已过期",
|
|
214
|
+
"cancelled": "已取消",
|
|
215
|
+
"pending": "待处理",
|
|
216
|
+
"billingCycle": "计费周期",
|
|
217
|
+
"monthly": "月付",
|
|
218
|
+
"yearly": "年付",
|
|
219
|
+
"expiresOn": "到期时间",
|
|
220
|
+
"cancelRenewal": "取消自动续费",
|
|
221
|
+
"cancelledAtPeriodEnd": "已设置为当前周期结束后取消",
|
|
222
|
+
"noActiveSubscription": "暂无活跃订阅",
|
|
223
|
+
"upgradeNow": "立即升级",
|
|
224
|
+
"paymentHistory": "支付历史",
|
|
225
|
+
"noPayments": "暂无支付记录",
|
|
226
|
+
"feature": "功能",
|
|
227
|
+
"free": "免费版",
|
|
228
|
+
"pro": "专业版",
|
|
229
|
+
"featureProjects": "项目数量",
|
|
230
|
+
"featureApiCalls": "API 调用次数",
|
|
231
|
+
"featureSupport": "优先支持",
|
|
232
|
+
"featureAnalytics": "高级分析"
|
|
87
233
|
}
|
|
88
234
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="next" />
|
|
2
2
|
/// <reference types="next/image-types/global" />
|
|
3
|
-
import "./.next/
|
|
3
|
+
import "./.next/types/routes.d.ts";
|
|
4
4
|
|
|
5
5
|
// NOTE: This file should not be edited
|
|
6
6
|
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
|
|
@@ -5,9 +5,9 @@ import path from 'node:path'
|
|
|
5
5
|
const withNextIntl = createNextIntlPlugin('./src/i18n/request.ts')
|
|
6
6
|
|
|
7
7
|
const nextConfig: NextConfig = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
turbopack: {
|
|
9
|
+
root: path.resolve(process.cwd(), '../..'),
|
|
10
|
+
},
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export default withNextIntl(nextConfig)
|
|
@@ -33,9 +33,12 @@
|
|
|
33
33
|
"@radix-ui/react-toggle": "^1.1.10",
|
|
34
34
|
"@radix-ui/react-toggle-group": "^1.1.11",
|
|
35
35
|
"@supabase/ssr": "^0.10.3",
|
|
36
|
+
"@supabase/supabase-js": "^2.107.0",
|
|
36
37
|
"@tabler/icons-react": "^3.44.0",
|
|
37
38
|
"@tailwindcss/postcss": "^4.3.0",
|
|
39
|
+
"@tanstack/react-query": "^5.101.0",
|
|
38
40
|
"@tanstack/react-table": "^8.21.3",
|
|
41
|
+
"alipay-sdk": "^4.14.0",
|
|
39
42
|
"class-variance-authority": "^0.7.1",
|
|
40
43
|
"clsx": "^2.1.1",
|
|
41
44
|
"cmdk": "^1.1.1",
|
|
@@ -44,6 +47,7 @@
|
|
|
44
47
|
"next": "16",
|
|
45
48
|
"next-intl": "^4.13.0",
|
|
46
49
|
"next-themes": "^0.4.6",
|
|
50
|
+
"qrcode.react": "^4.2.0",
|
|
47
51
|
"radix-ui": "^1.4.3",
|
|
48
52
|
"react": "19",
|
|
49
53
|
"react-dom": "19",
|