@pikku/cli 0.9.15 → 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 (443) 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 +9 -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/services/cli-logger-forwarder.service.d.ts +26 -0
  198. package/dist/src/services/cli-logger-forwarder.service.js +55 -0
  199. package/dist/src/services/cli-logger.service.d.ts +19 -0
  200. package/dist/src/services/cli-logger.service.js +66 -0
  201. package/dist/src/services.d.ts +15 -0
  202. package/dist/src/services.js +64 -0
  203. package/dist/src/utils/check-required-types.d.ts +10 -0
  204. package/dist/src/utils/check-required-types.js +31 -0
  205. package/dist/src/utils/custom-types-generator.d.ts +2 -0
  206. package/dist/src/utils/custom-types-generator.js +37 -0
  207. package/dist/src/utils/file-import-path.d.ts +1 -0
  208. package/dist/src/utils/file-import-path.js +43 -0
  209. package/dist/src/utils/file-imports-serializer.d.ts +1 -0
  210. package/dist/src/utils/file-imports-serializer.js +13 -0
  211. package/dist/src/utils/file-writer.d.ts +6 -0
  212. package/dist/src/utils/file-writer.js +40 -0
  213. package/dist/src/utils/generate-bootstrap-file.d.ts +3 -0
  214. package/dist/src/utils/generate-bootstrap-file.js +21 -0
  215. package/dist/src/utils/pikku-cli-config.d.ts +5 -0
  216. package/dist/src/utils/pikku-cli-config.js +243 -0
  217. package/dist/src/utils/pikku-files-and-methods.d.ts +21 -0
  218. package/dist/src/utils/pikku-files-and-methods.js +70 -0
  219. package/dist/src/{schema-generator.d.ts → utils/schema-generator.d.ts} +1 -1
  220. package/dist/src/{schema-generator.js → utils/schema-generator.js} +1 -1
  221. package/dist/src/{serialize-import-map.js → utils/serialize-import-map.js} +1 -1
  222. package/dist/tsconfig.tsbuildinfo +1 -1
  223. package/package.json +6 -6
  224. package/pikku.config.json +24 -0
  225. package/src/cli.wiring.ts +75 -0
  226. package/src/functions/commands/all.ts +141 -0
  227. package/src/functions/commands/watch.ts +58 -0
  228. package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +111 -0
  229. package/src/functions/wirings/channels/pikku-channels.ts +40 -0
  230. package/src/functions/wirings/channels/pikku-command-channel-types.ts +27 -0
  231. package/src/functions/wirings/channels/pikku-command-channels-map.ts +31 -0
  232. package/src/functions/wirings/channels/pikku-command-channels.ts +45 -0
  233. package/src/functions/wirings/channels/pikku-command-websocket-typed.ts +33 -0
  234. package/src/functions/wirings/channels/serialize-channel-types.ts +95 -0
  235. package/src/{wirings → functions/wirings}/channels/serialize-typed-channel-map.ts +2 -2
  236. package/src/functions/wirings/cli/pikku-command-cli-entry.ts +173 -0
  237. package/src/functions/wirings/cli/pikku-command-cli-types.ts +50 -0
  238. package/src/functions/wirings/cli/pikku-command-cli.ts +41 -0
  239. package/src/functions/wirings/cli/serialize-channel-cli-client.ts +72 -0
  240. package/src/functions/wirings/cli/serialize-channel-cli.ts +123 -0
  241. package/src/functions/wirings/cli/serialize-cli-types.ts +80 -0
  242. package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +75 -0
  243. package/src/functions/wirings/fetch/index.ts +32 -0
  244. package/src/functions/wirings/functions/pikku-command-function-types-split.ts +51 -0
  245. package/src/functions/wirings/functions/pikku-command-function-types.ts +45 -0
  246. package/src/functions/wirings/functions/pikku-command-functions.ts +61 -0
  247. package/src/{wirings → functions/wirings}/functions/pikku-command-services.ts +41 -44
  248. package/src/functions/wirings/functions/pikku-function-types.ts +45 -0
  249. package/src/functions/wirings/functions/schemas.ts +47 -0
  250. package/src/{wirings → functions/wirings}/functions/serialize-function-imports.ts +4 -30
  251. package/src/functions/wirings/functions/serialize-function-types.ts +303 -0
  252. package/src/functions/wirings/functions/serialize-pikku-types-hub.ts +39 -0
  253. package/src/{wirings → functions/wirings}/http/openapi-spec-generator.ts +3 -1
  254. package/src/functions/wirings/http/pikku-command-http-map.ts +32 -0
  255. package/src/functions/wirings/http/pikku-command-http-routes.ts +41 -0
  256. package/src/functions/wirings/http/pikku-command-http-types.ts +27 -0
  257. package/src/functions/wirings/http/pikku-command-openapi.ts +57 -0
  258. package/src/functions/wirings/http/pikku-http-routes.ts +40 -0
  259. package/src/functions/wirings/http/serialize-http-types.ts +64 -0
  260. package/src/{wirings → functions/wirings}/http/serialize-typed-http-map.ts +2 -2
  261. package/src/functions/wirings/mcp/pikku-command-mcp-json.ts +38 -0
  262. package/src/functions/wirings/mcp/pikku-command-mcp-types.ts +27 -0
  263. package/src/{wirings → functions/wirings}/mcp/pikku-command-mcp.ts +55 -46
  264. package/src/{wirings → functions/wirings}/mcp/serialize-mcp-json.ts +1 -1
  265. package/src/functions/wirings/mcp/serialize-mcp-types.ts +141 -0
  266. package/src/functions/wirings/middleware/pikku-command-middleware.ts +65 -0
  267. package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +61 -0
  268. package/src/functions/wirings/middleware/serialize-middleware-imports.ts +78 -0
  269. package/src/functions/wirings/queue/pikku-command-queue-map.ts +31 -0
  270. package/src/functions/wirings/queue/pikku-command-queue-service.ts +33 -0
  271. package/src/functions/wirings/queue/pikku-command-queue-types.ts +27 -0
  272. package/src/functions/wirings/queue/pikku-command-queue.ts +46 -0
  273. package/src/functions/wirings/queue/pikku-queue-map.ts +31 -0
  274. package/src/functions/wirings/queue/pikku-queue.ts +44 -0
  275. package/src/{wirings → functions/wirings}/queue/serialize-queue-map.ts +2 -2
  276. package/src/functions/wirings/queue/serialize-queue-types.ts +31 -0
  277. package/src/functions/wirings/rpc/pikku-command-rpc-client.ts +32 -0
  278. package/src/functions/wirings/rpc/pikku-command-rpc-map.ts +52 -0
  279. package/src/functions/wirings/rpc/pikku-command-rpc.ts +28 -0
  280. package/src/{wirings → functions/wirings}/rpc/serialize-typed-rpc-map.ts +2 -2
  281. package/src/functions/wirings/scheduler/pikku-command-scheduler-types.ts +27 -0
  282. package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +46 -0
  283. package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +29 -0
  284. package/src/middleware/log-command-info-and-time.ts +61 -0
  285. package/src/services/cli-logger-forwarder.service.ts +77 -0
  286. package/src/services/cli-logger.service.ts +78 -0
  287. package/src/services.ts +111 -0
  288. package/src/utils/check-required-types.ts +53 -0
  289. package/src/utils/custom-types-generator.ts +49 -0
  290. package/src/{utils.test.ts → utils/file-import-path.test.ts} +1 -1
  291. package/src/utils/file-import-path.ts +53 -0
  292. package/src/utils/file-imports-serializer.ts +25 -0
  293. package/src/utils/file-writer.ts +56 -0
  294. package/src/utils/generate-bootstrap-file.ts +43 -0
  295. package/src/utils/pikku-cli-config.ts +356 -0
  296. package/src/utils/pikku-files-and-methods.ts +148 -0
  297. package/src/{schema-generator.ts → utils/schema-generator.ts} +3 -1
  298. package/src/{serialize-import-map.ts → utils/serialize-import-map.ts} +1 -1
  299. package/tsconfig.json +2 -2
  300. package/types/application-types.d.ts +20 -0
  301. package/types/config.d.ts +192 -0
  302. package/bin/pikku-all.ts +0 -349
  303. package/bin/pikku-fetch.ts +0 -27
  304. package/bin/pikku-nextjs.ts +0 -44
  305. package/bin/pikku-openapi.ts +0 -31
  306. package/bin/pikku-queue-service.ts +0 -28
  307. package/bin/pikku-rpc.ts +0 -28
  308. package/bin/pikku-schemas.ts +0 -31
  309. package/bin/pikku-websocket.ts +0 -28
  310. package/dist/bin/pikku-all.d.ts +0 -4
  311. package/dist/bin/pikku-all.js +0 -194
  312. package/dist/bin/pikku-fetch.d.ts +0 -4
  313. package/dist/bin/pikku-fetch.js +0 -19
  314. package/dist/bin/pikku-nextjs.d.ts +0 -4
  315. package/dist/bin/pikku-nextjs.js +0 -24
  316. package/dist/bin/pikku-openapi.d.ts +0 -2
  317. package/dist/bin/pikku-openapi.js +0 -19
  318. package/dist/bin/pikku-queue-service.d.ts +0 -4
  319. package/dist/bin/pikku-queue-service.js +0 -19
  320. package/dist/bin/pikku-rpc.d.ts +0 -4
  321. package/dist/bin/pikku-rpc.js +0 -19
  322. package/dist/bin/pikku-schemas.d.ts +0 -2
  323. package/dist/bin/pikku-schemas.js +0 -21
  324. package/dist/bin/pikku-websocket.d.ts +0 -4
  325. package/dist/bin/pikku-websocket.js +0 -19
  326. package/dist/src/inspector-glob.d.ts +0 -2
  327. package/dist/src/inspector-glob.js +0 -12
  328. package/dist/src/pikku-cli-config.d.ts +0 -56
  329. package/dist/src/pikku-cli-config.js +0 -203
  330. package/dist/src/pikku-command-schemas.d.ts +0 -2
  331. package/dist/src/pikku-command-schemas.js +0 -8
  332. package/dist/src/runtimes/nextjs/pikku-command-nextjs.d.ts +0 -2
  333. package/dist/src/schemas.d.ts +0 -2
  334. package/dist/src/schemas.js +0 -8
  335. package/dist/src/types.d.ts +0 -5
  336. package/dist/src/utils.d.ts +0 -60
  337. package/dist/src/utils.js +0 -248
  338. package/dist/src/wirings/channels/pikku-channels.d.ts +0 -2
  339. package/dist/src/wirings/channels/pikku-channels.js +0 -9
  340. package/dist/src/wirings/channels/pikku-command-channels-map.d.ts +0 -2
  341. package/dist/src/wirings/channels/pikku-command-channels-map.js +0 -8
  342. package/dist/src/wirings/channels/pikku-command-channels.d.ts +0 -2
  343. package/dist/src/wirings/channels/pikku-command-channels.js +0 -9
  344. package/dist/src/wirings/channels/pikku-command-websocket-typed.d.ts +0 -2
  345. package/dist/src/wirings/channels/pikku-command-websocket-typed.js +0 -15
  346. package/dist/src/wirings/fetch/index.d.ts +0 -2
  347. package/dist/src/wirings/fetch/index.js +0 -12
  348. package/dist/src/wirings/functions/pikku-command-function-types.d.ts +0 -2
  349. package/dist/src/wirings/functions/pikku-command-function-types.js +0 -13
  350. package/dist/src/wirings/functions/pikku-command-functions.d.ts +0 -2
  351. package/dist/src/wirings/functions/pikku-command-functions.js +0 -14
  352. package/dist/src/wirings/functions/pikku-function-types.d.ts +0 -2
  353. package/dist/src/wirings/functions/pikku-function-types.js +0 -13
  354. package/dist/src/wirings/http/pikku-command-http-map.d.ts +0 -2
  355. package/dist/src/wirings/http/pikku-command-http-map.js +0 -8
  356. package/dist/src/wirings/http/pikku-command-http-routes.d.ts +0 -2
  357. package/dist/src/wirings/http/pikku-command-http-routes.js +0 -9
  358. package/dist/src/wirings/http/pikku-command-openapi.d.ts +0 -2
  359. package/dist/src/wirings/http/pikku-command-openapi.js +0 -20
  360. package/dist/src/wirings/http/pikku-http-routes.d.ts +0 -2
  361. package/dist/src/wirings/http/pikku-http-routes.js +0 -9
  362. package/dist/src/wirings/mcp/pikku-command-mcp-json.d.ts +0 -2
  363. package/dist/src/wirings/mcp/pikku-command-mcp-json.js +0 -13
  364. package/dist/src/wirings/mcp/pikku-command-mcp.d.ts +0 -2
  365. package/dist/src/wirings/queue/pikku-command-queue-map.d.ts +0 -2
  366. package/dist/src/wirings/queue/pikku-command-queue-map.js +0 -8
  367. package/dist/src/wirings/queue/pikku-command-queue-service.d.ts +0 -2
  368. package/dist/src/wirings/queue/pikku-command-queue-service.js +0 -15
  369. package/dist/src/wirings/queue/pikku-command-queue.d.ts +0 -2
  370. package/dist/src/wirings/queue/pikku-command-queue.js +0 -10
  371. package/dist/src/wirings/queue/pikku-queue-map.d.ts +0 -2
  372. package/dist/src/wirings/queue/pikku-queue-map.js +0 -8
  373. package/dist/src/wirings/queue/pikku-queue.d.ts +0 -2
  374. package/dist/src/wirings/queue/pikku-queue.js +0 -10
  375. package/dist/src/wirings/rpc/pikku-command-rpc-client.d.ts +0 -2
  376. package/dist/src/wirings/rpc/pikku-command-rpc-client.js +0 -15
  377. package/dist/src/wirings/rpc/pikku-command-rpc-map.d.ts +0 -3
  378. package/dist/src/wirings/rpc/pikku-command-rpc-map.js +0 -14
  379. package/dist/src/wirings/rpc/pikku-command-rpc.d.ts +0 -2
  380. package/dist/src/wirings/rpc/pikku-command-rpc.js +0 -8
  381. package/dist/src/wirings/scheduler/pikku-command-scheduler.d.ts +0 -2
  382. package/dist/src/wirings/scheduler/pikku-command-scheduler.js +0 -10
  383. package/src/inspector-glob.ts +0 -30
  384. package/src/pikku-cli-config.ts +0 -387
  385. package/src/pikku-command-schemas.ts +0 -35
  386. package/src/runtimes/nextjs/pikku-command-nextjs.ts +0 -110
  387. package/src/schemas.ts +0 -35
  388. package/src/types.ts +0 -16
  389. package/src/utils.ts +0 -420
  390. package/src/wirings/channels/pikku-channels.ts +0 -41
  391. package/src/wirings/channels/pikku-command-channels-map.ts +0 -26
  392. package/src/wirings/channels/pikku-command-channels.ts +0 -39
  393. package/src/wirings/channels/pikku-command-websocket-typed.ts +0 -36
  394. package/src/wirings/fetch/index.ts +0 -33
  395. package/src/wirings/functions/pikku-command-function-types.ts +0 -53
  396. package/src/wirings/functions/pikku-command-functions.ts +0 -48
  397. package/src/wirings/functions/pikku-function-types.ts +0 -52
  398. package/src/wirings/http/pikku-command-http-map.ts +0 -27
  399. package/src/wirings/http/pikku-command-http-routes.ts +0 -40
  400. package/src/wirings/http/pikku-command-openapi.ts +0 -55
  401. package/src/wirings/http/pikku-http-routes.ts +0 -40
  402. package/src/wirings/mcp/pikku-command-mcp-json.ts +0 -33
  403. package/src/wirings/queue/pikku-command-queue-map.ts +0 -26
  404. package/src/wirings/queue/pikku-command-queue-service.ts +0 -36
  405. package/src/wirings/queue/pikku-command-queue.ts +0 -45
  406. package/src/wirings/queue/pikku-queue-map.ts +0 -26
  407. package/src/wirings/queue/pikku-queue.ts +0 -43
  408. package/src/wirings/rpc/pikku-command-rpc-client.ts +0 -35
  409. package/src/wirings/rpc/pikku-command-rpc-map.ts +0 -49
  410. package/src/wirings/rpc/pikku-command-rpc.ts +0 -24
  411. package/src/wirings/scheduler/pikku-command-scheduler.ts +0 -43
  412. /package/dist/{src/types.js → .pikku/cli/pikku-cli-wirings-meta.gen.d.ts} +0 -0
  413. /package/dist/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-backend-wrapper.d.ts +0 -0
  414. /package/dist/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-backend-wrapper.js +0 -0
  415. /package/dist/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-http-wrapper.d.ts +0 -0
  416. /package/dist/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-http-wrapper.js +0 -0
  417. /package/dist/src/{wirings → functions/wirings}/channels/serialize-typed-channel-map.d.ts +0 -0
  418. /package/dist/src/{wirings → functions/wirings}/channels/serialize-websocket-wrapper.d.ts +0 -0
  419. /package/dist/src/{wirings → functions/wirings}/channels/serialize-websocket-wrapper.js +0 -0
  420. /package/dist/src/{wirings → functions/wirings}/functions/serialize-function-imports.d.ts +0 -0
  421. /package/dist/src/{wirings → functions/wirings}/http/serialize-fetch-wrapper.d.ts +0 -0
  422. /package/dist/src/{wirings → functions/wirings}/http/serialize-fetch-wrapper.js +0 -0
  423. /package/dist/src/{wirings → functions/wirings}/http/serialize-typed-http-map.d.ts +0 -0
  424. /package/dist/src/{wirings → functions/wirings}/mcp/serialize-mcp-json.js +0 -0
  425. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-map.d.ts +0 -0
  426. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-meta.d.ts +0 -0
  427. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-meta.js +0 -0
  428. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-wrapper.d.ts +0 -0
  429. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-wrapper.js +0 -0
  430. /package/dist/src/{wirings → functions/wirings}/rpc/serialize-rpc-wrapper.d.ts +0 -0
  431. /package/dist/src/{wirings → functions/wirings}/rpc/serialize-rpc-wrapper.js +0 -0
  432. /package/dist/src/{wirings → functions/wirings}/rpc/serialize-typed-rpc-map.d.ts +0 -0
  433. /package/dist/src/{wirings → functions/wirings}/scheduler/serialize-scheduler-meta.d.ts +0 -0
  434. /package/dist/src/{wirings → functions/wirings}/scheduler/serialize-scheduler-meta.js +0 -0
  435. /package/dist/src/{serialize-import-map.d.ts → utils/serialize-import-map.d.ts} +0 -0
  436. /package/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-backend-wrapper.ts +0 -0
  437. /package/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-http-wrapper.ts +0 -0
  438. /package/src/{wirings → functions/wirings}/channels/serialize-websocket-wrapper.ts +0 -0
  439. /package/src/{wirings → functions/wirings}/http/serialize-fetch-wrapper.ts +0 -0
  440. /package/src/{wirings → functions/wirings}/queue/serialize-queue-meta.ts +0 -0
  441. /package/src/{wirings → functions/wirings}/queue/serialize-queue-wrapper.ts +0 -0
  442. /package/src/{wirings → functions/wirings}/rpc/serialize-rpc-wrapper.ts +0 -0
  443. /package/src/{wirings → functions/wirings}/scheduler/serialize-scheduler-meta.ts +0 -0
@@ -0,0 +1,23 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
2
+ import { writeFileInDir } from '../../../utils/file-writer.js';
3
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
4
+ import { serializeQueueMap } from './serialize-queue-map.js';
5
+ export const pikkuQueueMap = pikkuSessionlessFunc({
6
+ func: async ({ logger, config, getInspectorState }) => {
7
+ const { queueWorkers, functions } = await getInspectorState();
8
+ const { queueMapDeclarationFile, packageMappings } = config;
9
+ const content = serializeQueueMap(queueMapDeclarationFile, packageMappings, functions.typesMap, functions.meta, queueWorkers.meta);
10
+ await writeFileInDir(logger, queueMapDeclarationFile, content);
11
+ },
12
+ middleware: [
13
+ logCommandInfoAndTime({
14
+ commandStart: 'Creating Queue map',
15
+ commandEnd: 'Created Queue map',
16
+ skipCondition: async ({ getInspectorState }) => {
17
+ const { queueWorkers } = await getInspectorState();
18
+ return queueWorkers.files.size === 0;
19
+ },
20
+ skipMessage: 'none found',
21
+ }),
22
+ ],
23
+ });
@@ -0,0 +1 @@
1
+ export declare const pikkuQueueService: any;
@@ -0,0 +1,24 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
2
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
3
+ import { writeFileInDir } from '../../../utils/file-writer.js';
4
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
+ import { serializeQueueWrapper } from './serialize-queue-wrapper.js';
6
+ export const pikkuQueueService = pikkuSessionlessFunc({
7
+ func: async ({ logger, config }) => {
8
+ const { queueWiringsFile, queueMapDeclarationFile, packageMappings } = config;
9
+ if (!queueWiringsFile) {
10
+ throw new Error("queueWiringsFile is isn't set in the pikku config");
11
+ }
12
+ const queueMapDeclarationPath = getFileImportRelativePath(queueWiringsFile, queueMapDeclarationFile, packageMappings);
13
+ const content = [serializeQueueWrapper(queueMapDeclarationPath)];
14
+ await writeFileInDir(logger, queueWiringsFile, content.join('\n'));
15
+ },
16
+ middleware: [
17
+ logCommandInfoAndTime({
18
+ commandStart: 'Generating queue service wrapper',
19
+ commandEnd: 'Generated queue service wrapper',
20
+ skipCondition: ({ config }) => config.queueWiringsFile === undefined,
21
+ skipMessage: "queueWiringsFile isn't set in the pikku config",
22
+ }),
23
+ ],
24
+ });
@@ -0,0 +1 @@
1
+ export declare const pikkuQueueTypes: any;
@@ -0,0 +1,21 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
2
+ import { writeFileInDir } from '../../../utils/file-writer.js';
3
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
4
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
+ import { serializeQueueTypes } from './serialize-queue-types.js';
6
+ export const pikkuQueueTypes = pikkuSessionlessFunc({
7
+ func: async ({ logger, config }) => {
8
+ const { queueTypesFile, functionTypesFile, packageMappings } = config;
9
+ const functionTypesImportPath = getFileImportRelativePath(queueTypesFile, functionTypesFile, packageMappings);
10
+ const content = serializeQueueTypes(functionTypesImportPath);
11
+ await writeFileInDir(logger, queueTypesFile, content);
12
+ },
13
+ middleware: [
14
+ logCommandInfoAndTime({
15
+ commandStart: 'Creating queue types',
16
+ commandEnd: 'Created queue types',
17
+ skipCondition: false,
18
+ skipMessage: '',
19
+ }),
20
+ ],
21
+ });
@@ -0,0 +1 @@
1
+ export declare const pikkuQueue: any;
@@ -0,0 +1,26 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
2
+ import { serializeFileImports } from '../../../utils/file-imports-serializer.js';
3
+ import { writeFileInDir } from '../../../utils/file-writer.js';
4
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
+ import { serializeQueueMeta } from './serialize-queue-meta.js';
6
+ export const pikkuQueue = pikkuSessionlessFunc({
7
+ func: async ({ logger, config, getInspectorState }) => {
8
+ const visitState = await getInspectorState();
9
+ const { queueWorkersWiringFile, queueWorkersWiringMetaFile, packageMappings, } = config;
10
+ const { queueWorkers } = visitState;
11
+ await writeFileInDir(logger, queueWorkersWiringMetaFile, serializeQueueMeta(queueWorkers.meta));
12
+ await writeFileInDir(logger, queueWorkersWiringFile, serializeFileImports('addQueueWorkers', queueWorkersWiringFile, queueWorkers.files, packageMappings));
13
+ return true;
14
+ },
15
+ middleware: [
16
+ logCommandInfoAndTime({
17
+ commandStart: 'Finding Queues',
18
+ commandEnd: 'Found Queues',
19
+ skipCondition: async ({ getInspectorState }) => {
20
+ const visitState = await getInspectorState();
21
+ return visitState.queueWorkers.files.size === 0;
22
+ },
23
+ skipMessage: 'none found',
24
+ }),
25
+ ],
26
+ });
@@ -0,0 +1 @@
1
+ export declare const pikkuQueueMap: any;
@@ -0,0 +1,23 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
2
+ import { writeFileInDir } from '../../../utils/file-writer.js';
3
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
4
+ import { serializeQueueMap } from './serialize-queue-map.js';
5
+ export const pikkuQueueMap = pikkuSessionlessFunc({
6
+ func: async ({ logger, config, getInspectorState }) => {
7
+ const { queueWorkers, functions } = await getInspectorState();
8
+ const { queueMapDeclarationFile, packageMappings } = config;
9
+ const content = serializeQueueMap(queueMapDeclarationFile, packageMappings, functions.typesMap, functions.meta, queueWorkers.meta);
10
+ await writeFileInDir(logger, queueMapDeclarationFile, content);
11
+ },
12
+ middleware: [
13
+ logCommandInfoAndTime({
14
+ commandStart: 'Creating Queue map',
15
+ commandEnd: 'Created Queue map',
16
+ skipCondition: async ({ getInspectorState }) => {
17
+ const { queueWorkers } = await getInspectorState();
18
+ return queueWorkers.files.size === 0;
19
+ },
20
+ skipMessage: 'none found',
21
+ }),
22
+ ],
23
+ });
@@ -0,0 +1 @@
1
+ export declare const pikkuQueue: any;
@@ -0,0 +1,25 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
2
+ import { serializeFileImports } from '../../../utils/file-imports-serializer.js';
3
+ import { writeFileInDir } from '../../../utils/file-writer.js';
4
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
+ import { serializeQueueMeta } from './serialize-queue-meta.js';
6
+ export const pikkuQueue = pikkuSessionlessFunc({
7
+ func: async ({ logger, config, getInspectorState }) => {
8
+ const visitState = await getInspectorState();
9
+ const { queueWorkersWiringFile, queueWorkersWiringMetaFile, packageMappings, } = config;
10
+ const { queueWorkers } = visitState;
11
+ await writeFileInDir(logger, queueWorkersWiringMetaFile, serializeQueueMeta(queueWorkers.meta));
12
+ await writeFileInDir(logger, queueWorkersWiringFile, serializeFileImports('addQueueWorkers', queueWorkersWiringFile, queueWorkers.files, packageMappings));
13
+ },
14
+ middleware: [
15
+ logCommandInfoAndTime({
16
+ commandStart: 'Finding queues',
17
+ commandEnd: 'Found queue',
18
+ skipCondition: async ({ getInspectorState }) => {
19
+ const { queueWorkers } = await getInspectorState();
20
+ return queueWorkers.files.size === 0;
21
+ },
22
+ skipMessage: 'none found',
23
+ }),
24
+ ],
25
+ });
@@ -1,5 +1,5 @@
1
- import { serializeImportMap } from '../../serialize-import-map.js';
2
- import { generateCustomTypes } from '../../utils.js';
1
+ import { serializeImportMap } from '../../../utils/serialize-import-map.js';
2
+ import { generateCustomTypes } from '../../../utils/custom-types-generator.js';
3
3
  export const serializeQueueMap = (relativeToPath, packageMappings, typesMap, functionsMeta, queueWorkersMeta) => {
4
4
  const requiredTypes = new Set();
5
5
  const serializedCustomTypes = generateCustomTypes(typesMap, requiredTypes);
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generates type definitions for queue wirings
3
+ */
4
+ export declare const serializeQueueTypes: (functionTypesImportPath: string) => string;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Generates type definitions for queue wirings
3
+ */
4
+ export const serializeQueueTypes = (functionTypesImportPath) => {
5
+ return `/**
6
+ * This file was generated by the @pikku/cli
7
+ * Queue-specific type definitions for tree-shaking optimization
8
+ */
9
+
10
+ import { CoreQueueWorker, wireQueueWorker as wireQueueWorkerCore } from '@pikku/core/queue'
11
+ import type { PikkuFunctionConfig } from '${functionTypesImportPath}'
12
+
13
+ /**
14
+ * Type definition for queue workers that process background jobs.
15
+ *
16
+ * @template In - Input type for the queue job
17
+ * @template Out - Output type for the queue job
18
+ */
19
+ type QueueWiring<In, Out> = CoreQueueWorker<PikkuFunctionConfig<In, Out>>
20
+
21
+ /**
22
+ * Registers a queue worker with the Pikku framework.
23
+ * Workers process background jobs from queues.
24
+ *
25
+ * @param queueWorker - Queue worker definition with job handler
26
+ */
27
+ export const wireQueueWorker = (queueWorker: QueueWiring<any, any>) => {
28
+ wireQueueWorkerCore(queueWorker as any) // TODO
29
+ }
30
+ `;
31
+ };
@@ -0,0 +1 @@
1
+ export declare const pikkuRPCClient: any;
@@ -0,0 +1,25 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
2
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
3
+ import { writeFileInDir } from '../../../utils/file-writer.js';
4
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
+ import { serializeRPCWrapper } from './serialize-rpc-wrapper.js';
6
+ export const pikkuRPCClient = pikkuSessionlessFunc({
7
+ func: async ({ logger, config }) => {
8
+ const { rpcWiringsFile, rpcMapDeclarationFile, packageMappings } = config;
9
+ if (!rpcWiringsFile) {
10
+ return;
11
+ // TODO: throw new Error("rpcWiringsFile isn't set in the pikku config")
12
+ }
13
+ const rpcMapDeclarationPath = getFileImportRelativePath(rpcWiringsFile, rpcMapDeclarationFile, packageMappings);
14
+ const content = [serializeRPCWrapper(rpcMapDeclarationPath)];
15
+ await writeFileInDir(logger, rpcWiringsFile, content.join('\n'));
16
+ },
17
+ middleware: [
18
+ logCommandInfoAndTime({
19
+ commandStart: 'Generating RPC wrappers',
20
+ commandEnd: 'Generated RPC wrappers',
21
+ skipCondition: ({ config }) => config.rpcWiringsFile === undefined,
22
+ skipMessage: "rpcWiringsFile isn't set in the pikku config",
23
+ }),
24
+ ],
25
+ });
@@ -0,0 +1,2 @@
1
+ export declare const pikkuRPCInternalMap: any;
2
+ export declare const pikkuRPCExposedMap: any;
@@ -0,0 +1,36 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
2
+ import { writeFileInDir } from '../../../utils/file-writer.js';
3
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
4
+ import { serializeTypedRPCMap } from './serialize-typed-rpc-map.js';
5
+ export const pikkuRPCInternalMap = pikkuSessionlessFunc({
6
+ func: async ({ logger, config, getInspectorState }) => {
7
+ const { functions, rpc } = await getInspectorState();
8
+ const { rpcInternalMapDeclarationFile, packageMappings } = config;
9
+ const content = serializeTypedRPCMap(rpcInternalMapDeclarationFile, packageMappings, functions.typesMap, functions.meta, rpc.internalMeta);
10
+ await writeFileInDir(logger, rpcInternalMapDeclarationFile, content);
11
+ },
12
+ middleware: [
13
+ logCommandInfoAndTime({
14
+ commandStart: 'Creating RPC internal map',
15
+ commandEnd: 'Created RPC internal map',
16
+ skipCondition: false,
17
+ skipMessage: '',
18
+ }),
19
+ ],
20
+ });
21
+ export const pikkuRPCExposedMap = pikkuSessionlessFunc({
22
+ func: async ({ logger, config, getInspectorState }) => {
23
+ const { functions, rpc } = await getInspectorState();
24
+ const { rpcMapDeclarationFile, packageMappings } = config;
25
+ const content = serializeTypedRPCMap(rpcMapDeclarationFile, packageMappings, functions.typesMap, functions.meta, rpc.exposedMeta);
26
+ await writeFileInDir(logger, rpcMapDeclarationFile, content);
27
+ },
28
+ middleware: [
29
+ logCommandInfoAndTime({
30
+ commandStart: 'Creating RPC external map',
31
+ commandEnd: 'Created RPC external map',
32
+ skipCondition: false,
33
+ skipMessage: '',
34
+ }),
35
+ ],
36
+ });
@@ -0,0 +1 @@
1
+ export declare const pikkuRPC: any;
@@ -0,0 +1,22 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
2
+ import { writeFileInDir } from '../../../utils/file-writer.js';
3
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
4
+ export const pikkuRPC = pikkuSessionlessFunc({
5
+ func: async ({ logger, config, getInspectorState }) => {
6
+ const { rpc } = await getInspectorState();
7
+ const { rpcInternalWiringMetaFile } = config;
8
+ if (rpc.internalFiles.size > 0) {
9
+ await writeFileInDir(logger, rpcInternalWiringMetaFile, `import { pikkuState } from '@pikku/core'\npikkuState('rpc', 'meta', ${JSON.stringify(rpc.internalMeta, null, 2)})`);
10
+ return true;
11
+ }
12
+ return false;
13
+ },
14
+ middleware: [
15
+ logCommandInfoAndTime({
16
+ commandStart: 'Finding RPCs tasks',
17
+ commandEnd: 'Found RPCs',
18
+ skipCondition: false,
19
+ skipMessage: '',
20
+ }),
21
+ ],
22
+ });
@@ -1,5 +1,5 @@
1
- import { serializeImportMap } from '../../serialize-import-map.js';
2
- import { generateCustomTypes } from '../../utils.js';
1
+ import { serializeImportMap } from '../../../utils/serialize-import-map.js';
2
+ import { generateCustomTypes } from '../../../utils/custom-types-generator.js';
3
3
  export const serializeTypedRPCMap = (relativeToPath, packageMappings, typesMap, functionsMeta, rpcMeta) => {
4
4
  const requiredTypes = new Set();
5
5
  const serializedCustomTypes = generateCustomTypes(typesMap, requiredTypes);
@@ -0,0 +1 @@
1
+ export declare const pikkuSchedulerTypes: any;
@@ -0,0 +1,21 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
2
+ import { writeFileInDir } from '../../../utils/file-writer.js';
3
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
4
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
+ import { serializeSchedulerTypes } from './serialize-scheduler-types.js';
6
+ export const pikkuSchedulerTypes = pikkuSessionlessFunc({
7
+ func: async ({ logger, config }) => {
8
+ const { schedulersTypesFile, functionTypesFile, packageMappings } = config;
9
+ const functionTypesImportPath = getFileImportRelativePath(schedulersTypesFile, functionTypesFile, packageMappings);
10
+ const content = serializeSchedulerTypes(functionTypesImportPath);
11
+ await writeFileInDir(logger, schedulersTypesFile, content);
12
+ },
13
+ middleware: [
14
+ logCommandInfoAndTime({
15
+ commandStart: 'Creating cheduler types',
16
+ commandEnd: 'Created scheduler types',
17
+ skipCondition: false,
18
+ skipMessage: '',
19
+ }),
20
+ ],
21
+ });
@@ -0,0 +1 @@
1
+ export declare const pikkuScheduler: any;
@@ -0,0 +1,26 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
2
+ import { serializeFileImports } from '../../../utils/file-imports-serializer.js';
3
+ import { writeFileInDir } from '../../../utils/file-writer.js';
4
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
+ import { serializeSchedulerMeta } from './serialize-scheduler-meta.js';
6
+ export const pikkuScheduler = pikkuSessionlessFunc({
7
+ func: async ({ logger, config, getInspectorState }) => {
8
+ const visitState = await getInspectorState();
9
+ const { schedulersWiringFile, schedulersWiringMetaFile, packageMappings } = config;
10
+ const { scheduledTasks } = visitState;
11
+ await writeFileInDir(logger, schedulersWiringMetaFile, serializeSchedulerMeta(scheduledTasks.meta));
12
+ await writeFileInDir(logger, schedulersWiringFile, serializeFileImports('addScheduledTasks', schedulersWiringFile, scheduledTasks.files, packageMappings));
13
+ return true;
14
+ },
15
+ middleware: [
16
+ logCommandInfoAndTime({
17
+ commandStart: 'Finding Scheduled tasks',
18
+ commandEnd: 'Found Scheduled tasks',
19
+ skipCondition: async ({ getInspectorState }) => {
20
+ const visitState = await getInspectorState();
21
+ return visitState.scheduledTasks.files.size === 0;
22
+ },
23
+ skipMessage: 'none found',
24
+ }),
25
+ ],
26
+ });
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generates type definitions for scheduler wirings
3
+ */
4
+ export declare const serializeSchedulerTypes: (functionTypesImportPath: string) => string;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Generates type definitions for scheduler wirings
3
+ */
4
+ export const serializeSchedulerTypes = (functionTypesImportPath) => {
5
+ return `/**
6
+ * This file was generated by the @pikku/cli
7
+ * Scheduler-specific type definitions for tree-shaking optimization
8
+ */
9
+
10
+ import { CoreScheduledTask, wireScheduler as wireSchedulerCore } from '@pikku/core/scheduler'
11
+ import type { PikkuFunctionConfig, PikkuMiddleware } from '${functionTypesImportPath}'
12
+
13
+ /**
14
+ * Type definition for scheduled tasks that run at specified intervals.
15
+ * These are sessionless functions that execute based on cron expressions.
16
+ */
17
+ type SchedulerWiring = CoreScheduledTask<PikkuFunctionConfig<void, void>, PikkuMiddleware>
18
+
19
+ /**
20
+ * Registers a scheduled task with the Pikku framework.
21
+ * Tasks run based on cron expressions and are sessionless.
22
+ *
23
+ * @param task - Scheduled task definition with cron expression and handler
24
+ */
25
+ export const wireScheduler = (task: SchedulerWiring) => {
26
+ wireSchedulerCore(task as any) // TODO
27
+ }
28
+ `;
29
+ };
@@ -0,0 +1,19 @@
1
+ import type { SingletonServices, Services } from '../../types/application-types.js';
2
+ import type { PikkuInteraction } from '@pikku/core';
3
+ type PikkuMiddleware = (services: Services, interaction: PikkuInteraction, next: () => Promise<void>) => Promise<void>;
4
+ export interface LogCommandInfoOptions {
5
+ commandStart: string;
6
+ commandEnd: string;
7
+ skipCondition?: boolean | ((services: SingletonServices) => boolean | Promise<boolean>);
8
+ skipMessage?: string;
9
+ }
10
+ /**
11
+ * Middleware to log command execution timing and status
12
+ * Replaces the logCommandInfoAndTime wrapper function
13
+ *
14
+ * The skipCondition can be:
15
+ * - A boolean valuewe
16
+ * - A function that receives services and returns a boolean (can access getInspectorState)
17
+ */
18
+ export declare const logCommandInfoAndTime: ({ commandStart, commandEnd, skipCondition, skipMessage, }: LogCommandInfoOptions) => PikkuMiddleware;
19
+ export {};
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Middleware to log command execution timing and status
3
+ * Replaces the logCommandInfoAndTime wrapper function
4
+ *
5
+ * The skipCondition can be:
6
+ * - A boolean valuewe
7
+ * - A function that receives services and returns a boolean (can access getInspectorState)
8
+ */
9
+ export const logCommandInfoAndTime = ({ commandStart, commandEnd, skipCondition = false, skipMessage = 'none found', }) => {
10
+ return async ({ logger, ...services }, _interaction, next) => {
11
+ // Evaluate skip condition (can be boolean or function)
12
+ const shouldSkip = typeof skipCondition === 'function'
13
+ ? await skipCondition({ logger, ...services })
14
+ : skipCondition;
15
+ if (shouldSkip === true) {
16
+ logger.info(`• Skipping ${commandStart.charAt(0).toLocaleLowerCase()}${commandStart.slice(1)} since ${skipMessage}.`);
17
+ return;
18
+ }
19
+ // Log start
20
+ const start = Date.now();
21
+ logger.info(`• ${commandStart}...`);
22
+ // Execute the function
23
+ await next();
24
+ // Log completion
25
+ logger.info(`✓ ${commandEnd} in ${Date.now() - start}ms.`);
26
+ };
27
+ };
@@ -0,0 +1,26 @@
1
+ import { Logger, LogLevel, PikkuChannel } from '@pikku/core';
2
+ /**
3
+ * Log message structure sent through the channel
4
+ */
5
+ export interface ForwardedLogMessage {
6
+ message: string;
7
+ level: 'trace' | 'debug' | 'info' | 'warn' | 'error';
8
+ type?: string;
9
+ }
10
+ /**
11
+ * A logger implementation that forwards log messages to a CLI channel
12
+ * instead of logging to console directly.
13
+ */
14
+ export declare class CLILoggerForwarder implements Logger {
15
+ private logger;
16
+ private channel;
17
+ private level;
18
+ constructor(logger: Logger, channel: PikkuChannel<unknown, ForwardedLogMessage>);
19
+ setLevel(level: LogLevel): void;
20
+ private log;
21
+ info(messageOrObj: string | Record<string, any>, ..._meta: any[]): void;
22
+ error(messageOrObj: string | Record<string, any> | Error, ..._meta: any[]): void;
23
+ warn(messageOrObj: string | Record<string, any>, ..._meta: any[]): void;
24
+ debug(message: string, ..._meta: any[]): void;
25
+ trace(message: string, ..._meta: any[]): void;
26
+ }
@@ -0,0 +1,55 @@
1
+ import { LogLevel } from '@pikku/core';
2
+ /**
3
+ * A logger implementation that forwards log messages to a CLI channel
4
+ * instead of logging to console directly.
5
+ */
6
+ export class CLILoggerForwarder {
7
+ logger;
8
+ channel;
9
+ level = LogLevel.info;
10
+ constructor(logger, channel) {
11
+ this.logger = logger;
12
+ this.channel = channel;
13
+ }
14
+ setLevel(level) {
15
+ this.level = level;
16
+ }
17
+ log(level, logLevel, messageOrObj, type) {
18
+ if (this.level > logLevel)
19
+ return;
20
+ let message;
21
+ if (messageOrObj instanceof Error) {
22
+ this.logger.error(messageOrObj);
23
+ message = messageOrObj.message;
24
+ }
25
+ else if (typeof messageOrObj === 'object') {
26
+ if ('message' in messageOrObj &&
27
+ typeof messageOrObj.message === 'string') {
28
+ message = messageOrObj.message;
29
+ type = type || messageOrObj.type;
30
+ }
31
+ else {
32
+ message = JSON.stringify(messageOrObj);
33
+ }
34
+ }
35
+ else {
36
+ message = messageOrObj;
37
+ }
38
+ this.channel.send({ message, level, type });
39
+ }
40
+ info(messageOrObj, ..._meta) {
41
+ this.log('info', LogLevel.info, messageOrObj);
42
+ }
43
+ error(messageOrObj, ..._meta) {
44
+ this.log('error', LogLevel.error, messageOrObj);
45
+ }
46
+ warn(messageOrObj, ..._meta) {
47
+ this.log('warn', LogLevel.warn, messageOrObj);
48
+ }
49
+ debug(message, ..._meta) {
50
+ this.log('debug', LogLevel.debug, message);
51
+ }
52
+ trace(message, ..._meta) {
53
+ this.log('trace', LogLevel.trace, message);
54
+ }
55
+ }
@@ -0,0 +1,19 @@
1
+ import { Logger, LogLevel } from '@pikku/core';
2
+ export declare class CLILogger implements Logger {
3
+ private silent;
4
+ private level;
5
+ constructor({ logLogo, silent, }: {
6
+ logLogo: boolean;
7
+ silent?: boolean;
8
+ });
9
+ setLevel(level: LogLevel): void;
10
+ info(message: string | {
11
+ message: string;
12
+ type?: string;
13
+ }): void;
14
+ error(message: string): void;
15
+ warn(message: string): void;
16
+ debug(message: string): void;
17
+ private logPikkuLogo;
18
+ private primary;
19
+ }
@@ -0,0 +1,66 @@
1
+ import chalk from 'chalk';
2
+ import { LogLevel } from '@pikku/core';
3
+ const logo = `
4
+ ______ _ _ _
5
+ (_____ (_) | | |
6
+ _____) )| | _| | _ _ _
7
+ | ____/ | |_/ ) |_/ ) | | |
8
+ | | | | _ (| _ (| _ (| |_| |
9
+ |_| |_|_| _)_| _)____/
10
+ `;
11
+ export class CLILogger {
12
+ silent;
13
+ level = LogLevel.info;
14
+ constructor({ logLogo, silent = false, }) {
15
+ this.silent = silent;
16
+ if (logLogo && !silent) {
17
+ this.logPikkuLogo();
18
+ }
19
+ }
20
+ setLevel(level) {
21
+ this.level = level;
22
+ }
23
+ info(message) {
24
+ if (this.level > LogLevel.info || this.silent)
25
+ return;
26
+ let c = chalk.blue;
27
+ if (typeof message === 'object') {
28
+ if (message.type === 'success') {
29
+ c = chalk.green;
30
+ }
31
+ else if (message.type === 'timing') {
32
+ c = chalk.gray;
33
+ }
34
+ }
35
+ console.log(c(typeof message === 'string' ? message : message.message));
36
+ }
37
+ error(message) {
38
+ if (this.level > LogLevel.error)
39
+ return;
40
+ console.error(chalk.red(message));
41
+ }
42
+ warn(message) {
43
+ if (this.level > LogLevel.warn)
44
+ return;
45
+ console.error(chalk.yellow(message));
46
+ }
47
+ debug(message) {
48
+ if (this.level > LogLevel.debug || this.silent)
49
+ return;
50
+ console.log(chalk.gray(message));
51
+ }
52
+ logPikkuLogo() {
53
+ this.primary(logo);
54
+ // // When running from dist/, __filename is dist/src/services/cli-logger.service.js
55
+ // // So we need to go up 3 levels: dist/src/services -> dist/src -> dist -> package.json
56
+ // const packageJson = JSON.parse(
57
+ // readFileSync(`${dirname(__filename)}/../../../package.json`, 'utf-8')
58
+ // )
59
+ // this.primary(`⚙️ Welcome to the Pikku CLI (v${packageJson.version})\n`)
60
+ }
61
+ primary(message) {
62
+ if (!this.silent) {
63
+ console.log(chalk.green(message));
64
+ }
65
+ }
66
+ }