@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
@@ -1,94 +0,0 @@
1
- /**
2
- * Generates type definitions for WebSocket channel wirings
3
- */
4
- export const serializeChannelTypes = (functionTypesImportPath: string) => {
5
- return `/**
6
-
7
- * Channel-specific type definitions for tree-shaking optimization
8
- */
9
-
10
- import { CoreChannel, wireChannel as wireChannelCore } from '@pikku/core/channel'
11
- import { AssertHTTPWiringParams } from '@pikku/core/http'
12
- import type { PikkuFunctionConfig, PikkuFunctionSessionless, PikkuPermission, PikkuMiddleware } from '${functionTypesImportPath}'
13
-
14
- /**
15
- * Type definition for WebSocket channels with typed data exchange.
16
- * Supports connection, disconnection, and message handling.
17
- * Accepts both session-based (PikkuFunction) and sessionless (PikkuFunctionSessionless) functions.
18
- *
19
- * @template ChannelData - Type of data exchanged through the channel
20
- * @template Channel - String literal type for the channel name
21
- */
22
- type ChannelWiring<ChannelData, Channel extends string> = CoreChannel<
23
- ChannelData,
24
- Channel,
25
- PikkuFunctionConfig<void, any, 'channel' | 'session' | 'rpc'>,
26
- PikkuFunctionConfig<void, void, 'channel' | 'session' | 'rpc'>,
27
- PikkuFunctionConfig<any, any, 'channel' | 'session' | 'rpc'>,
28
- PikkuPermission,
29
- PikkuMiddleware
30
- >
31
-
32
- /**
33
- * Creates a function that handles WebSocket channel connections.
34
- * Called when a client connects to a channel.
35
- *
36
- * @template Out - Output type for connection response
37
- * @param func - Function definition, either direct function or configuration object
38
- * @returns The normalized configuration object
39
- */
40
- export const pikkuChannelConnectionFunc = <Out = unknown>(
41
- func:
42
- | PikkuFunctionSessionless<void, Out, 'channel' | 'session' | 'rpc'>
43
- | PikkuFunctionConfig<void, Out, 'channel' | 'session' | 'rpc'>
44
- ) => {
45
- return typeof func === 'function' ? { func } : func
46
- }
47
-
48
- /**
49
- * Creates a function that handles WebSocket channel disconnections.
50
- * Called when a client disconnects from a channel.
51
- *
52
- * @param func - Function definition, either direct function or configuration object
53
- * @returns The normalized configuration object
54
- */
55
- export const pikkuChannelDisconnectionFunc = (
56
- func:
57
- | PikkuFunctionSessionless<void, void, 'channel'>
58
- | PikkuFunctionConfig<void, void, 'channel' | 'session' | 'rpc'>
59
- ) => {
60
- return typeof func === 'function' ? { func } : func
61
- }
62
-
63
- /**
64
- * Creates a function that handles WebSocket channel messages.
65
- * Called when a message is received on a channel.
66
- * This is the same as pikkuSessionlessFunc but with ChannelData = unknown by default.
67
- *
68
- * @template In - Input type for channel messages
69
- * @template Out - Output type for channel responses
70
- * @param func - Function definition, either direct function or configuration object
71
- * @returns The normalized configuration object
72
- */
73
- export const pikkuChannelFunc = <In, Out = unknown>(
74
- func:
75
- | PikkuFunctionSessionless<In, Out, 'channel' | 'session' | 'rpc'>
76
- | PikkuFunctionConfig<In, Out, 'channel' | 'session' | 'rpc'>
77
- ) => {
78
- return typeof func === 'function' ? { func } : func
79
- }
80
-
81
- /**
82
- * Registers a WebSocket channel with the Pikku framework.
83
- *
84
- * @template ChannelData - Type of data associated with the channel
85
- * @template Channel - String literal type for the channel name
86
- * @param channel - Channel definition with connection, disconnection, and message handlers
87
- */
88
- export const wireChannel = <ChannelData, Channel extends string>(
89
- channel: ChannelWiring<ChannelData, Channel> & AssertHTTPWiringParams<ChannelData, Channel>
90
- ) => {
91
- wireChannelCore(channel as any) // TODO
92
- }
93
- `
94
- }
@@ -1,172 +0,0 @@
1
- import { ChannelsMeta } from '@pikku/core/channel'
2
- import { serializeImportMap } from '../../../utils/serialize-import-map.js'
3
- import { TypesMap } from '@pikku/inspector'
4
- import { generateCustomTypes } from '../../../utils/custom-types-generator.js'
5
- import { FunctionsMeta } from '@pikku/core'
6
-
7
- export const serializeTypedChannelsMap = (
8
- relativeToPath: string,
9
- packageMappings: Record<string, string>,
10
- typesMap: TypesMap,
11
- functionsMeta: FunctionsMeta,
12
- channelsMeta: ChannelsMeta
13
- ): string => {
14
- const { channels, requiredTypes } = generateChannels(
15
- functionsMeta,
16
- channelsMeta
17
- )
18
- typesMap.customTypes.forEach(({ references }) => {
19
- for (const reference of references) {
20
- // Skip __object types (placeholder types for invalid/broken functions)
21
- if (reference !== '__object' && !reference.startsWith('__object_')) {
22
- requiredTypes.add(reference)
23
- }
24
- }
25
- })
26
- const imports = serializeImportMap(
27
- relativeToPath,
28
- packageMappings,
29
- typesMap,
30
- requiredTypes
31
- )
32
- const serializedCustomTypes = generateCustomTypes(typesMap, requiredTypes)
33
- return `/**
34
- * This provides the structure needed for TypeScript to be aware of channels
35
- */
36
-
37
- ${imports}
38
- ${serializedCustomTypes}
39
-
40
- interface ChannelHandler<I, O> {
41
- input: I;
42
- output: O;
43
- }
44
-
45
- ${channels}
46
-
47
- export type ChannelDefaultHandlerOf<Channel extends keyof ChannelsMap> =
48
- ChannelsMap[Channel]['defaultMessage'] extends { input: infer I; output: infer O }
49
- ? ChannelHandler<I, O>
50
- : never;
51
-
52
- export type ChannelWiringHandlerOf<
53
- Channel extends keyof ChannelsMap,
54
- Route extends keyof ChannelsMap[Channel]['routes'],
55
- Method extends keyof ChannelsMap[Channel]['routes'][Route],
56
- > =
57
- ChannelsMap[Channel]['routes'][Route][Method] extends { input: infer I; output: infer O }
58
- ? ChannelHandler<I, O>
59
- : never;
60
- `
61
- }
62
-
63
- function generateChannels(
64
- functionsMeta: FunctionsMeta,
65
- channelsMeta: ChannelsMeta
66
- ) {
67
- const requiredTypes = new Set<string>()
68
- const channelsObject: Record<
69
- string,
70
- {
71
- message: { inputs: string[] | null; outputs: string[] | null } | null
72
- routes: Record<
73
- string,
74
- Record<
75
- string,
76
- {
77
- inputTypes: string[] | null
78
- outputTypes: string[] | null
79
- }
80
- >
81
- >
82
- }
83
- > = {}
84
-
85
- for (const meta of Object.values(channelsMeta)) {
86
- const { name, messageWirings, message } = meta
87
-
88
- if (!channelsObject[name]) {
89
- channelsObject[name] = { message: null, routes: {} }
90
- }
91
-
92
- if (message) {
93
- const func = functionsMeta[message.pikkuFuncName]
94
- if (!func) {
95
- throw new Error(
96
- `Function ${message.pikkuFuncName} not found in functionsMeta for channel ${name}`
97
- )
98
- }
99
- const inputTypes = func.inputs || null
100
- const outputTypes = func.outputs || null
101
- channelsObject[name].message = {
102
- inputs: inputTypes,
103
- outputs: outputTypes,
104
- }
105
- inputTypes?.forEach((type) => requiredTypes.add(type))
106
- outputTypes?.forEach((type) => requiredTypes.add(type))
107
- }
108
-
109
- for (const [key, route] of Object.entries(messageWirings)) {
110
- if (!channelsObject[name].routes[key]) {
111
- channelsObject[name].routes[key] = {}
112
- }
113
- for (const [method, { pikkuFuncName }] of Object.entries(route)) {
114
- const func = functionsMeta[pikkuFuncName]
115
- if (!func) {
116
- throw new Error(
117
- `Function ${pikkuFuncName} not found in functionsMeta for channel ${name}, route ${key}, method ${method}`
118
- )
119
- }
120
- const inputTypes = func.inputs || null
121
- const outputTypes = func.outputs || null
122
- channelsObject[name].routes[key][method] = {
123
- inputTypes,
124
- outputTypes,
125
- }
126
- inputTypes?.forEach((type) => requiredTypes.add(type))
127
- outputTypes?.forEach((type) => requiredTypes.add(type))
128
- }
129
- }
130
- }
131
-
132
- let routesStr = 'export type ChannelsMap = {\n'
133
-
134
- for (const [channelPath, { routes, message }] of Object.entries(
135
- channelsObject
136
- )) {
137
- routesStr += ` readonly '${channelPath}': {\n`
138
-
139
- // Add `routes` object
140
- routesStr += ` readonly routes: {\n`
141
- for (const [key, methods] of Object.entries(routes)) {
142
- routesStr += ` readonly ${key}: {\n`
143
- for (const [method, handler] of Object.entries(methods)) {
144
- routesStr += ` readonly ${method}: ChannelHandler<${
145
- formatTypeArray(handler.inputTypes) || 'void'
146
- }, ${formatTypeArray(handler.outputTypes) || 'never'}>,\n`
147
- }
148
- routesStr += ' },\n'
149
- }
150
- routesStr += ' },\n'
151
-
152
- // Add `defaultMessage` outside `routes`
153
- if (message) {
154
- routesStr += ` readonly defaultMessage: ChannelHandler<${formatTypeArray(
155
- message.inputs
156
- )}, ${formatTypeArray(message.outputs)}>,\n`
157
- } else {
158
- routesStr += ` readonly defaultMessage: never,\n`
159
- }
160
-
161
- routesStr += ' },\n'
162
- }
163
-
164
- routesStr += '};'
165
-
166
- return { channels: routesStr, requiredTypes }
167
- }
168
-
169
- // Utility to format type arrays
170
- function formatTypeArray(types: string[] | null): string {
171
- return types ? types.join(' | ') : 'null'
172
- }
@@ -1,89 +0,0 @@
1
- export const serializeWebsocketWrapper = (channelsMapPath: string) => {
2
- return `import { CorePikkuWebsocket, CorePikkuRouteHandler } from '@pikku/websocket'
3
- import { ChannelDefaultHandlerOf, ChannelWiringHandlerOf, ChannelsMap } from '${channelsMapPath}';
4
-
5
- class PikkuWebSocketRoute<Channel extends keyof ChannelsMap, Route extends keyof ChannelsMap[Channel]['routes']> extends CorePikkuRouteHandler {
6
- public subscribe<
7
- Method extends keyof ChannelsMap[Channel]['routes'][Route],
8
- Data extends ChannelWiringHandlerOf<Channel, Route, Method>['output']
9
- >(method: Method, callback: (data: Data) => void
10
- ) {
11
- super.subscribe(method.toString(), callback)
12
- }
13
-
14
- public unsubscribe<
15
- Method extends keyof ChannelsMap[Channel]['routes'][Route],
16
- Data extends ChannelWiringHandlerOf<Channel, Route, Method>['output']
17
- >(method: Method, callback?: (data: Data) => void) {
18
- super.unsubscribe(method.toString(), callback)
19
- }
20
-
21
- public send<
22
- Method extends keyof ChannelsMap[Channel]['routes'][Route],
23
- Data extends ChannelWiringHandlerOf<Channel, Route, Method>['input']
24
- >(method: Method, data: Data) {
25
- super.send(method.toString(), data)
26
- }
27
- }
28
-
29
- /**
30
- * Type-safe WebSocket wrapper for Pikku channels.
31
- *
32
- * @example
33
- * // Browser usage
34
- * const ws = new WebSocket('ws://localhost:3000')
35
- * const pikkuWS = new PikkuWebSocket<'events'>(ws)
36
- *
37
- * @example
38
- * // Node.js usage
39
- * import WebSocket from 'ws'
40
- * const ws = new WebSocket('ws://localhost:3000')
41
- * const pikkuWS = new PikkuWebSocket<'events'>(ws)
42
- */
43
- export class PikkuWebSocket<Channel extends keyof ChannelsMap, EventHubTopics extends Record<string, any> = {}> extends CorePikkuWebsocket {
44
- /**
45
- * Send a message to a specific route and method.
46
- * Validates the input data type.
47
- */
48
- public getRoute<Route extends keyof ChannelsMap[Channel]['routes']>(route: Route): PikkuWebSocketRoute<Channel, Route> {
49
- return super.getRoute(route)
50
- }
51
-
52
- /**
53
- * Subscribe to a specific route and method.
54
- */
55
- public subscribe<Data extends ChannelDefaultHandlerOf<Channel>['output']>(
56
- callback: (data: Data) => void
57
- ) {
58
- super.subscribe(callback)
59
- }
60
-
61
- /**
62
- * Subscribe to a specific route and method.
63
- */
64
- public unsubscribe<Data extends ChannelDefaultHandlerOf<Channel>['output']>(
65
- callback?: (data: Data) => void
66
- ) {
67
- super.unsubscribe(callback)
68
- }
69
-
70
- public send(data: ChannelDefaultHandlerOf<Channel>['input']) {
71
- super.send(data)
72
- }
73
-
74
- /**
75
- * Subscribe to a topic from the EventHub system with strong typing.
76
- */
77
- public subscribeToEventHub<Topic extends keyof EventHubTopics>(
78
- topic: Topic,
79
- callback: (data: EventHubTopics[Topic]) => void
80
- ) {
81
- super.subscribe((data) => {
82
- if (data.topic === topic) {
83
- callback(data as EventHubTopics[Topic])
84
- }
85
- })
86
- }
87
- }
88
- `
89
- }
@@ -1,216 +0,0 @@
1
- import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js'
2
- import { writeFileInDir } from '../../../utils/file-writer.js'
3
- import { checkRequiredTypes } from '../../../utils/check-required-types.js'
4
- import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js'
5
- import { join } from 'node:path'
6
- import { serializeLocalCLIBootstrap } from './serialize-local-cli-bootstrap.js'
7
- import { serializeChannelCLI } from './serialize-channel-cli.js'
8
- import {
9
- serializeChannelCLIClient,
10
- collectRendererNames,
11
- } from './serialize-channel-cli-client.js'
12
- import { existsSync } from 'fs'
13
- import { rm } from 'fs/promises'
14
- import { ErrorCode } from '@pikku/inspector'
15
-
16
- export const pikkuCLIEntry: any = pikkuSessionlessFunc<void, void>({
17
- func: async ({ logger, config, getInspectorState }) => {
18
- const visitState = await getInspectorState()
19
-
20
- // Check if CLI entrypoints are configured
21
- if (
22
- !config.cli?.entrypoints ||
23
- Object.keys(config.cli.entrypoints).length === 0
24
- ) {
25
- logger.info({
26
- message:
27
- 'No CLI entrypoints configured in config.cli.entrypoints, skipping CLI bootstrap generation',
28
- type: 'skip',
29
- })
30
- return
31
- }
32
-
33
- // Generate bootstrap files for each configured entrypoint
34
- for (const [programName, entrypointConfigs] of Object.entries(
35
- config.cli.entrypoints
36
- )) {
37
- const programMeta = visitState.cli.meta.programs[programName]
38
-
39
- if (!programMeta) {
40
- logger.warn(
41
- `CLI program '${programName}' not found in metadata, skipping`
42
- )
43
- continue
44
- }
45
-
46
- // Normalize to array
47
- const configs = Array.isArray(entrypointConfigs)
48
- ? entrypointConfigs
49
- : [entrypointConfigs]
50
-
51
- for (const entrypointConfig of configs) {
52
- // Normalize entrypoint config to get type
53
- const entrypointType =
54
- typeof entrypointConfig === 'string'
55
- ? 'local'
56
- : entrypointConfig.type || 'local'
57
-
58
- // Handle channel type entrypoint
59
- if (entrypointType === 'channel') {
60
- if (
61
- typeof entrypointConfig === 'string' ||
62
- entrypointConfig.type !== 'channel'
63
- ) {
64
- throw new Error('Channel entrypoint must be a channel type object')
65
- }
66
-
67
- const channelWirePath = entrypointConfig.wirePath
68
- const channelClientPath = entrypointConfig.path
69
- const channelName = entrypointConfig.name
70
- const channelRoute = entrypointConfig.route
71
-
72
- const channelWireFile = join(config.rootDir, channelWirePath)
73
-
74
- const channelCode = serializeChannelCLI(
75
- programName,
76
- programMeta,
77
- channelWireFile,
78
- visitState.functions.files,
79
- config.packageMappings,
80
- config.channelsTypesFile,
81
- config.functionTypesFile,
82
- channelName,
83
- channelRoute
84
- )
85
-
86
- await writeFileInDir(logger, channelWireFile, channelCode)
87
- logger.debug(
88
- `Serialized CLI channel for ${programName}: ${channelWireFile}`
89
- )
90
-
91
- // Generate client code if clientPath is provided
92
- if (channelClientPath) {
93
- const channelClientFile = join(config.rootDir, channelClientPath)
94
-
95
- // Validate that renderers don't depend on services (client-side renderers can't access server services)
96
- const rendererNames = collectRendererNames(programMeta)
97
- const problematicRenderers: Array<{
98
- name: string
99
- services: string[]
100
- }> = []
101
-
102
- for (const rendererName of rendererNames) {
103
- const rendererMeta = visitState.cli.meta.renderers[rendererName]
104
- if (rendererMeta?.services?.services?.length > 0) {
105
- problematicRenderers.push({
106
- name: rendererName,
107
- services: rendererMeta.services.services,
108
- })
109
- }
110
- }
111
-
112
- // If any renderers depend on services, abort client generation
113
- if (problematicRenderers.length > 0) {
114
- const details = problematicRenderers
115
- .map(
116
- (r) => ` - ${r.name} depends on: ${r.services.join(', ')}`
117
- )
118
- .join('\n')
119
-
120
- logger.critical(
121
- ErrorCode.CLI_CLIENTSIDE_RENDERER_HAS_SERVICES,
122
- `Cannot generate CLI channel client for '${programName}': renderers cannot depend on services (client-side execution)\n${details}\n\nRenderers used in CLI-over-channel must be service-free since they execute on the client.`
123
- )
124
-
125
- // Delete existing client file if it exists
126
- if (existsSync(channelClientFile)) {
127
- await rm(channelClientFile)
128
- logger.debug(
129
- `Deleted existing CLI channel client: ${channelClientFile}`
130
- )
131
- }
132
-
133
- continue
134
- }
135
-
136
- const clientCode = serializeChannelCLIClient(
137
- programName,
138
- programMeta,
139
- channelClientFile,
140
- config,
141
- config.bootstrapFile,
142
- channelRoute,
143
- visitState.cli.meta.renderers
144
- )
145
-
146
- await writeFileInDir(logger, channelClientFile, clientCode)
147
- logger.debug(
148
- `Serialized CLI channel client for ${programName}: ${channelClientFile}`
149
- )
150
- }
151
-
152
- continue
153
- }
154
-
155
- // Handle local CLI type entrypoint (default)
156
- const entrypointPath =
157
- typeof entrypointConfig === 'string'
158
- ? entrypointConfig
159
- : entrypointConfig.type === 'local'
160
- ? entrypointConfig.path
161
- : undefined
162
-
163
- if (!entrypointPath) {
164
- throw new Error(
165
- `CLI entrypoint must have a path: ${JSON.stringify(entrypointConfig)}`
166
- )
167
- }
168
-
169
- const bootstrapFile = join(config.rootDir, entrypointPath)
170
-
171
- // Get service factories for local mode
172
- // Check for required types
173
- checkRequiredTypes(visitState.filesAndMethodsErrors, {
174
- config: true,
175
- singletonServicesFactory: true,
176
- wireServicesFactory: true,
177
- })
178
-
179
- const {
180
- pikkuConfigFactory,
181
- singletonServicesFactory,
182
- wireServicesFactory,
183
- } = visitState.filesAndMethods
184
-
185
- if (
186
- !pikkuConfigFactory ||
187
- !singletonServicesFactory ||
188
- !wireServicesFactory
189
- ) {
190
- throw new Error('Required types not found')
191
- }
192
-
193
- const bootstrapCode = serializeLocalCLIBootstrap(
194
- programName,
195
- programMeta,
196
- bootstrapFile,
197
- config,
198
- pikkuConfigFactory,
199
- singletonServicesFactory,
200
- wireServicesFactory
201
- )
202
-
203
- await writeFileInDir(logger, bootstrapFile, bootstrapCode)
204
- logger.debug(
205
- `Serialized CLI bootstrap for ${programName}: ${bootstrapFile}`
206
- )
207
- }
208
- }
209
- },
210
- middleware: [
211
- logCommandInfoAndTime({
212
- commandStart: 'Serializing CLI',
213
- commandEnd: 'Serialized CLI',
214
- }),
215
- ],
216
- })
@@ -1,48 +0,0 @@
1
- import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js'
2
- import { writeFileInDir } from '../../../utils/file-writer.js'
3
- import { getFileImportRelativePath } from '../../../utils/file-import-path.js'
4
- import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js'
5
- import { serializeCLITypes } from './serialize-cli-types.js'
6
- import { checkRequiredTypes } from '../../../utils/check-required-types.js'
7
-
8
- export const pikkuCLITypes: any = pikkuSessionlessFunc<void, void>({
9
- func: async ({ logger, config, getInspectorState }) => {
10
- const { cliTypesFile, functionTypesFile, packageMappings } = config
11
- const visitState = await getInspectorState()
12
-
13
- const functionTypesImportPath = getFileImportRelativePath(
14
- cliTypesFile,
15
- functionTypesFile,
16
- packageMappings
17
- )
18
-
19
- // Check for required types
20
- checkRequiredTypes(visitState.filesAndMethodsErrors, {
21
- userSessionType: true,
22
- wireServiceType: true,
23
- singletonServicesType: true,
24
- })
25
-
26
- const { userSessionType, singletonServicesType } =
27
- visitState.filesAndMethods
28
-
29
- if (!userSessionType || !singletonServicesType) {
30
- throw new Error('Required types not found')
31
- }
32
-
33
- const content = serializeCLITypes(
34
- functionTypesImportPath,
35
- `import type { ${userSessionType.type} } from '${getFileImportRelativePath(cliTypesFile, userSessionType.typePath, packageMappings)}'`,
36
- userSessionType.type,
37
- `import type { ${singletonServicesType.type} } from '${getFileImportRelativePath(cliTypesFile, singletonServicesType.typePath, packageMappings)}'`,
38
- singletonServicesType.type
39
- )
40
- await writeFileInDir(logger, cliTypesFile, content)
41
- },
42
- middleware: [
43
- logCommandInfoAndTime({
44
- commandStart: 'Creating CLI types',
45
- commandEnd: 'Created CLI types',
46
- }),
47
- ],
48
- })
@@ -1,62 +0,0 @@
1
- import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js'
2
- import { serializeFileImports } from '../../../utils/file-imports-serializer.js'
3
- import { writeFileInDir } from '../../../utils/file-writer.js'
4
- import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js'
5
- import { getFileImportRelativePath } from '../../../utils/file-import-path.js'
6
-
7
- export const pikkuCLI: any = pikkuSessionlessFunc<void, boolean | undefined>({
8
- func: async ({ logger, config, getInspectorState }) => {
9
- const visitState = await getInspectorState()
10
- const {
11
- cliWiringsFile,
12
- cliWiringMetaFile,
13
- cliWiringMetaJsonFile,
14
- packageMappings,
15
- schema,
16
- } = config
17
- const { cli } = visitState
18
-
19
- // Generate CLI wirings file
20
- await writeFileInDir(
21
- logger,
22
- cliWiringsFile,
23
- serializeFileImports(
24
- 'wireCLI',
25
- cliWiringsFile,
26
- cli.files,
27
- packageMappings
28
- )
29
- )
30
-
31
- await writeFileInDir(
32
- logger,
33
- cliWiringMetaJsonFile,
34
- JSON.stringify(cli.meta, null, 2)
35
- )
36
-
37
- const jsonImportPath = getFileImportRelativePath(
38
- cliWiringMetaFile,
39
- cliWiringMetaJsonFile,
40
- packageMappings
41
- )
42
-
43
- const supportsImportAttributes = schema?.supportsImportAttributes ?? false
44
- const importStatement = supportsImportAttributes
45
- ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
46
- : `import metaData from '${jsonImportPath}'`
47
-
48
- await writeFileInDir(
49
- logger,
50
- cliWiringMetaFile,
51
- `import { pikkuState } from '@pikku/core'\nimport { CLIMeta } from '@pikku/core/cli'\n${importStatement}\npikkuState('cli', 'meta', metaData as CLIMeta)`
52
- )
53
-
54
- return true
55
- },
56
- middleware: [
57
- logCommandInfoAndTime({
58
- commandStart: 'Finding CLI commands',
59
- commandEnd: 'Found CLI commands',
60
- }),
61
- ],
62
- })