@miiajs/swagger 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 (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +17 -0
  3. package/dist/builder/index.d.ts +5 -0
  4. package/dist/builder/index.d.ts.map +1 -0
  5. package/dist/builder/index.js +4 -0
  6. package/dist/builder/index.js.map +1 -0
  7. package/dist/builder/path-converter.d.ts +3 -0
  8. package/dist/builder/path-converter.d.ts.map +1 -0
  9. package/dist/builder/path-converter.js +9 -0
  10. package/dist/builder/path-converter.js.map +1 -0
  11. package/dist/builder/schema-converter.d.ts +3 -0
  12. package/dist/builder/schema-converter.d.ts.map +1 -0
  13. package/dist/builder/schema-converter.js +234 -0
  14. package/dist/builder/schema-converter.js.map +1 -0
  15. package/dist/builder/spec-builder.d.ts +18 -0
  16. package/dist/builder/spec-builder.d.ts.map +1 -0
  17. package/dist/builder/spec-builder.js +245 -0
  18. package/dist/builder/spec-builder.js.map +1 -0
  19. package/dist/constants.d.ts +10 -0
  20. package/dist/constants.d.ts.map +1 -0
  21. package/dist/constants.js +10 -0
  22. package/dist/constants.js.map +1 -0
  23. package/dist/decorators/api-body.d.ts +39 -0
  24. package/dist/decorators/api-body.d.ts.map +1 -0
  25. package/dist/decorators/api-body.js +44 -0
  26. package/dist/decorators/api-body.js.map +1 -0
  27. package/dist/decorators/api-exclude.d.ts +2 -0
  28. package/dist/decorators/api-exclude.d.ts.map +1 -0
  29. package/dist/decorators/api-exclude.js +9 -0
  30. package/dist/decorators/api-exclude.js.map +1 -0
  31. package/dist/decorators/api-header.d.ts +3 -0
  32. package/dist/decorators/api-header.d.ts.map +1 -0
  33. package/dist/decorators/api-header.js +12 -0
  34. package/dist/decorators/api-header.js.map +1 -0
  35. package/dist/decorators/api-operation.d.ts +3 -0
  36. package/dist/decorators/api-operation.d.ts.map +1 -0
  37. package/dist/decorators/api-operation.js +6 -0
  38. package/dist/decorators/api-operation.js.map +1 -0
  39. package/dist/decorators/api-param.d.ts +3 -0
  40. package/dist/decorators/api-param.d.ts.map +1 -0
  41. package/dist/decorators/api-param.js +9 -0
  42. package/dist/decorators/api-param.js.map +1 -0
  43. package/dist/decorators/api-query.d.ts +3 -0
  44. package/dist/decorators/api-query.d.ts.map +1 -0
  45. package/dist/decorators/api-query.js +9 -0
  46. package/dist/decorators/api-query.js.map +1 -0
  47. package/dist/decorators/api-response.d.ts +3 -0
  48. package/dist/decorators/api-response.d.ts.map +1 -0
  49. package/dist/decorators/api-response.js +9 -0
  50. package/dist/decorators/api-response.js.map +1 -0
  51. package/dist/decorators/api-security.d.ts +2 -0
  52. package/dist/decorators/api-security.d.ts.map +1 -0
  53. package/dist/decorators/api-security.js +11 -0
  54. package/dist/decorators/api-security.js.map +1 -0
  55. package/dist/decorators/api-tag.d.ts +2 -0
  56. package/dist/decorators/api-tag.d.ts.map +1 -0
  57. package/dist/decorators/api-tag.js +6 -0
  58. package/dist/decorators/api-tag.js.map +1 -0
  59. package/dist/decorators/index.d.ts +10 -0
  60. package/dist/decorators/index.d.ts.map +1 -0
  61. package/dist/decorators/index.js +10 -0
  62. package/dist/decorators/index.js.map +1 -0
  63. package/dist/index.d.ts +7 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +9 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/swagger-ui.d.ts +2 -0
  68. package/dist/swagger-ui.d.ts.map +1 -0
  69. package/dist/swagger-ui.js +16 -0
  70. package/dist/swagger-ui.js.map +1 -0
  71. package/dist/swagger.module.d.ts +7 -0
  72. package/dist/swagger.module.d.ts.map +1 -0
  73. package/dist/swagger.module.js +19 -0
  74. package/dist/swagger.module.js.map +1 -0
  75. package/dist/swagger.service.d.ts +8 -0
  76. package/dist/swagger.service.d.ts.map +1 -0
  77. package/dist/swagger.service.js +96 -0
  78. package/dist/swagger.service.js.map +1 -0
  79. package/dist/types.d.ts +95 -0
  80. package/dist/types.d.ts.map +1 -0
  81. package/dist/types.js +2 -0
  82. package/dist/types.js.map +1 -0
  83. package/package.json +61 -0
@@ -0,0 +1,95 @@
1
+ import type { ZodLike } from '@miiajs/core';
2
+ export interface ApiOperationOptions {
3
+ summary?: string;
4
+ description?: string;
5
+ operationId?: string;
6
+ deprecated?: boolean;
7
+ }
8
+ export interface ApiResponseOptions {
9
+ description?: string;
10
+ schema?: ZodLike | JsonSchema;
11
+ }
12
+ export interface ApiParamOptions {
13
+ description?: string;
14
+ required?: boolean;
15
+ schema?: ZodLike | JsonSchema;
16
+ }
17
+ export interface ApiQueryOptions {
18
+ description?: string;
19
+ required?: boolean;
20
+ schema?: ZodLike | JsonSchema;
21
+ }
22
+ export interface ApiHeaderOptions {
23
+ description?: string;
24
+ required?: boolean;
25
+ }
26
+ export interface ApiBodyOptions {
27
+ /** OpenAPI media type. Defaults to `'application/json'`. */
28
+ contentType?: string;
29
+ /** Whether the request body is required. Defaults to `true`. */
30
+ required?: boolean;
31
+ /** Optional human-readable description shown in Swagger UI. */
32
+ description?: string;
33
+ }
34
+ export interface ApiResponseMeta {
35
+ status: number;
36
+ description?: string;
37
+ schema?: ZodLike | JsonSchema;
38
+ }
39
+ export interface ApiParamMeta {
40
+ name: string;
41
+ description?: string;
42
+ required?: boolean;
43
+ schema?: ZodLike | JsonSchema;
44
+ }
45
+ export interface ApiQueryMeta {
46
+ name: string;
47
+ description?: string;
48
+ required?: boolean;
49
+ schema?: ZodLike | JsonSchema;
50
+ }
51
+ export interface ApiSecurityMeta {
52
+ name: string;
53
+ scopes: string[];
54
+ }
55
+ export interface ApiHeaderMeta {
56
+ name: string;
57
+ description?: string;
58
+ required?: boolean;
59
+ }
60
+ export interface JsonSchema {
61
+ type?: string | string[];
62
+ properties?: Record<string, JsonSchema>;
63
+ required?: string[];
64
+ items?: JsonSchema;
65
+ enum?: any[];
66
+ const?: any;
67
+ description?: string;
68
+ format?: string;
69
+ default?: any;
70
+ minimum?: number;
71
+ maximum?: number;
72
+ minLength?: number;
73
+ maxLength?: number;
74
+ anyOf?: JsonSchema[];
75
+ allOf?: JsonSchema[];
76
+ oneOf?: JsonSchema[];
77
+ nullable?: boolean;
78
+ [key: string]: any;
79
+ }
80
+ export interface SwaggerSetupOptions {
81
+ title: string;
82
+ version: string;
83
+ description?: string;
84
+ servers?: Array<{
85
+ url: string;
86
+ description?: string;
87
+ }>;
88
+ securitySchemes?: Record<string, any>;
89
+ globalSecurity?: Array<Record<string, string[]>>;
90
+ path?: string;
91
+ uiPath?: string;
92
+ ui?: boolean;
93
+ swaggerOptions?: Record<string, any>;
94
+ }
95
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@miiajs/swagger",
3
+ "version": "0.1.0",
4
+ "author": "Ruslan Matiushev",
5
+ "license": "MIT",
6
+ "description": "OpenAPI 3.1 spec generation and Swagger UI for MiiaJS.",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/miiajs/miia.git",
10
+ "directory": "packages/swagger"
11
+ },
12
+ "homepage": "https://github.com/miiajs/miia/tree/main/packages/swagger#readme",
13
+ "bugs": {
14
+ "url": "https://github.com/miiajs/miia/issues"
15
+ },
16
+ "keywords": [
17
+ "miiajs",
18
+ "miia",
19
+ "swagger",
20
+ "openapi",
21
+ "documentation"
22
+ ],
23
+ "publishConfig": {
24
+ "access": "public"
25
+ },
26
+ "type": "module",
27
+ "exports": {
28
+ ".": {
29
+ "types": "./dist/index.d.ts",
30
+ "import": "./dist/index.js"
31
+ }
32
+ },
33
+ "main": "./dist/index.js",
34
+ "types": "./dist/index.d.ts",
35
+ "files": [
36
+ "dist",
37
+ "README.md",
38
+ "LICENSE"
39
+ ],
40
+ "sideEffects": false,
41
+ "engines": {
42
+ "node": ">=22.22.1",
43
+ "bun": ">=1.3.11",
44
+ "deno": ">=2.6.1"
45
+ },
46
+ "dependencies": {
47
+ "@miiajs/core": "workspace:*",
48
+ "@miiajs/serve-static": "workspace:*"
49
+ },
50
+ "peerDependencies": {
51
+ "swagger-ui-dist": "^5.0.0"
52
+ },
53
+ "scripts": {
54
+ "build": "tsc --build",
55
+ "clean": "tsc --build --clean"
56
+ },
57
+ "devDependencies": {
58
+ "swagger-ui-dist": "^5.32.4",
59
+ "zod": "^4.3.6"
60
+ }
61
+ }