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