create-zhx-monorepo 0.1.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 (125) hide show
  1. package/README.md +34 -0
  2. package/bin/index.js +65 -0
  3. package/package.json +18 -0
  4. package/templates/monorepo-starter/.vscode/settings.json +3 -0
  5. package/templates/monorepo-starter/README.md +42 -0
  6. package/templates/monorepo-starter/apps/web/components.json +20 -0
  7. package/templates/monorepo-starter/apps/web/eslint.config.mjs +4 -0
  8. package/templates/monorepo-starter/apps/web/next-env.d.ts +6 -0
  9. package/templates/monorepo-starter/apps/web/next.config.mjs +6 -0
  10. package/templates/monorepo-starter/apps/web/package.json +31 -0
  11. package/templates/monorepo-starter/apps/web/postcss.config.mjs +1 -0
  12. package/templates/monorepo-starter/apps/web/public/.gitkeep +0 -0
  13. package/templates/monorepo-starter/apps/web/sitemap.config.cjs +6 -0
  14. package/templates/monorepo-starter/apps/web/src/app/(auth)/layout.tsx +7 -0
  15. package/templates/monorepo-starter/apps/web/src/app/(root)/layout.tsx +15 -0
  16. package/templates/monorepo-starter/apps/web/src/app/(root)/page.tsx +14 -0
  17. package/templates/monorepo-starter/apps/web/src/app/globals.css +1 -0
  18. package/templates/monorepo-starter/apps/web/src/app/layout.tsx +24 -0
  19. package/templates/monorepo-starter/apps/web/src/components/Footer.tsx +9 -0
  20. package/templates/monorepo-starter/apps/web/src/components/Header.tsx +11 -0
  21. package/templates/monorepo-starter/apps/web/src/components/ThemeSwitch.tsx +34 -0
  22. package/templates/monorepo-starter/apps/web/src/hooks/.gitkeep +0 -0
  23. package/templates/monorepo-starter/apps/web/src/lib/.gitkeep +0 -0
  24. package/templates/monorepo-starter/apps/web/src/providers/index.tsx +10 -0
  25. package/templates/monorepo-starter/apps/web/src/providers/theme.tsx +19 -0
  26. package/templates/monorepo-starter/apps/web/src/types/index.d.ts +16 -0
  27. package/templates/monorepo-starter/apps/web/tsconfig.json +20 -0
  28. package/templates/monorepo-starter/eslint.config.mjs +12 -0
  29. package/templates/monorepo-starter/package.json +23 -0
  30. package/templates/monorepo-starter/packages/config/eslint/base.js +31 -0
  31. package/templates/monorepo-starter/packages/config/eslint/nest.js +26 -0
  32. package/templates/monorepo-starter/packages/config/eslint/next.js +39 -0
  33. package/templates/monorepo-starter/packages/config/eslint/react.js +30 -0
  34. package/templates/monorepo-starter/packages/config/package.json +32 -0
  35. package/templates/monorepo-starter/packages/config/typescript/base.json +31 -0
  36. package/templates/monorepo-starter/packages/config/typescript/nest.json +14 -0
  37. package/templates/monorepo-starter/packages/config/typescript/next.json +10 -0
  38. package/templates/monorepo-starter/packages/config/typescript/react.json +9 -0
  39. package/templates/monorepo-starter/packages/ui/components.json +20 -0
  40. package/templates/monorepo-starter/packages/ui/eslint.config.mjs +4 -0
  41. package/templates/monorepo-starter/packages/ui/package.json +38 -0
  42. package/templates/monorepo-starter/packages/ui/postcss.config.mjs +6 -0
  43. package/templates/monorepo-starter/packages/ui/src/components/button.tsx +71 -0
  44. package/templates/monorepo-starter/packages/ui/src/hooks/.gitkeep +0 -0
  45. package/templates/monorepo-starter/packages/ui/src/lib/utils.ts +6 -0
  46. package/templates/monorepo-starter/packages/ui/src/styles/globals.css +182 -0
  47. package/templates/monorepo-starter/packages/ui/tsconfig.json +13 -0
  48. package/templates/monorepo-starter/packages/ui/tsconfig.lint.json +8 -0
  49. package/templates/monorepo-starter/pnpm-lock.yaml +12441 -0
  50. package/templates/monorepo-starter/pnpm-workspace.yaml +17 -0
  51. package/templates/monorepo-starter/server/.env.example +64 -0
  52. package/templates/monorepo-starter/server/README.md +63 -0
  53. package/templates/monorepo-starter/server/eslint.config.mjs +4 -0
  54. package/templates/monorepo-starter/server/nest-cli.json +12 -0
  55. package/templates/monorepo-starter/server/package.json +97 -0
  56. package/templates/monorepo-starter/server/prisma/generated/browser.ts +54 -0
  57. package/templates/monorepo-starter/server/prisma/generated/client.ts +76 -0
  58. package/templates/monorepo-starter/server/prisma/generated/commonInputTypes.ts +577 -0
  59. package/templates/monorepo-starter/server/prisma/generated/enums.ts +68 -0
  60. package/templates/monorepo-starter/server/prisma/generated/internal/class.ts +250 -0
  61. package/templates/monorepo-starter/server/prisma/generated/internal/prismaNamespace.ts +1436 -0
  62. package/templates/monorepo-starter/server/prisma/generated/internal/prismaNamespaceBrowser.ts +227 -0
  63. package/templates/monorepo-starter/server/prisma/generated/models/BackupCode.ts +1375 -0
  64. package/templates/monorepo-starter/server/prisma/generated/models/Notification.ts +1587 -0
  65. package/templates/monorepo-starter/server/prisma/generated/models/Otp.ts +1488 -0
  66. package/templates/monorepo-starter/server/prisma/generated/models/RefreshToken.ts +1515 -0
  67. package/templates/monorepo-starter/server/prisma/generated/models/RoleAssignment.ts +1385 -0
  68. package/templates/monorepo-starter/server/prisma/generated/models/SecuritySetting.ts +1422 -0
  69. package/templates/monorepo-starter/server/prisma/generated/models/User.ts +2498 -0
  70. package/templates/monorepo-starter/server/prisma/generated/models.ts +18 -0
  71. package/templates/monorepo-starter/server/prisma/migrations/20251218164821_init/migration.sql +210 -0
  72. package/templates/monorepo-starter/server/prisma/migrations/migration_lock.toml +3 -0
  73. package/templates/monorepo-starter/server/prisma/schema.prisma +193 -0
  74. package/templates/monorepo-starter/server/prisma.config.ts +13 -0
  75. package/templates/monorepo-starter/server/scripts/generate.sh +14 -0
  76. package/templates/monorepo-starter/server/src/app.module.ts +49 -0
  77. package/templates/monorepo-starter/server/src/lib/decorators/logger.decorator.ts +20 -0
  78. package/templates/monorepo-starter/server/src/lib/decorators/public.decorator.ts +4 -0
  79. package/templates/monorepo-starter/server/src/lib/decorators/roles.decorator.ts +5 -0
  80. package/templates/monorepo-starter/server/src/lib/dto/auth.dto.ts +64 -0
  81. package/templates/monorepo-starter/server/src/lib/dto/security-setting.dto.ts +21 -0
  82. package/templates/monorepo-starter/server/src/lib/filters/exceptions.filter.ts +62 -0
  83. package/templates/monorepo-starter/server/src/lib/guards/auth.guard.ts +104 -0
  84. package/templates/monorepo-starter/server/src/lib/interceptors/response.interceptor.ts +33 -0
  85. package/templates/monorepo-starter/server/src/lib/pipes/validation.pipe.ts +7 -0
  86. package/templates/monorepo-starter/server/src/lib/schemas/env.schema.ts +99 -0
  87. package/templates/monorepo-starter/server/src/lib/utils/cookie.util.ts +23 -0
  88. package/templates/monorepo-starter/server/src/lib/utils/general.util.ts +24 -0
  89. package/templates/monorepo-starter/server/src/main.ts +41 -0
  90. package/templates/monorepo-starter/server/src/modules/auth/auth.controller.ts +74 -0
  91. package/templates/monorepo-starter/server/src/modules/auth/auth.module.ts +16 -0
  92. package/templates/monorepo-starter/server/src/modules/auth/auth.service.ts +525 -0
  93. package/templates/monorepo-starter/server/src/modules/auth/oauth.controller.ts +58 -0
  94. package/templates/monorepo-starter/server/src/modules/auth/oauth.service.ts +165 -0
  95. package/templates/monorepo-starter/server/src/modules/auth/otp.service.ts +133 -0
  96. package/templates/monorepo-starter/server/src/modules/auth/role.service.ts +99 -0
  97. package/templates/monorepo-starter/server/src/modules/auth/security-setting.service.ts +102 -0
  98. package/templates/monorepo-starter/server/src/modules/env/env.module.ts +9 -0
  99. package/templates/monorepo-starter/server/src/modules/env/env.service.ts +22 -0
  100. package/templates/monorepo-starter/server/src/modules/logger/logger.module.ts +12 -0
  101. package/templates/monorepo-starter/server/src/modules/logger/logger.service.ts +37 -0
  102. package/templates/monorepo-starter/server/src/modules/logger/winston.config.ts +32 -0
  103. package/templates/monorepo-starter/server/src/modules/notification/notification.module.ts +11 -0
  104. package/templates/monorepo-starter/server/src/modules/notification/notification.service.ts +118 -0
  105. package/templates/monorepo-starter/server/src/modules/prisma/prisma.extension.ts +72 -0
  106. package/templates/monorepo-starter/server/src/modules/prisma/prisma.module.ts +9 -0
  107. package/templates/monorepo-starter/server/src/modules/prisma/prisma.service.ts +49 -0
  108. package/templates/monorepo-starter/server/src/modules/public/public.controller.ts +21 -0
  109. package/templates/monorepo-starter/server/src/modules/public/public.module.ts +9 -0
  110. package/templates/monorepo-starter/server/src/modules/public/public.service.ts +30 -0
  111. package/templates/monorepo-starter/server/src/modules/scheduler/cleanup.service.ts +33 -0
  112. package/templates/monorepo-starter/server/src/modules/scheduler/scheduler.module.ts +7 -0
  113. package/templates/monorepo-starter/server/src/modules/template/template.module.ts +8 -0
  114. package/templates/monorepo-starter/server/src/modules/template/template.service.ts +33 -0
  115. package/templates/monorepo-starter/server/src/modules/token/token.module.ts +11 -0
  116. package/templates/monorepo-starter/server/src/modules/token/token.service.ts +131 -0
  117. package/templates/monorepo-starter/server/src/types/express.d.ts +10 -0
  118. package/templates/monorepo-starter/server/src/types/index.d.ts +13 -0
  119. package/templates/monorepo-starter/server/templates/notification.templates.ts +243 -0
  120. package/templates/monorepo-starter/server/test/app.e2e-spec.ts +25 -0
  121. package/templates/monorepo-starter/server/test/jest-e2e.json +9 -0
  122. package/templates/monorepo-starter/server/tsconfig.json +23 -0
  123. package/templates/monorepo-starter/server/tsup.config.ts +14 -0
  124. package/templates/monorepo-starter/tsconfig.json +3 -0
  125. package/templates/monorepo-starter/turbo.json +21 -0
@@ -0,0 +1,227 @@
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!! */
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+ // @ts-nocheck
6
+ /*
7
+ * WARNING: This is an internal file that is subject to change!
8
+ *
9
+ * 🛑 Under no circumstances should you import this file directly! 🛑
10
+ *
11
+ * All exports from this file are wrapped under a `Prisma` namespace object in the browser.ts file.
12
+ * While this enables partial backward compatibility, it is not part of the stable public API.
13
+ *
14
+ * If you are looking for your Models, Enums, and Input Types, please import them from the respective
15
+ * model files in the `model` directory!
16
+ */
17
+
18
+ import * as runtime from "@prisma/client/runtime/index-browser"
19
+
20
+ export type * from '../models'
21
+ export type * from './prismaNamespace'
22
+
23
+ export const Decimal = runtime.Decimal
24
+
25
+
26
+ export const NullTypes = {
27
+ DbNull: runtime.NullTypes.DbNull as (new (secret: never) => typeof runtime.DbNull),
28
+ JsonNull: runtime.NullTypes.JsonNull as (new (secret: never) => typeof runtime.JsonNull),
29
+ AnyNull: runtime.NullTypes.AnyNull as (new (secret: never) => typeof runtime.AnyNull),
30
+ }
31
+ /**
32
+ * Helper for filtering JSON entries that have `null` on the database (empty on the db)
33
+ *
34
+ * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
35
+ */
36
+ export const DbNull = runtime.DbNull
37
+
38
+ /**
39
+ * Helper for filtering JSON entries that have JSON `null` values (not empty on the db)
40
+ *
41
+ * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
42
+ */
43
+ export const JsonNull = runtime.JsonNull
44
+
45
+ /**
46
+ * Helper for filtering JSON entries that are `Prisma.DbNull` or `Prisma.JsonNull`
47
+ *
48
+ * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
49
+ */
50
+ export const AnyNull = runtime.AnyNull
51
+
52
+
53
+ export const ModelName = {
54
+ User: 'User',
55
+ RoleAssignment: 'RoleAssignment',
56
+ SecuritySetting: 'SecuritySetting',
57
+ BackupCode: 'BackupCode',
58
+ RefreshToken: 'RefreshToken',
59
+ Otp: 'Otp',
60
+ Notification: 'Notification'
61
+ } as const
62
+
63
+ export type ModelName = (typeof ModelName)[keyof typeof ModelName]
64
+
65
+ /*
66
+ * Enums
67
+ */
68
+
69
+ export const TransactionIsolationLevel = {
70
+ ReadUncommitted: 'ReadUncommitted',
71
+ ReadCommitted: 'ReadCommitted',
72
+ RepeatableRead: 'RepeatableRead',
73
+ Serializable: 'Serializable'
74
+ } as const
75
+
76
+ export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel]
77
+
78
+
79
+ export const UserScalarFieldEnum = {
80
+ id: 'id',
81
+ username: 'username',
82
+ password: 'password',
83
+ firstName: 'firstName',
84
+ lastName: 'lastName',
85
+ displayName: 'displayName',
86
+ imageUrl: 'imageUrl',
87
+ email: 'email',
88
+ phone: 'phone',
89
+ isEmailVerified: 'isEmailVerified',
90
+ isPhoneVerified: 'isPhoneVerified',
91
+ lastLoginAt: 'lastLoginAt',
92
+ createdAt: 'createdAt',
93
+ updatedAt: 'updatedAt',
94
+ deletedAt: 'deletedAt'
95
+ } as const
96
+
97
+ export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum]
98
+
99
+
100
+ export const RoleAssignmentScalarFieldEnum = {
101
+ id: 'id',
102
+ userId: 'userId',
103
+ role: 'role',
104
+ createdAt: 'createdAt',
105
+ updatedAt: 'updatedAt',
106
+ revokedAt: 'revokedAt'
107
+ } as const
108
+
109
+ export type RoleAssignmentScalarFieldEnum = (typeof RoleAssignmentScalarFieldEnum)[keyof typeof RoleAssignmentScalarFieldEnum]
110
+
111
+
112
+ export const SecuritySettingScalarFieldEnum = {
113
+ id: 'id',
114
+ userId: 'userId',
115
+ preferredMfa: 'preferredMfa',
116
+ recoveryEmail: 'recoveryEmail',
117
+ recoveryPhone: 'recoveryPhone',
118
+ isMfaEnabled: 'isMfaEnabled',
119
+ loginAlerts: 'loginAlerts',
120
+ createdAt: 'createdAt',
121
+ updatedAt: 'updatedAt'
122
+ } as const
123
+
124
+ export type SecuritySettingScalarFieldEnum = (typeof SecuritySettingScalarFieldEnum)[keyof typeof SecuritySettingScalarFieldEnum]
125
+
126
+
127
+ export const BackupCodeScalarFieldEnum = {
128
+ id: 'id',
129
+ userId: 'userId',
130
+ code: 'code',
131
+ usedAt: 'usedAt',
132
+ createdAt: 'createdAt',
133
+ expiresAt: 'expiresAt'
134
+ } as const
135
+
136
+ export type BackupCodeScalarFieldEnum = (typeof BackupCodeScalarFieldEnum)[keyof typeof BackupCodeScalarFieldEnum]
137
+
138
+
139
+ export const RefreshTokenScalarFieldEnum = {
140
+ id: 'id',
141
+ token: 'token',
142
+ userId: 'userId',
143
+ ip: 'ip',
144
+ userAgent: 'userAgent',
145
+ lastUsed: 'lastUsed',
146
+ createdAt: 'createdAt',
147
+ expiresAt: 'expiresAt',
148
+ isActive: 'isActive',
149
+ blacklisted: 'blacklisted'
150
+ } as const
151
+
152
+ export type RefreshTokenScalarFieldEnum = (typeof RefreshTokenScalarFieldEnum)[keyof typeof RefreshTokenScalarFieldEnum]
153
+
154
+
155
+ export const OtpScalarFieldEnum = {
156
+ id: 'id',
157
+ userId: 'userId',
158
+ purpose: 'purpose',
159
+ type: 'type',
160
+ secret: 'secret',
161
+ expiresAt: 'expiresAt',
162
+ usedAt: 'usedAt',
163
+ createdAt: 'createdAt',
164
+ updatedAt: 'updatedAt'
165
+ } as const
166
+
167
+ export type OtpScalarFieldEnum = (typeof OtpScalarFieldEnum)[keyof typeof OtpScalarFieldEnum]
168
+
169
+
170
+ export const NotificationScalarFieldEnum = {
171
+ id: 'id',
172
+ userId: 'userId',
173
+ type: 'type',
174
+ title: 'title',
175
+ message: 'message',
176
+ purpose: 'purpose',
177
+ metadata: 'metadata',
178
+ status: 'status',
179
+ sentAt: 'sentAt',
180
+ readAt: 'readAt',
181
+ createdAt: 'createdAt',
182
+ updatedAt: 'updatedAt'
183
+ } as const
184
+
185
+ export type NotificationScalarFieldEnum = (typeof NotificationScalarFieldEnum)[keyof typeof NotificationScalarFieldEnum]
186
+
187
+
188
+ export const SortOrder = {
189
+ asc: 'asc',
190
+ desc: 'desc'
191
+ } as const
192
+
193
+ export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]
194
+
195
+
196
+ export const NullableJsonNullValueInput = {
197
+ DbNull: 'DbNull',
198
+ JsonNull: 'JsonNull'
199
+ } as const
200
+
201
+ export type NullableJsonNullValueInput = (typeof NullableJsonNullValueInput)[keyof typeof NullableJsonNullValueInput]
202
+
203
+
204
+ export const QueryMode = {
205
+ default: 'default',
206
+ insensitive: 'insensitive'
207
+ } as const
208
+
209
+ export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode]
210
+
211
+
212
+ export const NullsOrder = {
213
+ first: 'first',
214
+ last: 'last'
215
+ } as const
216
+
217
+ export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder]
218
+
219
+
220
+ export const JsonNullValueFilter = {
221
+ DbNull: 'DbNull',
222
+ JsonNull: 'JsonNull',
223
+ AnyNull: 'AnyNull'
224
+ } as const
225
+
226
+ export type JsonNullValueFilter = (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter]
227
+