arkos 2.0.0-next.13 → 2.0.0-next.16
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 +144 -145
- package/cli.js +1 -0
- package/dist/cjs/app.js +7 -0
- package/dist/cjs/app.js.map +1 -1
- package/dist/cjs/exports/error-handler/index.js +15 -0
- package/dist/cjs/exports/error-handler/index.js.map +1 -1
- package/dist/cjs/modules/auth/auth.router.js +3 -0
- package/dist/cjs/modules/auth/auth.router.js.map +1 -1
- package/dist/cjs/modules/auth/auth.service.js +2 -0
- package/dist/cjs/modules/auth/auth.service.js.map +1 -1
- package/dist/cjs/modules/base/base.controller.js +15 -3
- package/dist/cjs/modules/base/base.controller.js.map +1 -1
- package/dist/cjs/modules/base/base.middlewares.js +19 -12
- package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
- package/dist/cjs/modules/base/base.service.js +5 -1
- package/dist/cjs/modules/base/base.service.js.map +1 -1
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +9 -0
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
- package/dist/cjs/modules/error-handler/error-handler.controller.js +25 -42
- package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
- package/dist/cjs/modules/error-handler/utils/app-error.js +0 -1
- package/dist/cjs/modules/error-handler/utils/app-error.js.map +1 -1
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +8 -9
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
- package/dist/cjs/modules/error-handler/utils/errors.js +158 -0
- package/dist/cjs/modules/error-handler/utils/errors.js.map +1 -0
- package/dist/cjs/modules/error-handler/utils/multer-error-handler.js +39 -0
- package/dist/cjs/modules/error-handler/utils/multer-error-handler.js.map +1 -0
- package/dist/cjs/modules/file-upload/file-upload.controller.js +10 -14
- package/dist/cjs/modules/file-upload/file-upload.controller.js.map +1 -1
- package/dist/cjs/modules/file-upload/file-upload.router.js +2 -0
- package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/cjs/modules/swagger/swagger.router.js +8 -2
- package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/get-open-api-login-html.js +18 -0
- package/dist/cjs/modules/swagger/utils/get-open-api-login-html.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +5 -5
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -1
- package/dist/cjs/types/arkos-prisma-input.js.map +1 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/new-arkos-config.js.map +1 -1
- package/dist/cjs/types/router-config.js.map +1 -1
- package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js +86 -28
- package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js.map +1 -1
- package/dist/cjs/utils/arkos-router/index.js +11 -7
- package/dist/cjs/utils/arkos-router/index.js.map +1 -1
- package/dist/cjs/utils/arkos-router/types/index.js.map +1 -1
- package/dist/cjs/utils/arkos-router/types/upload-config.js.map +1 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +34 -28
- package/dist/cjs/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js +9 -6
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js.map +1 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +334 -77
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -1
- package/dist/cjs/utils/bundler.js.map +1 -1
- package/dist/cjs/utils/cli/build.js +2 -3
- package/dist/cjs/utils/cli/build.js.map +1 -1
- package/dist/cjs/utils/cli/dev.js +11 -6
- package/dist/cjs/utils/cli/dev.js.map +1 -1
- package/dist/cjs/utils/cli/export-auth-action.js +5 -4
- package/dist/cjs/utils/cli/export-auth-action.js.map +1 -1
- package/dist/cjs/utils/cli/generate.js +6 -8
- package/dist/cjs/utils/cli/generate.js.map +1 -1
- package/dist/cjs/utils/cli/index.js +22 -19
- package/dist/cjs/utils/cli/index.js.map +1 -1
- package/dist/cjs/utils/cli/start.js +4 -2
- package/dist/cjs/utils/cli/start.js.map +1 -1
- package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +19 -7
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js +7 -6
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js +4 -4
- package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generators.js +0 -6
- package/dist/cjs/utils/cli/utils/template-generators.js.map +1 -1
- package/dist/cjs/utils/define-config.js +5 -0
- package/dist/cjs/utils/define-config.js.map +1 -1
- package/dist/cjs/utils/dotenv.helpers.js +0 -6
- package/dist/cjs/utils/dotenv.helpers.js.map +1 -1
- package/dist/cjs/utils/features/api.features.js +23 -5
- package/dist/cjs/utils/features/api.features.js.map +1 -1
- package/dist/cjs/utils/helpers/arkos-config.helpers.js +22 -2
- package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/exit-error.js +1 -0
- package/dist/cjs/utils/helpers/exit-error.js.map +1 -1
- package/dist/cjs/utils/helpers/fs.helpers.js +25 -24
- package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/global.helpers.js +3 -2
- package/dist/cjs/utils/helpers/global.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/prisma.helpers.js +4 -5
- package/dist/cjs/utils/helpers/prisma.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/url-helpers.js +14 -0
- package/dist/cjs/utils/helpers/url-helpers.js.map +1 -0
- package/dist/cjs/utils/initialize-app.js +35 -6
- package/dist/cjs/utils/initialize-app.js.map +1 -1
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +12 -6
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +1 -1
- package/dist/cjs/utils/prisma/prisma-schema-parser.js +10 -3
- package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +1 -1
- package/dist/cjs/utils/setup-app.js +58 -41
- package/dist/cjs/utils/setup-app.js.map +1 -1
- package/dist/esm/app.js +6 -0
- package/dist/esm/app.js.map +1 -1
- package/dist/esm/exports/error-handler/index.js +1 -0
- package/dist/esm/exports/error-handler/index.js.map +1 -1
- package/dist/esm/modules/auth/auth.router.js +3 -0
- package/dist/esm/modules/auth/auth.router.js.map +1 -1
- package/dist/esm/modules/auth/auth.service.js +2 -0
- package/dist/esm/modules/auth/auth.service.js.map +1 -1
- package/dist/esm/modules/base/base.controller.js +15 -3
- package/dist/esm/modules/base/base.controller.js.map +1 -1
- package/dist/esm/modules/base/base.middlewares.js +19 -12
- package/dist/esm/modules/base/base.middlewares.js.map +1 -1
- package/dist/esm/modules/base/base.service.js +5 -1
- package/dist/esm/modules/base/base.service.js.map +1 -1
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +9 -0
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
- package/dist/esm/modules/error-handler/error-handler.controller.js +22 -42
- package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/app-error.js +0 -1
- package/dist/esm/modules/error-handler/utils/app-error.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +8 -9
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/errors.js +127 -0
- package/dist/esm/modules/error-handler/utils/errors.js.map +1 -0
- package/dist/esm/modules/error-handler/utils/multer-error-handler.js +34 -0
- package/dist/esm/modules/error-handler/utils/multer-error-handler.js.map +1 -0
- package/dist/esm/modules/file-upload/file-upload.controller.js +10 -14
- package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.router.js +2 -0
- package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/esm/modules/swagger/swagger.router.js +8 -2
- package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
- package/dist/esm/modules/swagger/utils/get-open-api-login-html.js +18 -0
- package/dist/esm/modules/swagger/utils/get-open-api-login-html.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +5 -5
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +1 -1
- package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -1
- package/dist/esm/types/arkos-prisma-input.js.map +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/new-arkos-config.js.map +1 -1
- package/dist/esm/types/router-config.js.map +1 -1
- package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js +86 -28
- package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js.map +1 -1
- package/dist/esm/utils/arkos-router/index.js +11 -7
- package/dist/esm/utils/arkos-router/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/upload-config.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +34 -28
- package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/index.js +9 -6
- package/dist/esm/utils/arkos-router/utils/helpers/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js +334 -77
- package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -1
- package/dist/esm/utils/bundler.js.map +1 -1
- package/dist/esm/utils/cli/build.js +3 -4
- package/dist/esm/utils/cli/build.js.map +1 -1
- package/dist/esm/utils/cli/dev.js +12 -7
- package/dist/esm/utils/cli/dev.js.map +1 -1
- package/dist/esm/utils/cli/export-auth-action.js +5 -4
- package/dist/esm/utils/cli/export-auth-action.js.map +1 -1
- package/dist/esm/utils/cli/generate.js +6 -8
- package/dist/esm/utils/cli/generate.js.map +1 -1
- package/dist/esm/utils/cli/index.js +22 -19
- package/dist/esm/utils/cli/index.js.map +1 -1
- package/dist/esm/utils/cli/start.js +4 -2
- package/dist/esm/utils/cli/start.js.map +1 -1
- package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +16 -7
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js +7 -6
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js +4 -4
- package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generators.js +0 -6
- package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
- package/dist/esm/utils/define-config.js +5 -0
- package/dist/esm/utils/define-config.js.map +1 -1
- package/dist/esm/utils/dotenv.helpers.js +0 -6
- package/dist/esm/utils/dotenv.helpers.js.map +1 -1
- package/dist/esm/utils/features/api.features.js +23 -5
- package/dist/esm/utils/features/api.features.js.map +1 -1
- package/dist/esm/utils/helpers/arkos-config.helpers.js +20 -2
- package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/exit-error.js +1 -0
- package/dist/esm/utils/helpers/exit-error.js.map +1 -1
- package/dist/esm/utils/helpers/fs.helpers.js +25 -24
- package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/global.helpers.js +1 -1
- package/dist/esm/utils/helpers/global.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/prisma.helpers.js +4 -5
- package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/url-helpers.js +11 -0
- package/dist/esm/utils/helpers/url-helpers.js.map +1 -0
- package/dist/esm/utils/initialize-app.js +35 -6
- package/dist/esm/utils/initialize-app.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js +12 -6
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-schema-parser.js +10 -3
- package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -1
- package/dist/esm/utils/setup-app.js +59 -42
- package/dist/esm/utils/setup-app.js.map +1 -1
- package/dist/types/app.d.ts +5 -6
- package/dist/types/exports/error-handler/index.d.ts +1 -0
- package/dist/types/modules/auth/auth.service.d.ts +2 -6
- package/dist/types/modules/base/base.service.d.ts +2 -1
- package/dist/types/modules/error-handler/utils/app-error.d.ts +0 -2
- package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +1 -1
- package/dist/types/modules/error-handler/utils/errors.d.ts +176 -0
- package/dist/types/modules/error-handler/utils/multer-error-handler.d.ts +7 -0
- package/dist/types/modules/file-upload/file-upload.controller.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +48 -2
- package/dist/types/types/arkos-prisma-input.d.ts +3 -2
- package/dist/types/types/index.d.ts +0 -21
- package/dist/types/types/new-arkos-config.d.ts +183 -14
- package/dist/types/types/router-config.d.ts +1 -1
- package/dist/types/utils/arkos-router/arkos-router-openapi-manager.d.ts +14 -1
- package/dist/types/utils/arkos-router/index.d.ts +76 -8
- package/dist/types/utils/arkos-router/types/index.d.ts +19 -6
- package/dist/types/utils/arkos-router/types/upload-config.d.ts +63 -7
- package/dist/types/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.d.ts +1 -1
- package/dist/types/utils/arkos-router/utils/helpers/index.d.ts +2 -0
- package/dist/types/utils/arkos-router/utils/helpers/upload-manager.d.ts +0 -36
- package/dist/types/utils/bundler.d.ts +1 -1
- package/dist/types/utils/cli/generate.d.ts +0 -1
- package/dist/types/utils/cli/start.d.ts +1 -1
- package/dist/types/utils/helpers/arkos-config.helpers.d.ts +2 -0
- package/dist/types/utils/helpers/fs.helpers.d.ts +1 -1
- package/dist/types/utils/helpers/global.helpers.d.ts +1 -0
- package/dist/types/utils/helpers/url-helpers.d.ts +1 -0
- package/dist/types/utils/prisma/prisma-schema-parser.d.ts +1 -0
- package/package.json +15 -15
- package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -39
- package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -32
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -36
- package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -29
- package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
- package/dist/types/utils/cli/utils/template-generator/templates/route-hook.template.d.ts +0 -2
- package/dist/types/utils/cli/utils/template-generator/templates/service-hook.template.d.ts +0 -2
|
@@ -1,6 +1,78 @@
|
|
|
1
1
|
import { RouterOptions } from "express";
|
|
2
2
|
import { IArkosRouter } from "./types";
|
|
3
3
|
import { OpenAPIV3 } from "openapi-types";
|
|
4
|
+
import { Arkos } from "../../types/arkos";
|
|
5
|
+
export type ArkosRouterOptions = {
|
|
6
|
+
/**
|
|
7
|
+
* Prefix to apply to all routes in this router.
|
|
8
|
+
* Nested routers inherit and concatenate prefixes from parent routers.
|
|
9
|
+
*
|
|
10
|
+
* @since 1.5.0-beta
|
|
11
|
+
* @example
|
|
12
|
+
* // All routes in this router will be prefixed with "/api"
|
|
13
|
+
* prefix: "/api"
|
|
14
|
+
*/
|
|
15
|
+
prefix?: string | RegExp | Array<string | RegExp>;
|
|
16
|
+
/**
|
|
17
|
+
* OpenAPI metadata to apply to all routes in this router.
|
|
18
|
+
* Nested routers inherit from parent routers unless explicitly overridden.
|
|
19
|
+
* Route-level openapi config fully replaces inherited values when defined.
|
|
20
|
+
*
|
|
21
|
+
* @since 1.6.0-beta
|
|
22
|
+
* @example
|
|
23
|
+
* openapi: {
|
|
24
|
+
* tags: ["Users"],
|
|
25
|
+
* security: [{ bearerAuth: [] }]
|
|
26
|
+
* }
|
|
27
|
+
*/
|
|
28
|
+
openapi?: {
|
|
29
|
+
/**
|
|
30
|
+
* Tags to apply to all routes in this router, used to group them in OpenAPI documentation.
|
|
31
|
+
* Route-level tags fully replaces this value when defined.
|
|
32
|
+
*
|
|
33
|
+
* @since 1.6.0-beta
|
|
34
|
+
* @example
|
|
35
|
+
* // Group all routes in this router under "Users"
|
|
36
|
+
* tags: ["Users"]
|
|
37
|
+
*/
|
|
38
|
+
tags?: string[];
|
|
39
|
+
/**
|
|
40
|
+
* Security requirements to apply to all routes in this router.
|
|
41
|
+
* Route-level security fully replaces this value when defined.
|
|
42
|
+
*
|
|
43
|
+
* @since 1.6.2-canary.1
|
|
44
|
+
* @example
|
|
45
|
+
* // Require bearer auth for all routes in this router
|
|
46
|
+
* security: [{ bearerAuth: [] }]
|
|
47
|
+
*
|
|
48
|
+
* // Explicitly make all routes public (overridable per route)
|
|
49
|
+
* security: []
|
|
50
|
+
*/
|
|
51
|
+
security?: OpenAPIV3.SecurityRequirementObject[];
|
|
52
|
+
/**
|
|
53
|
+
* Server definitions to apply to all routes in this router.
|
|
54
|
+
* Follows the OpenAPI 3.0 Server Object specification.
|
|
55
|
+
* Route-level servers fully replaces this value when defined.
|
|
56
|
+
*
|
|
57
|
+
* @since 1.6.2-canary.1
|
|
58
|
+
* @example
|
|
59
|
+
* servers: [{ url: "https://api.example.com/v2", description: "V2 API" }]
|
|
60
|
+
*/
|
|
61
|
+
servers?: OpenAPIV3.ServerObject[];
|
|
62
|
+
/**
|
|
63
|
+
* External documentation to apply to all routes in this router.
|
|
64
|
+
* Route-level externalDocs fully replaces this value when defined.
|
|
65
|
+
*
|
|
66
|
+
* @since 1.6.2-canary.1
|
|
67
|
+
* @example
|
|
68
|
+
* externalDocs: {
|
|
69
|
+
* description: "Find more information here",
|
|
70
|
+
* url: "https://docs.example.com/users"
|
|
71
|
+
* }
|
|
72
|
+
*/
|
|
73
|
+
externalDocs?: OpenAPIV3.ExternalDocumentationObject;
|
|
74
|
+
};
|
|
75
|
+
};
|
|
4
76
|
/**
|
|
5
77
|
* Creates an enhanced Express Router with features like OpenAPI documentation capabilities and smart data validation.
|
|
6
78
|
*
|
|
@@ -23,15 +95,11 @@ import { OpenAPIV3 } from "openapi-types";
|
|
|
23
95
|
*
|
|
24
96
|
* @returns {IArkosRouter} A proxied Express Router instance with enhanced OpenAPI capabilities
|
|
25
97
|
*
|
|
26
|
-
* @see {@link
|
|
98
|
+
* @see {@link https://www.arkosjs.com/docs/reference/arkos-router} for configuration options
|
|
99
|
+
* @since 1.4.0-beta
|
|
27
100
|
*/
|
|
28
|
-
export default function ArkosRouter(options?: RouterOptions &
|
|
29
|
-
|
|
30
|
-
openapi?: {
|
|
31
|
-
tags?: string[];
|
|
32
|
-
};
|
|
33
|
-
}): IArkosRouter;
|
|
34
|
-
export declare function generateOpenAPIFromApp(app: any): Record<string, Record<string, Partial<{
|
|
101
|
+
export default function ArkosRouter(options?: RouterOptions & ArkosRouterOptions): IArkosRouter;
|
|
102
|
+
export declare function generateOpenAPIFromApp(app: Arkos): Record<string, Record<string, Partial<{
|
|
35
103
|
tags?: string[];
|
|
36
104
|
summary?: string;
|
|
37
105
|
description?: string;
|
|
@@ -8,11 +8,22 @@ import compression from "compression";
|
|
|
8
8
|
import { OpenApiConfig } from "./openapi-config";
|
|
9
9
|
import { UploadConfig } from "./upload-config";
|
|
10
10
|
import { BodyParserConfig } from "./body-parser-config";
|
|
11
|
+
import { ArkosRouterOptions } from "..";
|
|
11
12
|
export type ArkosUseConfig = Pick<ArkosRouteConfig, "authentication" | "rateLimit" | "compression" | "queryParser" | "bodyParser" | "disabled"> & {
|
|
12
13
|
path?: PathParams;
|
|
13
14
|
};
|
|
14
15
|
type InferValidationType<T, Fallback> = T extends ZodSchema ? z.infer<T> : T extends new (...args: any[]) => infer I ? I : Fallback;
|
|
15
16
|
export type PathParams = string | RegExp | Array<string | RegExp>;
|
|
17
|
+
export type InternalIArkosRouter = IArkosRouter & {
|
|
18
|
+
_arkos: {
|
|
19
|
+
options?: ArkosRouterOptions;
|
|
20
|
+
routes: Array<{
|
|
21
|
+
handler: ArkosAnyRequestHandler;
|
|
22
|
+
config: ArkosRouteConfig;
|
|
23
|
+
method: string;
|
|
24
|
+
}>;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
16
27
|
export type ArkosAnyRequestHandler = ArkosRequestHandler | ArkosErrorRequestHandler | Array<ArkosRequestHandler | ArkosErrorRequestHandler>;
|
|
17
28
|
/**
|
|
18
29
|
* Handler function for HTTP methods that accepts route configuration and request handlers.
|
|
@@ -23,13 +34,13 @@ export type ArkosAnyRequestHandler = ArkosRequestHandler | ArkosErrorRequestHand
|
|
|
23
34
|
*/
|
|
24
35
|
type RouterMethodHandler<T> = IRouterHandler<T> & IRouterMatcher<T> & {
|
|
25
36
|
(config: PathParams, ...handlers: Array<ArkosAnyRequestHandler>): T;
|
|
26
|
-
<TQuery extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any>(config: ArkosRouteConfig<TQuery, TBody, TParams>, ...handlers: Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any> | Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any>>>): T;
|
|
27
|
-
<TQuery extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any>(config: ArkosRouteConfig<TQuery, TBody, TParams>, ...handlers: Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any> | Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any>>>): T;
|
|
37
|
+
<TQuery extends ZodSchema | (new (...args: any[]) => object) | null | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | null | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | null | false | undefined = any>(config: ArkosRouteConfig<TQuery, TBody, TParams>, ...handlers: Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any> | Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any>>>): T;
|
|
38
|
+
<TQuery extends ZodSchema | (new (...args: any[]) => object) | null | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | null | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | null | false | undefined = any>(config: ArkosRouteConfig<TQuery, TBody, TParams>, ...handlers: Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any> | Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any>>>): T;
|
|
28
39
|
};
|
|
29
40
|
export type ArkosRouteMethodHandler<T> = {
|
|
30
41
|
(config: ArkosAnyRequestHandler | Omit<ArkosRouteConfig, "path">, ...handlers: Array<ArkosRequestHandler | ArkosErrorRequestHandler | Array<ArkosRequestHandler | ArkosErrorRequestHandler>>): T;
|
|
31
|
-
<TQuery extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any>(config: Omit<ArkosRouteConfig<TQuery, TBody, TParams>, "path">, ...handlers: Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals> | Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals>>>): T;
|
|
32
|
-
<TQuery extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any>(config: Omit<ArkosRouteConfig<TQuery, TBody, TParams>, "path">, ...handlers: Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals> | Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals>>>): T;
|
|
42
|
+
<TQuery extends ZodSchema | (new (...args: any[]) => object) | null | null | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | null | null | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | null | null | false | undefined = any>(config: Omit<ArkosRouteConfig<TQuery, TBody, TParams>, "path">, ...handlers: Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals> | Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals>>>): T;
|
|
43
|
+
<TQuery extends ZodSchema | (new (...args: any[]) => object) | null | null | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | null | null | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | null | null | false | undefined = any>(config: Omit<ArkosRouteConfig<TQuery, TBody, TParams>, "path">, ...handlers: Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals> | Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals>>>): T;
|
|
33
44
|
};
|
|
34
45
|
/**
|
|
35
46
|
* Handler function for `use` that accepts route configuration and middleware handlers.
|
|
@@ -41,6 +52,7 @@ export type ArkosRouteMethodHandler<T> = {
|
|
|
41
52
|
export type UseMethodHandler<T> = IRouterHandler<T> & IRouterMatcher<T> & {
|
|
42
53
|
(config: ArkosUseConfig, ...handlers: Array<ArkosRequestHandler | Array<ArkosRequestHandler>>): T;
|
|
43
54
|
(config: ArkosUseConfig, ...handlers: Array<ArkosErrorRequestHandler | Array<ArkosErrorRequestHandler>>): T;
|
|
55
|
+
(...handlers: Array<ArkosRequestHandler | Array<ArkosRequestHandler>>): T;
|
|
44
56
|
};
|
|
45
57
|
export interface IArkosRoute extends IRoute {
|
|
46
58
|
/** GET method handler with route configuration support */
|
|
@@ -110,7 +122,7 @@ export interface IArkosRouter extends IRouter {
|
|
|
110
122
|
/**
|
|
111
123
|
* Configuration object for defining routes in Arkos.js.
|
|
112
124
|
*/
|
|
113
|
-
export type ArkosRouteConfig<TQuery extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any> = {
|
|
125
|
+
export type ArkosRouteConfig<TQuery extends ZodSchema | (new (...args: any[]) => object) | null | false | null | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | null | false | null | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | null | false | null | undefined = any> = {
|
|
114
126
|
/**
|
|
115
127
|
* Disables the route by not mounting it internally.
|
|
116
128
|
*/
|
|
@@ -139,10 +151,11 @@ export type ArkosRouteConfig<TQuery extends ZodSchema | (new (...args: any[]) =>
|
|
|
139
151
|
*
|
|
140
152
|
* @remarks
|
|
141
153
|
* - Set to `false` to disable all validation.
|
|
154
|
+
* - Set to `null` to forbidden all request inputs.
|
|
142
155
|
* - Provide an object with `query`, `body`, and/or `params` properties to validate specific parts of the request.
|
|
143
156
|
* - Each property accepts a Zod schema, a class constructor, or `false` to disable validation for that part.
|
|
144
157
|
*/
|
|
145
|
-
validation?: false | {
|
|
158
|
+
validation?: false | null | {
|
|
146
159
|
query?: TQuery;
|
|
147
160
|
body?: TBody;
|
|
148
161
|
params?: TParams;
|
|
@@ -16,7 +16,7 @@ export type UploadConfig =
|
|
|
16
16
|
*/
|
|
17
17
|
({
|
|
18
18
|
type: "single";
|
|
19
|
-
/** Name of the multipart form field to process */
|
|
19
|
+
/** Name of the multipart form field to process. Supports bracket notation, including nested array paths (e.g. "banners[][image]") */
|
|
20
20
|
field: string;
|
|
21
21
|
} & ArkosRouterBaseUploadConfig)
|
|
22
22
|
/**
|
|
@@ -39,10 +39,12 @@ export type UploadConfig =
|
|
|
39
39
|
*/
|
|
40
40
|
| ({
|
|
41
41
|
type: "array";
|
|
42
|
-
/** Shared name of the multipart form fields to process */
|
|
42
|
+
/** Shared name of the multipart form fields to process. Supports bracket notation, including nested array paths (e.g. "banners[][images]") */
|
|
43
43
|
field: string;
|
|
44
44
|
/** Maximum number of files to process (defaults to framework config) */
|
|
45
45
|
maxCount?: number;
|
|
46
|
+
/** Minimum number of files required */
|
|
47
|
+
minCount?: number;
|
|
46
48
|
} & ArkosRouterBaseUploadConfig)
|
|
47
49
|
/**
|
|
48
50
|
* Creates middleware that processes multiple files associated with the
|
|
@@ -52,18 +54,25 @@ export type UploadConfig =
|
|
|
52
54
|
* maps each field name to an array of the associated file information
|
|
53
55
|
* objects.
|
|
54
56
|
*
|
|
55
|
-
*
|
|
57
|
+
* Each field entry is a full single or array upload config with a `name`
|
|
58
|
+
* property. Field names support bracket notation, including nested array
|
|
59
|
+
* paths (e.g. "banners[][images]").
|
|
56
60
|
*
|
|
57
61
|
* @example
|
|
58
62
|
* uploads: {
|
|
59
63
|
* type: "fields",
|
|
60
64
|
* fields: [
|
|
61
|
-
* {
|
|
62
|
-
* {
|
|
65
|
+
* { name: "avatar", type: "single", uploadDir: "images" },
|
|
66
|
+
* { name: "resume", type: "single", uploadDir: "documents" },
|
|
67
|
+
* { name: "banners[][images]", type: "array", maxCount: 5, uploadDir: "banners" }
|
|
63
68
|
* ]
|
|
64
69
|
* }
|
|
65
70
|
*/
|
|
66
71
|
| ({
|
|
72
|
+
type: "fields";
|
|
73
|
+
/** Array of field configurations describing multipart form fields to process */
|
|
74
|
+
fields: UploadConfigFieldEntry[];
|
|
75
|
+
} & Pick<ArkosRouterBaseUploadConfig, "deleteOnError">) | ({
|
|
67
76
|
type: "fields";
|
|
68
77
|
/** Array of field configurations describing multipart form fields to process */
|
|
69
78
|
fields: {
|
|
@@ -71,12 +80,59 @@ export type UploadConfig =
|
|
|
71
80
|
name: string;
|
|
72
81
|
/** Maximum number of files for this field (defaults to framework config) */
|
|
73
82
|
maxCount?: number;
|
|
83
|
+
minCount?: number;
|
|
74
84
|
}[];
|
|
75
85
|
} & ArkosRouterBaseUploadConfig);
|
|
76
86
|
/**
|
|
77
|
-
*
|
|
78
|
-
*
|
|
87
|
+
* A single field entry inside a `fields` upload config.
|
|
88
|
+
* Each entry is a full single or array upload config with an additional
|
|
89
|
+
* `name` property identifying the form field.
|
|
90
|
+
*
|
|
91
|
+
* Field names support bracket notation, including nested array paths
|
|
92
|
+
* (e.g. "banners[][images]"). For nested array paths, multer validation
|
|
93
|
+
* is bypassed and constraints (allowedFileTypes, maxSize, minCount, maxCount)
|
|
94
|
+
* are enforced per group after upload.
|
|
95
|
+
*/
|
|
96
|
+
export type UploadConfigFieldEntry =
|
|
97
|
+
/**
|
|
98
|
+
* A single-file field entry.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* { name: "avatar", type: "single", uploadDir: "images", required: true }
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* // nested array path — one image per banner
|
|
105
|
+
* { name: "banners[][image]", type: "single", uploadDir: "banners" }
|
|
106
|
+
*/
|
|
107
|
+
({
|
|
108
|
+
/** Name of the form field. Supports bracket notation including nested array paths. */
|
|
109
|
+
name: string;
|
|
110
|
+
type: "single";
|
|
111
|
+
} & Omit<ArkosRouterBaseUploadConfig, "deleteOnError">)
|
|
112
|
+
/**
|
|
113
|
+
* A multi-file field entry.
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* { name: "gallery", type: "array", maxCount: 6, uploadDir: "gallery" }
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* // nested array path — multiple images per banner, min 1 max 5
|
|
120
|
+
* { name: "banners[][images]", type: "array", minCount: 1, maxCount: 5, uploadDir: "banners" }
|
|
79
121
|
*/
|
|
122
|
+
| ({
|
|
123
|
+
/** Name of the form field. Supports bracket notation including nested array paths. */
|
|
124
|
+
name: string;
|
|
125
|
+
type?: "array";
|
|
126
|
+
/** Maximum number of files for this field (defaults to framework config) */
|
|
127
|
+
maxCount?: number;
|
|
128
|
+
/** Minimum number of files required for this field */
|
|
129
|
+
minCount?: number;
|
|
130
|
+
} & Omit<ArkosRouterBaseUploadConfig, "deleteOnError">); /**
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Base configuration options for file uploads.
|
|
134
|
+
* These settings can override framework-level defaults for specific routes.
|
|
135
|
+
*/
|
|
80
136
|
export type ArkosRouterBaseUploadConfig = {
|
|
81
137
|
/**
|
|
82
138
|
* Directory category where files will be stored.
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { ArkosRouteConfig } from "../../types";
|
|
2
|
+
import { ArkosRouterOptions } from "../..";
|
|
2
3
|
export declare function extractArkosRoutes(app: any, basePath?: string): Array<{
|
|
3
4
|
path: string;
|
|
4
5
|
method: string;
|
|
5
6
|
config?: ArkosRouteConfig;
|
|
7
|
+
routeOptions?: ArkosRouterOptions;
|
|
6
8
|
}>;
|
|
7
9
|
export declare function getMiddlewareStack(config: ArkosRouteConfig | Omit<ArkosRouteConfig, "path">): any[];
|
|
8
10
|
/**
|
|
@@ -5,45 +5,9 @@ declare class UploadManager {
|
|
|
5
5
|
private getUpload;
|
|
6
6
|
getMiddleware(config: UploadConfig): RequestHandler;
|
|
7
7
|
handleUpload(config: UploadConfig, oldFilePath?: string): any;
|
|
8
|
-
/**
|
|
9
|
-
* Validates that all required upload files are present in the request.
|
|
10
|
-
* Checks req.file or req.files based on upload configuration type.
|
|
11
|
-
*
|
|
12
|
-
* @param {UploadConfig} uploadConfig - The upload configuration from config.experimental.uploads
|
|
13
|
-
* @throws {AppError} If required files are missing
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* // Single file upload - checks req.file
|
|
17
|
-
* validateRequiredFiles(
|
|
18
|
-
* { type: 'single', field: 'avatar', required: true },
|
|
19
|
-
* req,
|
|
20
|
-
* '/users/:id/avatar'
|
|
21
|
-
* )
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* // Array file upload - checks req.files array
|
|
25
|
-
* validateRequiredFiles(
|
|
26
|
-
* { type: 'array', field: 'photos', required: true },
|
|
27
|
-
* req,
|
|
28
|
-
* '/gallery/upload'
|
|
29
|
-
* )
|
|
30
|
-
*
|
|
31
|
-
* @example
|
|
32
|
-
* // Multiple fields - checks req.files object
|
|
33
|
-
* validateRequiredFiles(
|
|
34
|
-
* { type: 'fields', fields: [{ name: 'avatar' }, { name: 'resume' }], required: true },
|
|
35
|
-
* req,
|
|
36
|
-
* '/profile/upload'
|
|
37
|
-
* )
|
|
38
|
-
*/
|
|
39
8
|
validateRequiredFiles(uploadConfig: UploadConfig): any;
|
|
40
9
|
handleFileCleanup(config: UploadConfig): (err: any, req: ArkosRequest, _: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
|
|
41
10
|
handlePostUpload(config: UploadConfig): any;
|
|
42
|
-
/**
|
|
43
|
-
* Validates the file's type and MIME type.
|
|
44
|
-
* @param {Express.Multer.File} file - The uploaded file.
|
|
45
|
-
* @param {Function} cb - The callback function to indicate if file is valid.
|
|
46
|
-
*/
|
|
47
11
|
private fileFilter;
|
|
48
12
|
}
|
|
49
13
|
declare const uploadManager: UploadManager;
|
|
@@ -87,7 +87,7 @@ export declare class Bundler {
|
|
|
87
87
|
* @param filePath - Absolute path to the JSON file
|
|
88
88
|
* @returns Parsed object, or empty object if parsing fails
|
|
89
89
|
*/
|
|
90
|
-
|
|
90
|
+
readJsonWithComments(filePath: string): any;
|
|
91
91
|
/**
|
|
92
92
|
* Resolves a single import path to its final rewritten form.
|
|
93
93
|
*
|
|
@@ -5,7 +5,7 @@ interface StartOptions {
|
|
|
5
5
|
/**
|
|
6
6
|
* Production start command for the arkos CLI
|
|
7
7
|
*/
|
|
8
|
-
export declare function startCommand(options?: StartOptions): void
|
|
8
|
+
export declare function startCommand(options?: StartOptions): Promise<void>;
|
|
9
9
|
/**
|
|
10
10
|
* Help function to help other processes to terminate the production server child process
|
|
11
11
|
*/
|
|
@@ -12,4 +12,4 @@ export declare let userFileExtension: "ts" | "js" | undefined;
|
|
|
12
12
|
* Returns 'ts' when TypeScript config exists and not in build mode, otherwise 'js'
|
|
13
13
|
* @returns 'ts' | 'js'
|
|
14
14
|
*/
|
|
15
|
-
export declare const getUserFileExtension: () => "ts" | "js";
|
|
15
|
+
export declare const getUserFileExtension: (root?: string) => "ts" | "js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function lenientDecode(str: string): string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "arkos",
|
|
3
|
-
"version": "2.0.0-next.
|
|
3
|
+
"version": "2.0.0-next.16",
|
|
4
4
|
"description": "The Express & Prisma RESTful Framework",
|
|
5
5
|
"main": "dist/cjs/exports/index.js",
|
|
6
6
|
"module": "dist/esm/exports/index.js",
|
|
@@ -103,7 +103,6 @@
|
|
|
103
103
|
"test": "jest",
|
|
104
104
|
"test:watch": "jest --watch",
|
|
105
105
|
"test:coverage": "jest --coverage",
|
|
106
|
-
"test:ui": "vitest --ui",
|
|
107
106
|
"test:create": "tsx src/scripts/create-test.ts",
|
|
108
107
|
"publish:test": "npm publish --tag test",
|
|
109
108
|
"publish:beta": "npm publish --tag beta",
|
|
@@ -147,13 +146,13 @@
|
|
|
147
146
|
"@types/compression": "1.7.5",
|
|
148
147
|
"@types/cookie-parser": "1.4.8",
|
|
149
148
|
"@types/cors": "2.8.17",
|
|
150
|
-
"@types/express": "
|
|
149
|
+
"@types/express": "4.17.25",
|
|
151
150
|
"@types/html-to-text": "9.0.4",
|
|
152
151
|
"@types/jest": "29.5.14",
|
|
153
152
|
"@types/jsonwebtoken": "9.0.9",
|
|
154
153
|
"@types/multer": "2.0.0",
|
|
155
154
|
"@types/node": "22.13.13",
|
|
156
|
-
"@types/nodemailer": "
|
|
155
|
+
"@types/nodemailer": "8.0.0",
|
|
157
156
|
"@types/pluralize": "0.0.33",
|
|
158
157
|
"@types/swagger-jsdoc": "6.0.4",
|
|
159
158
|
"@typescript-eslint/eslint-plugin": "6.0.0",
|
|
@@ -166,11 +165,11 @@
|
|
|
166
165
|
"openapi-types": "12.1.3",
|
|
167
166
|
"prisma": "6.19.2",
|
|
168
167
|
"ts-jest": "29.3.1",
|
|
168
|
+
"ts-node": "^10.9.2",
|
|
169
169
|
"ts-prune": "0.10.3",
|
|
170
170
|
"tsx": "4.20.3",
|
|
171
171
|
"type-fest": "4.41.0",
|
|
172
|
-
"typescript": "5.8.2"
|
|
173
|
-
"vitest": "3.2.4"
|
|
172
|
+
"typescript": "5.8.2"
|
|
174
173
|
},
|
|
175
174
|
"dependencies": {
|
|
176
175
|
"chokidar": "4.0.3",
|
|
@@ -179,24 +178,25 @@
|
|
|
179
178
|
},
|
|
180
179
|
"peerDependencies": {
|
|
181
180
|
"@prisma/client": "6.19.2",
|
|
181
|
+
"@scalar/api-reference": "1.55.3",
|
|
182
182
|
"@scalar/express-api-reference": "0.8.35",
|
|
183
183
|
"bcryptjs": "3.0.2",
|
|
184
184
|
"class-transformer": "0.5.1",
|
|
185
185
|
"class-validator": "0.14.1",
|
|
186
186
|
"class-validator-jsonschema": "5.0.2",
|
|
187
|
-
"compression": "1.8.
|
|
187
|
+
"compression": "1.8.1",
|
|
188
188
|
"cookie-parser": "1.4.7",
|
|
189
|
-
"cors": "2.8.
|
|
190
|
-
"dotenv": "
|
|
191
|
-
"dotenv-expand": "
|
|
189
|
+
"cors": "2.8.6",
|
|
190
|
+
"dotenv": "17.4.2",
|
|
191
|
+
"dotenv-expand": "13.0.0",
|
|
192
192
|
"express": "4.22.1",
|
|
193
|
-
"express-rate-limit": "
|
|
193
|
+
"express-rate-limit": "8.4.1",
|
|
194
194
|
"html-to-text": "9.0.5",
|
|
195
|
-
"jsonwebtoken": "9.0.
|
|
195
|
+
"jsonwebtoken": "9.0.3",
|
|
196
196
|
"mimetype": "0.0.8",
|
|
197
|
-
"
|
|
198
|
-
"
|
|
199
|
-
"
|
|
197
|
+
"nodemailer": "8.0.7",
|
|
198
|
+
"sharp": "0.34.5",
|
|
199
|
+
"multer": "2.1.1",
|
|
200
200
|
"swagger-jsdoc": "6.2.8",
|
|
201
201
|
"zod": "3.24.2",
|
|
202
202
|
"zod-to-json-schema": "3.24.6"
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateRouteHookTemplate = generateRouteHookTemplate;
|
|
4
|
-
function generateRouteHookTemplate(options) {
|
|
5
|
-
const { modelName } = options;
|
|
6
|
-
const isAuthModule = modelName.kebab === "auth";
|
|
7
|
-
const isFileUploadModule = modelName.kebab === "file-upload" || modelName.kebab === "fileUpload";
|
|
8
|
-
const moduleType = isAuthModule
|
|
9
|
-
? `"auth"`
|
|
10
|
-
: isFileUploadModule
|
|
11
|
-
? `"file-upload"`
|
|
12
|
-
: `"${modelName.kebab}"`;
|
|
13
|
-
const methods = isAuthModule
|
|
14
|
-
? ["getMe", "login", "logout", "signup", "updateMe", "updatePassword"]
|
|
15
|
-
: isFileUploadModule
|
|
16
|
-
? ["findFile", "uploadFile", "updateFile", "deleteFile"]
|
|
17
|
-
: [
|
|
18
|
-
"createOne",
|
|
19
|
-
"findOne",
|
|
20
|
-
"findMany",
|
|
21
|
-
"updateOne",
|
|
22
|
-
"deleteOne",
|
|
23
|
-
"createMany",
|
|
24
|
-
"updateMany",
|
|
25
|
-
"deleteMany",
|
|
26
|
-
];
|
|
27
|
-
const methodCalls = methods
|
|
28
|
-
.map((m) => `${modelName.camel}RouteHook.${m}({});`)
|
|
29
|
-
.join("\n\n");
|
|
30
|
-
return `import { ArkosRouteHook } from 'arkos';
|
|
31
|
-
|
|
32
|
-
const ${modelName.camel}RouteHook = ArkosRouteHook(${moduleType});
|
|
33
|
-
|
|
34
|
-
${methodCalls}
|
|
35
|
-
|
|
36
|
-
export default ${modelName.camel}RouteHook;
|
|
37
|
-
`;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=route-hook.template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"route-hook.template.js","sourceRoot":"","sources":["../../../../../../../src/utils/cli/utils/template-generator/templates/route-hook.template.ts"],"names":[],"mappings":";;AAEA,8DAwCC;AAxCD,SAAgB,yBAAyB,CAAC,OAAwB;IAChE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC;IAChD,MAAM,kBAAkB,GACtB,SAAS,CAAC,KAAK,KAAK,aAAa,IAAI,SAAS,CAAC,KAAK,KAAK,YAAY,CAAC;IAExE,MAAM,UAAU,GAAG,YAAY;QAC7B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,kBAAkB;YAClB,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC;IAE7B,MAAM,OAAO,GAAG,YAAY;QAC1B,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,CAAC;QACtE,CAAC,CAAC,kBAAkB;YAClB,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;YACxD,CAAC,CAAC;gBACE,WAAW;gBACX,SAAS;gBACT,UAAU;gBACV,WAAW;gBACX,WAAW;gBACX,YAAY;gBACZ,YAAY;gBACZ,YAAY;aACb,CAAC;IAER,MAAM,WAAW,GAAG,OAAO;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,aAAa,CAAC,OAAO,CAAC;SACnD,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,OAAO;;QAED,SAAS,CAAC,KAAK,8BAA8B,UAAU;;EAE7D,WAAW;;iBAEI,SAAS,CAAC,KAAK;CAC/B,CAAC;AACF,CAAC","sourcesContent":["import { TemplateOptions } from \"../../template-generators\";\n\nexport function generateRouteHookTemplate(options: TemplateOptions): string {\n const { modelName } = options;\n\n const isAuthModule = modelName.kebab === \"auth\";\n const isFileUploadModule =\n modelName.kebab === \"file-upload\" || modelName.kebab === \"fileUpload\";\n\n const moduleType = isAuthModule\n ? `\"auth\"`\n : isFileUploadModule\n ? `\"file-upload\"`\n : `\"${modelName.kebab}\"`;\n\n const methods = isAuthModule\n ? [\"getMe\", \"login\", \"logout\", \"signup\", \"updateMe\", \"updatePassword\"]\n : isFileUploadModule\n ? [\"findFile\", \"uploadFile\", \"updateFile\", \"deleteFile\"]\n : [\n \"createOne\",\n \"findOne\",\n \"findMany\",\n \"updateOne\",\n \"deleteOne\",\n \"createMany\",\n \"updateMany\",\n \"deleteMany\",\n ];\n\n const methodCalls = methods\n .map((m) => `${modelName.camel}RouteHook.${m}({});`)\n .join(\"\\n\\n\");\n\n return `import { ArkosRouteHook } from 'arkos';\n\nconst ${modelName.camel}RouteHook = ArkosRouteHook(${moduleType});\n\n${methodCalls}\n\nexport default ${modelName.camel}RouteHook;\n`;\n}\n"]}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateServiceHookTemplate = generateServiceHookTemplate;
|
|
4
|
-
function generateServiceHookTemplate(options) {
|
|
5
|
-
const { modelName } = options;
|
|
6
|
-
const methods = [
|
|
7
|
-
"createOne",
|
|
8
|
-
"createMany",
|
|
9
|
-
"count",
|
|
10
|
-
"findMany",
|
|
11
|
-
"findOne",
|
|
12
|
-
"findById",
|
|
13
|
-
"updateOne",
|
|
14
|
-
"updateById",
|
|
15
|
-
"updateMany",
|
|
16
|
-
"deleteOne",
|
|
17
|
-
"deleteById",
|
|
18
|
-
"deleteMany",
|
|
19
|
-
];
|
|
20
|
-
const methodCalls = methods
|
|
21
|
-
.map((m) => `${modelName.camel}ServiceHook.${m}({});`)
|
|
22
|
-
.join("\n\n");
|
|
23
|
-
return `import { ArkosServiceHook } from 'arkos';
|
|
24
|
-
|
|
25
|
-
const ${modelName.camel}ServiceHook = ArkosServiceHook("${modelName.kebab}");
|
|
26
|
-
|
|
27
|
-
${methodCalls}
|
|
28
|
-
|
|
29
|
-
export default ${modelName.camel}ServiceHook;
|
|
30
|
-
`;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=service-hook.template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"service-hook.template.js","sourceRoot":"","sources":["../../../../../../../src/utils/cli/utils/template-generator/templates/service-hook.template.ts"],"names":[],"mappings":";;AAEA,kEA8BC;AA9BD,SAAgB,2BAA2B,CAAC,OAAwB;IAClE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,MAAM,OAAO,GAAG;QACd,WAAW;QACX,YAAY;QACZ,OAAO;QACP,UAAU;QACV,SAAS;QACT,UAAU;QACV,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,YAAY;KACb,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,eAAe,CAAC,OAAO,CAAC;SACrD,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,OAAO;;QAED,SAAS,CAAC,KAAK,mCAAmC,SAAS,CAAC,KAAK;;EAEvE,WAAW;;iBAEI,SAAS,CAAC,KAAK;CAC/B,CAAC;AACF,CAAC","sourcesContent":["import { TemplateOptions } from \"../../template-generators\";\n\nexport function generateServiceHookTemplate(options: TemplateOptions): string {\n const { modelName } = options;\n\n const methods = [\n \"createOne\",\n \"createMany\",\n \"count\",\n \"findMany\",\n \"findOne\",\n \"findById\",\n \"updateOne\",\n \"updateById\",\n \"updateMany\",\n \"deleteOne\",\n \"deleteById\",\n \"deleteMany\",\n ];\n\n const methodCalls = methods\n .map((m) => `${modelName.camel}ServiceHook.${m}({});`)\n .join(\"\\n\\n\");\n\n return `import { ArkosServiceHook } from 'arkos';\n\nconst ${modelName.camel}ServiceHook = ArkosServiceHook(\"${modelName.kebab}\");\n\n${methodCalls}\n\nexport default ${modelName.camel}ServiceHook;\n`;\n}\n"]}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
export function generateRouteHookTemplate(options) {
|
|
2
|
-
const { modelName } = options;
|
|
3
|
-
const isAuthModule = modelName.kebab === "auth";
|
|
4
|
-
const isFileUploadModule = modelName.kebab === "file-upload" || modelName.kebab === "fileUpload";
|
|
5
|
-
const moduleType = isAuthModule
|
|
6
|
-
? `"auth"`
|
|
7
|
-
: isFileUploadModule
|
|
8
|
-
? `"file-upload"`
|
|
9
|
-
: `"${modelName.kebab}"`;
|
|
10
|
-
const methods = isAuthModule
|
|
11
|
-
? ["getMe", "login", "logout", "signup", "updateMe", "updatePassword"]
|
|
12
|
-
: isFileUploadModule
|
|
13
|
-
? ["findFile", "uploadFile", "updateFile", "deleteFile"]
|
|
14
|
-
: [
|
|
15
|
-
"createOne",
|
|
16
|
-
"findOne",
|
|
17
|
-
"findMany",
|
|
18
|
-
"updateOne",
|
|
19
|
-
"deleteOne",
|
|
20
|
-
"createMany",
|
|
21
|
-
"updateMany",
|
|
22
|
-
"deleteMany",
|
|
23
|
-
];
|
|
24
|
-
const methodCalls = methods
|
|
25
|
-
.map((m) => `${modelName.camel}RouteHook.${m}({});`)
|
|
26
|
-
.join("\n\n");
|
|
27
|
-
return `import { ArkosRouteHook } from 'arkos';
|
|
28
|
-
|
|
29
|
-
const ${modelName.camel}RouteHook = ArkosRouteHook(${moduleType});
|
|
30
|
-
|
|
31
|
-
${methodCalls}
|
|
32
|
-
|
|
33
|
-
export default ${modelName.camel}RouteHook;
|
|
34
|
-
`;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=route-hook.template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"route-hook.template.js","sourceRoot":"","sources":["../../../../../../../src/utils/cli/utils/template-generator/templates/route-hook.template.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,yBAAyB,CAAC,OAAwB;IAChE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC;IAChD,MAAM,kBAAkB,GACtB,SAAS,CAAC,KAAK,KAAK,aAAa,IAAI,SAAS,CAAC,KAAK,KAAK,YAAY,CAAC;IAExE,MAAM,UAAU,GAAG,YAAY;QAC7B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,kBAAkB;YAClB,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC;IAE7B,MAAM,OAAO,GAAG,YAAY;QAC1B,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,CAAC;QACtE,CAAC,CAAC,kBAAkB;YAClB,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;YACxD,CAAC,CAAC;gBACE,WAAW;gBACX,SAAS;gBACT,UAAU;gBACV,WAAW;gBACX,WAAW;gBACX,YAAY;gBACZ,YAAY;gBACZ,YAAY;aACb,CAAC;IAER,MAAM,WAAW,GAAG,OAAO;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,aAAa,CAAC,OAAO,CAAC;SACnD,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,OAAO;;QAED,SAAS,CAAC,KAAK,8BAA8B,UAAU;;EAE7D,WAAW;;iBAEI,SAAS,CAAC,KAAK;CAC/B,CAAC;AACF,CAAC","sourcesContent":["import { TemplateOptions } from \"../../template-generators\";\n\nexport function generateRouteHookTemplate(options: TemplateOptions): string {\n const { modelName } = options;\n\n const isAuthModule = modelName.kebab === \"auth\";\n const isFileUploadModule =\n modelName.kebab === \"file-upload\" || modelName.kebab === \"fileUpload\";\n\n const moduleType = isAuthModule\n ? `\"auth\"`\n : isFileUploadModule\n ? `\"file-upload\"`\n : `\"${modelName.kebab}\"`;\n\n const methods = isAuthModule\n ? [\"getMe\", \"login\", \"logout\", \"signup\", \"updateMe\", \"updatePassword\"]\n : isFileUploadModule\n ? [\"findFile\", \"uploadFile\", \"updateFile\", \"deleteFile\"]\n : [\n \"createOne\",\n \"findOne\",\n \"findMany\",\n \"updateOne\",\n \"deleteOne\",\n \"createMany\",\n \"updateMany\",\n \"deleteMany\",\n ];\n\n const methodCalls = methods\n .map((m) => `${modelName.camel}RouteHook.${m}({});`)\n .join(\"\\n\\n\");\n\n return `import { ArkosRouteHook } from 'arkos';\n\nconst ${modelName.camel}RouteHook = ArkosRouteHook(${moduleType});\n\n${methodCalls}\n\nexport default ${modelName.camel}RouteHook;\n`;\n}\n"]}
|