@pikku/cli 0.11.1 → 0.11.3

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 (358) hide show
  1. package/.pikku/channel/pikku-channel-types.gen.ts +73 -17
  2. package/.pikku/channel/pikku-channels-map.gen.d.ts +11 -11
  3. package/.pikku/channel/pikku-channels-meta.gen.json +1 -0
  4. package/.pikku/channel/pikku-channels-meta.gen.ts +4 -2
  5. package/.pikku/channel/pikku-channels.gen.ts +1 -1
  6. package/.pikku/cli/pikku-cli-channel.ts +2 -2
  7. package/.pikku/cli/pikku-cli-client.gen.ts +1 -3
  8. package/.pikku/cli/pikku-cli-types.gen.ts +3 -3
  9. package/.pikku/cli/pikku-cli-wirings-meta.gen.json +147 -0
  10. package/.pikku/cli/pikku-cli-wirings-meta.gen.ts +4 -157
  11. package/.pikku/cli/pikku-cli-wirings.gen.ts +3 -3
  12. package/.pikku/cli/pikku-cli.gen.ts +3 -3
  13. package/.pikku/forge/pikku-forge-types.gen.ts +83 -0
  14. package/.pikku/function/pikku-function-types.gen.ts +223 -91
  15. package/.pikku/function/pikku-functions-meta-verbose.gen.json +1030 -0
  16. package/.pikku/function/pikku-functions-meta.gen.json +656 -0
  17. package/.pikku/function/pikku-functions-meta.gen.ts +4 -970
  18. package/.pikku/http/pikku-http-types.gen.ts +20 -4
  19. package/.pikku/http/pikku-http-wirings-map.gen.d.ts +11 -11
  20. package/.pikku/http/pikku-http-wirings-meta.gen.json +9 -0
  21. package/.pikku/http/pikku-http-wirings-meta.gen.ts +4 -10
  22. package/.pikku/http/pikku-http-wirings.gen.ts +1 -1
  23. package/.pikku/mcp/pikku-mcp-types.gen.ts +72 -20
  24. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +5 -0
  25. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.ts +6 -4
  26. package/.pikku/mcp/pikku-mcp-wirings.gen.ts +1 -1
  27. package/.pikku/pikku-bootstrap.gen.ts +7 -12
  28. package/.pikku/pikku-services.gen.ts +6 -7
  29. package/.pikku/pikku-types.gen.ts +4 -1
  30. package/.pikku/pikku-websocket.gen.ts +1 -1
  31. package/.pikku/queue/pikku-queue-types.gen.ts +2 -2
  32. package/.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts +11 -11
  33. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +1 -0
  34. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts +5 -7
  35. package/.pikku/queue/pikku-queue-workers-wirings.gen.ts +1 -1
  36. package/.pikku/rpc/pikku-remote-rpc-workers.gen.ts +5 -2
  37. package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +19 -14
  38. package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +46 -39
  39. package/.pikku/scheduler/pikku-scheduler-types.gen.ts +2 -2
  40. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +1 -0
  41. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.ts +5 -2
  42. package/.pikku/scheduler/pikku-schedulers-wirings.gen.ts +1 -1
  43. package/.pikku/schemas/register.gen.ts +31 -23
  44. package/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
  45. package/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +1 -1
  46. package/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -1
  47. package/.pikku/schemas/schemas/PikkuForgeNodesOutput.schema.json +1 -0
  48. package/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +1 -1
  49. package/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +1 -1
  50. package/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +1 -1
  51. package/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +1 -1
  52. package/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +1 -0
  53. package/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +1 -1
  54. package/.pikku/schemas/schemas/PikkuPublicRPCOutput.schema.json +1 -1
  55. package/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +1 -1
  56. package/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +1 -1
  57. package/.pikku/schemas/schemas/PikkuRemoteRPCOutput.schema.json +1 -1
  58. package/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +1 -1
  59. package/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -1
  60. package/.pikku/schemas/schemas/PikkuWorkflowOutput.schema.json +1 -1
  61. package/.pikku/services/config.gen.json +104 -0
  62. package/.pikku/services/getInspectorState.gen.json +10 -0
  63. package/.pikku/services/jwt.gen.json +13 -0
  64. package/.pikku/services/logger.gen.json +25 -0
  65. package/.pikku/services/queueService.gen.json +14 -0
  66. package/.pikku/services/schedulerService.gen.json +17 -0
  67. package/.pikku/services/schema.gen.json +14 -0
  68. package/.pikku/services/secrets.gen.json +13 -0
  69. package/.pikku/services/variables.gen.json +13 -0
  70. package/.pikku/services/workflowService.gen.json +31 -0
  71. package/.pikku/workflow/pikku-workflow-map.gen.d.ts +2 -36
  72. package/.pikku/workflow/pikku-workflow-types.gen.ts +305 -48
  73. package/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +6 -2
  74. package/.pikku/workflow/pikku-workflow-wirings.gen.ts +1 -2
  75. package/CHANGELOG.md +44 -1
  76. package/bin/pikku.ts +6 -32
  77. package/build.sh +53 -31
  78. package/cli.schema.json +1 -1
  79. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +51 -10
  80. package/dist/.pikku/channel/pikku-channel-types.gen.js +3 -13
  81. package/dist/.pikku/channel/pikku-channels-meta.gen.js +3 -2
  82. package/dist/.pikku/channel/pikku-channels-meta.gen.json +1 -0
  83. package/dist/.pikku/channel/pikku-channels.gen.d.ts +1 -1
  84. package/dist/.pikku/channel/pikku-channels.gen.js +1 -1
  85. package/dist/.pikku/cli/pikku-cli-channel.js +2 -2
  86. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  87. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -3
  88. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +3 -3
  89. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  90. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +3 -157
  91. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +147 -0
  92. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +2 -2
  93. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +2 -2
  94. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  95. package/dist/.pikku/cli/pikku-cli.gen.js +3 -3
  96. package/dist/.pikku/forge/pikku-forge-types.gen.d.ts +72 -0
  97. package/dist/.pikku/forge/pikku-forge-types.gen.js +55 -0
  98. package/dist/.pikku/function/pikku-function-types.gen.d.ts +141 -99
  99. package/dist/.pikku/function/pikku-function-types.gen.js +52 -62
  100. package/dist/.pikku/function/pikku-functions-meta.gen.js +3 -969
  101. package/dist/.pikku/function/pikku-functions-meta.gen.json +656 -0
  102. package/dist/.pikku/http/pikku-http-types.gen.d.ts +19 -4
  103. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  104. package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +3 -10
  105. package/dist/.pikku/http/pikku-http-wirings-meta.gen.json +9 -0
  106. package/dist/.pikku/http/pikku-http-wirings.gen.d.ts +1 -1
  107. package/dist/.pikku/http/pikku-http-wirings.gen.js +1 -1
  108. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +57 -17
  109. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +7 -31
  110. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +5 -4
  111. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +5 -0
  112. package/dist/.pikku/mcp/pikku-mcp-wirings.gen.d.ts +1 -1
  113. package/dist/.pikku/mcp/pikku-mcp-wirings.gen.js +1 -1
  114. package/dist/.pikku/pikku-bootstrap.gen.d.ts +7 -12
  115. package/dist/.pikku/pikku-bootstrap.gen.js +7 -12
  116. package/dist/.pikku/pikku-services.gen.d.ts +5 -7
  117. package/dist/.pikku/pikku-services.gen.js +3 -5
  118. package/dist/.pikku/pikku-types.gen.d.ts +2 -1
  119. package/dist/.pikku/pikku-types.gen.js +3 -1
  120. package/dist/.pikku/pikku-websocket.gen.d.ts +1 -1
  121. package/dist/.pikku/pikku-websocket.gen.js +1 -1
  122. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +2 -2
  123. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  124. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +3 -7
  125. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +1 -0
  126. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  127. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  128. package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.d.ts +9 -9
  129. package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.js +5 -2
  130. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +2 -2
  131. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  132. package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.js +3 -2
  133. package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +1 -0
  134. package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.d.ts +1 -1
  135. package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.js +1 -1
  136. package/dist/.pikku/schemas/register.gen.js +19 -15
  137. package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
  138. package/dist/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +1 -1
  139. package/dist/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -1
  140. package/dist/.pikku/schemas/schemas/PikkuForgeNodesOutput.schema.json +1 -0
  141. package/dist/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +1 -1
  142. package/dist/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +1 -1
  143. package/dist/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +1 -1
  144. package/dist/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +1 -1
  145. package/dist/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +1 -0
  146. package/dist/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +1 -1
  147. package/dist/.pikku/schemas/schemas/PikkuPublicRPCOutput.schema.json +1 -1
  148. package/dist/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +1 -1
  149. package/dist/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +1 -1
  150. package/dist/.pikku/schemas/schemas/PikkuRemoteRPCOutput.schema.json +1 -1
  151. package/dist/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +1 -1
  152. package/dist/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -1
  153. package/dist/.pikku/schemas/schemas/PikkuWorkflowOutput.schema.json +1 -1
  154. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +213 -39
  155. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +106 -16
  156. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +3 -2
  157. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +1 -1
  158. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -2
  159. package/dist/bin/pikku.js +5 -26
  160. package/dist/src/cli.wiring.js +4 -4
  161. package/dist/src/functions/commands/all.js +172 -94
  162. package/dist/src/functions/commands/bootstrap.js +21 -16
  163. package/dist/src/functions/commands/watch.js +6 -3
  164. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.js +12 -8
  165. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.d.ts +1 -1
  166. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.js +74 -22
  167. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.d.ts +1 -1
  168. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.js +72 -20
  169. package/dist/src/functions/wirings/channels/pikku-channels.js +9 -2
  170. package/dist/src/functions/wirings/channels/pikku-command-channels.js +18 -2
  171. package/dist/src/functions/wirings/channels/serialize-channel-types.js +72 -16
  172. package/dist/src/functions/wirings/channels/serialize-typed-channel-map.js +1 -2
  173. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +4 -4
  174. package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +1 -1
  175. package/dist/src/functions/wirings/cli/pikku-command-cli.js +17 -3
  176. package/dist/src/functions/wirings/cli/serialize-channel-cli.js +1 -1
  177. package/dist/src/functions/wirings/cli/serialize-cli-types.js +2 -2
  178. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.d.ts +1 -1
  179. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +4 -4
  180. package/dist/src/functions/wirings/forge/pikku-command-forge-nodes.d.ts +1 -0
  181. package/dist/src/functions/wirings/forge/pikku-command-forge-nodes.js +90 -0
  182. package/dist/src/functions/wirings/forge/pikku-command-forge-types.d.ts +1 -0
  183. package/dist/src/functions/wirings/forge/pikku-command-forge-types.js +26 -0
  184. package/dist/src/functions/wirings/forge/serialize-forge-types.d.ts +4 -0
  185. package/dist/src/functions/wirings/forge/serialize-forge-types.js +90 -0
  186. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.js +4 -4
  187. package/dist/src/functions/wirings/functions/pikku-command-function-types.js +7 -2
  188. package/dist/src/functions/wirings/functions/pikku-command-functions.js +35 -10
  189. package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
  190. package/dist/src/functions/wirings/functions/pikku-command-services.js +24 -24
  191. package/dist/src/functions/wirings/functions/pikku-function-types.js +2 -2
  192. package/dist/src/functions/wirings/functions/schemas.d.ts +1 -1
  193. package/dist/src/functions/wirings/functions/schemas.js +5 -4
  194. package/dist/src/functions/wirings/functions/serialize-function-imports.d.ts +3 -1
  195. package/dist/src/functions/wirings/functions/serialize-function-imports.js +7 -3
  196. package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +1 -1
  197. package/dist/src/functions/wirings/functions/serialize-function-types.js +224 -91
  198. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.d.ts +1 -1
  199. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.js +19 -21
  200. package/dist/src/functions/wirings/http/openapi-spec-generator.js +5 -5
  201. package/dist/src/functions/wirings/http/pikku-command-http-routes.js +18 -2
  202. package/dist/src/functions/wirings/http/pikku-command-openapi.js +2 -2
  203. package/dist/src/functions/wirings/http/pikku-http-routes.js +9 -2
  204. package/dist/src/functions/wirings/http/serialize-http-types.js +19 -3
  205. package/dist/src/functions/wirings/http/serialize-typed-http-map.js +33 -8
  206. package/dist/src/functions/wirings/mcp/pikku-command-mcp.js +29 -6
  207. package/dist/src/functions/wirings/mcp/serialize-mcp-json.js +3 -2
  208. package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +71 -19
  209. package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +29 -2
  210. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.d.ts +5 -2
  211. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.js +5 -13
  212. package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -0
  213. package/dist/src/functions/wirings/package/pikku-command-package.js +58 -0
  214. package/dist/src/functions/wirings/package/serialize-package.d.ts +5 -0
  215. package/dist/src/functions/wirings/package/serialize-package.js +32 -0
  216. package/dist/src/functions/wirings/queue/pikku-command-queue.js +17 -3
  217. package/dist/src/functions/wirings/queue/pikku-queue.js +9 -11
  218. package/dist/src/functions/wirings/queue/serialize-queue-map.js +20 -3
  219. package/dist/src/functions/wirings/queue/serialize-queue-meta.d.ts +2 -1
  220. package/dist/src/functions/wirings/queue/serialize-queue-meta.js +10 -1
  221. package/dist/src/functions/wirings/queue/serialize-queue-types.js +1 -1
  222. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.js +4 -4
  223. package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +9 -2
  224. package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +11 -4
  225. package/dist/src/functions/wirings/rpc/serialize-remote-rpc.js +4 -1
  226. package/dist/src/functions/wirings/rpc/serialize-rpc-wrapper.js +3 -3
  227. package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.d.ts +1 -1
  228. package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.js +54 -8
  229. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.js +15 -3
  230. package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.d.ts +2 -1
  231. package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.js +11 -1
  232. package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.js +1 -1
  233. package/dist/src/functions/wirings/services/pikku-command-service-metadata.d.ts +1 -0
  234. package/dist/src/functions/wirings/services/pikku-command-service-metadata.js +22 -0
  235. package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +58 -16
  236. package/dist/src/functions/wirings/workflow/serialize-workflow-map.d.ts +3 -0
  237. package/dist/src/functions/wirings/workflow/serialize-workflow-map.js +30 -32
  238. package/dist/src/functions/wirings/workflow/serialize-workflow-meta.d.ts +1 -2
  239. package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +43 -8
  240. package/dist/src/functions/wirings/workflow/serialize-workflow-registration.d.ts +7 -0
  241. package/dist/src/functions/wirings/workflow/serialize-workflow-registration.js +53 -0
  242. package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +4 -2
  243. package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +308 -49
  244. package/dist/src/functions/wirings/workflow/serialize-workflow-workers.d.ts +1 -1
  245. package/dist/src/functions/wirings/workflow/serialize-workflow-workers.js +16 -29
  246. package/dist/src/middleware/log-command-info-and-time.d.ts +2 -2
  247. package/dist/src/middleware/log-command-info-and-time.js +1 -4
  248. package/dist/src/services/cli-logger-forwarder.service.js +1 -1
  249. package/dist/src/services.d.ts +2 -7
  250. package/dist/src/services.js +18 -13
  251. package/dist/src/utils/check-required-types.d.ts +2 -2
  252. package/dist/src/utils/check-required-types.js +2 -3
  253. package/dist/src/utils/command-summary.d.ts +2 -0
  254. package/dist/src/utils/command-summary.js +2 -0
  255. package/dist/src/utils/custom-types-generator.js +13 -15
  256. package/dist/src/utils/generate-bootstrap-file.js +1 -1
  257. package/dist/src/utils/pikku-cli-config.js +65 -4
  258. package/dist/src/utils/pikku-files-and-methods.d.ts +2 -2
  259. package/dist/src/utils/pikku-files-and-methods.js +4 -4
  260. package/dist/src/utils/schema-generator.d.ts +4 -3
  261. package/dist/src/utils/schema-generator.js +135 -15
  262. package/dist/src/utils/strip-verbose-meta.d.ts +43 -0
  263. package/dist/src/utils/strip-verbose-meta.js +210 -0
  264. package/dist/tsconfig.tsbuildinfo +1 -1
  265. package/package.json +11 -9
  266. package/src/cli.wiring.ts +4 -4
  267. package/src/functions/commands/all.ts +203 -107
  268. package/src/functions/commands/bootstrap.ts +23 -16
  269. package/src/functions/commands/watch.ts +6 -3
  270. package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +26 -6
  271. package/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts +75 -22
  272. package/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts +72 -19
  273. package/src/functions/wirings/channels/pikku-channels.ts +27 -3
  274. package/src/functions/wirings/channels/pikku-command-channels.ts +46 -3
  275. package/src/functions/wirings/channels/serialize-channel-types.ts +72 -16
  276. package/src/functions/wirings/channels/serialize-typed-channel-map.ts +3 -2
  277. package/src/functions/wirings/cli/pikku-command-cli-entry.ts +4 -4
  278. package/src/functions/wirings/cli/pikku-command-cli-types.ts +1 -1
  279. package/src/functions/wirings/cli/pikku-command-cli.ts +45 -3
  280. package/src/functions/wirings/cli/serialize-channel-cli.ts +1 -1
  281. package/src/functions/wirings/cli/serialize-cli-types.ts +2 -2
  282. package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +5 -5
  283. package/src/functions/wirings/forge/pikku-command-forge-nodes.ts +135 -0
  284. package/src/functions/wirings/forge/pikku-command-forge-types.ts +38 -0
  285. package/src/functions/wirings/forge/serialize-forge-types.ts +94 -0
  286. package/src/functions/wirings/functions/pikku-command-function-types-split.ts +9 -8
  287. package/src/functions/wirings/functions/pikku-command-function-types.ts +17 -10
  288. package/src/functions/wirings/functions/pikku-command-functions.ts +59 -14
  289. package/src/functions/wirings/functions/pikku-command-services.ts +26 -26
  290. package/src/functions/wirings/functions/pikku-function-types.ts +3 -1
  291. package/src/functions/wirings/functions/schemas.ts +14 -4
  292. package/src/functions/wirings/functions/serialize-function-imports.ts +12 -3
  293. package/src/functions/wirings/functions/serialize-function-types.ts +227 -93
  294. package/src/functions/wirings/functions/serialize-pikku-types-hub.ts +27 -26
  295. package/src/functions/wirings/http/openapi-spec-generator.ts +15 -6
  296. package/src/functions/wirings/http/pikku-command-http-routes.ts +46 -2
  297. package/src/functions/wirings/http/pikku-command-openapi.ts +3 -2
  298. package/src/functions/wirings/http/pikku-http-routes.ts +28 -2
  299. package/src/functions/wirings/http/serialize-http-types.ts +19 -3
  300. package/src/functions/wirings/http/serialize-typed-http-map.ts +32 -8
  301. package/src/functions/wirings/mcp/pikku-command-mcp.ts +58 -10
  302. package/src/functions/wirings/mcp/serialize-mcp-json.ts +8 -6
  303. package/src/functions/wirings/mcp/serialize-mcp-types.ts +71 -19
  304. package/src/functions/wirings/middleware/pikku-command-middleware.ts +39 -2
  305. package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +4 -19
  306. package/src/functions/wirings/package/pikku-command-package.ts +81 -0
  307. package/src/functions/wirings/package/serialize-package.ts +69 -0
  308. package/src/functions/wirings/permissions/pikku-command-permissions.ts +2 -2
  309. package/src/functions/wirings/queue/pikku-command-queue.ts +47 -2
  310. package/src/functions/wirings/queue/pikku-queue.ts +26 -10
  311. package/src/functions/wirings/queue/serialize-queue-map.ts +18 -3
  312. package/src/functions/wirings/queue/serialize-queue-meta.ts +15 -1
  313. package/src/functions/wirings/queue/serialize-queue-types.ts +1 -1
  314. package/src/functions/wirings/rpc/pikku-command-rpc-map.ts +7 -4
  315. package/src/functions/wirings/rpc/pikku-command-rpc.ts +25 -2
  316. package/src/functions/wirings/rpc/serialize-public-rpc.ts +11 -4
  317. package/src/functions/wirings/rpc/serialize-remote-rpc.ts +4 -1
  318. package/src/functions/wirings/rpc/serialize-rpc-wrapper.ts +3 -3
  319. package/src/functions/wirings/rpc/serialize-typed-rpc-map.ts +74 -8
  320. package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +51 -4
  321. package/src/functions/wirings/scheduler/serialize-scheduler-meta.ts +20 -1
  322. package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +1 -1
  323. package/src/functions/wirings/services/pikku-command-service-metadata.ts +25 -0
  324. package/src/functions/wirings/workflow/pikku-command-workflow.ts +114 -19
  325. package/src/functions/wirings/workflow/serialize-workflow-map.ts +38 -40
  326. package/src/functions/wirings/workflow/serialize-workflow-meta.ts +68 -11
  327. package/src/functions/wirings/workflow/serialize-workflow-registration.ts +83 -0
  328. package/src/functions/wirings/workflow/serialize-workflow-types.ts +311 -49
  329. package/src/functions/wirings/workflow/serialize-workflow-workers.ts +16 -29
  330. package/src/middleware/log-command-info-and-time.ts +3 -6
  331. package/src/services/cli-logger-forwarder.service.ts +1 -1
  332. package/src/services.ts +23 -16
  333. package/src/utils/check-required-types.ts +4 -7
  334. package/src/utils/command-summary.ts +4 -0
  335. package/src/utils/custom-types-generator.ts +15 -15
  336. package/src/utils/generate-bootstrap-file.ts +1 -1
  337. package/src/utils/pikku-cli-config.ts +105 -5
  338. package/src/utils/pikku-files-and-methods.ts +10 -13
  339. package/src/utils/schema-generator.ts +185 -22
  340. package/src/utils/strip-verbose-meta.ts +254 -0
  341. package/types/application-types.d.ts +1 -1
  342. package/types/config.d.ts +47 -2
  343. package/.pikku/function/pikku-functions-meta.min.gen.ts +0 -211
  344. package/.pikku/function/pikku-functions.gen.ts +0 -84
  345. package/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts +0 -47
  346. package/dist/.pikku/function/pikku-functions-meta.min.gen.d.ts +0 -1
  347. package/dist/.pikku/function/pikku-functions-meta.min.gen.js +0 -211
  348. package/dist/.pikku/function/pikku-functions.gen.d.ts +0 -1
  349. package/dist/.pikku/function/pikku-functions.gen.js +0 -83
  350. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.d.ts +0 -1
  351. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +0 -47
  352. package/dist/.pikku/schemas/schemas/PikkuRemoteInternalRPCInput.schema.json +0 -1
  353. package/dist/src/functions/wirings/workflow/pikku-command-workflow-map.d.ts +0 -1
  354. package/dist/src/functions/wirings/workflow/pikku-command-workflow-map.js +0 -12
  355. package/dist/src/functions/wirings/workflow/pikku-command-workflow-types.d.ts +0 -1
  356. package/dist/src/functions/wirings/workflow/pikku-command-workflow-types.js +0 -11
  357. package/src/functions/wirings/workflow/pikku-command-workflow-map.ts +0 -24
  358. package/src/functions/wirings/workflow/pikku-command-workflow-types.ts +0 -22
@@ -9,11 +9,11 @@ import { pikkuCLICommand, wireCLI } from '../.pikku/cli/pikku-cli-types.gen.js';
9
9
  import { all } from './functions/commands/all.js';
10
10
  import { bootstrap } from './functions/commands/bootstrap.js';
11
11
  import { watch } from './functions/commands/watch.js';
12
- import { clientCLIRenderer } from './services.js';
12
+ // import { clientCLIRenderer } from './services.js'
13
13
  wireCLI({
14
14
  program: 'pikku',
15
15
  description: 'Pikku CLI - Code generation tool for type-safe backend development',
16
- render: clientCLIRenderer,
16
+ // render: clientCLIRenderer,
17
17
  options: {
18
18
  config: {
19
19
  description: 'Path to pikku.config.json file',
@@ -30,8 +30,8 @@ wireCLI({
30
30
  singletonServicesFactoryType: {
31
31
  description: 'Specify which singleton services factory to use',
32
32
  },
33
- sessionServicesFactoryType: {
34
- description: 'Specify which session services factory to use',
33
+ wireServicesFactoryType: {
34
+ description: 'Specify which wire services factory to use',
35
35
  },
36
36
  stateOutput: {
37
37
  description: 'Save inspector state to JSON file for reuse',
@@ -3,132 +3,203 @@ import { pikkuVoidFunc } from '../../../.pikku/pikku-types.gen.js';
3
3
  import { getFileImportRelativePath } from '../../utils/file-import-path.js';
4
4
  import { writeFileInDir } from '../../utils/file-writer.js';
5
5
  import { CommandSummary } from '../../utils/command-summary.js';
6
+ import { pikkuFunctionTypes } from '../wirings/functions/pikku-command-function-types.js';
7
+ import { pikkuFunctionTypesSplit } from '../wirings/functions/pikku-command-function-types-split.js';
8
+ import { pikkuHTTPTypes } from '../wirings/http/pikku-command-http-types.js';
9
+ import { pikkuChannelTypes } from '../wirings/channels/pikku-command-channel-types.js';
10
+ import { pikkuSchedulerTypes } from '../wirings/scheduler/pikku-command-scheduler-types.js';
11
+ import { pikkuQueueTypes } from '../wirings/queue/pikku-command-queue-types.js';
12
+ import { pikkuMCPTypes } from '../wirings/mcp/pikku-command-mcp-types.js';
13
+ import { pikkuCLITypes } from '../wirings/cli/pikku-command-cli-types.js';
14
+ import { pikkuFunctions } from '../wirings/functions/pikku-command-functions.js';
15
+ import { pikkuMiddleware } from '../wirings/middleware/pikku-command-middleware.js';
16
+ import { pikkuPermissions } from '../wirings/permissions/pikku-command-permissions.js';
17
+ import { pikkuServices } from '../wirings/functions/pikku-command-services.js';
18
+ import { pikkuServiceMetadata } from '../wirings/services/pikku-command-service-metadata.js';
19
+ import { pikkuRPC } from '../wirings/rpc/pikku-command-rpc.js';
20
+ import { pikkuRPCExposedMap, pikkuRPCInternalMap, } from '../wirings/rpc/pikku-command-rpc-map.js';
21
+ import { pikkuPublicRPC } from '../wirings/rpc/pikku-command-public-rpc.js';
22
+ import { pikkuRPCClient } from '../wirings/rpc/pikku-command-rpc-client.js';
23
+ import { pikkuSchemas } from '../wirings/functions/schemas.js';
24
+ import { pikkuHTTP } from '../wirings/http/pikku-command-http-routes.js';
25
+ import { pikkuHTTPMap } from '../wirings/http/pikku-command-http-map.js';
26
+ import { pikkuFetch } from '../wirings/fetch/index.js';
27
+ import { pikkuScheduler } from '../wirings/scheduler/pikku-command-scheduler.js';
28
+ import { pikkuWorkflow } from '../wirings/workflow/pikku-command-workflow.js';
29
+ import { pikkuRemoteRPC } from '../wirings/rpc/pikku-command-remote-rpc.js';
30
+ import { pikkuQueue } from '../wirings/queue/pikku-command-queue.js';
31
+ import { pikkuQueueMap } from '../wirings/queue/pikku-command-queue-map.js';
32
+ import { pikkuQueueService } from '../wirings/queue/pikku-command-queue-service.js';
33
+ import { pikkuChannels } from '../wirings/channels/pikku-command-channels.js';
34
+ import { pikkuChannelsMap } from '../wirings/channels/pikku-command-channels-map.js';
35
+ import { pikkuWebSocketTyped } from '../wirings/channels/pikku-command-websocket-typed.js';
36
+ import { pikkuMCP } from '../wirings/mcp/pikku-command-mcp.js';
37
+ import { pikkuMCPJSON } from '../wirings/mcp/pikku-command-mcp-json.js';
38
+ import { pikkuCLI } from '../wirings/cli/pikku-command-cli.js';
39
+ import { pikkuCLIEntry } from '../wirings/cli/pikku-command-cli-entry.js';
40
+ import { pikkuNext } from '../runtimes/nextjs/pikku-command-nextjs.js';
41
+ import { pikkuOpenAPI } from '../wirings/http/pikku-command-openapi.js';
42
+ import { pikkuPackage } from '../wirings/package/pikku-command-package.js';
43
+ import { pikkuForgeNodes } from '../wirings/forge/pikku-command-forge-nodes.js';
44
+ import { pikkuForgeTypes } from '../wirings/forge/pikku-command-forge-types.js';
6
45
  export const all = pikkuVoidFunc({
7
- func: async ({ logger, config, rpc, getInspectorState }) => {
46
+ func: async ({ logger, config, getInspectorState }) => {
47
+ const wire = {};
48
+ const services = { logger, config, getInspectorState };
8
49
  const summary = new CommandSummary('all');
9
50
  const allImports = [];
10
51
  let typesDeclarationFileExists = true;
11
52
  if (!existsSync(config.typesDeclarationFile)) {
12
53
  typesDeclarationFileExists = false;
13
54
  }
14
- await rpc.invoke('pikkuFunctionTypes', null);
15
- // This is needed since the wireHTTP function will add the routes to the visitState
55
+ await pikkuFunctionTypes.func(services, null, wire);
16
56
  if (!typesDeclarationFileExists) {
17
57
  logger.debug(`• Type file first created, inspecting again...`);
18
58
  await getInspectorState(true);
19
59
  }
20
- // Generate wiring-specific type files for tree-shaking
21
- await rpc.invoke('pikkuFunctionTypesSplit', null);
22
- await rpc.invoke('pikkuHTTPTypes', null);
23
- await rpc.invoke('pikkuChannelTypes', null);
24
- await rpc.invoke('pikkuSchedulerTypes', null);
25
- await rpc.invoke('pikkuQueueTypes', null);
26
- await rpc.invoke('pikkuWorkflowTypes', null);
27
- await rpc.invoke('pikkuMCPTypes', null);
28
- await rpc.invoke('pikkuCLITypes', null);
29
- const hasFunctionRegistrations = await rpc.invoke('pikkuFunctions', null);
30
- // Generate and register middleware
31
- const middleware = await rpc.invoke('pikkuMiddleware', null);
32
- // Middleware must be imported before functions meta to ensure registration happens first
60
+ await pikkuFunctionTypesSplit.func(services, null, wire);
61
+ if (!config.externalPackage) {
62
+ await pikkuHTTPTypes.func(services, null, wire);
63
+ await pikkuChannelTypes.func(services, null, wire);
64
+ await pikkuSchedulerTypes.func(services, null, wire);
65
+ await pikkuQueueTypes.func(services, null, wire);
66
+ await pikkuMCPTypes.func(services, null, wire);
67
+ await pikkuCLITypes.func(services, null, wire);
68
+ }
69
+ const hasFunctionRegistrations = await pikkuFunctions.func(services, wire, null);
70
+ const middleware = await pikkuMiddleware.func(services, null, wire);
33
71
  if (middleware) {
34
72
  allImports.push(config.middlewareFile);
35
73
  }
36
- // Generate and register permissions
37
- const permissions = await rpc.invoke('pikkuPermissions', null);
38
- // Permissions must be imported before functions meta to ensure registration happens first
74
+ const permissions = await pikkuPermissions.func(services, null, wire);
39
75
  if (permissions) {
40
76
  allImports.push(config.permissionsFile);
41
77
  }
42
- // Always import functions meta (needed for all function metadata)
43
78
  allImports.push(config.functionsMetaFile);
44
- // Only import functionsFile if it was generated (has internal/external RPCs)
45
79
  if (hasFunctionRegistrations) {
46
80
  allImports.push(config.functionsFile);
47
81
  }
48
- // Generate services map
49
- await rpc.invoke('pikkuServices', null);
50
- const hasInternalRPCs = await rpc.invoke('pikkuRPC', null);
51
- await rpc.invoke('pikkuRPCInternalMap', null);
52
- await rpc.invoke('pikkuRPCExposedMap', null);
53
- await rpc.invoke('pikkuRPCClient', null);
54
- if (hasInternalRPCs) {
55
- allImports.push(config.rpcInternalWiringMetaFile);
82
+ await pikkuServices.func(services, null, wire);
83
+ await pikkuServiceMetadata.func(services, null, wire);
84
+ const hasPackageFactories = await pikkuPackage.func(services, null, wire);
85
+ if (hasPackageFactories) {
86
+ allImports.push(config.packageFile);
56
87
  }
57
- const schemas = await rpc.invoke('pikkuSchemas', null);
88
+ const hasInternalRPCs = await pikkuRPC.func(services, null, wire);
89
+ const schemas = await pikkuSchemas.func(services, null, wire);
58
90
  if (schemas) {
59
91
  allImports.push(`${config.schemaDirectory}/register.gen.ts`);
60
92
  }
61
- // Generate HTTP
62
- const http = await rpc.invoke('pikkuHTTP', null);
63
- if (http) {
64
- await rpc.invoke('pikkuHTTPMap', null);
65
- await rpc.invoke('pikkuFetch', null);
66
- allImports.push(config.httpWiringMetaFile, config.httpWiringsFile);
67
- }
68
- // Generate Scheduler
69
- const scheduler = await rpc.invoke('pikkuScheduler', null);
70
- if (scheduler) {
71
- allImports.push(config.schedulersWiringMetaFile, config.schedulersWiringFile);
72
- }
73
- // Generate Workflows
74
- const workflows = await rpc.invoke('pikkuWorkflow', null);
75
- // Generate Remote RPC Workers (must be before queue discovery so wireQueueWorker calls are picked up)
76
- const remoteRPC = await rpc.invoke('pikkuRemoteRPC', null);
77
- // Reinspect to pick up generated workflow workers and remote RPC workers BEFORE generating maps
93
+ await pikkuRPCInternalMap.func(services, null, wire);
94
+ await pikkuRPCExposedMap.func(services, null, wire);
95
+ await pikkuPublicRPC.func(services, null, wire);
96
+ await pikkuRPCClient.func(services, null, wire);
97
+ await pikkuForgeTypes.func(services, null, wire);
98
+ if (hasInternalRPCs) {
99
+ allImports.push(config.rpcInternalWiringMetaFile);
100
+ }
101
+ if (!config.externalPackage) {
102
+ const http = await pikkuHTTP.func(services, null, wire);
103
+ if (http) {
104
+ await pikkuHTTPMap.func(services, null, wire);
105
+ await pikkuFetch.func(services, null, wire);
106
+ allImports.push(config.httpWiringMetaFile, config.httpWiringsFile);
107
+ }
108
+ const scheduler = await pikkuScheduler.func(services, null, wire);
109
+ if (scheduler) {
110
+ allImports.push(config.schedulersWiringMetaFile, config.schedulersWiringFile);
111
+ }
112
+ }
113
+ const workflows = await pikkuWorkflow.func(services, null, wire);
114
+ let remoteRPC = false;
115
+ if (!config.externalPackage) {
116
+ remoteRPC = await pikkuRemoteRPC.func(services, null, wire);
117
+ }
78
118
  if (workflows || remoteRPC) {
79
119
  await getInspectorState(true);
80
120
  }
81
121
  if (workflows) {
82
- await rpc.invoke('pikkuWorkflowMap', null);
83
- allImports.push(config.workflowsWiringMetaFile, config.workflowsWiringFile);
84
- }
85
- if (remoteRPC && config.rpc?.remoteRpcWorkersPath) {
86
- // Only add to imports if we actually generated the file
87
- allImports.push(config.rpc.remoteRpcWorkersPath);
88
- }
89
- // Generate Queues
90
- const queues = await rpc.invoke('pikkuQueue', null);
91
- if (queues) {
92
- await rpc.invoke('pikkuQueueMap', null);
93
- await rpc.invoke('pikkuQueueService', null);
94
- allImports.push(config.queueWorkersWiringMetaFile, config.queueWorkersWiringFile);
95
- }
96
- // Generate Channels
97
- const channels = await rpc.invoke('pikkuChannels', null);
98
- if (channels) {
99
- await rpc.invoke('pikkuChannelsMap', null);
100
- await rpc.invoke('pikkuWebSocketTyped', null);
101
- allImports.push(config.channelsWiringMetaFile, config.channelsWiringFile);
102
- }
103
- // Generate MCP
104
- const mcp = await rpc.invoke('pikkuMCP', null);
105
- if (mcp) {
106
- await rpc.invoke('pikkuMCPJSON', null);
107
- allImports.push(config.mcpWiringsMetaFile, config.mcpWiringsFile);
108
- }
109
- // Generate CLI
110
- const cli = await rpc.invoke('pikkuCLI', null);
111
- if (cli) {
112
- await rpc.invoke('pikkuCLIEntry', null);
113
- allImports.push(config.cliWiringMetaFile, config.cliWiringsFile);
114
- }
122
+ allImports.push(config.workflowsWiringFile);
123
+ }
124
+ if (!config.externalPackage) {
125
+ const queues = await pikkuQueue.func(services, null, wire);
126
+ if (queues) {
127
+ await pikkuQueueMap.func(services, null, wire);
128
+ await pikkuQueueService.func(services, null, wire);
129
+ allImports.push(config.queueWorkersWiringMetaFile, config.queueWorkersWiringFile);
130
+ }
131
+ const channels = await pikkuChannels.func(services, null, wire);
132
+ if (channels) {
133
+ await pikkuChannelsMap.func(services, null, wire);
134
+ await pikkuWebSocketTyped.func(services, null, wire);
135
+ allImports.push(config.channelsWiringMetaFile, config.channelsWiringFile);
136
+ }
137
+ const mcp = await pikkuMCP.func(services, null, wire);
138
+ if (mcp) {
139
+ await pikkuMCPJSON.func(services, null, wire);
140
+ allImports.push(config.mcpWiringsMetaFile, config.mcpWiringsFile);
141
+ }
142
+ const cli = await pikkuCLI.func(services, null, wire);
143
+ if (cli) {
144
+ await pikkuCLIEntry.func(services, null, wire);
145
+ allImports.push(config.cliWiringMetaFile, config.cliWiringsFile);
146
+ }
147
+ }
148
+ await pikkuForgeNodes.func(services, null, wire);
115
149
  if (config.nextBackendFile || config.nextHTTPFile) {
116
- await rpc.invoke('pikkuNext', null);
150
+ await pikkuNext.func(services, null, wire);
117
151
  }
118
152
  if (config.openAPI) {
119
153
  logger.debug(`• OpenAPI requires a reinspection to pickup new generated types..`);
120
154
  await getInspectorState(true);
121
- await rpc.invoke('pikkuOpenAPI', null);
122
- }
123
- // Generate main bootstrap file (pass all imports directly since this is the main file)
124
- await writeFileInDir(logger, config.bootstrapFile, allImports
125
- .map((to) => `import '${getFileImportRelativePath(config.bootstrapFile, to, config.packageMappings)}'`)
126
- .sort((to) => (to.includes('meta') ? -1 : 1)) // Ensure meta files are at the top
127
- .join('\n'));
128
- // Get final inspector state and collect stats for summary
155
+ await pikkuOpenAPI.func(services, null, wire);
156
+ }
157
+ const stateBeforeBootstrap = await getInspectorState();
158
+ const externalPackageBootstraps = [];
159
+ const usedExternalPackages = {};
160
+ if (config.externalPackages &&
161
+ stateBeforeBootstrap.rpc?.usedExternalPackages?.size > 0) {
162
+ for (const namespace of stateBeforeBootstrap.rpc.usedExternalPackages) {
163
+ const packageName = config.externalPackages[namespace];
164
+ if (packageName) {
165
+ const packageBootstrap = `${packageName}/.pikku/pikku-bootstrap.gen.js`;
166
+ externalPackageBootstraps.push(packageBootstrap);
167
+ usedExternalPackages[namespace] = packageName;
168
+ logger.debug(`• External package detected: ${namespace} (${packageName})`);
169
+ }
170
+ }
171
+ }
172
+ const localImports = allImports.map((to) => `import '${getFileImportRelativePath(config.bootstrapFile, to, config.packageMappings)}'`);
173
+ const externalImports = externalPackageBootstraps.map((packagePath) => `import '${packagePath}'`);
174
+ let externalPackagesRegistration = '';
175
+ if (Object.keys(usedExternalPackages).length > 0) {
176
+ externalPackagesRegistration = `
177
+ // Register external package mappings
178
+ import { pikkuState } from '@pikku/core'
179
+ const externalPackages = pikkuState(null, 'rpc', 'externalPackages')
180
+ ${Object.entries(usedExternalPackages)
181
+ .map(([ns, pkg]) => `externalPackages.set('${ns}', '${pkg}')`)
182
+ .join('\n')}
183
+ `;
184
+ }
185
+ const allBootstrapImports = [...localImports, ...externalImports]
186
+ .sort((a, b) => {
187
+ const aMeta = a.includes('meta');
188
+ const bMeta = b.includes('meta');
189
+ if (aMeta && !bMeta)
190
+ return -1;
191
+ if (!aMeta && bMeta)
192
+ return 1;
193
+ return 0;
194
+ })
195
+ .join('\n') + externalPackagesRegistration;
196
+ await writeFileInDir(logger, config.bootstrapFile, allBootstrapImports);
129
197
  const state = await getInspectorState();
130
- if (state.http?.meta)
131
- summary.set('httpRoutes', Object.keys(state.http.meta).length);
198
+ if (state.http?.meta) {
199
+ const httpRouteCount = Object.values(state.http.meta).reduce((sum, routes) => sum + Object.keys(routes).length, 0);
200
+ if (httpRouteCount > 0)
201
+ summary.set('httpRoutes', httpRouteCount);
202
+ }
132
203
  if (state.channels?.meta)
133
204
  summary.set('channels', Object.keys(state.channels.meta).length);
134
205
  if (state.scheduledTasks?.meta)
@@ -143,7 +214,6 @@ export const all = pikkuVoidFunc({
143
214
  summary.set('mcpEndpoints', mcpTotal);
144
215
  }
145
216
  if (state.cli?.meta) {
146
- // Count total CLI commands across all programs
147
217
  const totalCommands = Object.values(state.cli.meta).reduce((sum, program) => sum + (program.commands?.length || 0), 0);
148
218
  if (totalCommands > 0)
149
219
  summary.set('cliCommands', totalCommands);
@@ -151,11 +221,19 @@ export const all = pikkuVoidFunc({
151
221
  if (state.workflows?.meta) {
152
222
  summary.set('workflows', Object.keys(state.workflows.meta).length);
153
223
  }
154
- // Display summary (unless in silent mode)
224
+ if (state.forgeNodes?.meta) {
225
+ const forgeNodesCount = Object.keys(state.forgeNodes.meta).length;
226
+ if (forgeNodesCount > 0)
227
+ summary.set('forgeNodes', forgeNodesCount);
228
+ }
229
+ if (state.workflows?.graphMeta) {
230
+ const workflowGraphsCount = Object.keys(state.workflows.graphMeta).length;
231
+ if (workflowGraphsCount > 0)
232
+ summary.set('workflowGraphs', workflowGraphsCount);
233
+ }
155
234
  if (!logger.isSilent()) {
156
235
  console.log(summary.format());
157
236
  }
158
- // Check for critical errors and exit if any were logged
159
237
  if (logger.hasCriticalErrors()) {
160
238
  process.exit(1);
161
239
  }
@@ -1,22 +1,27 @@
1
1
  import { pikkuVoidFunc } from '../../../.pikku/pikku-types.gen.js';
2
+ import { pikkuFunctionTypes } from '../wirings/functions/pikku-command-function-types.js';
3
+ import { pikkuFunctionTypesSplit } from '../wirings/functions/pikku-command-function-types-split.js';
4
+ import { pikkuHTTPTypes } from '../wirings/http/pikku-command-http-types.js';
5
+ import { pikkuChannelTypes } from '../wirings/channels/pikku-command-channel-types.js';
6
+ import { pikkuSchedulerTypes } from '../wirings/scheduler/pikku-command-scheduler-types.js';
7
+ import { pikkuQueueTypes } from '../wirings/queue/pikku-command-queue-types.js';
8
+ import { pikkuWorkflow } from '../wirings/workflow/pikku-command-workflow.js';
9
+ import { pikkuMCPTypes } from '../wirings/mcp/pikku-command-mcp-types.js';
10
+ import { pikkuCLITypes } from '../wirings/cli/pikku-command-cli-types.js';
2
11
  export const bootstrap = pikkuVoidFunc({
3
- func: async ({ logger, config, rpc, getInspectorState }) => {
4
- // Initialize inspector state in bootstrap mode with core types only
5
- // This allows bootstrap to run immediately without inspecting the codebase
6
- // All subsequent RPC commands will use this cached state
12
+ func: async ({ logger, config, getInspectorState }) => {
13
+ const wire = {};
14
+ const services = { logger, config, getInspectorState };
7
15
  await getInspectorState(false, false, true);
8
- await rpc.invoke('pikkuFunctionTypes', null);
9
- // Generate wiring-specific type files for tree-shaking
10
- // These use the bootstrap mode state with core types
11
- await rpc.invoke('pikkuFunctionTypesSplit', null);
12
- await rpc.invoke('pikkuHTTPTypes', null);
13
- await rpc.invoke('pikkuChannelTypes', null);
14
- await rpc.invoke('pikkuSchedulerTypes', null);
15
- await rpc.invoke('pikkuQueueTypes', null);
16
- await rpc.invoke('pikkuWorkflowTypes', null);
17
- await rpc.invoke('pikkuMCPTypes', null);
18
- await rpc.invoke('pikkuCLITypes', null);
19
- // Check for critical errors and exit if any were logged
16
+ await pikkuFunctionTypes.func(services, null, wire);
17
+ await pikkuFunctionTypesSplit.func(services, null, wire);
18
+ await pikkuHTTPTypes.func(services, null, wire);
19
+ await pikkuChannelTypes.func(services, null, wire);
20
+ await pikkuSchedulerTypes.func(services, null, wire);
21
+ await pikkuQueueTypes.func(services, null, wire);
22
+ await pikkuWorkflow.func(services, null, wire);
23
+ await pikkuMCPTypes.func(services, null, wire);
24
+ await pikkuCLITypes.func(services, null, wire);
20
25
  if (logger.hasCriticalErrors()) {
21
26
  process.exit(1);
22
27
  }
@@ -1,7 +1,9 @@
1
1
  import { pikkuVoidFunc } from '../../../.pikku/pikku-types.gen.js';
2
2
  import chokidar from 'chokidar';
3
+ import { all } from './all.js';
3
4
  export const watch = pikkuVoidFunc({
4
- func: async ({ logger, config, rpc }) => {
5
+ func: async ({ logger, config, getInspectorState }) => {
6
+ const services = { logger, config, getInspectorState };
5
7
  const configWatcher = chokidar.watch(config.srcDirectories, {
6
8
  ignoreInitial: true,
7
9
  ignored: /.*\.gen\.tsx?/,
@@ -18,14 +20,15 @@ export const watch = pikkuVoidFunc({
18
20
  const handle = async () => {
19
21
  try {
20
22
  const start = Date.now();
21
- await rpc.invoke('all', null);
23
+ await all.func(services, null, {});
22
24
  logger.info({
23
25
  message: `✓ Generated in ${Date.now() - start}ms`,
24
26
  type: 'timing',
25
27
  });
26
28
  }
27
29
  catch (err) {
28
- logger.error(err);
30
+ console.error(err);
31
+ logger.error('Error running watch');
29
32
  }
30
33
  };
31
34
  await handle();
@@ -7,7 +7,7 @@ import { serializeNextJsBackendWrapper as serializeNextBackendWrapper } from './
7
7
  import { serializeNextJsHTTPWrapper as serializeNextHTTPWrapper } from './serialize-nextjs-http-wrapper.js';
8
8
  export const pikkuNext = pikkuSessionlessFunc({
9
9
  func: async ({ logger, config, getInspectorState }) => {
10
- const { nextBackendFile, nextHTTPFile, httpMapDeclarationFile, packageMappings, fetchFile, } = config;
10
+ const { nextBackendFile, nextHTTPFile, httpMapDeclarationFile, rpcMapDeclarationFile, packageMappings, fetchFile, } = config;
11
11
  // If both files are undefined, clean up any existing files and return
12
12
  if (!nextBackendFile && !nextHTTPFile) {
13
13
  logger.info({
@@ -20,31 +20,35 @@ export const pikkuNext = pikkuSessionlessFunc({
20
20
  if (nextHTTPFile && !fetchFile) {
21
21
  throw new Error('fetchFile is required in pikku config in order for nextJS http wrapper to work');
22
22
  }
23
+ if ((nextBackendFile || nextHTTPFile) && !rpcMapDeclarationFile) {
24
+ throw new Error('rpcMapDeclarationFile is required in pikku config in order for nextJS wrapper to work');
25
+ }
23
26
  if (nextBackendFile) {
24
- // Check for required types
25
27
  checkRequiredTypes(visitState.filesAndMethodsErrors, {
26
28
  config: true,
27
29
  singletonServicesFactory: true,
28
- sessionServicesFactory: true,
30
+ wireServicesFactory: true,
29
31
  });
30
- const { pikkuConfigFactory, singletonServicesFactory, sessionServicesFactory, } = visitState.filesAndMethods;
32
+ const { pikkuConfigFactory, singletonServicesFactory, wireServicesFactory, } = visitState.filesAndMethods;
31
33
  if (!pikkuConfigFactory ||
32
34
  !singletonServicesFactory ||
33
- !sessionServicesFactory) {
35
+ !wireServicesFactory) {
34
36
  throw new Error('Required types not found');
35
37
  }
36
38
  const pikkuConfigImport = `import { ${pikkuConfigFactory.variable} as createConfig } from '${getFileImportRelativePath(nextBackendFile, pikkuConfigFactory.file, packageMappings)}'`;
37
39
  const singletonServicesImport = `import { ${singletonServicesFactory.variable} as createSingletonServices } from '${getFileImportRelativePath(nextBackendFile, singletonServicesFactory.file, packageMappings)}'`;
38
- const sessionServicesImport = `import { ${sessionServicesFactory.variable} as createSessionServices } from '${getFileImportRelativePath(nextBackendFile, sessionServicesFactory.file, packageMappings)}'`;
40
+ const wireServicesImport = `import { ${wireServicesFactory.variable} as createWireServices } from '${getFileImportRelativePath(nextBackendFile, wireServicesFactory.file, packageMappings)}'`;
39
41
  const bootstrapPath = getFileImportRelativePath(nextBackendFile, config.bootstrapFile, packageMappings);
40
42
  const routesMapDeclarationPath = getFileImportRelativePath(nextBackendFile, httpMapDeclarationFile, packageMappings);
41
- const content = serializeNextBackendWrapper(bootstrapPath, routesMapDeclarationPath, pikkuConfigImport, singletonServicesImport, sessionServicesImport);
43
+ const rpcMapDeclarationPath = getFileImportRelativePath(nextBackendFile, rpcMapDeclarationFile, packageMappings);
44
+ const content = serializeNextBackendWrapper(bootstrapPath, routesMapDeclarationPath, rpcMapDeclarationPath, pikkuConfigImport, singletonServicesImport, wireServicesImport);
42
45
  await writeFileInDir(logger, nextBackendFile, content);
43
46
  }
44
47
  if (nextHTTPFile && fetchFile) {
45
48
  const routesMapDeclarationPath = getFileImportRelativePath(nextHTTPFile, httpMapDeclarationFile, packageMappings);
49
+ const rpcMapDeclarationPath = getFileImportRelativePath(nextHTTPFile, rpcMapDeclarationFile, packageMappings);
46
50
  const fetchPath = getFileImportRelativePath(nextHTTPFile, fetchFile, packageMappings);
47
- const content = serializeNextHTTPWrapper(routesMapDeclarationPath, fetchPath);
51
+ const content = serializeNextHTTPWrapper(routesMapDeclarationPath, rpcMapDeclarationPath, fetchPath);
48
52
  await writeFileInDir(logger, nextHTTPFile, content);
49
53
  }
50
54
  },
@@ -1 +1 @@
1
- export declare const serializeNextJsBackendWrapper: (bootstrapPath: string, routesMapPath: string, configImport: string, singleServicesFactoryImport: string, sessionServicesImport: string) => string;
1
+ export declare const serializeNextJsBackendWrapper: (bootstrapPath: string, routesMapPath: string, rpcMapPath: string, configImport: string, singleServicesFactoryImport: string, wireServicesImport: string) => string;