create-nextdevtpl 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (425) hide show
  1. package/README.md +29 -0
  2. package/catalog.json +385 -0
  3. package/dist/catalog.d.ts +3 -0
  4. package/dist/catalog.js +112 -0
  5. package/dist/catalog.js.map +1 -0
  6. package/dist/cli.d.ts +3 -0
  7. package/dist/cli.js +115 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/filesystem.d.ts +10 -0
  10. package/dist/filesystem.js +86 -0
  11. package/dist/filesystem.js.map +1 -0
  12. package/dist/generate.d.ts +5 -0
  13. package/dist/generate.js +758 -0
  14. package/dist/generate.js.map +1 -0
  15. package/dist/index.d.ts +4 -0
  16. package/dist/index.js +4 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/selection.d.ts +2 -0
  19. package/dist/selection.js +111 -0
  20. package/dist/selection.js.map +1 -0
  21. package/dist/service-templates.d.ts +4 -0
  22. package/dist/service-templates.js +180 -0
  23. package/dist/service-templates.js.map +1 -0
  24. package/dist/types.d.ts +65 -0
  25. package/dist/types.js +2 -0
  26. package/dist/types.js.map +1 -0
  27. package/package.json +54 -0
  28. package/template/.dockerignore +14 -0
  29. package/template/.env.example +282 -0
  30. package/template/.gitattributes +17 -0
  31. package/template/.node-version +1 -0
  32. package/template/Dockerfile +45 -0
  33. package/template/LICENSE +21 -0
  34. package/template/README.md +267 -0
  35. package/template/biome.json +68 -0
  36. package/template/cloudflare/templates/logger.ts +162 -0
  37. package/template/cloudflare/templates/mail/server.ts +6 -0
  38. package/template/cloudflare/templates/mail/templates.ts +87 -0
  39. package/template/cloudflare/templates/mail/utils.ts +69 -0
  40. package/template/cloudflare/worker.mjs +25 -0
  41. package/template/components.json +22 -0
  42. package/template/compose.yaml +74 -0
  43. package/template/deploy/check-health.mjs +25 -0
  44. package/template/deploy/docker/README.md +14 -0
  45. package/template/deploy/server/README.md +24 -0
  46. package/template/deploy/server/build.sh +24 -0
  47. package/template/deploy/server/nextdevtpl.service +19 -0
  48. package/template/deploy/server/start.sh +19 -0
  49. package/template/deploy/vercel/README.md +16 -0
  50. package/template/deploy/verify-production-health.mjs +86 -0
  51. package/template/drizzle.config.ts +47 -0
  52. package/template/gitignore +62 -0
  53. package/template/manifest.json +35 -0
  54. package/template/messages/en.json +766 -0
  55. package/template/messages/zh.json +762 -0
  56. package/template/next.config.mjs +28 -0
  57. package/template/open-next.config.ts +3 -0
  58. package/template/package.json +125 -0
  59. package/template/pnpm-lock.yaml +15901 -0
  60. package/template/postcss.config.mjs +7 -0
  61. package/template/public/file.svg +1 -0
  62. package/template/public/globe.svg +1 -0
  63. package/template/public/logo.svg +6 -0
  64. package/template/public/next.svg +1 -0
  65. package/template/public/vercel.svg +1 -0
  66. package/template/public/window.svg +1 -0
  67. package/template/sentry.client.config.ts +10 -0
  68. package/template/sentry.edge.config.ts +10 -0
  69. package/template/sentry.server.config.ts +10 -0
  70. package/template/source.config.ts +59 -0
  71. package/template/src/adapters/ai/anthropic.ts +113 -0
  72. package/template/src/adapters/ai/index.ts +6 -0
  73. package/template/src/adapters/ai/openai-compatible.ts +88 -0
  74. package/template/src/adapters/ai/workers-ai.ts +63 -0
  75. package/template/src/adapters/index.ts +10 -0
  76. package/template/src/adapters/jobs/cloudflare-workflows.ts +46 -0
  77. package/template/src/adapters/jobs/index.ts +5 -0
  78. package/template/src/adapters/jobs/inngest/adapter.ts +29 -0
  79. package/template/src/adapters/jobs/inngest/client.ts +8 -0
  80. package/template/src/adapters/jobs/inngest/functions.ts +17 -0
  81. package/template/src/adapters/jobs/inngest/handler.ts +6 -0
  82. package/template/src/adapters/jobs/inngest/index.ts +4 -0
  83. package/template/src/adapters/mail/cloudflare-email.ts +50 -0
  84. package/template/src/adapters/mail/disabled.ts +17 -0
  85. package/template/src/adapters/mail/index.ts +7 -0
  86. package/template/src/adapters/mail/resend.ts +76 -0
  87. package/template/src/adapters/mail/smtp.ts +82 -0
  88. package/template/src/adapters/payment/creem.ts +269 -0
  89. package/template/src/adapters/payment/index.ts +2 -0
  90. package/template/src/adapters/payment/stripe.ts +302 -0
  91. package/template/src/adapters/rate-limit/cloudflare.ts +42 -0
  92. package/template/src/adapters/rate-limit/index.ts +6 -0
  93. package/template/src/adapters/rate-limit/noop.ts +27 -0
  94. package/template/src/adapters/rate-limit/upstash.ts +113 -0
  95. package/template/src/adapters/registry.ts +228 -0
  96. package/template/src/adapters/storage/index.ts +3 -0
  97. package/template/src/adapters/storage/r2-binding.ts +105 -0
  98. package/template/src/adapters/storage/s3-compatible.ts +149 -0
  99. package/template/src/app/[locale]/(admin)/admin/layout.tsx +36 -0
  100. package/template/src/app/[locale]/(admin)/admin/page.tsx +345 -0
  101. package/template/src/app/[locale]/(admin)/admin/tickets/[id]/page.tsx +261 -0
  102. package/template/src/app/[locale]/(admin)/admin/tickets/page.tsx +236 -0
  103. package/template/src/app/[locale]/(admin)/admin/users/page.tsx +557 -0
  104. package/template/src/app/[locale]/(auth)/forgot-password/page.tsx +9 -0
  105. package/template/src/app/[locale]/(auth)/layout.tsx +28 -0
  106. package/template/src/app/[locale]/(auth)/sign-in/page.tsx +9 -0
  107. package/template/src/app/[locale]/(auth)/sign-up/page.tsx +9 -0
  108. package/template/src/app/[locale]/(dashboard)/dashboard/credits/buy/buy-credits-view.tsx +170 -0
  109. package/template/src/app/[locale]/(dashboard)/dashboard/credits/buy/page.tsx +12 -0
  110. package/template/src/app/[locale]/(dashboard)/dashboard/credits/page.tsx +5 -0
  111. package/template/src/app/[locale]/(dashboard)/dashboard/loading.tsx +41 -0
  112. package/template/src/app/[locale]/(dashboard)/dashboard/page.tsx +299 -0
  113. package/template/src/app/[locale]/(dashboard)/dashboard/settings/page.tsx +38 -0
  114. package/template/src/app/[locale]/(dashboard)/dashboard/support/[id]/page.tsx +220 -0
  115. package/template/src/app/[locale]/(dashboard)/dashboard/support/new/page.tsx +183 -0
  116. package/template/src/app/[locale]/(dashboard)/dashboard/support/page.tsx +145 -0
  117. package/template/src/app/[locale]/(dashboard)/layout.tsx +35 -0
  118. package/template/src/app/[locale]/(marketing)/blog/[slug]/page.tsx +178 -0
  119. package/template/src/app/[locale]/(marketing)/blog/blog-post-card.tsx +95 -0
  120. package/template/src/app/[locale]/(marketing)/blog/page.tsx +127 -0
  121. package/template/src/app/[locale]/(marketing)/demo/plan-badges/page.tsx +36 -0
  122. package/template/src/app/[locale]/(marketing)/layout.tsx +15 -0
  123. package/template/src/app/[locale]/(marketing)/legal/[slug]/page.tsx +130 -0
  124. package/template/src/app/[locale]/(marketing)/page.tsx +94 -0
  125. package/template/src/app/[locale]/(marketing)/pseo/[slug]/page.tsx +68 -0
  126. package/template/src/app/[locale]/(marketing)/pseo/page.tsx +137 -0
  127. package/template/src/app/[locale]/docs/[[...slug]]/page.tsx +63 -0
  128. package/template/src/app/[locale]/docs/layout.tsx +39 -0
  129. package/template/src/app/[locale]/layout.tsx +80 -0
  130. package/template/src/app/[locale]/opengraph-image.tsx +20 -0
  131. package/template/src/app/[locale]/twitter-image.tsx +20 -0
  132. package/template/src/app/api/auth/[...all]/route.ts +20 -0
  133. package/template/src/app/api/health/route.ts +45 -0
  134. package/template/src/app/api/inngest/route.ts +12 -0
  135. package/template/src/app/api/jobs/credits/expire/route.ts +102 -0
  136. package/template/src/app/api/search/route.ts +17 -0
  137. package/template/src/app/api/upload/presigned/route.ts +98 -0
  138. package/template/src/app/api/webhooks/payment/route.ts +363 -0
  139. package/template/src/app/globals.css +406 -0
  140. package/template/src/app/icon.svg +6 -0
  141. package/template/src/app/image-proxy/[...path]/route.ts +137 -0
  142. package/template/src/app/layout.tsx +73 -0
  143. package/template/src/app/robots.ts +29 -0
  144. package/template/src/app/sitemap.ts +68 -0
  145. package/template/src/components/motion/reveal.tsx +49 -0
  146. package/template/src/components/seo/json-ld.tsx +87 -0
  147. package/template/src/components/seo/og-image-template.tsx +118 -0
  148. package/template/src/components/ui/accordion.tsx +66 -0
  149. package/template/src/components/ui/alert-dialog.tsx +195 -0
  150. package/template/src/components/ui/avatar.tsx +53 -0
  151. package/template/src/components/ui/badge.tsx +46 -0
  152. package/template/src/components/ui/button.tsx +65 -0
  153. package/template/src/components/ui/card.tsx +92 -0
  154. package/template/src/components/ui/checkbox.tsx +32 -0
  155. package/template/src/components/ui/collapsible.tsx +33 -0
  156. package/template/src/components/ui/dialog.tsx +124 -0
  157. package/template/src/components/ui/dropdown-menu.tsx +257 -0
  158. package/template/src/components/ui/form.tsx +233 -0
  159. package/template/src/components/ui/index.ts +2 -0
  160. package/template/src/components/ui/input.tsx +21 -0
  161. package/template/src/components/ui/label.tsx +24 -0
  162. package/template/src/components/ui/navigation-menu.tsx +167 -0
  163. package/template/src/components/ui/pagination.tsx +125 -0
  164. package/template/src/components/ui/popover.tsx +48 -0
  165. package/template/src/components/ui/progress.tsx +27 -0
  166. package/template/src/components/ui/radio-group.tsx +45 -0
  167. package/template/src/components/ui/select.tsx +190 -0
  168. package/template/src/components/ui/separator.tsx +28 -0
  169. package/template/src/components/ui/sheet.tsx +140 -0
  170. package/template/src/components/ui/switch.tsx +31 -0
  171. package/template/src/components/ui/tabs.tsx +75 -0
  172. package/template/src/components/ui/textarea.tsx +18 -0
  173. package/template/src/config/index.ts +31 -0
  174. package/template/src/config/nav.ts +238 -0
  175. package/template/src/config/payment.ts +282 -0
  176. package/template/src/config/site.ts +53 -0
  177. package/template/src/config/subscription-plan.ts +164 -0
  178. package/template/src/content/blog/en/hello-world.mdx +48 -0
  179. package/template/src/content/blog/zh/hello-world.mdx +48 -0
  180. package/template/src/content/blog/zh/nextdevtpl-linuxdo-intro.mdx +98 -0
  181. package/template/src/content/docs/en/admin-and-support.mdx +65 -0
  182. package/template/src/content/docs/en/authentication.mdx +71 -0
  183. package/template/src/content/docs/en/background-jobs.mdx +53 -0
  184. package/template/src/content/docs/en/configuration.mdx +71 -0
  185. package/template/src/content/docs/en/credits.mdx +69 -0
  186. package/template/src/content/docs/en/customization.mdx +95 -0
  187. package/template/src/content/docs/en/database.mdx +66 -0
  188. package/template/src/content/docs/en/deployment.mdx +62 -0
  189. package/template/src/content/docs/en/email.mdx +48 -0
  190. package/template/src/content/docs/en/index.mdx +48 -0
  191. package/template/src/content/docs/en/internationalization.mdx +78 -0
  192. package/template/src/content/docs/en/meta.json +22 -0
  193. package/template/src/content/docs/en/observability.mdx +69 -0
  194. package/template/src/content/docs/en/payments.mdx +64 -0
  195. package/template/src/content/docs/en/project-structure.mdx +82 -0
  196. package/template/src/content/docs/en/quick-start.mdx +113 -0
  197. package/template/src/content/docs/en/storage.mdx +51 -0
  198. package/template/src/content/docs/zh/admin-and-support.mdx +65 -0
  199. package/template/src/content/docs/zh/authentication.mdx +71 -0
  200. package/template/src/content/docs/zh/background-jobs.mdx +53 -0
  201. package/template/src/content/docs/zh/configuration.mdx +70 -0
  202. package/template/src/content/docs/zh/credits.mdx +69 -0
  203. package/template/src/content/docs/zh/customization.mdx +95 -0
  204. package/template/src/content/docs/zh/database.mdx +66 -0
  205. package/template/src/content/docs/zh/deployment.mdx +61 -0
  206. package/template/src/content/docs/zh/email.mdx +47 -0
  207. package/template/src/content/docs/zh/index.mdx +48 -0
  208. package/template/src/content/docs/zh/internationalization.mdx +78 -0
  209. package/template/src/content/docs/zh/meta.json +22 -0
  210. package/template/src/content/docs/zh/observability.mdx +68 -0
  211. package/template/src/content/docs/zh/payments.mdx +64 -0
  212. package/template/src/content/docs/zh/project-structure.mdx +82 -0
  213. package/template/src/content/docs/zh/quick-start.mdx +110 -0
  214. package/template/src/content/docs/zh/storage.mdx +51 -0
  215. package/template/src/content/legal/en/cookie-policy.mdx +78 -0
  216. package/template/src/content/legal/en/privacy.mdx +131 -0
  217. package/template/src/content/legal/en/terms.mdx +93 -0
  218. package/template/src/content/legal/zh/cookie-policy.mdx +78 -0
  219. package/template/src/content/legal/zh/privacy.mdx +131 -0
  220. package/template/src/content/legal/zh/terms.mdx +92 -0
  221. package/template/src/core/modules/contract.ts +225 -0
  222. package/template/src/core/modules/index.ts +1 -0
  223. package/template/src/core/services/ai.ts +31 -0
  224. package/template/src/core/services/common.ts +112 -0
  225. package/template/src/core/services/index.ts +8 -0
  226. package/template/src/core/services/jobs.ts +24 -0
  227. package/template/src/core/services/mail.ts +35 -0
  228. package/template/src/core/services/manifest.ts +51 -0
  229. package/template/src/core/services/payment.ts +92 -0
  230. package/template/src/core/services/rate-limit.ts +47 -0
  231. package/template/src/core/services/storage.ts +42 -0
  232. package/template/src/db/index.ts +71 -0
  233. package/template/src/db/schema/auth.ts +67 -0
  234. package/template/src/db/schema/credits.ts +94 -0
  235. package/template/src/db/schema/index.ts +5 -0
  236. package/template/src/db/schema/mail.ts +14 -0
  237. package/template/src/db/schema/subscription.ts +21 -0
  238. package/template/src/db/schema/support.ts +56 -0
  239. package/template/src/db/schema.ts +2 -0
  240. package/template/src/features/admin/components/admin-sidebar.tsx +213 -0
  241. package/template/src/features/admin/components/index.ts +2 -0
  242. package/template/src/features/admin/index.ts +3 -0
  243. package/template/src/features/admin/manifest.ts +41 -0
  244. package/template/src/features/analytics/components/analytics.tsx +62 -0
  245. package/template/src/features/analytics/components/index.ts +2 -0
  246. package/template/src/features/analytics/index.ts +3 -0
  247. package/template/src/features/analytics/manifest.ts +13 -0
  248. package/template/src/features/auth/components/auth-brand-panel.tsx +82 -0
  249. package/template/src/features/auth/components/auth-error-alert.tsx +28 -0
  250. package/template/src/features/auth/components/auth-footer.tsx +52 -0
  251. package/template/src/features/auth/components/auth-logo.tsx +30 -0
  252. package/template/src/features/auth/components/forgot-password-form.tsx +146 -0
  253. package/template/src/features/auth/components/index.ts +9 -0
  254. package/template/src/features/auth/components/sign-in-form.tsx +241 -0
  255. package/template/src/features/auth/components/sign-up-form.tsx +307 -0
  256. package/template/src/features/auth/index.ts +3 -0
  257. package/template/src/features/auth/manifest.ts +30 -0
  258. package/template/src/features/blog/components/blog-post-item.tsx +72 -0
  259. package/template/src/features/blog/components/index.ts +1 -0
  260. package/template/src/features/blog/data/mock-posts.ts +62 -0
  261. package/template/src/features/blog/index.ts +3 -0
  262. package/template/src/features/blog/manifest.ts +22 -0
  263. package/template/src/features/credits/account.ts +76 -0
  264. package/template/src/features/credits/actions.ts +427 -0
  265. package/template/src/features/credits/components/credit-balance-badge.tsx +54 -0
  266. package/template/src/features/credits/components/credit-usage-section.tsx +160 -0
  267. package/template/src/features/credits/components/index.ts +7 -0
  268. package/template/src/features/credits/components/transaction-history.tsx +346 -0
  269. package/template/src/features/credits/config.ts +70 -0
  270. package/template/src/features/credits/consume.ts +140 -0
  271. package/template/src/features/credits/core.ts +23 -0
  272. package/template/src/features/credits/errors.ts +26 -0
  273. package/template/src/features/credits/expire.ts +112 -0
  274. package/template/src/features/credits/grant.ts +168 -0
  275. package/template/src/features/credits/index.ts +6 -0
  276. package/template/src/features/credits/manifest.ts +36 -0
  277. package/template/src/features/credits/query.ts +65 -0
  278. package/template/src/features/credits/types.ts +48 -0
  279. package/template/src/features/dashboard/components/index.ts +3 -0
  280. package/template/src/features/dashboard/components/main-wrapper.tsx +100 -0
  281. package/template/src/features/dashboard/components/sidebar.tsx +341 -0
  282. package/template/src/features/dashboard/context/index.ts +2 -0
  283. package/template/src/features/dashboard/context/sidebar-context.tsx +72 -0
  284. package/template/src/features/dashboard/index.ts +4 -0
  285. package/template/src/features/dashboard/manifest.ts +28 -0
  286. package/template/src/features/mail/actions.ts +175 -0
  287. package/template/src/features/mail/index.ts +5 -0
  288. package/template/src/features/mail/manifest.ts +13 -0
  289. package/template/src/features/mail/server.ts +8 -0
  290. package/template/src/features/mail/templates/index.ts +11 -0
  291. package/template/src/features/mail/templates/primary-action-email.tsx +224 -0
  292. package/template/src/features/mail/templates/welcome-email.tsx +121 -0
  293. package/template/src/features/mail/utils.ts +190 -0
  294. package/template/src/features/marketing/components/animated-price.tsx +51 -0
  295. package/template/src/features/marketing/components/cookie-consent.tsx +255 -0
  296. package/template/src/features/marketing/components/cta-section.tsx +50 -0
  297. package/template/src/features/marketing/components/faq-section.tsx +59 -0
  298. package/template/src/features/marketing/components/feature-grid.tsx +80 -0
  299. package/template/src/features/marketing/components/footer.tsx +128 -0
  300. package/template/src/features/marketing/components/header.tsx +255 -0
  301. package/template/src/features/marketing/components/hero-section.tsx +323 -0
  302. package/template/src/features/marketing/components/how-it-works.tsx +115 -0
  303. package/template/src/features/marketing/components/index.ts +14 -0
  304. package/template/src/features/marketing/components/nav-menu.tsx +236 -0
  305. package/template/src/features/marketing/components/pricing-section.tsx +446 -0
  306. package/template/src/features/marketing/components/testimonials.tsx +59 -0
  307. package/template/src/features/marketing/components/use-cases-section.tsx +78 -0
  308. package/template/src/features/marketing/index.ts +3 -0
  309. package/template/src/features/marketing/manifest.ts +35 -0
  310. package/template/src/features/payment/actions.ts +182 -0
  311. package/template/src/features/payment/index.ts +4 -0
  312. package/template/src/features/payment/manifest.ts +18 -0
  313. package/template/src/features/payment/server.ts +7 -0
  314. package/template/src/features/payment/types.ts +202 -0
  315. package/template/src/features/pseo/components/index.ts +6 -0
  316. package/template/src/features/pseo/components/pseo-cta.tsx +51 -0
  317. package/template/src/features/pseo/components/pseo-faq.tsx +40 -0
  318. package/template/src/features/pseo/components/pseo-feature-grid.tsx +74 -0
  319. package/template/src/features/pseo/components/pseo-hero.tsx +106 -0
  320. package/template/src/features/pseo/components/pseo-related.tsx +62 -0
  321. package/template/src/features/pseo/components/pseo-use-cases.tsx +50 -0
  322. package/template/src/features/pseo/data/pseo-pages.json +534 -0
  323. package/template/src/features/pseo/index.ts +4 -0
  324. package/template/src/features/pseo/lib/pseo-data.ts +140 -0
  325. package/template/src/features/pseo/manifest.ts +22 -0
  326. package/template/src/features/settings/actions/delete-account.ts +50 -0
  327. package/template/src/features/settings/actions/index.ts +3 -0
  328. package/template/src/features/settings/actions/update-profile.ts +49 -0
  329. package/template/src/features/settings/components/billing-section.tsx +283 -0
  330. package/template/src/features/settings/components/index.ts +3 -0
  331. package/template/src/features/settings/components/profile-form.tsx +154 -0
  332. package/template/src/features/settings/components/security-section.tsx +158 -0
  333. package/template/src/features/settings/components/settings-profile-view.tsx +506 -0
  334. package/template/src/features/settings/index.ts +5 -0
  335. package/template/src/features/settings/manifest.ts +28 -0
  336. package/template/src/features/settings/schemas/index.ts +2 -0
  337. package/template/src/features/settings/schemas/update-profile.ts +21 -0
  338. package/template/src/features/shared/components/cookie-settings-dialog.tsx +282 -0
  339. package/template/src/features/shared/components/index.ts +5 -0
  340. package/template/src/features/shared/components/language-switcher.tsx +82 -0
  341. package/template/src/features/shared/components/max-width-wrapper.tsx +49 -0
  342. package/template/src/features/shared/components/mode-toggle.tsx +119 -0
  343. package/template/src/features/shared/icons/google-icon.tsx +39 -0
  344. package/template/src/features/shared/icons/index.ts +7 -0
  345. package/template/src/features/shared/index.ts +5 -0
  346. package/template/src/features/shared/manifest.ts +13 -0
  347. package/template/src/features/shared/providers.tsx +59 -0
  348. package/template/src/features/storage/actions.ts +107 -0
  349. package/template/src/features/storage/index.ts +6 -0
  350. package/template/src/features/storage/manifest.ts +22 -0
  351. package/template/src/features/storage/types.ts +143 -0
  352. package/template/src/features/storage/utils.ts +85 -0
  353. package/template/src/features/storage/validation.ts +151 -0
  354. package/template/src/features/subscription/actions/get-user-plan.ts +26 -0
  355. package/template/src/features/subscription/actions/index.ts +5 -0
  356. package/template/src/features/subscription/components/current-plan-badge.tsx +18 -0
  357. package/template/src/features/subscription/components/index.ts +6 -0
  358. package/template/src/features/subscription/components/plan-badge.tsx +98 -0
  359. package/template/src/features/subscription/index.ts +25 -0
  360. package/template/src/features/subscription/manifest.ts +13 -0
  361. package/template/src/features/subscription/services/user-plan.ts +181 -0
  362. package/template/src/features/support/actions/admin-ticket.ts +172 -0
  363. package/template/src/features/support/actions/admin-users.ts +295 -0
  364. package/template/src/features/support/actions/index.ts +22 -0
  365. package/template/src/features/support/actions/ticket.ts +12 -0
  366. package/template/src/features/support/actions/user-ticket.ts +153 -0
  367. package/template/src/features/support/components/admin-ticket-reply-form.tsx +109 -0
  368. package/template/src/features/support/components/admin-ticket-status-select.tsx +119 -0
  369. package/template/src/features/support/components/index.ts +6 -0
  370. package/template/src/features/support/components/ticket-message-form.tsx +99 -0
  371. package/template/src/features/support/components/user-role-select.tsx +107 -0
  372. package/template/src/features/support/index.ts +5 -0
  373. package/template/src/features/support/manifest.ts +53 -0
  374. package/template/src/features/support/schemas/index.ts +15 -0
  375. package/template/src/features/support/schemas/ticket.ts +81 -0
  376. package/template/src/hooks/index.ts +2 -0
  377. package/template/src/i18n/index.ts +12 -0
  378. package/template/src/i18n/request.ts +24 -0
  379. package/template/src/i18n/routing.ts +23 -0
  380. package/template/src/instrumentation.ts +19 -0
  381. package/template/src/lib/ai/index.ts +16 -0
  382. package/template/src/lib/api-logger.ts +24 -0
  383. package/template/src/lib/auth/admin.ts +54 -0
  384. package/template/src/lib/auth/api.ts +17 -0
  385. package/template/src/lib/auth/client.ts +227 -0
  386. package/template/src/lib/auth/edge.ts +84 -0
  387. package/template/src/lib/auth/errors.ts +99 -0
  388. package/template/src/lib/auth/index.ts +159 -0
  389. package/template/src/lib/auth/server.ts +46 -0
  390. package/template/src/lib/auth/session-context.tsx +96 -0
  391. package/template/src/lib/cloudflare/bindings.ts +31 -0
  392. package/template/src/lib/cookie-consent.ts +33 -0
  393. package/template/src/lib/file-utils.ts +45 -0
  394. package/template/src/lib/fingerprint/index.ts +73 -0
  395. package/template/src/lib/health/checks.ts +6 -0
  396. package/template/src/lib/health/core.ts +86 -0
  397. package/template/src/lib/health/index.ts +11 -0
  398. package/template/src/lib/health/types.ts +13 -0
  399. package/template/src/lib/index.ts +2 -0
  400. package/template/src/lib/logger/index.ts +258 -0
  401. package/template/src/lib/monitoring/index.ts +384 -0
  402. package/template/src/lib/rate-limit/anonymous.ts +85 -0
  403. package/template/src/lib/rate-limit/index.ts +111 -0
  404. package/template/src/lib/safe-action.ts +127 -0
  405. package/template/src/lib/seo/json-ld.ts +188 -0
  406. package/template/src/lib/source.ts +122 -0
  407. package/template/src/lib/utils.ts +6 -0
  408. package/template/src/middleware.ts +162 -0
  409. package/template/src/modules/index.ts +10 -0
  410. package/template/src/modules/presets.ts +8 -0
  411. package/template/src/modules/registry.ts +34 -0
  412. package/template/src/modules/selection.ts +45 -0
  413. package/template/src/services/ai.ts +49 -0
  414. package/template/src/services/index.ts +6 -0
  415. package/template/src/services/jobs.ts +3 -0
  416. package/template/src/services/mail.ts +7 -0
  417. package/template/src/services/payment.ts +3 -0
  418. package/template/src/services/rate-limit.ts +12 -0
  419. package/template/src/services/storage.ts +3 -0
  420. package/template/src/types/fumadocs-source.d.ts +14 -0
  421. package/template/src/types/index.ts +2 -0
  422. package/template/tsconfig.json +53 -0
  423. package/template/vercel.json +11 -0
  424. package/template/vitest.config.ts +51 -0
  425. package/template/wrangler.jsonc +30 -0
@@ -0,0 +1,78 @@
1
+ ---
2
+ title: Cookie Policy
3
+ date: "2026-02-06"
4
+ description: Information about how NextjsTpl uses cookies and similar technologies.
5
+ ---
6
+
7
+ # Cookie Policy
8
+
9
+ Last updated: February 6, 2026
10
+
11
+ This Cookie Policy explains how NextjsTpl ("we", "us", or "our") uses cookies and similar technologies when you visit our website or use our Service. It describes what these technologies are, why we use them, and your choices.
12
+
13
+ ## 1. What Are Cookies?
14
+
15
+ Cookies are small text files stored on your device when you visit a website. Cookies can be "session" cookies (deleted when you close your browser) or "persistent" cookies (remain until they expire or you delete them).
16
+
17
+ ## 2. How We Use Cookies
18
+
19
+ We use cookies for the following purposes:
20
+
21
+ ### 2.1 Strictly Necessary Cookies
22
+
23
+ These cookies are essential for the Service to function, such as authentication and security.
24
+
25
+ **Examples (may vary):** session identifiers, CSRF tokens, language preference.
26
+
27
+ ### 2.2 Functional Cookies
28
+
29
+ These cookies remember preferences and settings to improve your experience.
30
+
31
+ **Examples (may vary):** theme selection, cookie consent, UI preferences.
32
+
33
+ ### 2.3 Analytics Cookies
34
+
35
+ If enabled, analytics cookies help us understand usage and improve the Service.
36
+
37
+ **Examples (may vary):** Vercel Analytics or similar tools.
38
+
39
+ ### 2.4 Marketing Cookies
40
+
41
+ We do not use marketing cookies by default. If we introduce them, we will ask for your consent and update this policy.
42
+
43
+ ## 3. Third-Party Cookies
44
+
45
+ Third-party providers may set cookies when you use their services through NextjsTpl, including:
46
+
47
+ - **Creem** (payments)
48
+ - **Google / GitHub** (OAuth authentication)
49
+ - **Analytics or monitoring providers** (if enabled)
50
+
51
+ ## 4. Your Choices
52
+
53
+ ### 4.1 Cookie Consent Banner
54
+
55
+ When you first visit our site, you can accept all cookies, accept only necessary cookies, or manage preferences.
56
+
57
+ ### 4.2 Browser Controls
58
+
59
+ Most browsers let you view, delete, or block cookies. If you disable cookies, some features may not work properly.
60
+
61
+ ## 5. Similar Technologies
62
+
63
+ We may also use local storage or session storage for preferences and temporary data.
64
+
65
+ ## 6. Updates to This Policy
66
+
67
+ We may update this policy from time to time. We will post the updated policy and revise the "Last updated" date.
68
+
69
+ ## 7. Contact Us
70
+
71
+ If you have questions about this Cookie Policy, contact us at:
72
+
73
+ - **Email:** privacy@NextjsTpl.com
74
+ - **Website:** https://NextjsTpl.com
75
+
76
+ ---
77
+
78
+ By continuing to use NextjsTpl, you consent to the use of cookies as described in this policy.
@@ -0,0 +1,131 @@
1
+ ---
2
+ title: Privacy Policy
3
+ date: "2026-02-06"
4
+ description: How NextjsTpl collects, uses, and protects your personal information.
5
+ ---
6
+
7
+ # Privacy Policy
8
+
9
+ Last updated: February 6, 2026
10
+
11
+ NextjsTpl ("NextjsTpl", "we", "us", or "our") operates the NextjsTpl service (the "Service"). This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use the Service, and the choices you have.
12
+
13
+ ## 1. Information We Collect
14
+
15
+ ### 1.1 Account and Profile Information
16
+
17
+ When you create or update an account, we may collect:
18
+
19
+ - **Email address**
20
+ - **Name and profile details** you choose to provide
21
+ - **Authentication data** from OAuth providers (e.g., Google, GitHub)
22
+
23
+ ### 1.2 Content and Inputs
24
+
25
+ We collect the content you submit to the Service, including:
26
+
27
+ - **Text, files, or URLs** you upload or paste to generate flashcards
28
+ - **Generated flashcards and exports** (e.g., Anki packages)
29
+ - **Metadata** such as file names, sizes, and upload timestamps
30
+
31
+ ### 1.3 Usage and Device Data
32
+
33
+ We may collect usage information such as:
34
+
35
+ - IP address, browser type, device identifiers
36
+ - Pages viewed, actions taken, and time spent
37
+ - Diagnostic logs and performance data
38
+
39
+ ### 1.4 Payment Information
40
+
41
+ If you purchase a subscription or credits, payments are processed by Creem. We do not store full payment card numbers on our servers. Creem may collect billing details as part of payment processing.
42
+
43
+ ### 1.5 Cookies and Similar Technologies
44
+
45
+ We use cookies and similar technologies to operate the Service and remember your preferences. See our [Cookie Policy](/legal/cookie-policy) for details.
46
+
47
+ ## 2. How We Use Information
48
+
49
+ We use the information we collect to:
50
+
51
+ - **Provide and operate the Service**, including AI-powered flashcard generation
52
+ - **Create and manage accounts**, authentication, and user support
53
+ - **Process payments** and manage subscriptions or credits
54
+ - **Improve and maintain** product performance and reliability
55
+ - **Communicate with you** about updates, security, and offers (you can opt out of marketing emails)
56
+ - **Detect and prevent abuse**, fraud, or security issues
57
+
58
+ ## 3. Legal Bases for Processing (EEA/UK)
59
+
60
+ If you are in the EEA or UK, we rely on the following legal bases:
61
+
62
+ - **Contract** - to provide the Service
63
+ - **Legitimate interests** - to improve, secure, and operate the Service
64
+ - **Consent** - for optional features such as marketing or analytics cookies
65
+ - **Legal obligations** - to comply with applicable laws
66
+
67
+ ## 4. Data Retention
68
+
69
+ We retain personal data for as long as necessary to provide the Service and meet legal obligations. You can delete content or close your account, after which we will delete or de-identify your data within a reasonable period, unless retention is required by law.
70
+
71
+ ## 5. International Transfers
72
+
73
+ Your information may be processed in countries where we or our service providers operate, which may have different data protection laws than your country. We take steps to ensure appropriate safeguards for such transfers.
74
+
75
+ ## 6. Data Security
76
+
77
+ We use reasonable technical and organizational measures to protect your information, including encryption in transit (TLS) and access controls. However, no method of transmission or storage is 100% secure.
78
+
79
+ ## 7. Your Rights
80
+
81
+ ### 7.1 All Users
82
+
83
+ - Access, correct, or delete your personal information
84
+ - Request a copy of your data
85
+
86
+ ### 7.2 EEA/UK Residents (GDPR)
87
+
88
+ - Object to or restrict processing
89
+ - Withdraw consent at any time
90
+
91
+ ### 7.3 California Residents (CCPA/CPRA)
92
+
93
+ - Know what personal information we collect
94
+ - Request deletion of personal information
95
+ - Opt out of the sale of personal information (we do not sell personal information)
96
+
97
+ ## 8. Service Providers
98
+
99
+ We use trusted service providers to operate the Service, which may include:
100
+
101
+ - **AI processing providers** (e.g., OpenAI, DeepSeek, MiMo)
102
+ - **Payment processing** (Creem)
103
+ - **Email delivery** (Resend)
104
+ - **Storage providers** (AWS S3 / Cloudflare R2)
105
+ - **Analytics and monitoring** (e.g., Vercel Analytics, Sentry, Axiom)
106
+ - **Authentication providers** (Google, GitHub)
107
+
108
+ These providers are authorized to process personal information only as needed to provide their services to us.
109
+
110
+ ## 9. Children's Privacy
111
+
112
+ The Service is not intended for children under 13, and we do not knowingly collect personal information from children under 13.
113
+
114
+ ## 10. Links to Other Sites
115
+
116
+ Our Service may contain links to third-party sites. We are not responsible for the privacy practices of those sites.
117
+
118
+ ## 11. Changes to This Privacy Policy
119
+
120
+ We may update this policy from time to time. We will post the updated policy and revise the "Last updated" date.
121
+
122
+ ## 12. Contact Us
123
+
124
+ If you have questions or requests regarding this Privacy Policy, contact us at:
125
+
126
+ - **Email:** privacy@NextjsTpl.com
127
+ - **Website:** https://NextjsTpl.com
128
+
129
+ ---
130
+
131
+ By using NextjsTpl, you acknowledge that you have read and understood this Privacy Policy.
@@ -0,0 +1,93 @@
1
+ ---
2
+ title: Terms of Service
3
+ date: "2026-02-06"
4
+ description: Terms and conditions for using NextjsTpl.
5
+ ---
6
+
7
+ # Terms of Service
8
+
9
+ Last updated: February 6, 2026
10
+
11
+ Please read these Terms of Service ("Terms") carefully before using the NextjsTpl service (the "Service") operated by NextjsTpl ("we", "us", or "our").
12
+
13
+ ## 1. Agreement to Terms
14
+
15
+ By accessing or using the Service, you agree to be bound by these Terms. If you do not agree, you may not use the Service.
16
+
17
+ ## 2. Account Terms
18
+
19
+ - You must be at least 13 years old to use the Service.
20
+ - You must provide accurate and complete information during registration.
21
+ - You are responsible for safeguarding your account credentials.
22
+ - You are responsible for all activities that occur under your account.
23
+
24
+ ## 3. Acceptable Use
25
+
26
+ You agree not to:
27
+
28
+ - Use the Service for unlawful, harmful, or abusive purposes
29
+ - Upload content that infringes intellectual property or privacy rights
30
+ - Attempt to reverse engineer, scrape, or disrupt the Service
31
+ - Use automated systems that create unreasonable load or abuse the Service
32
+
33
+ ## 4. User Content and AI Output
34
+
35
+ ### 4.1 Your Content
36
+
37
+ You retain ownership of content you submit to the Service. By submitting content, you grant NextjsTpl a limited, non-exclusive, worldwide license to host, process, and display your content solely to operate and improve the Service, including generating flashcards and exports.
38
+
39
+ ### 4.2 AI Output Disclaimer
40
+
41
+ AI-generated flashcards and summaries may be inaccurate or incomplete. You are responsible for reviewing and validating outputs before relying on them. Do not use the Service for decisions that could cause harm without independent verification.
42
+
43
+ ## 5. Subscriptions, Credits, and Payments
44
+
45
+ Some features require a paid subscription or credits.
46
+
47
+ - Subscriptions, if offered, are billed in advance on a recurring basis.
48
+ - Credits are non-transferable and may expire as described in the Service.
49
+ - You can cancel anytime; access continues until the end of the billing period.
50
+ - Refunds are not guaranteed and may be granted at our discretion.
51
+
52
+ ## 6. Third-Party Services
53
+
54
+ The Service may integrate third-party services (e.g., payment processors, AI providers, analytics). Your use of those services may be subject to their own terms and policies.
55
+
56
+ ## 7. Service Availability
57
+
58
+ We strive to keep the Service available, but we do not guarantee uninterrupted operation. Maintenance, updates, and outages may occur.
59
+
60
+ ## 8. Termination
61
+
62
+ We may suspend or terminate your account if you violate these Terms or if we are required to do so by law. You may stop using the Service at any time.
63
+
64
+ ## 9. Intellectual Property
65
+
66
+ The Service, including its software, design, and branding, is owned by NextjsTpl and protected by applicable intellectual property laws. You may not use our trademarks without permission.
67
+
68
+ ## 10. Disclaimer
69
+
70
+ The Service is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, whether express or implied.
71
+
72
+ ## 11. Limitation of Liability
73
+
74
+ To the maximum extent permitted by law, NextjsTpl will not be liable for indirect, incidental, special, consequential, or punitive damages, or for any loss of data, profits, or goodwill.
75
+
76
+ ## 12. Governing Law
77
+
78
+ These Terms are governed by the laws of the jurisdiction in which NextjsTpl is established, without regard to conflict of law principles.
79
+
80
+ ## 13. Changes to Terms
81
+
82
+ We may update these Terms from time to time. We will post the updated Terms and revise the "Last updated" date.
83
+
84
+ ## 14. Contact Us
85
+
86
+ If you have questions about these Terms, contact us at:
87
+
88
+ - **Email:** legal@NextjsTpl.com
89
+ - **Website:** https://NextjsTpl.com
90
+
91
+ ---
92
+
93
+ By using NextjsTpl, you acknowledge that you have read and understood these Terms of Service and agree to be bound by them.
@@ -0,0 +1,78 @@
1
+ ---
2
+ title: Cookie 政策
3
+ date: "2026-02-06"
4
+ description: NextjsTpl 如何使用 Cookie 与类似技术。
5
+ ---
6
+
7
+ # Cookie 政策
8
+
9
+ 最后更新:2026年2月6日
10
+
11
+ 本 Cookie 政策说明 NextjsTpl(“我们”)在您访问网站或使用服务时如何使用 Cookie 与类似技术,以及您可如何管理这些选择。
12
+
13
+ ## 1. 什么是 Cookie?
14
+
15
+ Cookie 是在您访问网站时存储在设备上的小型文本文件。Cookie 可分为“会话 Cookie”(关闭浏览器后删除)与“持久 Cookie”(在有效期内保留)。
16
+
17
+ ## 2. 我们如何使用 Cookie
18
+
19
+ 我们使用 Cookie 来:
20
+
21
+ ### 2.1 必要 Cookie
22
+
23
+ 用于身份验证、安全与核心功能。
24
+
25
+ **示例(可能会变化):** 会话标识、CSRF 令牌、语言偏好。
26
+
27
+ ### 2.2 功能性 Cookie
28
+
29
+ 用于记住偏好设置并改善体验。
30
+
31
+ **示例(可能会变化):** 主题、Cookie 同意、界面偏好。
32
+
33
+ ### 2.3 分析 Cookie
34
+
35
+ 在您同意的前提下,用于统计与改进服务。
36
+
37
+ **示例(可能会变化):** Vercel Analytics 或同类工具。
38
+
39
+ ### 2.4 营销 Cookie
40
+
41
+ 我们默认不使用营销 Cookie。若未来使用,我们会征得您的同意并更新本政策。
42
+
43
+ ## 3. 第三方 Cookie
44
+
45
+ 第三方服务可能会设置 Cookie,例如:
46
+
47
+ - **Creem**(支付)
48
+ - **Google / GitHub**(OAuth 认证)
49
+ - **分析或监控服务**(如启用)
50
+
51
+ ## 4. 您的选择
52
+
53
+ ### 4.1 Cookie 同意横幅
54
+
55
+ 首次访问时,您可选择:接受全部、仅必要或管理偏好。
56
+
57
+ ### 4.2 浏览器控制
58
+
59
+ 您可在浏览器中查看、删除或阻止 Cookie。禁用 Cookie 可能影响部分功能。
60
+
61
+ ## 5. 类似技术
62
+
63
+ 我们也可能使用本地存储或会话存储保存偏好与临时数据。
64
+
65
+ ## 6. 政策更新
66
+
67
+ 我们可能会更新本政策,并在页面上更新“最后更新”日期。
68
+
69
+ ## 7. 联系我们
70
+
71
+ 如有疑问,请联系:
72
+
73
+ - **邮箱:** privacy@NextjsTpl.com
74
+ - **网站:** https://NextjsTpl.com
75
+
76
+ ---
77
+
78
+ 继续使用 NextjsTpl 即表示您同意本 Cookie 政策。
@@ -0,0 +1,131 @@
1
+ ---
2
+ title: 隐私政策
3
+ date: "2026-02-06"
4
+ description: NextjsTpl 如何收集、使用并保护您的个人信息。
5
+ ---
6
+
7
+ # 隐私政策
8
+
9
+ 最后更新:2026年2月6日
10
+
11
+ NextjsTpl(“NextjsTpl”、“我们”或“我们的”)运营 NextjsTpl 服务(“服务”)。本隐私政策说明我们在您使用服务时如何收集、使用、披露并保护您的信息,以及您拥有的选择。
12
+
13
+ ## 1. 我们收集的信息
14
+
15
+ ### 1.1 账户与资料信息
16
+
17
+ 当您创建或更新账户时,我们可能会收集:
18
+
19
+ - **邮箱地址**
20
+ - **姓名与资料信息**(由您自行填写)
21
+ - **OAuth 认证信息**(如 Google、GitHub)
22
+
23
+ ### 1.2 内容与输入
24
+
25
+ 我们会收集您提交到服务中的内容,包括:
26
+
27
+ - **文本、文件或链接**(用于生成闪卡)
28
+ - **生成的闪卡与导出文件**(如 Anki 包)
29
+ - **元数据**(如文件名、大小、上传时间)
30
+
31
+ ### 1.3 使用与设备信息
32
+
33
+ 我们可能会收集使用数据,例如:
34
+
35
+ - IP 地址、浏览器类型、设备标识符
36
+ - 访问页面、操作记录与停留时间
37
+ - 诊断日志与性能数据
38
+
39
+ ### 1.4 支付信息
40
+
41
+ 如您购买订阅或积分,支付由 Creem 处理。我们不会在服务器上保存完整的银行卡号,Creem 可能会收集必要的账单信息。
42
+
43
+ ### 1.5 Cookie 与类似技术
44
+
45
+ 我们使用 Cookie 与类似技术来运行服务并记住您的偏好设置。详情见 [Cookie 政策](/legal/cookie-policy)。
46
+
47
+ ## 2. 我们如何使用信息
48
+
49
+ 我们使用收集的信息来:
50
+
51
+ - **提供并运营服务**(包括 AI 闪卡生成)
52
+ - **创建与管理账户**、处理认证与用户支持
53
+ - **处理支付**、订阅与积分管理
54
+ - **改进与维护**产品性能和可靠性
55
+ - **与您沟通**服务更新、安全通知与优惠信息(可随时退订营销邮件)
56
+ - **检测与防止滥用**、欺诈或安全问题
57
+
58
+ ## 3. 处理依据(EEA/UK)
59
+
60
+ 如果您位于 EEA 或英国,我们的处理依据包括:
61
+
62
+ - **合同履行** - 为提供服务而必须处理
63
+ - **合法利益** - 用于改进、保障与运营服务
64
+ - **同意** - 用于可选功能(如营销或分析 Cookie)
65
+ - **法律义务** - 为遵守法律要求
66
+
67
+ ## 4. 数据保留
68
+
69
+ 我们仅在提供服务所需的期间内保留个人信息。您可删除内容或关闭账户,之后我们会在合理期限内删除或匿名化数据,除非法律另有要求。
70
+
71
+ ## 5. 跨境传输
72
+
73
+ 您的信息可能会在我们或服务提供商所在的国家/地区处理,这些地区的数据保护法律可能与您所在国家/地区不同。我们会采取合理的保护措施。
74
+
75
+ ## 6. 数据安全
76
+
77
+ 我们采用合理的技术与组织措施保护信息安全(如传输加密与访问控制),但任何传输或存储方式都无法保证 100% 安全。
78
+
79
+ ## 7. 您的权利
80
+
81
+ ### 7.1 所有用户
82
+
83
+ - 访问、更正或删除个人信息
84
+ - 请求获取数据副本
85
+
86
+ ### 7.2 EEA/UK 用户(GDPR)
87
+
88
+ - 反对或限制处理
89
+ - 随时撤回同意
90
+
91
+ ### 7.3 加州用户(CCPA/CPRA)
92
+
93
+ - 了解我们收集的信息
94
+ - 请求删除个人信息
95
+ - 选择不出售个人信息(我们不会出售个人信息)
96
+
97
+ ## 8. 服务提供商
98
+
99
+ 我们会使用可信赖的服务提供商来运营服务,可能包括:
100
+
101
+ - **AI 处理服务**(如 OpenAI、DeepSeek、MiMo)
102
+ - **支付处理**(Creem)
103
+ - **邮件服务**(Resend)
104
+ - **存储服务**(AWS S3 / Cloudflare R2)
105
+ - **分析与监控**(如 Vercel Analytics、Sentry、Axiom)
106
+ - **认证服务**(Google、GitHub)
107
+
108
+ 这些服务提供商仅在提供服务所需范围内处理您的信息。
109
+
110
+ ## 9. 未成年人隐私
111
+
112
+ 本服务不面向 13 岁以下儿童,我们不会在知情情况下收集 13 岁以下儿童的个人信息。
113
+
114
+ ## 10. 第三方链接
115
+
116
+ 服务可能包含第三方网站链接,我们不对其隐私做法负责。
117
+
118
+ ## 11. 政策变更
119
+
120
+ 我们可能会更新本隐私政策,并在页面上更新“最后更新”日期。
121
+
122
+ ## 12. 联系我们
123
+
124
+ 如有隐私相关问题或请求,请通过以下方式联系:
125
+
126
+ - **邮箱:** privacy@NextjsTpl.com
127
+ - **网站:** https://NextjsTpl.com
128
+
129
+ ---
130
+
131
+ 使用 NextjsTpl 即表示您已阅读并理解本隐私政策。
@@ -0,0 +1,92 @@
1
+ ---
2
+ title: 服务条款
3
+ date: "2026-02-06"
4
+ description: 使用 NextjsTpl 的服务条款与条件。
5
+ ---
6
+
7
+ # 服务条款
8
+
9
+ 最后更新:2026年2月6日
10
+
11
+ 在使用 NextjsTpl 服务(“服务”)之前,请仔细阅读本服务条款(“条款”)。NextjsTpl(“我们”)为您提供服务。访问或使用服务即表示您同意受本条款约束。
12
+
13
+ ## 1. 同意条款
14
+
15
+ 如您不同意本条款的任何内容,请勿使用本服务。
16
+
17
+ ## 2. 账户条款
18
+
19
+ - 您需年满 13 周岁方可使用本服务。
20
+ - 注册时请提供准确、完整的信息。
21
+ - 您需妥善保管账户凭证,并对账户下的所有活动负责。
22
+
23
+ ## 3. 可接受的使用
24
+
25
+ 您同意不从事以下行为:
26
+
27
+ - 以违法、有害或滥用的目的使用服务
28
+ - 上传侵犯知识产权或隐私权的内容
29
+ - 试图逆向工程、抓取或干扰服务
30
+ - 使用自动化系统对服务造成不合理负载
31
+
32
+ ## 4. 用户内容与 AI 输出
33
+
34
+ ### 4.1 您的内容
35
+
36
+ 您保留对提交内容的所有权。您授予 NextjsTpl 为运营和改进服务(包括生成闪卡与导出)所需的有限、非独占、全球许可。
37
+
38
+ ### 4.2 AI 输出免责声明
39
+
40
+ AI 生成内容可能存在不准确或不完整的情况。请在依赖输出前自行核验。请勿在可能造成损害的情境下单独依赖 AI 输出。
41
+
42
+ ## 5. 订阅、积分与支付
43
+
44
+ 部分功能需要订阅或积分。
45
+
46
+ - 订阅费用按周期预付(如适用)。
47
+ - 积分不可转让,可能在服务中注明的条件下过期。
48
+ - 您可随时取消,权益持续到当前计费周期结束。
49
+ - 退款并非保证,是否退款由我们酌情决定。
50
+
51
+ ## 6. 第三方服务
52
+
53
+ 服务可能集成第三方服务(如支付、AI、分析)。使用第三方服务可能受其条款与政策约束。
54
+
55
+ ## 7. 服务可用性
56
+
57
+ 我们努力保持服务可用,但不保证无中断。维护、更新或故障可能导致服务暂停。
58
+
59
+ ## 8. 终止
60
+
61
+ 如您违反条款或法律要求,我们可能暂停或终止您的账户。您可随时停止使用服务。
62
+
63
+ ## 9. 知识产权
64
+
65
+ 服务的软件、设计与品牌归 NextjsTpl 所有,受适用的知识产权法律保护。未经许可不得使用我们的商标。
66
+
67
+ ## 10. 免责声明
68
+
69
+ 服务按“现状”和“可用”提供,不提供任何明示或暗示的保证。
70
+
71
+ ## 11. 责任限制
72
+
73
+ 在法律允许的最大范围内,NextjsTpl 不对任何间接、偶然、特殊或后果性损害负责,包括利润、数据或商誉损失。
74
+
75
+ ## 12. 适用法律
76
+
77
+ 本条款受 NextjsTpl 所在司法辖区法律管辖,但不考虑冲突法原则。
78
+
79
+ ## 13. 条款变更
80
+
81
+ 我们可能不时更新条款,并在页面上更新“最后更新”日期。
82
+
83
+ ## 14. 联系我们
84
+
85
+ 如对本条款有疑问,请联系:
86
+
87
+ - **邮箱:** legal@NextjsTpl.com
88
+ - **网站:** https://NextjsTpl.com
89
+
90
+ ---
91
+
92
+ 使用 NextjsTpl 即表示您已阅读并理解本服务条款并同意受其约束。