@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,426 +0,0 @@
1
- /**
2
- * This file was generated by @pikku/cli@0.11.2
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 } 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 } 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
- * Configuration object for Pikku functions with optional middleware, permissions, tags, and documentation.
212
- * This type wraps CorePikkuFunctionConfig with the user's custom types.
213
- *
214
- * @template In - The input type
215
- * @template Out - The output type
216
- * @template PikkuFunc - The function type (can be narrowed to PikkuFunction or PikkuFunctionSessionless)
217
- */
218
- export type PikkuFunctionConfig<
219
- In = unknown,
220
- Out = unknown,
221
- RequiredWires extends keyof PikkuWire = never,
222
- PikkuFunc extends PikkuFunction<In, Out, RequiredWires> | PikkuFunctionSessionless<In, Out, RequiredWires> = PikkuFunction<In, Out, RequiredWires> | PikkuFunctionSessionless<In, Out, RequiredWires>
223
- > = CorePikkuFunctionConfig<PikkuFunc, PikkuPermission<In>, PikkuMiddleware>
224
-
225
- /**
226
- * Creates a Pikku function that can be either session-aware or sessionless.
227
- * This is the main function wrapper for creating API endpoints.
228
- *
229
- * @template In - Input type for the function
230
- * @template Out - Output type for the function
231
- * @param func - Function definition, either direct function or configuration object
232
- * @returns The normalized configuration object
233
- *
234
- * @example
235
- * \`\`\`typescript
236
- * const createUser = pikkuFunc<{name: string, email: string}, {id: number, message: string}>({
237
- * func: async ({db, logger}, input, wire) => {
238
- * const session = await wire.session.get()
239
- * logger.info('Creating user', input.name)
240
- * const user = await db.users.create(input)
241
- * return {id: user.id, message: \`User \${input.name} created successfully\`}
242
- * },
243
- * auth: true
244
- * })
245
- * \`\`\`
246
- */
247
- export const pikkuFunc = <In, Out = unknown>(
248
- func:
249
- | PikkuFunction<In, Out, 'session' | 'rpc'>
250
- | PikkuFunctionConfig<In, Out, 'session' | 'rpc'>
251
- ) => {
252
- return typeof func === 'function' ? { func } : func
253
- }
254
-
255
- /**
256
- * Creates a sessionless Pikku function that doesn't require user authentication.
257
- * Use this for public endpoints, webhooks, or background tasks.
258
- *
259
- * @template In - Input type for the function
260
- * @template Out - Output type for the function
261
- * @param func - Function definition, either direct function or configuration object
262
- * @returns The normalized configuration object
263
- *
264
- * @example
265
- * \`\`\`typescript
266
- * const healthCheck = pikkuSessionlessFunc<void, {status: string, timestamp: string}>({
267
- * func: async ({logger}, input) => {
268
- * logger.info('Health check requested')
269
- * return {status: 'healthy', timestamp: new Date().toISOString()}
270
- * },
271
- * name: 'healthCheck'
272
- * })
273
- * \`\`\`
274
- */
275
- export const pikkuSessionlessFunc = <In, Out = unknown>(
276
- func:
277
- | PikkuFunctionSessionless<In, Out, 'session' | 'rpc'>
278
- | PikkuFunctionConfig<In, Out, 'session' | 'rpc'>
279
- ) => {
280
- return typeof func === 'function' ? { func } : func
281
- }
282
-
283
- /**
284
- * Creates a function that takes no input and returns no output.
285
- * Useful for health checks, triggers, or cleanup operations.
286
- *
287
- * @param func - Function definition, either direct function or configuration object
288
- * @returns The normalized configuration object
289
- *
290
- * @example
291
- * \`\`\`typescript
292
- * const cleanupTempFiles = pikkuVoidFunc(async ({fileSystem, logger}) => {
293
- * logger.info('Starting cleanup of temporary files')
294
- * await fileSystem.deleteDirectory('/tmp/uploads')
295
- * logger.info('Cleanup completed')
296
- * })
297
- * \`\`\`
298
- */
299
- export const pikkuVoidFunc = (
300
- func:
301
- | PikkuFunctionSessionless<void, void, 'session' | 'rpc'>
302
- | PikkuFunctionConfig<void, void, 'session' | 'rpc'>
303
- ) => {
304
- return typeof func === 'function' ? { func } : func
305
- }
306
-
307
- /**
308
- * Creates a Pikku config factory.
309
- * Use this to define your application's configuration factory.
310
- *
311
- * @param func - Config factory function that returns your application's config
312
- * @returns The config factory function
313
- *
314
- * @example
315
- * ```typescript
316
- * export const createConfig = pikkuConfig(async () => {
317
- * return {
318
- * apiUrl: process.env.API_URL || 'http://localhost:3000',
319
- * dbUrl: process.env.DATABASE_URL
320
- * }
321
- * })
322
- * ```
323
- */
324
- export const pikkuConfig = (
325
- func: (variables?: any, ...args: any[]) => Promise<Config>
326
- ) => func
327
-
328
- /**
329
- * Creates a Pikku singleton services factory.
330
- * Use this to define services that are created once and shared across all requests.
331
- *
332
- * @param func - Singleton services factory function
333
- * @returns The singleton services factory function
334
- *
335
- * @example
336
- * ```typescript
337
- * export const createSingletonServices = pikkuServices(async (config, existingServices) => {
338
- * return {
339
- * config,
340
- * logger: new CustomLogger(),
341
- * db: await createDatabaseConnection(config.dbUrl)
342
- * }
343
- * })
344
- * ```
345
- */
346
- export const pikkuServices = (
347
- func: (config: Config, existingServices?: Partial<SingletonServices>) => Promise<RequiredSingletonServices>
348
- ) => func
349
-
350
- /**
351
- * Creates a Pikku wire services factory.
352
- * Use this to define services that are created per-request/session.
353
- *
354
- * @param func - Wire services factory function
355
- * @returns The wire services factory function
356
- *
357
- * @example
358
- * ```typescript
359
- * export const createWireServices = pikkuWireServices(async (services, wire) => {
360
- * const session = await wire.session?.get()
361
- * return {
362
- * userCache: new UserCache(session?.userId)
363
- * }
364
- * })
365
- * ```
366
- */
367
- export const pikkuWireServices = (
368
- func: (
369
- services: SingletonServices,
370
- wire: any
371
- ) => Promise<RequiredWireServices>
372
- ) => func
373
-
374
- /**
375
- * Adds global middleware for a specific tag.
376
- *
377
- * This function allows you to register middleware that will be applied to
378
- * any wiring (HTTP, Channel, Queue, Scheduler, MCP) that includes the matching tag.
379
- *
380
- * @param tag - The tag that the middleware should apply to.
381
- * @param middleware - The middleware array to apply for the specified tag.
382
- *
383
- * @throws Error if middleware for the tag already exists.
384
- *
385
- * @example
386
- * ```typescript
387
- * // Add admin middleware for admin endpoints
388
- * addMiddleware('admin', [adminMiddleware])
389
- *
390
- * // Add authentication middleware for auth endpoints
391
- * addMiddleware('auth', [authMiddleware])
392
- *
393
- * // Add logging middleware for all API endpoints
394
- * addMiddleware('api', [loggingMiddleware])
395
- * ```
396
- */
397
- export const addMiddleware = (tag: string, middleware: PikkuMiddleware[]) => {
398
- addMiddlewareCore(tag, middleware as any)
399
- }
400
-
401
- /**
402
- * Adds global permissions for a specific tag.
403
- *
404
- * This function allows you to register permissions that will be applied to
405
- * any wiring (HTTP, Channel, Queue, Scheduler, MCP) that includes the matching tag.
406
- *
407
- * @param tag - The tag that the permissions should apply to.
408
- * @param permissions - The permissions array or object to apply for the specified tag.
409
- *
410
- * @throws Error if permissions for the tag already exist.
411
- *
412
- * @example
413
- * ```typescript
414
- * // Add admin permissions for admin endpoints
415
- * addPermission('admin', [adminPermission])
416
- *
417
- * // Add authentication permissions for auth endpoints
418
- * addPermission('auth', [authPermission])
419
- *
420
- * // Add read permissions for all API endpoints (as object)
421
- * addPermission('api', { read: readPermission })
422
- * ```
423
- */
424
- export const addPermission = <In = unknown>(tag: string, permissions: CorePermissionGroup<PikkuPermission<In>> | PikkuPermission<In>[]) => {
425
- addPermissionCore(tag, permissions as any)
426
- }