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.
- package/README.md +29 -0
- package/cjs/commands/create-new-app/get-app-path.d.ts +2 -0
- package/cjs/commands/create-new-app/get-app-path.d.ts.map +1 -0
- package/cjs/commands/create-new-app/get-app-path.js +8 -0
- package/cjs/commands/create-new-app/get-app-path.js.map +1 -0
- package/cjs/commands/create-new-app/index.d.ts +2 -0
- package/cjs/commands/create-new-app/index.d.ts.map +1 -0
- package/cjs/commands/create-new-app/index.js +42 -0
- package/cjs/commands/create-new-app/index.js.map +1 -0
- package/cjs/commands/create-new-app/select-app-type.d.ts +2 -0
- package/cjs/commands/create-new-app/select-app-type.d.ts.map +1 -0
- package/cjs/commands/create-new-app/types.d.ts +8 -0
- package/cjs/commands/create-new-app/types.d.ts.map +1 -0
- package/cjs/commands/create-warlock-app/index.d.ts +3 -0
- package/cjs/commands/create-warlock-app/index.d.ts.map +1 -0
- package/cjs/commands/create-warlock-app/index.js +18 -0
- package/cjs/commands/create-warlock-app/index.js.map +1 -0
- package/cjs/commands/vite-react/headless-ui/index.d.ts +3 -0
- package/cjs/commands/vite-react/headless-ui/index.d.ts.map +1 -0
- package/cjs/commands/vite-react/headless-ui/types.d.ts +4 -0
- package/cjs/commands/vite-react/headless-ui/types.d.ts.map +1 -0
- package/cjs/commands/vite-react/index.d.ts +3 -0
- package/cjs/commands/vite-react/index.d.ts.map +1 -0
- package/cjs/commands/vite-react/mantine/index.d.ts +3 -0
- package/cjs/commands/vite-react/mantine/index.d.ts.map +1 -0
- package/cjs/commands/vite-react/mantine/types.d.ts +4 -0
- package/cjs/commands/vite-react/mantine/types.d.ts.map +1 -0
- package/cjs/commands/vite-react/select-react-app.d.ts +4 -0
- package/cjs/commands/vite-react/select-react-app.d.ts.map +1 -0
- package/cjs/commands/vite-react/selectAppConfigurations.d.ts +3 -0
- package/cjs/commands/vite-react/selectAppConfigurations.d.ts.map +1 -0
- package/cjs/commands/vite-react/tailwind-css/index.d.ts +3 -0
- package/cjs/commands/vite-react/tailwind-css/index.d.ts.map +1 -0
- package/cjs/commands/vite-react/tailwind-css/types.d.ts +4 -0
- package/cjs/commands/vite-react/tailwind-css/types.d.ts.map +1 -0
- package/cjs/commands/vite-react/types.d.ts +4 -0
- package/cjs/commands/vite-react/types.d.ts.map +1 -0
- package/cjs/helpers/app.d.ts +51 -0
- package/cjs/helpers/app.d.ts.map +1 -0
- package/cjs/helpers/app.js +127 -0
- package/cjs/helpers/app.js.map +1 -0
- package/cjs/helpers/exec.d.ts +10 -0
- package/cjs/helpers/exec.d.ts.map +1 -0
- package/cjs/helpers/exec.js +69 -0
- package/cjs/helpers/exec.js.map +1 -0
- package/cjs/helpers/package-manager.d.ts +5 -0
- package/cjs/helpers/package-manager.d.ts.map +1 -0
- package/cjs/helpers/package-manager.js +16 -0
- package/cjs/helpers/package-manager.js.map +1 -0
- package/cjs/helpers/paths.d.ts +4 -0
- package/cjs/helpers/paths.d.ts.map +1 -0
- package/cjs/helpers/paths.js +5 -0
- package/cjs/helpers/paths.js.map +1 -0
- package/cjs/helpers/project-builder-helpers.d.ts +7 -0
- package/cjs/helpers/project-builder-helpers.d.ts.map +1 -0
- package/cjs/helpers/project-builder-helpers.js +44 -0
- package/cjs/helpers/project-builder-helpers.js.map +1 -0
- package/cjs/index.d.ts +2 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +7 -0
- package/cjs/index.js.map +1 -0
- package/create-app.js +5 -0
- package/esm/commands/create-new-app/get-app-path.d.ts +2 -0
- package/esm/commands/create-new-app/get-app-path.d.ts.map +1 -0
- package/esm/commands/create-new-app/get-app-path.js +8 -0
- package/esm/commands/create-new-app/get-app-path.js.map +1 -0
- package/esm/commands/create-new-app/index.d.ts +2 -0
- package/esm/commands/create-new-app/index.d.ts.map +1 -0
- package/esm/commands/create-new-app/index.js +42 -0
- package/esm/commands/create-new-app/index.js.map +1 -0
- package/esm/commands/create-new-app/select-app-type.d.ts +2 -0
- package/esm/commands/create-new-app/select-app-type.d.ts.map +1 -0
- package/esm/commands/create-new-app/types.d.ts +8 -0
- package/esm/commands/create-new-app/types.d.ts.map +1 -0
- package/esm/commands/create-warlock-app/index.d.ts +3 -0
- package/esm/commands/create-warlock-app/index.d.ts.map +1 -0
- package/esm/commands/create-warlock-app/index.js +18 -0
- package/esm/commands/create-warlock-app/index.js.map +1 -0
- package/esm/commands/vite-react/headless-ui/index.d.ts +3 -0
- package/esm/commands/vite-react/headless-ui/index.d.ts.map +1 -0
- package/esm/commands/vite-react/headless-ui/types.d.ts +4 -0
- package/esm/commands/vite-react/headless-ui/types.d.ts.map +1 -0
- package/esm/commands/vite-react/index.d.ts +3 -0
- package/esm/commands/vite-react/index.d.ts.map +1 -0
- package/esm/commands/vite-react/mantine/index.d.ts +3 -0
- package/esm/commands/vite-react/mantine/index.d.ts.map +1 -0
- package/esm/commands/vite-react/mantine/types.d.ts +4 -0
- package/esm/commands/vite-react/mantine/types.d.ts.map +1 -0
- package/esm/commands/vite-react/select-react-app.d.ts +4 -0
- package/esm/commands/vite-react/select-react-app.d.ts.map +1 -0
- package/esm/commands/vite-react/selectAppConfigurations.d.ts +3 -0
- package/esm/commands/vite-react/selectAppConfigurations.d.ts.map +1 -0
- package/esm/commands/vite-react/tailwind-css/index.d.ts +3 -0
- package/esm/commands/vite-react/tailwind-css/index.d.ts.map +1 -0
- package/esm/commands/vite-react/tailwind-css/types.d.ts +4 -0
- package/esm/commands/vite-react/tailwind-css/types.d.ts.map +1 -0
- package/esm/commands/vite-react/types.d.ts +4 -0
- package/esm/commands/vite-react/types.d.ts.map +1 -0
- package/esm/helpers/app.d.ts +51 -0
- package/esm/helpers/app.d.ts.map +1 -0
- package/esm/helpers/app.js +127 -0
- package/esm/helpers/app.js.map +1 -0
- package/esm/helpers/exec.d.ts +10 -0
- package/esm/helpers/exec.d.ts.map +1 -0
- package/esm/helpers/exec.js +69 -0
- package/esm/helpers/exec.js.map +1 -0
- package/esm/helpers/package-manager.d.ts +5 -0
- package/esm/helpers/package-manager.d.ts.map +1 -0
- package/esm/helpers/package-manager.js +16 -0
- package/esm/helpers/package-manager.js.map +1 -0
- package/esm/helpers/paths.d.ts +4 -0
- package/esm/helpers/paths.d.ts.map +1 -0
- package/esm/helpers/paths.js +5 -0
- package/esm/helpers/paths.js.map +1 -0
- package/esm/helpers/project-builder-helpers.d.ts +7 -0
- package/esm/helpers/project-builder-helpers.d.ts.map +1 -0
- package/esm/helpers/project-builder-helpers.js +44 -0
- package/esm/helpers/project-builder-helpers.js.map +1 -0
- package/esm/index.d.ts +2 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +7 -0
- package/esm/index.js.map +1 -0
- package/package.json +44 -0
- package/templates/warlock/.env.example +35 -0
- package/templates/warlock/.eslintrc.json +44 -0
- package/templates/warlock/.gitattributes +1 -0
- package/templates/warlock/.prettierrc.json +11 -0
- package/templates/warlock/README.md +57 -0
- package/templates/warlock/_.gitignore +7 -0
- package/templates/warlock/package.json +60 -0
- package/templates/warlock/src/app/main.ts +12 -0
- package/templates/warlock/src/app/uploads/routes.ts +27 -0
- package/templates/warlock/src/app/users/controllers/auth/activate-account.ts +48 -0
- package/templates/warlock/src/app/users/controllers/auth/admin-login.ts +40 -0
- package/templates/warlock/src/app/users/controllers/auth/create-account.ts +23 -0
- package/templates/warlock/src/app/users/controllers/auth/forget-password.ts +39 -0
- package/templates/warlock/src/app/users/controllers/auth/login.ts +49 -0
- package/templates/warlock/src/app/users/controllers/auth/logout.ts +10 -0
- package/templates/warlock/src/app/users/controllers/auth/resend-activation-code.ts +45 -0
- package/templates/warlock/src/app/users/controllers/auth/reset-password.ts +43 -0
- package/templates/warlock/src/app/users/controllers/auth/verify-forget-password-code.ts +18 -0
- package/templates/warlock/src/app/users/controllers/profile/change-password.ts +31 -0
- package/templates/warlock/src/app/users/controllers/profile/my-profile.ts +10 -0
- package/templates/warlock/src/app/users/controllers/profile/update-profile.ts +25 -0
- package/templates/warlock/src/app/users/controllers/restful-users.ts +27 -0
- package/templates/warlock/src/app/users/events/attach-user-to-response.ts +18 -0
- package/templates/warlock/src/app/users/events/register-current-user-to-model-authors.ts +28 -0
- package/templates/warlock/src/app/users/events/update-authors.ts +19 -0
- package/templates/warlock/src/app/users/mail/send-forget-password-email.ts +20 -0
- package/templates/warlock/src/app/users/models/user/index.ts +1 -0
- package/templates/warlock/src/app/users/models/user/migration.ts +15 -0
- package/templates/warlock/src/app/users/models/user/user.ts +54 -0
- package/templates/warlock/src/app/users/output/user-output.ts +12 -0
- package/templates/warlock/src/app/users/repositories/users-repository.ts +28 -0
- package/templates/warlock/src/app/users/routes.ts +58 -0
- package/templates/warlock/src/app/users/utils/locales.ts +16 -0
- package/templates/warlock/src/app/utils/output.ts +18 -0
- package/templates/warlock/src/app/utils/router.ts +104 -0
- package/templates/warlock/src/config/app.ts +12 -0
- package/templates/warlock/src/config/auth.ts +16 -0
- package/templates/warlock/src/config/cache.ts +33 -0
- package/templates/warlock/src/config/database.ts +14 -0
- package/templates/warlock/src/config/http.ts +22 -0
- package/templates/warlock/src/config/log.ts +19 -0
- package/templates/warlock/src/config/mail.ts +16 -0
- package/templates/warlock/src/config/uploads.ts +12 -0
- package/templates/warlock/src/config/validation.ts +76 -0
- package/templates/warlock/tsconfig.json +30 -0
- 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
|
+
});
|