@ir-kit/openapi-ts-orpc 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 (84) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +234 -0
  3. package/dist/config.d.ts +7 -0
  4. package/dist/config.d.ts.map +1 -0
  5. package/dist/config.js +101 -0
  6. package/dist/config.js.map +1 -0
  7. package/dist/generators/client.d.ts +7 -0
  8. package/dist/generators/client.d.ts.map +1 -0
  9. package/dist/generators/client.js +113 -0
  10. package/dist/generators/client.js.map +1 -0
  11. package/dist/generators/contract-validator.d.ts +21 -0
  12. package/dist/generators/contract-validator.d.ts.map +1 -0
  13. package/dist/generators/contract-validator.js +250 -0
  14. package/dist/generators/contract-validator.js.map +1 -0
  15. package/dist/generators/contract.d.ts +9 -0
  16. package/dist/generators/contract.d.ts.map +1 -0
  17. package/dist/generators/contract.js +159 -0
  18. package/dist/generators/contract.js.map +1 -0
  19. package/dist/generators/faker.d.ts +15 -0
  20. package/dist/generators/faker.d.ts.map +1 -0
  21. package/dist/generators/faker.js +61 -0
  22. package/dist/generators/faker.js.map +1 -0
  23. package/dist/generators/handlers/ast.d.ts +65 -0
  24. package/dist/generators/handlers/ast.d.ts.map +1 -0
  25. package/dist/generators/handlers/ast.js +262 -0
  26. package/dist/generators/handlers/ast.js.map +1 -0
  27. package/dist/generators/handlers/index.d.ts +37 -0
  28. package/dist/generators/handlers/index.d.ts.map +1 -0
  29. package/dist/generators/handlers/index.js +48 -0
  30. package/dist/generators/handlers/index.js.map +1 -0
  31. package/dist/generators/index.d.ts +14 -0
  32. package/dist/generators/index.d.ts.map +1 -0
  33. package/dist/generators/index.js +13 -0
  34. package/dist/generators/index.js.map +1 -0
  35. package/dist/generators/router.d.ts +7 -0
  36. package/dist/generators/router.d.ts.map +1 -0
  37. package/dist/generators/router.js +21 -0
  38. package/dist/generators/router.js.map +1 -0
  39. package/dist/generators/server.d.ts +7 -0
  40. package/dist/generators/server.d.ts.map +1 -0
  41. package/dist/generators/server.js +22 -0
  42. package/dist/generators/server.js.map +1 -0
  43. package/dist/generators/tanstack.d.ts +7 -0
  44. package/dist/generators/tanstack.d.ts.map +1 -0
  45. package/dist/generators/tanstack.js +27 -0
  46. package/dist/generators/tanstack.js.map +1 -0
  47. package/dist/generators/types.d.ts +74 -0
  48. package/dist/generators/types.d.ts.map +1 -0
  49. package/dist/generators/types.js +2 -0
  50. package/dist/generators/types.js.map +1 -0
  51. package/dist/index.d.ts +4 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +3 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/plugin.d.ts +7 -0
  56. package/dist/plugin.d.ts.map +1 -0
  57. package/dist/plugin.js +124 -0
  58. package/dist/plugin.js.map +1 -0
  59. package/dist/router-organizer.d.ts +13 -0
  60. package/dist/router-organizer.d.ts.map +1 -0
  61. package/dist/router-organizer.js +42 -0
  62. package/dist/router-organizer.js.map +1 -0
  63. package/dist/schema/extractor.d.ts +16 -0
  64. package/dist/schema/extractor.d.ts.map +1 -0
  65. package/dist/schema/extractor.js +133 -0
  66. package/dist/schema/extractor.js.map +1 -0
  67. package/dist/schema/index.d.ts +2 -0
  68. package/dist/schema/index.d.ts.map +1 -0
  69. package/dist/schema/index.js +2 -0
  70. package/dist/schema/index.js.map +1 -0
  71. package/dist/symbols/external.d.ts +8 -0
  72. package/dist/symbols/external.d.ts.map +1 -0
  73. package/dist/symbols/external.js +67 -0
  74. package/dist/symbols/external.js.map +1 -0
  75. package/dist/types.d.ts +238 -0
  76. package/dist/types.d.ts.map +1 -0
  77. package/dist/types.js +2 -0
  78. package/dist/types.js.map +1 -0
  79. package/dist/utils.d.ts +4 -0
  80. package/dist/utils.d.ts.map +1 -0
  81. package/dist/utils.js +13 -0
  82. package/dist/utils.js.map +1 -0
  83. package/docs/typia.md +152 -0
  84. package/package.json +101 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,CAAC;AAEjB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ORPCPlugin } from "./types";
2
+ /**
3
+ * Main oRPC plugin handler.
4
+ * Orchestrates the generation pipeline.
5
+ */
6
+ export declare const handler: ORPCPlugin["Handler"];
7
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,SAAS,CAAC;AAGtD;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,UAAU,CAAC,SAAS,CAqIzC,CAAC"}
package/dist/plugin.js ADDED
@@ -0,0 +1,124 @@
1
+ import { dirname, join, relative } from "node:path";
2
+ import { generateClients, generateContracts, generateFakerFactories, generateHandlers, generateRouter, generateServer, generateTanstack, } from "./generators";
3
+ import { extractResponseSchema } from "./schema/extractor";
4
+ import { registerExternalSymbols } from "./symbols/external";
5
+ import { operationName } from "./utils";
6
+ /**
7
+ * Main oRPC plugin handler.
8
+ * Orchestrates the generation pipeline.
9
+ */
10
+ export const handler = ({ plugin }) => {
11
+ // ============================================================================
12
+ // External Symbols Registration
13
+ // ============================================================================
14
+ registerExternalSymbols(plugin, plugin.config);
15
+ // ============================================================================
16
+ // File Paths Configuration
17
+ // ============================================================================
18
+ const contractFile = `${plugin.name}/contract.gen`;
19
+ const routerFile = `${plugin.name}/router.gen`;
20
+ const clientFile = `${plugin.name}/client.gen`;
21
+ const serverFile = `${plugin.name}/server.gen`;
22
+ const tanstackFile = `${plugin.name}/tanstack.gen`;
23
+ // ============================================================================
24
+ // Contract Generation
25
+ // ============================================================================
26
+ const { routerStructure } = generateContracts({
27
+ contractFile,
28
+ plugin,
29
+ });
30
+ // ============================================================================
31
+ // Router Generation
32
+ // ============================================================================
33
+ if (routerStructure.size > 0) {
34
+ const { routerSymbol } = generateRouter({
35
+ plugin,
36
+ routerFile,
37
+ routerStructure,
38
+ });
39
+ // ==========================================================================
40
+ // Server Generation
41
+ // ==========================================================================
42
+ if (plugin.config.server.implementation) {
43
+ generateServer({
44
+ plugin,
45
+ routerSymbol,
46
+ serverFile,
47
+ });
48
+ }
49
+ // ==========================================================================
50
+ // Handler Scaffolding
51
+ // ==========================================================================
52
+ const handlersConfig = plugin.config.server.handlers;
53
+ if (handlersConfig) {
54
+ // Absolute path to the output directory (e.g. /project/src/generated)
55
+ const outputDir = plugin.context.config.output.path;
56
+ // Absolute path to the handlers directory (e.g. /project/src/handlers)
57
+ const handlersDir = join(process.cwd(), handlersConfig.dir);
58
+ const serverGenAbsolute = join(outputDir, plugin.name, "server.gen");
59
+ const { importAlias } = handlersConfig;
60
+ const serverGenImport = importAlias
61
+ ? // e.g. "#/generated/@ir-kit/openapi-ts-orpc/server.gen"
62
+ `${importAlias}${relative(dirname(outputDir), serverGenAbsolute).replace(/\\/g, "/")}`
63
+ : // e.g. "../generated/@ir-kit/openapi-ts-orpc/server.gen"
64
+ relative(handlersDir, serverGenAbsolute).replace(/\\/g, "/");
65
+ let fakerFactoryNames;
66
+ let fakerGenImportBase;
67
+ if (handlersConfig.mode === "faker") {
68
+ const responseSchemas = new Map();
69
+ for (const [, nodes] of routerStructure) {
70
+ for (const node of nodes) {
71
+ const opName = operationName(node.operationName);
72
+ const schema = extractResponseSchema(node.operation, plugin);
73
+ if (schema)
74
+ responseSchemas.set(opName, schema);
75
+ }
76
+ }
77
+ const { factoryNames } = generateFakerFactories({
78
+ plugin,
79
+ routerStructure,
80
+ responseSchemas,
81
+ config: handlersConfig.faker,
82
+ });
83
+ fakerFactoryNames = factoryNames;
84
+ const pluginOutputAbsolute = join(outputDir, plugin.name);
85
+ fakerGenImportBase = importAlias
86
+ ? `${importAlias}${relative(dirname(outputDir), pluginOutputAbsolute).replace(/\\/g, "/")}`
87
+ : relative(handlersDir, pluginOutputAbsolute).replace(/\\/g, "/");
88
+ }
89
+ generateHandlers({
90
+ handlersDir,
91
+ serverGenImport,
92
+ routerStructure,
93
+ implementer: handlersConfig.implementer,
94
+ mode: handlersConfig.mode,
95
+ override: handlersConfig.override,
96
+ proxyConfig: handlersConfig.proxy,
97
+ fakerFactoryNames,
98
+ fakerGenImportBase,
99
+ });
100
+ }
101
+ // ==========================================================================
102
+ // Client Generation
103
+ // ==========================================================================
104
+ const { tanstack, ...transports } = plugin.config.client;
105
+ const clientTypes = Object.entries(transports)
106
+ .filter(([, enabled]) => enabled)
107
+ .map(([type]) => type);
108
+ if (clientTypes.length > 0) {
109
+ const context = {
110
+ clientFile,
111
+ contractFile,
112
+ plugin,
113
+ routerFile,
114
+ routerSymbol,
115
+ tanstackFile,
116
+ };
117
+ generateClients({ clientTypes, context });
118
+ if (tanstack) {
119
+ generateTanstack(context);
120
+ }
121
+ }
122
+ }
123
+ };
124
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Symbol as CodegenSymbol } from "@hey-api/codegen-core";
2
+ import { $ } from "@hey-api/openapi-ts";
3
+ import type { IR, NamingConfig } from "@hey-api/shared";
4
+ export type RouterNode = {
5
+ contractName: string;
6
+ contractSymbol: CodegenSymbol;
7
+ operation: IR.OperationObject;
8
+ operationName: string;
9
+ };
10
+ export type GroupMode = "tags" | "paths" | "flat" | "operationId";
11
+ export declare function getGroupKey(operation: IR.OperationObject, mode: GroupMode): string;
12
+ export declare function buildRouterObject(routerStructure: Map<string, RouterNode[]>, groupMode: GroupMode, namingConfig: NamingConfig): ReturnType<(typeof $)["object"]>;
13
+ //# sourceMappingURL=router-organizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-organizer.d.ts","sourceRoot":"","sources":["../src/router-organizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAC;AACxC,OAAO,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQxD,MAAM,MAAM,UAAU,GAAG;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,aAAa,CAAC;IAC9B,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC;AAElE,wBAAgB,WAAW,CACzB,SAAS,EAAE,EAAE,CAAC,eAAe,EAC7B,IAAI,EAAE,SAAS,GACd,MAAM,CAgBR;AAED,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAC1C,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,GACzB,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CA2BlC"}
@@ -0,0 +1,42 @@
1
+ import { $ } from "@hey-api/openapi-ts";
2
+ import { OperationPath } from "@hey-api/shared";
3
+ import { operationName } from "./utils";
4
+ const pathStrategy = OperationPath.fromPath();
5
+ const operationIdStrategy = OperationPath.fromOperationId();
6
+ export function getGroupKey(operation, mode) {
7
+ if (mode === "paths") {
8
+ const segments = pathStrategy(operation).filter((s) => !s.startsWith("{"));
9
+ return segments.slice(0, -1).join(".") || "root";
10
+ }
11
+ if (mode === "operationId") {
12
+ const segments = operationIdStrategy(operation);
13
+ return segments.length > 1 ? segments.slice(0, -1).join(".") : "default";
14
+ }
15
+ if (mode === "flat") {
16
+ return "flat";
17
+ }
18
+ return operation.tags?.[0] || "default";
19
+ }
20
+ export function buildRouterObject(routerStructure, groupMode, namingConfig) {
21
+ let routerObj = $.object().pretty();
22
+ if (groupMode === "flat") {
23
+ const nodes = routerStructure.get("flat") || [];
24
+ for (const node of nodes) {
25
+ const key = operationName(node.operationName, namingConfig);
26
+ routerObj = routerObj.prop(key, node.contractSymbol);
27
+ }
28
+ }
29
+ else {
30
+ for (const [namespace, nodes] of routerStructure.entries()) {
31
+ let namespaceObj = $.object().pretty();
32
+ for (const node of nodes) {
33
+ const key = operationName(node.operationName, namingConfig);
34
+ namespaceObj = namespaceObj.prop(key, node.contractSymbol);
35
+ }
36
+ const namespaceKey = operationName(namespace.replace(/\./g, "_"), namingConfig);
37
+ routerObj = routerObj.prop(namespaceKey, namespaceObj);
38
+ }
39
+ }
40
+ return routerObj;
41
+ }
42
+ //# sourceMappingURL=router-organizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-organizer.js","sourceRoot":"","sources":["../src/router-organizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;AAC9C,MAAM,mBAAmB,GAAG,aAAa,CAAC,eAAe,EAAE,CAAC;AAW5D,MAAM,UAAU,WAAW,CACzB,SAA6B,EAC7B,IAAe;IAEf,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC;IACnD,CAAC;IAED,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,CAAC;IAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,eAA0C,EAC1C,SAAoB,EACpB,YAA0B;IAE1B,IAAI,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;IAEpC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAC5D,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3D,IAAI,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;YAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;gBAC5D,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7D,CAAC;YAED,MAAM,YAAY,GAAG,aAAa,CAChC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAC7B,YAAY,CACb,CAAC;YACF,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Extracts response schema info from OpenAPI operations for faker mode.
3
+ * Walks the raw OpenAPI spec resolving $ref, allOf, oneOf/anyOf, and
4
+ * nested object/array schemas into a flat PropertyInfo tree.
5
+ */
6
+ import type { IR } from "@hey-api/shared";
7
+ import type { ResponseSchemaInfo } from "@ir-kit/openapi-ts-faker/core";
8
+ import type { ORPCPlugin } from "../types";
9
+ type PluginCtx = ORPCPlugin["Instance"];
10
+ /**
11
+ * Extract response schema info from an operation's success response.
12
+ * Handles $ref, allOf composition, oneOf/anyOf unions, and nested schemas.
13
+ */
14
+ export declare function extractResponseSchema(operation: IR.OperationObject, plugin: PluginCtx): ResponseSchemaInfo | null;
15
+ export {};
16
+ //# sourceMappingURL=extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/schema/extractor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAEV,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,KAAK,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;AAoCxC;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,EAAE,CAAC,eAAe,EAC7B,MAAM,EAAE,SAAS,GAChB,kBAAkB,GAAG,IAAI,CAyB3B"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Extracts response schema info from OpenAPI operations for faker mode.
3
+ * Walks the raw OpenAPI spec resolving $ref, allOf, oneOf/anyOf, and
4
+ * nested object/array schemas into a flat PropertyInfo tree.
5
+ */
6
+ function resolve(schema, plugin) {
7
+ if (!schema)
8
+ return schema;
9
+ if (schema.$ref)
10
+ return resolve(plugin.context.resolveRef(schema.$ref), plugin);
11
+ return schema;
12
+ }
13
+ /**
14
+ * Extract response schema info from an operation's success response.
15
+ * Handles $ref, allOf composition, oneOf/anyOf unions, and nested schemas.
16
+ */
17
+ export function extractResponseSchema(operation, plugin) {
18
+ if (!operation.responses)
19
+ return null;
20
+ const pathItem = plugin.context.spec.paths?.[operation.path];
21
+ const openApiOp = pathItem?.[operation.method];
22
+ if (!openApiOp?.responses)
23
+ return null;
24
+ for (const statusCode in openApiOp.responses) {
25
+ const numeric = Number.parseInt(statusCode, 10);
26
+ if (numeric < 200 || numeric >= 300)
27
+ continue;
28
+ const response = resolve(openApiOp.responses[statusCode], plugin);
29
+ if (!response)
30
+ continue;
31
+ // Prefer application/json, fall back to first available content type
32
+ const content = response?.content;
33
+ const jsonSchema = content?.["application/json"]?.schema ??
34
+ Object.values(content ?? {}).find((c) => c?.schema)?.schema;
35
+ if (!jsonSchema)
36
+ continue;
37
+ return buildSchemaInfo(resolve(jsonSchema, plugin), plugin);
38
+ }
39
+ return null;
40
+ }
41
+ /** Build a ResponseSchemaInfo from a resolved JSON schema node. */
42
+ function buildSchemaInfo(schema, plugin) {
43
+ const resolved = resolve(schema, plugin);
44
+ if (!resolved)
45
+ return null;
46
+ if (resolved.type === "array") {
47
+ const itemSchema = resolve(resolved.items, plugin);
48
+ const itemInfo = itemSchema
49
+ ? buildPropertyInfo("item", itemSchema, plugin)
50
+ : undefined;
51
+ if (itemInfo?.children) {
52
+ return { properties: itemInfo.children, isArray: true };
53
+ }
54
+ return { properties: {}, isArray: true };
55
+ }
56
+ if (resolved.allOf) {
57
+ const merged = mergeAllOf(resolved.allOf, plugin);
58
+ return { properties: merged, isArray: false };
59
+ }
60
+ const unionVariants = resolved.oneOf ?? resolved.anyOf;
61
+ if (unionVariants && unionVariants.length > 0) {
62
+ const firstVariant = resolve(unionVariants[0], plugin);
63
+ if (firstVariant)
64
+ return buildSchemaInfo(firstVariant, plugin);
65
+ }
66
+ if (resolved.properties) {
67
+ const props = extractProperties(resolved, plugin);
68
+ return { properties: props, isArray: false };
69
+ }
70
+ return null;
71
+ }
72
+ /** Merge an allOf array into a flat properties map. */
73
+ function mergeAllOf(allOf, plugin) {
74
+ const merged = {};
75
+ for (const part of allOf) {
76
+ const resolved = resolve(part, plugin);
77
+ if (!resolved)
78
+ continue;
79
+ if (resolved.allOf) {
80
+ Object.assign(merged, mergeAllOf(resolved.allOf, plugin));
81
+ continue;
82
+ }
83
+ if (resolved.properties) {
84
+ Object.assign(merged, extractProperties(resolved, plugin));
85
+ }
86
+ }
87
+ return merged;
88
+ }
89
+ /** Extract properties from an object schema into PropertyInfo records. */
90
+ function extractProperties(schema, plugin) {
91
+ const result = {};
92
+ if (!schema.properties)
93
+ return result;
94
+ for (const [key, rawProp] of Object.entries(schema.properties)) {
95
+ result[key] = buildPropertyInfo(key, resolve(rawProp, plugin), plugin);
96
+ }
97
+ return result;
98
+ }
99
+ /** Build a single PropertyInfo, recursing into nested objects/arrays. */
100
+ function buildPropertyInfo(name, schema, plugin) {
101
+ const resolved = resolve(schema, plugin);
102
+ if (!resolved)
103
+ return { type: "string", name };
104
+ const type = Array.isArray(resolved.type)
105
+ ? (resolved.type.find((t) => t !== "null") ?? "string")
106
+ : (resolved.type ?? "string");
107
+ const info = { type, format: resolved.format, name };
108
+ if (resolved.enum && resolved.enum.length > 0) {
109
+ info.enum = resolved.enum;
110
+ }
111
+ if (resolved.allOf) {
112
+ info.type = "object";
113
+ info.children = mergeAllOf(resolved.allOf, plugin);
114
+ return info;
115
+ }
116
+ const unionVariants = resolved.oneOf ?? resolved.anyOf;
117
+ if (unionVariants && unionVariants.length > 0) {
118
+ const firstVariant = resolve(unionVariants[0], plugin);
119
+ if (firstVariant)
120
+ return buildPropertyInfo(name, firstVariant, plugin);
121
+ }
122
+ if (type === "object" && resolved.properties) {
123
+ info.children = extractProperties(resolved, plugin);
124
+ }
125
+ if (type === "array" && resolved.items) {
126
+ const itemResolved = resolve(resolved.items, plugin);
127
+ if (itemResolved) {
128
+ info.items = buildPropertyInfo("item", itemResolved, plugin);
129
+ }
130
+ }
131
+ return info;
132
+ }
133
+ //# sourceMappingURL=extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/schema/extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { extractResponseSchema } from "./extractor";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { extractResponseSchema } from "./extractor";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { PluginInstance } from "@hey-api/shared";
2
+ import type { Config } from "../types";
3
+ /**
4
+ * Register all external symbols from oRPC packages.
5
+ * These symbols are imported from external packages and used throughout the plugin.
6
+ */
7
+ export declare const registerExternalSymbols: (plugin: PluginInstance, config: Pick<Config, "validator" | "server">) => void;
8
+ //# sourceMappingURL=external.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../../src/symbols/external.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAClC,QAAQ,cAAc,EACtB,QAAQ,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC,SAuE7C,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Register all external symbols from oRPC packages.
3
+ * These symbols are imported from external packages and used throughout the plugin.
4
+ */
5
+ export const registerExternalSymbols = (plugin, config) => {
6
+ // Core oRPC contract symbols
7
+ plugin.symbol("oc", {
8
+ external: "@orpc/contract",
9
+ meta: { category: "external", resource: "@orpc/contract.oc" },
10
+ });
11
+ plugin.symbol("ContractRouterClient", {
12
+ external: "@orpc/contract",
13
+ meta: {
14
+ category: "external",
15
+ resource: "@orpc/contract.ContractRouterClient",
16
+ },
17
+ });
18
+ plugin.symbol("createORPCClient", {
19
+ external: "@orpc/client",
20
+ meta: { category: "external", resource: "@orpc/client.createORPCClient" },
21
+ });
22
+ // RPCLink transports (native RPC protocol)
23
+ plugin.symbol("RPCLink", {
24
+ external: "@orpc/client/fetch",
25
+ meta: { category: "external", resource: "@orpc/client/fetch.RPCLink" },
26
+ });
27
+ plugin.symbol("RPCLinkWebSocket", {
28
+ external: "@orpc/client/websocket",
29
+ meta: { category: "external", resource: "@orpc/client/websocket.RPCLink" },
30
+ });
31
+ plugin.symbol("RPCLinkMessagePort", {
32
+ external: "@orpc/client/message-port",
33
+ meta: {
34
+ category: "external",
35
+ resource: "@orpc/client/message-port.RPCLink",
36
+ },
37
+ });
38
+ // OpenAPILink (REST protocol)
39
+ plugin.symbol("OpenAPILink", {
40
+ external: "@orpc/openapi-client/fetch",
41
+ meta: {
42
+ category: "external",
43
+ resource: "@orpc/openapi-client/fetch.OpenAPILink",
44
+ },
45
+ });
46
+ // TanStack Query integration
47
+ plugin.symbol("createTanstackQueryUtils", {
48
+ external: "@orpc/tanstack-query",
49
+ meta: {
50
+ category: "external",
51
+ resource: "@orpc/tanstack-query.createTanstackQueryUtils",
52
+ },
53
+ });
54
+ // Server implementation
55
+ plugin.symbol("implement", {
56
+ external: "@orpc/server",
57
+ meta: { category: "external", resource: "@orpc/server.implement" },
58
+ });
59
+ // Register faker when handler mode is 'faker'
60
+ if (config.server.handlers && config.server.handlers.mode === "faker") {
61
+ plugin.symbol("faker", {
62
+ external: "@faker-js/faker",
63
+ meta: { category: "external", resource: "@faker-js/faker.faker" },
64
+ });
65
+ }
66
+ };
67
+ //# sourceMappingURL=external.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external.js","sourceRoot":"","sources":["../../src/symbols/external.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,MAAsB,EACtB,MAA4C,EAC5C,EAAE;IACF,6BAA6B;IAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QAClB,QAAQ,EAAE,gBAAgB;QAC1B,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,mBAAmB,EAAE;KAC9D,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE;QACpC,QAAQ,EAAE,gBAAgB;QAC1B,IAAI,EAAE;YACJ,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,qCAAqC;SAChD;KACF,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE;QAChC,QAAQ,EAAE,cAAc;QACxB,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,+BAA+B,EAAE;KAC1E,CAAC,CAAC;IAEH,2CAA2C;IAC3C,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;QACvB,QAAQ,EAAE,oBAAoB;QAC9B,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,4BAA4B,EAAE;KACvE,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE;QAChC,QAAQ,EAAE,wBAAwB;QAClC,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,gCAAgC,EAAE;KAC3E,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE;QAClC,QAAQ,EAAE,2BAA2B;QACrC,IAAI,EAAE;YACJ,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,mCAAmC;SAC9C;KACF,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;QAC3B,QAAQ,EAAE,4BAA4B;QACtC,IAAI,EAAE;YACJ,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,wCAAwC;SACnD;KACF,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE;QACxC,QAAQ,EAAE,sBAAsB;QAChC,IAAI,EAAE;YACJ,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,+CAA+C;SAC1D;KACF,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;QACzB,QAAQ,EAAE,cAAc;QACxB,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,wBAAwB,EAAE;KACnE,CAAC,CAAC;IAEH,8CAA8C;IAC9C,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACtE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;YACrB,QAAQ,EAAE,iBAAiB;YAC3B,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,uBAAuB,EAAE;SAClE,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC"}