@pikku/cli 0.9.15 → 0.9.16-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. package/.pikku/channel/pikku-channel-types.gen.ts +92 -0
  2. package/.pikku/cli/pikku-cli-types.gen.ts +71 -0
  3. package/.pikku/cli/pikku-cli-wirings-meta.gen.ts +5 -0
  4. package/.pikku/cli/pikku-cli-wirings.gen.ts +4 -0
  5. package/.pikku/function/pikku-function-types.gen.ts +292 -0
  6. package/.pikku/function/pikku-functions-meta.gen.ts +817 -0
  7. package/.pikku/function/pikku-functions-meta.min.gen.ts +176 -0
  8. package/.pikku/function/pikku-functions.gen.ts +74 -0
  9. package/.pikku/http/pikku-http-types.gen.ts +61 -0
  10. package/.pikku/mcp/pikku-mcp-types.gen.ts +138 -0
  11. package/.pikku/pikku-bootstrap.gen.ts +9 -0
  12. package/.pikku/pikku-services.gen.ts +24 -0
  13. package/.pikku/pikku-types.gen.ts +28 -0
  14. package/.pikku/queue/pikku-queue-types.gen.ts +28 -0
  15. package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +46 -0
  16. package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +80 -0
  17. package/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts +40 -0
  18. package/.pikku/scheduler/pikku-scheduler-types.gen.ts +26 -0
  19. package/.pikku/schemas/register.gen.ts +47 -0
  20. package/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -0
  21. package/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +1 -0
  22. package/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -0
  23. package/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +1 -0
  24. package/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +1 -0
  25. package/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +1 -0
  26. package/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +1 -0
  27. package/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +1 -0
  28. package/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +1 -0
  29. package/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +1 -0
  30. package/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -0
  31. package/CHANGELOG.md +9 -0
  32. package/bin/pikku.ts +45 -14
  33. package/build.sh +53 -0
  34. package/cli.schema.json +1 -382
  35. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +65 -0
  36. package/dist/.pikku/channel/pikku-channel-types.gen.js +54 -0
  37. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +55 -0
  38. package/dist/.pikku/cli/pikku-cli-types.gen.js +30 -0
  39. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +5 -0
  40. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +4 -0
  41. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +5 -0
  42. package/dist/.pikku/function/pikku-function-types.gen.d.ts +259 -0
  43. package/dist/.pikku/function/pikku-function-types.gen.js +175 -0
  44. package/dist/.pikku/function/pikku-functions-meta.gen.d.ts +1 -0
  45. package/dist/.pikku/function/pikku-functions-meta.gen.js +817 -0
  46. package/dist/.pikku/function/pikku-functions-meta.min.gen.d.ts +1 -0
  47. package/dist/.pikku/function/pikku-functions-meta.min.gen.js +176 -0
  48. package/dist/.pikku/function/pikku-functions.gen.d.ts +1 -0
  49. package/dist/.pikku/function/pikku-functions.gen.js +73 -0
  50. package/dist/.pikku/http/pikku-http-types.gen.d.ts +49 -0
  51. package/dist/.pikku/http/pikku-http-types.gen.js +41 -0
  52. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +88 -0
  53. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +71 -0
  54. package/dist/.pikku/pikku-bootstrap.gen.d.ts +9 -0
  55. package/dist/.pikku/pikku-bootstrap.gen.js +9 -0
  56. package/dist/.pikku/pikku-services.gen.d.ts +16 -0
  57. package/dist/.pikku/pikku-services.gen.js +11 -0
  58. package/dist/.pikku/pikku-types.gen.d.ts +14 -0
  59. package/dist/.pikku/pikku-types.gen.js +21 -0
  60. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +24 -0
  61. package/dist/.pikku/queue/pikku-queue-types.gen.js +17 -0
  62. package/dist/.pikku/rpc/pikku-bootstrap-rpc.gen.d.ts +6 -0
  63. package/dist/.pikku/rpc/pikku-bootstrap-rpc.gen.js +6 -0
  64. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.d.ts +1 -0
  65. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +40 -0
  66. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +22 -0
  67. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +17 -0
  68. package/dist/.pikku/schemas/register.gen.d.ts +1 -0
  69. package/dist/.pikku/schemas/register.gen.js +26 -0
  70. package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -0
  71. package/dist/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +1 -0
  72. package/dist/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -0
  73. package/dist/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +1 -0
  74. package/dist/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +1 -0
  75. package/dist/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +1 -0
  76. package/dist/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +1 -0
  77. package/dist/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +1 -0
  78. package/dist/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +1 -0
  79. package/dist/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +1 -0
  80. package/dist/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -0
  81. package/dist/bin/pikku.d.ts +1 -1
  82. package/dist/bin/pikku.js +32 -14
  83. package/dist/src/cli.wiring.d.ts +1 -0
  84. package/dist/src/cli.wiring.js +75 -0
  85. package/dist/src/functions/commands/all.d.ts +1 -0
  86. package/dist/src/functions/commands/all.js +104 -0
  87. package/dist/src/functions/commands/watch.d.ts +1 -0
  88. package/dist/src/functions/commands/watch.js +47 -0
  89. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.d.ts +1 -0
  90. package/dist/src/{runtimes → functions/runtimes}/nextjs/pikku-command-nextjs.js +28 -9
  91. package/dist/src/functions/wirings/channels/pikku-channels.d.ts +1 -0
  92. package/dist/src/functions/wirings/channels/pikku-channels.js +24 -0
  93. package/dist/src/functions/wirings/channels/pikku-command-channel-types.d.ts +1 -0
  94. package/dist/src/functions/wirings/channels/pikku-command-channel-types.js +21 -0
  95. package/dist/src/functions/wirings/channels/pikku-command-channels-map.d.ts +1 -0
  96. package/dist/src/functions/wirings/channels/pikku-command-channels-map.js +23 -0
  97. package/dist/src/functions/wirings/channels/pikku-command-channels.d.ts +1 -0
  98. package/dist/src/functions/wirings/channels/pikku-command-channels.js +25 -0
  99. package/dist/src/functions/wirings/channels/pikku-command-websocket-typed.d.ts +1 -0
  100. package/dist/src/functions/wirings/channels/pikku-command-websocket-typed.js +24 -0
  101. package/dist/src/functions/wirings/channels/serialize-channel-types.d.ts +4 -0
  102. package/dist/src/functions/wirings/channels/serialize-channel-types.js +95 -0
  103. package/dist/src/{wirings → functions/wirings}/channels/serialize-typed-channel-map.js +2 -2
  104. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.d.ts +1 -0
  105. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +100 -0
  106. package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +1 -0
  107. package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +33 -0
  108. package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -0
  109. package/dist/src/functions/wirings/cli/pikku-command-cli.js +24 -0
  110. package/dist/src/functions/wirings/cli/serialize-channel-cli-client.d.ts +7 -0
  111. package/dist/src/functions/wirings/cli/serialize-channel-cli-client.js +54 -0
  112. package/dist/src/functions/wirings/cli/serialize-channel-cli.d.ts +9 -0
  113. package/dist/src/functions/wirings/cli/serialize-channel-cli.js +84 -0
  114. package/dist/src/functions/wirings/cli/serialize-cli-types.d.ts +4 -0
  115. package/dist/src/functions/wirings/cli/serialize-cli-types.js +74 -0
  116. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.d.ts +14 -0
  117. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +46 -0
  118. package/dist/src/functions/wirings/fetch/index.d.ts +1 -0
  119. package/dist/src/functions/wirings/fetch/index.js +24 -0
  120. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.d.ts +1 -0
  121. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.js +32 -0
  122. package/dist/src/functions/wirings/functions/pikku-command-function-types.d.ts +1 -0
  123. package/dist/src/functions/wirings/functions/pikku-command-function-types.js +20 -0
  124. package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -0
  125. package/dist/src/functions/wirings/functions/pikku-command-functions.js +28 -0
  126. package/dist/src/{wirings → functions/wirings}/functions/pikku-command-services.d.ts +1 -2
  127. package/dist/src/{wirings → functions/wirings}/functions/pikku-command-services.js +27 -10
  128. package/dist/src/functions/wirings/functions/pikku-function-types.d.ts +1 -0
  129. package/dist/src/functions/wirings/functions/pikku-function-types.js +20 -0
  130. package/dist/src/functions/wirings/functions/schemas.d.ts +4 -0
  131. package/dist/src/functions/wirings/functions/schemas.js +22 -0
  132. package/dist/src/{wirings → functions/wirings}/functions/serialize-function-imports.js +4 -21
  133. package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +4 -0
  134. package/dist/src/functions/wirings/functions/serialize-function-types.js +295 -0
  135. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.d.ts +4 -0
  136. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.js +31 -0
  137. package/dist/src/{wirings → functions/wirings}/http/openapi-spec-generator.d.ts +2 -1
  138. package/dist/src/{wirings → functions/wirings}/http/openapi-spec-generator.js +2 -2
  139. package/dist/src/functions/wirings/http/pikku-command-http-map.d.ts +1 -0
  140. package/dist/src/functions/wirings/http/pikku-command-http-map.js +23 -0
  141. package/dist/src/functions/wirings/http/pikku-command-http-routes.d.ts +1 -0
  142. package/dist/src/functions/wirings/http/pikku-command-http-routes.js +25 -0
  143. package/dist/src/functions/wirings/http/pikku-command-http-types.d.ts +1 -0
  144. package/dist/src/functions/wirings/http/pikku-command-http-types.js +21 -0
  145. package/dist/src/functions/wirings/http/pikku-command-openapi.d.ts +1 -0
  146. package/dist/src/functions/wirings/http/pikku-command-openapi.js +34 -0
  147. package/dist/src/functions/wirings/http/pikku-http-routes.d.ts +1 -0
  148. package/dist/src/functions/wirings/http/pikku-http-routes.js +25 -0
  149. package/dist/src/functions/wirings/http/serialize-http-types.d.ts +4 -0
  150. package/dist/src/functions/wirings/http/serialize-http-types.js +64 -0
  151. package/dist/src/{wirings → functions/wirings}/http/serialize-typed-http-map.js +2 -2
  152. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.d.ts +1 -0
  153. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.js +28 -0
  154. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.d.ts +1 -0
  155. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.js +21 -0
  156. package/dist/src/functions/wirings/mcp/pikku-command-mcp.d.ts +1 -0
  157. package/dist/src/{wirings → functions/wirings}/mcp/pikku-command-mcp.js +22 -5
  158. package/dist/src/{wirings → functions/wirings}/mcp/serialize-mcp-json.d.ts +1 -1
  159. package/dist/src/functions/wirings/mcp/serialize-mcp-types.d.ts +4 -0
  160. package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +141 -0
  161. package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -0
  162. package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +38 -0
  163. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.d.ts +8 -0
  164. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.js +50 -0
  165. package/dist/src/functions/wirings/middleware/serialize-middleware-imports.d.ts +2 -0
  166. package/dist/src/functions/wirings/middleware/serialize-middleware-imports.js +43 -0
  167. package/dist/src/functions/wirings/queue/pikku-command-queue-map.d.ts +1 -0
  168. package/dist/src/functions/wirings/queue/pikku-command-queue-map.js +23 -0
  169. package/dist/src/functions/wirings/queue/pikku-command-queue-service.d.ts +1 -0
  170. package/dist/src/functions/wirings/queue/pikku-command-queue-service.js +24 -0
  171. package/dist/src/functions/wirings/queue/pikku-command-queue-types.d.ts +1 -0
  172. package/dist/src/functions/wirings/queue/pikku-command-queue-types.js +21 -0
  173. package/dist/src/functions/wirings/queue/pikku-command-queue.d.ts +1 -0
  174. package/dist/src/functions/wirings/queue/pikku-command-queue.js +26 -0
  175. package/dist/src/functions/wirings/queue/pikku-queue-map.d.ts +1 -0
  176. package/dist/src/functions/wirings/queue/pikku-queue-map.js +23 -0
  177. package/dist/src/functions/wirings/queue/pikku-queue.d.ts +1 -0
  178. package/dist/src/functions/wirings/queue/pikku-queue.js +25 -0
  179. package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-map.js +2 -2
  180. package/dist/src/functions/wirings/queue/serialize-queue-types.d.ts +4 -0
  181. package/dist/src/functions/wirings/queue/serialize-queue-types.js +31 -0
  182. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.d.ts +1 -0
  183. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.js +25 -0
  184. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +2 -0
  185. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.js +36 -0
  186. package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -0
  187. package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +22 -0
  188. package/dist/src/{wirings → functions/wirings}/rpc/serialize-typed-rpc-map.js +2 -2
  189. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.d.ts +1 -0
  190. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.js +21 -0
  191. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.d.ts +1 -0
  192. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.js +26 -0
  193. package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.d.ts +4 -0
  194. package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.js +29 -0
  195. package/dist/src/middleware/log-command-info-and-time.d.ts +19 -0
  196. package/dist/src/middleware/log-command-info-and-time.js +27 -0
  197. package/dist/src/services/cli-logger-forwarder.service.d.ts +26 -0
  198. package/dist/src/services/cli-logger-forwarder.service.js +55 -0
  199. package/dist/src/services/cli-logger.service.d.ts +19 -0
  200. package/dist/src/services/cli-logger.service.js +66 -0
  201. package/dist/src/services.d.ts +15 -0
  202. package/dist/src/services.js +64 -0
  203. package/dist/src/utils/check-required-types.d.ts +10 -0
  204. package/dist/src/utils/check-required-types.js +31 -0
  205. package/dist/src/utils/custom-types-generator.d.ts +2 -0
  206. package/dist/src/utils/custom-types-generator.js +37 -0
  207. package/dist/src/utils/file-import-path.d.ts +1 -0
  208. package/dist/src/utils/file-import-path.js +43 -0
  209. package/dist/src/utils/file-imports-serializer.d.ts +1 -0
  210. package/dist/src/utils/file-imports-serializer.js +13 -0
  211. package/dist/src/utils/file-writer.d.ts +6 -0
  212. package/dist/src/utils/file-writer.js +40 -0
  213. package/dist/src/utils/generate-bootstrap-file.d.ts +3 -0
  214. package/dist/src/utils/generate-bootstrap-file.js +21 -0
  215. package/dist/src/utils/pikku-cli-config.d.ts +5 -0
  216. package/dist/src/utils/pikku-cli-config.js +243 -0
  217. package/dist/src/utils/pikku-files-and-methods.d.ts +21 -0
  218. package/dist/src/utils/pikku-files-and-methods.js +70 -0
  219. package/dist/src/{schema-generator.d.ts → utils/schema-generator.d.ts} +1 -1
  220. package/dist/src/{schema-generator.js → utils/schema-generator.js} +1 -1
  221. package/dist/src/{serialize-import-map.js → utils/serialize-import-map.js} +1 -1
  222. package/dist/tsconfig.tsbuildinfo +1 -1
  223. package/package.json +6 -6
  224. package/pikku.config.json +24 -0
  225. package/src/cli.wiring.ts +75 -0
  226. package/src/functions/commands/all.ts +141 -0
  227. package/src/functions/commands/watch.ts +58 -0
  228. package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +111 -0
  229. package/src/functions/wirings/channels/pikku-channels.ts +40 -0
  230. package/src/functions/wirings/channels/pikku-command-channel-types.ts +27 -0
  231. package/src/functions/wirings/channels/pikku-command-channels-map.ts +31 -0
  232. package/src/functions/wirings/channels/pikku-command-channels.ts +45 -0
  233. package/src/functions/wirings/channels/pikku-command-websocket-typed.ts +33 -0
  234. package/src/functions/wirings/channels/serialize-channel-types.ts +95 -0
  235. package/src/{wirings → functions/wirings}/channels/serialize-typed-channel-map.ts +2 -2
  236. package/src/functions/wirings/cli/pikku-command-cli-entry.ts +173 -0
  237. package/src/functions/wirings/cli/pikku-command-cli-types.ts +50 -0
  238. package/src/functions/wirings/cli/pikku-command-cli.ts +41 -0
  239. package/src/functions/wirings/cli/serialize-channel-cli-client.ts +72 -0
  240. package/src/functions/wirings/cli/serialize-channel-cli.ts +123 -0
  241. package/src/functions/wirings/cli/serialize-cli-types.ts +80 -0
  242. package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +75 -0
  243. package/src/functions/wirings/fetch/index.ts +32 -0
  244. package/src/functions/wirings/functions/pikku-command-function-types-split.ts +51 -0
  245. package/src/functions/wirings/functions/pikku-command-function-types.ts +45 -0
  246. package/src/functions/wirings/functions/pikku-command-functions.ts +61 -0
  247. package/src/{wirings → functions/wirings}/functions/pikku-command-services.ts +41 -44
  248. package/src/functions/wirings/functions/pikku-function-types.ts +45 -0
  249. package/src/functions/wirings/functions/schemas.ts +47 -0
  250. package/src/{wirings → functions/wirings}/functions/serialize-function-imports.ts +4 -30
  251. package/src/functions/wirings/functions/serialize-function-types.ts +303 -0
  252. package/src/functions/wirings/functions/serialize-pikku-types-hub.ts +39 -0
  253. package/src/{wirings → functions/wirings}/http/openapi-spec-generator.ts +3 -1
  254. package/src/functions/wirings/http/pikku-command-http-map.ts +32 -0
  255. package/src/functions/wirings/http/pikku-command-http-routes.ts +41 -0
  256. package/src/functions/wirings/http/pikku-command-http-types.ts +27 -0
  257. package/src/functions/wirings/http/pikku-command-openapi.ts +57 -0
  258. package/src/functions/wirings/http/pikku-http-routes.ts +40 -0
  259. package/src/functions/wirings/http/serialize-http-types.ts +64 -0
  260. package/src/{wirings → functions/wirings}/http/serialize-typed-http-map.ts +2 -2
  261. package/src/functions/wirings/mcp/pikku-command-mcp-json.ts +38 -0
  262. package/src/functions/wirings/mcp/pikku-command-mcp-types.ts +27 -0
  263. package/src/{wirings → functions/wirings}/mcp/pikku-command-mcp.ts +55 -46
  264. package/src/{wirings → functions/wirings}/mcp/serialize-mcp-json.ts +1 -1
  265. package/src/functions/wirings/mcp/serialize-mcp-types.ts +141 -0
  266. package/src/functions/wirings/middleware/pikku-command-middleware.ts +65 -0
  267. package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +61 -0
  268. package/src/functions/wirings/middleware/serialize-middleware-imports.ts +78 -0
  269. package/src/functions/wirings/queue/pikku-command-queue-map.ts +31 -0
  270. package/src/functions/wirings/queue/pikku-command-queue-service.ts +33 -0
  271. package/src/functions/wirings/queue/pikku-command-queue-types.ts +27 -0
  272. package/src/functions/wirings/queue/pikku-command-queue.ts +46 -0
  273. package/src/functions/wirings/queue/pikku-queue-map.ts +31 -0
  274. package/src/functions/wirings/queue/pikku-queue.ts +44 -0
  275. package/src/{wirings → functions/wirings}/queue/serialize-queue-map.ts +2 -2
  276. package/src/functions/wirings/queue/serialize-queue-types.ts +31 -0
  277. package/src/functions/wirings/rpc/pikku-command-rpc-client.ts +32 -0
  278. package/src/functions/wirings/rpc/pikku-command-rpc-map.ts +52 -0
  279. package/src/functions/wirings/rpc/pikku-command-rpc.ts +28 -0
  280. package/src/{wirings → functions/wirings}/rpc/serialize-typed-rpc-map.ts +2 -2
  281. package/src/functions/wirings/scheduler/pikku-command-scheduler-types.ts +27 -0
  282. package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +46 -0
  283. package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +29 -0
  284. package/src/middleware/log-command-info-and-time.ts +61 -0
  285. package/src/services/cli-logger-forwarder.service.ts +77 -0
  286. package/src/services/cli-logger.service.ts +78 -0
  287. package/src/services.ts +111 -0
  288. package/src/utils/check-required-types.ts +53 -0
  289. package/src/utils/custom-types-generator.ts +49 -0
  290. package/src/{utils.test.ts → utils/file-import-path.test.ts} +1 -1
  291. package/src/utils/file-import-path.ts +53 -0
  292. package/src/utils/file-imports-serializer.ts +25 -0
  293. package/src/utils/file-writer.ts +56 -0
  294. package/src/utils/generate-bootstrap-file.ts +43 -0
  295. package/src/utils/pikku-cli-config.ts +356 -0
  296. package/src/utils/pikku-files-and-methods.ts +148 -0
  297. package/src/{schema-generator.ts → utils/schema-generator.ts} +3 -1
  298. package/src/{serialize-import-map.ts → utils/serialize-import-map.ts} +1 -1
  299. package/tsconfig.json +2 -2
  300. package/types/application-types.d.ts +20 -0
  301. package/types/config.d.ts +192 -0
  302. package/bin/pikku-all.ts +0 -349
  303. package/bin/pikku-fetch.ts +0 -27
  304. package/bin/pikku-nextjs.ts +0 -44
  305. package/bin/pikku-openapi.ts +0 -31
  306. package/bin/pikku-queue-service.ts +0 -28
  307. package/bin/pikku-rpc.ts +0 -28
  308. package/bin/pikku-schemas.ts +0 -31
  309. package/bin/pikku-websocket.ts +0 -28
  310. package/dist/bin/pikku-all.d.ts +0 -4
  311. package/dist/bin/pikku-all.js +0 -194
  312. package/dist/bin/pikku-fetch.d.ts +0 -4
  313. package/dist/bin/pikku-fetch.js +0 -19
  314. package/dist/bin/pikku-nextjs.d.ts +0 -4
  315. package/dist/bin/pikku-nextjs.js +0 -24
  316. package/dist/bin/pikku-openapi.d.ts +0 -2
  317. package/dist/bin/pikku-openapi.js +0 -19
  318. package/dist/bin/pikku-queue-service.d.ts +0 -4
  319. package/dist/bin/pikku-queue-service.js +0 -19
  320. package/dist/bin/pikku-rpc.d.ts +0 -4
  321. package/dist/bin/pikku-rpc.js +0 -19
  322. package/dist/bin/pikku-schemas.d.ts +0 -2
  323. package/dist/bin/pikku-schemas.js +0 -21
  324. package/dist/bin/pikku-websocket.d.ts +0 -4
  325. package/dist/bin/pikku-websocket.js +0 -19
  326. package/dist/src/inspector-glob.d.ts +0 -2
  327. package/dist/src/inspector-glob.js +0 -12
  328. package/dist/src/pikku-cli-config.d.ts +0 -56
  329. package/dist/src/pikku-cli-config.js +0 -203
  330. package/dist/src/pikku-command-schemas.d.ts +0 -2
  331. package/dist/src/pikku-command-schemas.js +0 -8
  332. package/dist/src/runtimes/nextjs/pikku-command-nextjs.d.ts +0 -2
  333. package/dist/src/schemas.d.ts +0 -2
  334. package/dist/src/schemas.js +0 -8
  335. package/dist/src/types.d.ts +0 -5
  336. package/dist/src/utils.d.ts +0 -60
  337. package/dist/src/utils.js +0 -248
  338. package/dist/src/wirings/channels/pikku-channels.d.ts +0 -2
  339. package/dist/src/wirings/channels/pikku-channels.js +0 -9
  340. package/dist/src/wirings/channels/pikku-command-channels-map.d.ts +0 -2
  341. package/dist/src/wirings/channels/pikku-command-channels-map.js +0 -8
  342. package/dist/src/wirings/channels/pikku-command-channels.d.ts +0 -2
  343. package/dist/src/wirings/channels/pikku-command-channels.js +0 -9
  344. package/dist/src/wirings/channels/pikku-command-websocket-typed.d.ts +0 -2
  345. package/dist/src/wirings/channels/pikku-command-websocket-typed.js +0 -15
  346. package/dist/src/wirings/fetch/index.d.ts +0 -2
  347. package/dist/src/wirings/fetch/index.js +0 -12
  348. package/dist/src/wirings/functions/pikku-command-function-types.d.ts +0 -2
  349. package/dist/src/wirings/functions/pikku-command-function-types.js +0 -13
  350. package/dist/src/wirings/functions/pikku-command-functions.d.ts +0 -2
  351. package/dist/src/wirings/functions/pikku-command-functions.js +0 -14
  352. package/dist/src/wirings/functions/pikku-function-types.d.ts +0 -2
  353. package/dist/src/wirings/functions/pikku-function-types.js +0 -13
  354. package/dist/src/wirings/http/pikku-command-http-map.d.ts +0 -2
  355. package/dist/src/wirings/http/pikku-command-http-map.js +0 -8
  356. package/dist/src/wirings/http/pikku-command-http-routes.d.ts +0 -2
  357. package/dist/src/wirings/http/pikku-command-http-routes.js +0 -9
  358. package/dist/src/wirings/http/pikku-command-openapi.d.ts +0 -2
  359. package/dist/src/wirings/http/pikku-command-openapi.js +0 -20
  360. package/dist/src/wirings/http/pikku-http-routes.d.ts +0 -2
  361. package/dist/src/wirings/http/pikku-http-routes.js +0 -9
  362. package/dist/src/wirings/mcp/pikku-command-mcp-json.d.ts +0 -2
  363. package/dist/src/wirings/mcp/pikku-command-mcp-json.js +0 -13
  364. package/dist/src/wirings/mcp/pikku-command-mcp.d.ts +0 -2
  365. package/dist/src/wirings/queue/pikku-command-queue-map.d.ts +0 -2
  366. package/dist/src/wirings/queue/pikku-command-queue-map.js +0 -8
  367. package/dist/src/wirings/queue/pikku-command-queue-service.d.ts +0 -2
  368. package/dist/src/wirings/queue/pikku-command-queue-service.js +0 -15
  369. package/dist/src/wirings/queue/pikku-command-queue.d.ts +0 -2
  370. package/dist/src/wirings/queue/pikku-command-queue.js +0 -10
  371. package/dist/src/wirings/queue/pikku-queue-map.d.ts +0 -2
  372. package/dist/src/wirings/queue/pikku-queue-map.js +0 -8
  373. package/dist/src/wirings/queue/pikku-queue.d.ts +0 -2
  374. package/dist/src/wirings/queue/pikku-queue.js +0 -10
  375. package/dist/src/wirings/rpc/pikku-command-rpc-client.d.ts +0 -2
  376. package/dist/src/wirings/rpc/pikku-command-rpc-client.js +0 -15
  377. package/dist/src/wirings/rpc/pikku-command-rpc-map.d.ts +0 -3
  378. package/dist/src/wirings/rpc/pikku-command-rpc-map.js +0 -14
  379. package/dist/src/wirings/rpc/pikku-command-rpc.d.ts +0 -2
  380. package/dist/src/wirings/rpc/pikku-command-rpc.js +0 -8
  381. package/dist/src/wirings/scheduler/pikku-command-scheduler.d.ts +0 -2
  382. package/dist/src/wirings/scheduler/pikku-command-scheduler.js +0 -10
  383. package/src/inspector-glob.ts +0 -30
  384. package/src/pikku-cli-config.ts +0 -387
  385. package/src/pikku-command-schemas.ts +0 -35
  386. package/src/runtimes/nextjs/pikku-command-nextjs.ts +0 -110
  387. package/src/schemas.ts +0 -35
  388. package/src/types.ts +0 -16
  389. package/src/utils.ts +0 -420
  390. package/src/wirings/channels/pikku-channels.ts +0 -41
  391. package/src/wirings/channels/pikku-command-channels-map.ts +0 -26
  392. package/src/wirings/channels/pikku-command-channels.ts +0 -39
  393. package/src/wirings/channels/pikku-command-websocket-typed.ts +0 -36
  394. package/src/wirings/fetch/index.ts +0 -33
  395. package/src/wirings/functions/pikku-command-function-types.ts +0 -53
  396. package/src/wirings/functions/pikku-command-functions.ts +0 -48
  397. package/src/wirings/functions/pikku-function-types.ts +0 -52
  398. package/src/wirings/http/pikku-command-http-map.ts +0 -27
  399. package/src/wirings/http/pikku-command-http-routes.ts +0 -40
  400. package/src/wirings/http/pikku-command-openapi.ts +0 -55
  401. package/src/wirings/http/pikku-http-routes.ts +0 -40
  402. package/src/wirings/mcp/pikku-command-mcp-json.ts +0 -33
  403. package/src/wirings/queue/pikku-command-queue-map.ts +0 -26
  404. package/src/wirings/queue/pikku-command-queue-service.ts +0 -36
  405. package/src/wirings/queue/pikku-command-queue.ts +0 -45
  406. package/src/wirings/queue/pikku-queue-map.ts +0 -26
  407. package/src/wirings/queue/pikku-queue.ts +0 -43
  408. package/src/wirings/rpc/pikku-command-rpc-client.ts +0 -35
  409. package/src/wirings/rpc/pikku-command-rpc-map.ts +0 -49
  410. package/src/wirings/rpc/pikku-command-rpc.ts +0 -24
  411. package/src/wirings/scheduler/pikku-command-scheduler.ts +0 -43
  412. /package/dist/{src/types.js → .pikku/cli/pikku-cli-wirings-meta.gen.d.ts} +0 -0
  413. /package/dist/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-backend-wrapper.d.ts +0 -0
  414. /package/dist/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-backend-wrapper.js +0 -0
  415. /package/dist/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-http-wrapper.d.ts +0 -0
  416. /package/dist/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-http-wrapper.js +0 -0
  417. /package/dist/src/{wirings → functions/wirings}/channels/serialize-typed-channel-map.d.ts +0 -0
  418. /package/dist/src/{wirings → functions/wirings}/channels/serialize-websocket-wrapper.d.ts +0 -0
  419. /package/dist/src/{wirings → functions/wirings}/channels/serialize-websocket-wrapper.js +0 -0
  420. /package/dist/src/{wirings → functions/wirings}/functions/serialize-function-imports.d.ts +0 -0
  421. /package/dist/src/{wirings → functions/wirings}/http/serialize-fetch-wrapper.d.ts +0 -0
  422. /package/dist/src/{wirings → functions/wirings}/http/serialize-fetch-wrapper.js +0 -0
  423. /package/dist/src/{wirings → functions/wirings}/http/serialize-typed-http-map.d.ts +0 -0
  424. /package/dist/src/{wirings → functions/wirings}/mcp/serialize-mcp-json.js +0 -0
  425. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-map.d.ts +0 -0
  426. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-meta.d.ts +0 -0
  427. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-meta.js +0 -0
  428. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-wrapper.d.ts +0 -0
  429. /package/dist/src/{wirings → functions/wirings}/queue/serialize-queue-wrapper.js +0 -0
  430. /package/dist/src/{wirings → functions/wirings}/rpc/serialize-rpc-wrapper.d.ts +0 -0
  431. /package/dist/src/{wirings → functions/wirings}/rpc/serialize-rpc-wrapper.js +0 -0
  432. /package/dist/src/{wirings → functions/wirings}/rpc/serialize-typed-rpc-map.d.ts +0 -0
  433. /package/dist/src/{wirings → functions/wirings}/scheduler/serialize-scheduler-meta.d.ts +0 -0
  434. /package/dist/src/{wirings → functions/wirings}/scheduler/serialize-scheduler-meta.js +0 -0
  435. /package/dist/src/{serialize-import-map.d.ts → utils/serialize-import-map.d.ts} +0 -0
  436. /package/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-backend-wrapper.ts +0 -0
  437. /package/src/{runtimes → functions/runtimes}/nextjs/serialize-nextjs-http-wrapper.ts +0 -0
  438. /package/src/{wirings → functions/wirings}/channels/serialize-websocket-wrapper.ts +0 -0
  439. /package/src/{wirings → functions/wirings}/http/serialize-fetch-wrapper.ts +0 -0
  440. /package/src/{wirings → functions/wirings}/queue/serialize-queue-meta.ts +0 -0
  441. /package/src/{wirings → functions/wirings}/queue/serialize-queue-wrapper.ts +0 -0
  442. /package/src/{wirings → functions/wirings}/rpc/serialize-rpc-wrapper.ts +0 -0
  443. /package/src/{wirings → functions/wirings}/scheduler/serialize-scheduler-meta.ts +0 -0
@@ -1,10 +0,0 @@
1
- import { logCommandInfoAndTime, serializeFileImports, writeFileInDir, } from '../../utils.js';
2
- import { serializeQueueMeta } from './serialize-queue-meta.js';
3
- export const pikkuQueue = async (logger, cliConfig, visitState) => {
4
- return await logCommandInfoAndTime(logger, 'Finding queues', 'Found queue', [visitState.queueWorkers.files.size === 0], async () => {
5
- const { queueWorkersWiringFile, queueWorkersWiringMetaFile, packageMappings, } = cliConfig;
6
- const { queueWorkers } = visitState;
7
- await writeFileInDir(logger, queueWorkersWiringMetaFile, serializeQueueMeta(queueWorkers.meta));
8
- await writeFileInDir(logger, queueWorkersWiringFile, serializeFileImports('addQueueWorkers', queueWorkersWiringFile, queueWorkers.files, packageMappings));
9
- });
10
- };
@@ -1,2 +0,0 @@
1
- import { PikkuCommand } from '../../types.js';
2
- export declare const pikkuQueueMap: PikkuCommand;
@@ -1,8 +0,0 @@
1
- import { logCommandInfoAndTime, writeFileInDir } from '../../utils.js';
2
- import { serializeQueueMap } from './serialize-queue-map.js';
3
- export const pikkuQueueMap = async (logger, { queueMapDeclarationFile, packageMappings }, { queueWorkers, functions }) => {
4
- return await logCommandInfoAndTime(logger, 'Creating Queue map', 'Created Queue map', [queueWorkers.files.size === 0], async () => {
5
- const content = serializeQueueMap(queueMapDeclarationFile, packageMappings, functions.typesMap, functions.meta, queueWorkers.meta);
6
- await writeFileInDir(logger, queueMapDeclarationFile, content);
7
- });
8
- };
@@ -1,2 +0,0 @@
1
- import { PikkuCommand } from '../../types.js';
2
- export declare const pikkuQueue: PikkuCommand;
@@ -1,10 +0,0 @@
1
- import { logCommandInfoAndTime, serializeFileImports, writeFileInDir, } from '../../utils.js';
2
- import { serializeQueueMeta } from './serialize-queue-meta.js';
3
- export const pikkuQueue = async (logger, cliConfig, visitState) => {
4
- return await logCommandInfoAndTime(logger, 'Finding queues', 'Found queue', [visitState.queueWorkers.files.size === 0], async () => {
5
- const { queueWorkersWiringFile, queueWorkersWiringMetaFile, packageMappings, } = cliConfig;
6
- const { queueWorkers } = visitState;
7
- await writeFileInDir(logger, queueWorkersWiringMetaFile, serializeQueueMeta(queueWorkers.meta));
8
- await writeFileInDir(logger, queueWorkersWiringFile, serializeFileImports('addQueueWorkers', queueWorkersWiringFile, queueWorkers.files, packageMappings));
9
- });
10
- };
@@ -1,2 +0,0 @@
1
- import { PikkuCommandWithoutState } from '../../types.js';
2
- export declare const pikkuRPCClient: PikkuCommandWithoutState;
@@ -1,15 +0,0 @@
1
- import { serializeRPCWrapper } from './serialize-rpc-wrapper.js';
2
- import { getFileImportRelativePath, logCommandInfoAndTime, writeFileInDir, } from '../../utils.js';
3
- export const pikkuRPCClient = async (logger, { rpcWiringsFile, rpcMapDeclarationFile, packageMappings }) => {
4
- return await logCommandInfoAndTime(logger, 'Generating RPC wrappers', 'Generated RPC wrappers', [
5
- rpcWiringsFile === undefined || rpcWiringsFile === null,
6
- "rpcWiringsFile isn't set in the pikku config",
7
- ], async () => {
8
- if (!rpcWiringsFile) {
9
- throw new Error("rpcWiringsFile isn't set in the pikku config");
10
- }
11
- const rpcMapDeclarationPath = getFileImportRelativePath(rpcWiringsFile, rpcMapDeclarationFile, packageMappings);
12
- const content = [serializeRPCWrapper(rpcMapDeclarationPath)];
13
- await writeFileInDir(logger, rpcWiringsFile, content.join('\n'));
14
- });
15
- };
@@ -1,3 +0,0 @@
1
- import { PikkuCommand } from '../../types.js';
2
- export declare const pikkuRPCInternalMap: PikkuCommand;
3
- export declare const pikkuRPCExposedMap: PikkuCommand;
@@ -1,14 +0,0 @@
1
- import { logCommandInfoAndTime, writeFileInDir } from '../../utils.js';
2
- import { serializeTypedRPCMap } from './serialize-typed-rpc-map.js';
3
- export const pikkuRPCInternalMap = async (logger, { rpcInternalMapDeclarationFile, packageMappings }, { functions, rpc }) => {
4
- return await logCommandInfoAndTime(logger, 'Creating RPC internal map', 'Created RPC internal map', [false], async () => {
5
- const content = serializeTypedRPCMap(rpcInternalMapDeclarationFile, packageMappings, functions.typesMap, functions.meta, rpc.internalMeta);
6
- await writeFileInDir(logger, rpcInternalMapDeclarationFile, content);
7
- });
8
- };
9
- export const pikkuRPCExposedMap = async (logger, { rpcMapDeclarationFile, packageMappings }, { functions, rpc }) => {
10
- return await logCommandInfoAndTime(logger, 'Creating RPC external map', 'Created RPC external map', [false], async () => {
11
- const content = serializeTypedRPCMap(rpcMapDeclarationFile, packageMappings, functions.typesMap, functions.meta, rpc.exposedMeta);
12
- await writeFileInDir(logger, rpcMapDeclarationFile, content);
13
- });
14
- };
@@ -1,2 +0,0 @@
1
- import { PikkuCommand } from '../../types.js';
2
- export declare const pikkuRPC: PikkuCommand;
@@ -1,8 +0,0 @@
1
- import { logCommandInfoAndTime, writeFileInDir } from '../../utils.js';
2
- export const pikkuRPC = async (logger, { rpcInternalWiringMetaFile }, { rpc }) => {
3
- return await logCommandInfoAndTime(logger, 'Finding RPCs tasks', 'Found RPCs', [false], async () => {
4
- if (rpc.internalFiles.size > 0) {
5
- await writeFileInDir(logger, rpcInternalWiringMetaFile, `import { pikkuState } from '@pikku/core'\npikkuState('rpc', 'meta', ${JSON.stringify(rpc.internalMeta, null, 2)})`);
6
- }
7
- });
8
- };
@@ -1,2 +0,0 @@
1
- import { PikkuCommand } from '../../types.js';
2
- export declare const pikkuScheduler: PikkuCommand;
@@ -1,10 +0,0 @@
1
- import { logCommandInfoAndTime, serializeFileImports, writeFileInDir, } from '../../utils.js';
2
- import { serializeSchedulerMeta } from './serialize-scheduler-meta.js';
3
- export const pikkuScheduler = async (logger, cliConfig, visitState) => {
4
- return await logCommandInfoAndTime(logger, 'Finding scheduled tasks', 'Found scheduled tasks', [visitState.scheduledTasks.files.size === 0], async () => {
5
- const { schedulersWiringFile, schedulersWiringMetaFile, packageMappings, } = cliConfig;
6
- const { scheduledTasks } = visitState;
7
- await writeFileInDir(logger, schedulersWiringMetaFile, serializeSchedulerMeta(scheduledTasks.meta));
8
- await writeFileInDir(logger, schedulersWiringFile, serializeFileImports('addScheduledTasks', schedulersWiringFile, scheduledTasks.files, packageMappings));
9
- });
10
- };
@@ -1,30 +0,0 @@
1
- import * as path from 'path'
2
- import { glob } from 'tinyglobby'
3
- import { InspectorFilters, InspectorState, inspect } from '@pikku/inspector'
4
- import { logCommandInfoAndTime } from './utils.js'
5
-
6
- export const inspectorGlob = async (
7
- logger,
8
- rootDir: string,
9
- srcDirectories: string[],
10
- filters: InspectorFilters
11
- ) => {
12
- let result: InspectorState
13
- await logCommandInfoAndTime(
14
- logger,
15
- 'Inspecting codebase',
16
- 'Inspected codebase',
17
- [false],
18
- async () => {
19
- const wiringFiles = (
20
- await Promise.all(
21
- srcDirectories.map((dir) =>
22
- glob(`${path.join(rootDir, dir)}/**/*.ts`)
23
- )
24
- )
25
- ).flat()
26
- result = await inspect(logger, wiringFiles, filters)
27
- }
28
- )
29
- return result!
30
- }
@@ -1,387 +0,0 @@
1
- import { join, dirname, resolve, isAbsolute } from 'path'
2
- import { readdir, readFile } from 'fs/promises'
3
- import { OpenAPISpecInfo } from './wirings/http/openapi-spec-generator.js'
4
- import { InspectorFilters } from '@pikku/inspector'
5
- import { PikkuWiringTypes } from '@pikku/core'
6
-
7
- export interface PikkuCLICoreOutputFiles {
8
- // Base directory
9
- outDir?: string
10
-
11
- // Schema and types
12
- schemaDirectory: string
13
- typesDeclarationFile: string
14
-
15
- // Function definitions
16
- functionsFile: string
17
- functionsMetaFile: string
18
- functionsMetaMinFile: string
19
-
20
- // HTTP
21
- httpWiringsFile: string
22
- httpWiringMetaFile: string
23
- httpMapDeclarationFile: string
24
-
25
- // Channels
26
- channelsWiringFile: string
27
- channelsWiringMetaFile: string
28
- channelsMapDeclarationFile: string
29
-
30
- // RPC Internal
31
- rpcInternalWiringMetaFile: string
32
- rpcInternalMapDeclarationFile: string
33
-
34
- // RPC Exposed
35
- rpcMapDeclarationFile: string
36
-
37
- // Schedulers
38
- schedulersWiringFile: string
39
- schedulersWiringMetaFile: string
40
-
41
- // Queue processors
42
- queueWorkersWiringFile: string
43
- queueWorkersWiringMetaFile: string
44
- queueMapDeclarationFile: string
45
-
46
- // MCP
47
- mcpWiringsFile: string
48
- mcpWiringsMetaFile: string
49
-
50
- // Services
51
- servicesFile: string
52
-
53
- // Application bootstrap
54
- bootstrapFile: string
55
- bootstrapFiles: Record<PikkuWiringTypes, string>
56
- }
57
-
58
- export type PikkuCLIConfig = {
59
- $schema?: string
60
-
61
- extends?: string
62
-
63
- rootDir: string
64
- srcDirectories: string[]
65
- packageMappings: Record<string, string>
66
- supportsImportAttributes: boolean
67
-
68
- configDir: string
69
- tsconfig: string
70
-
71
- nextBackendFile?: string
72
- nextHTTPFile?: string
73
- fetchFile?: string
74
- websocketFile?: string
75
- rpcWiringsFile?: string
76
- queueWiringsFile?: string
77
- mcpJsonFile?: string
78
-
79
- openAPI?: {
80
- outputFile: string
81
- additionalInfo: OpenAPISpecInfo
82
- }
83
-
84
- middlewareServices?: string[]
85
-
86
- schemasFromTypes?: string[]
87
-
88
- filters: InspectorFilters
89
- } & PikkuCLICoreOutputFiles
90
-
91
- const CONFIG_DIR_FILES = [
92
- 'nextBackendFile',
93
- 'nextHTTPFile',
94
- 'fetchFile',
95
- 'websocketFile',
96
- 'rpcWiringsFile',
97
- 'queueWiringsFile',
98
- 'mcpJsonFile',
99
- ]
100
-
101
- export const getPikkuCLIConfig = async (
102
- configFile: string | undefined = undefined,
103
- requiredFields: Array<keyof PikkuCLIConfig>,
104
- filters: InspectorFilters = {},
105
- exitProcess: boolean = false
106
- ): Promise<PikkuCLIConfig> => {
107
- const config = await _getPikkuCLIConfig(
108
- configFile,
109
- requiredFields,
110
- filters,
111
- exitProcess
112
- )
113
- return config
114
- }
115
-
116
- const _getPikkuCLIConfig = async (
117
- configFile: string | undefined = undefined,
118
- requiredFields: Array<keyof PikkuCLIConfig>,
119
- filters: InspectorFilters = {},
120
- exitProcess: boolean = false
121
- ): Promise<PikkuCLIConfig> => {
122
- if (!configFile) {
123
- let execDirectory = process.cwd()
124
- const files = await readdir(execDirectory)
125
- const file = files.find((file) => /pikku\.config\.(ts|js|json)$/.test(file))
126
- if (!file) {
127
- const errorMessage =
128
- '\nConfig file pikku.config.json not found\nExiting...'
129
- if (exitProcess) {
130
- console.error(errorMessage)
131
- process.exit(1)
132
- }
133
- throw new Error(errorMessage)
134
- }
135
- configFile = join(execDirectory, file)
136
- }
137
-
138
- try {
139
- let result: PikkuCLIConfig
140
- const file = await readFile(configFile, 'utf-8')
141
- const configDir = dirname(configFile)
142
- const config: PikkuCLIConfig = JSON.parse(file)
143
- if (config.extends) {
144
- const extendedConfig = await getPikkuCLIConfig(
145
- resolve(configDir, config.extends),
146
- [],
147
- filters,
148
- exitProcess
149
- )
150
- result = {
151
- ...extendedConfig,
152
- ...config,
153
- configDir,
154
- packageMappings: {
155
- ...extendedConfig.packageMappings,
156
- ...config.packageMappings,
157
- },
158
- }
159
- } else {
160
- result = {
161
- ...config,
162
- configDir,
163
- packageMappings: config.packageMappings || {},
164
- rootDir: config.rootDir
165
- ? resolve(configDir, config.rootDir)
166
- : configDir,
167
- }
168
- }
169
-
170
- if (result.outDir) {
171
- // Create transport/event directories
172
- const functionDir = join(result.outDir, 'function')
173
- const httpDir = join(result.outDir, 'http')
174
- const channelDir = join(result.outDir, 'channel')
175
- const rpcDir = join(result.outDir, 'rpc')
176
- const schedulerDir = join(result.outDir, 'scheduler')
177
- const queueDir = join(result.outDir, 'queue')
178
- const mcpDir = join(result.outDir, 'mcp')
179
-
180
- // Create directories if they don't exist (will be done lazily when files are written)
181
-
182
- if (!result.schemaDirectory) {
183
- result.schemaDirectory = join(result.outDir, 'schemas')
184
- }
185
-
186
- // Functions
187
- if (!result.functionsFile) {
188
- result.functionsFile = join(functionDir, 'pikku-functions.gen.ts')
189
- }
190
- if (!result.functionsMetaFile) {
191
- result.functionsMetaFile = join(
192
- functionDir,
193
- 'pikku-functions-meta.gen.ts'
194
- )
195
- }
196
- if (!result.functionsMetaMinFile) {
197
- result.functionsMetaMinFile = join(
198
- functionDir,
199
- 'pikku-functions-meta.min.gen.ts'
200
- )
201
- }
202
- if (!result.typesDeclarationFile) {
203
- result.typesDeclarationFile = join(result.outDir, 'pikku-types.gen.ts')
204
- }
205
-
206
- // HTTP
207
- if (!result.httpWiringsFile) {
208
- result.httpWiringsFile = join(httpDir, 'pikku-http-wirings.gen.ts')
209
- }
210
- if (!result.httpWiringMetaFile) {
211
- result.httpWiringMetaFile = join(
212
- httpDir,
213
- 'pikku-http-wirings-meta.gen.ts'
214
- )
215
- }
216
- if (!result.httpMapDeclarationFile) {
217
- result.httpMapDeclarationFile = join(
218
- httpDir,
219
- 'pikku-http-wirings-map.gen.d.ts'
220
- )
221
- }
222
-
223
- // Channels/WebSocket
224
- if (!result.channelsWiringFile) {
225
- result.channelsWiringFile = join(channelDir, 'pikku-channels.gen.ts')
226
- }
227
- if (!result.channelsWiringMetaFile) {
228
- result.channelsWiringMetaFile = join(
229
- channelDir,
230
- 'pikku-channels-meta.gen.ts'
231
- )
232
- }
233
- if (!result.channelsMapDeclarationFile) {
234
- result.channelsMapDeclarationFile = join(
235
- channelDir,
236
- 'pikku-channels-map.gen.d.ts'
237
- )
238
- }
239
-
240
- // RPC (internal and exposed)
241
- if (!result.rpcInternalWiringMetaFile) {
242
- result.rpcInternalWiringMetaFile = join(
243
- rpcDir,
244
- 'pikku-rpc-wirings-meta.internal.gen.ts'
245
- )
246
- }
247
-
248
- if (!result.rpcInternalMapDeclarationFile) {
249
- result.rpcInternalMapDeclarationFile = join(
250
- rpcDir,
251
- 'pikku-rpc-wirings-map.internal.gen.d.ts'
252
- )
253
- }
254
-
255
- if (!result.rpcMapDeclarationFile) {
256
- result.rpcMapDeclarationFile = join(
257
- rpcDir,
258
- 'pikku-rpc-wirings-map.gen.d.ts'
259
- )
260
- }
261
-
262
- // Scheduler
263
- if (!result.schedulersWiringFile) {
264
- result.schedulersWiringFile = join(
265
- schedulerDir,
266
- 'pikku-schedulers-wirings.gen.ts'
267
- )
268
- }
269
- if (!result.schedulersWiringMetaFile) {
270
- result.schedulersWiringMetaFile = join(
271
- schedulerDir,
272
- 'pikku-schedulers-wirings-meta.gen.ts'
273
- )
274
- }
275
-
276
- // Queue
277
- if (!result.queueWorkersWiringFile) {
278
- result.queueWorkersWiringFile = join(
279
- queueDir,
280
- 'pikku-queue-workers-wirings.gen.ts'
281
- )
282
- }
283
- if (!result.queueWorkersWiringMetaFile) {
284
- result.queueWorkersWiringMetaFile = join(
285
- queueDir,
286
- 'pikku-queue-workers-wirings-meta.gen.ts'
287
- )
288
- }
289
- if (!result.queueMapDeclarationFile) {
290
- result.queueMapDeclarationFile = join(
291
- queueDir,
292
- 'pikku-queue-workers-wirings-map.gen.d.ts'
293
- )
294
- }
295
-
296
- // Services
297
- if (!result.servicesFile) {
298
- result.servicesFile = join(result.outDir, 'pikku-services.gen.ts')
299
- }
300
-
301
- // Bootstrap files
302
- if (!result.bootstrapFile) {
303
- result.bootstrapFile = join(result.outDir, 'pikku-bootstrap.gen.ts')
304
- }
305
-
306
- // MCP
307
- if (!result.mcpWiringsMetaFile) {
308
- result.mcpWiringsMetaFile = join(
309
- mcpDir,
310
- 'pikku-mcp-wirings-meta.gen.ts'
311
- )
312
- }
313
- if (!result.mcpWiringsFile) {
314
- result.mcpWiringsFile = join(mcpDir, 'pikku-mcp-wirings.gen.ts')
315
- }
316
- if (!result.mcpJsonFile) {
317
- result.mcpJsonFile = join(mcpDir, 'pikku-mcp.gen.json')
318
- }
319
-
320
- result.bootstrapFiles = result.bootstrapFiles || {}
321
- for (const key of Object.keys(PikkuWiringTypes)) {
322
- const eventDir = join(result.outDir, key.toLowerCase())
323
- result.bootstrapFiles[key] = join(
324
- eventDir,
325
- `pikku-bootstrap-${key}.gen.ts`
326
- )
327
- }
328
- }
329
-
330
- if (requiredFields.length > 0) {
331
- validateCLIConfig(result, requiredFields)
332
- }
333
-
334
- for (const objectKey of Object.keys(result)) {
335
- if (objectKey.endsWith('File') || objectKey.endsWith('Directory')) {
336
- const relativeTo = CONFIG_DIR_FILES.includes(objectKey)
337
- ? result.configDir
338
- : result.rootDir
339
- if (result[objectKey]) {
340
- if (!isAbsolute(result[objectKey])) {
341
- result[objectKey] = join(relativeTo, result[objectKey])
342
- }
343
- }
344
- }
345
- }
346
-
347
- result.filters = result.filters || {}
348
- if (filters.tags && filters.tags.length > 0) {
349
- result.filters.tags = filters.tags
350
- }
351
- if (filters.types && filters.types.length > 0) {
352
- result.filters.types = filters.types
353
- }
354
- if (filters.directories && filters.directories.length > 0) {
355
- result.filters.directories = filters.directories
356
- }
357
-
358
- if (!isAbsolute(result.tsconfig)) {
359
- result.tsconfig = join(result.rootDir, result.tsconfig)
360
- }
361
-
362
- return result
363
- } catch (e: any) {
364
- console.error(e)
365
- console.error(`Config file not found: ${configFile}`)
366
- process.exit(1)
367
- }
368
- }
369
-
370
- export const validateCLIConfig = (
371
- cliConfig: PikkuCLIConfig,
372
- required: Array<keyof PikkuCLIConfig>
373
- ) => {
374
- let errors: string[] = []
375
- for (const key of required) {
376
- if (!cliConfig[key]) {
377
- errors.push(key)
378
- }
379
- }
380
-
381
- if (errors.length > 0) {
382
- console.error(
383
- `${errors.join(', ')} ${errors.length === 1 ? 'is' : 'are'} required in pikku.config.json`
384
- )
385
- process.exit(1)
386
- }
387
- }
@@ -1,35 +0,0 @@
1
- import { generateSchemas, saveSchemas } from './schema-generator.js'
2
- import { logCommandInfoAndTime } from './utils.js'
3
- import { PikkuCommand } from './types.js'
4
-
5
- export const pikkuSchemas: PikkuCommand = async (
6
- logger,
7
- { tsconfig, schemaDirectory, supportsImportAttributes, schemasFromTypes },
8
- { functions, http }
9
- ) => {
10
- return await logCommandInfoAndTime(
11
- logger,
12
- 'Creating schemas',
13
- 'Created schemas',
14
- [false],
15
- async () => {
16
- const schemas = await generateSchemas(
17
- logger,
18
- tsconfig,
19
- functions.typesMap,
20
- functions.meta,
21
- http.meta,
22
- schemasFromTypes
23
- )
24
- await saveSchemas(
25
- logger,
26
- schemaDirectory,
27
- schemas,
28
- functions.typesMap,
29
- functions.meta,
30
- supportsImportAttributes,
31
- schemasFromTypes
32
- )
33
- }
34
- )
35
- }
@@ -1,110 +0,0 @@
1
- import {
2
- logCommandInfoAndTime,
3
- getPikkuFilesAndMethods,
4
- getFileImportRelativePath,
5
- writeFileInDir,
6
- } from '../../utils.js'
7
- import { serializeNextJsBackendWrapper as serializeNextBackendWrapper } from './serialize-nextjs-backend-wrapper.js'
8
- import { serializeNextJsHTTPWrapper as serializeNextHTTPWrapper } from './serialize-nextjs-http-wrapper.js'
9
- import { PikkuCommand } from '../../types.js'
10
-
11
- export const pikkuNext: PikkuCommand = async (
12
- logger,
13
- {
14
- nextBackendFile,
15
- nextHTTPFile,
16
- httpMapDeclarationFile,
17
- packageMappings,
18
- fetchFile,
19
- bootstrapFiles,
20
- },
21
- visitState,
22
- options = {}
23
- ) => {
24
- return await logCommandInfoAndTime(
25
- logger,
26
- 'Generating nextjs wrapper',
27
- 'Generated nextjs wrapper',
28
- [
29
- nextBackendFile === undefined && nextHTTPFile === undefined,
30
- 'nextjs outfile is not defined',
31
- ],
32
- async () => {
33
- if (!nextBackendFile && !nextHTTPFile) {
34
- throw new Error(
35
- 'nextBackendFile or nextHTTPFile is required in pikku config for nextJS'
36
- )
37
- }
38
-
39
- if (nextHTTPFile && !fetchFile) {
40
- throw new Error(
41
- 'fetchFile is required in pikku config in order for nextJS http wrapper to work'
42
- )
43
- }
44
-
45
- if (nextBackendFile) {
46
- const {
47
- pikkuConfigFactory,
48
- singletonServicesFactory,
49
- sessionServicesFactory,
50
- } = await getPikkuFilesAndMethods(
51
- logger,
52
- visitState,
53
- packageMappings,
54
- nextBackendFile,
55
- options,
56
- {
57
- config: true,
58
- singletonServicesFactory: true,
59
- sessionServicesFactory: true,
60
- }
61
- )
62
-
63
- const pikkuConfigImport = `import { ${pikkuConfigFactory.variable} as createConfig } from '${getFileImportRelativePath(nextBackendFile, pikkuConfigFactory.file, packageMappings)}'`
64
- const singletonServicesImport = `import { ${singletonServicesFactory.variable} as createSingletonServices } from '${getFileImportRelativePath(nextBackendFile, singletonServicesFactory.file, packageMappings)}'`
65
- const sessionServicesImport = `import { ${sessionServicesFactory.variable} as createSessionServices } from '${getFileImportRelativePath(nextBackendFile, sessionServicesFactory.file, packageMappings)}'`
66
-
67
- const httpBootstrapPath = getFileImportRelativePath(
68
- nextBackendFile,
69
- bootstrapFiles.http,
70
- packageMappings
71
- )
72
-
73
- const routesMapDeclarationPath = getFileImportRelativePath(
74
- nextBackendFile,
75
- httpMapDeclarationFile,
76
- packageMappings
77
- )
78
-
79
- const content = serializeNextBackendWrapper(
80
- httpBootstrapPath,
81
- routesMapDeclarationPath,
82
- pikkuConfigImport,
83
- singletonServicesImport,
84
- sessionServicesImport
85
- )
86
- await writeFileInDir(logger, nextBackendFile, content)
87
- }
88
-
89
- if (nextHTTPFile && fetchFile) {
90
- const routesMapDeclarationPath = getFileImportRelativePath(
91
- nextHTTPFile,
92
- httpMapDeclarationFile,
93
- packageMappings
94
- )
95
-
96
- const fetchPath = getFileImportRelativePath(
97
- nextHTTPFile,
98
- fetchFile,
99
- packageMappings
100
- )
101
-
102
- const content = serializeNextHTTPWrapper(
103
- routesMapDeclarationPath,
104
- fetchPath
105
- )
106
- await writeFileInDir(logger, nextHTTPFile, content)
107
- }
108
- }
109
- )
110
- }