@rsdk/cli.cmd.autodoc 6.0.0-next.4 → 6.0.0-next.40

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 (56) hide show
  1. package/CHANGELOG.md +382 -0
  2. package/TODO.MD +24 -0
  3. package/dist/commands/autodoc.cmd.js +8 -10
  4. package/dist/commands/autodoc.cmd.js.map +1 -1
  5. package/dist/commands/openapi.variation.js +1 -2
  6. package/dist/commands/openapi.variation.js.map +1 -1
  7. package/dist/generators/file-generator.interface.d.ts +1 -1
  8. package/dist/generators/openapi-json/config.schema.d.ts +21 -38
  9. package/dist/generators/openapi-json/config.schema.js +18 -134
  10. package/dist/generators/openapi-json/config.schema.js.map +1 -1
  11. package/dist/generators/openapi-json/openapi-json.generator.d.ts +4 -5
  12. package/dist/generators/openapi-json/openapi-json.generator.js +12 -107
  13. package/dist/generators/openapi-json/openapi-json.generator.js.map +1 -1
  14. package/dist/generators/openapi-json/schemas/config.schema.d.ts +55 -0
  15. package/dist/generators/openapi-json/schemas/config.schema.js +36 -0
  16. package/dist/generators/openapi-json/schemas/config.schema.js.map +1 -0
  17. package/dist/generators/openapi-json/schemas/index.d.ts +1 -0
  18. package/dist/generators/openapi-json/schemas/index.js +18 -0
  19. package/dist/generators/openapi-json/schemas/index.js.map +1 -0
  20. package/eslint.config.cjs +3 -0
  21. package/jest.config.e2e.js +1 -0
  22. package/jest.config.js +1 -0
  23. package/jest.config.unit.js +1 -0
  24. package/package.json +23 -29
  25. package/src/base/app.loader.ts +39 -0
  26. package/src/base/document.file.ts +33 -0
  27. package/src/base/index.ts +2 -0
  28. package/src/commands/autodoc.cmd.ts +93 -0
  29. package/src/commands/openapi.variation.ts +172 -0
  30. package/src/generators/autodoc-md/autodoc-md.generator.ts +56 -0
  31. package/src/generators/autodoc-md/formatters.ts +9 -0
  32. package/src/generators/autodoc-md/fragments/document-fragment.abstract.ts +6 -0
  33. package/src/generators/autodoc-md/fragments/extractor/document.extractor.ts +73 -0
  34. package/src/generators/autodoc-md/fragments/implementations/additional-sources.fragment.ts +41 -0
  35. package/src/generators/autodoc-md/fragments/implementations/app-metadata.fragment.ts +18 -0
  36. package/src/generators/autodoc-md/fragments/implementations/autodoc.fragment.ts +30 -0
  37. package/src/generators/autodoc-md/fragments/implementations/config-section.fragment.ts +148 -0
  38. package/src/generators/autodoc-md/fragments/implementations/header.fragment.ts +18 -0
  39. package/src/generators/autodoc-md/fragments/implementations/plugin.fragment.ts +21 -0
  40. package/src/generators/autodoc-md/fragments/implementations/transports.fragment.ts +36 -0
  41. package/src/generators/autodoc-md/fragments/index.ts +9 -0
  42. package/src/generators/autodoc-md/index.ts +1 -0
  43. package/src/generators/file-generator.interface.ts +22 -0
  44. package/src/generators/index.ts +4 -0
  45. package/src/generators/openapi-json/config.schema.spec.ts +265 -0
  46. package/src/generators/openapi-json/config.schema.ts +37 -0
  47. package/src/generators/openapi-json/index.ts +2 -0
  48. package/src/generators/openapi-json/openapi-json.generator.ts +53 -0
  49. package/src/generators/openapi-json/schemas/config.schema.spec.ts +265 -0
  50. package/src/generators/openapi-json/schemas/config.schema.ts +37 -0
  51. package/src/generators/openapi-json/schemas/index.ts +1 -0
  52. package/src/generators/rsdk-json/index.ts +1 -0
  53. package/src/generators/rsdk-json/rsdk-json.generator.ts +24 -0
  54. package/src/index.ts +1 -0
  55. package/tsconfig.build.json +12 -0
  56. package/tsconfig.json +7 -0
@@ -0,0 +1,37 @@
1
+ import { OpenApiOptions } from '@rsdk/http.openapi';
2
+ import type { Static } from '@sinclair/typebox';
3
+ import { Type } from '@sinclair/typebox';
4
+
5
+ /**
6
+ * Configuration schema for OpenAPI document generation.
7
+ * @example
8
+ * {
9
+ * "out": "openapi.json",
10
+ * "app": "./dist/app.js",
11
+ * "title": "My API",
12
+ * "version": "1.0.0",
13
+ * "description": "API Description",
14
+ * "includeZones": ["public"],
15
+ * "excludeZones": ["internal"],
16
+ * "security": {
17
+ * "jwt": {
18
+ * "type": "http",
19
+ * "scheme": "bearer",
20
+ * "bearerFormat": "JWT",
21
+ * "name": "JWT Auth"
22
+ * }
23
+ * }
24
+ * }
25
+ */
26
+ export const OpenApiConfigSchema = Type.Intersect([
27
+ Type.Partial(OpenApiOptions),
28
+ Type.Object({
29
+ /** Output file path for the generated OpenAPI document */
30
+ out: Type.Optional(Type.String()),
31
+
32
+ /** Path to the application file (usually `dist/app.js`) */
33
+ app: Type.Optional(Type.String()),
34
+ }),
35
+ ]);
36
+
37
+ export type OpenApiConfigSchema = Static<typeof OpenApiConfigSchema>;
@@ -0,0 +1 @@
1
+ export * from './config.schema';
@@ -0,0 +1 @@
1
+ export * from './rsdk-json.generator';
@@ -0,0 +1,24 @@
1
+ import type { PlatformApp } from '@rsdk/core';
2
+ import { LoggerFactory } from '@rsdk/logging';
3
+ import type { Resource } from '@rsdk/metadata';
4
+
5
+ import { FileGenerator } from '../file-generator.interface';
6
+
7
+ export class RsdkFileGenerator extends FileGenerator {
8
+ constructor(private readonly app: PlatformApp) {
9
+ super(LoggerFactory.create(RsdkFileGenerator));
10
+ }
11
+
12
+ protected async getContent(): Promise<string> {
13
+ const rsdkMetadata = await this.getAllResources();
14
+ const metadata = await this.app.getMetadata();
15
+
16
+ return JSON.stringify({ metadata, rsdkMetadata }, null, 2);
17
+ }
18
+
19
+ private async getAllResources(): Promise<Resource<unknown>[]> {
20
+ const provider = await this.app.context.getRsdkMetadataProvider();
21
+
22
+ return provider.get();
23
+ }
24
+ }
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export { AutodocCommand as default } from './commands/autodoc.cmd';
@@ -0,0 +1,12 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "exclude": [
4
+ "node_modules",
5
+ "dist",
6
+ "test",
7
+ "**/*.spec.ts",
8
+ "**/*.test.ts",
9
+ "**/*.test.e2e.ts",
10
+ "**/*.test.manual-e2e.ts",
11
+ ]
12
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "extends": "@rsdk/tsconfig/base.json",
3
+ "compilerOptions": {
4
+ "declaration": true,
5
+ "outDir": "dist"
6
+ }
7
+ }