@pikku/cli 0.9.14 → 0.9.16-next.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 (445) hide show
  1. package/.pikku/channel/pikku-channel-types.gen.ts +92 -0
  2. package/.pikku/cli/pikku-cli-types.gen.ts +71 -0
  3. package/.pikku/cli/pikku-cli-wirings-meta.gen.ts +5 -0
  4. package/.pikku/cli/pikku-cli-wirings.gen.ts +4 -0
  5. package/.pikku/function/pikku-function-types.gen.ts +292 -0
  6. package/.pikku/function/pikku-functions-meta.gen.ts +817 -0
  7. package/.pikku/function/pikku-functions-meta.min.gen.ts +176 -0
  8. package/.pikku/function/pikku-functions.gen.ts +74 -0
  9. package/.pikku/http/pikku-http-types.gen.ts +61 -0
  10. package/.pikku/mcp/pikku-mcp-types.gen.ts +138 -0
  11. package/.pikku/pikku-bootstrap.gen.ts +9 -0
  12. package/.pikku/pikku-services.gen.ts +24 -0
  13. package/.pikku/pikku-types.gen.ts +28 -0
  14. package/.pikku/queue/pikku-queue-types.gen.ts +28 -0
  15. package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +46 -0
  16. package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +80 -0
  17. package/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts +40 -0
  18. package/.pikku/scheduler/pikku-scheduler-types.gen.ts +26 -0
  19. package/.pikku/schemas/register.gen.ts +47 -0
  20. package/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -0
  21. package/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +1 -0
  22. package/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -0
  23. package/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +1 -0
  24. package/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +1 -0
  25. package/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +1 -0
  26. package/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +1 -0
  27. package/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +1 -0
  28. package/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +1 -0
  29. package/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +1 -0
  30. package/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -0
  31. package/CHANGELOG.md +15 -0
  32. package/bin/pikku.ts +45 -14
  33. package/build.sh +53 -0
  34. package/cli.schema.json +1 -382
  35. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +65 -0
  36. package/dist/.pikku/channel/pikku-channel-types.gen.js +54 -0
  37. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +55 -0
  38. package/dist/.pikku/cli/pikku-cli-types.gen.js +30 -0
  39. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +5 -0
  40. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +4 -0
  41. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +5 -0
  42. package/dist/.pikku/function/pikku-function-types.gen.d.ts +259 -0
  43. package/dist/.pikku/function/pikku-function-types.gen.js +175 -0
  44. package/dist/.pikku/function/pikku-functions-meta.gen.d.ts +1 -0
  45. package/dist/.pikku/function/pikku-functions-meta.gen.js +817 -0
  46. package/dist/.pikku/function/pikku-functions-meta.min.gen.d.ts +1 -0
  47. package/dist/.pikku/function/pikku-functions-meta.min.gen.js +176 -0
  48. package/dist/.pikku/function/pikku-functions.gen.d.ts +1 -0
  49. package/dist/.pikku/function/pikku-functions.gen.js +73 -0
  50. package/dist/.pikku/http/pikku-http-types.gen.d.ts +49 -0
  51. package/dist/.pikku/http/pikku-http-types.gen.js +41 -0
  52. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +88 -0
  53. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +71 -0
  54. package/dist/.pikku/pikku-bootstrap.gen.d.ts +9 -0
  55. package/dist/.pikku/pikku-bootstrap.gen.js +9 -0
  56. package/dist/.pikku/pikku-services.gen.d.ts +16 -0
  57. package/dist/.pikku/pikku-services.gen.js +11 -0
  58. package/dist/.pikku/pikku-types.gen.d.ts +14 -0
  59. package/dist/.pikku/pikku-types.gen.js +21 -0
  60. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +24 -0
  61. package/dist/.pikku/queue/pikku-queue-types.gen.js +17 -0
  62. package/dist/.pikku/rpc/pikku-bootstrap-rpc.gen.d.ts +6 -0
  63. package/dist/.pikku/rpc/pikku-bootstrap-rpc.gen.js +6 -0
  64. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.d.ts +1 -0
  65. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +40 -0
  66. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +22 -0
  67. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +17 -0
  68. package/dist/.pikku/schemas/register.gen.d.ts +1 -0
  69. package/dist/.pikku/schemas/register.gen.js +26 -0
  70. package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -0
  71. package/dist/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +1 -0
  72. package/dist/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -0
  73. package/dist/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +1 -0
  74. package/dist/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +1 -0
  75. package/dist/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +1 -0
  76. package/dist/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +1 -0
  77. package/dist/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +1 -0
  78. package/dist/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +1 -0
  79. package/dist/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +1 -0
  80. package/dist/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -0
  81. package/dist/bin/pikku.d.ts +1 -1
  82. package/dist/bin/pikku.js +32 -14
  83. package/dist/src/cli.wiring.d.ts +1 -0
  84. package/dist/src/cli.wiring.js +75 -0
  85. package/dist/src/functions/commands/all.d.ts +1 -0
  86. package/dist/src/functions/commands/all.js +104 -0
  87. package/dist/src/functions/commands/watch.d.ts +1 -0
  88. package/dist/src/functions/commands/watch.js +47 -0
  89. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.d.ts +1 -0
  90. package/dist/src/{runtimes → functions/runtimes}/nextjs/pikku-command-nextjs.js +28 -9
  91. package/dist/src/functions/wirings/channels/pikku-channels.d.ts +1 -0
  92. package/dist/src/functions/wirings/channels/pikku-channels.js +24 -0
  93. package/dist/src/functions/wirings/channels/pikku-command-channel-types.d.ts +1 -0
  94. package/dist/src/functions/wirings/channels/pikku-command-channel-types.js +21 -0
  95. package/dist/src/functions/wirings/channels/pikku-command-channels-map.d.ts +1 -0
  96. package/dist/src/functions/wirings/channels/pikku-command-channels-map.js +23 -0
  97. package/dist/src/functions/wirings/channels/pikku-command-channels.d.ts +1 -0
  98. package/dist/src/functions/wirings/channels/pikku-command-channels.js +25 -0
  99. package/dist/src/functions/wirings/channels/pikku-command-websocket-typed.d.ts +1 -0
  100. package/dist/src/functions/wirings/channels/pikku-command-websocket-typed.js +24 -0
  101. package/dist/src/functions/wirings/channels/serialize-channel-types.d.ts +4 -0
  102. package/dist/src/functions/wirings/channels/serialize-channel-types.js +95 -0
  103. package/dist/src/{wirings → functions/wirings}/channels/serialize-typed-channel-map.js +2 -2
  104. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.d.ts +1 -0
  105. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +100 -0
  106. package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +1 -0
  107. package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +33 -0
  108. package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -0
  109. package/dist/src/functions/wirings/cli/pikku-command-cli.js +24 -0
  110. package/dist/src/functions/wirings/cli/serialize-channel-cli-client.d.ts +7 -0
  111. package/dist/src/functions/wirings/cli/serialize-channel-cli-client.js +54 -0
  112. package/dist/src/functions/wirings/cli/serialize-channel-cli.d.ts +9 -0
  113. package/dist/src/functions/wirings/cli/serialize-channel-cli.js +84 -0
  114. package/dist/src/functions/wirings/cli/serialize-cli-types.d.ts +4 -0
  115. package/dist/src/functions/wirings/cli/serialize-cli-types.js +74 -0
  116. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.d.ts +14 -0
  117. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +46 -0
  118. package/dist/src/functions/wirings/fetch/index.d.ts +1 -0
  119. package/dist/src/functions/wirings/fetch/index.js +24 -0
  120. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.d.ts +1 -0
  121. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.js +32 -0
  122. package/dist/src/functions/wirings/functions/pikku-command-function-types.d.ts +1 -0
  123. package/dist/src/functions/wirings/functions/pikku-command-function-types.js +20 -0
  124. package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -0
  125. package/dist/src/functions/wirings/functions/pikku-command-functions.js +28 -0
  126. package/dist/src/{wirings → functions/wirings}/functions/pikku-command-services.d.ts +1 -2
  127. package/dist/src/{wirings → functions/wirings}/functions/pikku-command-services.js +27 -10
  128. package/dist/src/functions/wirings/functions/pikku-function-types.d.ts +1 -0
  129. package/dist/src/functions/wirings/functions/pikku-function-types.js +20 -0
  130. package/dist/src/functions/wirings/functions/schemas.d.ts +4 -0
  131. package/dist/src/functions/wirings/functions/schemas.js +22 -0
  132. package/dist/src/{wirings → functions/wirings}/functions/serialize-function-imports.js +4 -21
  133. package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +4 -0
  134. package/dist/src/functions/wirings/functions/serialize-function-types.js +295 -0
  135. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.d.ts +4 -0
  136. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.js +31 -0
  137. package/dist/src/{wirings → functions/wirings}/http/openapi-spec-generator.d.ts +2 -1
  138. package/dist/src/{wirings → functions/wirings}/http/openapi-spec-generator.js +2 -2
  139. package/dist/src/functions/wirings/http/pikku-command-http-map.d.ts +1 -0
  140. package/dist/src/functions/wirings/http/pikku-command-http-map.js +23 -0
  141. package/dist/src/functions/wirings/http/pikku-command-http-routes.d.ts +1 -0
  142. package/dist/src/functions/wirings/http/pikku-command-http-routes.js +25 -0
  143. package/dist/src/functions/wirings/http/pikku-command-http-types.d.ts +1 -0
  144. package/dist/src/functions/wirings/http/pikku-command-http-types.js +21 -0
  145. package/dist/src/functions/wirings/http/pikku-command-openapi.d.ts +1 -0
  146. package/dist/src/functions/wirings/http/pikku-command-openapi.js +34 -0
  147. package/dist/src/functions/wirings/http/pikku-http-routes.d.ts +1 -0
  148. package/dist/src/functions/wirings/http/pikku-http-routes.js +25 -0
  149. package/dist/src/functions/wirings/http/serialize-http-types.d.ts +4 -0
  150. package/dist/src/functions/wirings/http/serialize-http-types.js +64 -0
  151. package/dist/src/{wirings → functions/wirings}/http/serialize-typed-http-map.js +2 -2
  152. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.d.ts +1 -0
  153. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.js +28 -0
  154. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.d.ts +1 -0
  155. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.js +21 -0
  156. package/dist/src/functions/wirings/mcp/pikku-command-mcp.d.ts +1 -0
  157. package/dist/src/{wirings → functions/wirings}/mcp/pikku-command-mcp.js +22 -5
  158. package/dist/src/{wirings → functions/wirings}/mcp/serialize-mcp-json.d.ts +1 -1
  159. package/dist/src/functions/wirings/mcp/serialize-mcp-types.d.ts +4 -0
  160. package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +141 -0
  161. package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -0
  162. package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +38 -0
  163. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.d.ts +8 -0
  164. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.js +50 -0
  165. package/dist/src/functions/wirings/middleware/serialize-middleware-imports.d.ts +2 -0
  166. package/dist/src/functions/wirings/middleware/serialize-middleware-imports.js +43 -0
  167. package/dist/src/functions/wirings/queue/pikku-command-queue-map.d.ts +1 -0
  168. package/dist/src/functions/wirings/queue/pikku-command-queue-map.js +23 -0
  169. package/dist/src/functions/wirings/queue/pikku-command-queue-service.d.ts +1 -0
  170. package/dist/src/functions/wirings/queue/pikku-command-queue-service.js +24 -0
  171. package/dist/src/functions/wirings/queue/pikku-command-queue-types.d.ts +1 -0
  172. package/dist/src/functions/wirings/queue/pikku-command-queue-types.js +21 -0
  173. package/dist/src/functions/wirings/queue/pikku-command-queue.d.ts +1 -0
  174. package/dist/src/functions/wirings/queue/pikku-command-queue.js +26 -0
  175. package/dist/src/functions/wirings/queue/pikku-queue-map.d.ts +1 -0
  176. package/dist/src/functions/wirings/queue/pikku-queue-map.js +23 -0
  177. package/dist/src/functions/wirings/queue/pikku-queue.d.ts +1 -0
  178. package/dist/src/functions/wirings/queue/pikku-queue.js +25 -0
  179. package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-map.js +2 -2
  180. package/dist/src/functions/wirings/queue/serialize-queue-types.d.ts +4 -0
  181. package/dist/src/functions/wirings/queue/serialize-queue-types.js +31 -0
  182. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.d.ts +1 -0
  183. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.js +25 -0
  184. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +2 -0
  185. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.js +36 -0
  186. package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -0
  187. package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +22 -0
  188. package/dist/src/{wirings → functions/wirings}/rpc/serialize-typed-rpc-map.js +2 -2
  189. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.d.ts +1 -0
  190. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.js +21 -0
  191. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.d.ts +1 -0
  192. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.js +26 -0
  193. package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.d.ts +4 -0
  194. package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.js +29 -0
  195. package/dist/src/middleware/log-command-info-and-time.d.ts +19 -0
  196. package/dist/src/middleware/log-command-info-and-time.js +27 -0
  197. package/dist/src/serialize-pikku-types.js +2 -2
  198. package/dist/src/services/cli-logger-forwarder.service.d.ts +26 -0
  199. package/dist/src/services/cli-logger-forwarder.service.js +55 -0
  200. package/dist/src/services/cli-logger.service.d.ts +19 -0
  201. package/dist/src/services/cli-logger.service.js +66 -0
  202. package/dist/src/services.d.ts +15 -0
  203. package/dist/src/services.js +64 -0
  204. package/dist/src/utils/check-required-types.d.ts +10 -0
  205. package/dist/src/utils/check-required-types.js +31 -0
  206. package/dist/src/utils/custom-types-generator.d.ts +2 -0
  207. package/dist/src/utils/custom-types-generator.js +37 -0
  208. package/dist/src/utils/file-import-path.d.ts +1 -0
  209. package/dist/src/utils/file-import-path.js +43 -0
  210. package/dist/src/utils/file-imports-serializer.d.ts +1 -0
  211. package/dist/src/utils/file-imports-serializer.js +13 -0
  212. package/dist/src/utils/file-writer.d.ts +6 -0
  213. package/dist/src/utils/file-writer.js +40 -0
  214. package/dist/src/utils/generate-bootstrap-file.d.ts +3 -0
  215. package/dist/src/utils/generate-bootstrap-file.js +21 -0
  216. package/dist/src/utils/pikku-cli-config.d.ts +5 -0
  217. package/dist/src/utils/pikku-cli-config.js +243 -0
  218. package/dist/src/utils/pikku-files-and-methods.d.ts +21 -0
  219. package/dist/src/utils/pikku-files-and-methods.js +70 -0
  220. package/dist/src/{schema-generator.d.ts → utils/schema-generator.d.ts} +1 -1
  221. package/dist/src/{schema-generator.js → utils/schema-generator.js} +1 -1
  222. package/dist/src/{serialize-import-map.js → utils/serialize-import-map.js} +1 -1
  223. package/dist/tsconfig.tsbuildinfo +1 -1
  224. package/package.json +6 -6
  225. package/pikku.config.json +24 -0
  226. package/src/cli.wiring.ts +75 -0
  227. package/src/functions/commands/all.ts +141 -0
  228. package/src/functions/commands/watch.ts +58 -0
  229. package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +111 -0
  230. package/src/functions/wirings/channels/pikku-channels.ts +40 -0
  231. package/src/functions/wirings/channels/pikku-command-channel-types.ts +27 -0
  232. package/src/functions/wirings/channels/pikku-command-channels-map.ts +31 -0
  233. package/src/functions/wirings/channels/pikku-command-channels.ts +45 -0
  234. package/src/functions/wirings/channels/pikku-command-websocket-typed.ts +33 -0
  235. package/src/functions/wirings/channels/serialize-channel-types.ts +95 -0
  236. package/src/{wirings → functions/wirings}/channels/serialize-typed-channel-map.ts +2 -2
  237. package/src/functions/wirings/cli/pikku-command-cli-entry.ts +173 -0
  238. package/src/functions/wirings/cli/pikku-command-cli-types.ts +50 -0
  239. package/src/functions/wirings/cli/pikku-command-cli.ts +41 -0
  240. package/src/functions/wirings/cli/serialize-channel-cli-client.ts +72 -0
  241. package/src/functions/wirings/cli/serialize-channel-cli.ts +123 -0
  242. package/src/functions/wirings/cli/serialize-cli-types.ts +80 -0
  243. package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +75 -0
  244. package/src/functions/wirings/fetch/index.ts +32 -0
  245. package/src/functions/wirings/functions/pikku-command-function-types-split.ts +51 -0
  246. package/src/functions/wirings/functions/pikku-command-function-types.ts +45 -0
  247. package/src/functions/wirings/functions/pikku-command-functions.ts +61 -0
  248. package/src/{wirings → functions/wirings}/functions/pikku-command-services.ts +41 -44
  249. package/src/functions/wirings/functions/pikku-function-types.ts +45 -0
  250. package/src/functions/wirings/functions/schemas.ts +47 -0
  251. package/src/{wirings → functions/wirings}/functions/serialize-function-imports.ts +4 -30
  252. package/src/functions/wirings/functions/serialize-function-types.ts +303 -0
  253. package/src/functions/wirings/functions/serialize-pikku-types-hub.ts +39 -0
  254. package/src/{wirings → functions/wirings}/http/openapi-spec-generator.ts +3 -1
  255. package/src/functions/wirings/http/pikku-command-http-map.ts +32 -0
  256. package/src/functions/wirings/http/pikku-command-http-routes.ts +41 -0
  257. package/src/functions/wirings/http/pikku-command-http-types.ts +27 -0
  258. package/src/functions/wirings/http/pikku-command-openapi.ts +57 -0
  259. package/src/functions/wirings/http/pikku-http-routes.ts +40 -0
  260. package/src/functions/wirings/http/serialize-http-types.ts +64 -0
  261. package/src/{wirings → functions/wirings}/http/serialize-typed-http-map.ts +2 -2
  262. package/src/functions/wirings/mcp/pikku-command-mcp-json.ts +38 -0
  263. package/src/functions/wirings/mcp/pikku-command-mcp-types.ts +27 -0
  264. package/src/{wirings → functions/wirings}/mcp/pikku-command-mcp.ts +55 -46
  265. package/src/{wirings → functions/wirings}/mcp/serialize-mcp-json.ts +1 -1
  266. package/src/functions/wirings/mcp/serialize-mcp-types.ts +141 -0
  267. package/src/functions/wirings/middleware/pikku-command-middleware.ts +65 -0
  268. package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +61 -0
  269. package/src/functions/wirings/middleware/serialize-middleware-imports.ts +78 -0
  270. package/src/functions/wirings/queue/pikku-command-queue-map.ts +31 -0
  271. package/src/functions/wirings/queue/pikku-command-queue-service.ts +33 -0
  272. package/src/functions/wirings/queue/pikku-command-queue-types.ts +27 -0
  273. package/src/functions/wirings/queue/pikku-command-queue.ts +46 -0
  274. package/src/functions/wirings/queue/pikku-queue-map.ts +31 -0
  275. package/src/functions/wirings/queue/pikku-queue.ts +44 -0
  276. package/src/{wirings → functions/wirings}/queue/serialize-queue-map.ts +2 -2
  277. package/src/functions/wirings/queue/serialize-queue-types.ts +31 -0
  278. package/src/functions/wirings/rpc/pikku-command-rpc-client.ts +32 -0
  279. package/src/functions/wirings/rpc/pikku-command-rpc-map.ts +52 -0
  280. package/src/functions/wirings/rpc/pikku-command-rpc.ts +28 -0
  281. package/src/{wirings → functions/wirings}/rpc/serialize-typed-rpc-map.ts +2 -2
  282. package/src/functions/wirings/scheduler/pikku-command-scheduler-types.ts +27 -0
  283. package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +46 -0
  284. package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +29 -0
  285. package/src/middleware/log-command-info-and-time.ts +61 -0
  286. package/src/serialize-pikku-types.ts +2 -2
  287. package/src/services/cli-logger-forwarder.service.ts +77 -0
  288. package/src/services/cli-logger.service.ts +78 -0
  289. package/src/services.ts +111 -0
  290. package/src/utils/check-required-types.ts +53 -0
  291. package/src/utils/custom-types-generator.ts +49 -0
  292. package/src/{utils.test.ts → utils/file-import-path.test.ts} +1 -1
  293. package/src/utils/file-import-path.ts +53 -0
  294. package/src/utils/file-imports-serializer.ts +25 -0
  295. package/src/utils/file-writer.ts +56 -0
  296. package/src/utils/generate-bootstrap-file.ts +43 -0
  297. package/src/utils/pikku-cli-config.ts +356 -0
  298. package/src/utils/pikku-files-and-methods.ts +148 -0
  299. package/src/{schema-generator.ts → utils/schema-generator.ts} +3 -1
  300. package/src/{serialize-import-map.ts → utils/serialize-import-map.ts} +1 -1
  301. package/tsconfig.json +2 -2
  302. package/types/application-types.d.ts +20 -0
  303. package/types/config.d.ts +192 -0
  304. package/bin/pikku-all.ts +0 -349
  305. package/bin/pikku-fetch.ts +0 -27
  306. package/bin/pikku-nextjs.ts +0 -44
  307. package/bin/pikku-openapi.ts +0 -31
  308. package/bin/pikku-queue-service.ts +0 -28
  309. package/bin/pikku-rpc.ts +0 -28
  310. package/bin/pikku-schemas.ts +0 -31
  311. package/bin/pikku-websocket.ts +0 -28
  312. package/dist/bin/pikku-all.d.ts +0 -4
  313. package/dist/bin/pikku-all.js +0 -194
  314. package/dist/bin/pikku-fetch.d.ts +0 -4
  315. package/dist/bin/pikku-fetch.js +0 -19
  316. package/dist/bin/pikku-nextjs.d.ts +0 -4
  317. package/dist/bin/pikku-nextjs.js +0 -24
  318. package/dist/bin/pikku-openapi.d.ts +0 -2
  319. package/dist/bin/pikku-openapi.js +0 -19
  320. package/dist/bin/pikku-queue-service.d.ts +0 -4
  321. package/dist/bin/pikku-queue-service.js +0 -19
  322. package/dist/bin/pikku-rpc.d.ts +0 -4
  323. package/dist/bin/pikku-rpc.js +0 -19
  324. package/dist/bin/pikku-schemas.d.ts +0 -2
  325. package/dist/bin/pikku-schemas.js +0 -21
  326. package/dist/bin/pikku-websocket.d.ts +0 -4
  327. package/dist/bin/pikku-websocket.js +0 -19
  328. package/dist/src/inspector-glob.d.ts +0 -2
  329. package/dist/src/inspector-glob.js +0 -12
  330. package/dist/src/pikku-cli-config.d.ts +0 -56
  331. package/dist/src/pikku-cli-config.js +0 -203
  332. package/dist/src/pikku-command-schemas.d.ts +0 -2
  333. package/dist/src/pikku-command-schemas.js +0 -8
  334. package/dist/src/runtimes/nextjs/pikku-command-nextjs.d.ts +0 -2
  335. package/dist/src/schemas.d.ts +0 -2
  336. package/dist/src/schemas.js +0 -8
  337. package/dist/src/types.d.ts +0 -5
  338. package/dist/src/utils.d.ts +0 -60
  339. package/dist/src/utils.js +0 -248
  340. package/dist/src/wirings/channels/pikku-channels.d.ts +0 -2
  341. package/dist/src/wirings/channels/pikku-channels.js +0 -9
  342. package/dist/src/wirings/channels/pikku-command-channels-map.d.ts +0 -2
  343. package/dist/src/wirings/channels/pikku-command-channels-map.js +0 -8
  344. package/dist/src/wirings/channels/pikku-command-channels.d.ts +0 -2
  345. package/dist/src/wirings/channels/pikku-command-channels.js +0 -9
  346. package/dist/src/wirings/channels/pikku-command-websocket-typed.d.ts +0 -2
  347. package/dist/src/wirings/channels/pikku-command-websocket-typed.js +0 -15
  348. package/dist/src/wirings/fetch/index.d.ts +0 -2
  349. package/dist/src/wirings/fetch/index.js +0 -12
  350. package/dist/src/wirings/functions/pikku-command-function-types.d.ts +0 -2
  351. package/dist/src/wirings/functions/pikku-command-function-types.js +0 -13
  352. package/dist/src/wirings/functions/pikku-command-functions.d.ts +0 -2
  353. package/dist/src/wirings/functions/pikku-command-functions.js +0 -14
  354. package/dist/src/wirings/functions/pikku-function-types.d.ts +0 -2
  355. package/dist/src/wirings/functions/pikku-function-types.js +0 -13
  356. package/dist/src/wirings/http/pikku-command-http-map.d.ts +0 -2
  357. package/dist/src/wirings/http/pikku-command-http-map.js +0 -8
  358. package/dist/src/wirings/http/pikku-command-http-routes.d.ts +0 -2
  359. package/dist/src/wirings/http/pikku-command-http-routes.js +0 -9
  360. package/dist/src/wirings/http/pikku-command-openapi.d.ts +0 -2
  361. package/dist/src/wirings/http/pikku-command-openapi.js +0 -20
  362. package/dist/src/wirings/http/pikku-http-routes.d.ts +0 -2
  363. package/dist/src/wirings/http/pikku-http-routes.js +0 -9
  364. package/dist/src/wirings/mcp/pikku-command-mcp-json.d.ts +0 -2
  365. package/dist/src/wirings/mcp/pikku-command-mcp-json.js +0 -13
  366. package/dist/src/wirings/mcp/pikku-command-mcp.d.ts +0 -2
  367. package/dist/src/wirings/queue/pikku-command-queue-map.d.ts +0 -2
  368. package/dist/src/wirings/queue/pikku-command-queue-map.js +0 -8
  369. package/dist/src/wirings/queue/pikku-command-queue-service.d.ts +0 -2
  370. package/dist/src/wirings/queue/pikku-command-queue-service.js +0 -15
  371. package/dist/src/wirings/queue/pikku-command-queue.d.ts +0 -2
  372. package/dist/src/wirings/queue/pikku-command-queue.js +0 -10
  373. package/dist/src/wirings/queue/pikku-queue-map.d.ts +0 -2
  374. package/dist/src/wirings/queue/pikku-queue-map.js +0 -8
  375. package/dist/src/wirings/queue/pikku-queue.d.ts +0 -2
  376. package/dist/src/wirings/queue/pikku-queue.js +0 -10
  377. package/dist/src/wirings/rpc/pikku-command-rpc-client.d.ts +0 -2
  378. package/dist/src/wirings/rpc/pikku-command-rpc-client.js +0 -15
  379. package/dist/src/wirings/rpc/pikku-command-rpc-map.d.ts +0 -3
  380. package/dist/src/wirings/rpc/pikku-command-rpc-map.js +0 -14
  381. package/dist/src/wirings/rpc/pikku-command-rpc.d.ts +0 -2
  382. package/dist/src/wirings/rpc/pikku-command-rpc.js +0 -8
  383. package/dist/src/wirings/scheduler/pikku-command-scheduler.d.ts +0 -2
  384. package/dist/src/wirings/scheduler/pikku-command-scheduler.js +0 -10
  385. package/src/inspector-glob.ts +0 -30
  386. package/src/pikku-cli-config.ts +0 -387
  387. package/src/pikku-command-schemas.ts +0 -35
  388. package/src/runtimes/nextjs/pikku-command-nextjs.ts +0 -110
  389. package/src/schemas.ts +0 -35
  390. package/src/types.ts +0 -16
  391. package/src/utils.ts +0 -420
  392. package/src/wirings/channels/pikku-channels.ts +0 -41
  393. package/src/wirings/channels/pikku-command-channels-map.ts +0 -26
  394. package/src/wirings/channels/pikku-command-channels.ts +0 -39
  395. package/src/wirings/channels/pikku-command-websocket-typed.ts +0 -36
  396. package/src/wirings/fetch/index.ts +0 -33
  397. package/src/wirings/functions/pikku-command-function-types.ts +0 -53
  398. package/src/wirings/functions/pikku-command-functions.ts +0 -48
  399. package/src/wirings/functions/pikku-function-types.ts +0 -52
  400. package/src/wirings/http/pikku-command-http-map.ts +0 -27
  401. package/src/wirings/http/pikku-command-http-routes.ts +0 -40
  402. package/src/wirings/http/pikku-command-openapi.ts +0 -55
  403. package/src/wirings/http/pikku-http-routes.ts +0 -40
  404. package/src/wirings/mcp/pikku-command-mcp-json.ts +0 -33
  405. package/src/wirings/queue/pikku-command-queue-map.ts +0 -26
  406. package/src/wirings/queue/pikku-command-queue-service.ts +0 -36
  407. package/src/wirings/queue/pikku-command-queue.ts +0 -45
  408. package/src/wirings/queue/pikku-queue-map.ts +0 -26
  409. package/src/wirings/queue/pikku-queue.ts +0 -43
  410. package/src/wirings/rpc/pikku-command-rpc-client.ts +0 -35
  411. package/src/wirings/rpc/pikku-command-rpc-map.ts +0 -49
  412. package/src/wirings/rpc/pikku-command-rpc.ts +0 -24
  413. package/src/wirings/scheduler/pikku-command-scheduler.ts +0 -43
  414. /package/dist/{src/types.js → .pikku/cli/pikku-cli-wirings-meta.gen.d.ts} +0 -0
  415. /package/dist/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-backend-wrapper.d.ts +0 -0
  416. /package/dist/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-backend-wrapper.js +0 -0
  417. /package/dist/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-http-wrapper.d.ts +0 -0
  418. /package/dist/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-http-wrapper.js +0 -0
  419. /package/dist/src/{wirings → functions/wirings}/channels/serialize-typed-channel-map.d.ts +0 -0
  420. /package/dist/src/{wirings → functions/wirings}/channels/serialize-websocket-wrapper.d.ts +0 -0
  421. /package/dist/src/{wirings → functions/wirings}/channels/serialize-websocket-wrapper.js +0 -0
  422. /package/dist/src/{wirings → functions/wirings}/functions/serialize-function-imports.d.ts +0 -0
  423. /package/dist/src/{wirings → functions/wirings}/http/serialize-fetch-wrapper.d.ts +0 -0
  424. /package/dist/src/{wirings → functions/wirings}/http/serialize-fetch-wrapper.js +0 -0
  425. /package/dist/src/{wirings → functions/wirings}/http/serialize-typed-http-map.d.ts +0 -0
  426. /package/dist/src/{wirings → functions/wirings}/mcp/serialize-mcp-json.js +0 -0
  427. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-map.d.ts +0 -0
  428. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-meta.d.ts +0 -0
  429. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-meta.js +0 -0
  430. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-wrapper.d.ts +0 -0
  431. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-wrapper.js +0 -0
  432. /package/dist/src/{wirings → functions/wirings}/rpc/serialize-rpc-wrapper.d.ts +0 -0
  433. /package/dist/src/{wirings → functions/wirings}/rpc/serialize-rpc-wrapper.js +0 -0
  434. /package/dist/src/{wirings → functions/wirings}/rpc/serialize-typed-rpc-map.d.ts +0 -0
  435. /package/dist/src/{wirings → functions/wirings}/scheduler/serialize-scheduler-meta.d.ts +0 -0
  436. /package/dist/src/{wirings → functions/wirings}/scheduler/serialize-scheduler-meta.js +0 -0
  437. /package/dist/src/{serialize-import-map.d.ts → utils/serialize-import-map.d.ts} +0 -0
  438. /package/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-backend-wrapper.ts +0 -0
  439. /package/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-http-wrapper.ts +0 -0
  440. /package/src/{wirings → functions/wirings}/channels/serialize-websocket-wrapper.ts +0 -0
  441. /package/src/{wirings → functions/wirings}/http/serialize-fetch-wrapper.ts +0 -0
  442. /package/src/{wirings → functions/wirings}/queue/serialize-queue-meta.ts +0 -0
  443. /package/src/{wirings → functions/wirings}/queue/serialize-queue-wrapper.ts +0 -0
  444. /package/src/{wirings → functions/wirings}/rpc/serialize-rpc-wrapper.ts +0 -0
  445. /package/src/{wirings → functions/wirings}/scheduler/serialize-scheduler-meta.ts +0 -0
@@ -0,0 +1,259 @@
1
+ /**
2
+ * This file was generated by the @pikku/cli
3
+ */
4
+ /**
5
+ * This file was generated by the @pikku/cli
6
+ * Core function, middleware, and permission types for all wirings
7
+ */
8
+ import { CorePikkuFunctionConfig, CorePikkuPermission, CorePikkuMiddleware } from '@pikku/core';
9
+ import { CorePikkuFunction, CorePikkuFunctionSessionless } from '@pikku/core/function';
10
+ import { PikkuChannel, PikkuMCP } from '@pikku/core';
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 { TypedPikkuRPC } from '../rpc/pikku-rpc-wirings-map.internal.gen.d.js';
15
+ type Session = UserSession;
16
+ /**
17
+ * Type-safe API permission definition that integrates with your application's session type.
18
+ * Use this to define authorization logic for your API endpoints.
19
+ *
20
+ * @template In - The input type that the permission check will receive
21
+ * @template RequiredServices - The services required for this permission check
22
+ */
23
+ export type PikkuPermission<In = unknown, RequiredServices extends Services = Services> = CorePikkuPermission<In, RequiredServices, Session>;
24
+ /**
25
+ * Type-safe middleware definition that can access your application's services and session.
26
+ * Use this to define reusable middleware that can be applied to multiple wirings.
27
+ *
28
+ * @template RequiredServices - The services required for this middleware
29
+ */
30
+ export type PikkuMiddleware<RequiredServices extends SingletonServices = SingletonServices> = CorePikkuMiddleware<RequiredServices, Session>;
31
+ /**
32
+ * Factory function for creating permissions with tree-shaking support.
33
+ * This enables the bundler to detect which services your permission actually uses.
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * const permission = pikkuPermission(({ logger }, data, session) => {
38
+ * return session?.isAdmin || false
39
+ * })
40
+ * ```
41
+ */
42
+ export declare const pikkuPermission: <In>(func: PikkuPermission<In>) => PikkuPermission<In, Services>;
43
+ /**
44
+ * Factory function for creating middleware with tree-shaking support.
45
+ * This enables the bundler to detect which services your middleware actually uses.
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * const middleware = pikkuMiddleware(({ logger }, interactions, next) => {
50
+ * logger.info('Middleware executed')
51
+ * await next()
52
+ * })
53
+ * ```
54
+ */
55
+ export declare const pikkuMiddleware: (func: PikkuMiddleware) => PikkuMiddleware<SingletonServices>;
56
+ /**
57
+ * Factory function for creating middleware factories
58
+ * Use this when your middleware needs configuration/input parameters
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * export const logMiddleware = pikkuMiddlewareFactory<LogOptions>(({
63
+ * message,
64
+ * level = 'info'
65
+ * }) => {
66
+ * return pikkuMiddleware(async ({ logger }, _interaction, next) => {
67
+ * logger[level](message)
68
+ * await next()
69
+ * })
70
+ * })
71
+ * ```
72
+ */
73
+ export declare const pikkuMiddlewareFactory: <In = any>(factory: (input: In) => PikkuMiddleware) => ((input: In) => PikkuMiddleware);
74
+ /**
75
+ * A sessionless API function that doesn't require user authentication.
76
+ * Use this for public endpoints, health checks, or operations that don't need user context.
77
+ *
78
+ * @template In - The input type
79
+ * @template Out - The output type that the function returns
80
+ * @template ChannelData - Channel data type (null = optional channel)
81
+ * @template MCPData - MCP data type (null = optional MCP)
82
+ * @template RequiredServices - Services required by this function
83
+ */
84
+ export type PikkuFunctionSessionless<In = unknown, Out = never, ChannelData = null, // null means optional channel
85
+ MCPData = null, // null means optional MCP
86
+ RequiredServices extends Services = Services & {
87
+ rpc: TypedPikkuRPC;
88
+ } & ([
89
+ ChannelData
90
+ ] extends [null] ? {
91
+ channel?: PikkuChannel<unknown, Out>;
92
+ } : {
93
+ channel: PikkuChannel<ChannelData, Out>;
94
+ }) & ([MCPData] extends [null] ? {
95
+ mcp?: PikkuMCP;
96
+ } : {
97
+ mcp: PikkuMCP;
98
+ })> = CorePikkuFunctionSessionless<In, Out, ChannelData, RequiredServices, Session>;
99
+ /**
100
+ * A session-aware API function that requires user authentication.
101
+ * Use this for protected endpoints that need access to user session data.
102
+ *
103
+ * @template In - The input type
104
+ * @template Out - The output type that the function returns
105
+ * @template ChannelData - Channel data type (null = optional channel)
106
+ * @template MCPData - MCP data type (null = optional MCP)
107
+ * @template RequiredServices - Services required by this function
108
+ */
109
+ export type PikkuFunction<In = unknown, Out = never, ChannelData = null, // null means optional channel
110
+ MCPData = null, // null means optional MCP
111
+ RequiredServices extends Services = Omit<Services, 'rpc'> & {
112
+ rpc: TypedPikkuRPC;
113
+ } & ([
114
+ ChannelData
115
+ ] extends [null] ? {
116
+ channel?: PikkuChannel<unknown, Out>;
117
+ } : {
118
+ channel: PikkuChannel<ChannelData, Out>;
119
+ }) & ([MCPData] extends [null] ? {
120
+ mcp?: PikkuMCP;
121
+ } : {
122
+ mcp: PikkuMCP;
123
+ })> = CorePikkuFunction<In, Out, ChannelData, RequiredServices, Session>;
124
+ /**
125
+ * Configuration object for Pikku functions with optional middleware, permissions, tags, and documentation.
126
+ * This type wraps CorePikkuFunctionConfig with the user's custom types.
127
+ *
128
+ * @template In - The input type
129
+ * @template Out - The output type
130
+ * @template PikkuFunc - The function type (can be narrowed to PikkuFunction or PikkuFunctionSessionless)
131
+ */
132
+ export type PikkuFunctionConfig<In = unknown, Out = unknown, PikkuFunc extends PikkuFunction<In, Out> | PikkuFunctionSessionless<In, Out> = PikkuFunction<In, Out> | PikkuFunctionSessionless<In, Out>> = CorePikkuFunctionConfig<PikkuFunc, PikkuPermission<In>, PikkuMiddleware>;
133
+ /**
134
+ * Creates a Pikku function that can be either session-aware or sessionless.
135
+ * This is the main function wrapper for creating API endpoints.
136
+ *
137
+ * @template In - Input type for the function
138
+ * @template Out - Output type for the function
139
+ * @param func - Function definition, either direct function or configuration object
140
+ * @returns The normalized configuration object
141
+ *
142
+ * @example
143
+ * \`\`\`typescript
144
+ * const createUser = pikkuFunc<{name: string, email: string}, {id: number, message: string}>({
145
+ * func: async ({db, logger}, input) => {
146
+ * logger.info('Creating user', input.name)
147
+ * const user = await db.users.create(input)
148
+ * return {id: user.id, message: \`User \${input.name} created successfully\`}
149
+ * },
150
+ * auth: true
151
+ * })
152
+ * \`\`\`
153
+ */
154
+ export declare const pikkuFunc: <In, Out = unknown>(func: PikkuFunction<In, Out> | CorePikkuFunctionConfig<PikkuFunction<In, Out>, PikkuPermission<In>>) => CorePikkuFunctionConfig<PikkuFunction<In, Out, null, null, Omit<Services, "rpc"> & {
155
+ rpc: TypedPikkuRPC;
156
+ } & {
157
+ channel?: PikkuChannel<unknown, Out> | undefined;
158
+ } & {
159
+ mcp?: PikkuMCP;
160
+ }>, PikkuPermission<In, Services>>;
161
+ /**
162
+ * Creates a sessionless Pikku function that doesn't require user authentication.
163
+ * Use this for public endpoints, webhooks, or background tasks.
164
+ *
165
+ * @template In - Input type for the function
166
+ * @template Out - Output type for the function
167
+ * @param func - Function definition, either direct function or configuration object
168
+ * @returns The normalized configuration object
169
+ *
170
+ * @example
171
+ * \`\`\`typescript
172
+ * const healthCheck = pikkuSessionlessFunc<void, {status: string, timestamp: string}>({
173
+ * func: async ({logger}) => {
174
+ * logger.info('Health check requested')
175
+ * return {status: 'healthy', timestamp: new Date().toISOString()}
176
+ * },
177
+ * name: 'healthCheck'
178
+ * })
179
+ * \`\`\`
180
+ */
181
+ export declare const pikkuSessionlessFunc: <In, Out = unknown>(func: PikkuFunctionSessionless<In, Out> | CorePikkuFunctionConfig<PikkuFunctionSessionless<In, Out>, PikkuPermission<In>, PikkuMiddleware>) => CorePikkuFunctionConfig<PikkuFunctionSessionless<In, Out, null, null, Services & {
182
+ rpc: TypedPikkuRPC;
183
+ } & {
184
+ channel?: PikkuChannel<unknown, Out> | undefined;
185
+ } & {
186
+ mcp?: PikkuMCP;
187
+ }>, PikkuPermission<In, Services>, PikkuMiddleware<SingletonServices>>;
188
+ /**
189
+ * Creates a function that takes no input and returns no output.
190
+ * Useful for health checks, triggers, or cleanup operations.
191
+ *
192
+ * @param func - Function definition, either direct function or configuration object
193
+ * @returns The normalized configuration object
194
+ *
195
+ * @example
196
+ * \`\`\`typescript
197
+ * const cleanupTempFiles = pikkuVoidFunc(async ({fileSystem, logger}) => {
198
+ * logger.info('Starting cleanup of temporary files')
199
+ * await fileSystem.deleteDirectory('/tmp/uploads')
200
+ * logger.info('Cleanup completed')
201
+ * })
202
+ * \`\`\`
203
+ */
204
+ export declare const pikkuVoidFunc: (func: PikkuFunctionSessionless<void, void> | CorePikkuFunctionConfig<PikkuFunctionSessionless<void, void>, PikkuPermission<void>>) => CorePikkuFunctionConfig<PikkuFunctionSessionless<void, void, null, null, Services & {
205
+ rpc: TypedPikkuRPC;
206
+ } & {
207
+ channel?: PikkuChannel<unknown, void> | undefined;
208
+ } & {
209
+ mcp?: PikkuMCP;
210
+ }>, PikkuPermission<void, Services>>;
211
+ /**
212
+ * Adds global middleware for a specific tag.
213
+ *
214
+ * This function allows you to register middleware that will be applied to
215
+ * any wiring (HTTP, Channel, Queue, Scheduler, MCP) that includes the matching tag.
216
+ *
217
+ * @param tag - The tag that the middleware should apply to.
218
+ * @param middleware - The middleware array to apply for the specified tag.
219
+ *
220
+ * @throws Error if middleware for the tag already exists.
221
+ *
222
+ * @example
223
+ * ```typescript
224
+ * // Add admin middleware for admin endpoints
225
+ * addMiddleware('admin', [adminMiddleware])
226
+ *
227
+ * // Add authentication middleware for auth endpoints
228
+ * addMiddleware('auth', [authMiddleware])
229
+ *
230
+ * // Add logging middleware for all API endpoints
231
+ * addMiddleware('api', [loggingMiddleware])
232
+ * ```
233
+ */
234
+ export declare const addMiddleware: (tag: string, middleware: PikkuMiddleware[]) => void;
235
+ /**
236
+ * Adds global permissions for a specific tag.
237
+ *
238
+ * This function allows you to register permissions that will be applied to
239
+ * any wiring (HTTP, Channel, Queue, Scheduler, MCP) that includes the matching tag.
240
+ *
241
+ * @param tag - The tag that the permissions should apply to.
242
+ * @param permissions - The permissions array to apply for the specified tag.
243
+ *
244
+ * @throws Error if permissions for the tag already exist.
245
+ *
246
+ * @example
247
+ * ```typescript
248
+ * // Add admin permissions for admin endpoints
249
+ * addPermission('admin', [adminPermission])
250
+ *
251
+ * // Add authentication permissions for auth endpoints
252
+ * addPermission('auth', [authPermission])
253
+ *
254
+ * // Add read permissions for all API endpoints
255
+ * addPermission('api', [readPermission])
256
+ * ```
257
+ */
258
+ export declare const addPermission: <In = unknown>(tag: string, permissions: PikkuPermission<In>[]) => void;
259
+ export {};
@@ -0,0 +1,175 @@
1
+ /**
2
+ * This file was generated by the @pikku/cli
3
+ */
4
+ /**
5
+ * This file was generated by the @pikku/cli
6
+ * Core function, middleware, and permission types for all wirings
7
+ */
8
+ import { addMiddleware as addMiddlewareCore, addPermission as addPermissionCore } from '@pikku/core';
9
+ /**
10
+ * Factory function for creating permissions with tree-shaking support.
11
+ * This enables the bundler to detect which services your permission actually uses.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const permission = pikkuPermission(({ logger }, data, session) => {
16
+ * return session?.isAdmin || false
17
+ * })
18
+ * ```
19
+ */
20
+ export const pikkuPermission = (func) => {
21
+ return func;
22
+ };
23
+ /**
24
+ * Factory function for creating middleware with tree-shaking support.
25
+ * This enables the bundler to detect which services your middleware actually uses.
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * const middleware = pikkuMiddleware(({ logger }, interactions, next) => {
30
+ * logger.info('Middleware executed')
31
+ * await next()
32
+ * })
33
+ * ```
34
+ */
35
+ export const pikkuMiddleware = (func) => {
36
+ return func;
37
+ };
38
+ /**
39
+ * Factory function for creating middleware factories
40
+ * Use this when your middleware needs configuration/input parameters
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * export const logMiddleware = pikkuMiddlewareFactory<LogOptions>(({
45
+ * message,
46
+ * level = 'info'
47
+ * }) => {
48
+ * return pikkuMiddleware(async ({ logger }, _interaction, next) => {
49
+ * logger[level](message)
50
+ * await next()
51
+ * })
52
+ * })
53
+ * ```
54
+ */
55
+ export const pikkuMiddlewareFactory = (factory) => {
56
+ return factory;
57
+ };
58
+ /**
59
+ * Creates a Pikku function that can be either session-aware or sessionless.
60
+ * This is the main function wrapper for creating API endpoints.
61
+ *
62
+ * @template In - Input type for the function
63
+ * @template Out - Output type for the function
64
+ * @param func - Function definition, either direct function or configuration object
65
+ * @returns The normalized configuration object
66
+ *
67
+ * @example
68
+ * \`\`\`typescript
69
+ * const createUser = pikkuFunc<{name: string, email: string}, {id: number, message: string}>({
70
+ * func: async ({db, logger}, input) => {
71
+ * logger.info('Creating user', input.name)
72
+ * const user = await db.users.create(input)
73
+ * return {id: user.id, message: \`User \${input.name} created successfully\`}
74
+ * },
75
+ * auth: true
76
+ * })
77
+ * \`\`\`
78
+ */
79
+ export const pikkuFunc = (func) => {
80
+ return typeof func === 'function' ? { func } : func;
81
+ };
82
+ /**
83
+ * Creates a sessionless Pikku function that doesn't require user authentication.
84
+ * Use this for public endpoints, webhooks, or background tasks.
85
+ *
86
+ * @template In - Input type for the function
87
+ * @template Out - Output type for the function
88
+ * @param func - Function definition, either direct function or configuration object
89
+ * @returns The normalized configuration object
90
+ *
91
+ * @example
92
+ * \`\`\`typescript
93
+ * const healthCheck = pikkuSessionlessFunc<void, {status: string, timestamp: string}>({
94
+ * func: async ({logger}) => {
95
+ * logger.info('Health check requested')
96
+ * return {status: 'healthy', timestamp: new Date().toISOString()}
97
+ * },
98
+ * name: 'healthCheck'
99
+ * })
100
+ * \`\`\`
101
+ */
102
+ export const pikkuSessionlessFunc = (func) => {
103
+ return typeof func === 'function' ? { func } : func;
104
+ };
105
+ /**
106
+ * Creates a function that takes no input and returns no output.
107
+ * Useful for health checks, triggers, or cleanup operations.
108
+ *
109
+ * @param func - Function definition, either direct function or configuration object
110
+ * @returns The normalized configuration object
111
+ *
112
+ * @example
113
+ * \`\`\`typescript
114
+ * const cleanupTempFiles = pikkuVoidFunc(async ({fileSystem, logger}) => {
115
+ * logger.info('Starting cleanup of temporary files')
116
+ * await fileSystem.deleteDirectory('/tmp/uploads')
117
+ * logger.info('Cleanup completed')
118
+ * })
119
+ * \`\`\`
120
+ */
121
+ export const pikkuVoidFunc = (func) => {
122
+ return typeof func === 'function' ? { func } : func;
123
+ };
124
+ /**
125
+ * Adds global middleware for a specific tag.
126
+ *
127
+ * This function allows you to register middleware that will be applied to
128
+ * any wiring (HTTP, Channel, Queue, Scheduler, MCP) that includes the matching tag.
129
+ *
130
+ * @param tag - The tag that the middleware should apply to.
131
+ * @param middleware - The middleware array to apply for the specified tag.
132
+ *
133
+ * @throws Error if middleware for the tag already exists.
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * // Add admin middleware for admin endpoints
138
+ * addMiddleware('admin', [adminMiddleware])
139
+ *
140
+ * // Add authentication middleware for auth endpoints
141
+ * addMiddleware('auth', [authMiddleware])
142
+ *
143
+ * // Add logging middleware for all API endpoints
144
+ * addMiddleware('api', [loggingMiddleware])
145
+ * ```
146
+ */
147
+ export const addMiddleware = (tag, middleware) => {
148
+ addMiddlewareCore(tag, middleware);
149
+ };
150
+ /**
151
+ * Adds global permissions for a specific tag.
152
+ *
153
+ * This function allows you to register permissions that will be applied to
154
+ * any wiring (HTTP, Channel, Queue, Scheduler, MCP) that includes the matching tag.
155
+ *
156
+ * @param tag - The tag that the permissions should apply to.
157
+ * @param permissions - The permissions array to apply for the specified tag.
158
+ *
159
+ * @throws Error if permissions for the tag already exist.
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * // Add admin permissions for admin endpoints
164
+ * addPermission('admin', [adminPermission])
165
+ *
166
+ * // Add authentication permissions for auth endpoints
167
+ * addPermission('auth', [authPermission])
168
+ *
169
+ * // Add read permissions for all API endpoints
170
+ * addPermission('api', [readPermission])
171
+ * ```
172
+ */
173
+ export const addPermission = (tag, permissions) => {
174
+ addPermissionCore(tag, permissions);
175
+ };
@@ -0,0 +1 @@
1
+ export {};