create-einja-app 0.1.1

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 (235) hide show
  1. package/README.md +307 -0
  2. package/dist/cli.d.ts +2 -0
  3. package/dist/cli.js +1041 -0
  4. package/dist/cli.js.map +1 -0
  5. package/package.json +62 -0
  6. package/templates/turborepo-pandacss/.biomeignore +15 -0
  7. package/templates/turborepo-pandacss/.claude/hooks/einja/biome-format.sh +49 -0
  8. package/templates/turborepo-pandacss/.claude/hooks/einja/design-doc-check.sh +61 -0
  9. package/templates/turborepo-pandacss/.claude/hooks/einja/detect-secrets.sh +62 -0
  10. package/templates/turborepo-pandacss/.claude/hooks/einja/large-file-warning.sh +42 -0
  11. package/templates/turborepo-pandacss/.claude/hooks/einja/playwright-resize.sh +36 -0
  12. package/templates/turborepo-pandacss/.claude/hooks/einja/typecheck.sh +37 -0
  13. package/templates/turborepo-pandacss/.claude/hooks/einja/unset-volta-recursion.sh +32 -0
  14. package/templates/turborepo-pandacss/.claude/hooks/einja/validate-git-commit.sh +239 -0
  15. package/templates/turborepo-pandacss/.claude/hooks/einja/warn-index-ts.sh +34 -0
  16. package/templates/turborepo-pandacss/.claude/hooks/einja/warn-relative-import.sh +48 -0
  17. package/templates/turborepo-pandacss/.claude/settings.json +174 -0
  18. package/templates/turborepo-pandacss/.claude/skills/create-einja-app-release/SKILL.md +186 -0
  19. package/templates/turborepo-pandacss/.claude/skills/dev-cli-release/SKILL.md +173 -0
  20. package/templates/turborepo-pandacss/.cursor/commands/spec-create.md +227 -0
  21. package/templates/turborepo-pandacss/.cursor/commands/start-dev.md +98 -0
  22. package/templates/turborepo-pandacss/.cursor/commands/task-exec.md +287 -0
  23. package/templates/turborepo-pandacss/.cursor/commands/task-vibe-kanban-loop.md +532 -0
  24. package/templates/turborepo-pandacss/.cursor/commands/update-docs-by-task-specs.md +448 -0
  25. package/templates/turborepo-pandacss/.cursor/mcp.json +45 -0
  26. package/templates/turborepo-pandacss/.cursor/rules/api-rules.mdc +171 -0
  27. package/templates/turborepo-pandacss/.cursor/rules/api-test-rules.mdc +181 -0
  28. package/templates/turborepo-pandacss/.cursor/rules/base-code.mdc +70 -0
  29. package/templates/turborepo-pandacss/.cursor/rules/base-commit-rules.mdc +174 -0
  30. package/templates/turborepo-pandacss/.cursor/rules/base-design.mdc +12 -0
  31. package/templates/turborepo-pandacss/.cursor/rules/base-rules.mdc +231 -0
  32. package/templates/turborepo-pandacss/.cursor/rules/error-handling-rules.mdc +188 -0
  33. package/templates/turborepo-pandacss/.cursor/rules/refactor-rules.mdc +93 -0
  34. package/templates/turborepo-pandacss/.dockerignore +126 -0
  35. package/templates/turborepo-pandacss/.einja-sync.json +35 -0
  36. package/templates/turborepo-pandacss/.env.ci +25 -0
  37. package/templates/turborepo-pandacss/.env.example +35 -0
  38. package/templates/turborepo-pandacss/.env.personal.example +27 -0
  39. package/templates/turborepo-pandacss/.envrc +4 -0
  40. package/templates/turborepo-pandacss/.gitattributes +5 -0
  41. package/templates/turborepo-pandacss/.husky/pre-commit +1 -0
  42. package/templates/turborepo-pandacss/.lintstagedrc.js +24 -0
  43. package/templates/turborepo-pandacss/.mcp.json +45 -0
  44. package/templates/turborepo-pandacss/.node-version +1 -0
  45. package/templates/turborepo-pandacss/.templateignore +60 -0
  46. package/templates/turborepo-pandacss/.vscode/extensions.json +3 -0
  47. package/templates/turborepo-pandacss/CLAUDE.md +415 -0
  48. package/templates/turborepo-pandacss/README.md +322 -0
  49. package/templates/turborepo-pandacss/apps/web/middleware.ts +28 -0
  50. package/templates/turborepo-pandacss/apps/web/next.config.ts +10 -0
  51. package/templates/turborepo-pandacss/apps/web/package.json +80 -0
  52. package/templates/turborepo-pandacss/apps/web/panda.config.ts +114 -0
  53. package/templates/turborepo-pandacss/apps/web/postcss.config.cjs +6 -0
  54. package/templates/turborepo-pandacss/apps/web/public/file.svg +1 -0
  55. package/templates/turborepo-pandacss/apps/web/public/globe.svg +1 -0
  56. package/templates/turborepo-pandacss/apps/web/public/next.svg +1 -0
  57. package/templates/turborepo-pandacss/apps/web/public/vercel.svg +1 -0
  58. package/templates/turborepo-pandacss/apps/web/public/window.svg +1 -0
  59. package/templates/turborepo-pandacss/apps/web/src/app/(authenticated)/dashboard/page.tsx +79 -0
  60. package/templates/turborepo-pandacss/apps/web/src/app/(authenticated)/data/_components/UserTable.tsx +203 -0
  61. package/templates/turborepo-pandacss/apps/web/src/app/(authenticated)/data/page.tsx +57 -0
  62. package/templates/turborepo-pandacss/apps/web/src/app/(authenticated)/layout-client.tsx +31 -0
  63. package/templates/turborepo-pandacss/apps/web/src/app/(authenticated)/layout.tsx +17 -0
  64. package/templates/turborepo-pandacss/apps/web/src/app/(authenticated)/profile/page.tsx +59 -0
  65. package/templates/turborepo-pandacss/apps/web/src/app/api/auth/[...nextauth]/route.ts +3 -0
  66. package/templates/turborepo-pandacss/apps/web/src/app/api/auth/signup/route.ts +70 -0
  67. package/templates/turborepo-pandacss/apps/web/src/app/error.tsx +106 -0
  68. package/templates/turborepo-pandacss/apps/web/src/app/favicon.ico +0 -0
  69. package/templates/turborepo-pandacss/apps/web/src/app/global-error.tsx +110 -0
  70. package/templates/turborepo-pandacss/apps/web/src/app/globals.css +121 -0
  71. package/templates/turborepo-pandacss/apps/web/src/app/layout.tsx +28 -0
  72. package/templates/turborepo-pandacss/apps/web/src/app/not-found.tsx +54 -0
  73. package/templates/turborepo-pandacss/apps/web/src/app/page.module.css +165 -0
  74. package/templates/turborepo-pandacss/apps/web/src/app/page.test.tsx +52 -0
  75. package/templates/turborepo-pandacss/apps/web/src/app/page.tsx +284 -0
  76. package/templates/turborepo-pandacss/apps/web/src/app/signin/page.tsx +296 -0
  77. package/templates/turborepo-pandacss/apps/web/src/app/signup/page.tsx +395 -0
  78. package/templates/turborepo-pandacss/apps/web/src/application/use-cases/UserUseCases.test.ts +229 -0
  79. package/templates/turborepo-pandacss/apps/web/src/application/use-cases/UserUseCases.ts +115 -0
  80. package/templates/turborepo-pandacss/apps/web/src/components/auth/login-button.tsx +35 -0
  81. package/templates/turborepo-pandacss/apps/web/src/components/auth/logout-button.tsx +24 -0
  82. package/templates/turborepo-pandacss/apps/web/src/components/auth/user-avatar.test.tsx +68 -0
  83. package/templates/turborepo-pandacss/apps/web/src/components/auth/user-avatar.tsx +43 -0
  84. package/templates/turborepo-pandacss/apps/web/src/components/dashboard/dashboard-stats.tsx +128 -0
  85. package/templates/turborepo-pandacss/apps/web/src/components/providers/query-provider.tsx +30 -0
  86. package/templates/turborepo-pandacss/apps/web/src/components/providers/session-provider.tsx +12 -0
  87. package/templates/turborepo-pandacss/apps/web/src/components/shared/Sidebar.tsx +175 -0
  88. package/templates/turborepo-pandacss/apps/web/src/components/shared/header.tsx +166 -0
  89. package/templates/turborepo-pandacss/apps/web/src/components/ui/accordion.tsx +64 -0
  90. package/templates/turborepo-pandacss/apps/web/src/components/ui/alert-dialog.tsx +135 -0
  91. package/templates/turborepo-pandacss/apps/web/src/components/ui/alert.tsx +60 -0
  92. package/templates/turborepo-pandacss/apps/web/src/components/ui/aspect-ratio.tsx +9 -0
  93. package/templates/turborepo-pandacss/apps/web/src/components/ui/avatar.tsx +41 -0
  94. package/templates/turborepo-pandacss/apps/web/src/components/ui/badge.tsx +39 -0
  95. package/templates/turborepo-pandacss/apps/web/src/components/ui/breadcrumb.tsx +101 -0
  96. package/templates/turborepo-pandacss/apps/web/src/components/ui/button.tsx +56 -0
  97. package/templates/turborepo-pandacss/apps/web/src/components/ui/card.tsx +75 -0
  98. package/templates/turborepo-pandacss/apps/web/src/components/ui/checkbox.tsx +29 -0
  99. package/templates/turborepo-pandacss/apps/web/src/components/ui/data-table.tsx +189 -0
  100. package/templates/turborepo-pandacss/apps/web/src/components/ui/dialog-hook.tsx +210 -0
  101. package/templates/turborepo-pandacss/apps/web/src/components/ui/dialog.tsx +129 -0
  102. package/templates/turborepo-pandacss/apps/web/src/components/ui/drawer.tsx +124 -0
  103. package/templates/turborepo-pandacss/apps/web/src/components/ui/dropdown-menu.tsx +228 -0
  104. package/templates/turborepo-pandacss/apps/web/src/components/ui/form.tsx +152 -0
  105. package/templates/turborepo-pandacss/apps/web/src/components/ui/hover-card.tsx +38 -0
  106. package/templates/turborepo-pandacss/apps/web/src/components/ui/input.tsx +21 -0
  107. package/templates/turborepo-pandacss/apps/web/src/components/ui/label.tsx +21 -0
  108. package/templates/turborepo-pandacss/apps/web/src/components/ui/pagination.tsx +105 -0
  109. package/templates/turborepo-pandacss/apps/web/src/components/ui/popover.tsx +42 -0
  110. package/templates/turborepo-pandacss/apps/web/src/components/ui/progress.tsx +28 -0
  111. package/templates/turborepo-pandacss/apps/web/src/components/ui/select.tsx +170 -0
  112. package/templates/turborepo-pandacss/apps/web/src/components/ui/separator.tsx +28 -0
  113. package/templates/turborepo-pandacss/apps/web/src/components/ui/skeleton.tsx +13 -0
  114. package/templates/turborepo-pandacss/apps/web/src/components/ui/sonner.tsx +25 -0
  115. package/templates/turborepo-pandacss/apps/web/src/components/ui/table.tsx +92 -0
  116. package/templates/turborepo-pandacss/apps/web/src/components/ui/tabs.tsx +54 -0
  117. package/templates/turborepo-pandacss/apps/web/src/components/ui/textarea.tsx +18 -0
  118. package/templates/turborepo-pandacss/apps/web/src/components/ui/tooltip.tsx +57 -0
  119. package/templates/turborepo-pandacss/apps/web/src/components/ui/typography.tsx +158 -0
  120. package/templates/turborepo-pandacss/apps/web/src/lib/auth/guard.ts +36 -0
  121. package/templates/turborepo-pandacss/apps/web/src/lib/auth/index.ts +22 -0
  122. package/templates/turborepo-pandacss/apps/web/src/lib/prisma.ts +3 -0
  123. package/templates/turborepo-pandacss/apps/web/src/lib/utils.ts +6 -0
  124. package/templates/turborepo-pandacss/apps/web/test/globals.d.ts +1 -0
  125. package/templates/turborepo-pandacss/apps/web/test/matchers.d.ts +1 -0
  126. package/templates/turborepo-pandacss/apps/web/test/setup.ts +22 -0
  127. package/templates/turborepo-pandacss/apps/web/tsconfig.json +37 -0
  128. package/templates/turborepo-pandacss/apps/web/vitest.config.ts +20 -0
  129. package/templates/turborepo-pandacss/apps/web/vitest.d.ts +2 -0
  130. package/templates/turborepo-pandacss/biome.json +60 -0
  131. package/templates/turborepo-pandacss/components.json +21 -0
  132. package/templates/turborepo-pandacss/docker-compose.yml +27 -0
  133. package/templates/turborepo-pandacss/middleware.ts +32 -0
  134. package/templates/turborepo-pandacss/next.config.ts +10 -0
  135. package/templates/turborepo-pandacss/package-lock.json +9346 -0
  136. package/templates/turborepo-pandacss/package.json +64 -0
  137. package/templates/turborepo-pandacss/packages/config/package.json +41 -0
  138. package/templates/turborepo-pandacss/packages/config/panda.config.ts +114 -0
  139. package/templates/turborepo-pandacss/packages/config/src/index.ts +24 -0
  140. package/templates/turborepo-pandacss/packages/config/src/worktree-config-loader.ts +129 -0
  141. package/templates/turborepo-pandacss/packages/config/src/worktree-config.ts +75 -0
  142. package/templates/turborepo-pandacss/packages/config/tsconfig.build.json +19 -0
  143. package/templates/turborepo-pandacss/packages/config/tsconfig.json +24 -0
  144. package/templates/turborepo-pandacss/packages/config/typescript/base.json +19 -0
  145. package/templates/turborepo-pandacss/packages/front-core/package.json +24 -0
  146. package/templates/turborepo-pandacss/packages/front-core/src/auth/config.ts +84 -0
  147. package/templates/turborepo-pandacss/packages/front-core/src/auth/index.ts +5 -0
  148. package/templates/turborepo-pandacss/packages/front-core/src/auth/types/next-auth.d.ts +20 -0
  149. package/templates/turborepo-pandacss/packages/front-core/src/auth/utils.ts +29 -0
  150. package/templates/turborepo-pandacss/packages/front-core/src/context/index.ts +2 -0
  151. package/templates/turborepo-pandacss/packages/front-core/src/hooks/index.ts +2 -0
  152. package/templates/turborepo-pandacss/packages/front-core/src/index.ts +4 -0
  153. package/templates/turborepo-pandacss/packages/front-core/src/utils/index.ts +2 -0
  154. package/templates/turborepo-pandacss/packages/front-core/tsconfig.json +14 -0
  155. package/templates/turborepo-pandacss/packages/server-core/package.json +32 -0
  156. package/templates/turborepo-pandacss/packages/server-core/prisma/schema.prisma +102 -0
  157. package/templates/turborepo-pandacss/packages/server-core/prisma/seed.ts +67 -0
  158. package/templates/turborepo-pandacss/packages/server-core/prisma.config.ts +8 -0
  159. package/templates/turborepo-pandacss/packages/server-core/src/__generated__/fabbrica/index.d.ts +270 -0
  160. package/templates/turborepo-pandacss/packages/server-core/src/__generated__/fabbrica/index.js +484 -0
  161. package/templates/turborepo-pandacss/packages/server-core/src/core/result.test.ts +78 -0
  162. package/templates/turborepo-pandacss/packages/server-core/src/core/result.ts +53 -0
  163. package/templates/turborepo-pandacss/packages/server-core/src/domain/.gitkeep +0 -0
  164. package/templates/turborepo-pandacss/packages/server-core/src/domain/entities/User.test.ts +232 -0
  165. package/templates/turborepo-pandacss/packages/server-core/src/domain/entities/User.ts +105 -0
  166. package/templates/turborepo-pandacss/packages/server-core/src/domain/repository-interfaces/IUserRepository.ts +101 -0
  167. package/templates/turborepo-pandacss/packages/server-core/src/infrastructure/database/client.ts +15 -0
  168. package/templates/turborepo-pandacss/packages/server-core/src/infrastructure/database/mappers/UserMapper.test.ts +278 -0
  169. package/templates/turborepo-pandacss/packages/server-core/src/infrastructure/database/mappers/UserMapper.ts +103 -0
  170. package/templates/turborepo-pandacss/packages/server-core/src/infrastructure/database/repositories/UserRepository.test.ts +317 -0
  171. package/templates/turborepo-pandacss/packages/server-core/src/infrastructure/database/repositories/UserRepository.ts +169 -0
  172. package/templates/turborepo-pandacss/packages/server-core/src/testing/factories/index.ts +22 -0
  173. package/templates/turborepo-pandacss/packages/server-core/src/testing/factories/user.factory.ts +123 -0
  174. package/templates/turborepo-pandacss/packages/server-core/src/testing/fixtures/users.ts +92 -0
  175. package/templates/turborepo-pandacss/packages/server-core/src/testing/helpers/date.ts +49 -0
  176. package/templates/turborepo-pandacss/packages/server-core/src/testing/helpers/password.ts +50 -0
  177. package/templates/turborepo-pandacss/packages/server-core/src/testing/index.ts +26 -0
  178. package/templates/turborepo-pandacss/packages/server-core/tsconfig.json +14 -0
  179. package/templates/turborepo-pandacss/packages/server-core/vitest.config.ts +15 -0
  180. package/templates/turborepo-pandacss/packages/ui/package.json +37 -0
  181. package/templates/turborepo-pandacss/packages/ui/src/accordion.tsx +66 -0
  182. package/templates/turborepo-pandacss/packages/ui/src/alert-dialog.tsx +157 -0
  183. package/templates/turborepo-pandacss/packages/ui/src/alert.tsx +66 -0
  184. package/templates/turborepo-pandacss/packages/ui/src/aspect-ratio.tsx +11 -0
  185. package/templates/turborepo-pandacss/packages/ui/src/avatar.tsx +53 -0
  186. package/templates/turborepo-pandacss/packages/ui/src/badge.tsx +46 -0
  187. package/templates/turborepo-pandacss/packages/ui/src/breadcrumb.tsx +108 -0
  188. package/templates/turborepo-pandacss/packages/ui/src/button.tsx +59 -0
  189. package/templates/turborepo-pandacss/packages/ui/src/card.tsx +92 -0
  190. package/templates/turborepo-pandacss/packages/ui/src/checkbox.tsx +32 -0
  191. package/templates/turborepo-pandacss/packages/ui/src/data-table.tsx +216 -0
  192. package/templates/turborepo-pandacss/packages/ui/src/dialog-hook.tsx +226 -0
  193. package/templates/turborepo-pandacss/packages/ui/src/dialog.tsx +143 -0
  194. package/templates/turborepo-pandacss/packages/ui/src/drawer.tsx +135 -0
  195. package/templates/turborepo-pandacss/packages/ui/src/dropdown-menu.tsx +257 -0
  196. package/templates/turborepo-pandacss/packages/ui/src/form.tsx +168 -0
  197. package/templates/turborepo-pandacss/packages/ui/src/hover-card.tsx +44 -0
  198. package/templates/turborepo-pandacss/packages/ui/src/input.tsx +21 -0
  199. package/templates/turborepo-pandacss/packages/ui/src/label.tsx +24 -0
  200. package/templates/turborepo-pandacss/packages/ui/src/lib/utils.ts +6 -0
  201. package/templates/turborepo-pandacss/packages/ui/src/pagination.tsx +126 -0
  202. package/templates/turborepo-pandacss/packages/ui/src/popover.tsx +48 -0
  203. package/templates/turborepo-pandacss/packages/ui/src/progress.tsx +31 -0
  204. package/templates/turborepo-pandacss/packages/ui/src/select.tsx +185 -0
  205. package/templates/turborepo-pandacss/packages/ui/src/separator.tsx +28 -0
  206. package/templates/turborepo-pandacss/packages/ui/src/skeleton.tsx +13 -0
  207. package/templates/turborepo-pandacss/packages/ui/src/sonner.tsx +25 -0
  208. package/templates/turborepo-pandacss/packages/ui/src/table.tsx +116 -0
  209. package/templates/turborepo-pandacss/packages/ui/src/tabs.tsx +66 -0
  210. package/templates/turborepo-pandacss/packages/ui/src/textarea.tsx +18 -0
  211. package/templates/turborepo-pandacss/packages/ui/src/tooltip.tsx +61 -0
  212. package/templates/turborepo-pandacss/packages/ui/src/typography.tsx +187 -0
  213. package/templates/turborepo-pandacss/packages/ui/tsconfig.json +20 -0
  214. package/templates/turborepo-pandacss/panda.config.ts +114 -0
  215. package/templates/turborepo-pandacss/pnpm-lock.yaml +9032 -0
  216. package/templates/turborepo-pandacss/pnpm-workspace.yaml +11 -0
  217. package/templates/turborepo-pandacss/postcss.config.cjs +6 -0
  218. package/templates/turborepo-pandacss/prisma/schema.prisma +82 -0
  219. package/templates/turborepo-pandacss/public/file.svg +1 -0
  220. package/templates/turborepo-pandacss/public/globe.svg +1 -0
  221. package/templates/turborepo-pandacss/public/next.svg +1 -0
  222. package/templates/turborepo-pandacss/public/vercel.svg +1 -0
  223. package/templates/turborepo-pandacss/public/window.svg +1 -0
  224. package/templates/turborepo-pandacss/scripts/cli-template-update.ts +387 -0
  225. package/templates/turborepo-pandacss/scripts/env-show.ts +129 -0
  226. package/templates/turborepo-pandacss/scripts/env.ts +555 -0
  227. package/templates/turborepo-pandacss/scripts/init.sh +92 -0
  228. package/templates/turborepo-pandacss/scripts/setup-dev.ts +640 -0
  229. package/templates/turborepo-pandacss/scripts/template-update.ts +277 -0
  230. package/templates/turborepo-pandacss/scripts/worktree/dev.ts +872 -0
  231. package/templates/turborepo-pandacss/test/globals.d.ts +1 -0
  232. package/templates/turborepo-pandacss/test/setup.ts +22 -0
  233. package/templates/turborepo-pandacss/tsconfig.json +46 -0
  234. package/templates/turborepo-pandacss/turbo.json +57 -0
  235. package/templates/turborepo-pandacss/vitest.config.ts +20 -0
@@ -0,0 +1,4 @@
1
+ // Front Core - 公開API
2
+ // 内部構造を隠蔽し、公開APIのみエクスポート
3
+
4
+ export { baseAuthOptions, mergeAuthOptions } from "./auth";
@@ -0,0 +1,2 @@
1
+ // Utils module - 将来拡張用
2
+ // 共通ユーティリティをここに追加
@@ -0,0 +1,14 @@
1
+ {
2
+ "extends": "@repo/config/typescript",
3
+ "compilerOptions": {
4
+ "outDir": "./dist",
5
+ "rootDir": "./src"
6
+ },
7
+ "include": [
8
+ "src/**/*"
9
+ ],
10
+ "exclude": [
11
+ "node_modules",
12
+ "dist"
13
+ ]
14
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@repo/server-core",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "exports": {
6
+ "./*": "./src/*.ts",
7
+ "./testing": "./src/testing/index.ts"
8
+ },
9
+ "scripts": {
10
+ "db:generate": "prisma generate",
11
+ "db:push": "prisma db push",
12
+ "db:migrate": "prisma migrate dev",
13
+ "db:studio": "prisma studio",
14
+ "db:seed": "tsx prisma/seed.ts",
15
+ "test": "vitest run",
16
+ "test:watch": "vitest",
17
+ "test:coverage": "vitest run --coverage"
18
+ },
19
+ "dependencies": {
20
+ "@prisma/client": "^6.10.1",
21
+ "bcryptjs": "^3.0.2"
22
+ },
23
+ "devDependencies": {
24
+ "@faker-js/faker": "^9.6.0",
25
+ "@quramy/prisma-fabbrica": "^2.2.0",
26
+ "@repo/config": "workspace:*",
27
+ "prisma": "^6.10.1",
28
+ "tsx": "^4.19.4",
29
+ "typescript": "^5",
30
+ "vitest": "^3.2.2"
31
+ }
32
+ }
@@ -0,0 +1,102 @@
1
+ // This is your Prisma schema file,
2
+ // learn more about it in the docs: https://pris.ly/d/prisma-schema
3
+
4
+ generator client {
5
+ provider = "prisma-client-js"
6
+ }
7
+
8
+ generator fabbrica {
9
+ provider = "prisma-fabbrica"
10
+ output = "../src/__generated__/fabbrica"
11
+ }
12
+
13
+ datasource db {
14
+ provider = "postgresql"
15
+ url = env("DATABASE_URL")
16
+ }
17
+
18
+ enum UserStatus {
19
+ active
20
+ inactive
21
+ pending
22
+ }
23
+
24
+ enum UserRole {
25
+ admin
26
+ user
27
+ moderator
28
+ }
29
+
30
+ model User {
31
+ id String @id @default(cuid())
32
+ name String?
33
+ email String @unique
34
+ emailVerified DateTime?
35
+ image String?
36
+ password String? // パスワードフィールドを追加
37
+ status UserStatus @default(pending)
38
+ role UserRole @default(user)
39
+ lastLogin DateTime?
40
+ accounts Account[]
41
+ sessions Session[]
42
+ // Optional for WebAuthn support
43
+ Authenticator Authenticator[]
44
+
45
+ createdAt DateTime @default(now())
46
+ updatedAt DateTime @updatedAt
47
+ }
48
+
49
+ model Account {
50
+ userId String
51
+ type String
52
+ provider String
53
+ providerAccountId String
54
+ refresh_token String?
55
+ access_token String?
56
+ expires_at Int?
57
+ token_type String?
58
+ scope String?
59
+ id_token String?
60
+ session_state String?
61
+
62
+ createdAt DateTime @default(now())
63
+ updatedAt DateTime @updatedAt
64
+
65
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
66
+
67
+ @@id([provider, providerAccountId])
68
+ }
69
+
70
+ model Session {
71
+ sessionToken String @unique
72
+ userId String
73
+ expires DateTime
74
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
75
+
76
+ createdAt DateTime @default(now())
77
+ updatedAt DateTime @updatedAt
78
+ }
79
+
80
+ model VerificationToken {
81
+ identifier String
82
+ token String
83
+ expires DateTime
84
+
85
+ @@id([identifier, token])
86
+ }
87
+
88
+ // Optional for WebAuthn support
89
+ model Authenticator {
90
+ credentialID String @unique
91
+ userId String
92
+ providerAccountId String
93
+ credentialPublicKey String
94
+ counter Int
95
+ credentialDeviceType String
96
+ credentialBackedUp Boolean
97
+ transports String?
98
+
99
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
100
+
101
+ @@id([userId, credentialID])
102
+ }
@@ -0,0 +1,67 @@
1
+ import { PrismaClient } from "@prisma/client";
2
+ import {
3
+ SEED_USERS,
4
+ getDefaultHashedPassword,
5
+ initialize,
6
+ randomDate,
7
+ daysAgo,
8
+ } from "../src/testing";
9
+
10
+ const prisma = new PrismaClient();
11
+
12
+ // fabbrica初期化
13
+ initialize({ prisma });
14
+
15
+ async function main() {
16
+ console.log("シードデータの投入を開始します...");
17
+
18
+ // 共通パスワード(開発環境用)
19
+ const hashedPassword = await getDefaultHashedPassword();
20
+
21
+ // 日付範囲
22
+ const now = new Date();
23
+ const oneMonthAgo = daysAgo(30);
24
+ const oneWeekAgo = daysAgo(7);
25
+
26
+ for (const userData of SEED_USERS) {
27
+ const createdAt = randomDate(oneMonthAgo, oneWeekAgo);
28
+ const lastLogin =
29
+ userData.status === "active"
30
+ ? randomDate(oneWeekAgo, now)
31
+ : userData.status === "inactive"
32
+ ? randomDate(oneMonthAgo, oneWeekAgo)
33
+ : null;
34
+
35
+ await prisma.user.upsert({
36
+ where: { email: userData.email },
37
+ update: {
38
+ name: userData.name,
39
+ status: userData.status,
40
+ role: userData.role,
41
+ lastLogin,
42
+ },
43
+ create: {
44
+ email: userData.email,
45
+ name: userData.name,
46
+ password: hashedPassword,
47
+ status: userData.status,
48
+ role: userData.role,
49
+ createdAt,
50
+ lastLogin,
51
+ },
52
+ });
53
+
54
+ console.log(`ユーザー作成: ${userData.name} (${userData.email})`);
55
+ }
56
+
57
+ console.log("シードデータの投入が完了しました");
58
+ }
59
+
60
+ main()
61
+ .catch((e) => {
62
+ console.error("シードエラー:", e);
63
+ process.exit(1);
64
+ })
65
+ .finally(async () => {
66
+ await prisma.$disconnect();
67
+ });
@@ -0,0 +1,8 @@
1
+ import { defineConfig } from "prisma/config";
2
+
3
+ export default defineConfig({
4
+ schema: "prisma/schema.prisma",
5
+ migrations: {
6
+ seed: "npx dotenvx run -f ../../.env.example -- tsx prisma/seed.ts",
7
+ },
8
+ });
@@ -0,0 +1,270 @@
1
+ import type { User } from "@prisma/client";
2
+ import type { Account } from "@prisma/client";
3
+ import type { Session } from "@prisma/client";
4
+ import type { VerificationToken } from "@prisma/client";
5
+ import type { Authenticator } from "@prisma/client";
6
+ import type { UserStatus } from "@prisma/client";
7
+ import type { UserRole } from "@prisma/client";
8
+ import type { Prisma } from "@prisma/client";
9
+ import type { Resolver } from "@quramy/prisma-fabbrica/lib/internal";
10
+ export { resetSequence, registerScalarFieldValueGenerator, resetScalarFieldValueGenerator } from "@quramy/prisma-fabbrica/lib/internal";
11
+ type BuildDataOptions<TTransients extends Record<string, unknown>> = {
12
+ readonly seq: number;
13
+ } & TTransients;
14
+ type TraitName = string | symbol;
15
+ type CallbackDefineOptions<TCreated, TCreateInput, TTransients extends Record<string, unknown>> = {
16
+ onAfterBuild?: (createInput: TCreateInput, transientFields: TTransients) => void | PromiseLike<void>;
17
+ onBeforeCreate?: (createInput: TCreateInput, transientFields: TTransients) => void | PromiseLike<void>;
18
+ onAfterCreate?: (created: TCreated, transientFields: TTransients) => void | PromiseLike<void>;
19
+ };
20
+ export declare const initialize: (options: import("@quramy/prisma-fabbrica/lib/internal").InitializeOptions) => void;
21
+ type UserFactoryDefineInput = {
22
+ id?: string;
23
+ name?: string | null;
24
+ email?: string;
25
+ emailVerified?: Date | null;
26
+ image?: string | null;
27
+ password?: string | null;
28
+ status?: UserStatus;
29
+ role?: UserRole;
30
+ lastLogin?: Date | null;
31
+ createdAt?: Date;
32
+ updatedAt?: Date;
33
+ accounts?: Prisma.AccountCreateNestedManyWithoutUserInput;
34
+ sessions?: Prisma.SessionCreateNestedManyWithoutUserInput;
35
+ Authenticator?: Prisma.AuthenticatorCreateNestedManyWithoutUserInput;
36
+ };
37
+ type UserTransientFields = Record<string, unknown> & Partial<Record<keyof UserFactoryDefineInput, never>>;
38
+ type UserFactoryTrait<TTransients extends Record<string, unknown>> = {
39
+ data?: Resolver<Partial<UserFactoryDefineInput>, BuildDataOptions<TTransients>>;
40
+ } & CallbackDefineOptions<User, Prisma.UserCreateInput, TTransients>;
41
+ type UserFactoryDefineOptions<TTransients extends Record<string, unknown> = Record<string, unknown>> = {
42
+ defaultData?: Resolver<UserFactoryDefineInput, BuildDataOptions<TTransients>>;
43
+ traits?: {
44
+ [traitName: TraitName]: UserFactoryTrait<TTransients>;
45
+ };
46
+ } & CallbackDefineOptions<User, Prisma.UserCreateInput, TTransients>;
47
+ type UserTraitKeys<TOptions extends UserFactoryDefineOptions<any>> = Exclude<keyof TOptions["traits"], number>;
48
+ export interface UserFactoryInterfaceWithoutTraits<TTransients extends Record<string, unknown>> {
49
+ readonly _factoryFor: "User";
50
+ build(inputData?: Partial<Prisma.UserCreateInput & TTransients>): PromiseLike<Prisma.UserCreateInput>;
51
+ buildCreateInput(inputData?: Partial<Prisma.UserCreateInput & TTransients>): PromiseLike<Prisma.UserCreateInput>;
52
+ buildList(list: readonly Partial<Prisma.UserCreateInput & TTransients>[]): PromiseLike<Prisma.UserCreateInput[]>;
53
+ buildList(count: number, item?: Partial<Prisma.UserCreateInput & TTransients>): PromiseLike<Prisma.UserCreateInput[]>;
54
+ pickForConnect(inputData: User): Pick<User, "id">;
55
+ create(inputData?: Partial<Prisma.UserCreateInput & TTransients>): PromiseLike<User>;
56
+ createList(list: readonly Partial<Prisma.UserCreateInput & TTransients>[]): PromiseLike<User[]>;
57
+ createList(count: number, item?: Partial<Prisma.UserCreateInput & TTransients>): PromiseLike<User[]>;
58
+ createForConnect(inputData?: Partial<Prisma.UserCreateInput & TTransients>): PromiseLike<Pick<User, "id">>;
59
+ }
60
+ export interface UserFactoryInterface<TTransients extends Record<string, unknown> = Record<string, unknown>, TTraitName extends TraitName = TraitName> extends UserFactoryInterfaceWithoutTraits<TTransients> {
61
+ use(name: TTraitName, ...names: readonly TTraitName[]): UserFactoryInterfaceWithoutTraits<TTransients>;
62
+ }
63
+ interface UserFactoryBuilder {
64
+ <TOptions extends UserFactoryDefineOptions>(options?: TOptions): UserFactoryInterface<{}, UserTraitKeys<TOptions>>;
65
+ withTransientFields: <TTransients extends UserTransientFields>(defaultTransientFieldValues: TTransients) => <TOptions extends UserFactoryDefineOptions<TTransients>>(options?: TOptions) => UserFactoryInterface<TTransients, UserTraitKeys<TOptions>>;
66
+ }
67
+ /**
68
+ * Define factory for {@link User} model.
69
+ *
70
+ * @param options
71
+ * @returns factory {@link UserFactoryInterface}
72
+ */
73
+ export declare const defineUserFactory: UserFactoryBuilder;
74
+ type AccountuserFactory = {
75
+ _factoryFor: "User";
76
+ build: () => PromiseLike<Prisma.UserCreateNestedOneWithoutAccountsInput["create"]>;
77
+ };
78
+ type AccountFactoryDefineInput = {
79
+ type?: string;
80
+ provider?: string;
81
+ providerAccountId?: string;
82
+ refresh_token?: string | null;
83
+ access_token?: string | null;
84
+ expires_at?: number | null;
85
+ token_type?: string | null;
86
+ scope?: string | null;
87
+ id_token?: string | null;
88
+ session_state?: string | null;
89
+ createdAt?: Date;
90
+ updatedAt?: Date;
91
+ user: AccountuserFactory | Prisma.UserCreateNestedOneWithoutAccountsInput;
92
+ };
93
+ type AccountTransientFields = Record<string, unknown> & Partial<Record<keyof AccountFactoryDefineInput, never>>;
94
+ type AccountFactoryTrait<TTransients extends Record<string, unknown>> = {
95
+ data?: Resolver<Partial<AccountFactoryDefineInput>, BuildDataOptions<TTransients>>;
96
+ } & CallbackDefineOptions<Account, Prisma.AccountCreateInput, TTransients>;
97
+ type AccountFactoryDefineOptions<TTransients extends Record<string, unknown> = Record<string, unknown>> = {
98
+ defaultData: Resolver<AccountFactoryDefineInput, BuildDataOptions<TTransients>>;
99
+ traits?: {
100
+ [traitName: string | symbol]: AccountFactoryTrait<TTransients>;
101
+ };
102
+ } & CallbackDefineOptions<Account, Prisma.AccountCreateInput, TTransients>;
103
+ type AccountTraitKeys<TOptions extends AccountFactoryDefineOptions<any>> = Exclude<keyof TOptions["traits"], number>;
104
+ export interface AccountFactoryInterfaceWithoutTraits<TTransients extends Record<string, unknown>> {
105
+ readonly _factoryFor: "Account";
106
+ build(inputData?: Partial<Prisma.AccountCreateInput & TTransients>): PromiseLike<Prisma.AccountCreateInput>;
107
+ buildCreateInput(inputData?: Partial<Prisma.AccountCreateInput & TTransients>): PromiseLike<Prisma.AccountCreateInput>;
108
+ buildList(list: readonly Partial<Prisma.AccountCreateInput & TTransients>[]): PromiseLike<Prisma.AccountCreateInput[]>;
109
+ buildList(count: number, item?: Partial<Prisma.AccountCreateInput & TTransients>): PromiseLike<Prisma.AccountCreateInput[]>;
110
+ pickForConnect(inputData: Account): Pick<Account, "provider" | "providerAccountId">;
111
+ create(inputData?: Partial<Prisma.AccountCreateInput & TTransients>): PromiseLike<Account>;
112
+ createList(list: readonly Partial<Prisma.AccountCreateInput & TTransients>[]): PromiseLike<Account[]>;
113
+ createList(count: number, item?: Partial<Prisma.AccountCreateInput & TTransients>): PromiseLike<Account[]>;
114
+ createForConnect(inputData?: Partial<Prisma.AccountCreateInput & TTransients>): PromiseLike<Pick<Account, "provider" | "providerAccountId">>;
115
+ }
116
+ export interface AccountFactoryInterface<TTransients extends Record<string, unknown> = Record<string, unknown>, TTraitName extends TraitName = TraitName> extends AccountFactoryInterfaceWithoutTraits<TTransients> {
117
+ use(name: TTraitName, ...names: readonly TTraitName[]): AccountFactoryInterfaceWithoutTraits<TTransients>;
118
+ }
119
+ interface AccountFactoryBuilder {
120
+ <TOptions extends AccountFactoryDefineOptions>(options: TOptions): AccountFactoryInterface<{}, AccountTraitKeys<TOptions>>;
121
+ withTransientFields: <TTransients extends AccountTransientFields>(defaultTransientFieldValues: TTransients) => <TOptions extends AccountFactoryDefineOptions<TTransients>>(options: TOptions) => AccountFactoryInterface<TTransients, AccountTraitKeys<TOptions>>;
122
+ }
123
+ /**
124
+ * Define factory for {@link Account} model.
125
+ *
126
+ * @param options
127
+ * @returns factory {@link AccountFactoryInterface}
128
+ */
129
+ export declare const defineAccountFactory: AccountFactoryBuilder;
130
+ type SessionuserFactory = {
131
+ _factoryFor: "User";
132
+ build: () => PromiseLike<Prisma.UserCreateNestedOneWithoutSessionsInput["create"]>;
133
+ };
134
+ type SessionFactoryDefineInput = {
135
+ sessionToken?: string;
136
+ expires?: Date;
137
+ createdAt?: Date;
138
+ updatedAt?: Date;
139
+ user: SessionuserFactory | Prisma.UserCreateNestedOneWithoutSessionsInput;
140
+ };
141
+ type SessionTransientFields = Record<string, unknown> & Partial<Record<keyof SessionFactoryDefineInput, never>>;
142
+ type SessionFactoryTrait<TTransients extends Record<string, unknown>> = {
143
+ data?: Resolver<Partial<SessionFactoryDefineInput>, BuildDataOptions<TTransients>>;
144
+ } & CallbackDefineOptions<Session, Prisma.SessionCreateInput, TTransients>;
145
+ type SessionFactoryDefineOptions<TTransients extends Record<string, unknown> = Record<string, unknown>> = {
146
+ defaultData: Resolver<SessionFactoryDefineInput, BuildDataOptions<TTransients>>;
147
+ traits?: {
148
+ [traitName: string | symbol]: SessionFactoryTrait<TTransients>;
149
+ };
150
+ } & CallbackDefineOptions<Session, Prisma.SessionCreateInput, TTransients>;
151
+ type SessionTraitKeys<TOptions extends SessionFactoryDefineOptions<any>> = Exclude<keyof TOptions["traits"], number>;
152
+ export interface SessionFactoryInterfaceWithoutTraits<TTransients extends Record<string, unknown>> {
153
+ readonly _factoryFor: "Session";
154
+ build(inputData?: Partial<Prisma.SessionCreateInput & TTransients>): PromiseLike<Prisma.SessionCreateInput>;
155
+ buildCreateInput(inputData?: Partial<Prisma.SessionCreateInput & TTransients>): PromiseLike<Prisma.SessionCreateInput>;
156
+ buildList(list: readonly Partial<Prisma.SessionCreateInput & TTransients>[]): PromiseLike<Prisma.SessionCreateInput[]>;
157
+ buildList(count: number, item?: Partial<Prisma.SessionCreateInput & TTransients>): PromiseLike<Prisma.SessionCreateInput[]>;
158
+ pickForConnect(inputData: Session): Pick<Session, "sessionToken">;
159
+ create(inputData?: Partial<Prisma.SessionCreateInput & TTransients>): PromiseLike<Session>;
160
+ createList(list: readonly Partial<Prisma.SessionCreateInput & TTransients>[]): PromiseLike<Session[]>;
161
+ createList(count: number, item?: Partial<Prisma.SessionCreateInput & TTransients>): PromiseLike<Session[]>;
162
+ createForConnect(inputData?: Partial<Prisma.SessionCreateInput & TTransients>): PromiseLike<Pick<Session, "sessionToken">>;
163
+ }
164
+ export interface SessionFactoryInterface<TTransients extends Record<string, unknown> = Record<string, unknown>, TTraitName extends TraitName = TraitName> extends SessionFactoryInterfaceWithoutTraits<TTransients> {
165
+ use(name: TTraitName, ...names: readonly TTraitName[]): SessionFactoryInterfaceWithoutTraits<TTransients>;
166
+ }
167
+ interface SessionFactoryBuilder {
168
+ <TOptions extends SessionFactoryDefineOptions>(options: TOptions): SessionFactoryInterface<{}, SessionTraitKeys<TOptions>>;
169
+ withTransientFields: <TTransients extends SessionTransientFields>(defaultTransientFieldValues: TTransients) => <TOptions extends SessionFactoryDefineOptions<TTransients>>(options: TOptions) => SessionFactoryInterface<TTransients, SessionTraitKeys<TOptions>>;
170
+ }
171
+ /**
172
+ * Define factory for {@link Session} model.
173
+ *
174
+ * @param options
175
+ * @returns factory {@link SessionFactoryInterface}
176
+ */
177
+ export declare const defineSessionFactory: SessionFactoryBuilder;
178
+ type VerificationTokenFactoryDefineInput = {
179
+ identifier?: string;
180
+ token?: string;
181
+ expires?: Date;
182
+ };
183
+ type VerificationTokenTransientFields = Record<string, unknown> & Partial<Record<keyof VerificationTokenFactoryDefineInput, never>>;
184
+ type VerificationTokenFactoryTrait<TTransients extends Record<string, unknown>> = {
185
+ data?: Resolver<Partial<VerificationTokenFactoryDefineInput>, BuildDataOptions<TTransients>>;
186
+ } & CallbackDefineOptions<VerificationToken, Prisma.VerificationTokenCreateInput, TTransients>;
187
+ type VerificationTokenFactoryDefineOptions<TTransients extends Record<string, unknown> = Record<string, unknown>> = {
188
+ defaultData?: Resolver<VerificationTokenFactoryDefineInput, BuildDataOptions<TTransients>>;
189
+ traits?: {
190
+ [traitName: TraitName]: VerificationTokenFactoryTrait<TTransients>;
191
+ };
192
+ } & CallbackDefineOptions<VerificationToken, Prisma.VerificationTokenCreateInput, TTransients>;
193
+ type VerificationTokenTraitKeys<TOptions extends VerificationTokenFactoryDefineOptions<any>> = Exclude<keyof TOptions["traits"], number>;
194
+ export interface VerificationTokenFactoryInterfaceWithoutTraits<TTransients extends Record<string, unknown>> {
195
+ readonly _factoryFor: "VerificationToken";
196
+ build(inputData?: Partial<Prisma.VerificationTokenCreateInput & TTransients>): PromiseLike<Prisma.VerificationTokenCreateInput>;
197
+ buildCreateInput(inputData?: Partial<Prisma.VerificationTokenCreateInput & TTransients>): PromiseLike<Prisma.VerificationTokenCreateInput>;
198
+ buildList(list: readonly Partial<Prisma.VerificationTokenCreateInput & TTransients>[]): PromiseLike<Prisma.VerificationTokenCreateInput[]>;
199
+ buildList(count: number, item?: Partial<Prisma.VerificationTokenCreateInput & TTransients>): PromiseLike<Prisma.VerificationTokenCreateInput[]>;
200
+ pickForConnect(inputData: VerificationToken): Pick<VerificationToken, "identifier" | "token">;
201
+ create(inputData?: Partial<Prisma.VerificationTokenCreateInput & TTransients>): PromiseLike<VerificationToken>;
202
+ createList(list: readonly Partial<Prisma.VerificationTokenCreateInput & TTransients>[]): PromiseLike<VerificationToken[]>;
203
+ createList(count: number, item?: Partial<Prisma.VerificationTokenCreateInput & TTransients>): PromiseLike<VerificationToken[]>;
204
+ createForConnect(inputData?: Partial<Prisma.VerificationTokenCreateInput & TTransients>): PromiseLike<Pick<VerificationToken, "identifier" | "token">>;
205
+ }
206
+ export interface VerificationTokenFactoryInterface<TTransients extends Record<string, unknown> = Record<string, unknown>, TTraitName extends TraitName = TraitName> extends VerificationTokenFactoryInterfaceWithoutTraits<TTransients> {
207
+ use(name: TTraitName, ...names: readonly TTraitName[]): VerificationTokenFactoryInterfaceWithoutTraits<TTransients>;
208
+ }
209
+ interface VerificationTokenFactoryBuilder {
210
+ <TOptions extends VerificationTokenFactoryDefineOptions>(options?: TOptions): VerificationTokenFactoryInterface<{}, VerificationTokenTraitKeys<TOptions>>;
211
+ withTransientFields: <TTransients extends VerificationTokenTransientFields>(defaultTransientFieldValues: TTransients) => <TOptions extends VerificationTokenFactoryDefineOptions<TTransients>>(options?: TOptions) => VerificationTokenFactoryInterface<TTransients, VerificationTokenTraitKeys<TOptions>>;
212
+ }
213
+ /**
214
+ * Define factory for {@link VerificationToken} model.
215
+ *
216
+ * @param options
217
+ * @returns factory {@link VerificationTokenFactoryInterface}
218
+ */
219
+ export declare const defineVerificationTokenFactory: VerificationTokenFactoryBuilder;
220
+ type AuthenticatoruserFactory = {
221
+ _factoryFor: "User";
222
+ build: () => PromiseLike<Prisma.UserCreateNestedOneWithoutAuthenticatorInput["create"]>;
223
+ };
224
+ type AuthenticatorFactoryDefineInput = {
225
+ credentialID?: string;
226
+ providerAccountId?: string;
227
+ credentialPublicKey?: string;
228
+ counter?: number;
229
+ credentialDeviceType?: string;
230
+ credentialBackedUp?: boolean;
231
+ transports?: string | null;
232
+ user: AuthenticatoruserFactory | Prisma.UserCreateNestedOneWithoutAuthenticatorInput;
233
+ };
234
+ type AuthenticatorTransientFields = Record<string, unknown> & Partial<Record<keyof AuthenticatorFactoryDefineInput, never>>;
235
+ type AuthenticatorFactoryTrait<TTransients extends Record<string, unknown>> = {
236
+ data?: Resolver<Partial<AuthenticatorFactoryDefineInput>, BuildDataOptions<TTransients>>;
237
+ } & CallbackDefineOptions<Authenticator, Prisma.AuthenticatorCreateInput, TTransients>;
238
+ type AuthenticatorFactoryDefineOptions<TTransients extends Record<string, unknown> = Record<string, unknown>> = {
239
+ defaultData: Resolver<AuthenticatorFactoryDefineInput, BuildDataOptions<TTransients>>;
240
+ traits?: {
241
+ [traitName: string | symbol]: AuthenticatorFactoryTrait<TTransients>;
242
+ };
243
+ } & CallbackDefineOptions<Authenticator, Prisma.AuthenticatorCreateInput, TTransients>;
244
+ type AuthenticatorTraitKeys<TOptions extends AuthenticatorFactoryDefineOptions<any>> = Exclude<keyof TOptions["traits"], number>;
245
+ export interface AuthenticatorFactoryInterfaceWithoutTraits<TTransients extends Record<string, unknown>> {
246
+ readonly _factoryFor: "Authenticator";
247
+ build(inputData?: Partial<Prisma.AuthenticatorCreateInput & TTransients>): PromiseLike<Prisma.AuthenticatorCreateInput>;
248
+ buildCreateInput(inputData?: Partial<Prisma.AuthenticatorCreateInput & TTransients>): PromiseLike<Prisma.AuthenticatorCreateInput>;
249
+ buildList(list: readonly Partial<Prisma.AuthenticatorCreateInput & TTransients>[]): PromiseLike<Prisma.AuthenticatorCreateInput[]>;
250
+ buildList(count: number, item?: Partial<Prisma.AuthenticatorCreateInput & TTransients>): PromiseLike<Prisma.AuthenticatorCreateInput[]>;
251
+ pickForConnect(inputData: Authenticator): Pick<Authenticator, "userId" | "credentialID">;
252
+ create(inputData?: Partial<Prisma.AuthenticatorCreateInput & TTransients>): PromiseLike<Authenticator>;
253
+ createList(list: readonly Partial<Prisma.AuthenticatorCreateInput & TTransients>[]): PromiseLike<Authenticator[]>;
254
+ createList(count: number, item?: Partial<Prisma.AuthenticatorCreateInput & TTransients>): PromiseLike<Authenticator[]>;
255
+ createForConnect(inputData?: Partial<Prisma.AuthenticatorCreateInput & TTransients>): PromiseLike<Pick<Authenticator, "userId" | "credentialID">>;
256
+ }
257
+ export interface AuthenticatorFactoryInterface<TTransients extends Record<string, unknown> = Record<string, unknown>, TTraitName extends TraitName = TraitName> extends AuthenticatorFactoryInterfaceWithoutTraits<TTransients> {
258
+ use(name: TTraitName, ...names: readonly TTraitName[]): AuthenticatorFactoryInterfaceWithoutTraits<TTransients>;
259
+ }
260
+ interface AuthenticatorFactoryBuilder {
261
+ <TOptions extends AuthenticatorFactoryDefineOptions>(options: TOptions): AuthenticatorFactoryInterface<{}, AuthenticatorTraitKeys<TOptions>>;
262
+ withTransientFields: <TTransients extends AuthenticatorTransientFields>(defaultTransientFieldValues: TTransients) => <TOptions extends AuthenticatorFactoryDefineOptions<TTransients>>(options: TOptions) => AuthenticatorFactoryInterface<TTransients, AuthenticatorTraitKeys<TOptions>>;
263
+ }
264
+ /**
265
+ * Define factory for {@link Authenticator} model.
266
+ *
267
+ * @param options
268
+ * @returns factory {@link AuthenticatorFactoryInterface}
269
+ */
270
+ export declare const defineAuthenticatorFactory: AuthenticatorFactoryBuilder;