@pikku/inspector 0.11.1 → 0.12.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 (189) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/OPTIMIZATION-PLAN.md +195 -0
  3. package/dist/add/add-ai-agent.d.ts +2 -0
  4. package/dist/add/add-ai-agent.js +314 -0
  5. package/dist/add/add-channel.js +69 -61
  6. package/dist/add/add-cli.js +36 -18
  7. package/dist/add/add-file-with-factory.js +2 -0
  8. package/dist/add/add-functions.js +327 -59
  9. package/dist/add/add-http-route.d.ts +19 -10
  10. package/dist/add/add-http-route.js +153 -44
  11. package/dist/add/add-http-routes.d.ts +5 -0
  12. package/dist/add/add-http-routes.js +159 -0
  13. package/dist/add/add-keyed-wiring.d.ts +12 -0
  14. package/dist/add/add-keyed-wiring.js +97 -0
  15. package/dist/add/add-mcp-prompt.js +14 -9
  16. package/dist/add/add-mcp-resource.js +14 -9
  17. package/dist/add/add-middleware.d.ts +1 -4
  18. package/dist/add/add-middleware.js +364 -79
  19. package/dist/add/add-permission.d.ts +1 -1
  20. package/dist/add/add-permission.js +152 -40
  21. package/dist/add/add-queue-worker.js +18 -12
  22. package/dist/add/add-rpc-invocations.d.ts +3 -0
  23. package/dist/add/add-rpc-invocations.js +65 -25
  24. package/dist/add/add-schedule.js +11 -5
  25. package/dist/add/add-secret.d.ts +3 -0
  26. package/dist/add/add-secret.js +82 -0
  27. package/dist/add/add-trigger.d.ts +2 -0
  28. package/dist/add/add-trigger.js +87 -0
  29. package/dist/add/add-variable.d.ts +1 -0
  30. package/dist/add/add-variable.js +8 -0
  31. package/dist/add/add-workflow-graph.d.ts +7 -0
  32. package/dist/add/add-workflow-graph.js +396 -0
  33. package/dist/add/add-workflow.js +124 -26
  34. package/dist/error-codes.d.ts +16 -1
  35. package/dist/error-codes.js +21 -1
  36. package/dist/index.d.ts +9 -5
  37. package/dist/index.js +5 -2
  38. package/dist/inspector.d.ts +1 -1
  39. package/dist/inspector.js +106 -13
  40. package/dist/schema-generator.d.ts +1 -0
  41. package/dist/schema-generator.js +1 -0
  42. package/dist/types-map.js +10 -1
  43. package/dist/types.d.ts +180 -30
  44. package/dist/utils/compute-required-schemas.d.ts +4 -0
  45. package/dist/utils/compute-required-schemas.js +41 -0
  46. package/dist/utils/contract-hashes.d.ts +35 -0
  47. package/dist/utils/contract-hashes.js +202 -0
  48. package/dist/utils/custom-types-generator.d.ts +9 -0
  49. package/dist/utils/custom-types-generator.js +71 -0
  50. package/dist/utils/detect-schema-vendor.d.ts +22 -0
  51. package/dist/utils/detect-schema-vendor.js +76 -0
  52. package/dist/utils/ensure-function-metadata.d.ts +5 -2
  53. package/dist/utils/ensure-function-metadata.js +220 -6
  54. package/dist/utils/extract-function-name.d.ts +5 -16
  55. package/dist/utils/extract-function-name.js +93 -298
  56. package/dist/utils/extract-services.d.ts +2 -1
  57. package/dist/utils/extract-services.js +25 -1
  58. package/dist/utils/filter-inspector-state.js +107 -23
  59. package/dist/utils/get-property-value.d.ts +8 -2
  60. package/dist/utils/get-property-value.js +33 -4
  61. package/dist/utils/hash.d.ts +2 -0
  62. package/dist/utils/hash.js +23 -0
  63. package/dist/utils/middleware.d.ts +7 -30
  64. package/dist/utils/middleware.js +80 -66
  65. package/dist/utils/permissions.d.ts +2 -2
  66. package/dist/utils/permissions.js +10 -10
  67. package/dist/utils/post-process.d.ts +9 -10
  68. package/dist/utils/post-process.js +231 -24
  69. package/dist/utils/resolve-external-package.d.ts +12 -0
  70. package/dist/utils/resolve-external-package.js +34 -0
  71. package/dist/utils/resolve-function-types.d.ts +6 -0
  72. package/dist/utils/resolve-function-types.js +29 -0
  73. package/dist/utils/resolve-identifier.d.ts +10 -0
  74. package/dist/utils/resolve-identifier.js +36 -0
  75. package/dist/utils/resolve-versions.d.ts +2 -0
  76. package/dist/utils/resolve-versions.js +78 -0
  77. package/dist/utils/schema-generator.d.ts +9 -0
  78. package/dist/utils/schema-generator.js +209 -0
  79. package/dist/utils/serialize-inspector-state.d.ts +73 -13
  80. package/dist/utils/serialize-inspector-state.js +102 -6
  81. package/dist/utils/serialize-mcp-json.d.ts +2 -0
  82. package/dist/utils/serialize-mcp-json.js +99 -0
  83. package/dist/utils/serialize-middleware-groups-meta.d.ts +12 -0
  84. package/dist/utils/serialize-middleware-groups-meta.js +28 -0
  85. package/dist/utils/serialize-openapi-json.d.ts +85 -0
  86. package/dist/utils/serialize-openapi-json.js +151 -0
  87. package/dist/utils/serialize-permissions-groups-meta.d.ts +6 -0
  88. package/dist/utils/serialize-permissions-groups-meta.js +31 -0
  89. package/dist/utils/workflow/dsl/deserialize-dsl-workflow.d.ts +24 -0
  90. package/dist/utils/workflow/dsl/deserialize-dsl-workflow.js +830 -0
  91. package/dist/{workflow/extract-simple-workflow.d.ts → utils/workflow/dsl/extract-dsl-workflow.d.ts} +4 -2
  92. package/dist/{workflow/extract-simple-workflow.js → utils/workflow/dsl/extract-dsl-workflow.js} +572 -72
  93. package/dist/utils/workflow/dsl/index.d.ts +7 -0
  94. package/dist/utils/workflow/dsl/index.js +7 -0
  95. package/dist/{workflow → utils/workflow/dsl}/patterns.d.ts +21 -0
  96. package/dist/{workflow → utils/workflow/dsl}/patterns.js +90 -10
  97. package/dist/{workflow → utils/workflow/dsl}/validation.d.ts +2 -0
  98. package/dist/{workflow → utils/workflow/dsl}/validation.js +25 -7
  99. package/dist/utils/workflow/graph/convert-dsl-to-graph.d.ts +13 -0
  100. package/dist/utils/workflow/graph/convert-dsl-to-graph.js +318 -0
  101. package/dist/utils/workflow/graph/finalize-workflow-wires.d.ts +3 -0
  102. package/dist/utils/workflow/graph/finalize-workflow-wires.js +276 -0
  103. package/dist/utils/workflow/graph/finalize-workflows.d.ts +2 -0
  104. package/dist/utils/workflow/graph/finalize-workflows.js +75 -0
  105. package/dist/utils/workflow/graph/index.d.ts +8 -0
  106. package/dist/utils/workflow/graph/index.js +8 -0
  107. package/dist/utils/workflow/graph/serialize-workflow-graph.d.ts +35 -0
  108. package/dist/utils/workflow/graph/serialize-workflow-graph.js +150 -0
  109. package/dist/utils/workflow/graph/workflow-graph.types.d.ts +203 -0
  110. package/dist/utils/workflow/graph/workflow-graph.types.js +38 -0
  111. package/dist/visit.js +13 -2
  112. package/package.json +26 -4
  113. package/src/add/add-ai-agent.ts +468 -0
  114. package/src/add/add-channel.ts +82 -79
  115. package/src/add/add-cli.ts +49 -20
  116. package/src/add/add-file-with-factory.ts +2 -0
  117. package/src/add/add-functions.ts +429 -71
  118. package/src/add/add-http-route.ts +246 -65
  119. package/src/add/add-http-routes.ts +228 -0
  120. package/src/add/add-keyed-wiring.ts +151 -0
  121. package/src/add/add-mcp-prompt.ts +26 -15
  122. package/src/add/add-mcp-resource.ts +27 -15
  123. package/src/add/add-middleware.ts +482 -80
  124. package/src/add/add-permission.ts +199 -40
  125. package/src/add/add-queue-worker.ts +24 -19
  126. package/src/add/add-rpc-invocations.ts +78 -31
  127. package/src/add/add-schedule.ts +16 -11
  128. package/src/add/add-secret.ts +140 -0
  129. package/src/add/add-trigger.ts +154 -0
  130. package/src/add/add-variable.ts +9 -0
  131. package/src/add/add-workflow-graph.ts +522 -0
  132. package/src/add/add-workflow.ts +117 -30
  133. package/src/error-codes.ts +26 -1
  134. package/src/index.ts +27 -8
  135. package/src/inspector.ts +145 -17
  136. package/src/schema-generator.ts +1 -0
  137. package/src/types-map.ts +12 -1
  138. package/src/types.ts +192 -51
  139. package/src/utils/compute-required-schemas.ts +49 -0
  140. package/src/utils/contract-hashes.test.ts +528 -0
  141. package/src/utils/contract-hashes.ts +290 -0
  142. package/src/utils/custom-types-generator.ts +88 -0
  143. package/src/utils/detect-schema-vendor.ts +90 -0
  144. package/src/utils/ensure-function-metadata.ts +324 -7
  145. package/src/utils/extract-function-name.ts +108 -358
  146. package/src/utils/extract-services.ts +35 -2
  147. package/src/utils/filter-inspector-state.test.ts +34 -20
  148. package/src/utils/filter-inspector-state.ts +140 -31
  149. package/src/utils/get-property-value.ts +50 -5
  150. package/src/utils/hash.ts +26 -0
  151. package/src/utils/middleware.test.ts +204 -0
  152. package/src/utils/middleware.ts +129 -67
  153. package/src/utils/permissions.test.ts +35 -12
  154. package/src/utils/permissions.ts +10 -10
  155. package/src/utils/post-process.ts +283 -43
  156. package/src/utils/resolve-external-package.ts +42 -0
  157. package/src/utils/resolve-function-types.ts +42 -0
  158. package/src/utils/resolve-identifier.ts +46 -0
  159. package/src/utils/resolve-versions.test.ts +249 -0
  160. package/src/utils/resolve-versions.ts +105 -0
  161. package/src/utils/schema-generator.ts +329 -0
  162. package/src/utils/serialize-inspector-state.ts +181 -20
  163. package/src/utils/serialize-mcp-json.ts +145 -0
  164. package/src/utils/serialize-middleware-groups-meta.ts +33 -0
  165. package/src/utils/serialize-openapi-json.ts +277 -0
  166. package/src/utils/serialize-permissions-groups-meta.ts +35 -0
  167. package/src/utils/test-data/inspector-state.json +69 -66
  168. package/src/utils/workflow/dsl/deserialize-dsl-workflow.ts +1104 -0
  169. package/src/{workflow/extract-simple-workflow.ts → utils/workflow/dsl/extract-dsl-workflow.ts} +678 -85
  170. package/src/utils/workflow/dsl/index.ts +11 -0
  171. package/src/{workflow → utils/workflow/dsl}/patterns.ts +108 -11
  172. package/src/{workflow → utils/workflow/dsl}/validation.ts +34 -7
  173. package/src/utils/workflow/graph/convert-dsl-to-graph.ts +422 -0
  174. package/src/utils/workflow/graph/finalize-workflow-wires.ts +310 -0
  175. package/src/utils/workflow/graph/finalize-workflows.ts +100 -0
  176. package/src/utils/workflow/graph/index.ts +11 -0
  177. package/src/utils/workflow/graph/serialize-workflow-graph.ts +216 -0
  178. package/src/utils/workflow/graph/workflow-graph.types.ts +231 -0
  179. package/src/visit.ts +14 -2
  180. package/tsconfig.tsbuildinfo +1 -1
  181. package/dist/add/add-mcp-tool.d.ts +0 -2
  182. package/dist/add/add-mcp-tool.js +0 -81
  183. package/dist/utils/extract-service-metadata.d.ts +0 -19
  184. package/dist/utils/extract-service-metadata.js +0 -244
  185. package/dist/utils/write-service-metadata.d.ts +0 -13
  186. package/dist/utils/write-service-metadata.js +0 -37
  187. package/src/add/add-mcp-tool.ts +0 -141
  188. package/src/utils/extract-service-metadata.ts +0 -353
  189. package/src/utils/write-service-metadata.ts +0 -51
@@ -0,0 +1,203 @@
1
+ /**
2
+ * Serialized types for workflow graphs
3
+ * These are extracted by the inspector and stored as JSON
4
+ * Can be created from code (pikkuWorkflowGraph) or UI
5
+ */
6
+ /**
7
+ * Reference to data from another node or trigger
8
+ */
9
+ export interface DataRef {
10
+ /** Source: 'trigger' for trigger input, or node ID for node output */
11
+ $ref: string;
12
+ /** Optional path into the data (dot notation: 'body.orderId') */
13
+ path?: string;
14
+ }
15
+ /**
16
+ * Check if value is a DataRef
17
+ */
18
+ export declare const isDataRef: (value: unknown) => value is DataRef;
19
+ /**
20
+ * Reference to a context/state variable
21
+ */
22
+ export interface StateRef {
23
+ /** Context variable name */
24
+ $state: string;
25
+ /** Optional path into the value (dot notation for nested objects) */
26
+ path?: string;
27
+ }
28
+ /**
29
+ * Check if value is a StateRef
30
+ */
31
+ export declare const isStateRef: (value: unknown) => value is StateRef;
32
+ /**
33
+ * Helper functions for building input mappings
34
+ */
35
+ export declare const ref: (nodeId: string, path?: string) => DataRef;
36
+ export declare const state: (name: string, path?: string) => StateRef;
37
+ /**
38
+ * Condition for branching
39
+ */
40
+ export interface BranchCondition {
41
+ /** Expression to evaluate (uses node output references) */
42
+ expression: string;
43
+ /** Target node(s) if condition is true */
44
+ target: string | string[];
45
+ }
46
+ /**
47
+ * Next node configuration
48
+ */
49
+ export type SerializedNext = string | string[] | {
50
+ /** Conditions evaluated in order, first match wins */
51
+ conditions: BranchCondition[];
52
+ /** Default target if no conditions match */
53
+ default?: string | string[];
54
+ };
55
+ /**
56
+ * Node execution options
57
+ */
58
+ export interface NodeOptions {
59
+ /** Number of retry attempts on failure */
60
+ retries?: number;
61
+ /** Delay between retries (e.g., '1s', '5s') */
62
+ retryDelay?: string;
63
+ /** Timeout for node execution (e.g., '30s', '5m') */
64
+ timeout?: string;
65
+ /** If true, execute via queue (async). Default: false (inline) */
66
+ async?: boolean;
67
+ }
68
+ /**
69
+ * Flow node types for control flow (no RPC call)
70
+ */
71
+ export type FlowType = 'sleep' | 'branch' | 'parallel' | 'fanout' | 'inline' | 'switch' | 'filter' | 'arrayPredicate' | 'return' | 'cancel' | 'set';
72
+ import type { ContextVariable, WorkflowContext } from '@pikku/core/workflow';
73
+ export type { ContextVariable, WorkflowContext };
74
+ /**
75
+ * Base node properties shared by all node types
76
+ */
77
+ interface BaseNode {
78
+ /** Node ID */
79
+ nodeId: string;
80
+ /** Step name/description */
81
+ stepName?: string;
82
+ /** Next node(s) - simple, parallel, or conditional */
83
+ next?: SerializedNext;
84
+ /** Error routing - node(s) to execute on error */
85
+ onError?: string | string[];
86
+ /** Execution options */
87
+ options?: NodeOptions;
88
+ }
89
+ /**
90
+ * Function node - calls an RPC
91
+ */
92
+ export interface FunctionNode extends BaseNode {
93
+ /** RPC function name */
94
+ rpcName: string;
95
+ /** Input mapping - values can be literals or DataRefs */
96
+ input?: Record<string, unknown | DataRef>;
97
+ /** Output variable name for storing result */
98
+ outputVar?: string;
99
+ /** Hash of nodeId + RPC input/output schemas for version detection */
100
+ stepHash?: string;
101
+ }
102
+ /**
103
+ * Flow node - control flow only, no RPC call
104
+ */
105
+ export interface FlowNode extends BaseNode {
106
+ /** Flow type */
107
+ flow: FlowType;
108
+ /** Flow-specific properties */
109
+ [key: string]: unknown;
110
+ }
111
+ /**
112
+ * Serialized graph node - either a function node or flow node
113
+ */
114
+ export type SerializedGraphNode = FunctionNode | FlowNode;
115
+ /**
116
+ * Type guard for function nodes
117
+ */
118
+ export declare const isFunctionNode: (node: SerializedGraphNode) => node is FunctionNode;
119
+ /**
120
+ * Type guard for flow nodes
121
+ */
122
+ export declare const isFlowNode: (node: SerializedGraphNode) => node is FlowNode;
123
+ /**
124
+ * Workflow source type
125
+ * - 'dsl': Pure DSL workflow (pikkuWorkflowFunc) - can be round-tripped to code
126
+ * - 'complex': Complex workflow (pikkuWorkflowComplexFunc) - contains inline steps, not serializable
127
+ * - 'graph': Graph-based workflow (pikkuWorkflowGraph)
128
+ */
129
+ export type WorkflowSourceType = 'dsl' | 'complex' | 'graph';
130
+ /**
131
+ * Serialized workflow graph - the canonical JSON format
132
+ */
133
+ export interface SerializedWorkflowGraph {
134
+ /** Workflow name */
135
+ name: string;
136
+ /** Pikku function name (for runtime registration) */
137
+ pikkuFuncId: string;
138
+ /** Source type: 'dsl' for pikkuWorkflowFunc, 'graph' for pikkuWorkflowGraph */
139
+ source: WorkflowSourceType;
140
+ /** Optional description */
141
+ description?: string;
142
+ /** Tags for organization */
143
+ tags?: string[];
144
+ /** Workflow context/state variables (from Zod schema) */
145
+ context?: WorkflowContext;
146
+ /** Serialized nodes */
147
+ nodes: Record<string, SerializedGraphNode>;
148
+ /** Entry node(s) - first nodes to execute */
149
+ entryNodeIds: string[];
150
+ /** Hash of graph topology (nodes, edges, input mappings) */
151
+ graphHash?: string;
152
+ /** Wire entry points (HTTP, channel, queue, etc.) that trigger this workflow */
153
+ wires?: WorkflowWires;
154
+ }
155
+ export interface WorkflowWires {
156
+ http?: Array<{
157
+ route: string;
158
+ method: string;
159
+ startNode: string;
160
+ }>;
161
+ channel?: Array<{
162
+ name: string;
163
+ route: string;
164
+ onConnect?: string;
165
+ onMessage?: string;
166
+ onDisconnect?: string;
167
+ onMessageRoute?: Record<string, string>;
168
+ }>;
169
+ queue?: Array<{
170
+ name: string;
171
+ startNode: string;
172
+ }>;
173
+ cli?: Array<{
174
+ command: string;
175
+ startNode: string;
176
+ }>;
177
+ mcp?: {
178
+ tool?: Array<{
179
+ name: string;
180
+ startNode: string;
181
+ }>;
182
+ prompt?: Array<{
183
+ name: string;
184
+ startNode: string;
185
+ }>;
186
+ resource?: Array<{
187
+ uri: string;
188
+ startNode: string;
189
+ }>;
190
+ };
191
+ schedule?: Array<{
192
+ cron: string;
193
+ startNode: string;
194
+ }>;
195
+ trigger?: Array<{
196
+ name: string;
197
+ startNode: string;
198
+ }>;
199
+ }
200
+ /**
201
+ * All workflow graphs (serialized)
202
+ */
203
+ export type SerializedWorkflowGraphs = Record<string, SerializedWorkflowGraph>;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Serialized types for workflow graphs
3
+ * These are extracted by the inspector and stored as JSON
4
+ * Can be created from code (pikkuWorkflowGraph) or UI
5
+ */
6
+ /**
7
+ * Check if value is a DataRef
8
+ */
9
+ export const isDataRef = (value) => typeof value === 'object' &&
10
+ value !== null &&
11
+ '$ref' in value &&
12
+ typeof value.$ref === 'string';
13
+ /**
14
+ * Check if value is a StateRef
15
+ */
16
+ export const isStateRef = (value) => typeof value === 'object' &&
17
+ value !== null &&
18
+ '$state' in value &&
19
+ typeof value.$state === 'string';
20
+ /**
21
+ * Helper functions for building input mappings
22
+ */
23
+ export const ref = (nodeId, path) => ({
24
+ $ref: nodeId,
25
+ path,
26
+ });
27
+ export const state = (name, path) => ({
28
+ $state: name,
29
+ path,
30
+ });
31
+ /**
32
+ * Type guard for function nodes
33
+ */
34
+ export const isFunctionNode = (node) => 'rpcName' in node;
35
+ /**
36
+ * Type guard for flow nodes
37
+ */
38
+ export const isFlowNode = (node) => 'flow' in node;
package/dist/visit.js CHANGED
@@ -2,11 +2,12 @@ import * as ts from 'typescript';
2
2
  import { addFileWithFactory } from './add/add-file-with-factory.js';
3
3
  import { addFileExtendsCoreType } from './add/add-file-extends-core-type.js';
4
4
  import { addHTTPRoute } from './add/add-http-route.js';
5
+ import { addHTTPRoutes } from './add/add-http-routes.js';
5
6
  import { addSchedule } from './add/add-schedule.js';
7
+ import { addTrigger } from './add/add-trigger.js';
6
8
  import { addQueueWorker } from './add/add-queue-worker.js';
7
9
  import { addWorkflow } from './add/add-workflow.js';
8
10
  import { addMCPResource } from './add/add-mcp-resource.js';
9
- import { addMCPTool } from './add/add-mcp-tool.js';
10
11
  import { addMCPPrompt } from './add/add-mcp-prompt.js';
11
12
  import { addFunctions } from './add/add-functions.js';
12
13
  import { addChannel } from './add/add-channel.js';
@@ -14,6 +15,10 @@ import { addRPCInvocations } from './add/add-rpc-invocations.js';
14
15
  import { addMiddleware } from './add/add-middleware.js';
15
16
  import { addPermission } from './add/add-permission.js';
16
17
  import { addCLI, addCLIRenderers } from './add/add-cli.js';
18
+ import { addSecret, addOAuth2Credential } from './add/add-secret.js';
19
+ import { addVariable } from './add/add-variable.js';
20
+ import { addWorkflowGraph } from './add/add-workflow-graph.js';
21
+ import { addAIAgent } from './add/add-ai-agent.js';
17
22
  export const visitSetup = (logger, checker, node, state, options) => {
18
23
  addFileExtendsCoreType(node, checker, state.singletonServicesTypeImportMap, 'CoreSingletonServices', state);
19
24
  addFileExtendsCoreType(node, checker, state.wireServicesTypeImportMap, 'CoreServices', state);
@@ -30,14 +35,20 @@ export const visitSetup = (logger, checker, node, state, options) => {
30
35
  };
31
36
  export const visitRoutes = (logger, checker, node, state, options) => {
32
37
  addFunctions(logger, node, checker, state, options);
38
+ addSecret(logger, node, checker, state, options);
39
+ addOAuth2Credential(logger, node, checker, state, options);
40
+ addVariable(logger, node, checker, state, options);
33
41
  addHTTPRoute(logger, node, checker, state, options);
42
+ addHTTPRoutes(logger, node, checker, state, options);
34
43
  addSchedule(logger, node, checker, state, options);
44
+ addTrigger(logger, node, checker, state, options);
35
45
  addQueueWorker(logger, node, checker, state, options);
36
46
  addChannel(logger, node, checker, state, options);
37
47
  addCLI(logger, node, checker, state, options);
38
48
  addCLIRenderers(logger, node, checker, state, options);
39
49
  addMCPResource(logger, node, checker, state, options);
40
- addMCPTool(logger, node, checker, state, options);
41
50
  addMCPPrompt(logger, node, checker, state, options);
51
+ addWorkflowGraph(logger, node, checker, state, options);
52
+ addAIAgent(logger, node, checker, state, options);
42
53
  ts.forEachChild(node, (child) => visitRoutes(logger, checker, child, state, options));
43
54
  };
package/package.json CHANGED
@@ -1,11 +1,28 @@
1
1
  {
2
2
  "name": "@pikku/inspector",
3
- "version": "0.11.1",
3
+ "version": "0.12.0",
4
4
  "author": "yasser.fadl@gmail.com",
5
5
  "license": "BUSL-1.1",
6
6
  "type": "module",
7
7
  "module": "dist/index.js",
8
8
  "main": "dist/index.js",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "./schema-generator": {
16
+ "types": "./dist/schema-generator.d.ts",
17
+ "import": "./dist/schema-generator.js",
18
+ "default": "./dist/schema-generator.js"
19
+ },
20
+ "./workflow-graph": {
21
+ "types": "./dist/utils/workflow/graph/index.d.ts",
22
+ "import": "./dist/utils/workflow/graph/index.js",
23
+ "default": "./dist/utils/workflow/graph/index.js"
24
+ }
25
+ },
9
26
  "scripts": {
10
27
  "tsc": "tsc",
11
28
  "build": "tsc -b",
@@ -16,12 +33,17 @@
16
33
  "test:coverage": "bash run-tests.sh --coverage"
17
34
  },
18
35
  "dependencies": {
19
- "@pikku/core": "^0.11.1",
36
+ "@openapi-contrib/json-schema-to-openapi-schema": "^4.3.1",
37
+ "@pikku/core": "^0.12.0",
20
38
  "path-to-regexp": "^8.3.0",
21
- "typescript": "^5.9"
39
+ "ts-json-schema-generator": "^2.5.0",
40
+ "tsx": "^4.21.0",
41
+ "typescript": "^5.9",
42
+ "zod": "^4.3.6",
43
+ "zod-to-ts": "^2.0.0"
22
44
  },
23
45
  "devDependencies": {
24
- "@types/node": "^24.10.1"
46
+ "@types/node": "^24.10.12"
25
47
  },
26
48
  "engines": {
27
49
  "node": ">=18"