mnehmos.trace.mcp 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/LICENSE +21 -0
- package/README.md +1662 -0
- package/dist/adapters/bootstrap.d.ts +29 -0
- package/dist/adapters/bootstrap.d.ts.map +1 -0
- package/dist/adapters/bootstrap.js +46 -0
- package/dist/adapters/bootstrap.js.map +1 -0
- package/dist/adapters/errors.d.ts +94 -0
- package/dist/adapters/errors.d.ts.map +1 -0
- package/dist/adapters/errors.js +107 -0
- package/dist/adapters/errors.js.map +1 -0
- package/dist/adapters/graphql/index.d.ts +9 -0
- package/dist/adapters/graphql/index.d.ts.map +1 -0
- package/dist/adapters/graphql/index.js +9 -0
- package/dist/adapters/graphql/index.js.map +1 -0
- package/dist/adapters/graphql/sdl-parser.d.ts +74 -0
- package/dist/adapters/graphql/sdl-parser.d.ts.map +1 -0
- package/dist/adapters/graphql/sdl-parser.js +559 -0
- package/dist/adapters/graphql/sdl-parser.js.map +1 -0
- package/dist/adapters/grpc/adapter.d.ts +76 -0
- package/dist/adapters/grpc/adapter.d.ts.map +1 -0
- package/dist/adapters/grpc/adapter.js +362 -0
- package/dist/adapters/grpc/adapter.js.map +1 -0
- package/dist/adapters/grpc/index.d.ts +10 -0
- package/dist/adapters/grpc/index.d.ts.map +1 -0
- package/dist/adapters/grpc/index.js +12 -0
- package/dist/adapters/grpc/index.js.map +1 -0
- package/dist/adapters/grpc/proto-parser.d.ts +76 -0
- package/dist/adapters/grpc/proto-parser.d.ts.map +1 -0
- package/dist/adapters/grpc/proto-parser.js +523 -0
- package/dist/adapters/grpc/proto-parser.js.map +1 -0
- package/dist/adapters/grpc/type-converter.d.ts +43 -0
- package/dist/adapters/grpc/type-converter.d.ts.map +1 -0
- package/dist/adapters/grpc/type-converter.js +270 -0
- package/dist/adapters/grpc/type-converter.js.map +1 -0
- package/dist/adapters/grpc/types.d.ts +85 -0
- package/dist/adapters/grpc/types.d.ts.map +1 -0
- package/dist/adapters/grpc/types.js +7 -0
- package/dist/adapters/grpc/types.js.map +1 -0
- package/dist/adapters/index.d.ts +39 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +50 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/mcp.d.ts +23 -0
- package/dist/adapters/mcp.d.ts.map +1 -0
- package/dist/adapters/mcp.js +293 -0
- package/dist/adapters/mcp.js.map +1 -0
- package/dist/adapters/openapi/adapter.d.ts +213 -0
- package/dist/adapters/openapi/adapter.d.ts.map +1 -0
- package/dist/adapters/openapi/adapter.js +557 -0
- package/dist/adapters/openapi/adapter.js.map +1 -0
- package/dist/adapters/openapi/convert.d.ts +120 -0
- package/dist/adapters/openapi/convert.d.ts.map +1 -0
- package/dist/adapters/openapi/convert.js +363 -0
- package/dist/adapters/openapi/convert.js.map +1 -0
- package/dist/adapters/openapi/index.d.ts +39 -0
- package/dist/adapters/openapi/index.d.ts.map +1 -0
- package/dist/adapters/openapi/index.js +48 -0
- package/dist/adapters/openapi/index.js.map +1 -0
- package/dist/adapters/openapi/parser.d.ts +95 -0
- package/dist/adapters/openapi/parser.d.ts.map +1 -0
- package/dist/adapters/openapi/parser.js +171 -0
- package/dist/adapters/openapi/parser.js.map +1 -0
- package/dist/adapters/registry.d.ts +116 -0
- package/dist/adapters/registry.d.ts.map +1 -0
- package/dist/adapters/registry.js +246 -0
- package/dist/adapters/registry.js.map +1 -0
- package/dist/adapters/trpc/adapter.d.ts +159 -0
- package/dist/adapters/trpc/adapter.d.ts.map +1 -0
- package/dist/adapters/trpc/adapter.js +223 -0
- package/dist/adapters/trpc/adapter.js.map +1 -0
- package/dist/adapters/trpc/extractor.d.ts +218 -0
- package/dist/adapters/trpc/extractor.d.ts.map +1 -0
- package/dist/adapters/trpc/extractor.js +708 -0
- package/dist/adapters/trpc/extractor.js.map +1 -0
- package/dist/adapters/trpc/index.d.ts +31 -0
- package/dist/adapters/trpc/index.d.ts.map +1 -0
- package/dist/adapters/trpc/index.js +40 -0
- package/dist/adapters/trpc/index.js.map +1 -0
- package/dist/adapters/trpc/parser.d.ts +119 -0
- package/dist/adapters/trpc/parser.d.ts.map +1 -0
- package/dist/adapters/trpc/parser.js +128 -0
- package/dist/adapters/trpc/parser.js.map +1 -0
- package/dist/compare/index.d.ts +33 -0
- package/dist/compare/index.d.ts.map +1 -0
- package/dist/compare/index.js +261 -0
- package/dist/compare/index.js.map +1 -0
- package/dist/core/types.d.ts +188 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +9 -0
- package/dist/core/types.js.map +1 -0
- package/dist/extract/index.d.ts +26 -0
- package/dist/extract/index.d.ts.map +1 -0
- package/dist/extract/index.js +44 -0
- package/dist/extract/index.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +674 -0
- package/dist/index.js.map +1 -0
- package/dist/languages/base.d.ts +57 -0
- package/dist/languages/base.d.ts.map +1 -0
- package/dist/languages/base.js +6 -0
- package/dist/languages/base.js.map +1 -0
- package/dist/languages/bootstrap.d.ts +10 -0
- package/dist/languages/bootstrap.d.ts.map +1 -0
- package/dist/languages/bootstrap.js +25 -0
- package/dist/languages/bootstrap.js.map +1 -0
- package/dist/languages/go/handlers/chi.d.ts +24 -0
- package/dist/languages/go/handlers/chi.d.ts.map +1 -0
- package/dist/languages/go/handlers/chi.js +205 -0
- package/dist/languages/go/handlers/chi.js.map +1 -0
- package/dist/languages/go/handlers/gin.d.ts +24 -0
- package/dist/languages/go/handlers/gin.d.ts.map +1 -0
- package/dist/languages/go/handlers/gin.js +156 -0
- package/dist/languages/go/handlers/gin.js.map +1 -0
- package/dist/languages/go/handlers/stdlib.d.ts +19 -0
- package/dist/languages/go/handlers/stdlib.d.ts.map +1 -0
- package/dist/languages/go/handlers/stdlib.js +112 -0
- package/dist/languages/go/handlers/stdlib.js.map +1 -0
- package/dist/languages/go/index.d.ts +18 -0
- package/dist/languages/go/index.d.ts.map +1 -0
- package/dist/languages/go/index.js +20 -0
- package/dist/languages/go/index.js.map +1 -0
- package/dist/languages/go/parser.d.ts +33 -0
- package/dist/languages/go/parser.d.ts.map +1 -0
- package/dist/languages/go/parser.js +95 -0
- package/dist/languages/go/parser.js.map +1 -0
- package/dist/languages/go/struct-extractor.d.ts +59 -0
- package/dist/languages/go/struct-extractor.d.ts.map +1 -0
- package/dist/languages/go/struct-extractor.js +483 -0
- package/dist/languages/go/struct-extractor.js.map +1 -0
- package/dist/languages/go/tag-parser.d.ts +62 -0
- package/dist/languages/go/tag-parser.d.ts.map +1 -0
- package/dist/languages/go/tag-parser.js +108 -0
- package/dist/languages/go/tag-parser.js.map +1 -0
- package/dist/languages/go/type-converter.d.ts +32 -0
- package/dist/languages/go/type-converter.d.ts.map +1 -0
- package/dist/languages/go/type-converter.js +226 -0
- package/dist/languages/go/type-converter.js.map +1 -0
- package/dist/languages/go/types.d.ts +153 -0
- package/dist/languages/go/types.d.ts.map +1 -0
- package/dist/languages/go/types.js +6 -0
- package/dist/languages/go/types.js.map +1 -0
- package/dist/languages/import-resolver.d.ts +645 -0
- package/dist/languages/import-resolver.d.ts.map +1 -0
- package/dist/languages/import-resolver.js +1278 -0
- package/dist/languages/import-resolver.js.map +1 -0
- package/dist/languages/index.d.ts +34 -0
- package/dist/languages/index.d.ts.map +1 -0
- package/dist/languages/index.js +93 -0
- package/dist/languages/index.js.map +1 -0
- package/dist/languages/json-schema.d.ts +40 -0
- package/dist/languages/json-schema.d.ts.map +1 -0
- package/dist/languages/json-schema.js +188 -0
- package/dist/languages/json-schema.js.map +1 -0
- package/dist/languages/python-ast/index.d.ts +8 -0
- package/dist/languages/python-ast/index.d.ts.map +1 -0
- package/dist/languages/python-ast/index.js +7 -0
- package/dist/languages/python-ast/index.js.map +1 -0
- package/dist/languages/python-ast/parser.d.ts +174 -0
- package/dist/languages/python-ast/parser.d.ts.map +1 -0
- package/dist/languages/python-ast/parser.js +1205 -0
- package/dist/languages/python-ast/parser.js.map +1 -0
- package/dist/languages/python-ast/type-resolver.d.ts +75 -0
- package/dist/languages/python-ast/type-resolver.d.ts.map +1 -0
- package/dist/languages/python-ast/type-resolver.js +421 -0
- package/dist/languages/python-ast/type-resolver.js.map +1 -0
- package/dist/languages/python-ast/types.d.ts +216 -0
- package/dist/languages/python-ast/types.d.ts.map +1 -0
- package/dist/languages/python-ast/types.js +6 -0
- package/dist/languages/python-ast/types.js.map +1 -0
- package/dist/languages/python.d.ts +55 -0
- package/dist/languages/python.d.ts.map +1 -0
- package/dist/languages/python.js +311 -0
- package/dist/languages/python.js.map +1 -0
- package/dist/languages/typescript.d.ts +272 -0
- package/dist/languages/typescript.d.ts.map +1 -0
- package/dist/languages/typescript.js +1381 -0
- package/dist/languages/typescript.js.map +1 -0
- package/dist/patterns/base.d.ts +146 -0
- package/dist/patterns/base.d.ts.map +1 -0
- package/dist/patterns/base.js +89 -0
- package/dist/patterns/base.js.map +1 -0
- package/dist/patterns/errors.d.ts +172 -0
- package/dist/patterns/errors.d.ts.map +1 -0
- package/dist/patterns/errors.js +185 -0
- package/dist/patterns/errors.js.map +1 -0
- package/dist/patterns/extractors.d.ts +170 -0
- package/dist/patterns/extractors.d.ts.map +1 -0
- package/dist/patterns/extractors.js +305 -0
- package/dist/patterns/extractors.js.map +1 -0
- package/dist/patterns/graphql/apollo-client.d.ts +80 -0
- package/dist/patterns/graphql/apollo-client.d.ts.map +1 -0
- package/dist/patterns/graphql/apollo-client.js +800 -0
- package/dist/patterns/graphql/apollo-client.js.map +1 -0
- package/dist/patterns/graphql/apollo-server.d.ts +55 -0
- package/dist/patterns/graphql/apollo-server.d.ts.map +1 -0
- package/dist/patterns/graphql/apollo-server.js +523 -0
- package/dist/patterns/graphql/apollo-server.js.map +1 -0
- package/dist/patterns/graphql/index.d.ts +11 -0
- package/dist/patterns/graphql/index.d.ts.map +1 -0
- package/dist/patterns/graphql/index.js +12 -0
- package/dist/patterns/graphql/index.js.map +1 -0
- package/dist/patterns/graphql/types.d.ts +213 -0
- package/dist/patterns/graphql/types.d.ts.map +1 -0
- package/dist/patterns/graphql/types.js +16 -0
- package/dist/patterns/graphql/types.js.map +1 -0
- package/dist/patterns/http-clients/axios.d.ts +148 -0
- package/dist/patterns/http-clients/axios.d.ts.map +1 -0
- package/dist/patterns/http-clients/axios.js +652 -0
- package/dist/patterns/http-clients/axios.js.map +1 -0
- package/dist/patterns/http-clients/fetch.d.ts +88 -0
- package/dist/patterns/http-clients/fetch.d.ts.map +1 -0
- package/dist/patterns/http-clients/fetch.js +364 -0
- package/dist/patterns/http-clients/fetch.js.map +1 -0
- package/dist/patterns/http-clients/index.d.ts +36 -0
- package/dist/patterns/http-clients/index.d.ts.map +1 -0
- package/dist/patterns/http-clients/index.js +50 -0
- package/dist/patterns/http-clients/index.js.map +1 -0
- package/dist/patterns/http-clients/property-access.d.ts +46 -0
- package/dist/patterns/http-clients/property-access.d.ts.map +1 -0
- package/dist/patterns/http-clients/property-access.js +818 -0
- package/dist/patterns/http-clients/property-access.js.map +1 -0
- package/dist/patterns/http-clients/type-inference.d.ts +48 -0
- package/dist/patterns/http-clients/type-inference.d.ts.map +1 -0
- package/dist/patterns/http-clients/type-inference.js +293 -0
- package/dist/patterns/http-clients/type-inference.js.map +1 -0
- package/dist/patterns/http-clients/types.d.ts +168 -0
- package/dist/patterns/http-clients/types.d.ts.map +1 -0
- package/dist/patterns/http-clients/types.js +10 -0
- package/dist/patterns/http-clients/types.js.map +1 -0
- package/dist/patterns/http-clients/url-extractor.d.ts +53 -0
- package/dist/patterns/http-clients/url-extractor.d.ts.map +1 -0
- package/dist/patterns/http-clients/url-extractor.js +338 -0
- package/dist/patterns/http-clients/url-extractor.js.map +1 -0
- package/dist/patterns/index.d.ts +44 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/index.js +49 -0
- package/dist/patterns/index.js.map +1 -0
- package/dist/patterns/python/aiohttp.d.ts +21 -0
- package/dist/patterns/python/aiohttp.d.ts.map +1 -0
- package/dist/patterns/python/aiohttp.js +188 -0
- package/dist/patterns/python/aiohttp.js.map +1 -0
- package/dist/patterns/python/httpx.d.ts +20 -0
- package/dist/patterns/python/httpx.d.ts.map +1 -0
- package/dist/patterns/python/httpx.js +183 -0
- package/dist/patterns/python/httpx.js.map +1 -0
- package/dist/patterns/python/index.d.ts +32 -0
- package/dist/patterns/python/index.d.ts.map +1 -0
- package/dist/patterns/python/index.js +63 -0
- package/dist/patterns/python/index.js.map +1 -0
- package/dist/patterns/python/property-access.d.ts +27 -0
- package/dist/patterns/python/property-access.d.ts.map +1 -0
- package/dist/patterns/python/property-access.js +132 -0
- package/dist/patterns/python/property-access.js.map +1 -0
- package/dist/patterns/python/requests.d.ts +19 -0
- package/dist/patterns/python/requests.d.ts.map +1 -0
- package/dist/patterns/python/requests.js +239 -0
- package/dist/patterns/python/requests.js.map +1 -0
- package/dist/patterns/python/types.d.ts +95 -0
- package/dist/patterns/python/types.d.ts.map +1 -0
- package/dist/patterns/python/types.js +43 -0
- package/dist/patterns/python/types.js.map +1 -0
- package/dist/patterns/registry.d.ts +181 -0
- package/dist/patterns/registry.d.ts.map +1 -0
- package/dist/patterns/registry.js +304 -0
- package/dist/patterns/registry.js.map +1 -0
- package/dist/patterns/rest/express.d.ts +78 -0
- package/dist/patterns/rest/express.d.ts.map +1 -0
- package/dist/patterns/rest/express.js +289 -0
- package/dist/patterns/rest/express.js.map +1 -0
- package/dist/patterns/rest/fastify.d.ts +93 -0
- package/dist/patterns/rest/fastify.d.ts.map +1 -0
- package/dist/patterns/rest/fastify.js +420 -0
- package/dist/patterns/rest/fastify.js.map +1 -0
- package/dist/patterns/rest/index.d.ts +31 -0
- package/dist/patterns/rest/index.d.ts.map +1 -0
- package/dist/patterns/rest/index.js +45 -0
- package/dist/patterns/rest/index.js.map +1 -0
- package/dist/patterns/rest/middleware.d.ts +25 -0
- package/dist/patterns/rest/middleware.d.ts.map +1 -0
- package/dist/patterns/rest/middleware.js +219 -0
- package/dist/patterns/rest/middleware.js.map +1 -0
- package/dist/patterns/rest/path-parser.d.ts +50 -0
- package/dist/patterns/rest/path-parser.d.ts.map +1 -0
- package/dist/patterns/rest/path-parser.js +137 -0
- package/dist/patterns/rest/path-parser.js.map +1 -0
- package/dist/patterns/rest/response-inference.d.ts +44 -0
- package/dist/patterns/rest/response-inference.d.ts.map +1 -0
- package/dist/patterns/rest/response-inference.js +218 -0
- package/dist/patterns/rest/response-inference.js.map +1 -0
- package/dist/patterns/rest/types.d.ts +102 -0
- package/dist/patterns/rest/types.d.ts.map +1 -0
- package/dist/patterns/rest/types.js +10 -0
- package/dist/patterns/rest/types.js.map +1 -0
- package/dist/patterns/types.d.ts +105 -0
- package/dist/patterns/types.d.ts.map +1 -0
- package/dist/patterns/types.js +11 -0
- package/dist/patterns/types.js.map +1 -0
- package/dist/report/index.d.ts +11 -0
- package/dist/report/index.d.ts.map +1 -0
- package/dist/report/index.js +55 -0
- package/dist/report/index.js.map +1 -0
- package/dist/tools/contract-comments.d.ts +48 -0
- package/dist/tools/contract-comments.d.ts.map +1 -0
- package/dist/tools/contract-comments.js +130 -0
- package/dist/tools/contract-comments.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/scaffold.d.ts +38 -0
- package/dist/tools/scaffold.d.ts.map +1 -0
- package/dist/tools/scaffold.js +373 -0
- package/dist/tools/scaffold.js.map +1 -0
- package/dist/trace/index.d.ts +28 -0
- package/dist/trace/index.d.ts.map +1 -0
- package/dist/trace/index.js +45 -0
- package/dist/trace/index.js.map +1 -0
- package/dist/types.d.ts +135 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +22 -0
- package/dist/types.js.map +1 -0
- package/dist/watch/cache.d.ts +41 -0
- package/dist/watch/cache.d.ts.map +1 -0
- package/dist/watch/cache.js +230 -0
- package/dist/watch/cache.js.map +1 -0
- package/dist/watch/index.d.ts +9 -0
- package/dist/watch/index.d.ts.map +1 -0
- package/dist/watch/index.js +7 -0
- package/dist/watch/index.js.map +1 -0
- package/dist/watch/project.d.ts +128 -0
- package/dist/watch/project.d.ts.map +1 -0
- package/dist/watch/project.js +152 -0
- package/dist/watch/project.js.map +1 -0
- package/dist/watch/watcher.d.ts +76 -0
- package/dist/watch/watcher.d.ts.map +1 -0
- package/dist/watch/watcher.js +235 -0
- package/dist/watch/watcher.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag-parser.js","sourceRoot":"","sources":["../../../src/languages/go/tag-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Go Type Converter
|
|
3
|
+
* Converts Go types to JSON Schema / NormalizedSchema types
|
|
4
|
+
*/
|
|
5
|
+
import type { GoProperty, GoStruct, GoSchema, GoTypeAlias } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Convert a Go type string to a JSON Schema property
|
|
8
|
+
*/
|
|
9
|
+
export declare function convertGoType(goType: string, typeAliases?: Map<string, string>): GoProperty;
|
|
10
|
+
/**
|
|
11
|
+
* TypeConverter class for stateful type conversion operations
|
|
12
|
+
*/
|
|
13
|
+
export declare class TypeConverter {
|
|
14
|
+
private typeAliases;
|
|
15
|
+
/**
|
|
16
|
+
* Register a type alias
|
|
17
|
+
*/
|
|
18
|
+
registerAlias(alias: GoTypeAlias): void;
|
|
19
|
+
/**
|
|
20
|
+
* Register multiple type aliases
|
|
21
|
+
*/
|
|
22
|
+
registerAliases(aliases: GoTypeAlias[]): void;
|
|
23
|
+
/**
|
|
24
|
+
* Convert a Go type to JSON Schema property
|
|
25
|
+
*/
|
|
26
|
+
convert(goType: string): GoProperty;
|
|
27
|
+
/**
|
|
28
|
+
* Convert a GoStruct to a GoSchema
|
|
29
|
+
*/
|
|
30
|
+
structToSchema(struct: GoStruct, allStructs?: Map<string, GoStruct>): GoSchema;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=type-converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-converter.d.ts","sourceRoot":"","sources":["../../../src/languages/go/type-converter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAY9E;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAa,GAC3C,UAAU,CA0IZ;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAkC;IAErD;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAIvC;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI;IAM7C;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAInC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,QAAQ;CA+D/E"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Go Type Converter
|
|
3
|
+
* Converts Go types to JSON Schema / NormalizedSchema types
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Map of known type aliases found in the source
|
|
7
|
+
*/
|
|
8
|
+
const builtinAliases = {
|
|
9
|
+
// Standard aliases
|
|
10
|
+
byte: 'uint8',
|
|
11
|
+
rune: 'int32',
|
|
12
|
+
any: 'interface{}',
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Convert a Go type string to a JSON Schema property
|
|
16
|
+
*/
|
|
17
|
+
export function convertGoType(goType, typeAliases = new Map()) {
|
|
18
|
+
// Remove leading/trailing whitespace
|
|
19
|
+
goType = goType.trim();
|
|
20
|
+
// Check for pointer type
|
|
21
|
+
if (goType.startsWith('*')) {
|
|
22
|
+
const innerType = goType.slice(1);
|
|
23
|
+
const inner = convertGoType(innerType, typeAliases);
|
|
24
|
+
return {
|
|
25
|
+
...inner,
|
|
26
|
+
nullable: true,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
// Check for double pointer (treat same as pointer)
|
|
30
|
+
if (goType.startsWith('**')) {
|
|
31
|
+
const innerType = goType.slice(2);
|
|
32
|
+
const inner = convertGoType(innerType, typeAliases);
|
|
33
|
+
return {
|
|
34
|
+
...inner,
|
|
35
|
+
nullable: true,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
// Check for slice type
|
|
39
|
+
if (goType.startsWith('[]')) {
|
|
40
|
+
const elementType = goType.slice(2);
|
|
41
|
+
// Special case: []byte is typically base64 encoded string
|
|
42
|
+
if (elementType === 'byte') {
|
|
43
|
+
return { type: 'string', format: 'byte' };
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
type: 'array',
|
|
47
|
+
items: convertGoType(elementType, typeAliases),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
// Check for fixed-size array type [n]T
|
|
51
|
+
const arrayMatch = goType.match(/^\[(\d+)\](.+)$/);
|
|
52
|
+
if (arrayMatch) {
|
|
53
|
+
const elementType = arrayMatch[2];
|
|
54
|
+
// Treat as regular array in JSON Schema
|
|
55
|
+
return {
|
|
56
|
+
type: 'array',
|
|
57
|
+
items: convertGoType(elementType, typeAliases),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
// Check for map type
|
|
61
|
+
const mapMatch = goType.match(/^map\[([^\]]+)\](.+)$/);
|
|
62
|
+
if (mapMatch) {
|
|
63
|
+
const valueType = mapMatch[2];
|
|
64
|
+
return {
|
|
65
|
+
type: 'object',
|
|
66
|
+
additionalProperties: convertGoType(valueType, typeAliases),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
// Check for type alias
|
|
70
|
+
const resolvedType = typeAliases.get(goType) || builtinAliases[goType];
|
|
71
|
+
if (resolvedType) {
|
|
72
|
+
return convertGoType(resolvedType, typeAliases);
|
|
73
|
+
}
|
|
74
|
+
// Check for interface{} / any
|
|
75
|
+
if (goType === 'interface{}' || goType === 'any') {
|
|
76
|
+
return {}; // Any type - no constraints
|
|
77
|
+
}
|
|
78
|
+
// Check for time.Time
|
|
79
|
+
if (goType === 'time.Time') {
|
|
80
|
+
return { type: 'string', format: 'date-time' };
|
|
81
|
+
}
|
|
82
|
+
// Check for time.Duration
|
|
83
|
+
if (goType === 'time.Duration') {
|
|
84
|
+
return { type: 'integer' };
|
|
85
|
+
}
|
|
86
|
+
// Check for json.RawMessage
|
|
87
|
+
if (goType === 'json.RawMessage') {
|
|
88
|
+
return {}; // Any JSON value
|
|
89
|
+
}
|
|
90
|
+
// Check for json.Number
|
|
91
|
+
if (goType === 'json.Number') {
|
|
92
|
+
return { type: 'string' }; // json.Number is a string that can be parsed as number
|
|
93
|
+
}
|
|
94
|
+
// Primitive types
|
|
95
|
+
switch (goType) {
|
|
96
|
+
// String types
|
|
97
|
+
case 'string':
|
|
98
|
+
return { type: 'string' };
|
|
99
|
+
// Boolean
|
|
100
|
+
case 'bool':
|
|
101
|
+
return { type: 'boolean' };
|
|
102
|
+
// Integer types (signed)
|
|
103
|
+
case 'int':
|
|
104
|
+
case 'int8':
|
|
105
|
+
case 'int16':
|
|
106
|
+
case 'int32':
|
|
107
|
+
case 'int64':
|
|
108
|
+
return { type: 'integer' };
|
|
109
|
+
// Integer types (unsigned)
|
|
110
|
+
case 'uint':
|
|
111
|
+
case 'uint8':
|
|
112
|
+
case 'uint16':
|
|
113
|
+
case 'uint32':
|
|
114
|
+
case 'uint64':
|
|
115
|
+
case 'uintptr':
|
|
116
|
+
return { type: 'integer' };
|
|
117
|
+
// Floating point
|
|
118
|
+
case 'float32':
|
|
119
|
+
case 'float64':
|
|
120
|
+
return { type: 'number' };
|
|
121
|
+
// Complex types (not typically JSON serializable)
|
|
122
|
+
case 'complex64':
|
|
123
|
+
case 'complex128':
|
|
124
|
+
return { type: 'object' };
|
|
125
|
+
// Unknown type - treat as reference to another struct
|
|
126
|
+
default:
|
|
127
|
+
// If it contains a dot, it's a package-qualified type
|
|
128
|
+
if (goType.includes('.')) {
|
|
129
|
+
// Could be a known stdlib type or external type
|
|
130
|
+
return { type: 'object' };
|
|
131
|
+
}
|
|
132
|
+
// Otherwise it's likely a reference to another struct
|
|
133
|
+
return { type: 'object' };
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* TypeConverter class for stateful type conversion operations
|
|
138
|
+
*/
|
|
139
|
+
export class TypeConverter {
|
|
140
|
+
typeAliases = new Map();
|
|
141
|
+
/**
|
|
142
|
+
* Register a type alias
|
|
143
|
+
*/
|
|
144
|
+
registerAlias(alias) {
|
|
145
|
+
this.typeAliases.set(alias.name, alias.underlyingType);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Register multiple type aliases
|
|
149
|
+
*/
|
|
150
|
+
registerAliases(aliases) {
|
|
151
|
+
for (const alias of aliases) {
|
|
152
|
+
this.registerAlias(alias);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Convert a Go type to JSON Schema property
|
|
157
|
+
*/
|
|
158
|
+
convert(goType) {
|
|
159
|
+
return convertGoType(goType, this.typeAliases);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Convert a GoStruct to a GoSchema
|
|
163
|
+
*/
|
|
164
|
+
structToSchema(struct, allStructs) {
|
|
165
|
+
const properties = {};
|
|
166
|
+
const required = [];
|
|
167
|
+
// Process embedded types first if we have access to all structs
|
|
168
|
+
if (allStructs) {
|
|
169
|
+
for (const embeddedName of struct.embeddedTypes) {
|
|
170
|
+
const baseName = embeddedName.replace(/^\*/, ''); // Remove pointer prefix
|
|
171
|
+
const embeddedStruct = allStructs.get(baseName);
|
|
172
|
+
if (embeddedStruct) {
|
|
173
|
+
// Merge embedded struct fields
|
|
174
|
+
for (const field of embeddedStruct.fields) {
|
|
175
|
+
if (field.skip)
|
|
176
|
+
continue;
|
|
177
|
+
const prop = this.convert(field.goType);
|
|
178
|
+
if (field.description) {
|
|
179
|
+
prop.description = field.description;
|
|
180
|
+
}
|
|
181
|
+
properties[field.jsonName] = prop;
|
|
182
|
+
// Embedded fields are never required by themselves
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// Process direct fields (may override embedded fields)
|
|
188
|
+
for (const field of struct.fields) {
|
|
189
|
+
if (field.skip)
|
|
190
|
+
continue;
|
|
191
|
+
const prop = this.convert(field.goType);
|
|
192
|
+
if (field.description) {
|
|
193
|
+
prop.description = field.description;
|
|
194
|
+
}
|
|
195
|
+
properties[field.jsonName] = prop;
|
|
196
|
+
// Field is required if it doesn't have omitempty AND
|
|
197
|
+
// (has validate:"required" OR doesn't have omitempty)
|
|
198
|
+
if (!field.omitempty) {
|
|
199
|
+
// For validation, only add to required if validate:"required" is present
|
|
200
|
+
// OR if there's no omitempty and it's a request struct (heuristic)
|
|
201
|
+
if (field.validateRequired) {
|
|
202
|
+
required.push(field.jsonName);
|
|
203
|
+
}
|
|
204
|
+
else if (!field.omitempty) {
|
|
205
|
+
// For CreateUserRequest-style structs, non-omitempty fields are required
|
|
206
|
+
// But we need to check if validateRequired is explicitly set
|
|
207
|
+
if (struct.name.includes('Request') || struct.name.includes('Input')) {
|
|
208
|
+
// For request/input structs, fields without omitempty are required
|
|
209
|
+
if (!field.omitempty && field.jsonName) {
|
|
210
|
+
required.push(field.jsonName);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return {
|
|
217
|
+
name: struct.name,
|
|
218
|
+
type: 'object',
|
|
219
|
+
description: struct.description,
|
|
220
|
+
properties,
|
|
221
|
+
required, // Always include required array for consistent checking
|
|
222
|
+
sourceLocation: struct.sourceLocation,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=type-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-converter.js","sourceRoot":"","sources":["../../../src/languages/go/type-converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Go Language Parser - Type Definitions
|
|
3
|
+
* Defines types for Go struct parsing, route detection, and schema generation
|
|
4
|
+
*/
|
|
5
|
+
import type { SourceLocation } from '../../types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Go struct field definition
|
|
8
|
+
*/
|
|
9
|
+
export interface GoField {
|
|
10
|
+
/** Original Go field name */
|
|
11
|
+
name: string;
|
|
12
|
+
/** JSON property name (from json tag, or field name if no tag) */
|
|
13
|
+
jsonName: string;
|
|
14
|
+
/** Go type (e.g., 'string', 'int64', '*User') */
|
|
15
|
+
goType: string;
|
|
16
|
+
/** Whether the field is a pointer type */
|
|
17
|
+
isPointer: boolean;
|
|
18
|
+
/** Whether the field has omitempty tag */
|
|
19
|
+
omitempty: boolean;
|
|
20
|
+
/** Whether the field should be skipped (json:"-") */
|
|
21
|
+
skip: boolean;
|
|
22
|
+
/** Whether the field has validate:"required" */
|
|
23
|
+
validateRequired: boolean;
|
|
24
|
+
/** Field documentation comment */
|
|
25
|
+
description?: string;
|
|
26
|
+
/** Source line number */
|
|
27
|
+
line?: number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Go struct definition
|
|
31
|
+
*/
|
|
32
|
+
export interface GoStruct {
|
|
33
|
+
/** Struct name */
|
|
34
|
+
name: string;
|
|
35
|
+
/** Struct fields */
|
|
36
|
+
fields: GoField[];
|
|
37
|
+
/** Embedded struct type names */
|
|
38
|
+
embeddedTypes: string[];
|
|
39
|
+
/** Documentation comment */
|
|
40
|
+
description?: string;
|
|
41
|
+
/** Source location */
|
|
42
|
+
sourceLocation?: SourceLocation;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Go interface method definition
|
|
46
|
+
*/
|
|
47
|
+
export interface GoMethod {
|
|
48
|
+
/** Method name */
|
|
49
|
+
name: string;
|
|
50
|
+
/** Parameter names */
|
|
51
|
+
parameters?: string[];
|
|
52
|
+
/** Return type names */
|
|
53
|
+
returnType?: string[];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Go interface definition
|
|
57
|
+
*/
|
|
58
|
+
export interface GoInterface {
|
|
59
|
+
/** Interface name */
|
|
60
|
+
name: string;
|
|
61
|
+
/** Interface methods */
|
|
62
|
+
methods: GoMethod[];
|
|
63
|
+
/** Embedded interface names */
|
|
64
|
+
embeddedInterfaces: string[];
|
|
65
|
+
/** Documentation comment */
|
|
66
|
+
description?: string;
|
|
67
|
+
/** Source location */
|
|
68
|
+
sourceLocation?: SourceLocation;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Go route definition from HTTP framework detection
|
|
72
|
+
*/
|
|
73
|
+
export interface GoRoute {
|
|
74
|
+
/** Route path (e.g., '/users/{id}') */
|
|
75
|
+
path: string;
|
|
76
|
+
/** HTTP method (GET, POST, etc.) */
|
|
77
|
+
method?: string;
|
|
78
|
+
/** Multiple methods (for stdlib that doesn't specify) */
|
|
79
|
+
methods?: string[];
|
|
80
|
+
/** Extracted path parameters */
|
|
81
|
+
pathParams?: string[];
|
|
82
|
+
/** Handler function name */
|
|
83
|
+
handler?: string;
|
|
84
|
+
/** Source line number */
|
|
85
|
+
line?: number;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Parsed JSON struct tag
|
|
89
|
+
*/
|
|
90
|
+
export interface ParsedTag {
|
|
91
|
+
/** JSON property name */
|
|
92
|
+
name: string;
|
|
93
|
+
/** Whether omitempty is present */
|
|
94
|
+
omitempty: boolean;
|
|
95
|
+
/** Whether to skip serialization (json:"-") */
|
|
96
|
+
skip: boolean;
|
|
97
|
+
/** Whether to serialize as string (json:",string") */
|
|
98
|
+
asString: boolean;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Options for parsing Go source code
|
|
102
|
+
*/
|
|
103
|
+
export interface GoParseOptions {
|
|
104
|
+
/** Source code content */
|
|
105
|
+
content: string;
|
|
106
|
+
/** File path for source location tracking */
|
|
107
|
+
filePath?: string;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Go schema (struct/interface) representation for output
|
|
111
|
+
*/
|
|
112
|
+
export interface GoSchema {
|
|
113
|
+
/** Schema name (struct/interface name) */
|
|
114
|
+
name: string;
|
|
115
|
+
/** Schema type: 'object', 'interface' */
|
|
116
|
+
type?: string;
|
|
117
|
+
/** Description from comments */
|
|
118
|
+
description?: string;
|
|
119
|
+
/** Properties for struct fields */
|
|
120
|
+
properties?: Record<string, GoProperty>;
|
|
121
|
+
/** Required fields (no omitempty) */
|
|
122
|
+
required?: string[];
|
|
123
|
+
/** For composition (embedded structs) */
|
|
124
|
+
allOf?: GoSchema[];
|
|
125
|
+
/** Interface methods */
|
|
126
|
+
methods?: GoMethod[];
|
|
127
|
+
/** Source location */
|
|
128
|
+
sourceLocation?: SourceLocation;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Property definition for Go struct fields in JSON Schema format
|
|
132
|
+
*/
|
|
133
|
+
export interface GoProperty {
|
|
134
|
+
type?: string;
|
|
135
|
+
format?: string;
|
|
136
|
+
description?: string;
|
|
137
|
+
items?: GoProperty;
|
|
138
|
+
additionalProperties?: GoProperty | boolean;
|
|
139
|
+
nullable?: boolean;
|
|
140
|
+
default?: unknown;
|
|
141
|
+
enum?: unknown[];
|
|
142
|
+
[key: string]: unknown;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Type alias definitions found in Go source
|
|
146
|
+
*/
|
|
147
|
+
export interface GoTypeAlias {
|
|
148
|
+
/** Alias name */
|
|
149
|
+
name: string;
|
|
150
|
+
/** Underlying type */
|
|
151
|
+
underlyingType: string;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/languages/go/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/languages/go/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|