@pikku/cli 0.9.15 → 0.10.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 (504) hide show
  1. package/.pikku/channel/pikku-channel-types.gen.ts +91 -0
  2. package/.pikku/channel/pikku-channels-map.gen.d.ts +44 -0
  3. package/.pikku/channel/pikku-channels-meta.gen.ts +5 -0
  4. package/.pikku/channel/pikku-channels.gen.ts +4 -0
  5. package/.pikku/cli/pikku-cli-channel.gen.ts +34 -0
  6. package/.pikku/cli/pikku-cli-client.gen.ts +43 -0
  7. package/.pikku/cli/pikku-cli-types.gen.ts +70 -0
  8. package/.pikku/cli/pikku-cli-wirings-meta.gen.ts +145 -0
  9. package/.pikku/cli/pikku-cli-wirings.gen.ts +6 -0
  10. package/.pikku/cli/pikku-cli.gen.ts +41 -0
  11. package/.pikku/function/pikku-function-types.gen.ts +440 -0
  12. package/.pikku/function/pikku-functions-meta.gen.ts +845 -0
  13. package/.pikku/function/pikku-functions-meta.min.gen.ts +181 -0
  14. package/.pikku/function/pikku-functions.gen.ts +76 -0
  15. package/.pikku/http/pikku-http-types.gen.ts +86 -0
  16. package/.pikku/http/pikku-http-wirings-map.gen.d.ts +43 -0
  17. package/.pikku/http/pikku-http-wirings-meta.gen.ts +13 -0
  18. package/.pikku/http/pikku-http-wirings.gen.ts +4 -0
  19. package/.pikku/mcp/pikku-mcp-types.gen.ts +140 -0
  20. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.ts +7 -0
  21. package/.pikku/mcp/pikku-mcp-wirings.gen.ts +4 -0
  22. package/.pikku/mcp/pikku-mcp.gen.json +5 -0
  23. package/.pikku/pikku-bootstrap.gen.ts +19 -0
  24. package/.pikku/pikku-services.gen.ts +20 -0
  25. package/.pikku/pikku-types.gen.ts +27 -0
  26. package/.pikku/pikku-websocket.gen.ts +76 -0
  27. package/.pikku/queue/pikku-queue-types.gen.ts +27 -0
  28. package/.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts +57 -0
  29. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts +5 -0
  30. package/.pikku/queue/pikku-queue-workers-wirings.gen.ts +4 -0
  31. package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +47 -0
  32. package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +82 -0
  33. package/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts +41 -0
  34. package/.pikku/scheduler/pikku-scheduler-types.gen.ts +25 -0
  35. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.ts +5 -0
  36. package/.pikku/scheduler/pikku-schedulers-wirings.gen.ts +4 -0
  37. package/.pikku/schemas/register.gen.ts +51 -0
  38. package/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -0
  39. package/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +1 -0
  40. package/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -0
  41. package/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +1 -0
  42. package/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +1 -0
  43. package/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +1 -0
  44. package/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +1 -0
  45. package/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +1 -0
  46. package/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +1 -0
  47. package/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +1 -0
  48. package/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +1 -0
  49. package/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -0
  50. package/CHANGELOG.md +15 -0
  51. package/bin/pikku.ts +97 -14
  52. package/build.sh +53 -0
  53. package/cli.schema.json +1 -382
  54. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +56 -0
  55. package/dist/.pikku/channel/pikku-channel-types.gen.js +52 -0
  56. package/dist/.pikku/channel/pikku-channels-meta.gen.js +5 -0
  57. package/dist/.pikku/channel/pikku-channels.gen.d.ts +4 -0
  58. package/dist/.pikku/channel/pikku-channels.gen.js +5 -0
  59. package/dist/.pikku/cli/pikku-cli-channel.gen.d.ts +1 -0
  60. package/dist/.pikku/cli/pikku-cli-channel.gen.js +33 -0
  61. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +10 -0
  62. package/dist/.pikku/cli/pikku-cli-client.gen.js +34 -0
  63. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +52 -0
  64. package/dist/.pikku/cli/pikku-cli-types.gen.js +31 -0
  65. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.d.ts +1 -0
  66. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +145 -0
  67. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +5 -0
  68. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +6 -0
  69. package/dist/.pikku/cli/pikku-cli.gen.d.ts +10 -0
  70. package/dist/.pikku/cli/pikku-cli.gen.js +38 -0
  71. package/dist/.pikku/function/pikku-function-types.gen.d.ts +380 -0
  72. package/dist/.pikku/function/pikku-function-types.gen.js +271 -0
  73. package/dist/.pikku/function/pikku-functions-meta.gen.d.ts +1 -0
  74. package/dist/.pikku/function/pikku-functions-meta.gen.js +845 -0
  75. package/dist/.pikku/function/pikku-functions-meta.min.gen.d.ts +1 -0
  76. package/dist/.pikku/function/pikku-functions-meta.min.gen.js +181 -0
  77. package/dist/.pikku/function/pikku-functions.gen.d.ts +1 -0
  78. package/dist/.pikku/function/pikku-functions.gen.js +75 -0
  79. package/dist/.pikku/http/pikku-http-types.gen.d.ts +68 -0
  80. package/dist/.pikku/http/pikku-http-types.gen.js +62 -0
  81. package/dist/.pikku/http/pikku-http-wirings-meta.gen.d.ts +1 -0
  82. package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +13 -0
  83. package/dist/.pikku/http/pikku-http-wirings.gen.d.ts +4 -0
  84. package/dist/.pikku/http/pikku-http-wirings.gen.js +5 -0
  85. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +91 -0
  86. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +71 -0
  87. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.d.ts +1 -0
  88. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +7 -0
  89. package/dist/.pikku/mcp/pikku-mcp-wirings.gen.d.ts +4 -0
  90. package/dist/.pikku/mcp/pikku-mcp-wirings.gen.js +5 -0
  91. package/dist/.pikku/pikku-bootstrap.gen.d.ts +19 -0
  92. package/dist/.pikku/pikku-bootstrap.gen.js +19 -0
  93. package/dist/.pikku/pikku-services.gen.d.ts +13 -0
  94. package/dist/.pikku/pikku-services.gen.js +5 -0
  95. package/dist/.pikku/pikku-types.gen.d.ts +13 -0
  96. package/dist/.pikku/pikku-types.gen.js +20 -0
  97. package/dist/.pikku/pikku-websocket.gen.d.ts +31 -0
  98. package/dist/.pikku/pikku-websocket.gen.js +49 -0
  99. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +23 -0
  100. package/dist/.pikku/queue/pikku-queue-types.gen.js +16 -0
  101. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.d.ts +1 -0
  102. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +5 -0
  103. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +4 -0
  104. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +5 -0
  105. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.d.ts +1 -0
  106. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +41 -0
  107. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +21 -0
  108. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +16 -0
  109. package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.d.ts +1 -0
  110. package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.js +5 -0
  111. package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.d.ts +4 -0
  112. package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.js +5 -0
  113. package/dist/.pikku/schemas/register.gen.d.ts +1 -0
  114. package/dist/.pikku/schemas/register.gen.js +28 -0
  115. package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -0
  116. package/dist/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +1 -0
  117. package/dist/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -0
  118. package/dist/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +1 -0
  119. package/dist/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +1 -0
  120. package/dist/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +1 -0
  121. package/dist/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +1 -0
  122. package/dist/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +1 -0
  123. package/dist/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +1 -0
  124. package/dist/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +1 -0
  125. package/dist/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +1 -0
  126. package/dist/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -0
  127. package/dist/bin/pikku.js +63 -14
  128. package/dist/src/cli.wiring.d.ts +1 -0
  129. package/dist/src/cli.wiring.js +99 -0
  130. package/dist/src/functions/commands/all.d.ts +1 -0
  131. package/dist/src/functions/commands/all.js +114 -0
  132. package/dist/src/functions/commands/watch.d.ts +1 -0
  133. package/dist/src/functions/commands/watch.js +47 -0
  134. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.d.ts +1 -0
  135. package/dist/src/{runtimes → functions/runtimes}/nextjs/pikku-command-nextjs.js +33 -12
  136. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.d.ts +1 -0
  137. package/dist/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-backend-wrapper.js +2 -2
  138. package/dist/src/functions/wirings/channels/pikku-channels.d.ts +1 -0
  139. package/dist/src/functions/wirings/channels/pikku-channels.js +19 -0
  140. package/dist/src/functions/wirings/channels/pikku-command-channel-types.d.ts +1 -0
  141. package/dist/src/functions/wirings/channels/pikku-command-channel-types.js +19 -0
  142. package/dist/src/functions/wirings/channels/pikku-command-channels-map.d.ts +1 -0
  143. package/dist/src/functions/wirings/channels/pikku-command-channels-map.js +18 -0
  144. package/dist/src/functions/wirings/channels/pikku-command-channels.d.ts +1 -0
  145. package/dist/src/functions/wirings/channels/pikku-command-channels.js +20 -0
  146. package/dist/src/functions/wirings/channels/pikku-command-websocket-typed.d.ts +1 -0
  147. package/dist/src/functions/wirings/channels/pikku-command-websocket-typed.js +27 -0
  148. package/dist/src/functions/wirings/channels/serialize-channel-types.d.ts +4 -0
  149. package/dist/src/functions/wirings/channels/serialize-channel-types.js +94 -0
  150. package/dist/src/{wirings → functions/wirings}/channels/serialize-typed-channel-map.js +6 -3
  151. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.d.ts +1 -0
  152. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +123 -0
  153. package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +1 -0
  154. package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +31 -0
  155. package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -0
  156. package/dist/src/functions/wirings/cli/pikku-command-cli.js +22 -0
  157. package/dist/src/functions/wirings/cli/serialize-channel-cli-client.d.ts +11 -0
  158. package/dist/src/functions/wirings/cli/serialize-channel-cli-client.js +131 -0
  159. package/dist/src/functions/wirings/cli/serialize-channel-cli.d.ts +9 -0
  160. package/dist/src/functions/wirings/cli/serialize-channel-cli.js +67 -0
  161. package/dist/src/functions/wirings/cli/serialize-cli-types.d.ts +4 -0
  162. package/dist/src/functions/wirings/cli/serialize-cli-types.js +73 -0
  163. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.d.ts +14 -0
  164. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +51 -0
  165. package/dist/src/functions/wirings/fetch/index.d.ts +1 -0
  166. package/dist/src/functions/wirings/fetch/index.js +27 -0
  167. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.d.ts +1 -0
  168. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.js +33 -0
  169. package/dist/src/functions/wirings/functions/pikku-command-function-types.d.ts +1 -0
  170. package/dist/src/functions/wirings/functions/pikku-command-function-types.js +18 -0
  171. package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -0
  172. package/dist/src/functions/wirings/functions/pikku-command-functions.js +26 -0
  173. package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +2 -0
  174. package/dist/src/{wirings → functions/wirings}/functions/pikku-command-services.js +36 -29
  175. package/dist/src/functions/wirings/functions/pikku-function-types.d.ts +1 -0
  176. package/dist/src/functions/wirings/functions/pikku-function-types.js +18 -0
  177. package/dist/src/functions/wirings/functions/schemas.d.ts +4 -0
  178. package/dist/src/functions/wirings/functions/schemas.js +20 -0
  179. package/dist/src/{wirings → functions/wirings}/functions/serialize-function-imports.js +4 -21
  180. package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +4 -0
  181. package/dist/src/functions/wirings/functions/serialize-function-types.js +443 -0
  182. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.d.ts +4 -0
  183. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.js +30 -0
  184. package/dist/src/{wirings → functions/wirings}/http/openapi-spec-generator.d.ts +4 -2
  185. package/dist/src/{wirings → functions/wirings}/http/openapi-spec-generator.js +2 -2
  186. package/dist/src/functions/wirings/http/pikku-command-http-map.d.ts +1 -0
  187. package/dist/src/functions/wirings/http/pikku-command-http-map.js +18 -0
  188. package/dist/src/functions/wirings/http/pikku-command-http-routes.d.ts +1 -0
  189. package/dist/src/functions/wirings/http/pikku-command-http-routes.js +20 -0
  190. package/dist/src/functions/wirings/http/pikku-command-http-types.d.ts +1 -0
  191. package/dist/src/functions/wirings/http/pikku-command-http-types.js +19 -0
  192. package/dist/src/functions/wirings/http/pikku-command-openapi.d.ts +1 -0
  193. package/dist/src/functions/wirings/http/pikku-command-openapi.js +37 -0
  194. package/dist/src/functions/wirings/http/pikku-http-routes.d.ts +1 -0
  195. package/dist/src/functions/wirings/http/pikku-http-routes.js +20 -0
  196. package/dist/src/functions/wirings/http/serialize-http-types.d.ts +4 -0
  197. package/dist/src/functions/wirings/http/serialize-http-types.js +89 -0
  198. package/dist/src/{wirings → functions/wirings}/http/serialize-typed-http-map.js +2 -2
  199. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.d.ts +1 -0
  200. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.js +23 -0
  201. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.d.ts +1 -0
  202. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.js +19 -0
  203. package/dist/src/functions/wirings/mcp/pikku-command-mcp.d.ts +1 -0
  204. package/dist/src/{wirings → functions/wirings}/mcp/pikku-command-mcp.js +17 -5
  205. package/dist/src/{wirings → functions/wirings}/mcp/serialize-mcp-json.d.ts +2 -2
  206. package/dist/src/functions/wirings/mcp/serialize-mcp-types.d.ts +4 -0
  207. package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +143 -0
  208. package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -0
  209. package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +36 -0
  210. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.d.ts +8 -0
  211. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.js +44 -0
  212. package/dist/src/functions/wirings/middleware/serialize-middleware-imports.d.ts +2 -0
  213. package/dist/src/functions/wirings/middleware/serialize-middleware-imports.js +43 -0
  214. package/dist/src/functions/wirings/permissions/pikku-command-permissions.d.ts +1 -0
  215. package/dist/src/functions/wirings/permissions/pikku-command-permissions.js +28 -0
  216. package/dist/src/functions/wirings/permissions/serialize-permissions-imports.d.ts +2 -0
  217. package/dist/src/functions/wirings/permissions/serialize-permissions-imports.js +43 -0
  218. package/dist/src/functions/wirings/queue/pikku-command-queue-map.d.ts +1 -0
  219. package/dist/src/functions/wirings/queue/pikku-command-queue-map.js +18 -0
  220. package/dist/src/functions/wirings/queue/pikku-command-queue-service.d.ts +1 -0
  221. package/dist/src/functions/wirings/queue/pikku-command-queue-service.js +27 -0
  222. package/dist/src/functions/wirings/queue/pikku-command-queue-types.d.ts +1 -0
  223. package/dist/src/functions/wirings/queue/pikku-command-queue-types.js +19 -0
  224. package/dist/src/functions/wirings/queue/pikku-command-queue.d.ts +1 -0
  225. package/dist/src/functions/wirings/queue/pikku-command-queue.js +21 -0
  226. package/dist/src/functions/wirings/queue/pikku-queue-map.d.ts +1 -0
  227. package/dist/src/functions/wirings/queue/pikku-queue-map.js +18 -0
  228. package/dist/src/functions/wirings/queue/pikku-queue.d.ts +1 -0
  229. package/dist/src/functions/wirings/queue/pikku-queue.js +21 -0
  230. package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-map.js +2 -2
  231. package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-meta.d.ts +1 -1
  232. package/dist/src/functions/wirings/queue/serialize-queue-types.d.ts +4 -0
  233. package/dist/src/functions/wirings/queue/serialize-queue-types.js +30 -0
  234. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.d.ts +1 -0
  235. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.js +27 -0
  236. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +2 -0
  237. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.js +32 -0
  238. package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -0
  239. package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +20 -0
  240. package/dist/src/{wirings → functions/wirings}/rpc/serialize-typed-rpc-map.js +2 -2
  241. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.d.ts +1 -0
  242. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.js +19 -0
  243. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.d.ts +1 -0
  244. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.js +21 -0
  245. package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.d.ts +4 -0
  246. package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.js +28 -0
  247. package/dist/src/middleware/log-command-info-and-time.d.ts +13 -0
  248. package/dist/src/middleware/log-command-info-and-time.js +15 -0
  249. package/dist/src/services/cli-logger-forwarder.service.d.ts +30 -0
  250. package/dist/src/services/cli-logger-forwarder.service.js +64 -0
  251. package/dist/src/services/cli-logger.service.d.ts +23 -0
  252. package/dist/src/services/cli-logger.service.js +77 -0
  253. package/dist/src/services.d.ts +20 -0
  254. package/dist/src/services.js +162 -0
  255. package/dist/src/utils/check-required-types.d.ts +10 -0
  256. package/dist/src/utils/check-required-types.js +31 -0
  257. package/dist/src/utils/custom-types-generator.d.ts +2 -0
  258. package/dist/src/utils/custom-types-generator.js +43 -0
  259. package/dist/src/utils/file-import-path.d.ts +1 -0
  260. package/dist/src/utils/file-import-path.js +43 -0
  261. package/dist/src/utils/file-imports-serializer.d.ts +1 -0
  262. package/dist/src/utils/file-imports-serializer.js +13 -0
  263. package/dist/src/utils/file-writer.d.ts +9 -0
  264. package/dist/src/utils/file-writer.js +50 -0
  265. package/dist/src/utils/generate-bootstrap-file.d.ts +3 -0
  266. package/dist/src/utils/generate-bootstrap-file.js +21 -0
  267. package/dist/src/utils/get-cli-version.d.ts +5 -0
  268. package/dist/src/utils/get-cli-version.js +27 -0
  269. package/dist/src/utils/pikku-cli-config.d.ts +4 -0
  270. package/dist/src/utils/pikku-cli-config.js +224 -0
  271. package/dist/src/utils/pikku-files-and-methods.d.ts +21 -0
  272. package/dist/src/utils/pikku-files-and-methods.js +70 -0
  273. package/dist/src/{schema-generator.d.ts → utils/schema-generator.d.ts} +1 -1
  274. package/dist/src/{schema-generator.js → utils/schema-generator.js} +4 -3
  275. package/dist/src/{serialize-import-map.js → utils/serialize-import-map.js} +1 -4
  276. package/dist/tsconfig.tsbuildinfo +1 -1
  277. package/package.json +13 -11
  278. package/pikku.config.json +26 -0
  279. package/src/cli.wiring.ts +102 -0
  280. package/src/functions/commands/all.ts +153 -0
  281. package/src/functions/commands/watch.ts +58 -0
  282. package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +111 -0
  283. package/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-backend-wrapper.ts +2 -2
  284. package/src/functions/wirings/channels/pikku-channels.ts +35 -0
  285. package/src/functions/wirings/channels/pikku-command-channel-types.ts +25 -0
  286. package/src/functions/wirings/channels/pikku-command-channels-map.ts +26 -0
  287. package/src/functions/wirings/channels/pikku-command-channels.ts +40 -0
  288. package/src/functions/wirings/channels/pikku-command-websocket-typed.ts +37 -0
  289. package/src/functions/wirings/channels/serialize-channel-types.ts +94 -0
  290. package/src/{wirings → functions/wirings}/channels/serialize-typed-channel-map.ts +6 -3
  291. package/src/functions/wirings/cli/pikku-command-cli-entry.ts +216 -0
  292. package/src/functions/wirings/cli/pikku-command-cli-types.ts +48 -0
  293. package/src/functions/wirings/cli/pikku-command-cli.ts +39 -0
  294. package/src/functions/wirings/cli/serialize-channel-cli-client.ts +171 -0
  295. package/src/functions/wirings/cli/serialize-channel-cli.ts +102 -0
  296. package/src/functions/wirings/cli/serialize-cli-types.ts +79 -0
  297. package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +80 -0
  298. package/src/functions/wirings/fetch/index.ts +36 -0
  299. package/src/functions/wirings/functions/pikku-command-function-types-split.ts +60 -0
  300. package/src/functions/wirings/functions/pikku-command-function-types.ts +43 -0
  301. package/src/functions/wirings/functions/pikku-command-functions.ts +59 -0
  302. package/src/functions/wirings/functions/pikku-command-services.ts +111 -0
  303. package/src/functions/wirings/functions/pikku-function-types.ts +43 -0
  304. package/src/functions/wirings/functions/schemas.ts +45 -0
  305. package/src/{wirings → functions/wirings}/functions/serialize-function-imports.ts +4 -30
  306. package/src/functions/wirings/functions/serialize-function-types.ts +453 -0
  307. package/src/functions/wirings/functions/serialize-pikku-types-hub.ts +38 -0
  308. package/src/{wirings → functions/wirings}/http/openapi-spec-generator.ts +5 -2
  309. package/src/functions/wirings/http/pikku-command-http-map.ts +27 -0
  310. package/src/functions/wirings/http/pikku-command-http-routes.ts +36 -0
  311. package/src/functions/wirings/http/pikku-command-http-types.ts +25 -0
  312. package/src/functions/wirings/http/pikku-command-openapi.ts +62 -0
  313. package/src/functions/wirings/http/pikku-http-routes.ts +35 -0
  314. package/src/functions/wirings/http/serialize-http-types.ts +89 -0
  315. package/src/{wirings → functions/wirings}/http/serialize-typed-http-map.ts +2 -2
  316. package/src/functions/wirings/mcp/pikku-command-mcp-json.ts +33 -0
  317. package/src/functions/wirings/mcp/pikku-command-mcp-types.ts +25 -0
  318. package/src/{wirings → functions/wirings}/mcp/pikku-command-mcp.ts +50 -46
  319. package/src/{wirings → functions/wirings}/mcp/serialize-mcp-json.ts +2 -2
  320. package/src/functions/wirings/mcp/serialize-mcp-types.ts +143 -0
  321. package/src/functions/wirings/middleware/pikku-command-middleware.ts +63 -0
  322. package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +55 -0
  323. package/src/functions/wirings/middleware/serialize-middleware-imports.ts +78 -0
  324. package/src/functions/wirings/permissions/pikku-command-permissions.ts +49 -0
  325. package/src/functions/wirings/permissions/serialize-permissions-imports.test.ts +274 -0
  326. package/src/functions/wirings/permissions/serialize-permissions-imports.ts +78 -0
  327. package/src/functions/wirings/queue/pikku-command-queue-map.ts +26 -0
  328. package/src/functions/wirings/queue/pikku-command-queue-service.ts +37 -0
  329. package/src/functions/wirings/queue/pikku-command-queue-types.ts +25 -0
  330. package/src/functions/wirings/queue/pikku-command-queue.ts +41 -0
  331. package/src/functions/wirings/queue/pikku-queue-map.ts +26 -0
  332. package/src/functions/wirings/queue/pikku-queue.ts +41 -0
  333. package/src/{wirings → functions/wirings}/queue/serialize-queue-map.ts +2 -2
  334. package/src/{wirings → functions/wirings}/queue/serialize-queue-meta.ts +1 -1
  335. package/src/functions/wirings/queue/serialize-queue-types.ts +30 -0
  336. package/src/functions/wirings/rpc/pikku-command-rpc-client.ts +35 -0
  337. package/src/functions/wirings/rpc/pikku-command-rpc-map.ts +48 -0
  338. package/src/functions/wirings/rpc/pikku-command-rpc.ts +26 -0
  339. package/src/{wirings → functions/wirings}/rpc/serialize-typed-rpc-map.ts +2 -2
  340. package/src/functions/wirings/scheduler/pikku-command-scheduler-types.ts +25 -0
  341. package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +41 -0
  342. package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +28 -0
  343. package/src/middleware/log-command-info-and-time.ts +35 -0
  344. package/src/services/cli-logger-forwarder.service.ts +90 -0
  345. package/src/services/cli-logger.service.ts +93 -0
  346. package/src/services.ts +240 -0
  347. package/src/utils/check-required-types.ts +53 -0
  348. package/src/utils/custom-types-generator.ts +55 -0
  349. package/src/{utils.test.ts → utils/file-import-path.test.ts} +1 -1
  350. package/src/utils/file-import-path.ts +53 -0
  351. package/src/utils/file-imports-serializer.ts +25 -0
  352. package/src/utils/file-writer.ts +72 -0
  353. package/src/utils/generate-bootstrap-file.ts +43 -0
  354. package/src/utils/get-cli-version.ts +28 -0
  355. package/src/utils/pikku-cli-config.ts +327 -0
  356. package/src/utils/pikku-files-and-methods.ts +148 -0
  357. package/src/{schema-generator.ts → utils/schema-generator.ts} +10 -4
  358. package/src/{serialize-import-map.ts → utils/serialize-import-map.ts} +1 -5
  359. package/tsconfig.json +2 -2
  360. package/types/application-types.d.ts +23 -0
  361. package/types/config.d.ts +204 -0
  362. package/bin/pikku-all.ts +0 -349
  363. package/bin/pikku-fetch.ts +0 -27
  364. package/bin/pikku-nextjs.ts +0 -44
  365. package/bin/pikku-openapi.ts +0 -31
  366. package/bin/pikku-queue-service.ts +0 -28
  367. package/bin/pikku-rpc.ts +0 -28
  368. package/bin/pikku-schemas.ts +0 -31
  369. package/bin/pikku-websocket.ts +0 -28
  370. package/dist/bin/pikku-all.d.ts +0 -4
  371. package/dist/bin/pikku-all.js +0 -194
  372. package/dist/bin/pikku-fetch.d.ts +0 -4
  373. package/dist/bin/pikku-fetch.js +0 -19
  374. package/dist/bin/pikku-nextjs.d.ts +0 -4
  375. package/dist/bin/pikku-nextjs.js +0 -24
  376. package/dist/bin/pikku-openapi.d.ts +0 -2
  377. package/dist/bin/pikku-openapi.js +0 -19
  378. package/dist/bin/pikku-queue-service.d.ts +0 -4
  379. package/dist/bin/pikku-queue-service.js +0 -19
  380. package/dist/bin/pikku-rpc.d.ts +0 -4
  381. package/dist/bin/pikku-rpc.js +0 -19
  382. package/dist/bin/pikku-schemas.d.ts +0 -2
  383. package/dist/bin/pikku-schemas.js +0 -21
  384. package/dist/bin/pikku-websocket.d.ts +0 -4
  385. package/dist/bin/pikku-websocket.js +0 -19
  386. package/dist/src/inspector-glob.d.ts +0 -2
  387. package/dist/src/inspector-glob.js +0 -12
  388. package/dist/src/pikku-cli-config.d.ts +0 -56
  389. package/dist/src/pikku-cli-config.js +0 -203
  390. package/dist/src/pikku-command-schemas.d.ts +0 -2
  391. package/dist/src/pikku-command-schemas.js +0 -8
  392. package/dist/src/runtimes/nextjs/pikku-command-nextjs.d.ts +0 -2
  393. package/dist/src/runtimes/nextjs/serialize-nextjs-backend-wrapper.d.ts +0 -1
  394. package/dist/src/schemas.d.ts +0 -2
  395. package/dist/src/schemas.js +0 -8
  396. package/dist/src/serialize-pikku-types.d.ts +0 -4
  397. package/dist/src/serialize-pikku-types.js +0 -605
  398. package/dist/src/types.d.ts +0 -5
  399. package/dist/src/utils.d.ts +0 -60
  400. package/dist/src/utils.js +0 -248
  401. package/dist/src/wirings/channels/pikku-channels.d.ts +0 -2
  402. package/dist/src/wirings/channels/pikku-channels.js +0 -9
  403. package/dist/src/wirings/channels/pikku-command-channels-map.d.ts +0 -2
  404. package/dist/src/wirings/channels/pikku-command-channels-map.js +0 -8
  405. package/dist/src/wirings/channels/pikku-command-channels.d.ts +0 -2
  406. package/dist/src/wirings/channels/pikku-command-channels.js +0 -9
  407. package/dist/src/wirings/channels/pikku-command-websocket-typed.d.ts +0 -2
  408. package/dist/src/wirings/channels/pikku-command-websocket-typed.js +0 -15
  409. package/dist/src/wirings/fetch/index.d.ts +0 -2
  410. package/dist/src/wirings/fetch/index.js +0 -12
  411. package/dist/src/wirings/functions/pikku-command-function-types.d.ts +0 -2
  412. package/dist/src/wirings/functions/pikku-command-function-types.js +0 -13
  413. package/dist/src/wirings/functions/pikku-command-functions.d.ts +0 -2
  414. package/dist/src/wirings/functions/pikku-command-functions.js +0 -14
  415. package/dist/src/wirings/functions/pikku-command-services.d.ts +0 -3
  416. package/dist/src/wirings/functions/pikku-function-types.d.ts +0 -2
  417. package/dist/src/wirings/functions/pikku-function-types.js +0 -13
  418. package/dist/src/wirings/http/pikku-command-http-map.d.ts +0 -2
  419. package/dist/src/wirings/http/pikku-command-http-map.js +0 -8
  420. package/dist/src/wirings/http/pikku-command-http-routes.d.ts +0 -2
  421. package/dist/src/wirings/http/pikku-command-http-routes.js +0 -9
  422. package/dist/src/wirings/http/pikku-command-openapi.d.ts +0 -2
  423. package/dist/src/wirings/http/pikku-command-openapi.js +0 -20
  424. package/dist/src/wirings/http/pikku-http-routes.d.ts +0 -2
  425. package/dist/src/wirings/http/pikku-http-routes.js +0 -9
  426. package/dist/src/wirings/mcp/pikku-command-mcp-json.d.ts +0 -2
  427. package/dist/src/wirings/mcp/pikku-command-mcp-json.js +0 -13
  428. package/dist/src/wirings/mcp/pikku-command-mcp.d.ts +0 -2
  429. package/dist/src/wirings/queue/pikku-command-queue-map.d.ts +0 -2
  430. package/dist/src/wirings/queue/pikku-command-queue-map.js +0 -8
  431. package/dist/src/wirings/queue/pikku-command-queue-service.d.ts +0 -2
  432. package/dist/src/wirings/queue/pikku-command-queue-service.js +0 -15
  433. package/dist/src/wirings/queue/pikku-command-queue.d.ts +0 -2
  434. package/dist/src/wirings/queue/pikku-command-queue.js +0 -10
  435. package/dist/src/wirings/queue/pikku-queue-map.d.ts +0 -2
  436. package/dist/src/wirings/queue/pikku-queue-map.js +0 -8
  437. package/dist/src/wirings/queue/pikku-queue.d.ts +0 -2
  438. package/dist/src/wirings/queue/pikku-queue.js +0 -10
  439. package/dist/src/wirings/rpc/pikku-command-rpc-client.d.ts +0 -2
  440. package/dist/src/wirings/rpc/pikku-command-rpc-client.js +0 -15
  441. package/dist/src/wirings/rpc/pikku-command-rpc-map.d.ts +0 -3
  442. package/dist/src/wirings/rpc/pikku-command-rpc-map.js +0 -14
  443. package/dist/src/wirings/rpc/pikku-command-rpc.d.ts +0 -2
  444. package/dist/src/wirings/rpc/pikku-command-rpc.js +0 -8
  445. package/dist/src/wirings/scheduler/pikku-command-scheduler.d.ts +0 -2
  446. package/dist/src/wirings/scheduler/pikku-command-scheduler.js +0 -10
  447. package/src/inspector-glob.ts +0 -30
  448. package/src/pikku-cli-config.ts +0 -387
  449. package/src/pikku-command-schemas.ts +0 -35
  450. package/src/runtimes/nextjs/pikku-command-nextjs.ts +0 -110
  451. package/src/schemas.ts +0 -35
  452. package/src/serialize-pikku-types.ts +0 -613
  453. package/src/types.ts +0 -16
  454. package/src/utils.ts +0 -420
  455. package/src/wirings/channels/pikku-channels.ts +0 -41
  456. package/src/wirings/channels/pikku-command-channels-map.ts +0 -26
  457. package/src/wirings/channels/pikku-command-channels.ts +0 -39
  458. package/src/wirings/channels/pikku-command-websocket-typed.ts +0 -36
  459. package/src/wirings/fetch/index.ts +0 -33
  460. package/src/wirings/functions/pikku-command-function-types.ts +0 -53
  461. package/src/wirings/functions/pikku-command-functions.ts +0 -48
  462. package/src/wirings/functions/pikku-command-services.ts +0 -125
  463. package/src/wirings/functions/pikku-function-types.ts +0 -52
  464. package/src/wirings/http/pikku-command-http-map.ts +0 -27
  465. package/src/wirings/http/pikku-command-http-routes.ts +0 -40
  466. package/src/wirings/http/pikku-command-openapi.ts +0 -55
  467. package/src/wirings/http/pikku-http-routes.ts +0 -40
  468. package/src/wirings/mcp/pikku-command-mcp-json.ts +0 -33
  469. package/src/wirings/queue/pikku-command-queue-map.ts +0 -26
  470. package/src/wirings/queue/pikku-command-queue-service.ts +0 -36
  471. package/src/wirings/queue/pikku-command-queue.ts +0 -45
  472. package/src/wirings/queue/pikku-queue-map.ts +0 -26
  473. package/src/wirings/queue/pikku-queue.ts +0 -43
  474. package/src/wirings/rpc/pikku-command-rpc-client.ts +0 -35
  475. package/src/wirings/rpc/pikku-command-rpc-map.ts +0 -49
  476. package/src/wirings/rpc/pikku-command-rpc.ts +0 -24
  477. package/src/wirings/scheduler/pikku-command-scheduler.ts +0 -43
  478. /package/dist/{src/types.js → .pikku/channel/pikku-channels-meta.gen.d.ts} +0 -0
  479. /package/dist/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-http-wrapper.d.ts +0 -0
  480. /package/dist/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-http-wrapper.js +0 -0
  481. /package/dist/src/{wirings → functions/wirings}/channels/serialize-typed-channel-map.d.ts +0 -0
  482. /package/dist/src/{wirings → functions/wirings}/channels/serialize-websocket-wrapper.d.ts +0 -0
  483. /package/dist/src/{wirings → functions/wirings}/channels/serialize-websocket-wrapper.js +0 -0
  484. /package/dist/src/{wirings → functions/wirings}/functions/serialize-function-imports.d.ts +0 -0
  485. /package/dist/src/{wirings → functions/wirings}/http/serialize-fetch-wrapper.d.ts +0 -0
  486. /package/dist/src/{wirings → functions/wirings}/http/serialize-fetch-wrapper.js +0 -0
  487. /package/dist/src/{wirings → functions/wirings}/http/serialize-typed-http-map.d.ts +0 -0
  488. /package/dist/src/{wirings → functions/wirings}/mcp/serialize-mcp-json.js +0 -0
  489. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-map.d.ts +0 -0
  490. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-meta.js +0 -0
  491. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-wrapper.d.ts +0 -0
  492. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-wrapper.js +0 -0
  493. /package/dist/src/{wirings → functions/wirings}/rpc/serialize-rpc-wrapper.d.ts +0 -0
  494. /package/dist/src/{wirings → functions/wirings}/rpc/serialize-rpc-wrapper.js +0 -0
  495. /package/dist/src/{wirings → functions/wirings}/rpc/serialize-typed-rpc-map.d.ts +0 -0
  496. /package/dist/src/{wirings → functions/wirings}/scheduler/serialize-scheduler-meta.d.ts +0 -0
  497. /package/dist/src/{wirings → functions/wirings}/scheduler/serialize-scheduler-meta.js +0 -0
  498. /package/dist/src/{serialize-import-map.d.ts → utils/serialize-import-map.d.ts} +0 -0
  499. /package/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-http-wrapper.ts +0 -0
  500. /package/src/{wirings → functions/wirings}/channels/serialize-websocket-wrapper.ts +0 -0
  501. /package/src/{wirings → functions/wirings}/http/serialize-fetch-wrapper.ts +0 -0
  502. /package/src/{wirings → functions/wirings}/queue/serialize-queue-wrapper.ts +0 -0
  503. /package/src/{wirings → functions/wirings}/rpc/serialize-rpc-wrapper.ts +0 -0
  504. /package/src/{wirings → functions/wirings}/scheduler/serialize-scheduler-meta.ts +0 -0
@@ -0,0 +1,76 @@
1
+ /**
2
+ * This file was generated by @pikku/cli@0.10.0
3
+ */
4
+ import { CorePikkuWebsocket, CorePikkuRouteHandler } from '@pikku/websocket'
5
+ import { ChannelDefaultHandlerOf, ChannelWiringHandlerOf, ChannelsMap } from './channel/pikku-channels-map.gen.d.js';
6
+
7
+ class PikkuWebSocketRoute<Channel extends keyof ChannelsMap, Route extends keyof ChannelsMap[Channel]['routes']> extends CorePikkuRouteHandler {
8
+ public subscribe<
9
+ Method extends keyof ChannelsMap[Channel]['routes'][Route],
10
+ Data extends ChannelWiringHandlerOf<Channel, Route, Method>['output']
11
+ >(method: Method, callback: (data: Data) => void
12
+ ) {
13
+ super.subscribe(method.toString(), callback)
14
+ }
15
+
16
+ public unsubscribe<
17
+ Method extends keyof ChannelsMap[Channel]['routes'][Route],
18
+ Data extends ChannelWiringHandlerOf<Channel, Route, Method>['output']
19
+ >(method: Method, callback?: (data: Data) => void) {
20
+ super.unsubscribe(method.toString(), callback)
21
+ }
22
+
23
+ public send<
24
+ Method extends keyof ChannelsMap[Channel]['routes'][Route],
25
+ Data extends ChannelWiringHandlerOf<Channel, Route, Method>['input']
26
+ >(method: Method, data: Data) {
27
+ super.send(method.toString(), data)
28
+ }
29
+ }
30
+
31
+ export class PikkuWebSocket<Channel extends keyof ChannelsMap, EventHubTopics extends Record<string, any> = {}> extends CorePikkuWebsocket {
32
+ /**
33
+ * Send a message to a specific route and method.
34
+ * Validates the input data type.
35
+ */
36
+ public getRoute<Route extends keyof ChannelsMap[Channel]['routes']>(route: Route): PikkuWebSocketRoute<Channel, Route> {
37
+ return super.getRoute(route)
38
+ }
39
+
40
+ /**
41
+ * Subscribe to a specific route and method.
42
+ */
43
+ public subscribe<Data extends ChannelDefaultHandlerOf<Channel>['output']>(
44
+ callback: (data: Data) => void
45
+ ) {
46
+ super.subscribe(callback)
47
+ }
48
+
49
+ /**
50
+ * Subscribe to a specific route and method.
51
+ */
52
+ public unsubscribe<Data extends ChannelDefaultHandlerOf<Channel>['output']>(
53
+ callback?: (data: Data) => void
54
+ ) {
55
+ super.unsubscribe(callback)
56
+ }
57
+
58
+ public send(data: ChannelDefaultHandlerOf<Channel>['input']) {
59
+ super.send(data)
60
+ }
61
+
62
+ /**
63
+ * Subscribe to a topic from the EventHub system with strong typing.
64
+ */
65
+ public subscribeToEventHub<Topic extends keyof EventHubTopics>(
66
+ topic: Topic,
67
+ callback: (data: EventHubTopics[Topic]) => void
68
+ ) {
69
+ super.subscribe((data) => {
70
+ if (data.topic === topic) {
71
+ callback(data as EventHubTopics[Topic])
72
+ }
73
+ })
74
+ }
75
+ }
76
+
@@ -0,0 +1,27 @@
1
+ /**
2
+ * This file was generated by @pikku/cli@0.10.0
3
+ */
4
+ /**
5
+ * Queue-specific type definitions for tree-shaking optimization
6
+ */
7
+
8
+ import { CoreQueueWorker, wireQueueWorker as wireQueueWorkerCore } from '@pikku/core/queue'
9
+ import type { PikkuFunctionConfig } from '../function/pikku-function-types.gen.js'
10
+
11
+ /**
12
+ * Type definition for queue workers that process background jobs.
13
+ *
14
+ * @template In - Input type for the queue job
15
+ * @template Out - Output type for the queue job
16
+ */
17
+ type QueueWiring<In, Out> = CoreQueueWorker<PikkuFunctionConfig<In, Out>>
18
+
19
+ /**
20
+ * Registers a queue worker with the Pikku framework.
21
+ * Workers process background jobs from queues.
22
+ *
23
+ * @param queueWorker - Queue worker definition with job handler
24
+ */
25
+ export const wireQueueWorker = (queueWorker: QueueWiring<any, any>) => {
26
+ wireQueueWorkerCore(queueWorker as any) // TODO
27
+ }
@@ -0,0 +1,57 @@
1
+ /**
2
+ * This file was generated by @pikku/cli@0.10.0
3
+ */
4
+ /**
5
+ * This provides the structure needed for typescript to be aware of Queue workers and their input/output types
6
+ */
7
+
8
+
9
+
10
+ // Custom types are those that are defined directly within generics
11
+ // or are broken into simpler types
12
+ export type PikkuSchemasOutput = false | true
13
+ export type PikkuChannelsOutput = false | true
14
+ export type PikkuCLIOutput = false | true
15
+ export type PikkuFunctionsOutput = false | true
16
+ export type PikkuHTTPOutput = false | true
17
+ export type PikkuMCPOutput = false | true
18
+ export type PikkuMiddlewareOutput = false | true
19
+ export type PikkuPermissionsOutput = false | true
20
+ export type PikkuQueueOutput = false | true
21
+ export type PikkuRPCOutput = false | true
22
+ export type PikkuSchedulerOutput = false | true
23
+
24
+ import type { QueueJob } from '@pikku/core/queue'
25
+
26
+ interface QueueHandler<I, O> {
27
+ input: I;
28
+ output: O;
29
+ }
30
+
31
+ export type QueueMap = {
32
+ };
33
+
34
+
35
+ type QueueAdd = <Name extends keyof QueueMap>(
36
+ name: Name,
37
+ data: QueueMap[Name]['input'],
38
+ options?: {
39
+ priority?: number
40
+ delay?: number
41
+ attempts?: number
42
+ removeOnComplete?: number
43
+ removeOnFail?: number
44
+ jobId?: string
45
+ }
46
+ ) => Promise<string>
47
+
48
+ type QueueGetJob = <Name extends keyof QueueMap>(
49
+ name: Name,
50
+ jobId: string
51
+ ) => Promise<QueueJob<QueueMap[Name]['input'], QueueMap[Name]['output']> | null>
52
+
53
+ export type TypedPikkuQueue = {
54
+ add: QueueAdd;
55
+ getJob: QueueGetJob;
56
+ }
57
+
@@ -0,0 +1,5 @@
1
+ /**
2
+ * This file was generated by @pikku/cli@0.10.0
3
+ */
4
+ import { pikkuState } from '@pikku/core'
5
+ pikkuState('queue', 'meta', {})
@@ -0,0 +1,4 @@
1
+ /**
2
+ * This file was generated by @pikku/cli@0.10.0
3
+ */
4
+ /* The files with an addQueueWorkers function call */
@@ -0,0 +1,47 @@
1
+ /**
2
+ * This file was generated by @pikku/cli@0.10.0
3
+ */
4
+ /**
5
+ * This provides the structure needed for typescript to be aware of RPCs and their return types
6
+ */
7
+
8
+
9
+
10
+ // Custom types are those that are defined directly within generics
11
+ // or are broken into simpler types
12
+ export type PikkuSchemasOutput = false | true
13
+ export type PikkuChannelsOutput = false | true
14
+ export type PikkuCLIOutput = false | true
15
+ export type PikkuFunctionsOutput = false | true
16
+ export type PikkuHTTPOutput = false | true
17
+ export type PikkuMCPOutput = false | true
18
+ export type PikkuMiddlewareOutput = false | true
19
+ export type PikkuPermissionsOutput = false | true
20
+ export type PikkuQueueOutput = false | true
21
+ export type PikkuRPCOutput = false | true
22
+ export type PikkuSchedulerOutput = false | true
23
+
24
+ interface RPCHandler<I, O> {
25
+ input: I;
26
+ output: O;
27
+ }
28
+
29
+ export type RPCMap = {
30
+ };
31
+
32
+
33
+ export type RPCInvoke = <Name extends keyof RPCMap>(
34
+ name: Name,
35
+ data: RPCMap[Name]['input'],
36
+ options?: {
37
+ location?: 'local' | 'remote' | 'auto'
38
+ }
39
+ ) => Promise<RPCMap[Name]['output']>
40
+
41
+ export type TypedPikkuRPC = {
42
+ depth: number;
43
+ global: boolean;
44
+ invoke: RPCInvoke;
45
+ invokeExposed: (name: string, data: any) => Promise<any>
46
+ }
47
+
@@ -0,0 +1,82 @@
1
+ /**
2
+ * This file was generated by @pikku/cli@0.10.0
3
+ */
4
+ /**
5
+ * This provides the structure needed for typescript to be aware of RPCs and their return types
6
+ */
7
+
8
+
9
+
10
+ // Custom types are those that are defined directly within generics
11
+ // or are broken into simpler types
12
+ export type PikkuSchemasOutput = false | true
13
+ export type PikkuChannelsOutput = false | true
14
+ export type PikkuCLIOutput = false | true
15
+ export type PikkuFunctionsOutput = false | true
16
+ export type PikkuHTTPOutput = false | true
17
+ export type PikkuMCPOutput = false | true
18
+ export type PikkuMiddlewareOutput = false | true
19
+ export type PikkuPermissionsOutput = false | true
20
+ export type PikkuQueueOutput = false | true
21
+ export type PikkuRPCOutput = false | true
22
+ export type PikkuSchedulerOutput = false | true
23
+
24
+ interface RPCHandler<I, O> {
25
+ input: I;
26
+ output: O;
27
+ }
28
+
29
+ export type RPCMap = {
30
+ readonly 'pikkuSchemas': RPCHandler<null, PikkuSchemasOutput>,
31
+ readonly 'pikkuFetch': RPCHandler<null, null>,
32
+ readonly 'pikkuWebSocketTyped': RPCHandler<null, null>,
33
+ readonly 'pikkuRPCClient': RPCHandler<null, null>,
34
+ readonly 'pikkuQueueService': RPCHandler<null, null>,
35
+ readonly 'pikkuOpenAPI': RPCHandler<null, null>,
36
+ readonly 'pikkuNext': RPCHandler<null, null>,
37
+ readonly 'all': RPCHandler<null, null>,
38
+ readonly 'watch': RPCHandler<null, null>,
39
+ readonly 'pikkuChannels': RPCHandler<null, PikkuChannelsOutput>,
40
+ readonly 'pikkuChannelTypes': RPCHandler<null, null>,
41
+ readonly 'pikkuChannelsMap': RPCHandler<null, null>,
42
+ readonly 'pikkuCLIEntry': RPCHandler<null, null>,
43
+ readonly 'pikkuCLITypes': RPCHandler<null, null>,
44
+ readonly 'pikkuCLI': RPCHandler<null, PikkuCLIOutput>,
45
+ readonly 'pikkuFunctionTypesSplit': RPCHandler<null, null>,
46
+ readonly 'pikkuFunctionTypes': RPCHandler<null, null>,
47
+ readonly 'pikkuFunctions': RPCHandler<null, PikkuFunctionsOutput>,
48
+ readonly 'pikkuServices': RPCHandler<null, null>,
49
+ readonly 'pikkuHTTPMap': RPCHandler<null, null>,
50
+ readonly 'pikkuHTTP': RPCHandler<null, PikkuHTTPOutput>,
51
+ readonly 'pikkuHTTPTypes': RPCHandler<null, null>,
52
+ readonly 'pikkuMCPJSON': RPCHandler<null, null>,
53
+ readonly 'pikkuMCPTypes': RPCHandler<null, null>,
54
+ readonly 'pikkuMCP': RPCHandler<null, PikkuMCPOutput>,
55
+ readonly 'pikkuMiddleware': RPCHandler<null, PikkuMiddlewareOutput>,
56
+ readonly 'pikkuPermissions': RPCHandler<null, PikkuPermissionsOutput>,
57
+ readonly 'pikkuQueueMap': RPCHandler<null, null>,
58
+ readonly 'pikkuQueueTypes': RPCHandler<null, null>,
59
+ readonly 'pikkuQueue': RPCHandler<null, PikkuQueueOutput>,
60
+ readonly 'pikkuRPCInternalMap': RPCHandler<null, null>,
61
+ readonly 'pikkuRPCExposedMap': RPCHandler<null, null>,
62
+ readonly 'pikkuRPC': RPCHandler<null, PikkuRPCOutput>,
63
+ readonly 'pikkuSchedulerTypes': RPCHandler<null, null>,
64
+ readonly 'pikkuScheduler': RPCHandler<null, PikkuSchedulerOutput>,
65
+ };
66
+
67
+
68
+ export type RPCInvoke = <Name extends keyof RPCMap>(
69
+ name: Name,
70
+ data: RPCMap[Name]['input'],
71
+ options?: {
72
+ location?: 'local' | 'remote' | 'auto'
73
+ }
74
+ ) => Promise<RPCMap[Name]['output']>
75
+
76
+ export type TypedPikkuRPC = {
77
+ depth: number;
78
+ global: boolean;
79
+ invoke: RPCInvoke;
80
+ invokeExposed: (name: string, data: any) => Promise<any>
81
+ }
82
+
@@ -0,0 +1,41 @@
1
+ /**
2
+ * This file was generated by @pikku/cli@0.10.0
3
+ */
4
+ import { pikkuState } from '@pikku/core'
5
+ pikkuState('rpc', 'meta', {
6
+ "pikkuSchemas": "pikkuSchemas",
7
+ "pikkuFetch": "pikkuFetch",
8
+ "pikkuWebSocketTyped": "pikkuWebSocketTyped",
9
+ "pikkuRPCClient": "pikkuRPCClient",
10
+ "pikkuQueueService": "pikkuQueueService",
11
+ "pikkuOpenAPI": "pikkuOpenAPI",
12
+ "pikkuNext": "pikkuNext",
13
+ "all": "all",
14
+ "watch": "watch",
15
+ "pikkuChannels": "pikkuChannels",
16
+ "pikkuChannelTypes": "pikkuChannelTypes",
17
+ "pikkuChannelsMap": "pikkuChannelsMap",
18
+ "pikkuCLIEntry": "pikkuCLIEntry",
19
+ "pikkuCLITypes": "pikkuCLITypes",
20
+ "pikkuCLI": "pikkuCLI",
21
+ "pikkuFunctionTypesSplit": "pikkuFunctionTypesSplit",
22
+ "pikkuFunctionTypes": "pikkuFunctionTypes",
23
+ "pikkuFunctions": "pikkuFunctions",
24
+ "pikkuServices": "pikkuServices",
25
+ "pikkuHTTPMap": "pikkuHTTPMap",
26
+ "pikkuHTTP": "pikkuHTTP",
27
+ "pikkuHTTPTypes": "pikkuHTTPTypes",
28
+ "pikkuMCPJSON": "pikkuMCPJSON",
29
+ "pikkuMCPTypes": "pikkuMCPTypes",
30
+ "pikkuMCP": "pikkuMCP",
31
+ "pikkuMiddleware": "pikkuMiddleware",
32
+ "pikkuPermissions": "pikkuPermissions",
33
+ "pikkuQueueMap": "pikkuQueueMap",
34
+ "pikkuQueueTypes": "pikkuQueueTypes",
35
+ "pikkuQueue": "pikkuQueue",
36
+ "pikkuRPCInternalMap": "pikkuRPCInternalMap",
37
+ "pikkuRPCExposedMap": "pikkuRPCExposedMap",
38
+ "pikkuRPC": "pikkuRPC",
39
+ "pikkuSchedulerTypes": "pikkuSchedulerTypes",
40
+ "pikkuScheduler": "pikkuScheduler"
41
+ })
@@ -0,0 +1,25 @@
1
+ /**
2
+ * This file was generated by @pikku/cli@0.10.0
3
+ */
4
+ /**
5
+ * Scheduler-specific type definitions for tree-shaking optimization
6
+ */
7
+
8
+ import { CoreScheduledTask, wireScheduler as wireSchedulerCore } from '@pikku/core/scheduler'
9
+ import type { PikkuFunctionConfig, PikkuMiddleware } from '../function/pikku-function-types.gen.js'
10
+
11
+ /**
12
+ * Type definition for scheduled tasks that run at specified intervals.
13
+ * These are sessionless functions that execute based on cron expressions.
14
+ */
15
+ type SchedulerWiring = CoreScheduledTask<PikkuFunctionConfig<void, void>, PikkuMiddleware>
16
+
17
+ /**
18
+ * Registers a scheduled task with the Pikku framework.
19
+ * Tasks run based on cron expressions and are sessionless.
20
+ *
21
+ * @param task - Scheduled task definition with cron expression and handler
22
+ */
23
+ export const wireScheduler = (task: SchedulerWiring) => {
24
+ wireSchedulerCore(task as any) // TODO
25
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * This file was generated by @pikku/cli@0.10.0
3
+ */
4
+ import { pikkuState } from '@pikku/core'
5
+ pikkuState('scheduler', 'meta', {})
@@ -0,0 +1,4 @@
1
+ /**
2
+ * This file was generated by @pikku/cli@0.10.0
3
+ */
4
+ /* The files with an addScheduledTasks function call */
@@ -0,0 +1,51 @@
1
+ /**
2
+ * This file was generated by @pikku/cli@0.10.0
3
+ */
4
+ import { addSchema } from '@pikku/core/schema'
5
+
6
+ import * as PikkuSchemasOutput from './schemas/PikkuSchemasOutput.schema.json' with { type: 'json' }
7
+ addSchema('PikkuSchemasOutput', PikkuSchemasOutput)
8
+
9
+
10
+ import * as PikkuChannelsOutput from './schemas/PikkuChannelsOutput.schema.json' with { type: 'json' }
11
+ addSchema('PikkuChannelsOutput', PikkuChannelsOutput)
12
+
13
+
14
+ import * as PikkuCLIOutput from './schemas/PikkuCLIOutput.schema.json' with { type: 'json' }
15
+ addSchema('PikkuCLIOutput', PikkuCLIOutput)
16
+
17
+
18
+ import * as PikkuFunctionsOutput from './schemas/PikkuFunctionsOutput.schema.json' with { type: 'json' }
19
+ addSchema('PikkuFunctionsOutput', PikkuFunctionsOutput)
20
+
21
+
22
+ import * as PikkuHTTPOutput from './schemas/PikkuHTTPOutput.schema.json' with { type: 'json' }
23
+ addSchema('PikkuHTTPOutput', PikkuHTTPOutput)
24
+
25
+
26
+ import * as PikkuMCPOutput from './schemas/PikkuMCPOutput.schema.json' with { type: 'json' }
27
+ addSchema('PikkuMCPOutput', PikkuMCPOutput)
28
+
29
+
30
+ import * as PikkuMiddlewareOutput from './schemas/PikkuMiddlewareOutput.schema.json' with { type: 'json' }
31
+ addSchema('PikkuMiddlewareOutput', PikkuMiddlewareOutput)
32
+
33
+
34
+ import * as PikkuPermissionsOutput from './schemas/PikkuPermissionsOutput.schema.json' with { type: 'json' }
35
+ addSchema('PikkuPermissionsOutput', PikkuPermissionsOutput)
36
+
37
+
38
+ import * as PikkuQueueOutput from './schemas/PikkuQueueOutput.schema.json' with { type: 'json' }
39
+ addSchema('PikkuQueueOutput', PikkuQueueOutput)
40
+
41
+
42
+ import * as PikkuRPCOutput from './schemas/PikkuRPCOutput.schema.json' with { type: 'json' }
43
+ addSchema('PikkuRPCOutput', PikkuRPCOutput)
44
+
45
+
46
+ import * as PikkuSchedulerOutput from './schemas/PikkuSchedulerOutput.schema.json' with { type: 'json' }
47
+ addSchema('PikkuSchedulerOutput', PikkuSchedulerOutput)
48
+
49
+
50
+ import * as PikkuCLIConfig from './schemas/PikkuCLIConfig.schema.json' with { type: 'json' }
51
+ addSchema('PikkuCLIConfig', PikkuCLIConfig)
@@ -0,0 +1 @@
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","type":"object","additionalProperties":false,"properties":{"outDir":{"type":"string"},"schemaDirectory":{"type":"string"},"typesDeclarationFile":{"type":"string"},"functionsFile":{"type":"string"},"functionsMetaFile":{"type":"string"},"functionsMetaMinFile":{"type":"string"},"functionTypesFile":{"type":"string"},"httpWiringsFile":{"type":"string"},"httpWiringMetaFile":{"type":"string"},"httpMapDeclarationFile":{"type":"string"},"httpTypesFile":{"type":"string"},"channelsWiringFile":{"type":"string"},"channelsWiringMetaFile":{"type":"string"},"channelsMapDeclarationFile":{"type":"string"},"channelsTypesFile":{"type":"string"},"rpcInternalWiringMetaFile":{"type":"string"},"rpcInternalMapDeclarationFile":{"type":"string"},"rpcMapDeclarationFile":{"type":"string"},"schedulersWiringFile":{"type":"string"},"schedulersWiringMetaFile":{"type":"string"},"schedulersTypesFile":{"type":"string"},"queueWorkersWiringFile":{"type":"string"},"queueWorkersWiringMetaFile":{"type":"string"},"queueMapDeclarationFile":{"type":"string"},"queueTypesFile":{"type":"string"},"mcpWiringsFile":{"type":"string"},"mcpWiringsMetaFile":{"type":"string"},"mcpTypesFile":{"type":"string"},"cliWiringsFile":{"type":"string"},"cliWiringMetaFile":{"type":"string"},"cliBootstrapFile":{"type":"string"},"cliTypesFile":{"type":"string"},"servicesFile":{"type":"string"},"middlewareFile":{"type":"string"},"middlewareGroupsMetaFile":{"type":"string"},"permissionsFile":{"type":"string"},"bootstrapFile":{"type":"string"},"$schema":{"type":"string"},"extends":{"type":"string"},"rootDir":{"type":"string"},"srcDirectories":{"type":"array","items":{"type":"string"}},"packageMappings":{"type":"object","additionalProperties":{"type":"string"}},"supportsImportAttributes":{"type":"boolean"},"configFile":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"types":{"type":"array","items":{"type":"string"}},"userSessionType":{"type":"string"},"singletonServicesFactoryType":{"type":"string"},"sessionServicesFactoryType":{"type":"string"},"configDir":{"type":"string"},"tsconfig":{"type":"string"},"nextBackendFile":{"type":"string"},"nextHTTPFile":{"type":"string"},"fetchFile":{"type":"string"},"websocketFile":{"type":"string"},"rpcWiringsFile":{"type":"string"},"queueWiringsFile":{"type":"string"},"mcpJsonFile":{"type":"string"},"openAPI":{"type":"object","properties":{"outputFile":{"type":"string"},"additionalInfo":{"$ref":"#/definitions/OpenAPISpecInfo"}},"required":["outputFile","additionalInfo"],"additionalProperties":false},"cli":{"type":"object","properties":{"entrypoints":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"cli"},"path":{"type":"string"}},"required":["type","path"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"channel"},"name":{"type":"string"},"route":{"type":"string"},"wirePath":{"type":"string"},"path":{"type":"string"}},"required":["type","wirePath"],"additionalProperties":false},{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"cli"},"path":{"type":"string"}},"required":["type","path"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"channel"},"name":{"type":"string"},"route":{"type":"string"},"wirePath":{"type":"string"},"path":{"type":"string"}},"required":["type","wirePath"],"additionalProperties":false}]}}]}}},"additionalProperties":false},"forceRequiredServices":{"type":"array","items":{"type":"string"}},"schemasFromTypes":{"type":"array","items":{"type":"string"}},"stateOutput":{"type":"string"},"stateInput":{"type":"string"},"filters":{"$ref":"#/definitions/InspectorFilters"}},"required":["bootstrapFile","channelsMapDeclarationFile","channelsTypesFile","channelsWiringFile","channelsWiringMetaFile","cliBootstrapFile","cliTypesFile","cliWiringMetaFile","cliWiringsFile","configDir","filters","functionTypesFile","functionsFile","functionsMetaFile","functionsMetaMinFile","httpMapDeclarationFile","httpTypesFile","httpWiringMetaFile","httpWiringsFile","mcpTypesFile","mcpWiringsFile","mcpWiringsMetaFile","middlewareFile","middlewareGroupsMetaFile","outDir","packageMappings","permissionsFile","queueMapDeclarationFile","queueTypesFile","queueWorkersWiringFile","queueWorkersWiringMetaFile","rootDir","rpcInternalMapDeclarationFile","rpcInternalWiringMetaFile","rpcMapDeclarationFile","schedulersTypesFile","schedulersWiringFile","schedulersWiringMetaFile","schemaDirectory","servicesFile","srcDirectories","supportsImportAttributes","tsconfig","typesDeclarationFile"],"definitions":{"OpenAPISpecInfo":{"type":"object","properties":{"info":{"type":"object","properties":{"title":{"type":"string"},"version":{"type":"string"},"description":{"type":"string"},"termsOfService":{"type":"string"},"contact":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"email":{"type":"string"}},"additionalProperties":false},"license":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"additionalProperties":false}},"required":["title","version","description"],"additionalProperties":false},"servers":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"description":{"type":"string"}},"required":["url"],"additionalProperties":false}},"tags":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"}},"required":["name"],"additionalProperties":false}},"externalDocs":{"type":"object","properties":{"description":{"type":"string"},"url":{"type":"string"}},"required":["url"],"additionalProperties":false},"securitySchemes":{"type":"object"},"security":{"type":"array","items":{"type":"object","additionalProperties":{"type":"array","items":{}}}}},"required":["info","servers"],"additionalProperties":false},"InspectorFilters":{"type":"object","properties":{"names":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"types":{"type":"array","items":{"type":"string"}},"directories":{"type":"array","items":{"type":"string"}},"httpRoutes":{"type":"array","items":{"type":"string"}},"httpMethods":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}}
@@ -0,0 +1 @@
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","type":"boolean","enum":[false,true],"definitions":{}}
@@ -0,0 +1 @@
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","type":"boolean","enum":[false,true],"definitions":{}}
@@ -0,0 +1 @@
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","type":"boolean","enum":[false,true],"definitions":{}}
@@ -0,0 +1 @@
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","type":"boolean","enum":[false,true],"definitions":{}}
@@ -0,0 +1 @@
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","type":"boolean","enum":[false,true],"definitions":{}}
@@ -0,0 +1 @@
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","type":"boolean","enum":[false,true],"definitions":{}}
@@ -0,0 +1 @@
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","type":"boolean","enum":[false,true],"definitions":{}}
@@ -0,0 +1 @@
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","type":"boolean","enum":[false,true],"definitions":{}}
@@ -0,0 +1 @@
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","type":"boolean","enum":[false,true],"definitions":{}}
@@ -0,0 +1 @@
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","type":"boolean","enum":[false,true],"definitions":{}}
@@ -0,0 +1 @@
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","type":"boolean","enum":[false,true],"description":"This provides the structure needed for typescript to be aware of RPCs and their return types","definitions":{}}
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @pikku/cli
2
2
 
3
+ ## 0.10.0
4
+
5
+ This release includes significant improvements across the framework including tree-shaking support, middleware/permission factories, enhanced CLI functionality, improved TypeScript type safety, and comprehensive test strategies.
6
+
7
+ For complete details, see https://pikku.dev/changelogs/0_10_0.md
8
+
9
+ ## 0.9.16-next.0
10
+
11
+ ### Patch Changes
12
+
13
+ - feat: running @pikku/cli using pikku
14
+ - Updated dependencies
15
+ - @pikku/core@0.9.12-next.0
16
+ - @pikku/inspector@0.9.6-next.0
17
+
3
18
  ## 0.9.15
4
19
 
5
20
  ### Patch Changes
package/bin/pikku.ts CHANGED
@@ -1,22 +1,105 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from 'commander'
3
- import { schemas } from './pikku-schemas.js'
4
- import { nextjs } from './pikku-nextjs.js'
5
- import { all } from './pikku-all.js'
6
- import { fetch } from './pikku-fetch.js'
7
- import { queue } from './pikku-queue-service.js'
8
- import { websocket } from './pikku-websocket.js'
9
- import { rpc } from './pikku-rpc.js'
3
+ import { createConfig, createSingletonServices } from '../src/services.js'
4
+ import { PikkuRPCService } from '@pikku/core/rpc'
5
+ import { LocalVariablesService } from '@pikku/core/services'
6
+ import { existsSync } from 'fs'
7
+ import { fileURLToPath } from 'url'
8
+ import { dirname, join } from 'path'
9
+
10
+ const __filename = fileURLToPath(import.meta.url)
11
+ const __dirname = dirname(__filename)
12
+
13
+ // Check if Pikku CLI is available
14
+ const pikkuCliPath = join(__dirname, '../.pikku/cli/pikku-cli.gen.js')
15
+
16
+ if (existsSync(pikkuCliPath)) {
17
+ try {
18
+ // Use the generated Pikku CLI
19
+ const { PikkuCLI } = await import('../.pikku/cli/pikku-cli.gen.js')
20
+ await PikkuCLI(process.argv.slice(2))
21
+ process.exit(0)
22
+ } catch (error) {
23
+ // If import fails, fall back to Commander.js
24
+ console.warn(
25
+ 'Failed to load Pikku CLI, using fallback mode:',
26
+ error.message
27
+ )
28
+ }
29
+ }
30
+
31
+ // Fallback to Commander.js for initial setup
32
+ // Import bootstrap if it exists
33
+ try {
34
+ await import('../.pikku/pikku-bootstrap.gen.js')
35
+ } catch {
36
+ // Bootstrap doesn't exist yet, continue anyway
37
+ }
38
+
39
+ const action = async (command, cliConfig) => {
40
+ const config = await createConfig(new LocalVariablesService(), cliConfig)
41
+ const services = await createSingletonServices(config)
42
+ const rpcWrapper = new PikkuRPCService()
43
+ const { rpc } = await rpcWrapper.injectRPCService(services, {}, false)
44
+
45
+ if (command === 'watch') {
46
+ await rpc.invoke('watch', null)
47
+ } else {
48
+ await rpc.invoke('all', null)
49
+ }
50
+ }
51
+
52
+ const all = (program, name, description) => {
53
+ program
54
+ .command(name, { isDefault: name === 'all' })
55
+ .description(description)
56
+ .option('--pikku-config-type', 'The type of your pikku config object')
57
+ .option(
58
+ '--singleton-services-factory-type',
59
+ 'The type of your singleton services factory'
60
+ )
61
+ .option(
62
+ '--session-services-factory-type',
63
+ 'The type of your session services factory'
64
+ )
65
+ .option('-c, --config <string>', 'The path to pikku cli config file')
66
+ .option('-t, --tags <tags...>', 'Which tags to filter by')
67
+ .option(
68
+ '--types <types...>',
69
+ 'Which types to filter by (http, channel, queue, scheduler, rpc, mcp)'
70
+ )
71
+ .option(
72
+ '-d, --directories <directories...>',
73
+ 'Which directories to filter by'
74
+ )
75
+ .option(
76
+ '-n, --names <names...>',
77
+ 'Filter functions by name patterns (supports wildcards)'
78
+ )
79
+ .option(
80
+ '--httpMethods <methods...>',
81
+ 'Filter HTTP routes by methods (comma-separated)'
82
+ )
83
+ .option(
84
+ '--httpRoutes <routes...>',
85
+ 'Filter HTTP routes by route patterns (comma-separated)'
86
+ )
87
+ .option('-s, --silent', 'Silent mode - only show errors')
88
+ .option(
89
+ '--state-output <path>',
90
+ 'Save inspector state to JSON file for reuse'
91
+ )
92
+ .option(
93
+ '--state-input <path>',
94
+ 'Load inspector state from JSON file (skips inspection)'
95
+ )
96
+ .action((c) => action(name, c))
97
+ }
10
98
 
11
99
  const program = new Command('pikku')
12
100
  program.usage('[command]')
13
101
 
14
- all(program)
15
- schemas(program)
16
- nextjs(program)
17
- websocket(program)
18
- rpc(program)
19
- fetch(program)
20
- queue(program)
102
+ all(program, 'all', 'Generate all pikku wirings and files')
103
+ all(program, 'watch', 'Watch for changes in pikku files')
21
104
 
22
105
  program.parse(process.argv)