@pikku/cli 0.11.2 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (538) hide show
  1. package/cli.schema.json +1 -1
  2. package/console-app/android-chrome-192x192.png +0 -0
  3. package/console-app/android-chrome-512x512.png +0 -0
  4. package/console-app/apple-touch-icon.png +0 -0
  5. package/console-app/assets/index-0Ui5UudO.css +1 -0
  6. package/console-app/assets/index-C19L3UJu.js +637 -0
  7. package/console-app/favicon-16x16.png +0 -0
  8. package/console-app/favicon-32x32.png +0 -0
  9. package/console-app/favicon.ico +0 -0
  10. package/console-app/index.html +29 -0
  11. package/console-app/pikku-console-logo.png +0 -0
  12. package/console-app/site.webmanifest +19 -0
  13. package/console-app/wiring-icons/cron.svg +6 -0
  14. package/console-app/wiring-icons/function.png +0 -0
  15. package/console-app/wiring-icons/http.svg +2 -0
  16. package/console-app/wiring-icons/mcp.svg +1 -0
  17. package/console-app/wiring-icons/queue.svg +18 -0
  18. package/console-app/wiring-icons/sse.svg +5 -0
  19. package/console-app/wiring-icons/websocket.svg +8 -0
  20. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +19 -0
  21. package/dist/.pikku/agent/pikku-agent-types.gen.js +4 -0
  22. package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.js +6 -0
  23. package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.json +3 -0
  24. package/dist/.pikku/agent/pikku-agent-wirings.gen.d.ts +4 -0
  25. package/dist/.pikku/agent/pikku-agent-wirings.gen.js +4 -0
  26. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +65 -10
  27. package/dist/.pikku/channel/pikku-channel-types.gen.js +23 -16
  28. package/dist/.pikku/channel/pikku-channels-meta.gen.js +3 -2
  29. package/dist/.pikku/channel/pikku-channels.gen.d.ts +1 -1
  30. package/dist/.pikku/channel/pikku-channels.gen.js +1 -1
  31. package/dist/.pikku/cli/pikku-cli-channel.js +18 -3
  32. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  33. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  34. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +9 -1
  35. package/dist/.pikku/cli/pikku-cli-types.gen.js +12 -2
  36. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +2 -2
  37. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +45 -12
  38. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  39. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  40. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -5
  41. package/dist/.pikku/cli/pikku-cli.gen.js +1 -5
  42. package/dist/.pikku/console/pikku-node-types.gen.d.ts +6 -0
  43. package/dist/.pikku/console/pikku-node-types.gen.js +1 -0
  44. package/dist/.pikku/function/pikku-function-types.gen.d.ts +180 -37
  45. package/dist/.pikku/function/pikku-function-types.gen.js +63 -53
  46. package/dist/.pikku/function/pikku-functions-meta.gen.js +2 -2
  47. package/dist/.pikku/function/pikku-functions-meta.gen.json +624 -506
  48. package/dist/.pikku/function/pikku-functions.gen.d.ts +1 -0
  49. package/dist/.pikku/function/pikku-functions.gen.js +119 -0
  50. package/dist/.pikku/http/pikku-http-types.gen.d.ts +54 -3
  51. package/dist/.pikku/http/pikku-http-types.gen.js +11 -2
  52. package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +3 -10
  53. package/dist/.pikku/http/pikku-http-wirings-meta.gen.json +9 -0
  54. package/dist/.pikku/http/pikku-http-wirings.gen.d.ts +1 -1
  55. package/dist/.pikku/http/pikku-http-wirings.gen.js +1 -1
  56. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +68 -29
  57. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +8 -42
  58. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +4 -4
  59. package/dist/.pikku/mcp/pikku-mcp-wirings.gen.d.ts +1 -1
  60. package/dist/.pikku/mcp/pikku-mcp-wirings.gen.js +2 -2
  61. package/dist/.pikku/node/pikku-node-types.gen.d.ts +1 -0
  62. package/dist/.pikku/node/pikku-node-types.gen.js +1 -0
  63. package/dist/.pikku/pikku-bootstrap.gen.d.ts +9 -10
  64. package/dist/.pikku/pikku-bootstrap.gen.js +17 -8
  65. package/dist/.pikku/pikku-services.gen.d.ts +7 -2
  66. package/dist/.pikku/pikku-services.gen.js +5 -0
  67. package/dist/.pikku/pikku-types.gen.d.ts +4 -1
  68. package/dist/.pikku/pikku-types.gen.js +7 -1
  69. package/dist/.pikku/pikku-websocket.gen.d.ts +1 -1
  70. package/dist/.pikku/pikku-websocket.gen.js +1 -1
  71. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  72. package/dist/.pikku/queue/pikku-queue-types.gen.js +2 -2
  73. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +2 -2
  74. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  75. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  76. package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.d.ts +6 -3
  77. package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.js +6 -3
  78. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.d.ts +1 -0
  79. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +6 -0
  80. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +61 -0
  81. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  82. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +2 -2
  83. package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.js +2 -2
  84. package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.d.ts +1 -1
  85. package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.js +1 -1
  86. package/dist/.pikku/schemas/register.gen.js +33 -15
  87. package/dist/.pikku/schemas/schemas/BootstrapInput.schema.json +1 -0
  88. package/dist/.pikku/schemas/schemas/ConsoleCommandInput.schema.json +1 -0
  89. package/dist/.pikku/schemas/schemas/PikkuAIAgentOutput.schema.json +1 -0
  90. package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
  91. package/dist/.pikku/schemas/schemas/PikkuConsoleFunctionsOutput.schema.json +1 -0
  92. package/dist/.pikku/schemas/schemas/PikkuNodesMetaOutput.schema.json +1 -0
  93. package/dist/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +1 -0
  94. package/dist/.pikku/schemas/schemas/PikkuPublicAgentOutput.schema.json +1 -0
  95. package/dist/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -1
  96. package/dist/.pikku/schemas/schemas/PikkuTriggerOutput.schema.json +1 -0
  97. package/dist/.pikku/schemas/schemas/PikkuVersionsInitInput.schema.json +1 -0
  98. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +5 -0
  99. package/dist/.pikku/secrets/pikku-secret-types.gen.js +4 -0
  100. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +11 -0
  101. package/dist/.pikku/secrets/pikku-secrets.gen.js +10 -0
  102. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +113 -0
  103. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +33 -0
  104. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +5 -0
  105. package/dist/.pikku/variables/pikku-variable-types.gen.js +4 -0
  106. package/dist/.pikku/variables/pikku-variables.gen.d.ts +11 -0
  107. package/dist/.pikku/variables/pikku-variables.gen.js +10 -0
  108. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +71 -53
  109. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +23 -35
  110. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +3 -3
  111. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +2 -6
  112. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +2 -6
  113. package/dist/bin/pikku.js +20 -47
  114. package/dist/src/cli.wiring.js +29 -2
  115. package/dist/src/functions/commands/all.d.ts +1 -1
  116. package/dist/src/functions/commands/all.js +109 -168
  117. package/dist/src/functions/commands/bootstrap.d.ts +1 -1
  118. package/dist/src/functions/commands/bootstrap.js +13 -29
  119. package/dist/src/functions/commands/console.d.ts +7 -0
  120. package/dist/src/functions/commands/console.js +106 -0
  121. package/dist/src/functions/commands/pikku-command-bootstrap.d.ts +4 -0
  122. package/dist/src/functions/commands/pikku-command-bootstrap.js +67 -0
  123. package/dist/src/functions/commands/pikku-command-summary.d.ts +1 -0
  124. package/dist/src/functions/commands/pikku-command-summary.js +55 -0
  125. package/dist/src/functions/commands/versions-check.d.ts +1 -0
  126. package/dist/src/functions/commands/versions-check.js +17 -0
  127. package/dist/src/functions/commands/versions-init.d.ts +7 -0
  128. package/dist/src/functions/commands/versions-init.js +15 -0
  129. package/dist/src/functions/commands/versions-update.d.ts +1 -0
  130. package/dist/src/functions/commands/versions-update.js +20 -0
  131. package/dist/src/functions/commands/watch.d.ts +1 -1
  132. package/dist/src/functions/commands/watch.js +4 -5
  133. package/dist/src/functions/runtimes/fetch/index.d.ts +1 -0
  134. package/dist/src/functions/{wirings → runtimes}/fetch/index.js +3 -3
  135. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.d.ts +1 -1
  136. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.js +6 -8
  137. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.d.ts +1 -1
  138. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.js +49 -43
  139. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.js +45 -35
  140. package/dist/src/functions/runtimes/websocket/pikku-command-websocket-typed.d.ts +1 -0
  141. package/dist/src/functions/{wirings/channels → runtimes/websocket}/pikku-command-websocket-typed.js +2 -2
  142. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.d.ts +1 -0
  143. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.js +19 -0
  144. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.d.ts +1 -0
  145. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.js +68 -0
  146. package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.d.ts +1 -0
  147. package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.js +23 -0
  148. package/dist/src/functions/wirings/ai-agent/serialize-agent-map.d.ts +4 -0
  149. package/dist/src/functions/wirings/ai-agent/serialize-agent-map.js +48 -0
  150. package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.d.ts +1 -0
  151. package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.js +31 -0
  152. package/dist/src/functions/wirings/ai-agent/serialize-public-agent.d.ts +1 -0
  153. package/dist/src/functions/wirings/ai-agent/serialize-public-agent.js +90 -0
  154. package/dist/src/functions/wirings/channels/pikku-channels.d.ts +1 -1
  155. package/dist/src/functions/wirings/channels/pikku-channels.js +2 -2
  156. package/dist/src/functions/wirings/channels/pikku-command-channel-types.d.ts +1 -1
  157. package/dist/src/functions/wirings/channels/pikku-command-channel-types.js +3 -3
  158. package/dist/src/functions/wirings/channels/pikku-command-channels-map.d.ts +1 -1
  159. package/dist/src/functions/wirings/channels/pikku-command-channels-map.js +2 -2
  160. package/dist/src/functions/wirings/channels/pikku-command-channels.d.ts +1 -1
  161. package/dist/src/functions/wirings/channels/pikku-command-channels.js +19 -3
  162. package/dist/src/functions/wirings/channels/serialize-channel-types.d.ts +1 -1
  163. package/dist/src/functions/wirings/channels/serialize-channel-types.js +97 -10
  164. package/dist/src/functions/wirings/channels/serialize-typed-channel-map.d.ts +2 -1
  165. package/dist/src/functions/wirings/channels/serialize-typed-channel-map.js +9 -10
  166. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.d.ts +1 -1
  167. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +3 -7
  168. package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +1 -1
  169. package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +1 -1
  170. package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -1
  171. package/dist/src/functions/wirings/cli/pikku-command-cli.js +11 -3
  172. package/dist/src/functions/wirings/cli/serialize-channel-cli.js +8 -8
  173. package/dist/src/functions/wirings/cli/serialize-cli-types.js +14 -1
  174. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.d.ts +2 -2
  175. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +10 -11
  176. package/dist/src/functions/wirings/console/pikku-command-console-functions.d.ts +1 -0
  177. package/dist/src/functions/wirings/console/pikku-command-console-functions.js +23 -0
  178. package/dist/src/functions/wirings/console/pikku-command-node-types.d.ts +1 -0
  179. package/dist/src/functions/wirings/console/pikku-command-node-types.js +21 -0
  180. package/dist/src/functions/wirings/console/pikku-command-nodes-meta.d.ts +1 -0
  181. package/dist/src/functions/wirings/console/pikku-command-nodes-meta.js +79 -0
  182. package/dist/src/functions/wirings/console/serialize-console-functions.d.ts +1 -0
  183. package/dist/src/functions/wirings/console/serialize-console-functions.js +229 -0
  184. package/dist/src/functions/wirings/console/serialize-node-types.d.ts +1 -0
  185. package/dist/src/functions/wirings/console/serialize-node-types.js +11 -0
  186. package/dist/src/functions/wirings/functions/pikku-command-external-types.d.ts +1 -0
  187. package/dist/src/functions/wirings/functions/pikku-command-external-types.js +33 -0
  188. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.d.ts +1 -1
  189. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.js +2 -2
  190. package/dist/src/functions/wirings/functions/pikku-command-function-types.d.ts +1 -1
  191. package/dist/src/functions/wirings/functions/pikku-command-function-types.js +8 -3
  192. package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -1
  193. package/dist/src/functions/wirings/functions/pikku-command-functions.js +34 -19
  194. package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
  195. package/dist/src/functions/wirings/functions/pikku-command-services.js +2 -2
  196. package/dist/src/functions/wirings/functions/schemas.d.ts +1 -4
  197. package/dist/src/functions/wirings/functions/schemas.js +8 -9
  198. package/dist/src/functions/wirings/functions/serialize-external-types.d.ts +1 -0
  199. package/dist/src/functions/wirings/functions/serialize-external-types.js +77 -0
  200. package/dist/src/functions/wirings/functions/serialize-function-imports.d.ts +4 -3
  201. package/dist/src/functions/wirings/functions/serialize-function-imports.js +16 -19
  202. package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +1 -1
  203. package/dist/src/functions/wirings/functions/serialize-function-types.js +256 -42
  204. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.d.ts +1 -1
  205. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.js +22 -21
  206. package/dist/src/functions/wirings/http/pikku-command-http-map.d.ts +1 -1
  207. package/dist/src/functions/wirings/http/pikku-command-http-map.js +4 -4
  208. package/dist/src/functions/wirings/http/pikku-command-http-routes.d.ts +1 -1
  209. package/dist/src/functions/wirings/http/pikku-command-http-routes.js +19 -3
  210. package/dist/src/functions/wirings/http/pikku-command-http-types.d.ts +1 -1
  211. package/dist/src/functions/wirings/http/pikku-command-http-types.js +1 -1
  212. package/dist/src/functions/wirings/http/pikku-command-openapi.d.ts +1 -1
  213. package/dist/src/functions/wirings/http/pikku-command-openapi.js +11 -9
  214. package/dist/src/functions/wirings/http/pikku-http-routes.d.ts +1 -1
  215. package/dist/src/functions/wirings/http/pikku-http-routes.js +2 -2
  216. package/dist/src/functions/wirings/http/serialize-http-types.js +64 -3
  217. package/dist/src/functions/wirings/http/serialize-typed-http-map.d.ts +5 -2
  218. package/dist/src/functions/wirings/http/serialize-typed-http-map.js +43 -31
  219. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.d.ts +1 -1
  220. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.js +5 -6
  221. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.d.ts +1 -1
  222. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.js +1 -1
  223. package/dist/src/functions/wirings/mcp/pikku-command-mcp.d.ts +1 -1
  224. package/dist/src/functions/wirings/mcp/pikku-command-mcp.js +28 -10
  225. package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +81 -38
  226. package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -1
  227. package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +11 -31
  228. package/dist/src/functions/wirings/middleware/serialize-middleware-imports.js +19 -24
  229. package/dist/src/functions/wirings/package/pikku-command-package-types.d.ts +2 -0
  230. package/dist/src/functions/wirings/package/pikku-command-package-types.js +30 -0
  231. package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -0
  232. package/dist/src/functions/wirings/package/pikku-command-package.js +58 -0
  233. package/dist/src/functions/wirings/package/serialize-package-types.d.ts +2 -0
  234. package/dist/src/functions/wirings/package/serialize-package-types.js +10 -0
  235. package/dist/src/functions/wirings/package/serialize-package.d.ts +5 -0
  236. package/dist/src/functions/wirings/package/serialize-package.js +32 -0
  237. package/dist/src/functions/wirings/permissions/pikku-command-permissions.d.ts +1 -1
  238. package/dist/src/functions/wirings/permissions/pikku-command-permissions.js +10 -5
  239. package/dist/src/functions/wirings/queue/pikku-command-queue-map.d.ts +1 -1
  240. package/dist/src/functions/wirings/queue/pikku-command-queue-map.js +3 -3
  241. package/dist/src/functions/wirings/queue/pikku-command-queue-service.d.ts +1 -1
  242. package/dist/src/functions/wirings/queue/pikku-command-queue-service.js +2 -2
  243. package/dist/src/functions/wirings/queue/pikku-command-queue-types.d.ts +1 -1
  244. package/dist/src/functions/wirings/queue/pikku-command-queue-types.js +1 -1
  245. package/dist/src/functions/wirings/queue/pikku-command-queue.d.ts +1 -1
  246. package/dist/src/functions/wirings/queue/pikku-command-queue.js +11 -3
  247. package/dist/src/functions/wirings/queue/pikku-queue-map.d.ts +1 -1
  248. package/dist/src/functions/wirings/queue/pikku-queue-map.js +3 -3
  249. package/dist/src/functions/wirings/queue/pikku-queue.d.ts +1 -1
  250. package/dist/src/functions/wirings/queue/pikku-queue.js +2 -10
  251. package/dist/src/functions/wirings/queue/serialize-queue-map.d.ts +5 -2
  252. package/dist/src/functions/wirings/queue/serialize-queue-map.js +13 -24
  253. package/dist/src/functions/wirings/queue/serialize-queue-meta.js +9 -10
  254. package/dist/src/functions/wirings/queue/serialize-queue-types.js +1 -1
  255. package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.d.ts +1 -1
  256. package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.js +2 -2
  257. package/dist/src/functions/wirings/rpc/pikku-command-remote-rpc.d.ts +1 -1
  258. package/dist/src/functions/wirings/rpc/pikku-command-remote-rpc.js +1 -1
  259. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.d.ts +1 -1
  260. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.js +2 -2
  261. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +2 -2
  262. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.js +12 -7
  263. package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -1
  264. package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +5 -2
  265. package/dist/src/functions/wirings/rpc/serialize-public-rpc.d.ts +1 -1
  266. package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +11 -6
  267. package/dist/src/functions/wirings/rpc/serialize-remote-rpc.js +5 -2
  268. package/dist/src/functions/wirings/rpc/serialize-rpc-wrapper.js +19 -8
  269. package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.d.ts +6 -3
  270. package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.js +130 -59
  271. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.d.ts +1 -1
  272. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.js +1 -1
  273. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.d.ts +1 -1
  274. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.js +11 -2
  275. package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.d.ts +1 -1
  276. package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.js +13 -12
  277. package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.js +1 -1
  278. package/dist/src/functions/wirings/secrets/pikku-command-secrets.d.ts +1 -0
  279. package/dist/src/functions/wirings/secrets/pikku-command-secrets.js +31 -0
  280. package/dist/src/functions/wirings/secrets/serialize-secrets-types.d.ts +9 -0
  281. package/dist/src/functions/wirings/secrets/serialize-secrets-types.js +64 -0
  282. package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.d.ts +1 -0
  283. package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.js +24 -0
  284. package/dist/src/functions/wirings/triggers/pikku-command-trigger.d.ts +1 -0
  285. package/dist/src/functions/wirings/triggers/pikku-command-trigger.js +40 -0
  286. package/dist/src/functions/wirings/triggers/serialize-trigger-meta.d.ts +5 -0
  287. package/dist/src/functions/wirings/triggers/serialize-trigger-meta.js +35 -0
  288. package/dist/src/functions/wirings/triggers/serialize-trigger-types.d.ts +4 -0
  289. package/dist/src/functions/wirings/triggers/serialize-trigger-types.js +163 -0
  290. package/dist/src/functions/wirings/variables/pikku-command-variables.d.ts +1 -0
  291. package/dist/src/functions/wirings/variables/pikku-command-variables.js +31 -0
  292. package/dist/src/functions/wirings/variables/serialize-variables-types.d.ts +9 -0
  293. package/dist/src/functions/wirings/variables/serialize-variables-types.js +53 -0
  294. package/dist/src/functions/wirings/workflow/pikku-command-workflow.d.ts +1 -1
  295. package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +29 -20
  296. package/dist/src/functions/wirings/workflow/serialize-workflow-map.d.ts +7 -2
  297. package/dist/src/functions/wirings/workflow/serialize-workflow-map.js +87 -38
  298. package/dist/src/functions/wirings/workflow/serialize-workflow-meta.d.ts +1 -3
  299. package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +42 -18
  300. package/dist/src/functions/wirings/workflow/serialize-workflow-registration.d.ts +7 -0
  301. package/dist/src/functions/wirings/workflow/serialize-workflow-registration.js +26 -0
  302. package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +1 -4
  303. package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +121 -63
  304. package/dist/src/functions/wirings/workflow/serialize-workflow-workers.d.ts +1 -1
  305. package/dist/src/functions/wirings/workflow/serialize-workflow-workers.js +15 -28
  306. package/dist/src/services/cli-logger-forwarder.service.d.ts +1 -1
  307. package/dist/src/services/cli-logger-forwarder.service.js +1 -1
  308. package/dist/src/services/cli-logger.service.d.ts +1 -1
  309. package/dist/src/services/cli-logger.service.js +1 -1
  310. package/dist/src/services.d.ts +1 -1
  311. package/dist/src/services.js +56 -6
  312. package/dist/src/utils/command-summary.d.ts +3 -0
  313. package/dist/src/utils/command-summary.js +3 -0
  314. package/dist/src/utils/contract-versions.d.ts +6 -0
  315. package/dist/src/utils/contract-versions.js +25 -0
  316. package/dist/src/utils/file-import-path.js +20 -6
  317. package/dist/src/utils/generate-bootstrap-file.js +1 -1
  318. package/dist/src/utils/pikku-cli-config.js +104 -13
  319. package/dist/src/utils/pikku-files-and-methods.d.ts +0 -1
  320. package/dist/src/utils/pikku-files-and-methods.js +15 -60
  321. package/dist/src/utils/serialize-import-map.d.ts +2 -1
  322. package/dist/src/utils/serialize-import-map.js +3 -54
  323. package/dist/src/utils/serialize-meta-ts.d.ts +8 -0
  324. package/dist/src/utils/serialize-meta-ts.js +12 -0
  325. package/dist/src/utils/serialize-schemas.d.ts +3 -0
  326. package/dist/src/utils/serialize-schemas.js +38 -0
  327. package/dist/src/utils/strip-verbose-meta.d.ts +43 -0
  328. package/dist/src/utils/strip-verbose-meta.js +210 -0
  329. package/dist/tsconfig.tsbuildinfo +1 -1
  330. package/package.json +20 -8
  331. package/.pikku/channel/pikku-channel-types.gen.ts +0 -91
  332. package/.pikku/channel/pikku-channels-map.gen.d.ts +0 -47
  333. package/.pikku/channel/pikku-channels-meta.gen.ts +0 -5
  334. package/.pikku/channel/pikku-channels.gen.ts +0 -4
  335. package/.pikku/cli/pikku-cli-channel.ts +0 -92
  336. package/.pikku/cli/pikku-cli-client.gen.ts +0 -54
  337. package/.pikku/cli/pikku-cli-types.gen.ts +0 -92
  338. package/.pikku/cli/pikku-cli-wirings-meta.gen.json +0 -146
  339. package/.pikku/cli/pikku-cli-wirings-meta.gen.ts +0 -7
  340. package/.pikku/cli/pikku-cli-wirings.gen.ts +0 -6
  341. package/.pikku/cli/pikku-cli.gen.ts +0 -41
  342. package/.pikku/function/pikku-function-types.gen.ts +0 -426
  343. package/.pikku/function/pikku-functions-meta.gen.json +0 -988
  344. package/.pikku/function/pikku-functions-meta.gen.ts +0 -6
  345. package/.pikku/function/pikku-functions-meta.min.gen.json +0 -212
  346. package/.pikku/function/pikku-functions-meta.min.gen.ts +0 -6
  347. package/.pikku/http/pikku-http-types.gen.ts +0 -86
  348. package/.pikku/http/pikku-http-wirings-map.gen.d.ts +0 -46
  349. package/.pikku/http/pikku-http-wirings-meta.gen.ts +0 -13
  350. package/.pikku/http/pikku-http-wirings.gen.ts +0 -4
  351. package/.pikku/mcp/pikku-mcp-types.gen.ts +0 -140
  352. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +0 -5
  353. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.ts +0 -9
  354. package/.pikku/mcp/pikku-mcp-wirings.gen.ts +0 -4
  355. package/.pikku/mcp/pikku-mcp.gen.json +0 -5
  356. package/.pikku/pikku-bootstrap.gen.ts +0 -19
  357. package/.pikku/pikku-services.gen.ts +0 -27
  358. package/.pikku/pikku-types.gen.ts +0 -27
  359. package/.pikku/pikku-websocket.gen.ts +0 -90
  360. package/.pikku/queue/pikku-queue-types.gen.ts +0 -27
  361. package/.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts +0 -60
  362. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +0 -1
  363. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts +0 -8
  364. package/.pikku/queue/pikku-queue-workers-wirings.gen.ts +0 -4
  365. package/.pikku/rpc/pikku-remote-rpc-workers.gen.ts +0 -27
  366. package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +0 -57
  367. package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +0 -99
  368. package/.pikku/scheduler/pikku-scheduler-types.gen.ts +0 -25
  369. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +0 -1
  370. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.ts +0 -8
  371. package/.pikku/scheduler/pikku-schedulers-wirings.gen.ts +0 -4
  372. package/.pikku/schemas/register.gen.ts +0 -63
  373. package/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +0 -1
  374. package/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +0 -1
  375. package/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +0 -1
  376. package/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +0 -1
  377. package/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +0 -1
  378. package/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +0 -1
  379. package/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +0 -1
  380. package/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +0 -1
  381. package/.pikku/schemas/schemas/PikkuPublicRPCOutput.schema.json +0 -1
  382. package/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +0 -1
  383. package/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +0 -1
  384. package/.pikku/schemas/schemas/PikkuRemoteRPCOutput.schema.json +0 -1
  385. package/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +0 -1
  386. package/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +0 -1
  387. package/.pikku/schemas/schemas/PikkuWorkflowOutput.schema.json +0 -1
  388. package/.pikku/services/config.gen.json +0 -99
  389. package/.pikku/services/getInspectorState.gen.json +0 -10
  390. package/.pikku/services/jwt.gen.json +0 -13
  391. package/.pikku/services/logger.gen.json +0 -25
  392. package/.pikku/services/queueService.gen.json +0 -14
  393. package/.pikku/services/schedulerService.gen.json +0 -17
  394. package/.pikku/services/schema.gen.json +0 -14
  395. package/.pikku/services/variables.gen.json +0 -13
  396. package/.pikku/services/workflowService.gen.json +0 -31
  397. package/.pikku/workflow/pikku-workflow-map.gen.d.ts +0 -62
  398. package/.pikku/workflow/pikku-workflow-types.gen.ts +0 -97
  399. package/.pikku/workflow/pikku-workflow-wirings-meta.gen.json +0 -1
  400. package/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +0 -8
  401. package/.pikku/workflow/pikku-workflow-wirings.gen.ts +0 -8
  402. package/CHANGELOG.md +0 -935
  403. package/bin/pikku.ts +0 -88
  404. package/build.sh +0 -75
  405. package/dist/.pikku/function/pikku-functions-meta.min.gen.js +0 -6
  406. package/dist/.pikku/function/pikku-functions-meta.min.gen.json +0 -212
  407. package/dist/src/functions/wirings/channels/pikku-command-websocket-typed.d.ts +0 -1
  408. package/dist/src/functions/wirings/fetch/index.d.ts +0 -1
  409. package/dist/src/functions/wirings/functions/pikku-function-types.d.ts +0 -1
  410. package/dist/src/functions/wirings/functions/pikku-function-types.js +0 -18
  411. package/dist/src/functions/wirings/http/openapi-spec-generator.d.ts +0 -81
  412. package/dist/src/functions/wirings/http/openapi-spec-generator.js +0 -152
  413. package/dist/src/functions/wirings/mcp/serialize-mcp-json.d.ts +0 -5
  414. package/dist/src/functions/wirings/mcp/serialize-mcp-json.js +0 -101
  415. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.d.ts +0 -11
  416. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.js +0 -36
  417. package/dist/src/functions/wirings/services/pikku-command-service-metadata.d.ts +0 -1
  418. package/dist/src/functions/wirings/services/pikku-command-service-metadata.js +0 -22
  419. package/dist/src/functions/wirings/workflow/pikku-command-workflow-map.d.ts +0 -1
  420. package/dist/src/functions/wirings/workflow/pikku-command-workflow-map.js +0 -12
  421. package/dist/src/functions/wirings/workflow/pikku-command-workflow-types.d.ts +0 -1
  422. package/dist/src/functions/wirings/workflow/pikku-command-workflow-types.js +0 -13
  423. package/dist/src/functions/wirings/workflow/serialize-workflow-wirings.d.ts +0 -8
  424. package/dist/src/functions/wirings/workflow/serialize-workflow-wirings.js +0 -30
  425. package/dist/src/utils/custom-types-generator.d.ts +0 -2
  426. package/dist/src/utils/custom-types-generator.js +0 -43
  427. package/dist/src/utils/schema-generator.d.ts +0 -6
  428. package/dist/src/utils/schema-generator.js +0 -118
  429. package/pikku.config.json +0 -29
  430. package/run-tests.sh +0 -53
  431. package/src/cli.wiring.ts +0 -112
  432. package/src/functions/commands/all.ts +0 -266
  433. package/src/functions/commands/bootstrap.ts +0 -43
  434. package/src/functions/commands/watch.ts +0 -61
  435. package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +0 -132
  436. package/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts +0 -268
  437. package/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts +0 -201
  438. package/src/functions/wirings/channels/pikku-channels.ts +0 -59
  439. package/src/functions/wirings/channels/pikku-command-channel-types.ts +0 -25
  440. package/src/functions/wirings/channels/pikku-command-channels-map.ts +0 -26
  441. package/src/functions/wirings/channels/pikku-command-channels.ts +0 -40
  442. package/src/functions/wirings/channels/pikku-command-websocket-typed.ts +0 -37
  443. package/src/functions/wirings/channels/serialize-channel-types.ts +0 -94
  444. package/src/functions/wirings/channels/serialize-typed-channel-map.ts +0 -172
  445. package/src/functions/wirings/channels/serialize-websocket-wrapper.ts +0 -89
  446. package/src/functions/wirings/cli/pikku-command-cli-entry.ts +0 -216
  447. package/src/functions/wirings/cli/pikku-command-cli-types.ts +0 -48
  448. package/src/functions/wirings/cli/pikku-command-cli.ts +0 -62
  449. package/src/functions/wirings/cli/serialize-channel-cli-client.ts +0 -184
  450. package/src/functions/wirings/cli/serialize-channel-cli.ts +0 -134
  451. package/src/functions/wirings/cli/serialize-cli-types.ts +0 -101
  452. package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +0 -80
  453. package/src/functions/wirings/fetch/index.ts +0 -36
  454. package/src/functions/wirings/functions/pikku-command-function-types-split.ts +0 -60
  455. package/src/functions/wirings/functions/pikku-command-function-types.ts +0 -43
  456. package/src/functions/wirings/functions/pikku-command-functions.ts +0 -94
  457. package/src/functions/wirings/functions/pikku-command-services.ts +0 -140
  458. package/src/functions/wirings/functions/pikku-function-types.ts +0 -43
  459. package/src/functions/wirings/functions/schemas.ts +0 -46
  460. package/src/functions/wirings/functions/serialize-function-imports.ts +0 -71
  461. package/src/functions/wirings/functions/serialize-function-types.ts +0 -439
  462. package/src/functions/wirings/functions/serialize-pikku-types-hub.ts +0 -38
  463. package/src/functions/wirings/http/openapi-spec-generator.ts +0 -265
  464. package/src/functions/wirings/http/pikku-command-http-map.ts +0 -27
  465. package/src/functions/wirings/http/pikku-command-http-routes.ts +0 -36
  466. package/src/functions/wirings/http/pikku-command-http-types.ts +0 -25
  467. package/src/functions/wirings/http/pikku-command-openapi.ts +0 -63
  468. package/src/functions/wirings/http/pikku-http-routes.ts +0 -61
  469. package/src/functions/wirings/http/serialize-fetch-wrapper.ts +0 -67
  470. package/src/functions/wirings/http/serialize-http-types.ts +0 -89
  471. package/src/functions/wirings/http/serialize-typed-http-map.ts +0 -154
  472. package/src/functions/wirings/mcp/pikku-command-mcp-json.ts +0 -33
  473. package/src/functions/wirings/mcp/pikku-command-mcp-types.ts +0 -25
  474. package/src/functions/wirings/mcp/pikku-command-mcp.ts +0 -140
  475. package/src/functions/wirings/mcp/serialize-mcp-json.ts +0 -159
  476. package/src/functions/wirings/mcp/serialize-mcp-types.ts +0 -143
  477. package/src/functions/wirings/middleware/pikku-command-middleware.ts +0 -85
  478. package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +0 -40
  479. package/src/functions/wirings/middleware/serialize-middleware-imports.ts +0 -78
  480. package/src/functions/wirings/permissions/pikku-command-permissions.ts +0 -49
  481. package/src/functions/wirings/permissions/serialize-permissions-imports.test.ts +0 -274
  482. package/src/functions/wirings/permissions/serialize-permissions-imports.ts +0 -78
  483. package/src/functions/wirings/queue/pikku-command-queue-map.ts +0 -26
  484. package/src/functions/wirings/queue/pikku-command-queue-service.ts +0 -37
  485. package/src/functions/wirings/queue/pikku-command-queue-types.ts +0 -25
  486. package/src/functions/wirings/queue/pikku-command-queue.ts +0 -66
  487. package/src/functions/wirings/queue/pikku-queue-map.ts +0 -26
  488. package/src/functions/wirings/queue/pikku-queue.ts +0 -75
  489. package/src/functions/wirings/queue/serialize-queue-map.ts +0 -119
  490. package/src/functions/wirings/queue/serialize-queue-meta.ts +0 -24
  491. package/src/functions/wirings/queue/serialize-queue-types.ts +0 -30
  492. package/src/functions/wirings/queue/serialize-queue-wrapper.ts +0 -35
  493. package/src/functions/wirings/rpc/pikku-command-public-rpc.ts +0 -32
  494. package/src/functions/wirings/rpc/pikku-command-remote-rpc.ts +0 -35
  495. package/src/functions/wirings/rpc/pikku-command-rpc-client.ts +0 -35
  496. package/src/functions/wirings/rpc/pikku-command-rpc-map.ts +0 -48
  497. package/src/functions/wirings/rpc/pikku-command-rpc.ts +0 -49
  498. package/src/functions/wirings/rpc/serialize-public-rpc.ts +0 -37
  499. package/src/functions/wirings/rpc/serialize-remote-rpc.ts +0 -30
  500. package/src/functions/wirings/rpc/serialize-rpc-wrapper.ts +0 -68
  501. package/src/functions/wirings/rpc/serialize-typed-rpc-map.ts +0 -128
  502. package/src/functions/wirings/scheduler/pikku-command-scheduler-types.ts +0 -25
  503. package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +0 -67
  504. package/src/functions/wirings/scheduler/serialize-scheduler-meta.ts +0 -37
  505. package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +0 -28
  506. package/src/functions/wirings/services/pikku-command-service-metadata.ts +0 -25
  507. package/src/functions/wirings/workflow/pikku-command-workflow-map.ts +0 -24
  508. package/src/functions/wirings/workflow/pikku-command-workflow-types.ts +0 -29
  509. package/src/functions/wirings/workflow/pikku-command-workflow.ts +0 -151
  510. package/src/functions/wirings/workflow/serialize-workflow-map.ts +0 -123
  511. package/src/functions/wirings/workflow/serialize-workflow-meta.ts +0 -33
  512. package/src/functions/wirings/workflow/serialize-workflow-types.ts +0 -103
  513. package/src/functions/wirings/workflow/serialize-workflow-wirings.ts +0 -47
  514. package/src/functions/wirings/workflow/serialize-workflow-workers.ts +0 -60
  515. package/src/middleware/log-command-info-and-time.ts +0 -35
  516. package/src/services/cli-logger-forwarder.service.ts +0 -99
  517. package/src/services/cli-logger.service.ts +0 -108
  518. package/src/services.ts +0 -315
  519. package/src/utils/check-required-types.ts +0 -65
  520. package/src/utils/command-summary.ts +0 -103
  521. package/src/utils/custom-types-generator.ts +0 -55
  522. package/src/utils/file-import-path.test.ts +0 -175
  523. package/src/utils/file-import-path.ts +0 -53
  524. package/src/utils/file-imports-serializer.ts +0 -25
  525. package/src/utils/file-writer.ts +0 -72
  526. package/src/utils/generate-bootstrap-file.ts +0 -43
  527. package/src/utils/get-cli-version.ts +0 -28
  528. package/src/utils/pikku-cli-config.ts +0 -462
  529. package/src/utils/pikku-files-and-methods.ts +0 -145
  530. package/src/utils/schema-generator.ts +0 -172
  531. package/src/utils/serialize-import-map.ts +0 -102
  532. package/tsconfig.json +0 -21
  533. package/types/application-types.d.ts +0 -27
  534. package/types/config.d.ts +0 -270
  535. /package/dist/.pikku/{function/pikku-functions-meta.min.gen.d.ts → agent/pikku-agent-wirings-meta.gen.d.ts} +0 -0
  536. /package/dist/.pikku/{workflow/pikku-workflow-wirings-meta.gen.json → channel/pikku-channels-meta.gen.json} +0 -0
  537. /package/dist/src/functions/{wirings/channels → runtimes/websocket}/serialize-websocket-wrapper.d.ts +0 -0
  538. /package/dist/src/functions/{wirings/channels → runtimes/websocket}/serialize-websocket-wrapper.js +0 -0
@@ -0,0 +1,35 @@
1
+ export const serializeTriggerMeta = (triggerMeta) => {
2
+ return triggerMeta;
3
+ };
4
+ export const serializeTriggerMetaTS = (triggerMeta, jsonImportPath, supportsImportAttributes) => {
5
+ const importStatement = supportsImportAttributes
6
+ ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
7
+ : `import metaData from '${jsonImportPath}'`;
8
+ const serializedOutput = [];
9
+ serializedOutput.push("import { pikkuState } from '@pikku/core'");
10
+ serializedOutput.push("import { TriggerMeta } from '@pikku/core/trigger'");
11
+ serializedOutput.push(importStatement);
12
+ serializedOutput.push('');
13
+ serializedOutput.push("pikkuState(null, 'trigger', 'meta', metaData as TriggerMeta)");
14
+ serializedOutput.push('');
15
+ const triggerMetaValues = Object.values(triggerMeta);
16
+ if (triggerMetaValues.length > 0) {
17
+ serializedOutput.push(`export type TriggerNames = '${triggerMetaValues.map((t) => t.name).join("' | '")}'`);
18
+ }
19
+ return serializedOutput.join('\n');
20
+ };
21
+ export const serializeTriggerSourceMeta = (sourceMeta) => {
22
+ return sourceMeta;
23
+ };
24
+ export const serializeTriggerSourceMetaTS = (sourceMeta, jsonImportPath, supportsImportAttributes) => {
25
+ const importStatement = supportsImportAttributes
26
+ ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
27
+ : `import metaData from '${jsonImportPath}'`;
28
+ const serializedOutput = [];
29
+ serializedOutput.push("import { pikkuState } from '@pikku/core'");
30
+ serializedOutput.push("import { TriggerSourceMeta } from '@pikku/core/trigger'");
31
+ serializedOutput.push(importStatement);
32
+ serializedOutput.push('');
33
+ serializedOutput.push("pikkuState(null, 'trigger', 'sourceMeta', metaData as TriggerSourceMeta)");
34
+ return serializedOutput.join('\n');
35
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generates type definitions for trigger wirings
3
+ */
4
+ export declare const serializeTriggerTypes: (singletonServicesTypeImport: string, singletonServicesTypeName: string) => string;
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Generates type definitions for trigger wirings
3
+ */
4
+ export const serializeTriggerTypes = (singletonServicesTypeImport, singletonServicesTypeName) => {
5
+ return `/**
6
+ * Trigger-specific type definitions for tree-shaking optimization
7
+ */
8
+
9
+ import { CorePikkuTriggerFunction, CorePikkuTriggerFunctionConfig, CoreTrigger, wireTrigger as wireTriggerCore, wireTriggerSource as wireTriggerSourceCore } from '@pikku/core/trigger'
10
+ import type { CoreNodeConfig } from '@pikku/core/node'
11
+ ${singletonServicesTypeImport}
12
+ import type { StandardSchemaV1 } from '@standard-schema/spec'
13
+
14
+ ${singletonServicesTypeName !== 'SingletonServices' ? `type SingletonServices = ${singletonServicesTypeName}` : ''}
15
+
16
+ /**
17
+ * A trigger function that sets up a subscription and returns a teardown function.
18
+ * The trigger is fired via wire.trigger.invoke(data).
19
+ *
20
+ * @template TInput - Input type (configuration passed when wired)
21
+ * @template TOutput - Output type produced when trigger fires
22
+ */
23
+ export type PikkuTriggerFunction<
24
+ TInput = unknown,
25
+ TOutput = unknown
26
+ > = CorePikkuTriggerFunction<TInput, TOutput, SingletonServices>
27
+
28
+ /**
29
+ * Configuration object for creating a trigger function with metadata
30
+ */
31
+ export type PikkuTriggerFunctionConfig<
32
+ TInput = unknown,
33
+ TOutput = unknown,
34
+ InputSchema extends StandardSchemaV1 | undefined = undefined,
35
+ OutputSchema extends StandardSchemaV1 | undefined = undefined
36
+ > = CorePikkuTriggerFunctionConfig<TInput, TOutput, SingletonServices, InputSchema, OutputSchema>
37
+
38
+ /**
39
+ * Helper type to infer the output type from a Standard Schema
40
+ */
41
+ type InferSchemaOutput<T> = T extends StandardSchemaV1<any, infer Output> ? Output : never
42
+
43
+ /**
44
+ * Configuration object for trigger functions with Zod schema validation.
45
+ * Use this when you want to define input/output schemas using Zod.
46
+ * Types are automatically inferred from the schemas.
47
+ */
48
+ export type PikkuTriggerFunctionConfigWithSchema<
49
+ InputSchema extends StandardSchemaV1,
50
+ OutputSchema extends StandardSchemaV1 | undefined = undefined
51
+ > = {
52
+ title?: string
53
+ description?: string
54
+ tags?: string[]
55
+ func: PikkuTriggerFunction<
56
+ InferSchemaOutput<InputSchema>,
57
+ OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown
58
+ >
59
+ input: InputSchema
60
+ output?: OutputSchema
61
+ node?: CoreNodeConfig
62
+ }
63
+
64
+ /**
65
+ * Type definition for trigger wirings.
66
+ * Declares a trigger name and its target pikku function.
67
+ */
68
+ export type TriggerWiring = CoreTrigger
69
+
70
+ /**
71
+ * A trigger source with the subscription function, using project-specific services.
72
+ *
73
+ * @template TInput - Input type passed to the trigger function
74
+ * @template TOutput - Output type produced when trigger fires
75
+ */
76
+ export type TriggerSource<
77
+ TInput = unknown,
78
+ TOutput = unknown
79
+ > = {
80
+ name: string
81
+ func: PikkuTriggerFunctionConfig<TInput, TOutput>
82
+ } & (unknown extends TInput ? { input?: TInput } : { input: TInput })
83
+
84
+ /**
85
+ * Creates a trigger function configuration.
86
+ * Use this to define trigger functions that set up subscriptions.
87
+ *
88
+ * @param triggerOrConfig - Function definition or configuration object
89
+ * @returns The normalized configuration object
90
+ *
91
+ * @example
92
+ * \`\`\`typescript
93
+ * export const redisSubscribeTrigger = pikkuTriggerFunc<
94
+ * { channel: string },
95
+ * { message: string }
96
+ * >(async ({ redis }, { channel }, { trigger }) => {
97
+ * const subscriber = redis.duplicate()
98
+ * await subscriber.subscribe(channel, (msg) => {
99
+ * trigger.invoke({ message: msg })
100
+ * })
101
+ * return () => subscriber.unsubscribe()
102
+ * })
103
+ *
104
+ * export const redisSubscribeTrigger = pikkuTriggerFunc({
105
+ * title: 'Redis Subscribe Trigger',
106
+ * description: 'Listens to Redis pub/sub channel',
107
+ * input: z.object({ channel: z.string() }),
108
+ * output: z.object({ message: z.string() }),
109
+ * func: async ({ redis }, { channel }, { trigger }) => {
110
+ * const subscriber = redis.duplicate()
111
+ * await subscriber.subscribe(channel, (msg) => {
112
+ * trigger.invoke({ message: msg })
113
+ * })
114
+ * return () => subscriber.unsubscribe()
115
+ * }
116
+ * })
117
+ * \`\`\`
118
+ */
119
+ export function pikkuTriggerFunc<
120
+ InputSchema extends StandardSchemaV1,
121
+ OutputSchema extends StandardSchemaV1 | undefined = undefined
122
+ >(
123
+ config: PikkuTriggerFunctionConfigWithSchema<InputSchema, OutputSchema>
124
+ ): PikkuTriggerFunctionConfig<InferSchemaOutput<InputSchema>, OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown, InputSchema, OutputSchema>
125
+ export function pikkuTriggerFunc<TInput, TOutput = unknown>(
126
+ triggerOrConfig:
127
+ | PikkuTriggerFunction<TInput, TOutput>
128
+ | PikkuTriggerFunctionConfig<TInput, TOutput>
129
+ ): PikkuTriggerFunctionConfig<TInput, TOutput>
130
+ export function pikkuTriggerFunc(triggerOrConfig: any) {
131
+ if (typeof triggerOrConfig === 'function') {
132
+ return { func: triggerOrConfig }
133
+ }
134
+ return triggerOrConfig
135
+ }
136
+
137
+ /**
138
+ * Registers a trigger with the Pikku framework.
139
+ * Declares a trigger name and its target pikku function.
140
+ * Runs everywhere — inspector extracts at build time.
141
+ *
142
+ * @param trigger - Trigger definition with name and function config
143
+ */
144
+ export const wireTrigger = (
145
+ trigger: TriggerWiring
146
+ ) => {
147
+ wireTriggerCore(trigger as any)
148
+ }
149
+
150
+ /**
151
+ * Registers a trigger source with the Pikku framework.
152
+ * Provides the subscription function and input data.
153
+ * Only imported in the trigger worker process.
154
+ *
155
+ * @param source - Trigger source with name, func, and input
156
+ */
157
+ export const wireTriggerSource = <TInput = unknown, TOutput = unknown>(
158
+ source: TriggerSource<TInput, TOutput>
159
+ ) => {
160
+ wireTriggerSourceCore(source as any)
161
+ }
162
+ `;
163
+ };
@@ -0,0 +1 @@
1
+ export declare const pikkuVariables: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
@@ -0,0 +1,31 @@
1
+ import { pikkuSessionlessFunc } from '#pikku';
2
+ import { writeFileInDir } from '../../../utils/file-writer.js';
3
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
4
+ import { serializeVariablesTypes } from './serialize-variables-types.js';
5
+ import { validateAndBuildVariableDefinitionsMeta } from '@pikku/core/variable';
6
+ export const pikkuVariables = pikkuSessionlessFunc({
7
+ func: async ({ logger, config, getInspectorState }) => {
8
+ const { variablesFile, variablesMetaJsonFile, packageMappings } = config;
9
+ if (!variablesFile) {
10
+ return;
11
+ }
12
+ const state = await getInspectorState();
13
+ const content = serializeVariablesTypes({
14
+ definitions: state.variables.definitions,
15
+ schemaLookup: state.schemaLookup,
16
+ variablesFile,
17
+ packageMappings,
18
+ });
19
+ await writeFileInDir(logger, variablesFile, content);
20
+ if (variablesMetaJsonFile) {
21
+ const meta = validateAndBuildVariableDefinitionsMeta(state.variables.definitions, state.schemaLookup);
22
+ await writeFileInDir(logger, variablesMetaJsonFile, JSON.stringify(meta, null, 2));
23
+ }
24
+ },
25
+ middleware: [
26
+ logCommandInfoAndTime({
27
+ commandStart: 'Creating PikkuVariables types',
28
+ commandEnd: 'Created PikkuVariables types',
29
+ }),
30
+ ],
31
+ });
@@ -0,0 +1,9 @@
1
+ import { VariableDefinitions } from '@pikku/core/variable';
2
+ import { SchemaRef } from '@pikku/inspector';
3
+ export interface SerializeVariablesOptions {
4
+ definitions: VariableDefinitions;
5
+ schemaLookup: Map<string, SchemaRef>;
6
+ variablesFile: string;
7
+ packageMappings: Record<string, string>;
8
+ }
9
+ export declare const serializeVariablesTypes: ({ definitions, schemaLookup, variablesFile, packageMappings, }: SerializeVariablesOptions) => string;
@@ -0,0 +1,53 @@
1
+ import { validateAndBuildVariableDefinitionsMeta } from '@pikku/core/variable';
2
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
3
+ export const serializeVariablesTypes = ({ definitions, schemaLookup, variablesFile, packageMappings, }) => {
4
+ const variables = validateAndBuildVariableDefinitionsMeta(definitions, schemaLookup);
5
+ const variableEntries = Object.entries(variables);
6
+ const schemaImports = new Map();
7
+ let needsZod = false;
8
+ const mapEntries = [];
9
+ const metaEntries = [];
10
+ for (const [name, meta] of variableEntries) {
11
+ if (meta.schema && typeof meta.schema === 'string') {
12
+ const schemaRef = schemaLookup.get(meta.schema);
13
+ if (schemaRef) {
14
+ needsZod = true;
15
+ if (!schemaImports.has(schemaRef.sourceFile)) {
16
+ schemaImports.set(schemaRef.sourceFile, new Set());
17
+ }
18
+ schemaImports.get(schemaRef.sourceFile).add(schemaRef.variableName);
19
+ mapEntries.push(` '${meta.variableId}': z.infer<typeof ${schemaRef.variableName}>`);
20
+ metaEntries.push(` '${meta.variableId}': { name: '${name}', displayName: '${meta.displayName}' }`);
21
+ }
22
+ }
23
+ }
24
+ const imports = [];
25
+ imports.push(`import { TypedVariablesService as CoreTypedVariablesService, type VariableMeta } from '@pikku/core/services'`);
26
+ imports.push(`import type { VariablesService } from '@pikku/core/services'`);
27
+ if (needsZod) {
28
+ imports.push(`import type { z } from 'zod'`);
29
+ }
30
+ for (const [sourceFile, variableNames] of schemaImports) {
31
+ const importPath = getFileImportRelativePath(variablesFile, sourceFile, packageMappings);
32
+ const vars = Array.from(variableNames).join(', ');
33
+ imports.push(`import { ${vars} } from '${importPath}'`);
34
+ }
35
+ return `${imports.join('\n')}
36
+
37
+ export interface VariablesMap {
38
+ ${mapEntries.join('\n')}
39
+ }
40
+
41
+ export type VariableId = keyof VariablesMap
42
+
43
+ const VARIABLES_META: Record<string, VariableMeta> = {
44
+ ${metaEntries.join(',\n')}
45
+ }
46
+
47
+ export class TypedVariablesService extends CoreTypedVariablesService<VariablesMap> {
48
+ constructor(variables: VariablesService) {
49
+ super(variables, VARIABLES_META)
50
+ }
51
+ }
52
+ `;
53
+ };
@@ -1 +1 @@
1
- export declare const pikkuWorkflow: any;
1
+ export declare const pikkuWorkflow: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
@@ -1,22 +1,23 @@
1
- import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
1
+ import { pikkuSessionlessFunc } from '#pikku';
2
2
  import { ErrorCode } from '@pikku/inspector';
3
3
  import { writeFileInDir } from '../../../utils/file-writer.js';
4
4
  import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
- import { serializeWorkflowMeta, serializeWorkflowMetaTS, } from './serialize-workflow-meta.js';
6
5
  import { serializeWorkflowTypes } from './serialize-workflow-types.js';
6
+ import { serializeWorkflowRegistration } from './serialize-workflow-registration.js';
7
7
  import { serializeWorkflowMap } from './serialize-workflow-map.js';
8
+ import { serializeWorkflowMeta } from './serialize-workflow-meta.js';
8
9
  import { serializeWorkflowWorkers } from './serialize-workflow-workers.js';
9
- import { serializeWorkflowWirings } from './serialize-workflow-wirings.js';
10
10
  import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
11
+ import { stripVerboseFields, hasVerboseFields, } from '../../../utils/strip-verbose-meta.js';
11
12
  import { join } from 'path';
12
13
  export const pikkuWorkflow = pikkuSessionlessFunc({
13
14
  func: async ({ logger, config, getInspectorState }) => {
14
15
  const visitState = await getInspectorState();
15
- const { workflowsWiringFile, workflowsWiringMetaFile, workflowsWiringMetaJsonFile, workflowMapDeclarationFile, workflowTypesFile, functionTypesFile, typesDeclarationFile, packageMappings, schema, } = config;
16
+ const { workflowsWiringFile, workflowsWiringMetaFile, workflowMetaDir, workflowMapDeclarationFile, workflowTypesFile, functionTypesFile, typesDeclarationFile, packageMappings, schema, } = config;
16
17
  const { workflows, functions: functionState } = visitState;
17
18
  const { typesMap } = functionState;
18
- // Validate that workflowService service is configured if workflows are defined
19
- const hasWorkflows = Object.keys(workflows.meta).length > 0;
19
+ const allWorkflowNames = Object.keys(workflows.graphMeta);
20
+ const hasWorkflows = allWorkflowNames.length > 0;
20
21
  if (hasWorkflows) {
21
22
  const hasWorkflowState = visitState.serviceAggregation.allSingletonServices.includes('workflowService');
22
23
  if (!hasWorkflowState) {
@@ -24,19 +25,27 @@ export const pikkuWorkflow = pikkuSessionlessFunc({
24
25
  throw new Error('WorkflowState service not configured but workflows are defined');
25
26
  }
26
27
  }
27
- await writeFileInDir(logger, workflowsWiringMetaJsonFile, JSON.stringify(serializeWorkflowMeta(workflows.meta), null, 2));
28
- const jsonImportPath = getFileImportRelativePath(workflowsWiringMetaFile, workflowsWiringMetaJsonFile, packageMappings);
29
- // Write workflow metadata TypeScript file that imports JSON
30
- await writeFileInDir(logger, workflowsWiringMetaFile, serializeWorkflowMetaTS(workflows.meta, jsonImportPath, schema?.supportsImportAttributes ?? false));
31
- // Write workflow wirings (imports and addWorkflow calls)
32
- await writeFileInDir(logger, workflowsWiringFile, serializeWorkflowWirings(workflowsWiringFile, workflows.files, packageMappings));
33
- // Write workflow types
28
+ if (hasWorkflows && workflowMetaDir) {
29
+ for (const [name, graphMeta] of Object.entries(workflows.graphMeta)) {
30
+ const minimalMeta = stripVerboseFields(graphMeta);
31
+ const minimalPath = join(workflowMetaDir, `${name}.gen.json`);
32
+ await writeFileInDir(logger, minimalPath, JSON.stringify(minimalMeta, null, 2), { ignoreModifyComment: true });
33
+ if (hasVerboseFields(graphMeta)) {
34
+ const verbosePath = join(workflowMetaDir, `${name}-verbose.gen.json`);
35
+ await writeFileInDir(logger, verbosePath, JSON.stringify(graphMeta, null, 2), { ignoreModifyComment: true });
36
+ }
37
+ }
38
+ }
39
+ if (workflowsWiringMetaFile && workflowMetaDir) {
40
+ await writeFileInDir(logger, workflowsWiringMetaFile, serializeWorkflowMeta(workflowsWiringMetaFile, workflowMetaDir, allWorkflowNames, packageMappings, schema?.supportsImportAttributes ?? false, config.externalPackageName));
41
+ }
42
+ const metaImportPath = getFileImportRelativePath(workflowsWiringFile, workflowsWiringMetaFile, packageMappings);
43
+ await writeFileInDir(logger, workflowsWiringFile, serializeWorkflowRegistration(workflowsWiringFile, metaImportPath, allWorkflowNames, workflows.files, workflows.graphFiles, packageMappings, config.externalPackageName));
34
44
  const functionTypesImportPath = getFileImportRelativePath(workflowTypesFile, functionTypesFile, packageMappings);
35
- // Get RPC map import path
36
45
  const rpcMapImportPath = getFileImportRelativePath(workflowTypesFile, config.rpcInternalMapDeclarationFile, packageMappings);
37
- await writeFileInDir(logger, workflowTypesFile, serializeWorkflowTypes(functionTypesImportPath, rpcMapImportPath));
38
- // Write workflow map (type-safe client API)
39
- await writeFileInDir(logger, workflowMapDeclarationFile, serializeWorkflowMap(workflowMapDeclarationFile, packageMappings, typesMap, functionState.meta, workflows.meta));
46
+ const workflowMapImportPath = getFileImportRelativePath(workflowTypesFile, workflowMapDeclarationFile, packageMappings);
47
+ await writeFileInDir(logger, workflowTypesFile, serializeWorkflowTypes(functionTypesImportPath, rpcMapImportPath, workflowMapImportPath));
48
+ await writeFileInDir(logger, workflowMapDeclarationFile, serializeWorkflowMap(logger, workflowMapDeclarationFile, packageMappings, typesMap, functionState.meta, workflows.meta, workflows.graphMeta));
40
49
  if (config.workflows) {
41
50
  if (config.workflows.singleQueue) {
42
51
  const workflowPath = join(config.rootDir, config.workflows.path);
@@ -48,12 +57,12 @@ export const pikkuWorkflow = pikkuSessionlessFunc({
48
57
  return false;
49
58
  }
50
59
  }
51
- return true;
60
+ return hasWorkflows;
52
61
  },
53
62
  middleware: [
54
63
  logCommandInfoAndTime({
55
- commandStart: 'Finding Workflows',
56
- commandEnd: 'Found Workflows',
64
+ commandStart: 'Generating Workflows',
65
+ commandEnd: 'Generated Workflows',
57
66
  }),
58
67
  ],
59
68
  });
@@ -1,4 +1,9 @@
1
+ /**
2
+ * Generate workflow map type definitions for type-safe client API
3
+ */
1
4
  import type { WorkflowsMeta } from '@pikku/core/workflow';
2
- import { TypesMap } from '@pikku/inspector';
5
+ import { type TypesMap } from '@pikku/inspector';
6
+ import type { SerializedWorkflowGraphs } from '@pikku/inspector/workflow-graph';
3
7
  import { FunctionsMeta } from '@pikku/core';
4
- export declare const serializeWorkflowMap: (relativeToPath: string, packageMappings: Record<string, string>, typesMap: TypesMap, functionsMeta: FunctionsMeta, workflowsMeta: WorkflowsMeta) => string;
8
+ import { Logger } from '@pikku/core/services';
9
+ export declare const serializeWorkflowMap: (logger: Logger, relativeToPath: string, packageMappings: Record<string, string>, typesMap: TypesMap, functionsMeta: FunctionsMeta, workflowsMeta: WorkflowsMeta, graphMeta: SerializedWorkflowGraphs) => string;
@@ -1,79 +1,128 @@
1
1
  import { serializeImportMap } from '../../../utils/serialize-import-map.js';
2
- import { generateCustomTypes } from '../../../utils/custom-types-generator.js';
3
- export const serializeWorkflowMap = (relativeToPath, packageMappings, typesMap, functionsMeta, workflowsMeta) => {
2
+ import { generateCustomTypes } from '@pikku/inspector';
3
+ import { parseVersionedId } from '@pikku/core';
4
+ export const serializeWorkflowMap = (logger, relativeToPath, packageMappings, typesMap, functionsMeta, workflowsMeta, graphMeta) => {
4
5
  const requiredTypes = new Set();
5
- const serializedCustomTypes = generateCustomTypes(typesMap, requiredTypes);
6
6
  const serializedWorkflows = generateWorkflows(workflowsMeta, functionsMeta, typesMap, requiredTypes);
7
- const serializedImportMap = serializeImportMap(relativeToPath, packageMappings, typesMap, requiredTypes);
7
+ const serializedGraphs = generateGraphs(graphMeta, functionsMeta, typesMap, requiredTypes);
8
+ const hasAny = Object.keys(workflowsMeta).length > 0 || Object.keys(graphMeta).length > 0;
9
+ const serializedCustomTypes = hasAny
10
+ ? generateCustomTypes(typesMap, requiredTypes)
11
+ : '';
12
+ const serializedImportMap = hasAny
13
+ ? serializeImportMap(logger, relativeToPath, packageMappings, typesMap, requiredTypes)
14
+ : '';
15
+ const serializedCustomTypesDeclarationsOnly = serializedCustomTypes
16
+ .split('\n')
17
+ .filter((line) => !line.startsWith('import '))
18
+ .join('\n');
8
19
  return `/**
9
- * This provides the structure needed for TypeScript to be aware of workflows and their input/output types
20
+ * Workflow type map with input/output types for each workflow
10
21
  */
11
22
 
12
23
  ${serializedImportMap}
13
- ${serializedCustomTypes}
24
+ ${serializedCustomTypesDeclarationsOnly}
14
25
 
15
26
  interface WorkflowHandler<I, O> {
16
27
  input: I;
17
28
  output: O;
18
29
  }
19
30
 
31
+ interface GraphNodeHandler<I> {
32
+ input: I;
33
+ }
34
+
20
35
  ${serializedWorkflows}
21
36
 
22
- /**
23
- * Type-safe workflow client API
24
- */
37
+ ${serializedGraphs}
38
+
25
39
  export type WorkflowClient<Name extends keyof WorkflowMap> = {
26
- /**
27
- * Start a new workflow run
28
- */
29
40
  start: (input: WorkflowMap[Name]['input']) => Promise<{ runId: string }>;
30
-
31
- /**
32
- * Get a workflow run by ID
33
- */
34
41
  getRun: <output extends keyof WorkflowMap[Name]>(runId: string) => Promise<WorkflowMap[Name][output]>;
35
-
36
- /**
37
- * Cancel a running workflow
38
- */
39
42
  cancelRun: (runId: string) => Promise<boolean>;
40
43
  }
41
44
 
42
- /**
43
- * Map of all registered workflows with type-safe client APIs
44
- */
45
45
  export type TypedWorkflowClients = {
46
46
  [Name in keyof WorkflowMap]: WorkflowClient<Name>;
47
47
  }
48
- `;
48
+ `;
49
49
  };
50
50
  function generateWorkflows(workflowsMeta, functionsMeta, typesMap, requiredTypes) {
51
- // Initialize an object to collect workflows
52
51
  const workflowsObj = {};
53
- // Iterate through workflow metadata
54
- for (const [workflowName, { pikkuFuncName }] of Object.entries(workflowsMeta)) {
55
- const functionMeta = functionsMeta[pikkuFuncName];
52
+ for (const [workflowName, { pikkuFuncId }] of Object.entries(workflowsMeta)) {
53
+ const functionMeta = functionsMeta[pikkuFuncId];
56
54
  if (!functionMeta) {
57
55
  throw new Error(`Function ${workflowName} not found in functionsMeta. Please check your configuration.`);
58
56
  }
59
57
  const input = functionMeta.inputs ? functionMeta.inputs[0] : undefined;
60
58
  const output = functionMeta.outputs ? functionMeta.outputs[0] : undefined;
61
- // Store the input and output types for WorkflowHandler
62
- const inputType = input ? typesMap.getTypeMeta(input).uniqueName : 'void';
63
- const outputType = output ? typesMap.getTypeMeta(output).uniqueName : 'void';
59
+ let inputType = 'void';
60
+ if (input) {
61
+ try {
62
+ inputType = typesMap.getTypeMeta(input).uniqueName;
63
+ }
64
+ catch {
65
+ inputType = input;
66
+ }
67
+ }
68
+ let outputType = 'void';
69
+ if (output) {
70
+ try {
71
+ outputType = typesMap.getTypeMeta(output).uniqueName;
72
+ }
73
+ catch {
74
+ outputType = output;
75
+ }
76
+ }
64
77
  requiredTypes.add(inputType);
65
78
  requiredTypes.add(outputType);
66
- // Add workflow entry
67
- workflowsObj[workflowName] = {
68
- inputType,
69
- outputType,
70
- };
79
+ workflowsObj[workflowName] = { inputType, outputType };
71
80
  }
72
- // Build the Workflows object as a string
73
81
  let workflowsStr = 'export type WorkflowMap = {\n';
74
82
  for (const [workflowName, handler] of Object.entries(workflowsObj)) {
75
83
  workflowsStr += ` readonly '${workflowName}': WorkflowHandler<${handler.inputType}, ${handler.outputType}>,\n`;
76
84
  }
77
- workflowsStr += '};\n';
85
+ workflowsStr += '};';
78
86
  return workflowsStr;
79
87
  }
88
+ function generateGraphs(graphMeta, functionsMeta, typesMap, requiredTypes) {
89
+ const graphsObj = {};
90
+ for (const [graphName, graph] of Object.entries(graphMeta)) {
91
+ graphsObj[graphName] = {};
92
+ for (const [nodeId, node] of Object.entries(graph.nodes)) {
93
+ if (!('rpcName' in node) || typeof node.rpcName !== 'string') {
94
+ continue;
95
+ }
96
+ let functionMeta = functionsMeta[node.rpcName];
97
+ if (!functionMeta) {
98
+ const { baseName } = parseVersionedId(node.rpcName);
99
+ functionMeta = functionsMeta[baseName];
100
+ }
101
+ if (!functionMeta) {
102
+ continue;
103
+ }
104
+ const input = functionMeta.inputs ? functionMeta.inputs[0] : undefined;
105
+ let inputType = 'void';
106
+ if (input) {
107
+ try {
108
+ inputType = typesMap.getTypeMeta(input).uniqueName;
109
+ }
110
+ catch {
111
+ inputType = input;
112
+ }
113
+ }
114
+ requiredTypes.add(inputType);
115
+ graphsObj[graphName][nodeId] = { inputType };
116
+ }
117
+ }
118
+ let graphsStr = 'export type GraphsMap = {\n';
119
+ for (const [graphName, nodes] of Object.entries(graphsObj)) {
120
+ graphsStr += ` readonly '${graphName}': {\n`;
121
+ for (const [nodeId, handler] of Object.entries(nodes)) {
122
+ graphsStr += ` readonly '${nodeId}': GraphNodeHandler<${handler.inputType}>,\n`;
123
+ }
124
+ graphsStr += ' },\n';
125
+ }
126
+ graphsStr += '};';
127
+ return graphsStr;
128
+ }
@@ -1,3 +1 @@
1
- import { WorkflowsMeta } from '@pikku/core/workflow';
2
- export declare const serializeWorkflowMeta: (workflowsMeta: WorkflowsMeta) => WorkflowsMeta;
3
- export declare const serializeWorkflowMetaTS: (workflowsMeta: WorkflowsMeta, jsonImportPath: string, supportsImportAttributes: boolean) => string;
1
+ export declare const serializeWorkflowMeta: (outputPath: string, metaDir: string, workflowNames: string[], packageMappings: Record<string, string>, supportsImportAttributes: boolean, packageName?: string) => string;
@@ -1,20 +1,44 @@
1
- export const serializeWorkflowMeta = (workflowsMeta) => {
2
- return workflowsMeta;
3
- };
4
- export const serializeWorkflowMetaTS = (workflowsMeta, jsonImportPath, supportsImportAttributes) => {
5
- const importStatement = supportsImportAttributes
6
- ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
7
- : `import metaData from '${jsonImportPath}'`;
8
- const serializedOutput = [];
9
- serializedOutput.push("import { pikkuState } from '@pikku/core'");
10
- serializedOutput.push("import { WorkflowsMeta } from '@pikku/core/workflow'");
11
- serializedOutput.push(importStatement);
12
- serializedOutput.push('');
13
- serializedOutput.push("pikkuState('workflows', 'meta', metaData as WorkflowsMeta)");
14
- serializedOutput.push('');
15
- const workflowsMetaValues = Object.values(workflowsMeta);
16
- if (workflowsMetaValues.length > 0) {
17
- serializedOutput.push(`export type WorkflowNames = '${workflowsMetaValues.map((w) => w.workflowName).join("' | '")}'`);
1
+ /**
2
+ * Generate workflow meta aggregation file that imports individual workflow JSON files
3
+ * and registers them with pikkuState
4
+ */
5
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
6
+ import { sanitizeTypeName } from '@pikku/inspector';
7
+ export const serializeWorkflowMeta = (outputPath, metaDir, workflowNames, packageMappings, supportsImportAttributes, packageName) => {
8
+ const pkg = packageName ? `'${packageName}'` : 'null';
9
+ if (workflowNames.length === 0) {
10
+ return `import { pikkuState } from '@pikku/core'
11
+ import type { SerializedWorkflowGraphs } from '@pikku/inspector/workflow-graph'
12
+
13
+ const workflowsMeta: SerializedWorkflowGraphs = {}
14
+
15
+ pikkuState(${pkg}, 'workflows', 'meta', workflowsMeta)`;
18
16
  }
19
- return serializedOutput.join('\n');
17
+ const sortedNames = [...workflowNames].sort();
18
+ const imports = sortedNames
19
+ .map((name) => {
20
+ const sanitizedIdentifier = sanitizeTypeName(name);
21
+ const jsonPath = `${metaDir}/${name}.gen.json`;
22
+ const importPath = getFileImportRelativePath(outputPath, jsonPath, packageMappings);
23
+ return supportsImportAttributes
24
+ ? `import ${sanitizedIdentifier}Meta from '${importPath}' with { type: 'json' }`
25
+ : `import ${sanitizedIdentifier}Meta from '${importPath}'`;
26
+ })
27
+ .join('\n');
28
+ const metaEntries = sortedNames
29
+ .map((name) => {
30
+ const sanitizedIdentifier = sanitizeTypeName(name);
31
+ return ` '${name}': ${sanitizedIdentifier}Meta,`;
32
+ })
33
+ .join('\n');
34
+ return `import { pikkuState } from '@pikku/core'
35
+ import type { SerializedWorkflowGraphs } from '@pikku/inspector/workflow-graph'
36
+
37
+ ${imports}
38
+
39
+ const workflowsMeta = {
40
+ ${metaEntries}
41
+ } as SerializedWorkflowGraphs
42
+
43
+ pikkuState(${pkg}, 'workflows', 'meta', workflowsMeta)`;
20
44
  };
@@ -0,0 +1,7 @@
1
+ export declare const serializeWorkflowRegistration: (outputPath: string, metaImportPath: string, workflowNames: string[], workflowFiles: Map<string, {
2
+ path: string;
3
+ exportedName: string;
4
+ }>, _graphFiles: Map<string, {
5
+ path: string;
6
+ exportedName: string;
7
+ }>, packageMappings: Record<string, string>, _packageName?: string) => string;