@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,80 @@
1
+ /**
2
+ * Generates type definitions for CLI wirings
3
+ */
4
+ export const serializeCLITypes = (
5
+ functionTypesImportPath: string,
6
+ userSessionTypeImport: string,
7
+ userSessionTypeName: string,
8
+ singletonServicesTypeImport: string,
9
+ singletonServicesTypeName: string
10
+ ) => {
11
+ return `/**
12
+ * This file was generated by the @pikku/cli
13
+ * CLI-specific type definitions for tree-shaking optimization
14
+ */
15
+
16
+ import { CoreCLI, wireCLI as wireCLICore, CorePikkuCLIRender, CoreCLICommandConfig } from '@pikku/core'
17
+ import type { PikkuFunctionConfig, PikkuMiddleware } from '${functionTypesImportPath}'
18
+ ${userSessionTypeImport}
19
+ ${singletonServicesTypeImport}
20
+
21
+ ${singletonServicesTypeName !== 'SingletonServices' ? `type SingletonServices = ${singletonServicesTypeName}` : ''}
22
+ ${userSessionTypeName !== 'Session' ? `type Session = ${userSessionTypeName}` : ''}
23
+
24
+ /**
25
+ * Type-safe CLI renderer definition that can access your application's services.
26
+ * Use this to define custom renderers for CLI command output.
27
+ *
28
+ * @template Data - The output data type from the CLI command
29
+ * @template RequiredServices - The services required for this renderer
30
+ */
31
+ type PikkuCLIRender<Data, RequiredServices extends SingletonServices = SingletonServices> = CorePikkuCLIRender<Data, RequiredServices, Session>
32
+
33
+ /**
34
+ * CLI command configuration with project-specific types.
35
+ * Uses CoreCLICommandConfig from @pikku/core with local middleware and render types.
36
+ */
37
+ type CLICommandConfig<Func extends PikkuFunctionConfig<any, any>> = CoreCLICommandConfig<Func, PikkuMiddleware, PikkuCLIRender<any>>
38
+
39
+ /**
40
+ * Result type for CLI command configuration
41
+ */
42
+ type CLICommandResult<Func extends PikkuFunctionConfig<any, any>> = CLICommandConfig<Func>
43
+
44
+ /**
45
+ * Type definition for CLI applications with commands and global options.
46
+ *
47
+ * @template Commands - Type describing the command structure
48
+ * @template GlobalOptions - Type for global CLI options
49
+ */
50
+ type CLIWiring<Commands extends Record<string, CoreCLICommandConfig<any, PikkuMiddleware, PikkuCLIRender<any>>>, GlobalOptions> = CoreCLI<Commands, GlobalOptions, PikkuMiddleware, PikkuCLIRender<any>>
51
+
52
+ /**
53
+ * Registers a CLI application with the Pikku framework.
54
+ * Creates command-line interfaces with type-safe commands and options.
55
+ *
56
+ * @template Commands - Type describing the command structure
57
+ * @template GlobalOptions - Type for global CLI options
58
+ * @param cli - CLI definition with program name, commands, and global options
59
+ */
60
+ export const wireCLI = <Commands extends Record<string, CoreCLICommandConfig<any, PikkuMiddleware, PikkuCLIRender<any>>>, GlobalOptions>(
61
+ cli: CLIWiring<Commands, GlobalOptions>
62
+ ) => {
63
+ wireCLICore(cli as any)
64
+ }
65
+
66
+ /**
67
+ * Creates a CLI command definition with automatic option inference from the function's input type.
68
+ * This allows TypeScript to automatically derive CLI options from the function signature.
69
+ *
70
+ * @template Func - The Pikku function config type to create a CLI command for
71
+ * @param config - CLI command configuration
72
+ * @returns CLI command configuration with inferred types
73
+ */
74
+ export const pikkuCLICommand = <Func extends PikkuFunctionConfig<any, any>>(
75
+ config: CLICommandConfig<Func>
76
+ ): CLICommandResult<Func> => {
77
+ return config as any
78
+ }
79
+ `
80
+ }
@@ -0,0 +1,75 @@
1
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js'
2
+ import { Config } from '../../../../types/application-types.js'
3
+
4
+ /**
5
+ * Serializes the local (in-program) CLI bootstrap code
6
+ */
7
+ export function serializeLocalCLIBootstrap(
8
+ programName: string,
9
+ _programMeta: any,
10
+ bootstrapFile: string,
11
+ config: Config,
12
+ pikkuConfigFactory: { file: string; variable: string },
13
+ singletonServicesFactory: { file: string; variable: string },
14
+ sessionServicesFactory: { file: string; variable: string }
15
+ ): string {
16
+ const capitalizedName =
17
+ programName.charAt(0).toUpperCase() + programName.slice(1).replace(/-/g, '')
18
+
19
+ // Get relative import paths
20
+ const pikkuConfigPath = getFileImportRelativePath(
21
+ bootstrapFile,
22
+ pikkuConfigFactory.file,
23
+ config.packageMappings
24
+ )
25
+ const singletonServicesPath = getFileImportRelativePath(
26
+ bootstrapFile,
27
+ singletonServicesFactory.file,
28
+ config.packageMappings
29
+ )
30
+ const sessionServicesPath = getFileImportRelativePath(
31
+ bootstrapFile,
32
+ sessionServicesFactory.file,
33
+ config.packageMappings
34
+ )
35
+ const cliBootstrapPath = getFileImportRelativePath(
36
+ bootstrapFile,
37
+ config.bootstrapFiles.cli,
38
+ config.packageMappings
39
+ )
40
+
41
+ return `/**
42
+ * This file was generated by the @pikku/cli
43
+ */
44
+ import { executeCLI } from '@pikku/core'
45
+ import { ${pikkuConfigFactory.variable} as createConfig } from '${pikkuConfigPath}'
46
+ import { ${singletonServicesFactory.variable} as createSingletonServices } from '${singletonServicesPath}'
47
+ import { ${sessionServicesFactory.variable} as createSessionServices } from '${sessionServicesPath}'
48
+ import '${cliBootstrapPath}'
49
+
50
+ /**
51
+ * ${capitalizedName} CLI function
52
+ * Handles command line arguments and executes the appropriate function
53
+ */
54
+ export async function ${capitalizedName}CLI(args?: string[]): Promise<void> {
55
+ await executeCLI({
56
+ programName: '${programName}',
57
+ args,
58
+ createConfig,
59
+ createSingletonServices,
60
+ createSessionServices,
61
+ })
62
+ }
63
+
64
+ // Export as default for easy importing
65
+ export default ${capitalizedName}CLI
66
+
67
+ // For direct execution (if this file is run directly)
68
+ if (import.meta.url === \`file://\${process.argv[1]}\`) {
69
+ ${capitalizedName}CLI().catch(error => {
70
+ console.error('Fatal error:', error.message)
71
+ process.exit(1)
72
+ })
73
+ }
74
+ `
75
+ }
@@ -0,0 +1,32 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js'
2
+ import { serializeFetchWrapper } from '../http/serialize-fetch-wrapper.js'
3
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js'
4
+ import { writeFileInDir } from '../../../utils/file-writer.js'
5
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js'
6
+
7
+ export const pikkuFetch: any = pikkuSessionlessFunc<void, void>({
8
+ func: async ({ logger, config }) => {
9
+ const { fetchFile, httpMapDeclarationFile, packageMappings } = config
10
+
11
+ if (!fetchFile) {
12
+ throw new Error("fetchFile is isn't set in the pikku config")
13
+ }
14
+
15
+ const routesMapDeclarationPath = getFileImportRelativePath(
16
+ fetchFile,
17
+ httpMapDeclarationFile,
18
+ packageMappings
19
+ )
20
+
21
+ const content = [serializeFetchWrapper(routesMapDeclarationPath)]
22
+ await writeFileInDir(logger, fetchFile, content.join('\n'))
23
+ },
24
+ middleware: [
25
+ logCommandInfoAndTime({
26
+ commandStart: 'Generating fetch wrapper',
27
+ commandEnd: 'Generated fetch wrapper',
28
+ skipCondition: ({ config }) => config.fetchFile === undefined,
29
+ skipMessage: "fetchFile isn't set in the pikku config",
30
+ }),
31
+ ],
32
+ })
@@ -0,0 +1,51 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js'
2
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js'
3
+ import { checkRequiredTypes } from '../../../utils/check-required-types.js'
4
+ import { writeFileInDir } from '../../../utils/file-writer.js'
5
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js'
6
+ import { serializeFunctionTypes } from './serialize-function-types.js'
7
+
8
+ export const pikkuFunctionTypesSplit: any = pikkuSessionlessFunc<void, void>({
9
+ func: async ({ logger, config, getInspectorState }) => {
10
+ const visitState = await getInspectorState()
11
+ const {
12
+ functionTypesFile,
13
+ packageMappings,
14
+ rpcInternalMapDeclarationFile,
15
+ } = config
16
+
17
+ // Check for required types
18
+ checkRequiredTypes(visitState.filesAndMethodsErrors, {
19
+ userSessionType: true,
20
+ sessionServiceType: true,
21
+ singletonServicesType: true,
22
+ })
23
+
24
+ const { userSessionType, sessionServicesType, singletonServicesType } =
25
+ visitState.filesAndMethods
26
+
27
+ if (!userSessionType || !sessionServicesType || !singletonServicesType) {
28
+ throw new Error('Required types not found')
29
+ }
30
+
31
+ const content = serializeFunctionTypes(
32
+ `import type { ${userSessionType.type} } from '${getFileImportRelativePath(functionTypesFile, userSessionType.typePath, packageMappings)}'`,
33
+ userSessionType.type,
34
+ `import type { ${singletonServicesType.type} } from '${getFileImportRelativePath(functionTypesFile, singletonServicesType.typePath, packageMappings)}'`,
35
+ singletonServicesType.type,
36
+ `import type { ${sessionServicesType.type} } from '${getFileImportRelativePath(functionTypesFile, sessionServicesType.typePath, packageMappings)}'`,
37
+ sessionServicesType.type,
38
+ `import type { TypedPikkuRPC } from '${getFileImportRelativePath(functionTypesFile, rpcInternalMapDeclarationFile, packageMappings)}'`
39
+ )
40
+
41
+ await writeFileInDir(logger, functionTypesFile, content)
42
+ },
43
+ middleware: [
44
+ logCommandInfoAndTime({
45
+ commandStart: 'Creating function types',
46
+ commandEnd: 'Created function types',
47
+ skipCondition: false,
48
+ skipMessage: '',
49
+ }),
50
+ ],
51
+ })
@@ -0,0 +1,45 @@
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 { serializePikkuTypesHub } from './serialize-pikku-types-hub.js'
6
+
7
+ export const pikkuFunctionTypes: any = pikkuSessionlessFunc<void, void>({
8
+ func: async ({ logger, config }) => {
9
+ const {
10
+ typesDeclarationFile: typesFile,
11
+ packageMappings,
12
+ functionTypesFile,
13
+ httpTypesFile,
14
+ channelsTypesFile,
15
+ schedulersTypesFile,
16
+ queueTypesFile,
17
+ mcpTypesFile,
18
+ cliTypesFile,
19
+ } = config
20
+
21
+ const content = serializePikkuTypesHub(
22
+ getFileImportRelativePath(typesFile, functionTypesFile, packageMappings),
23
+ getFileImportRelativePath(typesFile, httpTypesFile, packageMappings),
24
+ getFileImportRelativePath(typesFile, channelsTypesFile, packageMappings),
25
+ getFileImportRelativePath(
26
+ typesFile,
27
+ schedulersTypesFile,
28
+ packageMappings
29
+ ),
30
+ getFileImportRelativePath(typesFile, queueTypesFile, packageMappings),
31
+ getFileImportRelativePath(typesFile, mcpTypesFile, packageMappings),
32
+ getFileImportRelativePath(typesFile, cliTypesFile, packageMappings)
33
+ )
34
+
35
+ await writeFileInDir(logger, typesFile, content)
36
+ },
37
+ middleware: [
38
+ logCommandInfoAndTime({
39
+ commandStart: 'Creating api types hub',
40
+ commandEnd: 'Created api types hub',
41
+ skipCondition: false,
42
+ skipMessage: '',
43
+ }),
44
+ ],
45
+ })
@@ -0,0 +1,61 @@
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 {
5
+ generateRuntimeMeta,
6
+ serializeFunctionImports,
7
+ } from './serialize-function-imports.js'
8
+
9
+ export const pikkuFunctions: any = pikkuSessionlessFunc<
10
+ void,
11
+ boolean | undefined
12
+ >({
13
+ func: async ({ logger, config, getInspectorState }) => {
14
+ const { functions, rpc } = await getInspectorState()
15
+ const {
16
+ functionsMetaFile,
17
+ functionsMetaMinFile,
18
+ functionsFile,
19
+ packageMappings,
20
+ } = config
21
+
22
+ // Generate full metadata
23
+ await writeFileInDir(
24
+ logger,
25
+ functionsMetaFile,
26
+ `import { pikkuState } from '@pikku/core'\npikkuState('function', 'meta', ${JSON.stringify(functions.meta, null, 2)})`
27
+ )
28
+
29
+ // Generate minimal metadata (runtime)
30
+ const runtimeMeta = generateRuntimeMeta(functions.meta)
31
+ await writeFileInDir(
32
+ logger,
33
+ functionsMetaMinFile,
34
+ `import { pikkuState } from '@pikku/core'\npikkuState('function', 'meta', ${JSON.stringify(runtimeMeta, null, 2)})`
35
+ )
36
+
37
+ const hasRPCs = rpc.exposedFiles.size > 0 || rpc.internalFiles.size > 0
38
+ if (hasRPCs) {
39
+ await writeFileInDir(
40
+ logger,
41
+ functionsFile,
42
+ serializeFunctionImports(
43
+ functionsFile,
44
+ rpc.internalFiles,
45
+ functions.meta,
46
+ packageMappings
47
+ )
48
+ )
49
+ }
50
+
51
+ return hasRPCs
52
+ },
53
+ middleware: [
54
+ logCommandInfoAndTime({
55
+ commandStart: 'Serializing Pikku functions',
56
+ commandEnd: 'Serialized Pikku functions',
57
+ skipCondition: false,
58
+ skipMessage: '',
59
+ }),
60
+ ],
61
+ })
@@ -1,12 +1,8 @@
1
- import {
2
- getFileImportRelativePath,
3
- getPikkuFilesAndMethods,
4
- logCommandInfoAndTime,
5
- writeFileInDir,
6
- } from '../../utils.js'
7
- import { PikkuCommand } from '../../types.js'
8
- import { PikkuCLIConfig } from '../../pikku-cli-config.js'
9
- import { InspectorState } from '@pikku/inspector'
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js'
2
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js'
3
+ import { checkRequiredTypes } from '../../../utils/check-required-types.js'
4
+ import { writeFileInDir } from '../../../utils/file-writer.js'
5
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js'
10
6
 
11
7
  export const serializeServicesMap = (
12
8
  functionsMetaData: Record<string, any>,
@@ -86,40 +82,41 @@ export const serializeServicesMap = (
86
82
  return code
87
83
  }
88
84
 
89
- export const pikkuServices: PikkuCommand = async (
90
- logger,
91
- cliConfig: PikkuCLIConfig,
92
- visitState: InspectorState
93
- ) => {
94
- return await logCommandInfoAndTime(
95
- logger,
96
- 'Generating Pikku services map',
97
- 'Generated Pikku services map',
98
- [false],
99
- async () => {
100
- const { sessionServicesType, singletonServicesType } =
101
- await getPikkuFilesAndMethods(
102
- logger,
103
- visitState,
104
- cliConfig.packageMappings,
105
- cliConfig.typesDeclarationFile,
106
- {},
107
- {
108
- sessionServiceType: true,
109
- singletonServicesType: true,
110
- }
111
- )
112
-
113
- const servicesImport = `import type { ${singletonServicesType.type} } from '${getFileImportRelativePath(cliConfig.typesDeclarationFile, singletonServicesType.typePath, cliConfig.packageMappings)}'`
114
- const sessionServicesImport = `import type { ${sessionServicesType.type} } from '${getFileImportRelativePath(cliConfig.typesDeclarationFile, sessionServicesType.typePath, cliConfig.packageMappings)}'`
115
-
116
- const servicesCode = serializeServicesMap(
117
- visitState.functions.meta,
118
- cliConfig.middlewareServices,
119
- servicesImport,
120
- sessionServicesImport
85
+ export const pikkuServices: any = pikkuSessionlessFunc<void, void>({
86
+ func: async ({ logger, config, getInspectorState }) => {
87
+ const visitState = await getInspectorState()
88
+
89
+ // Check for required types
90
+ checkRequiredTypes(visitState.filesAndMethodsErrors, {
91
+ sessionServiceType: true,
92
+ singletonServicesType: true,
93
+ })
94
+
95
+ const { sessionServicesType, singletonServicesType } =
96
+ visitState.filesAndMethods
97
+
98
+ if (!sessionServicesType || !singletonServicesType) {
99
+ throw new Error(
100
+ 'Required types not found: sessionServicesType or singletonServicesType'
121
101
  )
122
- await writeFileInDir(logger, cliConfig.servicesFile, servicesCode)
123
102
  }
124
- )
125
- }
103
+
104
+ const servicesImport = `import type { ${singletonServicesType.type} } from '${getFileImportRelativePath(config.typesDeclarationFile, singletonServicesType.typePath, config.packageMappings)}'`
105
+ const sessionServicesImport = `import type { ${sessionServicesType.type} } from '${getFileImportRelativePath(config.typesDeclarationFile, sessionServicesType.typePath, config.packageMappings)}'`
106
+
107
+ const servicesCode = serializeServicesMap(
108
+ visitState.functions.meta,
109
+ config.middlewareServices,
110
+ servicesImport,
111
+ sessionServicesImport
112
+ )
113
+ await writeFileInDir(logger, config.servicesFile, servicesCode)
114
+ },
115
+ middleware: [
116
+ logCommandInfoAndTime({
117
+ commandStart: 'Generating Pikku services map',
118
+ commandEnd: 'Generated Pikku services map',
119
+ skipMessage: '',
120
+ }),
121
+ ],
122
+ })
@@ -0,0 +1,45 @@
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 { serializePikkuTypesHub } from './serialize-pikku-types-hub.js'
6
+
7
+ export const pikkuFunctionTypes: any = pikkuSessionlessFunc<void, void>({
8
+ func: async ({ logger, config }) => {
9
+ const {
10
+ typesDeclarationFile: typesFile,
11
+ packageMappings,
12
+ functionTypesFile,
13
+ httpTypesFile,
14
+ channelsTypesFile,
15
+ schedulersTypesFile,
16
+ queueTypesFile,
17
+ mcpTypesFile,
18
+ cliTypesFile,
19
+ } = config
20
+
21
+ const content = serializePikkuTypesHub(
22
+ getFileImportRelativePath(typesFile, functionTypesFile, packageMappings),
23
+ getFileImportRelativePath(typesFile, httpTypesFile, packageMappings),
24
+ getFileImportRelativePath(typesFile, channelsTypesFile, packageMappings),
25
+ getFileImportRelativePath(
26
+ typesFile,
27
+ schedulersTypesFile,
28
+ packageMappings
29
+ ),
30
+ getFileImportRelativePath(typesFile, queueTypesFile, packageMappings),
31
+ getFileImportRelativePath(typesFile, mcpTypesFile, packageMappings),
32
+ getFileImportRelativePath(typesFile, cliTypesFile, packageMappings)
33
+ )
34
+
35
+ await writeFileInDir(logger, typesFile, content)
36
+ },
37
+ middleware: [
38
+ logCommandInfoAndTime({
39
+ commandStart: 'Creating api types hub',
40
+ commandEnd: 'Created api types hub',
41
+ skipCondition: false,
42
+ skipMessage: '',
43
+ }),
44
+ ],
45
+ })
@@ -0,0 +1,47 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js'
2
+ import {
3
+ saveSchemas,
4
+ generateSchemas,
5
+ } from '../../../utils/schema-generator.js'
6
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js'
7
+
8
+ /**
9
+ * Generate JSON schemas from TypeScript types
10
+ */
11
+ export const pikkuSchemas: any = pikkuSessionlessFunc<
12
+ void,
13
+ boolean | undefined
14
+ >({
15
+ func: async ({ logger, config, getInspectorState }) => {
16
+ const visitState = await getInspectorState()
17
+
18
+ const schemas = await generateSchemas(
19
+ logger,
20
+ config.tsconfig,
21
+ visitState.functions.typesMap,
22
+ visitState.functions.meta,
23
+ visitState.http.meta,
24
+ config.schemasFromTypes
25
+ )
26
+
27
+ await saveSchemas(
28
+ logger,
29
+ config.schemaDirectory,
30
+ schemas,
31
+ visitState.functions.typesMap,
32
+ visitState.functions.meta,
33
+ config.supportsImportAttributes,
34
+ config.schemasFromTypes
35
+ )
36
+
37
+ return true
38
+ },
39
+ middleware: [
40
+ logCommandInfoAndTime({
41
+ commandStart: 'Generating schemas',
42
+ commandEnd: 'Generated schemas',
43
+ skipCondition: false,
44
+ skipMessage: '',
45
+ }),
46
+ ],
47
+ })
@@ -1,4 +1,4 @@
1
- import { getFileImportRelativePath } from '../../utils.js'
1
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js'
2
2
  import { FunctionsMeta, FunctionsRuntimeMeta } from '@pikku/core'
3
3
 
4
4
  export const serializeFunctionImports = (
@@ -26,44 +26,18 @@ export const serializeFunctionImports = (
26
26
  packageMappings
27
27
  )
28
28
 
29
- // Find the function metadata to check if it's a direct function
30
- // The functionsMeta is keyed by the function name (exported name)
31
- const funcMeta = functionsMeta[name]
32
- const isDirectFunction = funcMeta?.isDirectFunction ?? false
33
-
29
+ // pikkuFunc/pikkuSessionlessFunc/pikkuVoidFunc always return config objects
34
30
  // For directly exported functions, we can just import and register them
35
31
  if (name === exportedName) {
36
32
  serializedImports.push(`import { ${exportedName} } from '${filePath}'`)
37
-
38
- if (isDirectFunction) {
39
- // Direct function: pikkuFunc(fn) - needs to be wrapped
40
- serializedRegistrations.push(
41
- `addFunction('${name}', { func: ${exportedName} })`
42
- )
43
- } else {
44
- // Object format: pikkuFunc({ func: fn }) - can be used directly
45
- serializedRegistrations.push(
46
- `addFunction('${name}', ${exportedName} as any) // TODO`
47
- )
48
- }
33
+ serializedRegistrations.push(`addFunction('${name}', ${exportedName})`)
49
34
  }
50
35
  // For renamed functions, we need to import and alias them
51
36
  else {
52
37
  serializedImports.push(
53
38
  `import { ${exportedName} as ${name} } from '${filePath}'`
54
39
  )
55
-
56
- if (isDirectFunction) {
57
- // Direct function: pikkuFunc(fn) - needs to be wrapped
58
- serializedRegistrations.push(
59
- `addFunction('${name}', { func: ${name} })`
60
- )
61
- } else {
62
- // Object format: pikkuFunc({ func: fn }) - can be used directly
63
- serializedRegistrations.push(
64
- `addFunction('${name}', ${name} as any) // TODO`
65
- )
66
- }
40
+ serializedRegistrations.push(`addFunction('${name}', ${name})`)
67
41
  }
68
42
  }
69
43