@pikku/cli 0.11.3 → 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 (553) 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.d.ts +1 -0
  23. package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.js +6 -0
  24. package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.json +3 -0
  25. package/dist/.pikku/agent/pikku-agent-wirings.gen.d.ts +4 -0
  26. package/dist/.pikku/agent/pikku-agent-wirings.gen.js +4 -0
  27. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +27 -14
  28. package/dist/.pikku/channel/pikku-channel-types.gen.js +21 -4
  29. package/dist/.pikku/channel/pikku-channels-meta.gen.js +1 -1
  30. package/dist/.pikku/channel/pikku-channels.gen.d.ts +1 -1
  31. package/dist/.pikku/channel/pikku-channels.gen.js +1 -1
  32. package/dist/.pikku/cli/pikku-cli-channel.js +18 -3
  33. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  34. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  35. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +9 -1
  36. package/dist/.pikku/cli/pikku-cli-types.gen.js +12 -2
  37. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
  38. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +43 -11
  39. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  40. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  41. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -5
  42. package/dist/.pikku/cli/pikku-cli.gen.js +1 -5
  43. package/dist/.pikku/console/pikku-node-types.gen.d.ts +6 -0
  44. package/dist/.pikku/console/pikku-node-types.gen.js +1 -0
  45. package/dist/.pikku/function/pikku-function-types.gen.d.ts +71 -20
  46. package/dist/.pikku/function/pikku-function-types.gen.js +27 -3
  47. package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
  48. package/dist/.pikku/function/pikku-functions-meta.gen.json +645 -195
  49. package/dist/.pikku/function/pikku-functions.gen.d.ts +1 -0
  50. package/dist/.pikku/function/pikku-functions.gen.js +119 -0
  51. package/dist/.pikku/http/pikku-http-types.gen.d.ts +55 -19
  52. package/dist/.pikku/http/pikku-http-types.gen.js +11 -2
  53. package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +1 -1
  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 +26 -27
  57. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +2 -12
  58. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +1 -1
  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 +5 -4
  64. package/dist/.pikku/pikku-bootstrap.gen.js +13 -2
  65. package/dist/.pikku/pikku-services.gen.d.ts +5 -1
  66. package/dist/.pikku/pikku-services.gen.js +4 -0
  67. package/dist/.pikku/pikku-types.gen.d.ts +4 -2
  68. package/dist/.pikku/pikku-types.gen.js +7 -3
  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 +1 -1
  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 +3 -3
  77. package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.js +3 -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 +1 -1
  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 -19
  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/PikkuCLIOutput.schema.json +1 -1
  92. package/dist/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -1
  93. package/dist/.pikku/schemas/schemas/PikkuConsoleFunctionsOutput.schema.json +1 -0
  94. package/dist/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +1 -1
  95. package/dist/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +1 -1
  96. package/dist/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +1 -1
  97. package/dist/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +1 -1
  98. package/dist/.pikku/schemas/schemas/PikkuNodesMetaOutput.schema.json +1 -0
  99. package/dist/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +1 -1
  100. package/dist/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +1 -1
  101. package/dist/.pikku/schemas/schemas/PikkuPublicAgentOutput.schema.json +1 -0
  102. package/dist/.pikku/schemas/schemas/PikkuPublicRPCOutput.schema.json +1 -1
  103. package/dist/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +1 -1
  104. package/dist/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +1 -1
  105. package/dist/.pikku/schemas/schemas/PikkuRemoteRPCOutput.schema.json +1 -1
  106. package/dist/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +1 -1
  107. package/dist/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -1
  108. package/dist/.pikku/schemas/schemas/PikkuTriggerOutput.schema.json +1 -0
  109. package/dist/.pikku/schemas/schemas/PikkuVersionsInitInput.schema.json +1 -0
  110. package/dist/.pikku/schemas/schemas/PikkuWorkflowOutput.schema.json +1 -1
  111. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +5 -0
  112. package/dist/.pikku/secrets/pikku-secret-types.gen.js +4 -0
  113. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +11 -0
  114. package/dist/.pikku/secrets/pikku-secrets.gen.js +10 -0
  115. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +113 -0
  116. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +33 -0
  117. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +5 -0
  118. package/dist/.pikku/variables/pikku-variable-types.gen.js +4 -0
  119. package/dist/.pikku/variables/pikku-variables.gen.d.ts +11 -0
  120. package/dist/.pikku/variables/pikku-variables.gen.js +10 -0
  121. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +28 -180
  122. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +18 -106
  123. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  124. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +1 -1
  125. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  126. package/dist/bin/pikku.js +20 -47
  127. package/dist/src/cli.wiring.js +29 -2
  128. package/dist/src/functions/commands/all.d.ts +1 -1
  129. package/dist/src/functions/commands/all.js +79 -176
  130. package/dist/src/functions/commands/bootstrap.d.ts +1 -1
  131. package/dist/src/functions/commands/bootstrap.js +13 -22
  132. package/dist/src/functions/commands/console.d.ts +7 -0
  133. package/dist/src/functions/commands/console.js +106 -0
  134. package/dist/src/functions/commands/pikku-command-bootstrap.d.ts +4 -0
  135. package/dist/src/functions/commands/pikku-command-bootstrap.js +67 -0
  136. package/dist/src/functions/commands/pikku-command-summary.d.ts +1 -0
  137. package/dist/src/functions/commands/pikku-command-summary.js +55 -0
  138. package/dist/src/functions/commands/versions-check.d.ts +1 -0
  139. package/dist/src/functions/commands/versions-check.js +17 -0
  140. package/dist/src/functions/commands/versions-init.d.ts +7 -0
  141. package/dist/src/functions/commands/versions-init.js +15 -0
  142. package/dist/src/functions/commands/versions-update.d.ts +1 -0
  143. package/dist/src/functions/commands/versions-update.js +20 -0
  144. package/dist/src/functions/commands/watch.d.ts +1 -1
  145. package/dist/src/functions/commands/watch.js +4 -5
  146. package/dist/src/functions/runtimes/fetch/index.d.ts +1 -0
  147. package/dist/src/functions/{wirings → runtimes}/fetch/index.js +3 -3
  148. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.d.ts +1 -1
  149. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.js +6 -7
  150. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.d.ts +1 -1
  151. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.js +8 -16
  152. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.js +4 -8
  153. package/dist/src/functions/runtimes/websocket/pikku-command-websocket-typed.d.ts +1 -0
  154. package/dist/src/functions/{wirings/channels → runtimes/websocket}/pikku-command-websocket-typed.js +2 -2
  155. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.d.ts +1 -0
  156. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.js +19 -0
  157. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.d.ts +1 -0
  158. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.js +68 -0
  159. package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.d.ts +1 -0
  160. package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.js +23 -0
  161. package/dist/src/functions/wirings/ai-agent/serialize-agent-map.d.ts +4 -0
  162. package/dist/src/functions/wirings/ai-agent/serialize-agent-map.js +48 -0
  163. package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.d.ts +1 -0
  164. package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.js +31 -0
  165. package/dist/src/functions/wirings/ai-agent/serialize-public-agent.d.ts +1 -0
  166. package/dist/src/functions/wirings/ai-agent/serialize-public-agent.js +90 -0
  167. package/dist/src/functions/wirings/channels/pikku-channels.d.ts +1 -1
  168. package/dist/src/functions/wirings/channels/pikku-channels.js +1 -1
  169. package/dist/src/functions/wirings/channels/pikku-command-channel-types.d.ts +1 -1
  170. package/dist/src/functions/wirings/channels/pikku-command-channel-types.js +3 -3
  171. package/dist/src/functions/wirings/channels/pikku-command-channels-map.d.ts +1 -1
  172. package/dist/src/functions/wirings/channels/pikku-command-channels-map.js +2 -2
  173. package/dist/src/functions/wirings/channels/pikku-command-channels.d.ts +1 -1
  174. package/dist/src/functions/wirings/channels/pikku-command-channels.js +1 -1
  175. package/dist/src/functions/wirings/channels/serialize-channel-types.d.ts +1 -1
  176. package/dist/src/functions/wirings/channels/serialize-channel-types.js +47 -17
  177. package/dist/src/functions/wirings/channels/serialize-typed-channel-map.d.ts +2 -1
  178. package/dist/src/functions/wirings/channels/serialize-typed-channel-map.js +8 -8
  179. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.d.ts +1 -1
  180. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +3 -7
  181. package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +1 -1
  182. package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +1 -1
  183. package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -1
  184. package/dist/src/functions/wirings/cli/pikku-command-cli.js +1 -1
  185. package/dist/src/functions/wirings/cli/serialize-channel-cli.js +8 -8
  186. package/dist/src/functions/wirings/cli/serialize-cli-types.js +14 -1
  187. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.d.ts +2 -2
  188. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +10 -11
  189. package/dist/src/functions/wirings/console/pikku-command-console-functions.d.ts +1 -0
  190. package/dist/src/functions/wirings/console/pikku-command-console-functions.js +23 -0
  191. package/dist/src/functions/wirings/console/pikku-command-node-types.d.ts +1 -0
  192. package/dist/src/functions/wirings/console/pikku-command-node-types.js +21 -0
  193. package/dist/src/functions/wirings/console/pikku-command-nodes-meta.d.ts +1 -0
  194. package/dist/src/functions/wirings/console/pikku-command-nodes-meta.js +79 -0
  195. package/dist/src/functions/wirings/console/serialize-console-functions.d.ts +1 -0
  196. package/dist/src/functions/wirings/console/serialize-console-functions.js +229 -0
  197. package/dist/src/functions/wirings/console/serialize-node-types.d.ts +1 -0
  198. package/dist/src/functions/wirings/console/serialize-node-types.js +11 -0
  199. package/dist/src/functions/wirings/functions/pikku-command-external-types.d.ts +1 -0
  200. package/dist/src/functions/wirings/functions/pikku-command-external-types.js +33 -0
  201. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.d.ts +1 -1
  202. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.js +2 -2
  203. package/dist/src/functions/wirings/functions/pikku-command-function-types.d.ts +1 -1
  204. package/dist/src/functions/wirings/functions/pikku-command-function-types.js +5 -5
  205. package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -1
  206. package/dist/src/functions/wirings/functions/pikku-command-functions.js +1 -1
  207. package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
  208. package/dist/src/functions/wirings/functions/pikku-command-services.js +1 -1
  209. package/dist/src/functions/wirings/functions/schemas.d.ts +1 -4
  210. package/dist/src/functions/wirings/functions/schemas.js +8 -10
  211. package/dist/src/functions/wirings/functions/serialize-external-types.d.ts +1 -0
  212. package/dist/src/functions/wirings/functions/serialize-external-types.js +77 -0
  213. package/dist/src/functions/wirings/functions/serialize-function-imports.d.ts +1 -2
  214. package/dist/src/functions/wirings/functions/serialize-function-imports.js +10 -17
  215. package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +1 -1
  216. package/dist/src/functions/wirings/functions/serialize-function-types.js +99 -32
  217. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.d.ts +1 -1
  218. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.js +5 -2
  219. package/dist/src/functions/wirings/http/pikku-command-http-map.d.ts +1 -1
  220. package/dist/src/functions/wirings/http/pikku-command-http-map.js +4 -4
  221. package/dist/src/functions/wirings/http/pikku-command-http-routes.d.ts +1 -1
  222. package/dist/src/functions/wirings/http/pikku-command-http-routes.js +1 -1
  223. package/dist/src/functions/wirings/http/pikku-command-http-types.d.ts +1 -1
  224. package/dist/src/functions/wirings/http/pikku-command-http-types.js +1 -1
  225. package/dist/src/functions/wirings/http/pikku-command-openapi.d.ts +1 -1
  226. package/dist/src/functions/wirings/http/pikku-command-openapi.js +11 -9
  227. package/dist/src/functions/wirings/http/pikku-http-routes.d.ts +1 -1
  228. package/dist/src/functions/wirings/http/pikku-http-routes.js +2 -2
  229. package/dist/src/functions/wirings/http/serialize-http-types.js +65 -20
  230. package/dist/src/functions/wirings/http/serialize-typed-http-map.d.ts +5 -2
  231. package/dist/src/functions/wirings/http/serialize-typed-http-map.js +33 -46
  232. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.d.ts +1 -1
  233. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.js +5 -6
  234. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.d.ts +1 -1
  235. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.js +1 -1
  236. package/dist/src/functions/wirings/mcp/pikku-command-mcp.d.ts +1 -1
  237. package/dist/src/functions/wirings/mcp/pikku-command-mcp.js +13 -4
  238. package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +27 -36
  239. package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -1
  240. package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +11 -34
  241. package/dist/src/functions/wirings/middleware/serialize-middleware-imports.js +19 -24
  242. package/dist/src/functions/wirings/package/pikku-command-package-types.d.ts +2 -0
  243. package/dist/src/functions/wirings/package/pikku-command-package-types.js +30 -0
  244. package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -1
  245. package/dist/src/functions/wirings/package/pikku-command-package.js +3 -3
  246. package/dist/src/functions/wirings/package/serialize-package-types.d.ts +2 -0
  247. package/dist/src/functions/wirings/package/serialize-package-types.js +10 -0
  248. package/dist/src/functions/wirings/permissions/pikku-command-permissions.d.ts +1 -1
  249. package/dist/src/functions/wirings/permissions/pikku-command-permissions.js +10 -5
  250. package/dist/src/functions/wirings/queue/pikku-command-queue-map.d.ts +1 -1
  251. package/dist/src/functions/wirings/queue/pikku-command-queue-map.js +3 -3
  252. package/dist/src/functions/wirings/queue/pikku-command-queue-service.d.ts +1 -1
  253. package/dist/src/functions/wirings/queue/pikku-command-queue-service.js +2 -2
  254. package/dist/src/functions/wirings/queue/pikku-command-queue-types.d.ts +1 -1
  255. package/dist/src/functions/wirings/queue/pikku-command-queue-types.js +1 -1
  256. package/dist/src/functions/wirings/queue/pikku-command-queue.d.ts +1 -1
  257. package/dist/src/functions/wirings/queue/pikku-command-queue.js +1 -1
  258. package/dist/src/functions/wirings/queue/pikku-queue-map.d.ts +1 -1
  259. package/dist/src/functions/wirings/queue/pikku-queue-map.js +3 -3
  260. package/dist/src/functions/wirings/queue/pikku-queue.d.ts +1 -1
  261. package/dist/src/functions/wirings/queue/pikku-queue.js +1 -1
  262. package/dist/src/functions/wirings/queue/serialize-queue-map.d.ts +5 -2
  263. package/dist/src/functions/wirings/queue/serialize-queue-map.js +12 -40
  264. package/dist/src/functions/wirings/queue/serialize-queue-meta.js +9 -10
  265. package/dist/src/functions/wirings/queue/serialize-queue-types.js +1 -1
  266. package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.d.ts +1 -1
  267. package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.js +2 -2
  268. package/dist/src/functions/wirings/rpc/pikku-command-remote-rpc.d.ts +1 -1
  269. package/dist/src/functions/wirings/rpc/pikku-command-remote-rpc.js +1 -1
  270. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.d.ts +1 -1
  271. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.js +2 -2
  272. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +2 -2
  273. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.js +12 -7
  274. package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -1
  275. package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +5 -2
  276. package/dist/src/functions/wirings/rpc/serialize-public-rpc.d.ts +1 -1
  277. package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +11 -6
  278. package/dist/src/functions/wirings/rpc/serialize-remote-rpc.js +2 -2
  279. package/dist/src/functions/wirings/rpc/serialize-rpc-wrapper.js +19 -8
  280. package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.d.ts +6 -3
  281. package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.js +85 -60
  282. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.d.ts +1 -1
  283. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.js +1 -1
  284. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.d.ts +1 -1
  285. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.js +1 -1
  286. package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.d.ts +1 -1
  287. package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.js +13 -12
  288. package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.js +1 -1
  289. package/dist/src/functions/wirings/secrets/pikku-command-secrets.d.ts +1 -0
  290. package/dist/src/functions/wirings/secrets/pikku-command-secrets.js +31 -0
  291. package/dist/src/functions/wirings/secrets/serialize-secrets-types.d.ts +9 -0
  292. package/dist/src/functions/wirings/secrets/serialize-secrets-types.js +64 -0
  293. package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.d.ts +1 -0
  294. package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.js +24 -0
  295. package/dist/src/functions/wirings/triggers/pikku-command-trigger.d.ts +1 -0
  296. package/dist/src/functions/wirings/triggers/pikku-command-trigger.js +40 -0
  297. package/dist/src/functions/wirings/triggers/serialize-trigger-meta.d.ts +5 -0
  298. package/dist/src/functions/wirings/triggers/serialize-trigger-meta.js +35 -0
  299. package/dist/src/functions/wirings/triggers/serialize-trigger-types.d.ts +4 -0
  300. package/dist/src/functions/wirings/triggers/serialize-trigger-types.js +163 -0
  301. package/dist/src/functions/wirings/variables/pikku-command-variables.d.ts +1 -0
  302. package/dist/src/functions/wirings/variables/pikku-command-variables.js +31 -0
  303. package/dist/src/functions/wirings/variables/serialize-variables-types.d.ts +9 -0
  304. package/dist/src/functions/wirings/variables/serialize-variables-types.js +53 -0
  305. package/dist/src/functions/wirings/workflow/pikku-command-workflow.d.ts +1 -1
  306. package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +6 -35
  307. package/dist/src/functions/wirings/workflow/serialize-workflow-map.d.ts +4 -2
  308. package/dist/src/functions/wirings/workflow/serialize-workflow-map.js +63 -12
  309. package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +32 -33
  310. package/dist/src/functions/wirings/workflow/serialize-workflow-registration.d.ts +1 -1
  311. package/dist/src/functions/wirings/workflow/serialize-workflow-registration.js +4 -31
  312. package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +1 -6
  313. package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +60 -256
  314. package/dist/src/functions/wirings/workflow/serialize-workflow-workers.js +5 -5
  315. package/dist/src/services/cli-logger-forwarder.service.d.ts +1 -1
  316. package/dist/src/services/cli-logger-forwarder.service.js +1 -1
  317. package/dist/src/services/cli-logger.service.d.ts +1 -1
  318. package/dist/src/services/cli-logger.service.js +1 -1
  319. package/dist/src/services.d.ts +1 -1
  320. package/dist/src/services.js +53 -6
  321. package/dist/src/utils/command-summary.d.ts +2 -1
  322. package/dist/src/utils/command-summary.js +2 -1
  323. package/dist/src/utils/contract-versions.d.ts +6 -0
  324. package/dist/src/utils/contract-versions.js +25 -0
  325. package/dist/src/utils/file-import-path.js +20 -6
  326. package/dist/src/utils/pikku-cli-config.js +77 -14
  327. package/dist/src/utils/pikku-files-and-methods.d.ts +0 -1
  328. package/dist/src/utils/pikku-files-and-methods.js +15 -60
  329. package/dist/src/utils/serialize-import-map.d.ts +2 -1
  330. package/dist/src/utils/serialize-import-map.js +3 -54
  331. package/dist/src/utils/serialize-meta-ts.d.ts +8 -0
  332. package/dist/src/utils/serialize-meta-ts.js +12 -0
  333. package/dist/src/utils/serialize-schemas.d.ts +3 -0
  334. package/dist/src/utils/serialize-schemas.js +38 -0
  335. package/dist/src/utils/strip-verbose-meta.d.ts +5 -5
  336. package/dist/src/utils/strip-verbose-meta.js +15 -15
  337. package/dist/tsconfig.tsbuildinfo +1 -1
  338. package/package.json +19 -10
  339. package/.pikku/channel/pikku-channel-types.gen.ts +0 -148
  340. package/.pikku/channel/pikku-channels-map.gen.d.ts +0 -47
  341. package/.pikku/channel/pikku-channels-meta.gen.json +0 -1
  342. package/.pikku/channel/pikku-channels-meta.gen.ts +0 -7
  343. package/.pikku/channel/pikku-channels.gen.ts +0 -4
  344. package/.pikku/cli/pikku-cli-channel.ts +0 -92
  345. package/.pikku/cli/pikku-cli-client.gen.ts +0 -54
  346. package/.pikku/cli/pikku-cli-types.gen.ts +0 -92
  347. package/.pikku/cli/pikku-cli-wirings-meta.gen.json +0 -147
  348. package/.pikku/cli/pikku-cli-wirings-meta.gen.ts +0 -7
  349. package/.pikku/cli/pikku-cli-wirings.gen.ts +0 -6
  350. package/.pikku/cli/pikku-cli.gen.ts +0 -41
  351. package/.pikku/forge/pikku-forge-types.gen.ts +0 -83
  352. package/.pikku/function/pikku-function-types.gen.ts +0 -572
  353. package/.pikku/function/pikku-functions-meta-verbose.gen.json +0 -1030
  354. package/.pikku/function/pikku-functions-meta.gen.json +0 -656
  355. package/.pikku/function/pikku-functions-meta.gen.ts +0 -6
  356. package/.pikku/http/pikku-http-types.gen.ts +0 -102
  357. package/.pikku/http/pikku-http-wirings-map.gen.d.ts +0 -46
  358. package/.pikku/http/pikku-http-wirings-meta.gen.json +0 -9
  359. package/.pikku/http/pikku-http-wirings-meta.gen.ts +0 -7
  360. package/.pikku/http/pikku-http-wirings.gen.ts +0 -4
  361. package/.pikku/mcp/pikku-mcp-types.gen.ts +0 -192
  362. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +0 -5
  363. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.ts +0 -9
  364. package/.pikku/mcp/pikku-mcp-wirings.gen.ts +0 -4
  365. package/.pikku/mcp/pikku-mcp.gen.json +0 -5
  366. package/.pikku/pikku-bootstrap.gen.ts +0 -17
  367. package/.pikku/pikku-services.gen.ts +0 -28
  368. package/.pikku/pikku-types.gen.ts +0 -30
  369. package/.pikku/pikku-websocket.gen.ts +0 -90
  370. package/.pikku/queue/pikku-queue-types.gen.ts +0 -27
  371. package/.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts +0 -60
  372. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +0 -1
  373. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts +0 -8
  374. package/.pikku/queue/pikku-queue-workers-wirings.gen.ts +0 -4
  375. package/.pikku/rpc/pikku-remote-rpc-workers.gen.ts +0 -30
  376. package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +0 -62
  377. package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +0 -105
  378. package/.pikku/scheduler/pikku-scheduler-types.gen.ts +0 -25
  379. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +0 -1
  380. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.ts +0 -8
  381. package/.pikku/scheduler/pikku-schedulers-wirings.gen.ts +0 -4
  382. package/.pikku/schemas/register.gen.ts +0 -71
  383. package/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +0 -1
  384. package/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +0 -1
  385. package/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +0 -1
  386. package/.pikku/schemas/schemas/PikkuForgeNodesOutput.schema.json +0 -1
  387. package/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +0 -1
  388. package/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +0 -1
  389. package/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +0 -1
  390. package/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +0 -1
  391. package/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +0 -1
  392. package/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +0 -1
  393. package/.pikku/schemas/schemas/PikkuPublicRPCOutput.schema.json +0 -1
  394. package/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +0 -1
  395. package/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +0 -1
  396. package/.pikku/schemas/schemas/PikkuRemoteRPCOutput.schema.json +0 -1
  397. package/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +0 -1
  398. package/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +0 -1
  399. package/.pikku/schemas/schemas/PikkuWorkflowOutput.schema.json +0 -1
  400. package/.pikku/services/config.gen.json +0 -104
  401. package/.pikku/services/getInspectorState.gen.json +0 -10
  402. package/.pikku/services/jwt.gen.json +0 -13
  403. package/.pikku/services/logger.gen.json +0 -25
  404. package/.pikku/services/queueService.gen.json +0 -14
  405. package/.pikku/services/schedulerService.gen.json +0 -17
  406. package/.pikku/services/schema.gen.json +0 -14
  407. package/.pikku/services/secrets.gen.json +0 -13
  408. package/.pikku/services/variables.gen.json +0 -13
  409. package/.pikku/services/workflowService.gen.json +0 -31
  410. package/.pikku/workflow/pikku-workflow-map.gen.d.ts +0 -28
  411. package/.pikku/workflow/pikku-workflow-types.gen.ts +0 -349
  412. package/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +0 -9
  413. package/.pikku/workflow/pikku-workflow-wirings.gen.ts +0 -3
  414. package/CHANGELOG.md +0 -957
  415. package/bin/pikku.ts +0 -88
  416. package/build.sh +0 -75
  417. package/dist/.pikku/forge/pikku-forge-types.gen.d.ts +0 -72
  418. package/dist/.pikku/forge/pikku-forge-types.gen.js +0 -55
  419. package/dist/.pikku/schemas/schemas/PikkuForgeNodesOutput.schema.json +0 -1
  420. package/dist/src/functions/wirings/channels/pikku-command-websocket-typed.d.ts +0 -1
  421. package/dist/src/functions/wirings/fetch/index.d.ts +0 -1
  422. package/dist/src/functions/wirings/forge/pikku-command-forge-nodes.d.ts +0 -1
  423. package/dist/src/functions/wirings/forge/pikku-command-forge-nodes.js +0 -90
  424. package/dist/src/functions/wirings/forge/pikku-command-forge-types.d.ts +0 -1
  425. package/dist/src/functions/wirings/forge/pikku-command-forge-types.js +0 -26
  426. package/dist/src/functions/wirings/forge/serialize-forge-types.d.ts +0 -4
  427. package/dist/src/functions/wirings/forge/serialize-forge-types.js +0 -90
  428. package/dist/src/functions/wirings/functions/pikku-function-types.d.ts +0 -1
  429. package/dist/src/functions/wirings/functions/pikku-function-types.js +0 -18
  430. package/dist/src/functions/wirings/http/openapi-spec-generator.d.ts +0 -81
  431. package/dist/src/functions/wirings/http/openapi-spec-generator.js +0 -152
  432. package/dist/src/functions/wirings/mcp/serialize-mcp-json.d.ts +0 -5
  433. package/dist/src/functions/wirings/mcp/serialize-mcp-json.js +0 -102
  434. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.d.ts +0 -11
  435. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.js +0 -36
  436. package/dist/src/functions/wirings/services/pikku-command-service-metadata.d.ts +0 -1
  437. package/dist/src/functions/wirings/services/pikku-command-service-metadata.js +0 -22
  438. package/dist/src/utils/custom-types-generator.d.ts +0 -2
  439. package/dist/src/utils/custom-types-generator.js +0 -41
  440. package/dist/src/utils/schema-generator.d.ts +0 -7
  441. package/dist/src/utils/schema-generator.js +0 -238
  442. package/pikku.config.json +0 -29
  443. package/run-tests.sh +0 -53
  444. package/src/cli.wiring.ts +0 -112
  445. package/src/functions/commands/all.ts +0 -313
  446. package/src/functions/commands/bootstrap.ts +0 -35
  447. package/src/functions/commands/watch.ts +0 -61
  448. package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +0 -131
  449. package/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts +0 -282
  450. package/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts +0 -215
  451. package/src/functions/wirings/channels/pikku-channels.ts +0 -59
  452. package/src/functions/wirings/channels/pikku-command-channel-types.ts +0 -25
  453. package/src/functions/wirings/channels/pikku-command-channels-map.ts +0 -26
  454. package/src/functions/wirings/channels/pikku-command-channels.ts +0 -83
  455. package/src/functions/wirings/channels/pikku-command-websocket-typed.ts +0 -37
  456. package/src/functions/wirings/channels/serialize-channel-types.ts +0 -151
  457. package/src/functions/wirings/channels/serialize-typed-channel-map.ts +0 -173
  458. package/src/functions/wirings/channels/serialize-websocket-wrapper.ts +0 -89
  459. package/src/functions/wirings/cli/pikku-command-cli-entry.ts +0 -216
  460. package/src/functions/wirings/cli/pikku-command-cli-types.ts +0 -48
  461. package/src/functions/wirings/cli/pikku-command-cli.ts +0 -81
  462. package/src/functions/wirings/cli/serialize-channel-cli-client.ts +0 -184
  463. package/src/functions/wirings/cli/serialize-channel-cli.ts +0 -134
  464. package/src/functions/wirings/cli/serialize-cli-types.ts +0 -101
  465. package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +0 -80
  466. package/src/functions/wirings/fetch/index.ts +0 -36
  467. package/src/functions/wirings/forge/pikku-command-forge-nodes.ts +0 -135
  468. package/src/functions/wirings/forge/pikku-command-forge-types.ts +0 -38
  469. package/src/functions/wirings/forge/serialize-forge-types.ts +0 -94
  470. package/src/functions/wirings/functions/pikku-command-function-types-split.ts +0 -61
  471. package/src/functions/wirings/functions/pikku-command-function-types.ts +0 -50
  472. package/src/functions/wirings/functions/pikku-command-functions.ts +0 -104
  473. package/src/functions/wirings/functions/pikku-command-services.ts +0 -140
  474. package/src/functions/wirings/functions/pikku-function-types.ts +0 -45
  475. package/src/functions/wirings/functions/schemas.ts +0 -56
  476. package/src/functions/wirings/functions/serialize-function-imports.ts +0 -80
  477. package/src/functions/wirings/functions/serialize-function-types.ts +0 -587
  478. package/src/functions/wirings/functions/serialize-pikku-types-hub.ts +0 -39
  479. package/src/functions/wirings/http/openapi-spec-generator.ts +0 -265
  480. package/src/functions/wirings/http/pikku-command-http-map.ts +0 -27
  481. package/src/functions/wirings/http/pikku-command-http-routes.ts +0 -80
  482. package/src/functions/wirings/http/pikku-command-http-types.ts +0 -25
  483. package/src/functions/wirings/http/pikku-command-openapi.ts +0 -64
  484. package/src/functions/wirings/http/pikku-http-routes.ts +0 -61
  485. package/src/functions/wirings/http/serialize-fetch-wrapper.ts +0 -67
  486. package/src/functions/wirings/http/serialize-http-types.ts +0 -105
  487. package/src/functions/wirings/http/serialize-typed-http-map.ts +0 -178
  488. package/src/functions/wirings/mcp/pikku-command-mcp-json.ts +0 -33
  489. package/src/functions/wirings/mcp/pikku-command-mcp-types.ts +0 -25
  490. package/src/functions/wirings/mcp/pikku-command-mcp.ts +0 -162
  491. package/src/functions/wirings/mcp/serialize-mcp-json.ts +0 -161
  492. package/src/functions/wirings/mcp/serialize-mcp-types.ts +0 -195
  493. package/src/functions/wirings/middleware/pikku-command-middleware.ts +0 -89
  494. package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +0 -40
  495. package/src/functions/wirings/middleware/serialize-middleware-imports.ts +0 -78
  496. package/src/functions/wirings/package/pikku-command-package.ts +0 -81
  497. package/src/functions/wirings/package/serialize-package.ts +0 -69
  498. package/src/functions/wirings/permissions/pikku-command-permissions.ts +0 -49
  499. package/src/functions/wirings/permissions/serialize-permissions-imports.test.ts +0 -274
  500. package/src/functions/wirings/permissions/serialize-permissions-imports.ts +0 -78
  501. package/src/functions/wirings/queue/pikku-command-queue-map.ts +0 -26
  502. package/src/functions/wirings/queue/pikku-command-queue-service.ts +0 -37
  503. package/src/functions/wirings/queue/pikku-command-queue-types.ts +0 -25
  504. package/src/functions/wirings/queue/pikku-command-queue.ts +0 -86
  505. package/src/functions/wirings/queue/pikku-queue-map.ts +0 -26
  506. package/src/functions/wirings/queue/pikku-queue.ts +0 -66
  507. package/src/functions/wirings/queue/serialize-queue-map.ts +0 -134
  508. package/src/functions/wirings/queue/serialize-queue-meta.ts +0 -24
  509. package/src/functions/wirings/queue/serialize-queue-types.ts +0 -30
  510. package/src/functions/wirings/queue/serialize-queue-wrapper.ts +0 -35
  511. package/src/functions/wirings/rpc/pikku-command-public-rpc.ts +0 -32
  512. package/src/functions/wirings/rpc/pikku-command-remote-rpc.ts +0 -35
  513. package/src/functions/wirings/rpc/pikku-command-rpc-client.ts +0 -35
  514. package/src/functions/wirings/rpc/pikku-command-rpc-map.ts +0 -51
  515. package/src/functions/wirings/rpc/pikku-command-rpc.ts +0 -49
  516. package/src/functions/wirings/rpc/serialize-public-rpc.ts +0 -37
  517. package/src/functions/wirings/rpc/serialize-remote-rpc.ts +0 -33
  518. package/src/functions/wirings/rpc/serialize-rpc-wrapper.ts +0 -68
  519. package/src/functions/wirings/rpc/serialize-typed-rpc-map.ts +0 -194
  520. package/src/functions/wirings/scheduler/pikku-command-scheduler-types.ts +0 -25
  521. package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +0 -88
  522. package/src/functions/wirings/scheduler/serialize-scheduler-meta.ts +0 -37
  523. package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +0 -28
  524. package/src/functions/wirings/services/pikku-command-service-metadata.ts +0 -25
  525. package/src/functions/wirings/workflow/pikku-command-workflow.ts +0 -218
  526. package/src/functions/wirings/workflow/serialize-workflow-map.ts +0 -121
  527. package/src/functions/wirings/workflow/serialize-workflow-meta.ts +0 -73
  528. package/src/functions/wirings/workflow/serialize-workflow-registration.ts +0 -83
  529. package/src/functions/wirings/workflow/serialize-workflow-types.ts +0 -357
  530. package/src/functions/wirings/workflow/serialize-workflow-workers.ts +0 -47
  531. package/src/middleware/log-command-info-and-time.ts +0 -35
  532. package/src/services/cli-logger-forwarder.service.ts +0 -99
  533. package/src/services/cli-logger.service.ts +0 -108
  534. package/src/services.ts +0 -322
  535. package/src/utils/check-required-types.ts +0 -65
  536. package/src/utils/command-summary.ts +0 -107
  537. package/src/utils/custom-types-generator.ts +0 -55
  538. package/src/utils/file-import-path.test.ts +0 -175
  539. package/src/utils/file-import-path.ts +0 -53
  540. package/src/utils/file-imports-serializer.ts +0 -25
  541. package/src/utils/file-writer.ts +0 -72
  542. package/src/utils/generate-bootstrap-file.ts +0 -43
  543. package/src/utils/get-cli-version.ts +0 -28
  544. package/src/utils/pikku-cli-config.ts +0 -495
  545. package/src/utils/pikku-files-and-methods.ts +0 -145
  546. package/src/utils/schema-generator.ts +0 -335
  547. package/src/utils/serialize-import-map.ts +0 -102
  548. package/src/utils/strip-verbose-meta.ts +0 -254
  549. package/tsconfig.json +0 -21
  550. package/types/application-types.d.ts +0 -27
  551. package/types/config.d.ts +0 -304
  552. /package/dist/src/functions/{wirings/channels → runtimes/websocket}/serialize-websocket-wrapper.d.ts +0 -0
  553. /package/dist/src/functions/{wirings/channels → runtimes/websocket}/serialize-websocket-wrapper.js +0 -0
@@ -1,572 +0,0 @@
1
- /**
2
- * This file was generated by @pikku/cli@0.11.3
3
- */
4
- /**
5
- * Core function, middleware, and permission types for all wirings
6
- */
7
-
8
- import { CorePikkuFunctionConfig, CorePikkuPermission, CorePikkuMiddleware, CorePermissionGroup, addMiddleware as addMiddlewareCore, addPermission as addPermissionCore, PikkuWire, PickRequired, ZodLike, CreateWireServices } from '@pikku/core'
9
- import { CorePikkuFunction, CorePikkuFunctionSessionless } from '@pikku/core/function'
10
-
11
- import type { UserSession } from '../../types/application-types.d.js'
12
- import type { SingletonServices } from '../../types/application-types.d.js'
13
- import type { Services } from '../../types/application-types.d.js'
14
- import type { Config } from '../../types/application-types.d.js'
15
- import type { TypedPikkuRPC, FlattenedRPCMap } from '../rpc/pikku-rpc-wirings-map.internal.gen.d.js'
16
- import type { RequiredSingletonServices, RequiredWireServices } from '../pikku-services.gen.js'
17
-
18
-
19
-
20
- type Session = UserSession
21
-
22
-
23
- /**
24
- * Type-safe API permission definition that integrates with your application's session type.
25
- * Use this to define authorization logic for your API endpoints.
26
- *
27
- * @template In - The input type that the permission check will receive
28
- * @template RequiredServices - The services required for this permission check
29
- */
30
- export type PikkuPermission<In = unknown, RequiredServices extends Services = Services> = CorePikkuPermission<In, RequiredServices, PikkuWire<In, never, false, Session>>
31
-
32
- /**
33
- * Type-safe middleware definition that can access your application's services and session.
34
- * Use this to define reusable middleware that can be applied to multiple wirings.
35
- *
36
- * @template RequiredServices - The services required for this middleware
37
- */
38
- export type PikkuMiddleware<RequiredServices extends SingletonServices = SingletonServices> = CorePikkuMiddleware<RequiredServices>
39
-
40
- /**
41
- * Configuration object for creating a permission with metadata
42
- */
43
- export type PikkuPermissionConfig<In = unknown, RequiredServices extends Services = Services> = {
44
- /** The permission function */
45
- func: PikkuPermission<In, RequiredServices>
46
- /** Optional human-readable name for the permission */
47
- name?: string
48
- /** Optional description of what the permission checks */
49
- description?: string
50
- }
51
-
52
- /**
53
- * Factory function for creating permissions with tree-shaking support.
54
- * Supports both direct function and configuration object syntax.
55
- *
56
- * @example
57
- * ```typescript
58
- * // Direct function syntax
59
- * const permission = pikkuPermission(async ({ logger }, data, { session }) => {
60
- * const session = await session?.get()
61
- * return session?.role === 'admin'
62
- * })
63
- *
64
- * // Configuration object syntax with metadata
65
- * const adminPermission = pikkuPermission({
66
- * name: 'Admin Permission',
67
- * description: 'Checks if user has admin role',
68
- * func: async ({ logger }, data, { session }) => {
69
- * const session = await session?.get()
70
- * return session?.role === 'admin'
71
- * }
72
- * })
73
- * ```
74
- */
75
- export const pikkuPermission = <In>(
76
- permission: PikkuPermission<In> | PikkuPermissionConfig<In>
77
- ): PikkuPermission<In> => {
78
- return typeof permission === 'function' ? permission : permission.func
79
- }
80
-
81
- /**
82
- * Configuration object for creating middleware with metadata
83
- */
84
- export type PikkuMiddlewareConfig<RequiredServices extends SingletonServices = SingletonServices> = {
85
- /** The middleware function */
86
- func: PikkuMiddleware<RequiredServices>
87
- /** Optional human-readable name for the middleware */
88
- name?: string
89
- /** Optional description of what the middleware does */
90
- description?: string
91
- }
92
-
93
- /**
94
- * Factory function for creating middleware with tree-shaking support.
95
- * Supports both direct function and configuration object syntax.
96
- *
97
- * @example
98
- * ```typescript
99
- * // Direct function syntax
100
- * const middleware = pikkuMiddleware(({ logger }, wires, next) => {
101
- * logger.info('Middleware executed')
102
- * await next()
103
- * })
104
- *
105
- * // Configuration object syntax with metadata
106
- * const logMiddleware = pikkuMiddleware({
107
- * name: 'Request Logger',
108
- * description: 'Logs all incoming requests',
109
- * func: async ({ logger }, wires, next) => {
110
- * logger.info('Request started')
111
- * await next()
112
- * }
113
- * })
114
- * ```
115
- */
116
- export const pikkuMiddleware = <RequiredServices extends SingletonServices = SingletonServices>(
117
- middleware: PikkuMiddleware<RequiredServices> | PikkuMiddlewareConfig<RequiredServices>
118
- ): PikkuMiddleware<RequiredServices> => {
119
- return typeof middleware === 'function' ? middleware : middleware.func
120
- }
121
-
122
- /**
123
- * Factory function for creating middleware factories
124
- * Use this when your middleware needs configuration/input parameters
125
- *
126
- * @example
127
- * ```typescript
128
- * export const logMiddleware = pikkuMiddlewareFactory<LogOptions>(({
129
- * message,
130
- * level = 'info'
131
- * }) => {
132
- * return pikkuMiddleware(async ({ logger }, next) => {
133
- * logger[level](message)
134
- * await next()
135
- * })
136
- * })
137
- * ```
138
- */
139
- export const pikkuMiddlewareFactory = <In = any>(
140
- factory: (input: In) => PikkuMiddleware
141
- ): ((input: In) => PikkuMiddleware) => {
142
- return factory
143
- }
144
-
145
- /**
146
- * Factory function for creating permission factories
147
- * Use this when your permission needs configuration/input parameters
148
- *
149
- * @example
150
- * ```typescript
151
- * export const requireRole = pikkuPermissionFactory<{ role: string }>(({
152
- * role
153
- * }) => {
154
- * return pikkuPermission(async ({ logger }, data, { initialSession }) => {
155
- * if (!initialSession || initialSession.role !== role) {
156
- * logger.warn(`Permission denied: required role '${role}'`)
157
- * return false
158
- * }
159
- * return true
160
- * })
161
- * })
162
- * ```
163
- */
164
- export const pikkuPermissionFactory = <In = any>(
165
- factory: (input: In) => PikkuPermission<any>
166
- ): ((input: In) => PikkuPermission<any>) => {
167
- return factory
168
- }
169
-
170
- /**
171
- * A sessionless API function that doesn't require user authentication.
172
- * Use this for public endpoints, health checks, or operations that don't need user context.
173
- *
174
- * @template In - The input type
175
- * @template Out - The output type that the function returns
176
- * @template RequiredServices - Services required by this function
177
- */
178
- export type PikkuFunctionSessionless<
179
- In = unknown,
180
- Out = never,
181
- RequiredWires extends keyof PikkuWire = never,
182
- RequiredServices extends Services = Services
183
- > = CorePikkuFunctionSessionless<
184
- In,
185
- Out,
186
- RequiredServices,
187
- PickRequired<PikkuWire<In, Out, false, Session, TypedPikkuRPC, null, any>, RequiredWires>
188
- >
189
-
190
- /**
191
- * A session-aware API function that requires user authentication.
192
- * Use this for protected endpoints that need access to user session data.
193
- *
194
- * @template In - The input type
195
- * @template Out - The output type that the function returns
196
- * @template RequiredServices - Services required by this function
197
- */
198
- export type PikkuFunction<
199
- In = unknown,
200
- Out = never,
201
- RequiredWires extends keyof PikkuWire = 'session',
202
- RequiredServices extends Services = Services
203
- > = CorePikkuFunction<
204
- In,
205
- Out,
206
- RequiredServices,
207
- PickRequired<PikkuWire<In, Out, true, Session, TypedPikkuRPC, null, any>, RequiredWires>
208
- >
209
-
210
- /**
211
- * Helper type to infer the output type from a Zod schema
212
- */
213
- export type InferZodOutput<T> = T extends ZodLike<infer U> ? U : never
214
-
215
- /**
216
- * Configuration object for Pikku functions with optional middleware, permissions, tags, and documentation.
217
- * This type wraps CorePikkuFunctionConfig with the user's custom types.
218
- *
219
- * @template In - The input type
220
- * @template Out - The output type
221
- * @template PikkuFunc - The function type (can be narrowed to PikkuFunction or PikkuFunctionSessionless)
222
- */
223
- export type PikkuFunctionConfig<
224
- In = unknown,
225
- Out = unknown,
226
- RequiredWires extends keyof PikkuWire = never,
227
- PikkuFunc extends PikkuFunction<In, Out, RequiredWires> | PikkuFunctionSessionless<In, Out, RequiredWires> = PikkuFunction<In, Out, RequiredWires> | PikkuFunctionSessionless<In, Out, RequiredWires>,
228
- InputSchema extends ZodLike | undefined = undefined,
229
- OutputSchema extends ZodLike | undefined = undefined
230
- > = CorePikkuFunctionConfig<PikkuFunc, PikkuPermission<In>, PikkuMiddleware, InputSchema, OutputSchema>
231
-
232
- /**
233
- * Configuration object for Pikku functions with Zod schema validation.
234
- * Use this when you want to define input/output schemas using Zod.
235
- * Types are automatically inferred from the schemas.
236
- */
237
- export type PikkuFunctionConfigWithSchema<
238
- InputSchema extends ZodLike,
239
- OutputSchema extends ZodLike | undefined = undefined,
240
- RequiredWires extends keyof PikkuWire = never
241
- > = {
242
- name?: string
243
- tags?: string[]
244
- expose?: boolean
245
- internal?: boolean
246
- func: PikkuFunction<
247
- InferZodOutput<InputSchema>,
248
- OutputSchema extends ZodLike ? InferZodOutput<OutputSchema> : unknown,
249
- RequiredWires
250
- > | PikkuFunctionSessionless<
251
- InferZodOutput<InputSchema>,
252
- OutputSchema extends ZodLike ? InferZodOutput<OutputSchema> : unknown,
253
- RequiredWires
254
- >
255
- auth?: boolean
256
- permissions?: CorePermissionGroup<PikkuPermission<InferZodOutput<InputSchema>>>
257
- middleware?: PikkuMiddleware[]
258
- input: InputSchema
259
- output?: OutputSchema
260
- }
261
-
262
- /**
263
- * Creates a Pikku function that can be either session-aware or sessionless.
264
- * This is the main function wrapper for creating API endpoints.
265
- *
266
- * Supports two patterns:
267
- * 1. Generic types: `pikkuFunc<Input, Output>({ func: ... })`
268
- * 2. Zod schemas: `pikkuFunc({ input: z.object(...), output: z.object(...), func: ... })`
269
- *
270
- * @template In - Input type for the function (inferred from schema if provided)
271
- * @template Out - Output type for the function (inferred from schema if provided)
272
- * @param func - Function definition, either direct function or configuration object
273
- * @returns The normalized configuration object
274
- *
275
- * @example
276
- * ```typescript
277
- * // Pattern 1: Using generic types
278
- * const createUser = pikkuFunc<{name: string, email: string}, {id: number}>({
279
- * func: async ({db}, input) => {
280
- * const user = await db.users.create(input)
281
- * return { id: user.id }
282
- * }
283
- * })
284
- *
285
- * // Pattern 2: Using Zod schemas (types inferred automatically)
286
- * const createUserInput = z.object({ name: z.string(), email: z.string() })
287
- * const createUserOutput = z.object({ id: z.number() })
288
- *
289
- * const createUser = pikkuFunc({
290
- * input: createUserInput,
291
- * output: createUserOutput,
292
- * func: async ({db}, input) => {
293
- * // input is typed as { name: string, email: string }
294
- * const user = await db.users.create(input)
295
- * return { id: user.id } // must match output schema
296
- * }
297
- * })
298
- * ```
299
- */
300
- export function pikkuFunc<
301
- InputSchema extends ZodLike,
302
- OutputSchema extends ZodLike | undefined = undefined
303
- >(
304
- config: PikkuFunctionConfigWithSchema<InputSchema, OutputSchema, 'session' | 'rpc'>
305
- ): PikkuFunctionConfig<InferZodOutput<InputSchema>, OutputSchema extends ZodLike ? InferZodOutput<OutputSchema> : unknown, 'session' | 'rpc'>
306
- export function pikkuFunc<In, Out = unknown>(
307
- func:
308
- | PikkuFunction<In, Out, 'session' | 'rpc'>
309
- | PikkuFunctionConfig<In, Out, 'session' | 'rpc'>
310
- ): PikkuFunctionConfig<In, Out, 'session' | 'rpc'>
311
- export function pikkuFunc(func: any) {
312
- return typeof func === 'function' ? { func } : func
313
- }
314
-
315
- /**
316
- * Configuration object for sessionless Pikku functions with Zod schema validation.
317
- */
318
- export type PikkuFunctionSessionlessConfigWithSchema<
319
- InputSchema extends ZodLike,
320
- OutputSchema extends ZodLike | undefined = undefined,
321
- RequiredWires extends keyof PikkuWire = never
322
- > = {
323
- name?: string
324
- description?: string
325
- tags?: string[]
326
- expose?: boolean
327
- internal?: boolean
328
- func: PikkuFunctionSessionless<
329
- InferZodOutput<InputSchema>,
330
- OutputSchema extends ZodLike ? InferZodOutput<OutputSchema> : unknown,
331
- RequiredWires
332
- >
333
- auth?: boolean
334
- permissions?: CorePermissionGroup<PikkuPermission<InferZodOutput<InputSchema>>>
335
- middleware?: PikkuMiddleware[]
336
- input: InputSchema
337
- output?: OutputSchema
338
- }
339
-
340
- /**
341
- * Creates a sessionless Pikku function that doesn't require user authentication.
342
- * Use this for public endpoints, webhooks, or background tasks.
343
- *
344
- * Supports two patterns:
345
- * 1. Generic types: `pikkuSessionlessFunc<Input, Output>({ func: ... })`
346
- * 2. Zod schemas: `pikkuSessionlessFunc({ input: z.object(...), func: ... })`
347
- *
348
- * @template In - Input type for the function (inferred from schema if provided)
349
- * @template Out - Output type for the function (inferred from schema if provided)
350
- * @param func - Function definition, either direct function or configuration object
351
- * @returns The normalized configuration object
352
- *
353
- * @example
354
- * ```typescript
355
- * // Pattern 1: Using generic types
356
- * const healthCheck = pikkuSessionlessFunc<void, {status: string}>({
357
- * func: async ({logger}) => {
358
- * return { status: 'healthy' }
359
- * }
360
- * })
361
- *
362
- * // Pattern 2: Using Zod schemas
363
- * const greetInput = z.object({ name: z.string() })
364
- * const greetOutput = z.object({ message: z.string() })
365
- *
366
- * const greet = pikkuSessionlessFunc({
367
- * input: greetInput,
368
- * output: greetOutput,
369
- * func: async (_services, { name }) => {
370
- * return { message: `Hello, ${name}!` }
371
- * }
372
- * })
373
- * ```
374
- */
375
- export function pikkuSessionlessFunc<
376
- InputSchema extends ZodLike,
377
- OutputSchema extends ZodLike | undefined = undefined
378
- >(
379
- config: PikkuFunctionSessionlessConfigWithSchema<InputSchema, OutputSchema, 'session' | 'rpc'>
380
- ): PikkuFunctionConfig<InferZodOutput<InputSchema>, OutputSchema extends ZodLike ? InferZodOutput<OutputSchema> : unknown, 'session' | 'rpc'>
381
- export function pikkuSessionlessFunc<In, Out = unknown>(
382
- func:
383
- | PikkuFunctionSessionless<In, Out, 'session' | 'rpc'>
384
- | PikkuFunctionConfig<In, Out, 'session' | 'rpc'>
385
- ): PikkuFunctionConfig<In, Out, 'session' | 'rpc'>
386
- export function pikkuSessionlessFunc(func: any) {
387
- return typeof func === 'function' ? { func } : func
388
- }
389
-
390
- /**
391
- * Creates a function that takes no input and returns no output.
392
- * Useful for health checks, triggers, or cleanup operations.
393
- *
394
- * @param func - Function definition, either direct function or configuration object
395
- * @returns The normalized configuration object
396
- *
397
- * @example
398
- * ```typescript
399
- * const cleanupTempFiles = pikkuVoidFunc(async ({fileSystem, logger}) => {
400
- * logger.info('Starting cleanup of temporary files')
401
- * await fileSystem.deleteDirectory('/tmp/uploads')
402
- * logger.info('Cleanup completed')
403
- * })
404
- * ```
405
- */
406
- export const pikkuVoidFunc = (
407
- func:
408
- | PikkuFunctionSessionless<void, void, 'session' | 'rpc'>
409
- | PikkuFunctionConfig<void, void, 'session' | 'rpc'>
410
- ) => {
411
- return typeof func === 'function' ? { func } : func
412
- }
413
-
414
- /**
415
- * Creates a wrapper function for external package functions that are exposed via RPC.
416
- * This allows you to wire external functions to any wiring type (HTTP, queue, etc.)
417
- * without type compatibility issues.
418
- *
419
- * @template Name - The RPC method name (must be a key in FlattenedRPCMap)
420
- * @param rpcName - The name of the RPC method to invoke
421
- * @returns A Pikku function that proxies calls to the external RPC method
422
- *
423
- * @example
424
- * ```typescript
425
- * // Wire an external function via HTTP
426
- * wireHTTP({
427
- * auth: false,
428
- * method: 'get',
429
- * route: '/external/hello',
430
- * func: external('ext:hello'),
431
- * tags: ['external'],
432
- * })
433
- * ```
434
- */
435
- export const external = <Name extends keyof FlattenedRPCMap>(
436
- rpcName: Name
437
- ): PikkuFunctionConfig<
438
- FlattenedRPCMap[Name]['input'],
439
- FlattenedRPCMap[Name]['output'],
440
- 'session' | 'rpc'
441
- > => {
442
- return {
443
- func: (async (_services: any, data: any, { rpc }: any) => {
444
- return rpc.invoke(rpcName, data)
445
- }) as any
446
- } as PikkuFunctionConfig<
447
- FlattenedRPCMap[Name]['input'],
448
- FlattenedRPCMap[Name]['output'],
449
- 'session' | 'rpc'
450
- >
451
- }
452
-
453
- /**
454
- * Creates a Pikku config factory.
455
- * Use this to define your application's configuration factory.
456
- *
457
- * @param func - Config factory function that returns your application's config
458
- * @returns The config factory function
459
- *
460
- * @example
461
- * ```typescript
462
- * export const createConfig = pikkuConfig(async () => {
463
- * return {
464
- * apiUrl: process.env.API_URL || 'http://localhost:3000',
465
- * dbUrl: process.env.DATABASE_URL
466
- * }
467
- * })
468
- * ```
469
- */
470
- export const pikkuConfig = (
471
- func: (variables?: any, ...args: any[]) => Promise<Config>
472
- ) => func
473
-
474
- /**
475
- * Creates a Pikku singleton services factory.
476
- * Use this to define services that are created once and shared across all requests.
477
- *
478
- * @param func - Singleton services factory function
479
- * @returns The singleton services factory function
480
- *
481
- * @example
482
- * ```typescript
483
- * export const createSingletonServices = pikkuServices(async (config, existingServices) => {
484
- * return {
485
- * config,
486
- * logger: new CustomLogger(),
487
- * db: await createDatabaseConnection(config.dbUrl)
488
- * }
489
- * })
490
- * ```
491
- */
492
- export const pikkuServices = (
493
- func: (config: Config, existingServices?: Partial<SingletonServices>) => Promise<RequiredSingletonServices>
494
- ) => func
495
-
496
- /**
497
- * Creates a Pikku wire services factory.
498
- * Use this to define services that are created per-request/session.
499
- *
500
- * @param func - Wire services factory function
501
- * @returns The wire services factory function
502
- *
503
- * @example
504
- * ```typescript
505
- * export const createWireServices = pikkuWireServices(async (services, wire) => {
506
- * const session = await wire.session?.get()
507
- * return {
508
- * userCache: new UserCache(session?.userId)
509
- * }
510
- * })
511
- * ```
512
- */
513
- export const pikkuWireServices = (
514
- func: (
515
- services: SingletonServices,
516
- wire: any
517
- ) => Promise<RequiredWireServices>
518
- ): CreateWireServices => func as unknown as CreateWireServices
519
-
520
- /**
521
- * Adds global middleware for a specific tag.
522
- *
523
- * This function allows you to register middleware that will be applied to
524
- * any wiring (HTTP, Channel, Queue, Scheduler, MCP) that includes the matching tag.
525
- *
526
- * @param tag - The tag that the middleware should apply to.
527
- * @param middleware - The middleware array to apply for the specified tag.
528
- *
529
- * @throws Error if middleware for the tag already exists.
530
- *
531
- * @example
532
- * ```typescript
533
- * // Add admin middleware for admin endpoints
534
- * addMiddleware('admin', [adminMiddleware])
535
- *
536
- * // Add authentication middleware for auth endpoints
537
- * addMiddleware('auth', [authMiddleware])
538
- *
539
- * // Add logging middleware for all API endpoints
540
- * addMiddleware('api', [loggingMiddleware])
541
- * ```
542
- */
543
- export const addMiddleware = (tag: string, middleware: PikkuMiddleware[]) => {
544
- addMiddlewareCore(tag, middleware as any, null)
545
- }
546
-
547
- /**
548
- * Adds global permissions for a specific tag.
549
- *
550
- * This function allows you to register permissions that will be applied to
551
- * any wiring (HTTP, Channel, Queue, Scheduler, MCP) that includes the matching tag.
552
- *
553
- * @param tag - The tag that the permissions should apply to.
554
- * @param permissions - The permissions array or object to apply for the specified tag.
555
- *
556
- * @throws Error if permissions for the tag already exist.
557
- *
558
- * @example
559
- * ```typescript
560
- * // Add admin permissions for admin endpoints
561
- * addPermission('admin', [adminPermission])
562
- *
563
- * // Add authentication permissions for auth endpoints
564
- * addPermission('auth', [authPermission])
565
- *
566
- * // Add read permissions for all API endpoints (as object)
567
- * addPermission('api', { read: readPermission })
568
- * ```
569
- */
570
- export const addPermission = <In = unknown>(tag: string, permissions: CorePermissionGroup<PikkuPermission<In>> | PikkuPermission<In>[]) => {
571
- addPermissionCore(tag, permissions as any, null)
572
- }