create-warlock 1.0.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 (169) hide show
  1. package/README.md +29 -0
  2. package/cjs/commands/create-new-app/get-app-path.d.ts +2 -0
  3. package/cjs/commands/create-new-app/get-app-path.d.ts.map +1 -0
  4. package/cjs/commands/create-new-app/get-app-path.js +8 -0
  5. package/cjs/commands/create-new-app/get-app-path.js.map +1 -0
  6. package/cjs/commands/create-new-app/index.d.ts +2 -0
  7. package/cjs/commands/create-new-app/index.d.ts.map +1 -0
  8. package/cjs/commands/create-new-app/index.js +42 -0
  9. package/cjs/commands/create-new-app/index.js.map +1 -0
  10. package/cjs/commands/create-new-app/select-app-type.d.ts +2 -0
  11. package/cjs/commands/create-new-app/select-app-type.d.ts.map +1 -0
  12. package/cjs/commands/create-new-app/types.d.ts +8 -0
  13. package/cjs/commands/create-new-app/types.d.ts.map +1 -0
  14. package/cjs/commands/create-warlock-app/index.d.ts +3 -0
  15. package/cjs/commands/create-warlock-app/index.d.ts.map +1 -0
  16. package/cjs/commands/create-warlock-app/index.js +18 -0
  17. package/cjs/commands/create-warlock-app/index.js.map +1 -0
  18. package/cjs/commands/vite-react/headless-ui/index.d.ts +3 -0
  19. package/cjs/commands/vite-react/headless-ui/index.d.ts.map +1 -0
  20. package/cjs/commands/vite-react/headless-ui/types.d.ts +4 -0
  21. package/cjs/commands/vite-react/headless-ui/types.d.ts.map +1 -0
  22. package/cjs/commands/vite-react/index.d.ts +3 -0
  23. package/cjs/commands/vite-react/index.d.ts.map +1 -0
  24. package/cjs/commands/vite-react/mantine/index.d.ts +3 -0
  25. package/cjs/commands/vite-react/mantine/index.d.ts.map +1 -0
  26. package/cjs/commands/vite-react/mantine/types.d.ts +4 -0
  27. package/cjs/commands/vite-react/mantine/types.d.ts.map +1 -0
  28. package/cjs/commands/vite-react/select-react-app.d.ts +4 -0
  29. package/cjs/commands/vite-react/select-react-app.d.ts.map +1 -0
  30. package/cjs/commands/vite-react/selectAppConfigurations.d.ts +3 -0
  31. package/cjs/commands/vite-react/selectAppConfigurations.d.ts.map +1 -0
  32. package/cjs/commands/vite-react/tailwind-css/index.d.ts +3 -0
  33. package/cjs/commands/vite-react/tailwind-css/index.d.ts.map +1 -0
  34. package/cjs/commands/vite-react/tailwind-css/types.d.ts +4 -0
  35. package/cjs/commands/vite-react/tailwind-css/types.d.ts.map +1 -0
  36. package/cjs/commands/vite-react/types.d.ts +4 -0
  37. package/cjs/commands/vite-react/types.d.ts.map +1 -0
  38. package/cjs/helpers/app.d.ts +51 -0
  39. package/cjs/helpers/app.d.ts.map +1 -0
  40. package/cjs/helpers/app.js +127 -0
  41. package/cjs/helpers/app.js.map +1 -0
  42. package/cjs/helpers/exec.d.ts +10 -0
  43. package/cjs/helpers/exec.d.ts.map +1 -0
  44. package/cjs/helpers/exec.js +69 -0
  45. package/cjs/helpers/exec.js.map +1 -0
  46. package/cjs/helpers/package-manager.d.ts +5 -0
  47. package/cjs/helpers/package-manager.d.ts.map +1 -0
  48. package/cjs/helpers/package-manager.js +16 -0
  49. package/cjs/helpers/package-manager.js.map +1 -0
  50. package/cjs/helpers/paths.d.ts +4 -0
  51. package/cjs/helpers/paths.d.ts.map +1 -0
  52. package/cjs/helpers/paths.js +5 -0
  53. package/cjs/helpers/paths.js.map +1 -0
  54. package/cjs/helpers/project-builder-helpers.d.ts +7 -0
  55. package/cjs/helpers/project-builder-helpers.d.ts.map +1 -0
  56. package/cjs/helpers/project-builder-helpers.js +44 -0
  57. package/cjs/helpers/project-builder-helpers.js.map +1 -0
  58. package/cjs/index.d.ts +2 -0
  59. package/cjs/index.d.ts.map +1 -0
  60. package/cjs/index.js +7 -0
  61. package/cjs/index.js.map +1 -0
  62. package/create-app.js +5 -0
  63. package/esm/commands/create-new-app/get-app-path.d.ts +2 -0
  64. package/esm/commands/create-new-app/get-app-path.d.ts.map +1 -0
  65. package/esm/commands/create-new-app/get-app-path.js +8 -0
  66. package/esm/commands/create-new-app/get-app-path.js.map +1 -0
  67. package/esm/commands/create-new-app/index.d.ts +2 -0
  68. package/esm/commands/create-new-app/index.d.ts.map +1 -0
  69. package/esm/commands/create-new-app/index.js +42 -0
  70. package/esm/commands/create-new-app/index.js.map +1 -0
  71. package/esm/commands/create-new-app/select-app-type.d.ts +2 -0
  72. package/esm/commands/create-new-app/select-app-type.d.ts.map +1 -0
  73. package/esm/commands/create-new-app/types.d.ts +8 -0
  74. package/esm/commands/create-new-app/types.d.ts.map +1 -0
  75. package/esm/commands/create-warlock-app/index.d.ts +3 -0
  76. package/esm/commands/create-warlock-app/index.d.ts.map +1 -0
  77. package/esm/commands/create-warlock-app/index.js +18 -0
  78. package/esm/commands/create-warlock-app/index.js.map +1 -0
  79. package/esm/commands/vite-react/headless-ui/index.d.ts +3 -0
  80. package/esm/commands/vite-react/headless-ui/index.d.ts.map +1 -0
  81. package/esm/commands/vite-react/headless-ui/types.d.ts +4 -0
  82. package/esm/commands/vite-react/headless-ui/types.d.ts.map +1 -0
  83. package/esm/commands/vite-react/index.d.ts +3 -0
  84. package/esm/commands/vite-react/index.d.ts.map +1 -0
  85. package/esm/commands/vite-react/mantine/index.d.ts +3 -0
  86. package/esm/commands/vite-react/mantine/index.d.ts.map +1 -0
  87. package/esm/commands/vite-react/mantine/types.d.ts +4 -0
  88. package/esm/commands/vite-react/mantine/types.d.ts.map +1 -0
  89. package/esm/commands/vite-react/select-react-app.d.ts +4 -0
  90. package/esm/commands/vite-react/select-react-app.d.ts.map +1 -0
  91. package/esm/commands/vite-react/selectAppConfigurations.d.ts +3 -0
  92. package/esm/commands/vite-react/selectAppConfigurations.d.ts.map +1 -0
  93. package/esm/commands/vite-react/tailwind-css/index.d.ts +3 -0
  94. package/esm/commands/vite-react/tailwind-css/index.d.ts.map +1 -0
  95. package/esm/commands/vite-react/tailwind-css/types.d.ts +4 -0
  96. package/esm/commands/vite-react/tailwind-css/types.d.ts.map +1 -0
  97. package/esm/commands/vite-react/types.d.ts +4 -0
  98. package/esm/commands/vite-react/types.d.ts.map +1 -0
  99. package/esm/helpers/app.d.ts +51 -0
  100. package/esm/helpers/app.d.ts.map +1 -0
  101. package/esm/helpers/app.js +127 -0
  102. package/esm/helpers/app.js.map +1 -0
  103. package/esm/helpers/exec.d.ts +10 -0
  104. package/esm/helpers/exec.d.ts.map +1 -0
  105. package/esm/helpers/exec.js +69 -0
  106. package/esm/helpers/exec.js.map +1 -0
  107. package/esm/helpers/package-manager.d.ts +5 -0
  108. package/esm/helpers/package-manager.d.ts.map +1 -0
  109. package/esm/helpers/package-manager.js +16 -0
  110. package/esm/helpers/package-manager.js.map +1 -0
  111. package/esm/helpers/paths.d.ts +4 -0
  112. package/esm/helpers/paths.d.ts.map +1 -0
  113. package/esm/helpers/paths.js +5 -0
  114. package/esm/helpers/paths.js.map +1 -0
  115. package/esm/helpers/project-builder-helpers.d.ts +7 -0
  116. package/esm/helpers/project-builder-helpers.d.ts.map +1 -0
  117. package/esm/helpers/project-builder-helpers.js +44 -0
  118. package/esm/helpers/project-builder-helpers.js.map +1 -0
  119. package/esm/index.d.ts +2 -0
  120. package/esm/index.d.ts.map +1 -0
  121. package/esm/index.js +7 -0
  122. package/esm/index.js.map +1 -0
  123. package/package.json +44 -0
  124. package/templates/warlock/.env.example +35 -0
  125. package/templates/warlock/.eslintrc.json +44 -0
  126. package/templates/warlock/.gitattributes +1 -0
  127. package/templates/warlock/.prettierrc.json +11 -0
  128. package/templates/warlock/README.md +57 -0
  129. package/templates/warlock/_.gitignore +7 -0
  130. package/templates/warlock/package.json +60 -0
  131. package/templates/warlock/src/app/main.ts +12 -0
  132. package/templates/warlock/src/app/uploads/routes.ts +27 -0
  133. package/templates/warlock/src/app/users/controllers/auth/activate-account.ts +48 -0
  134. package/templates/warlock/src/app/users/controllers/auth/admin-login.ts +40 -0
  135. package/templates/warlock/src/app/users/controllers/auth/create-account.ts +23 -0
  136. package/templates/warlock/src/app/users/controllers/auth/forget-password.ts +39 -0
  137. package/templates/warlock/src/app/users/controllers/auth/login.ts +49 -0
  138. package/templates/warlock/src/app/users/controllers/auth/logout.ts +10 -0
  139. package/templates/warlock/src/app/users/controllers/auth/resend-activation-code.ts +45 -0
  140. package/templates/warlock/src/app/users/controllers/auth/reset-password.ts +43 -0
  141. package/templates/warlock/src/app/users/controllers/auth/verify-forget-password-code.ts +18 -0
  142. package/templates/warlock/src/app/users/controllers/profile/change-password.ts +31 -0
  143. package/templates/warlock/src/app/users/controllers/profile/my-profile.ts +10 -0
  144. package/templates/warlock/src/app/users/controllers/profile/update-profile.ts +25 -0
  145. package/templates/warlock/src/app/users/controllers/restful-users.ts +27 -0
  146. package/templates/warlock/src/app/users/events/attach-user-to-response.ts +18 -0
  147. package/templates/warlock/src/app/users/events/register-current-user-to-model-authors.ts +28 -0
  148. package/templates/warlock/src/app/users/events/update-authors.ts +19 -0
  149. package/templates/warlock/src/app/users/mail/send-forget-password-email.ts +20 -0
  150. package/templates/warlock/src/app/users/models/user/index.ts +1 -0
  151. package/templates/warlock/src/app/users/models/user/migration.ts +15 -0
  152. package/templates/warlock/src/app/users/models/user/user.ts +54 -0
  153. package/templates/warlock/src/app/users/output/user-output.ts +12 -0
  154. package/templates/warlock/src/app/users/repositories/users-repository.ts +28 -0
  155. package/templates/warlock/src/app/users/routes.ts +58 -0
  156. package/templates/warlock/src/app/users/utils/locales.ts +16 -0
  157. package/templates/warlock/src/app/utils/output.ts +18 -0
  158. package/templates/warlock/src/app/utils/router.ts +104 -0
  159. package/templates/warlock/src/config/app.ts +12 -0
  160. package/templates/warlock/src/config/auth.ts +16 -0
  161. package/templates/warlock/src/config/cache.ts +33 -0
  162. package/templates/warlock/src/config/database.ts +14 -0
  163. package/templates/warlock/src/config/http.ts +22 -0
  164. package/templates/warlock/src/config/log.ts +19 -0
  165. package/templates/warlock/src/config/mail.ts +16 -0
  166. package/templates/warlock/src/config/uploads.ts +12 -0
  167. package/templates/warlock/src/config/validation.ts +76 -0
  168. package/templates/warlock/tsconfig.json +30 -0
  169. package/templates/warlock/warlock.config.ts +9 -0
@@ -0,0 +1,14 @@
1
+ import { env } from "@mongez/dotenv";
2
+ import type { DatabaseConfigurations } from "@warlock.js/cascade";
3
+
4
+ const databaseConfigurations: DatabaseConfigurations = {
5
+ host: env("DB_HOST", "localhost"),
6
+ port: env("DB_PORT", 27017),
7
+ username: env("DB_USERNAME"),
8
+ password: env("DB_PASSWORD"),
9
+ database: env("DB_NAME"),
10
+ dbAuth: env("DB_AUTH"),
11
+ url: env("DB_URL"),
12
+ };
13
+
14
+ export default databaseConfigurations;
@@ -0,0 +1,22 @@
1
+ import { env } from "@mongez/dotenv";
2
+ import type { HttpConfigurations } from "@warlock.js/core";
3
+
4
+ const httpConfigurations: HttpConfigurations = {
5
+ port: env("PORT", 3000),
6
+ host: env("HOST", "localhost"),
7
+ log: true,
8
+ fileUploadLimit: 20 * 1024 * 1024, // 20MB
9
+ rateLimit: {
10
+ max: 260, // max requests per duration (i.e minute)
11
+ duration: 60 * 1000, // 1 minute
12
+ },
13
+ cors: {
14
+ // allowed origins
15
+ // origin: ["http://localhost"],
16
+ origin: "*",
17
+ // allowed methods
18
+ methods: ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"],
19
+ },
20
+ };
21
+
22
+ export default httpConfigurations;
@@ -0,0 +1,19 @@
1
+ import type { LogConfigurations } from "@warlock.js/core";
2
+ import { ConsoleLog } from "@warlock.js/logger";
3
+
4
+ export const consoleLog = new ConsoleLog();
5
+
6
+ const logConfigurations: LogConfigurations = {
7
+ enabled: true,
8
+ development: {
9
+ channels: [consoleLog],
10
+ },
11
+ test: {
12
+ channels: [consoleLog],
13
+ },
14
+ production: {
15
+ channels: [consoleLog],
16
+ },
17
+ };
18
+
19
+ export default logConfigurations;
@@ -0,0 +1,16 @@
1
+ import { env } from "@mongez/dotenv";
2
+ import type { MailConfigurations } from "@warlock.js/core";
3
+
4
+ const mailConfigurations: MailConfigurations = {
5
+ host: env("MAIL_HOST"),
6
+ username: env("MAIL_USERNAME"),
7
+ password: env("MAIL_PASSWORD"),
8
+ port: env("MAIL_PORT"),
9
+ secure: env("MAIL_SECURE"),
10
+ from: {
11
+ name: env("MAIL_FROM_NAME"),
12
+ address: env("MAIL_FROM_ADDRESS"),
13
+ },
14
+ };
15
+
16
+ export default mailConfigurations;
@@ -0,0 +1,12 @@
1
+ import type { UploadsConfigurations } from "@warlock.js/core";
2
+
3
+ const uploadsConfigurations: UploadsConfigurations = {
4
+ compress: true,
5
+ saveTo: (defaultPath: string) => {
6
+ // the path returned here should be relative to the storage directory.
7
+ // i.e don't use `storagePath()` function, just pass the relative path to the storage directory.
8
+ return defaultPath;
9
+ },
10
+ };
11
+
12
+ export default uploadsConfigurations;
@@ -0,0 +1,76 @@
1
+ import type { ValidationConfigurations } from "@warlock.js/core";
2
+ import {
3
+ ArrayOfRule,
4
+ ArrayRule,
5
+ BooleanRule,
6
+ ConfirmedRule,
7
+ DateRule,
8
+ EmailRule,
9
+ FileRule,
10
+ FloatRule,
11
+ InRule,
12
+ IntRule,
13
+ LengthRule,
14
+ LocalizedRule,
15
+ MaxLengthRule,
16
+ MaxRule,
17
+ MinLengthRule,
18
+ MinRule,
19
+ NumberRule,
20
+ ObjectRule,
21
+ RequiredIfRule,
22
+ RequiredRule,
23
+ RequiredWithAllRule,
24
+ RequiredWithRule,
25
+ ScalarRule,
26
+ StringifyRule,
27
+ StringRule,
28
+ UniqueRule,
29
+ UploadableRule,
30
+ UrlRule,
31
+ } from "@warlock.js/core";
32
+
33
+ const validationConfigurations: ValidationConfigurations = {
34
+ stopOnFirstFailure: true,
35
+ returnErrorStrategy: "first",
36
+ responseStatus: 400,
37
+ rules: {
38
+ unique: UniqueRule,
39
+ requiredIf: RequiredIfRule,
40
+ required: RequiredRule,
41
+ localized: LocalizedRule,
42
+ string: StringRule,
43
+ object: ObjectRule,
44
+ confirmed: ConfirmedRule,
45
+ in: InRule,
46
+ min: MinRule,
47
+ max: MaxRule,
48
+ minLength: MinLengthRule,
49
+ length: LengthRule,
50
+ maxLength: MaxLengthRule,
51
+ email: EmailRule,
52
+ int: IntRule,
53
+ requiredWith: RequiredWithRule,
54
+ requiredWithAll: RequiredWithAllRule,
55
+ float: FloatRule,
56
+ number: NumberRule,
57
+ arrayOf: ArrayOfRule,
58
+ array: ArrayRule,
59
+ bool: BooleanRule,
60
+ boolean: BooleanRule,
61
+ url: UrlRule,
62
+ date: DateRule,
63
+ uploadable: UploadableRule,
64
+ scalar: ScalarRule,
65
+ stringify: StringifyRule,
66
+ file: FileRule,
67
+ },
68
+ keys: {
69
+ response: "messages",
70
+ inputKey: "key",
71
+ inputError: "error",
72
+ inputErrors: "errors",
73
+ },
74
+ };
75
+
76
+ export default validationConfigurations;
@@ -0,0 +1,30 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ESNext",
4
+ "lib": ["esnext"],
5
+ "allowJs": true,
6
+ "skipLibCheck": true,
7
+ "esModuleInterop": true,
8
+ "allowSyntheticDefaultImports": true,
9
+ "downlevelIteration": true,
10
+ "strict": true,
11
+ "forceConsistentCasingInFileNames": true,
12
+ "noFallthroughCasesInSwitch": true,
13
+ "module": "commonjs",
14
+ "moduleResolution": "node",
15
+ "jsx": "react-jsx",
16
+ "resolveJsonModule": true,
17
+ "isolatedModules": true,
18
+ "baseUrl": "./",
19
+ "paths": {
20
+ "app/*": ["src/app/*"],
21
+ "src/*": ["./src/*"],
22
+ "@core/*": ["src/core/*"],
23
+ "config": ["src/config/index.ts"],
24
+ "config/*": ["src/config/*"]
25
+ },
26
+ "noEmit": true
27
+ },
28
+ "include": ["src", "warlock.config.ts"],
29
+ "exclude": ["node_modules"]
30
+ }
@@ -0,0 +1,9 @@
1
+ import { registerJWTSecretGeneratorCommand } from "@warlock.js/auth";
2
+ import { defineConfig } from "@warlock.js/core";
3
+ import { registerPostmanCommand } from "@warlock.js/postman";
4
+
5
+ export default defineConfig({
6
+ cli: {
7
+ commands: [registerPostmanCommand(), registerJWTSecretGeneratorCommand()],
8
+ },
9
+ });